diff --git a/.github/instructions/prompt.instructions.md b/.github/instructions/prompt.instructions.md new file mode 100644 index 0000000..576cbe0 --- /dev/null +++ b/.github/instructions/prompt.instructions.md @@ -0,0 +1,5 @@ +--- +applyTo: '**' +--- +- 说中文 +- 这是一个基于electron的项目管理工程,目标是让非程序员也能轻松使用luban管理配置表。 \ No newline at end of file diff --git a/README.md b/README.md index 3b5d917..f8b3996 100644 --- a/README.md +++ b/README.md @@ -1,2 +1 @@ -# luban_ui_internal -luban_ui是面向非程序员设计的操作面板,让你可以轻松驾驭luban,体验它强大配置表管理能力。 +# Luban ui \ No newline at end of file diff --git a/design/项目功能设计.md b/design/项目功能设计.md new file mode 100644 index 0000000..cf1d051 --- /dev/null +++ b/design/项目功能设计.md @@ -0,0 +1,78 @@ +## 功能设计 +页签:项目分组:项目1|项目2 +- 问答 + - 本地知识库 + - 历史会话 + - 开启新对话 + +- 项目 + - 分页区 + - 工作区 + - 目录树 + - 内容 文件列表、FileEditor + - 右键 + - 新建配置表-逻辑结构(唯一table,enum,bean) + - 配置表可以标记自动导出 + - 项目配置 + - 鲁班版本 + - 鲁班路径 + - 模板路径 + - 参考[命令行工具](https://www.datable.cn/docs/manual/commandtools) + - 发布配置 + - 配置路径 + - 为了支持前后操作,发布配置应该是一份json文件,脚本根据json调用luban + - 配置可能有多份 + - 操作区 + - 更新(可选) + - 发布 + - 推送(可选) + +- 设置页 + - 外观 + - 鲁班 + - 文档网址 + - 高级 + - 外部编辑器、路径 + - shell、路径 + - 语言 + +- 新建项目 + - 名称 + - 描述 + - 项目分组 + - 本地路径 + - 项目模板 + +- 打开项目 + - 路径 + - 项目别名 + - 项目分组 + +- FileEditor + - 目录列表(焦点文件为目录或文件不支持编辑) + - 文本编辑器(代码高亮?) + - xml能不能判断是逻辑结构进行定制化编辑呢? + +- 新建逻辑结构(唯一table,enum,bean) + - 该页面需要细化! + +- 配置表设计器 + - 表头 + - 字段 + - 字段名(var) + - 类型(type) + - 整型 int 可空 + - 布尔型 bool 可空 + - 字符串 string 可空 + - 日期型 datetime 必填 + - 枚举 enum + - 可填变量名、别名或者对应的整数 + - 数据 bean + - 合并单元格,按顺序填写 + - 如果是多态,第一个数据是bean的别名 + - 处理器(tag) + - escape 用于字符串开启转义(比如\n换成换行符) + - default 用于提供默认值,支持bean + - 组别(group) + - 备注 + - 是否导出(字段名#开头) \ No newline at end of file diff --git a/design/项目架构设计.md b/design/项目架构设计.md new file mode 100644 index 0000000..cf23975 --- /dev/null +++ b/design/项目架构设计.md @@ -0,0 +1,90 @@ +# 项目架构设计文档 + +## 一、总体说明 + +本项目采用 **Avalonia** 作为跨平台桌面UI框架,目标是让非程序员也能轻松使用Luban管理配置表。项目结构高度模块化,底层能力与业务服务解耦,便于维护和扩展。 + +--- + +## 二、架构分层 + +### 1. Core(基础能力库,单独程序集) + + +命名空间:**LubanHub.Core** +- 封装所有原生能力:下载、文件管理、进程调用、解压缩等 +- 只暴露通用接口,供各业务服务调用 +- 例如:`ICoreFileService`、`ICoreDownloadService`、`ICoreProcessService` + +### 2. 各业务服务(每个服务一个程序集) + + +- **Luban集成服务** + - 命名空间:**LubanHub.LubanService** + - 负责调用Luban命令行、管理Luban相关配置、版本检测等 + - 依赖Core的进程调用、文件管理能力 + +- **知识库应用服务** + - 命名空间:**LubanHub.KnowledgeService** + - 管理本地知识库、历史会话 + - 封装AI API调用(如OpenAI、本地模型等) + - 依赖Core的文件管理、网络能力 + +- **配置表管理服务** + - 命名空间:**LubanHub.TableService** + - 管理配置表结构、配置表设计器逻辑 + - 支持table/enum/bean等结构 + - 依赖Core的文件管理 + +- **模板工程创建服务** + - 命名空间:**LubanHub.TemplateService** + - 负责扫描luban_example、按模板生成新工程 + - 支持变量替换、目录操作 + - 依赖Core的文件管理、解压缩等 + +### 3. UI层(Avalonia MVVM) + + +命名空间:**LubanHub.App** +- 只负责界面展示与交互,所有业务逻辑通过服务层调用 +- 通过依赖注入获取服务实例 + +--- + +## 三、依赖关系示意 + +``` +UI层 + │ + ├─ Luban集成服务 + │ │ + │ └─ Core + ├─ 知识库应用服务 + │ │ + │ └─ Core + ├─ 配置表管理服务 + │ │ + │ └─ Core + └─ 模板工程创建服务 + │ + └─ Core +``` + +--- + +## 四、主要功能模块 + +- **问答**:本地知识库、历史会话、AI对话 +- **项目管理**:分组、创建、打开、配置、发布 +- **配置表设计器**:结构化编辑、字段类型、处理器、分组、备注、导出标记 +- **模板工程生成**:基于luban_example按模板生成新工程 +- **设置页**:外观、Luban文档、外部编辑器、shell路径、语言等 + +--- + +## 五、开发建议 + +- 每个服务建议定义接口(如 IFileService),便于测试和扩展 +- Core层实现时注意跨平台兼容 +- 业务服务只依赖Core,不直接操作系统API +- UI层只做展示和交互,所有逻辑下沉到服务