2.7 KiB
这是一个 基于IM的OA客户端工具,项目名称叫ChatOA,通过即时通讯的方式实现对话、文件互传,表单签批等,用户为办公室人员,与微信电脑端类似,功能包含 1即时通讯对话 2联系人 3日程 4表单 5笔记 6应用 7网盘 功能不需要一次性完成,单1 2 3 优先 ,5和4先做Demo 6 7属于扩展。 整体结构参考微信电脑端,分三列,第一列为功能图标导航按钮 第二列为功能区:例如联系人列表等,第三列为主要工作区。
技术路线: 客户端:Electron + React/Vue + TypeScript 服务端:Node.js + TypeScript(NestJS 或 Express) 数据库:MongoDB + Redis 通信:Socket.IO(WebSocket 封装)
前端:
- 支持 Windows
- 包含登录页、聊天列表页、聊天窗口页的路由
- 联系人页
- 日程页
- 表单页(自定义表单,支持创建、管理、填写,表单存储为Json格式)
- 集成 Socket.IO 客户端
服务端: 用 Node.js + NestJS + TypeScript 写 IM 服务端, 模块包括:
- 用户认证(JWT)
- WebSocket 网关(Socket.IO)
- 消息存储(MongoDB)
- 在线状态管理(Redis)
- 离线消息推送
如果还有问题,请及时提出。
知识库的设计逻辑为:笔记,分左右结构,左边为多级目录,支持搜索,左侧区域的宽度等于聊天界面对话列表区域的宽度(1-7个模块,需要全局统一宽度),右侧为笔记编辑界面。
应用页面:分左右结构,左边为两个Tab,一个为我的应用,另一个为应用市场,支持搜索,右侧为应用的展示、操作区,模拟几个应用。 网盘页面:先做Demo,分左右结构,左边为 搜索结果,本机文件,我的文件,团队文件,系统文件,分享文件,回收站 几个导航菜单,底部显示云盘的容量和使用情况。右侧为文件夹显示区域。 日程页面:分左右结果,左侧区域上面一个小型月历视图,用点标记日程、生日、纪念日等,左侧下方显示 分多个tab页:今日(默认)、明日、一周内等信息。右侧为大型月历视图。
知识库(笔记)页面调整项:1图标和文字需要保持在同一行。2左边文件夹目录后面显示笔记条数。3右侧编辑区需要支持多页签。4笔记编辑组件采用html富文本编辑器。
联系人页面:新增分组:同事(组织内好友)|AI助手(AI助手工具:单击后进入AI对话聊天界面,模型支持多种模型可选)|朋友(指非组织内朋友,通过添加好友的) 。
系统框架: 首页左下角个人头像图标,单击后 进行显示个人信息并修改签名、设置状态(内置 上班、外出、出差、请假、学习、休假等状态)