7.3 KiB
7.3 KiB
信息采集批次管理前端应用
📋 概述
信息采集批次管理模块是学工管理系统的重要组成部分,用于管理学生信息采集的批次流程,包括批次创建、状态管理、权限配置、统计分析等功能。
🏗️ 项目结构
web/src/views/xg-xx/collectionBatch/
├── components/ # 组件目录
│ ├── BatchActions.vue # 批次操作组件
│ ├── BatchStatusTag.vue # 批次状态标签组件
│ ├── BatchTypeTag.vue # 批次类型标签组件
│ ├── ProgressBar.vue # 进度条组件
│ └── SearchForm.vue # 搜索表单组件
├── index.vue # 批次列表页面
├── form.vue # 批次编辑表单页面
├── detail.vue # 批次详情页面
├── statistics.vue # 批次统计页面
├── permission.vue # 权限配置页面
├── route.ts # 路由配置
└── README.md # 使用文档
🎯 功能特性
1. 批次列表管理
- ✅ 批次列表展示(支持分页)
- ✅ 多条件搜索过滤
- ✅ 批次状态和类型标签展示
- ✅ 完成进度可视化
- ✅ 批次操作(新增、编辑、删除)
2. 批次表单管理
- ✅ 批次新增和编辑
- ✅ 分组表单设计(基本信息、时间设置、目标设置等)
- ✅ 表单验证
- ✅ 保存和发布功能
3. 批次详情查看
- ✅ 批次详细信息展示
- ✅ 卡片式布局
- ✅ 实时状态更新
- ✅ 批次操作按钮
4. 统计分析
- ✅ 批次统计数据展示
- ✅ 图表可视化(ECharts)
- ✅ 学院完成情况统计
- ✅ 多维度数据分析
5. 权限配置
- ✅ 角色权限管理
- ✅ 批量权限配置
- ✅ 权限有效期设置
- ✅ 权限状态管理
🛠️ 技术栈
- Vue 3.5.13 - 前端框架
- TypeScript 5.8.3 - 类型支持
- Element Plus - UI组件库
- ECharts - 图表库
- Vue Router - 路由管理
- Axios - HTTP请求
📦 组件说明
BatchStatusTag.vue
批次状态标签组件,用于显示批次的当前状态。
<BatchStatusTag :status="batchStatus" :show-icon="true" />
Props:
status: 批次状态(draft, published, active, paused, ended, archived)showIcon: 是否显示图标effect: 标签效果(dark, light, plain)
BatchTypeTag.vue
批次类型标签组件,用于显示批次的类型。
<BatchTypeTag :type="batchType" :show-icon="true" />
Props:
type: 批次类型(student_info, scholarship, evaluation, other)showIcon: 是否显示图标effect: 标签效果
ProgressBar.vue
进度条组件,用于显示批次的完成进度。
<ProgressBar :current="submittedCount" :total="totalStudents" />
Props:
current: 当前完成数量total: 总数量strokeWidth: 进度条宽度showText: 是否显示文本showDetail: 是否显示详细信息
BatchActions.vue
批次操作组件,提供批次相关的操作按钮。
<BatchActions :batch="batchData" @start="handleStart" @pause="handlePause" />
Props:
batch: 批次数据对象
Events:
start: 开始批次pause: 暂停批次resume: 恢复批次end: 结束批次copy: 复制批次statistics: 统计分析permission: 权限配置export: 导出数据delete: 删除批次
SearchForm.vue
搜索表单组件,用于批次列表的搜索过滤。
<SearchForm @search="handleSearch" @reset="handleReset" />
Events:
search: 搜索事件,返回查询参数reset: 重置事件
🚀 使用指南
1. 批次管理流程
-
创建批次
- 点击"新增批次"按钮
- 填写批次基本信息、时间设置、目标设置等
- 保存草稿或直接发布
-
管理批次
- 在列表中查看批次状态和进度
- 使用搜索功能快速定位批次
- 通过操作按钮管理批次状态
-
查看统计
- 进入统计页面查看批次数据
- 查看图表分析和学院完成情况
- 导出统计报告
-
配置权限
- 设置不同角色的权限范围
- 配置权限有效期
- 批量设置权限
2. 页面导航
/xg-xx/collectionBatch- 批次列表页面/xg-xx/collectionBatch/add- 新增批次页面/xg-xx/collectionBatch/edit?id={id}- 编辑批次页面/xg-xx/collectionBatch/detail?id={id}- 批次详情页面/xg-xx/collectionBatch/statistics- 统计分析页面/xg-xx/collectionBatch/permission- 权限配置页面
3. 权限控制
系统基于角色和权限进行访问控制:
xg:collectionBatch:list- 查看批次列表xg:collectionBatch:add- 新增批次xg:collectionBatch:edit- 编辑批次xg:collectionBatch:remove- 删除批次xg:collectionBatch:query- 查看批次详情xg:collectionBatch:export- 导出批次数据xg:collectionBatch:statistics- 查看统计分析xg:collectionBatch:permission- 配置权限
🔧 开发指南
1. 本地开发
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
2. 代码规范
- 使用 TypeScript 进行类型检查
- 遵循 Vue 3 Composition API 规范
- 使用 ESLint 进行代码检查
- 组件命名使用 PascalCase
3. 样式规范
- 使用 Element Plus 设计系统
- 遵循后勤管理模块的颜色和样式规范
- 使用 Tailwind CSS 类名进行样式定制
- 响应式设计适配不同屏幕尺寸
📝 API 接口
批次管理接口
// 查询批次列表
listCollectionBatch(query: CollectionBatchQuery): Promise<CollectionBatchVO[]>
// 获取批次详情
getCollectionBatch(id: string | number): Promise<CollectionBatchVO>
// 新增批次
addCollectionBatch(data: CollectionBatchForm): Promise<void>
// 更新批次
updateCollectionBatch(data: CollectionBatchForm): Promise<void>
// 删除批次
delCollectionBatch(ids: string | number | Array<string | number>): Promise<void>
// 批次状态操作
startBatch(batchId: string | number): Promise<void>
pauseBatch(batchId: string | number): Promise<void>
resumeBatch(batchId: string | number): Promise<void>
endBatch(batchId: string | number): Promise<void>
// 统计分析
getBatchStatistics(batchId: string | number): Promise<any>
getOverallStatistics(): Promise<any>
🐛 问题排查
常见问题
-
页面无法访问
- 检查路由配置是否正确
- 确认用户权限是否充足
-
数据加载失败
- 检查 API 接口是否正常
- 确认后端服务是否启动
-
图表显示异常
- 检查 ECharts 是否正确引入
- 确认数据格式是否正确
-
权限配置无效
- 检查权限标识是否正确
- 确认用户角色是否匹配
调试技巧
- 使用浏览器开发者工具查看网络请求
- 检查 Console 中的错误信息
- 使用 Vue DevTools 调试组件状态
- 查看后端日志确认接口调用情况
📞 技术支持
如有问题,请联系开发团队或查看相关文档:
- 项目文档:
docs/开发文档/API/ - 后端接口:
backend/ruoyi-modules/ruoyi-xg-xx/ - 前端代码:
web/src/views/xg-xx/collectionBatch/
版本信息:V1.0.0
更新时间:2025-01-17
维护团队:前端开发组