Private
Public Access
1
0
Files
绝尘 a5d30684ed 重构:文件系统模块化架构,增强 Markdown 渲染
- 拆分 FileSystem.vue 为模块化组件架构
- 新增 Markdown Mermaid 图表渲染支持
- 新增 180+ 编程语言代码高亮
- 修复编辑/预览模式切换渲染问题
- 优化亮色/暗色模式主题适配
- 新增 TypeScript 类型定义
2026-02-04 03:32:46 +08:00

248 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Go Desk 需求文档
> **文档版本**v0.1.0
> **创建时间**2026-01-20
> **维护者**JueChen
> **状态**:已确定
## 1. 产品概述
### 1.1 产品定位
Go Desk 是基于 Wails 框架开发的桌面应用程序,用于**测试验证技术栈**。通过实现用户查询功能,验证以下技术能力:
- 打包和构建流程
- 前后端交互机制
- 与系统资源交互(数据库连接、文件操作等)
- 跨平台桌面应用开发
### 1.2 技术栈
- **后端**Go v1.25.4
- **框架**Wails v2
- **前端**Vue 3 + Arco Design Vue
- **构建工具**Vite
- **数据库**MySQL (lab_dev)
## 2. 功能需求
### 2.1 核心功能:用户查询展示
#### 功能描述
从 MySQL 数据库 `lab_dev``member_info` 表中查询用户信息,并在桌面应用中展示。参考 `lab-admin``lab-api` 中的用户管理功能。
#### 数据表结构
- **表名**`member_info`
- **主要字段**
- `memberid`用户ID主键
- `membername`:姓名
- `account`:账号
- `contactphone`:联系电话
- `organid`所属机构ID
- `organname`:所属机构名称(需关联查询)
- `role`:角色(需关联 `sys_member_role` 表获取角色名称)
- `status`状态1-正常2-停用3-删除)
- `createtime`:创建时间
- `updatetime`:修改时间
#### 查询功能
- [ ] 用户列表展示(表格形式)
- [ ] 关键字搜索(支持姓名、账号、电话模糊查询)
- [ ] 状态筛选(全部/正常/停用/已删除)
- [ ] 角色筛选(需关联查询角色表)
- [ ] 机构筛选(需关联查询机构表)
- [ ] 分页显示
- [ ] 排序功能按创建时间、用户ID等
#### 展示字段
- [ ] 编号memberid
- [ ] 姓名membername
- [ ] 账号account
- [ ] 联系电话contactphone
- [ ] 所属机构organname
- [ ] 角色(角色名称,需关联查询)
- [ ] 状态(状态标签显示)
- [ ] 创建时间createtime
- [ ] 修改时间updatetime
#### 界面要求
- [ ] 使用 Arco Design Vue 组件库
- [ ] 查询表单(关键字、状态、角色、机构筛选)
- [ ] 数据表格展示
- [ ] 分页组件
- [ ] 状态标签(正常-绿色,停用-橙色,删除-灰色)
### 2.2 基础功能
- [x] 应用启动和窗口管理
- [x] 前后端通信机制
- [x] 数据库连接MySQL lab_dev
- [ ] 错误处理和日志记录
- [ ] 数据库连接配置管理
### 2.3 界面需求
- [ ] 主界面布局(查询区域 + 表格区域)
- [ ] 使用 Arco 基础样式,避免过度自定义
- [ ] 响应式布局适配
## 3. 非功能需求
### 3.1 性能要求
- [ ] 启动时间:< 3秒
- [ ] 查询响应:< 500ms
- [ ] 内存占用:< 200MB
### 3.2 兼容性要求
- [ ] Windows 10/11优先
- [ ] macOS后续考虑
- [ ] Linux后续考虑
### 3.3 用户体验要求
- [ ] 界面简洁易用
- [ ] 查询操作流畅
- [ ] 错误提示友好
- [ ] 加载状态提示
## 4. 数据需求
### 4.1 数据库连接
- **数据库**MySQL
- **数据库名**lab_dev
- **连接信息**
- Host: localhost
- Port: 3306
- User: root
- Password: 123456
- **连接池配置**
- MaxOpenConns: 25
- MaxIdleConns: 5
- ConnMaxLifetime: 300秒
### 4.2 数据查询
- [ ] 直接查询 `member_info`
- [ ] 关联查询机构表获取机构名称
- [ ] 关联查询 `sys_member_role` 表获取角色信息
- [ ] 支持分页查询limit/offset
- [ ] 支持排序(按字段排序)
### 4.3 数据交互
- [ ] 前端通过 `window.go.main` 调用 Go 方法
- [ ] Go 方法返回 JSON 格式数据
- [ ] 查询参数:关键字、状态、角色、机构、分页信息
- [ ] 返回数据:用户列表、总数
## 5. 开发优先级
### 阶段一最小可用版本MVP
- [x] 项目初始化和框架搭建
- [ ] 数据库连接配置
- [ ] Go 后端:用户查询接口
- [ ] 前端:用户列表展示
- [ ] 基础查询功能(关键字搜索)
### 阶段二:功能完善
- [ ] 筛选功能(状态、角色、机构)
- [ ] 分页功能
- [ ] 排序功能
- [ ] 关联查询(机构名称、角色名称)
- [ ] 界面优化
### 阶段三:增强功能(后续考虑)
- [ ] 用户修改功能
- [ ] 用户新增功能
- [ ] 用户删除功能
- [ ] 数据导出功能
- [ ] 性能优化
## 6. 技术实现要点
### 6.1 Go 后端
- 使用 GORM 连接 MySQL
- 定义 `MemberInfo` 结构体(参考 `ops-kit/internal/model/member_info.go`
- 实现查询方法,参数不超过 3 个
- 返回 JSON 格式数据
### 6.2 前端
- 使用 Arco Design Vue 组件
- 表格组件:`a-table`
- 查询表单:`a-form` + `a-input` + `a-select`
- 分页组件:`a-pagination`
### 6.3 数据库查询
- 基础查询:`SELECT * FROM member_info WHERE ...`
- 关联查询机构:`LEFT JOIN organ_info ON member_info.organid = organ_info.organid`
- 关联查询角色:`LEFT JOIN sys_member_role ON member_info.memberid = sys_member_role.memberid`
## 7. 参考实现
- **前端参考**`lab-admin/src/views/member/index.vue`
- **后端参考**`lab-api/src/main/java/cn/casehub/member/MemberService.java`
- **数据模型参考**`ops-kit/internal/model/member_info.go`
- **数据库连接参考**`ops-kit/internal/database/db.go`
## 8. 项目定位说明
### 8.1 应用用途
**测试验证技术栈** - 通过实际项目验证 Wails + Go + Arco-Vue 技术栈的可行性
### 8.2 目标用户
**开发者自己** - 技术型验证项目,用于学习和验证技术能力
### 8.3 核心验证点
1. **打包构建**:验证 Wails 的打包和构建流程
2. **前后端交互**:验证 Go 后端与 Vue 前端的通信机制
3. **系统资源交互**:验证数据库连接、文件操作等系统资源访问能力
4. **跨平台能力**:验证 Windows/macOS/Linux 平台兼容性
### 8.4 数据来源
- **数据库**MySQL lab_dev本地数据库
- **数据表**member_info用户表
- **连接方式**:直接连接,无需外部服务
### 8.5 离线能力
- 支持离线使用(连接本地数据库)
- 不依赖网络服务
### 8.6 更新机制评估
**复杂度评估**:中等复杂度,实现难度不高
**实现方式**
1. **简单方案**(推荐用于验证):
- 应用启动时检查版本号(从配置文件或服务器获取)
- 提示用户有新版本,引导手动下载更新
- **复杂度**:低,实现简单
2. **完整方案**(如需自动更新):
- 版本检查:启动时请求服务器获取最新版本信息
- 下载更新后台下载更新包zip/exe
- 自动替换:下载完成后替换旧版本,重启应用
- **复杂度**:中等,需要处理:
- 版本管理(版本号对比)
- 文件下载(断点续传、进度显示)
- 文件替换Windows 需要关闭进程后替换)
- 错误处理(下载失败、替换失败等)
**推荐**
- **当前阶段**:暂不实现自动更新,手动更新即可
- **后续考虑**:如需实现,建议使用第三方库(如 `wails-updater` 或自行实现简单版本检查)
**参考实现**
- Wails 社区有相关更新方案示例
- 可以参考 Electron 的更新机制设计思路
---
**当前阶段**:实现用户查询展示功能,修改维护功能后续考虑。