|
@@ -0,0 +1,89 @@
|
|
|
+# 145教材系统技术文档
|
|
|
+
|
|
|
+## 一、技术语言和框架
|
|
|
+#### 数据库和数据表
|
|
|
+- 数据库:[PostgreSQL](https://www.postgresql.org/ "PostgreSQL")
|
|
|
+- 数据表
|
|
|
+ - _User【用户】
|
|
|
+ - Profile 【用户角色】
|
|
|
+ - Department 【单位部门】
|
|
|
+ - EduTextbook 【教材】
|
|
|
+ - EduTextbookVolume 【分册】
|
|
|
+ - Activity 【评审活动】
|
|
|
+ - Company 【公司】
|
|
|
+ - EduProcess 【流程】
|
|
|
+ - EduReview 【评审记录】
|
|
|
+ - ExpertGroup 【评审组】
|
|
|
+
|
|
|
+### 后端语言及框架
|
|
|
+- 编写语言:JavaScript
|
|
|
+- 技术框架:[Node.js](https://bcn4fkmpxbdo.feishu.cn/wiki/N10SwNRbmi2lfCktmAacehxInzf#share-W6CqdCNP7oyKTMxFjKTcxSIgnYd "Node.js")、[Parse Server](https://parseplatform.org/parse-server/api/7.3.0/ "Parse")
|
|
|
+### 前端语言及框架
|
|
|
+- 编写语言:TypeScript、HTML、SCSS
|
|
|
+- 技术框架:Angular18、Vite、NG-ZORRO
|
|
|
+
|
|
|
+## 二、客户端前端
|
|
|
+### 用户操作逻辑介绍
|
|
|
+graph TB
|
|
|
+ Start(开始) --> User[用户登录页]
|
|
|
+ User --> Register[注册]
|
|
|
+ User --> Login[用户登录]
|
|
|
+ Register --> Regcomplete[注册成功]
|
|
|
+ Regcomplete --> User
|
|
|
+ Login --> Manage[登录成功进入后台]
|
|
|
+ Manage --> LogOut[退出登录]
|
|
|
+ LogOut --> End(结束)
|
|
|
+
|
|
|
+### 身份权限
|
|
|
+- 登录成功时存储本地缓存profile;
|
|
|
+- 通过profile.identity身份判断角色验证
|
|
|
+- 全局采用路由守卫 [auth.guard.ts](projects\textbook\src\services\auth.guard.ts "Parse")
|
|
|
+### 页面路由
|
|
|
+- 入口路由文件:projects\textbook\src\app\app.routes.ts
|
|
|
+- 各个身份子路由
|
|
|
+ - user/login //默认路由
|
|
|
+ - nav-admin //国家级管理员管理平台
|
|
|
+ - nav-province-contact //工作联系人:中央部门所属高校联系人、部省合建高校联系人、出版单位联系人、省属高校流程管理员
|
|
|
+ - nav-province-school-contact //高校联系人
|
|
|
+ - nav-review //教材评审组成员
|
|
|
+ - nav-author //作者 / 教师 / 主编
|
|
|
+### 主组件
|
|
|
+- app-comp-manage【全局组件】:登录成功后跳转后页面显示;包括左侧menu,通过optionsMap身份对应显示身份功能栏
|
|
|
+ - 附件下载功能函数:openFile、downloadFile
|
|
|
+- app-comp-nav 【个人信息组件】:页面左下角个人信息,包括退出登录功能
|
|
|
+- app-comp-upload 【文件上传组件】
|
|
|
+ - provider-oss-aliyun 引入阿里OSS处理函数等,含公开转私有、私有转公开、临时链接等
|
|
|
+ - 重点传入参数
|
|
|
+ - @files:回显文件
|
|
|
+ - @acl 上传类型,是否加密
|
|
|
+ - 上传成功、失败、删除文件触发回调
|
|
|
+ - 函数`change`,返回fileList
|
|
|
+- app-textbook 【教材列表组件】
|
|
|
+ - 重点传入参数
|
|
|
+ - @filterObj 相关权限配置
|
|
|
+ - @uid 对应用户
|
|
|
+ - @eduProcess 流程id,verify存在时需要
|
|
|
+ - @discard 是否删除
|
|
|
+ - @recommend 是否推荐
|
|
|
+ - 重要函数解释
|
|
|
+ - `getTextbook`:获取教材列表重要函数,利用Parse.Query.fromJSON多条件查询,通过设定参数传入接口查询获取教材,满足全平台90%以上页面教材列表管理
|
|
|
+ - `getDepartment`:获取所有单位部门
|
|
|
+ - `reject`: 退回教材
|
|
|
+ - `del`:删除教材
|
|
|
+ - `updateStatus`:加入/移除推荐
|
|
|
+ - `submit`:提交教材
|
|
|
+ - `beforSubmit`:高校联系人提交教材至工作联系人
|
|
|
+ - `restore`:恢复教材
|
|
|
+ - `exportProcess`:导出教材;功能业务:导出推荐汇总表
|
|
|
+ - `submitted`:提交报送跳转,非直接请求报送教材接口
|
|
|
+### 各身份模块
|
|
|
+##### 用户登录
|
|
|
+- parse-authing.ts 【登录服务类】 应用authing登录回调,返回获取登录结果
|
|
|
+ - initLoginModal 初始化登录模块
|
|
|
+- app-login 登录页
|
|
|
+ - new ParseAuthing实例化authing登录服务,通过login成功后回调调用AuthServr服务类,profileVerify处理登录成功后函数
|
|
|
+##### 作者/教师/主编
|
|
|
+- 路由模块:`NavAuthorRoutingModule`
|
|
|
+- 个人空间:app-space
|
|
|
+ - 调用组件:app-textbook
|
|
|
+ - 主要函数:`getEduProcess` 获取教师所属单位的流程
|