mirror of
https://github.com/jackqqq123/luban_ui_internal.git
synced 2025-11-15 13:48:24 +08:00
项目设计文档
This commit is contained in:
5
.github/instructions/prompt.instructions.md
vendored
Normal file
5
.github/instructions/prompt.instructions.md
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
applyTo: '**'
|
||||||
|
---
|
||||||
|
- 说中文
|
||||||
|
- 这是一个基于electron的项目管理工程,目标是让非程序员也能轻松使用luban管理配置表。
|
||||||
@@ -1,2 +1 @@
|
|||||||
# luban_ui_internal
|
# Luban ui
|
||||||
luban_ui是面向非程序员设计的操作面板,让你可以轻松驾驭luban,体验它强大配置表管理能力。
|
|
||||||
78
design/项目功能设计.md
Normal file
78
design/项目功能设计.md
Normal 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)
|
||||||
|
- 备注
|
||||||
|
- 是否导出(字段名#开头)
|
||||||
90
design/项目架构设计.md
Normal file
90
design/项目架构设计.md
Normal 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层只做展示和交互,所有逻辑下沉到服务
|
||||||
Reference in New Issue
Block a user