feat(user): 支持修改当前用户资料接口并更新个人中心调用
- 新增 updateSelfUser 方法,用于修改当前登录用户的个人资料 - 个人中心调用接口由原 updateUser 切换为 updateSelfUser,避免学生账号权限不足导致的保存失败 - 更新了头像保存、个人信息保存等相关调用代码,添加异常捕获和提示 - 修正环境变量 .env.development 中 API URL 配置为生产地址 - 优化审核记录排序逻辑,新增获取最新审核记录和编辑入口显示判断函数 - 调整审核状态标签使用统一排序规则,防止显示和编辑状态不一致 - 新增社团活动、社团编辑、志愿时长录入、学分记录编辑、社会实践学分申报、青马学员编辑等多个新增组件及表单功能 - 各新增功能支持表单验证、操作反馈和数据加载优化
This commit is contained in:
@@ -0,0 +1,295 @@
|
||||
# 团委智能化平台二期实施方案
|
||||
|
||||
> 依据《副本二期功能--定稿0802.docx》(4 大模块 26 项功能),结合 tuanwei-admin(Vue3)与 tuanwei-java(Spring Boot)现有底座制定。文档中括号内的疑问已逐条对应到「待确认项」,未确认处按默认假设推进。
|
||||
|
||||
## 一、总体判断
|
||||
|
||||
二期不是从零建设。现有系统已经具备四项可复用底座:**申报+审核流引擎**(9 张申报表、三级审核、状态回写)、**学生/教师名册与认领体系**(`gxmu_student.user_id` 是身份主键)、**文件与 Word 导出**(S3 存储、XWPF 直绘、电子签名图片叠加)、**爬虫与异步任务**(jsoup + 定时 + 进度表)。
|
||||
|
||||
真正缺失的是三块能力,必须新建:
|
||||
1. **站内消息中心**——后端完全没有 `oa_notice`,但前端顶栏铃铛和 `/user/notice` 页面已经在调 `/oa/notice/*`,属于「前端等后端」。
|
||||
2. **业务域**——学分、志愿、社团、场地、青马培养档案、专家评审均无表、无接口。
|
||||
3. **OCR / PDF 生成**——无 OCR 依赖;PDF 只能靠服务器 LibreOffice 转换。
|
||||
|
||||
**结论:全量规划、分三期实施。** 本期(P0)先打通「学生成长主页 + 学分 + 志愿 + 社团场地 + 青马档案 + 消息中心 + 团课库」这条主干,P1 补齐审核类与 AI 类,P2 做画像与数字人。
|
||||
|
||||
移动端:本机没有 uni-app 工程,`tuanwei-admin` 是纯 PC 后台。**本期只交付 PC,接口按可对外(`/api/open`)设计**,学生端后续独立建工程,不阻塞本期。
|
||||
|
||||
---
|
||||
|
||||
## 二、菜单规划
|
||||
|
||||
原则:**不动现有 12 个一级菜单、不迁移已有子菜单**,避免破坏已配置的角色授权。二期新增 2 个一级菜单,其余能力挂到语义最贴近的现有菜单下。
|
||||
|
||||
### 新增一级菜单
|
||||
|
||||
```
|
||||
成长中心 /growth (menu_id 14500)
|
||||
├ 我的成长 /growth/myHome 14501 学生个人成长主页
|
||||
├ 学分明细 /growth/credit 14502 第二课堂学分 + 社会实践学分汇总
|
||||
├ 社会实践学分 /growth/practiceCredit 14503 申报 + 四级审核 + 教务处模板导出
|
||||
├ 学分预警 /growth/creditWarning 14504 缺口预测 + 补分建议
|
||||
├ 学生画像 /growth/portrait 14505 多维雷达 + 标签
|
||||
└ 推荐内容 /growth/recommend 14506 思政文章/活动推荐 + 后台发布
|
||||
|
||||
社团与志愿 /club (menu_id 14520)
|
||||
├ 志愿服务时长 /club/volunteerHour 14521 个人录入 + 桂志愿导入
|
||||
├ 志愿时长审核 /club/volunteerReview 14522 二级学院审核
|
||||
├ 志愿证明 /club/volunteerCertificate 14523 年度证明生成下载
|
||||
├ 社团管理 /club/club 14524 社团 + 成员 + 指导老师
|
||||
├ 社团活动 /club/activity 14525 发起 + 材料
|
||||
├ 活动审批 /club/activityReview 14526 四级审批 + 公章识别
|
||||
├ 场地预约 /club/venue 14527 场地日历 + 预约
|
||||
├ 场地审批 /club/venueReview 14528 指导老师 → 校团委
|
||||
├ 社团年审 /club/annualReview 14529 指标 + 自评 + 自动取数 + 公示
|
||||
└ 社团评优 /club/award 14530 评优申报 + 审核 + 公示
|
||||
```
|
||||
|
||||
### 挂到现有菜单
|
||||
|
||||
| 现有菜单 | 新增子项 | path |
|
||||
|---|---|---|
|
||||
| 数字化团员 14342 | 青马学员档案 | `/gxmu/qmgcStudent` |
|
||||
| | 培养任务 | `/gxmu/qmgcTask` |
|
||||
| | 考核评分 | `/gxmu/qmgcScore` |
|
||||
| | 主题团课库 | `/gxmu/thematicCourse` |
|
||||
| AI内容创作与宣传助手 14365 | AI辅助教学设计 | `/gxmu/teachingDesign` |
|
||||
| | AI主题团日设计 | `/gxmu/themeDayDesign` |
|
||||
| 挑战杯 14372 | 专家评审 | `/gxmu/expertReview` |
|
||||
| | 专家库 | `/gxmu/expertPool` |
|
||||
| 系统设置 8574 | 消息模板 | `/system/messageTemplate` |
|
||||
| | 推送记录 | `/system/messageLog` |
|
||||
|
||||
`青马工程`(14353)保留为**申报入口**,新增的学员档案管培养期,两者不合并。消息中心的用户侧直接复用已有的 `/user/notice`(已隐藏菜单)+ 顶栏铃铛,零改动即可生效。
|
||||
|
||||
### 不推荐但已备选
|
||||
|
||||
把「五四评优/学术之星/青马工程」从数字化团员迁到申报系统,结构更清晰,但会动 6 个菜单的 `parent_id` 和全部角色授权,回归风险高。如后续确需重组,单独出一个迁移脚本。
|
||||
|
||||
---
|
||||
|
||||
## 三、分期实施计划
|
||||
|
||||
### P0(本期,可上线的最小闭环)
|
||||
|
||||
| # | 功能 | 对应文档 | 交付物 |
|
||||
|---|---|---|---|
|
||||
| 1 | 站内消息中心 | 模块一·4 | `oa_notice` + 记录表 + `/oa/notice/*` 接口 + 审核钩子(提交/通过/驳回/待办)+ 顶栏铃铛生效 |
|
||||
| 2 | 第二课堂学分 | 模块一·1 | 学分规则表 + 学分记录表 + Excel 导入(模板/校验/失败清单)+ 明细页 |
|
||||
| 3 | 学生成长主页 | 模块一·3 | 聚合接口 + 简历式页面(基本信息/学分/志愿/活动/申报/荣誉) |
|
||||
| 4 | 志愿时长 | 模块三·1·2 | 个人录入(盖章附件)+ 桂志愿导入 + 二级学院审核 |
|
||||
| 5 | 社团管理 | 模块三·3·7 | 社团主档 + 成员 + 指导老师 + 活动发起 + 四级审批 |
|
||||
| 6 | 场地预约 | 模块三·6 | 场地主档 + 日历视图 + 冲突校验 + 指导老师→校团委审批 |
|
||||
| 7 | 青马培养档案 | 模块二·1 | 学员主档 + 培养材料提交 + 任务清单 + 任务完成度 |
|
||||
| 8 | 主题团课库 | 模块二·6 | 爬虫(jsoup + 定时 + upsert)+ 列表/详情/下载 + 标签 |
|
||||
| 9 | 工程配套 | — | 菜单/按钮/角色授权 SQL、字典、权限码、联调回归 |
|
||||
|
||||
估算 **53 人日**,2 人并行约 **5.5 周**。
|
||||
|
||||
### P1(第二批)
|
||||
|
||||
社会实践学分申报(四级审核 + 教务处模板导出)、学分预警(规则 + 定时 + 消息)、智能推荐(内容库 + 规则引擎 + 推送)、学生画像(维度聚合 + 雷达图)、社团年审(指标配置 + 自评 + 自动取数 + 公示)、社团评优、年度志愿证明(docx + 电子章 + PDF)、社团年度报告(聚合 + AI 小结 + 导出)、专家评审(专家库 + 任务 + 分配 + 打分 + 汇总)、AI 辅助教学设计与主题团日设计、**审核流并行审批改造**。
|
||||
|
||||
估算 **63 人日**,2 人并行约 **6.5 周**。
|
||||
|
||||
### P2(探索期)
|
||||
|
||||
AI 学员学习情况分析、AI 定制培养建议、OCR 公章识别接入、AI 数字人(形象 + 浮窗 + 知识库问答)、移动端接口整理。
|
||||
|
||||
估算 **23 人日**,约 **2.5 周**。
|
||||
|
||||
**合计约 139 人日,2 人并行约 14-15 周。**
|
||||
|
||||
---
|
||||
|
||||
## 四、数据模型(新表)
|
||||
|
||||
统一规范:`id BIGINT AUTO_INCREMENT`、`tenant_id`、`user_id`、`deleted`、`create_time`、`update_time`;附件用 `file_id + file_url` 或 JSON 数组;审批一律复用 `gxmu_review_list(module, pk)`。
|
||||
|
||||
### 学分 / 成长域
|
||||
- `gxmu_credit_rule`:学分类别、项目、分值、认定方式(import/manual/practice)、适用年级
|
||||
- `gxmu_credit_record`:`user_id, source(second_class|practice|activity), external_id, category, item_name, score, acquire_time, status, evidence`
|
||||
- `gxmu_practice_credit_apply`:学年、活动名、类型、起止、角色、内容、附件 JSON
|
||||
- `gxmu_graduate_requirement`:`year, college_id, major, category, required_score`
|
||||
- `gxmu_credit_warning`:`user_id, category, gap, level, hit_time, notified`
|
||||
- `gxmu_student_profile`:画像快照(维度分、标签 JSON、更新时间)
|
||||
- `gxmu_recommend_content`:类型(article/activity)、标题、封面、关联 ID、标签
|
||||
- `gxmu_recommend_delivery`:`user_id, content_id, channel, is_read`
|
||||
|
||||
### 志愿域
|
||||
- `gxmu_volunteer_record`:`user_id, source(gz|self), project, hours, service_date, org_name, proof_files JSON, status`
|
||||
- `gxmu_certificate_template`:模板标题、正文占位符、电子章图片、编号前缀
|
||||
- `gxmu_volunteer_certificate`:`user_id, year, total_hours, serial_no, file_id`
|
||||
|
||||
### 社团 / 场地域
|
||||
- `gxmu_club`:名称、类别、`college_id`、`advisor_user_id`、社长、等级、状态
|
||||
- `gxmu_club_member`:`club_id, user_id, role, join_time, status`
|
||||
- `gxmu_club_activity`:`club_id, title, start/end, place, scale, budget, attachments JSON, review_status, ocr_status, ocr_org`
|
||||
- `gxmu_club_annual_metric`:指标名、权重、取数方式(auto/manual)、公式
|
||||
- `gxmu_club_annual_review`:`club_id, year, self_score, auto_score, final_score, materials, status`
|
||||
- `gxmu_club_award_apply`:`club_id, year, award_type, materials, status`
|
||||
- `gxmu_club_report`:`club_id, year, summary JSON, file_id`
|
||||
- `gxmu_venue`:名称、楼栋、容量、设备、开放时段、管理员、状态
|
||||
- `gxmu_venue_booking`:`venue_id, user_id, club_id, booking_date, start_time, end_time, purpose, status`
|
||||
|
||||
### 青马域
|
||||
- `gxmu_qmgc_student`:`user_id, form_id, batch, year, college_id, candidate_no, stage, result`
|
||||
- `gxmu_qmgc_material`:`student_id, stage, type, title, content, file_id, score`
|
||||
- `gxmu_qmgc_task`:批次、阶段、标题、类型(online/offline)、跳转方式、截止时间
|
||||
- `gxmu_qmgc_task_assign`:`student_id, task_id, status, submit_time, score`
|
||||
- `gxmu_qmgc_score`:`student_id, dimension, item, score, scorer, comment`
|
||||
- `gxmu_qmgc_exam` / `gxmu_qmgc_exam_record`:题目 JSON、及格线、作答、得分
|
||||
|
||||
### 团课 / 专家 / 消息
|
||||
- `gxmu_thematic_course`:`title, type(courseware|script|video|case|activity), source_site, source_url, source_key UNIQUE, file_id, content, tags, heat`
|
||||
- `gxmu_expert`:`user_id, name, college, field_code, level, phone`
|
||||
- `gxmu_expert_review_task`:`module, declare_id, round, start/end, quota`
|
||||
- `gxmu_expert_review_assign`:`task_id, expert_id, status`
|
||||
- `gxmu_expert_review_score`:`assign_id, dimensions JSON, total, comment, submit_time`
|
||||
- `oa_notice` + `oa_notice_record`:从 `/Users/gxwebsoft/JAVA/com.gxwebsoft.open` 移植,字段对齐前端已有的 `noticeRecordId/type/files/channel/progress`
|
||||
|
||||
### 对现有表的改动(小步、可回滚)
|
||||
1. `gxmu_review_flow` + `gxmu_review_list` 增加 `parallel_group INT NULL` —— 支持「二级学院团委与党委同时审核」。
|
||||
2. `gxmu_review_list` 增加 `attachments TEXT` —— 审核节点上传盖章附件。
|
||||
3. `gxmu_declare.module` 若新增「团委科研课题」,同步加枚举(见待确认项)。
|
||||
|
||||
---
|
||||
|
||||
## 五、后端设计
|
||||
|
||||
### 包结构(新增,不动现有 24 个 gxmu 控制器)
|
||||
|
||||
```
|
||||
com.gxwebsoft.gxmu.credit/ 学分规则、记录、导入、预警
|
||||
com.gxwebsoft.gxmu.qmgc/ 青马学员、任务、评分、考试
|
||||
com.gxwebsoft.gxmu.club/ 社团、活动、年审、评优、年度报告
|
||||
com.gxwebsoft.gxmu.venue/ 场地与预约
|
||||
com.gxwebsoft.gxmu.volunteer/ 志愿时长与证明
|
||||
com.gxwebsoft.gxmu.thematic/ 主题团课库与爬虫
|
||||
com.gxwebsoft.gxmu.portrait/ 画像与推荐
|
||||
com.gxwebsoft.gxmu.expert/ 专家评审
|
||||
com.gxwebsoft.notice/ 消息中心(移植 + 渠道)
|
||||
```
|
||||
|
||||
每个子包内 `controller/entity/mapper/service/param`,与现有 `gxmu.openplat` 的组织方式一致。
|
||||
|
||||
### 接口约定
|
||||
|
||||
- 管理端统一 `/api/gxmu/{domain}/page|list|{id}|save|update|remove|batch`,沿用 `BaseController` + `BaseParam`,前端继续传 `backendAccess=true`。
|
||||
- 学生自助统一 `/api/gxmu/{domain}/my/*`,用 `hasOnlyStudentRole()` 收口,只返回本人数据。
|
||||
- 审核类不在各域重复造轮子,统一走 `gxmu_review_list`,前端复用 `reviewStatusTag` / `reviewHistoryModal` / `reviewFlowModal`。
|
||||
- 消息中心按前端**既有路径** `/api/oa/notice/*` 实现(`page`/`list`/`{id}`/`getUnReadNum`/`save`/`update`/`remove`),顶栏铃铛和 `/user/notice` 不需要改一行代码。
|
||||
- 导出走现有模式:Controller 生成文件 → `FileStorageService.storeFile` → `FileRecord` → 返回下载地址。
|
||||
|
||||
### 关键改造:审核流支持并行节点
|
||||
|
||||
现状:`ReviewListController.update` 用 `sortNumber + 1` 取下一节点,隐含「一个节点一个人」。青马选拔要求团委与党委**同时审核**,因此:
|
||||
- 模板按 `level` 分组,同 `level` 的多行属于同一并行组;
|
||||
- 通过时先检查同组是否还有 `status=0` 的节点,有则不推进;
|
||||
- 同组全部通过才进入下一 `level`;
|
||||
- 组内任一驳回是否终止整条流,做成 `ReviewFlowConfig.rejectMode`(任一驳回 / 全部驳回后终止),默认前者。
|
||||
- 该改造同时被社会实践学分、社团活动、场地预约复用。
|
||||
|
||||
### 关键改造:学分引擎
|
||||
|
||||
不引入规则引擎,用「配置表 + 计算服务」:
|
||||
1. `CreditRuleService.resolve(userId, year)` 按学院/年级/专业匹配 `gxmu_graduate_requirement`,得到各类别应修学分。
|
||||
2. `CreditSummaryService` 汇总 `gxmu_credit_record` 中 `status=有效` 的记录,按类别输出「已修/应修/差额/完成率」。
|
||||
3. 预警任务每天跑一次:差额 > 0 且距毕业不足 N 学期 → 生成 `gxmu_credit_warning` + 发站内消息;同一学生同一类别本月只发一次。
|
||||
4. 推荐:先做规则匹配(缺分 → 推荐可加分的活动/课程,按标签和学院过滤),AI 排序留到 P2。
|
||||
|
||||
### 关键技术点
|
||||
|
||||
- **志愿证明 PDF**:XWPF 直绘(复用 `WxxzxDocxExportUtil` 的 `addPicture` 叠电子章)→ `OpenOfficeUtil.converterToPDF` → 存 `FileRecord`。若服务器无 `soffice`,降级为前端打印(复用 `youthDataCenter.exportPdf` 模式),不阻塞上线。
|
||||
- **团课库爬虫**:完全复用 `CrossSchoolActivityCrawlerServiceImpl` 范式(站点配置 + jsoup + `source_key` 唯一键 + `batchUpsert` + 定时任务 + 手动 `/sync`),新增文件下载入库。
|
||||
- **AI 扩展**:`DifyProperties.AppKeys` 增加 4 个应用 key;`AiChatType` 增加 `teaching_design / theme_day_design / student_analysis / training_advice`;新增 `/api/ai/{xxx}` 与 `/stream`,沿用 `AiGenerationRecorder` 落历史。
|
||||
- **OCR**:不引入本地推理。P1 通过阿里云 OCR HTTP 接口(需开通 + AK),字段预留 `ocr_status/ocr_org/ocr_raw`;未开通时走「人工核验 + 附件留痕」。
|
||||
- **消息渠道**:站内信必做;企业微信在 `WxWorkUtil` 增加 `message/send`(token 逻辑已有);短信暂不做。
|
||||
|
||||
---
|
||||
|
||||
## 六、前端设计
|
||||
|
||||
### 目录与页面
|
||||
|
||||
```
|
||||
src/views/growth/
|
||||
myHome/ 我的成长(简历式:基本信息/学分/志愿/活动/申报/荣誉)
|
||||
credit/ 学分明细(类别筛选 + 来源 + 明细表 + 导入)
|
||||
practiceCredit/ 社会实践学分(申报表单 + 审核状态)
|
||||
creditWarning/ 学分预警(雷达/进度条/建议)
|
||||
portrait/ 学生画像
|
||||
recommend/ 推荐内容
|
||||
src/views/club/
|
||||
volunteerHour/ 我的志愿时长(录入 + 导入 + 列表)
|
||||
volunteerReview/ 志愿时长审核
|
||||
volunteerCertificate/
|
||||
club/ 社团管理(主档 + 成员抽屉)
|
||||
activity/ 社团活动
|
||||
activityReview/ 活动审批(复用 reviewFlowModal)
|
||||
venue/ 场地预约(日历 + 预约弹窗)
|
||||
venueReview/
|
||||
annualReview/ 年审(指标 + 自评 + 打分)
|
||||
award/
|
||||
src/views/gxmu/
|
||||
qmgcStudent/ qmgcTask/ qmgcScore/ thematicCourse/
|
||||
teachingDesign/ themeDayDesign/
|
||||
expertReview/ expertPool/
|
||||
src/views/system/
|
||||
messageTemplate/ messageLog/
|
||||
```
|
||||
|
||||
### 复用清单(不要重写)
|
||||
|
||||
- 列表骨架:`ele-pro-table` + `.page/.ele-body/a-card`,照 `studentRoster`。
|
||||
- 导入:`views/gxmu/components/common-import.vue`(模板下载、逐行校验、失败清单)。
|
||||
- 附件:`components/attachmentList.vue` + `views/gxmu/utils/attachment.ts`;单文件用 `components/UploadFile`。
|
||||
- 审核:`reviewStatusTag` / `reviewHistoryModal` / `reviewFlowModal` / `views/gxmu/utils/review.ts`。
|
||||
- 图表:`utils/use-echarts.ts` + `vue-echarts`,照 `youthDataCenter`。
|
||||
- 导出:Excel 用 `xlsx`;打印式 PDF 照 `youthDataCenter.exportPdf`;docx 用 `html-docx-js-typescript`。
|
||||
- AI 页:复制 `activityOutlineGen` 壳 + `utils/ai-stream.ts` + `utils/ai-result.ts`。
|
||||
- 权限:`hasPermission` / `v-permission`;角色用 `hasAnyRole`(`hasRole` 是「全部满足」语义)。
|
||||
|
||||
### 需要新建的公共件
|
||||
|
||||
1. `components/MultiFileUpload`:统一多附件上传(现有各表单各写了一套)。
|
||||
2. `components/AiGenPageShell`:把「左侧表单 + 右侧流式输出 + 历史入口」抽出,避免再复制 4 个 800-1300 行的页面。
|
||||
3. `utils/export.ts`:收敛 Excel/CSV/打印 PDF 的重复代码。
|
||||
4. `src/constants/permissions.ts`:集中权限码。
|
||||
|
||||
### 顺带修的两个既有问题
|
||||
|
||||
- `views/user/profile` 保存走 `PUT /system/user`(要 `sys:user:update`),学生账号会失败。改为后端已有的 `PUT /system/user/self`,成长主页的「编辑资料」直接受益。
|
||||
- `reviewStatusTag` 按 `id` 取最新,`utils/review.ts` 按 `createTime+id`,两处规则不一致。二期接入新审核模块前统一到 `utils/review.ts`。
|
||||
|
||||
---
|
||||
|
||||
## 七、实施顺序(建议按此推进)
|
||||
|
||||
1. **基建先行**:消息中心(表 + 移植 + 钩子)+ 菜单/权限 SQL + 字典 + `MultiFileUpload`。
|
||||
2. **学历域**:学分规则/记录/导入 → 成长主页聚合 → 明细页。
|
||||
3. **志愿域**:录入/导入 → 审核 → 证明(证明依赖 LibreOffice,放最后)。
|
||||
4. **社团域**:社团主档/成员 → 活动 → 四级审批 → 场地日历 → 场地审批。
|
||||
5. **青马域**:学员档案 → 任务 → 材料 → (P1)评分/考试。
|
||||
6. **团课库**:建表 → 爬虫 → 列表/详情。
|
||||
7. **P1**:学分预警/推荐/画像 → 社会实践 → 社团年审/评优/年报 → 专家评审 → AI 教学设计/团日设计 → 审核流并行改造(此改造需在青马选拔上线前完成,实际应提前到 P0 末尾)。
|
||||
8. **P2**:AI 学员分析/培养建议 → OCR → 数字人。
|
||||
|
||||
每批交付都包含:建表 SQL(可重复执行)、菜单/按钮 SQL、后端接口、前端页面、联调、回归。第一步先在仓库落地 `docs/phase2-implementation-plan.md`(本方案)和 `docs/sql/phase2_*.sql`。
|
||||
|
||||
---
|
||||
|
||||
## 八、待你确认的业务细节(有默认值,确认前按默认推进)
|
||||
|
||||
| 事项 | 默认假设 | 影响 |
|
||||
|---|---|---|
|
||||
| 第二课堂 / 桂志愿 是否有 API | 先 Excel 导入,`source/external_id` 预留,后续换数据源 | P0 导入模板字段 |
|
||||
| 学分规则与毕业要求 | 按「学院 + 年级 + 专业 + 类别」配应修学分,由管理员在后台维护 | 预警准确性 |
|
||||
| 青马评分标准/任务清单 | 评分项和权重做成可配置表,任务分线上(可跳转)与线下(仅勾选) | P1 评分页 |
|
||||
| 社团年审量化指标 | 做成指标配置表,活动数/参与人次/稿件数可自动取数,其余人工 | P1 年审 |
|
||||
| 指导老师是单人还是多人 | 社团主档存 1 名主指导,审批节点支持多人并行 | 审批流 |
|
||||
| 志愿证明模板与电子章 | 需要你提供模板文件与印章图片;未提供时用占位版 | P1 证明 |
|
||||
| 「团委科研课题」是否新申报模块 | 视为新模块,新增 `gxmu_research_project` 表并加入申报枚举 | 专家评审范围 |
|
||||
| 数字人形象 | 先用团委现有卡通形象,不做 3D | P2 |
|
||||
|
||||
其中前三项不确认就无法开工;其余可边做边定。**只要前三项给出结论,P0 可以立即启动。**
|
||||
Reference in New Issue
Block a user