Files
ChatOA/项目要求.md
T

110 lines
5.8 KiB
Markdown
Raw 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.
# ChatOA 项目要求与完成状态
> 本文档为 ChatOA 客户端的需求基线。原需求逐条保留,每条后标注当前完成状态。
> 更新日期:2026-08-23 当前版本:v0.1.0
## 一、项目概述
这是一个基于 IM 的 OA 客户端工具,项目名称叫 ChatOA,通过即时通讯的方式实现对话、文件互传、表单签批等,用户为办公室人员,与微信电脑端类似。
功能优先级:1 即时通讯对话、2 联系人、3 日程 优先完成;5 笔记、4 表单先做 Demo;6 应用、7 网盘属于扩展。
- [x] 整体结构参考微信电脑端,分三列:第一列为功能图标导航按钮,第二列为功能区(如联系人列表),第三列为主要工作区 —— **✅ 已完成**
## 二、技术路线
- [x] **客户端**Electron + React + TypeScript —— **✅ 已完成**Electron + Vite + React 18 + TS + Ant Design 5 + Zustand
- [x] **服务端**Node.js + TypeScriptNestJS)—— **✅ 已完成**NestJS 11 + Socket.IO + JWT
- [ ] **数据库**MongoDB + Redis —— **⏳ 预留**(当前 JSON 文件持久化,`server/src/config.ts` 已留 Mongo/Redis 配置位)
- [x] **通信**Socket.IOWebSocket 封装)—— **✅ 已完成**
## 三、前端要求
- [x] 支持 Windows —— **✅ 已完成**Electron 便携版)
- [x] 包含登录页、聊天列表页、聊天窗口页的路由 —— **✅ 已完成**
- [x] 联系人页 —— **✅ 已完成**
- [x] 日程页 —— **✅ 已完成**
- [x] 表单页(自定义表单,支持创建、管理、填写,表单存储为 JSON 格式)—— **✅ 已完成**
- [x] 集成 Socket.IO 客户端 —— **✅ 已完成**
## 四、服务端要求
- [x] 用户认证(JWT)—— **✅ 已完成**`server/src/auth`JWT 7 天有效)
- [x] WebSocket 网关(Socket.IO)—— **✅ 已完成**`server/src/chat`
- [ ] 消息存储(MongoDB)—— **⏳ 预留**(当前 JSON 存储)
- [ ] 在线状态管理(Redis)—— **⏳ 预留**(当前 `presence` 模块 JSON 模拟)
- [ ] 离线消息推送 —— **⏳ 预留**
## 五、各模块细化需求与状态
### 5.1 知识库(笔记)
- [x] 分左右结构,左边为多级目录,支持搜索,左侧区域宽度与聊天对话列表区域一致(1-7 个模块全局统一宽度)—— **✅ 已完成**
- [x] 右侧为笔记编辑界面 —— **✅ 已完成**
- [x] 图标和文字保持在同一行 —— **✅ 已完成**
- [x] 左边文件夹目录后面显示笔记条数 —— **✅ 已完成**
- [x] 右侧编辑区支持多页签 —— **✅ 已完成**KeepAlive 多页签)
- [x] 笔记编辑组件采用 HTML 富文本编辑器 —— **✅ 已完成**
### 5.2 应用页面
- [x] 分左右结构,左边为两个 Tab:「我的应用」与「应用市场」,支持搜索 —— **✅ 已完成**
- [x] 右侧为应用的展示、操作区,模拟几个应用 —— **✅ 已完成**
- [x] 应用市场上架了「极简日历」应用(参考 calendarlite.bbitcn.net 产品)—— **✅ 已完成**2026-08-21 新增)
- [x] 应用分组折叠 —— **✅ 已完成**2026-08-22 新增)
### 5.3 网盘页面
- [x] 先做 Demo,分左右结构:左边为 搜索结果、本机文件、我的文件、团队文件、系统文件、分享文件、回收站 导航菜单,底部显示云盘容量与使用情况 —— **✅ 已完成**
- [x] 右侧为文件夹显示区域 —— **✅ 已完成**
### 5.4 日程页面
- [x] 分左右结构,左侧区域上面一个小型月历视图,用点标记日程、生日、纪念日等 —— **✅ 已完成**
- [x] 左侧下方分多个 Tab:今日(默认)、明日、一周内等 —— **✅ 已完成**
- [x] 右侧为大型月历视图 —— **✅ 已完成**
### 5.5 联系人页面
- [x] 新增分组:同事(组织内好友)| AI 助手(单击后进入 AI 对话界面,模型支持多种可选)| 朋友(非组织内朋友,通过添加好友)—— **✅ 已完成**
### 5.6 系统框架
- [x] 首页左下角个人头像图标,单击后显示个人信息并修改签名、设置状态(内置 上班、外出、出差、请假、学习、休假等状态)—— **✅ 已完成**`client/src/components/ProfileModal.tsx`
## 六、迭代变更记录
| 日期 | 变更 |
|------|------|
| 2026-08-21 | 应用市场上架「极简日历」应用(market-calendar-lite),含功能预览卡片、EXTERNAL_PROJECTS 与市场应用 id 对齐 |
| 2026-08-22 | 应用分组折叠功能;顶部标题栏新增版本编号 `ChatOA v0.1.0`(版本号唯一来源 `client/package.json`,经 Vite define 注入 `__APP_VERSION__` |
| 2026-08-23 | 首次提交并推送远程仓库;本文档更新为需求+完成状态双轨制;新增 `开发进度存档.md` |
## 七、后续待办(Roadmap
- [ ] 接入真实大模型 APIOpenAI / Claude / 豆包等)
- [ ] 表单流程接入后端实例审批链路
- [ ] 网盘接入 OSS / 本地文件同步
- [ ] 消息已读回执、撤回、引用
- [ ] 接入 MongoDB / Redis 生产级存储
- [ ] 移动端响应式适配
## 八、快速启动(新环境省积分指南)
> 更换文件夹路径 / 重新安装 CodeBuddy 后,按此快速恢复开发环境。完整细节见 `开发进度存档.md`。
```powershell
# 1. 安装依赖(首次)
cd server; npm install
cd ..\client; npm install
# 2. 启动服务端(端口 3000
cd server; npm run start:dev
# 3. 启动客户端(Vite 5173Electron 桌面窗口)
cd client; npm run dev
# 4. 浏览器调试版(不带 Electron,最省资源)
cd client; npm run dev:web
# 5. 打包便携版 exe
cd client; npm run build:portable
```
- 演示账号:`demo / 123456`(另含 alice / bob / carol,密码同 123456
- 客户端启动方式详见 `开发进度存档.md` 第二节。