比赛平台管理系统 - 前后端开发计划
一、项目概述
1.1 技术栈
| 层级 |
技术 |
| 前端 |
Vue 3 + TypeScript + Ant Design Vue + Vite |
| 后端 |
NestJS + Prisma + MySQL |
| 架构 |
多租户 + RBAC权限 + 动态路由菜单 |
1.2 系统角色
┌─────────────────────────────────────────────────────────────┐
│ 前端应用 │
├──────────┬──────────┬──────────┬──────────┬─────────────────┤
│ 超管端 │ 学校管理端 │ 教师端 │ 学生端 │ 评委端 │
│ (admin) │ (school) │(teacher) │(student) │ (judge) │
└──────────┴──────────┴──────────┴──────────┴─────────────────┘
二、超管端需求对照表(根据需求表格)
2.1 赛事管理模块
2.1.1 赛事列表页
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 列表查询 |
分页、筛选(赛事名称、状态、时间范围) |
GET /contests ✅ |
contests/Index.vue |
80% |
| 发布/撤销 |
切换赛事发布状态 |
PATCH /contests/:id/publish ✅ |
按钮操作 |
100% |
| 编辑 |
跳转编辑页 |
PATCH /contests/:id ✅ |
路由跳转 |
80% |
| 详情 |
查看赛事详情 |
GET /contests/:id ✅ |
contests/Detail.vue |
80% |
| 删除 |
删除赛事(软删除) |
DELETE /contests/:id ✅ |
按钮+确认 |
100% |
| 标记完结 |
将赛事标记为已完结状态 |
需新增接口 |
按钮操作 |
0% |
2.1.2 赛事新建/编辑页(多Tab表单)
| Tab |
字段 |
后端支持 |
前端组件 |
完成度 |
| 基本信息 |
赛事名称、赛事类型(个人/团队)、赛事封面、赛事简介、详细说明 |
✅ Contest模型已有 |
ContestForm.vue |
80% |
| 报名信息 |
报名开始/结束时间、报名范围(年级/班级)、团队人数限制、是否需审核 |
✅ Contest模型已有 |
Tab组件 |
60% |
| 作品信息 |
提交开始/结束时间、作品类型、是否允许重复提交、作品要求 |
✅ Contest模型已有 |
Tab组件 |
60% |
| 评审信息 |
评审开始/结束时间、评审规则、评分维度、评委分配 |
✅ ReviewRule模型 |
Tab组件 |
40% |
2.1.3 赛事公告
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 公告列表 |
查询赛事公告 |
GET /contests/notices/contest/:id ✅ |
需新增页面 |
20% |
| 新建公告 |
创建赛事公告 |
POST /contests/notices ✅ |
弹窗表单 |
20% |
| 编辑公告 |
修改公告内容 |
PATCH /contests/notices/:id ✅ |
弹窗表单 |
20% |
| 删除公告 |
删除公告 |
DELETE /contests/notices/:id ✅ |
按钮操作 |
20% |
2.2 报名管理模块
2.2.1 个人报名列表
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 列表查询 |
筛选(赛事、报名状态、学生姓名) |
GET /contests/registrations ✅ |
registrations/Index.vue |
70% |
| 审核通过 |
批量/单个审核通过 |
PATCH /registrations/:id/review ✅ |
按钮操作 |
70% |
| 审核拒绝 |
批量/单个审核拒绝 |
PATCH /registrations/:id/review ✅ |
按钮操作 |
70% |
| 导出 |
导出报名名单Excel |
需新增接口 |
按钮操作 |
0% |
| 报名详情 |
查看报名详细信息 |
GET /registrations/:id ✅ |
弹窗/抽屉 |
50% |
2.2.2 团队报名列表
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 列表查询 |
筛选(赛事、团队名称、负责人) |
GET /contests/teams ✅ |
需新增页面 |
30% |
| 团队详情 |
查看团队成员信息 |
GET /contests/teams/:id ✅ |
弹窗/抽屉 |
30% |
| 审核操作 |
审核团队报名 |
PATCH /registrations/:id/review ✅ |
按钮操作 |
30% |
2.3 参赛作品模块
2.3.1 作品列表
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 列表查询 |
筛选(赛事、作品状态、参赛者) |
GET /contests/works ✅ |
works/Index.vue |
60% |
| 锁定作品 |
锁定作品不允许再修改 |
PATCH /contests/works/:id ✅ |
按钮操作 |
50% |
| 分配评委 |
将作品分配给评委 |
POST /contests/reviews ✅ |
弹窗操作 |
40% |
| 查看详情 |
跳转作品详情页 |
GET /contests/works/:id ✅ |
路由跳转 |
50% |
2.3.2 作品详情页
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 基本信息 |
作品名称、提交者、提交时间、版本号 |
GET /contests/works/:id ✅ |
详情页 |
50% |
| 作品预览 |
预览作品内容(图片/视频/文档) |
需文件服务 |
预览组件 |
20% |
| 附件列表 |
查看作品附件 |
已有模型 |
附件列表 |
40% |
| 评审记录 |
查看各评委评分 |
GET /contests/reviews ✅ |
评审列表 |
30% |
| 历史版本 |
查看作品历史版本 |
需扩展接口 |
版本列表 |
20% |
2.4 评审进度模块
2.4.1 评审进度列表
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 进度概览 |
各赛事评审进度统计 |
需新增接口 |
reviews/Index.vue |
30% |
| 评委完成度 |
各评委评审完成情况 |
需新增接口 |
统计列表 |
20% |
| 作品评审状态 |
各作品评审状态分布 |
需新增接口 |
状态图表 |
20% |
2.4.2 评审进度详情
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 作品评审明细 |
单个作品各评委评分详情 |
GET /contests/reviews ✅ |
详情页 |
30% |
| 评分对比 |
评委评分差异对比 |
需新增接口 |
对比图表 |
0% |
| 最终得分 |
计算并显示最终得分 |
需完善逻辑 |
得分展示 |
20% |
2.5 评委管理模块
2.5.1 评委池列表
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 评委列表 |
查询所有评委 |
GET /contests/judges/contest/:id ✅ |
需新增页面 |
40% |
| 添加评委 |
从用户中选择添加评委 |
POST /contests/judges ✅ |
弹窗选择 |
40% |
| 设置权重 |
设置评委权重(加权平均) |
PATCH /contests/judges/:id ✅ |
表单编辑 |
30% |
| 移除评委 |
移除评委 |
DELETE /contests/judges/:id ✅ |
按钮操作 |
40% |
2.5.2 评委详情
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 基本信息 |
评委姓名、职称、专业领域 |
GET /contests/judges/:id ✅ |
详情页 |
30% |
| 评审统计 |
已评/待评数量统计 |
需新增接口 |
统计卡片 |
0% |
| 评审记录 |
该评委的评审记录 |
GET /contests/reviews ✅ |
记录列表 |
20% |
2.6 评审规则模块
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 规则配置 |
在赛事编辑中配置评审规则 |
POST/PATCH /contests/review-rules ✅ |
Tab组件 |
40% |
| 评分维度 |
配置评分维度(JSON配置) |
已支持dimensions字段 |
动态表单 |
30% |
| 计分方式 |
选择计分方式(平均/加权/最高/最低) |
已支持calculation字段 |
下拉选择 |
40% |
| 分数范围 |
设置最低/最高分 |
已支持minScore/maxScore |
数字输入 |
40% |
2.7 赛果发布模块
2.7.1 赛果列表
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 排名列表 |
按最终得分排名 |
需新增接口 |
需新增页面 |
0% |
| 奖项设置 |
设置一二三等奖及比例 |
需新增接口 |
配置表单 |
0% |
| 批量设置 |
批量设置获奖等级 |
需新增接口 |
批量操作 |
0% |
| 发布赛果 |
发布最终结果 |
需新增接口 |
按钮操作 |
0% |
2.7.2 赛果详情
| 功能点 |
描述 |
后端API |
前端组件 |
完成度 |
| 获奖名单 |
查看获奖名单 |
需新增接口 |
详情页 |
0% |
| 证书生成 |
生成获奖证书 |
需新增接口 |
证书模板 |
0% |
| 导出 |
导出获奖名单 |
需新增接口 |
按钮操作 |
0% |
三、现状分析
3.1 后端模块完成度
| 模块 |
目录 |
API完成度 |
说明 |
| 认证模块 |
src/auth/ |
100% |
登录、JWT、权限守卫 |
| 用户模块 |
src/users/ |
100% |
用户CRUD |
| 角色模块 |
src/roles/ |
100% |
角色CRUD、权限分配 |
| 权限模块 |
src/permissions/ |
100% |
权限CRUD |
| 菜单模块 |
src/menus/ |
100% |
菜单CRUD、用户菜单 |
| 租户模块 |
src/tenants/ |
100% |
租户CRUD |
| 字典模块 |
src/dict/ |
100% |
字典CRUD |
| 配置模块 |
src/config/ |
100% |
系统配置CRUD |
| 学校模块 |
src/school/ |
100% |
学校、年级、班级、部门、教师、学生 |
| 赛事核心 |
src/contests/contests/ |
90% |
赛事CRUD、发布 |
| 团队模块 |
src/contests/teams/ |
90% |
团队CRUD、成员管理 |
| 报名模块 |
src/contests/registrations/ |
85% |
报名CRUD、审核 |
| 作品模块 |
src/contests/works/ |
80% |
作品提交、版本管理 |
| 评审规则 |
src/contests/review-rules/ |
70% |
规则CRUD |
| 评委模块 |
src/contests/judges/ |
75% |
评委CRUD |
| 评审模块 |
src/contests/reviews/ |
60% |
分配、评分(需完善统计) |
| 公告模块 |
src/contests/notices/ |
90% |
公告CRUD |
| 日志模块 |
src/logs/ |
0% |
未实现 |
| 赛果模块 |
- |
0% |
未实现 |
3.2 前端页面完成度
| 模块 |
页面 |
路径 |
完成度 |
说明 |
| 认证 |
登录页 |
/login |
100% |
✅ |
| 工作台 |
首页 |
/workbench |
100% |
✅ |
| 系统管理 |
用户管理 |
/system/users |
100% |
✅ |
| 系统管理 |
角色管理 |
/system/roles |
100% |
✅ |
| 系统管理 |
权限管理 |
/system/permissions |
100% |
✅ |
| 系统管理 |
菜单管理 |
/system/menus |
100% |
✅ |
| 系统管理 |
租户管理 |
/system/tenants |
100% |
✅ |
| 系统管理 |
字典管理 |
/system/dict |
100% |
✅ |
| 系统管理 |
配置管理 |
/system/config |
100% |
✅ |
| 系统管理 |
日志查询 |
/system/logs |
0% |
待开发 |
| 学校管理 |
学校信息 |
/school/schools |
100% |
✅ |
| 学校管理 |
部门管理 |
/school/departments |
100% |
✅ |
| 学校管理 |
年级管理 |
/school/grades |
100% |
✅ |
| 学校管理 |
班级管理 |
/school/classes |
100% |
✅ |
| 学校管理 |
教师管理 |
/school/teachers |
100% |
✅ |
| 学校管理 |
学生管理 |
/school/students |
100% |
✅ |
| 赛事管理 |
赛事列表 |
/contests/list |
70% |
需完善筛选、完结功能 |
| 赛事管理 |
赛事详情 |
/contests/:id |
60% |
需完善Tab结构 |
| 赛事管理 |
赛事表单 |
ContestForm.vue |
60% |
需完善多Tab表单 |
| 赛事管理 |
赛事公告 |
- |
20% |
需新增页面 |
| 报名管理 |
个人报名 |
/contests/registrations |
60% |
需完善审核、导出 |
| 报名管理 |
团队报名 |
- |
20% |
需新增页面 |
| 参赛作品 |
作品列表 |
/contests/works |
50% |
需完善分配、锁定 |
| 参赛作品 |
作品详情 |
- |
30% |
需完善详情页 |
| 评审进度 |
进度列表 |
/contests/reviews |
30% |
需重构为进度看板 |
| 评审进度 |
进度详情 |
- |
10% |
需新增页面 |
| 评委管理 |
评委列表 |
- |
30% |
需新增页面 |
| 评委管理 |
评委详情 |
- |
10% |
需新增页面 |
| 评审规则 |
规则配置 |
- |
30% |
需集成到赛事表单 |
| 赛果发布 |
赛果列表 |
- |
0% |
待开发 |
| 赛果发布 |
赛果详情 |
- |
0% |
待开发 |
3.3 数据模型完成度(Prisma Schema)
✅ 已定义的模型:
├── Tenant(租户)
├── User(用户)
├── Role/UserRole/Permission/RolePermission(权限体系)
├── Menu/TenantMenu(菜单体系)
├── Dict/DictItem(字典)
├── Config(配置)
├── Log(日志)
├── School/Grade/Department/Class/Teacher/Student(学校体系)
├── Contest(赛事)
├── ContestAttachment(赛事附件)
├── ContestReviewRule(评审规则)
├── ContestTeam/ContestTeamMember(团队)
├── ContestRegistration(报名)
├── ContestWork/ContestWorkAttachment(作品)
├── ContestJudge(评委)
├── ContestWorkJudgeAssignment(作品分配)
├── ContestWorkScore(作品评分)
└── ContestNotice(赛事公告)
❌ 需要新增/修改的模型:
├── Contest(需新增 status: 'ongoing'|'finished' 字段)
└── ContestResult(赛果发布)- 可选,也可用现有模型扩展
四、待开发清单(按需求表格)
4.1 后端待开发
P0 - 核心功能(超管端闭环)
| 序号 |
模块 |
任务 |
现状 |
描述 |
| B1 |
赛事 |
添加赛事完结接口 |
需新增 |
PATCH /contests/:id/finish |
| B2 |
报名 |
添加报名导出接口 |
需新增 |
GET /registrations/export Excel导出 |
| B3 |
作品 |
添加作品历史版本接口 |
需新增 |
GET /works/:id/versions |
| B4 |
评审 |
添加评审进度统计接口 |
需新增 |
GET /reviews/statistics 按赛事统计 |
| B5 |
评审 |
添加评委完成度统计 |
需新增 |
GET /reviews/judge-statistics |
| B6 |
评审 |
完善最终得分计算 |
需完善 |
根据规则计算最终得分 |
| B7 |
赛果 |
新增赛果发布模块 |
需新增 |
排名、奖项设置、发布 |
| B8 |
日志 |
日志模块实现 |
需新增 |
操作日志CRUD |
P1 - 辅助功能
| 序号 |
模块 |
任务 |
现状 |
描述 |
| B9 |
赛果 |
证书生成接口 |
需新增 |
PDF证书生成 |
| B10 |
赛果 |
获奖名单导出 |
需新增 |
Excel导出 |
| B11 |
文件 |
文件上传服务完善 |
需完善 |
支持预览URL生成 |
4.2 前端待开发
P0 - 超管端核心页面
| 序号 |
页面 |
路径 |
组件 |
依赖后端 |
描述 |
| F1 |
赛事列表完善 |
/contests/list |
contests/Index.vue |
B1 |
添加完结按钮、筛选完善 |
| F2 |
赛事表单重构 |
/contests/create |
contests/Form.vue |
- |
多Tab表单(基本信息/报名/作品/评审) |
| F3 |
赛事详情重构 |
/contests/:id |
contests/Detail.vue |
- |
多Tab详情页 |
| F4 |
赛事公告管理 |
/contests/:id/notices |
contests/notices/Index.vue |
- |
公告CRUD |
| F5 |
团队报名列表 |
/contests/team-registrations |
contests/team-registrations/Index.vue |
- |
团队报名管理 |
| F6 |
作品详情页 |
/contests/works/:id |
contests/works/Detail.vue |
B3 |
详情+附件+历史版本 |
| F7 |
评审进度看板 |
/contests/:id/review-progress |
contests/review-progress/Index.vue |
B4, B5 |
进度统计 |
| F8 |
评委管理页 |
/contests/:id/judges |
contests/judges/Index.vue |
- |
评委CRUD |
| F9 |
评审规则配置 |
集成到赛事表单 |
contests/components/ReviewRuleTab.vue |
- |
评分维度配置 |
| F10 |
赛果发布页 |
/contests/:id/results |
contests/results/Index.vue |
B7 |
排名/奖项/发布 |
| F11 |
日志查询页 |
/system/logs |
system/logs/Index.vue |
B8 |
日志查询 |
P1 - 详情与导出
| 序号 |
页面 |
路径 |
组件 |
依赖后端 |
描述 |
| F12 |
报名导出功能 |
- |
- |
B2 |
导出Excel按钮 |
| F13 |
评委详情弹窗 |
- |
contests/judges/Detail.vue |
B5 |
评委评审统计 |
| F14 |
评审详情页 |
/contests/reviews/:id |
contests/reviews/Detail.vue |
- |
各评委评分明细 |
| F15 |
赛果详情页 |
/contests/:id/results/:workId |
contests/results/Detail.vue |
B7 |
获奖详情 |
| F16 |
证书下载 |
- |
- |
B9 |
证书下载功能 |
五、开发优先级排期
Phase 1: 赛事管理闭环(3天)
目标:完善赛事列表、赛事表单(多Tab)、赛事详情
Day 1:
- F2: 赛事表单重构(多Tab:基本信息、报名信息、作品信息)
Day 2:
- F2续: 赛事表单(评审信息Tab + 评审规则配置 F9)
- B1: 赛事完结接口
- F1: 赛事列表完善(完结按钮、筛选)
Day 3:
- F3: 赛事详情页重构(多Tab展示)
- F4: 赛事公告管理页
Phase 2: 报名与作品管理(2天)
目标:完善报名审核、团队管理、作品详情
Day 4:
- F5: 团队报名列表页
- B2: 报名导出接口
- F12: 报名导出功能
Day 5:
- B3: 作品历史版本接口
- F6: 作品详情页(含附件、历史版本)
Phase 3: 评审进度与评委管理(2天)
目标:评审进度可视化、评委管理
Day 6:
- B4: 评审进度统计接口
- B5: 评委完成度统计接口
- F7: 评审进度看板
Day 7:
- F8: 评委管理页
- F13: 评委详情弹窗
- F14: 评审详情页
Phase 4: 赛果发布(2天)
目标:排名计算、奖项设置、赛果发布
Day 8:
- B6: 最终得分计算逻辑完善
- B7: 赛果发布模块(排名、奖项设置、发布接口)
Day 9:
- F10: 赛果发布页
- F15: 赛果详情页
Phase 5: 辅助功能与优化(2天)
目标:日志、证书、文件服务
Day 10:
- B8: 日志模块实现
- F11: 日志查询页
- B11: 文件上传服务完善
Day 11:
- B9: 证书生成接口
- B10: 获奖名单导出
- F16: 证书下载功能
- 联调测试、Bug修复
超管端总计:约11天
六、目录结构规划
6.1 后端新增/修改
backend/src/
├── logs/ 🆕 新增
│ ├── logs.controller.ts
│ ├── logs.service.ts
│ ├── logs.module.ts
│ └── dto/
├── contests/
│ ├── contests/ 🔧 修改
│ │ └── contests.service.ts # 添加 finish 方法
│ ├── registrations/ 🔧 修改
│ │ └── registrations.service.ts # 添加 export 方法
│ ├── works/ 🔧 修改
│ │ └── works.service.ts # 添加 getVersions 方法
│ ├── reviews/ 🔧 修改
│ │ └── reviews.service.ts # 添加统计方法、完善计分
│ └── results/ 🆕 新增
│ ├── results.controller.ts
│ ├── results.service.ts
│ └── dto/
└── files/ 🔧 完善
└── files.service.ts # 添加预览URL生成
6.2 前端新增/修改
frontend/src/views/
├── contests/
│ ├── Index.vue 🔧 修改(添加完结操作)
│ ├── Detail.vue 🔧 重构(多Tab)
│ ├── Form.vue 🆕 新增(多Tab表单)
│ ├── components/
│ │ ├── ContestForm.vue 🔧 修改(拆分为Tab组件)
│ │ ├── BasicInfoTab.vue 🆕 新增
│ │ ├── RegistrationTab.vue 🆕 新增
│ │ ├── WorkInfoTab.vue 🆕 新增
│ │ └── ReviewRuleTab.vue 🆕 新增
│ ├── notices/
│ │ └── Index.vue 🆕 新增
│ ├── team-registrations/
│ │ └── Index.vue 🆕 新增
│ ├── works/
│ │ ├── Index.vue 🔧 修改
│ │ └── Detail.vue 🆕 新增
│ ├── review-progress/
│ │ └── Index.vue 🆕 新增
│ ├── judges/
│ │ ├── Index.vue 🆕 新增
│ │ └── Detail.vue 🆕 新增(弹窗组件)
│ ├── reviews/
│ │ ├── Index.vue 🔧 重构
│ │ └── Detail.vue 🆕 新增
│ └── results/
│ ├── Index.vue 🆕 新增
│ └── Detail.vue 🆕 新增
└── system/
└── logs/
└── Index.vue 🆕 新增
七、菜单配置
7.1 需要修改/新增的菜单
-- 赛事管理下的子菜单调整
UPDATE menus SET path = '/contests/list', component = 'contests/Index' WHERE name = '赛事列表';
-- 新增菜单项
INSERT INTO menus (tenant_id, name, path, component, icon, parent_id, permission, sort, valid_state) VALUES
-- 赛事管理子菜单
(1, '赛事公告', '/contests/notices', 'contests/notices/Index', 'NotificationOutlined',
(SELECT id FROM (SELECT id FROM menus WHERE name = '赛事管理') t), 'contest:notice:read', 15, 1),
(1, '团队报名', '/contests/team-registrations', 'contests/team-registrations/Index', 'TeamOutlined',
(SELECT id FROM (SELECT id FROM menus WHERE name = '赛事管理') t), 'registration:read', 25, 1),
(1, '评审进度', '/contests/review-progress', 'contests/review-progress/Index', 'DashboardOutlined',
(SELECT id FROM (SELECT id FROM menus WHERE name = '赛事管理') t), 'review:read', 45, 1),
(1, '评委管理', '/contests/judges', 'contests/judges/Index', 'UserSwitchOutlined',
(SELECT id FROM (SELECT id FROM menus WHERE name = '赛事管理') t), 'judge:read', 55, 1),
(1, '赛果发布', '/contests/results', 'contests/results/Index', 'TrophyOutlined',
(SELECT id FROM (SELECT id FROM menus WHERE name = '赛事管理') t), 'result:read', 65, 1),
-- 系统管理-日志
(1, '日志查询', '/system/logs', 'system/logs/Index', 'FileTextOutlined',
(SELECT id FROM (SELECT id FROM menus WHERE name = '系统管理') t), 'log:read', 80, 1);
7.2 需要新增的权限
INSERT INTO permissions (tenant_id, code, name, resource, action, valid_state) VALUES
-- 公告权限
(1, 'contest:notice:read', '查看赛事公告', 'contest_notice', 'read', 1),
(1, 'contest:notice:create', '创建赛事公告', 'contest_notice', 'create', 1),
(1, 'contest:notice:update', '编辑赛事公告', 'contest_notice', 'update', 1),
(1, 'contest:notice:delete', '删除赛事公告', 'contest_notice', 'delete', 1),
-- 评委权限
(1, 'judge:read', '查看评委', 'judge', 'read', 1),
(1, 'judge:create', '添加评委', 'judge', 'create', 1),
(1, 'judge:update', '编辑评委', 'judge', 'update', 1),
(1, 'judge:delete', '移除评委', 'judge', 'delete', 1),
-- 赛果权限
(1, 'result:read', '查看赛果', 'result', 'read', 1),
(1, 'result:publish', '发布赛果', 'result', 'publish', 1),
(1, 'result:export', '导出赛果', 'result', 'export', 1),
-- 日志权限
(1, 'log:read', '查看日志', 'log', 'read', 1);
八、验收标准
8.1 功能验收清单
赛事管理
报名管理
参赛作品
评审进度
评委管理
赛果发布
8.2 技术验收
九、风险与注意事项
| 风险 |
影响 |
应对措施 |
| 评分计算逻辑复杂 |
影响赛果准确性 |
仔细设计计算规则,支持多种计分方式 |
| 多Tab表单数据校验 |
用户体验差 |
分Tab校验+整体校验 |
| 文件预览兼容性 |
部分格式无法预览 |
使用第三方预览服务或限制格式 |
| 大数据量导出 |
性能问题 |
分批导出、后台任务 |
| 证书模板设计 |
设计复杂 |
先用简单模板,后续迭代 |
文档版本:v3.0
更新时间:2026-01-06
更新内容:根据需求表格详细梳理超管端功能,制定开发计划