项目设计文档

This commit is contained in:
jackqqq123
2025-09-24 01:21:45 +08:00
parent 9dbd383a7e
commit 887efe22da
4 changed files with 174 additions and 2 deletions

View File

@@ -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)
- 备注
- 是否导出(字段名#开头)

View File

@@ -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层只做展示和交互所有逻辑下沉到服务