2026/8/9 2:25:03
网站建设
项目流程
基于Python的中医药材数据分析与可视化 — 功能点说明
编号基于python的中医药材数据分析与可视化2026080620
系统概述
本系统是一个基于 Python(Django REST Framework 后端 + Vue 3 + ECharts 前端)的中医药材数据分析与可视化平台。系统对中药材数据进行采集、存储、管理和多维度可视化分析,提供完整的用户认证、角色权限管理、药材数据CRUD、数据大屏可视化展示等功能。
功能点列表
1. 用户注册
| 项目 | 说明 |
|---|
| 功能名称 | 用户注册 |
| 功能描述 | 用户通过填写用户名、邮箱、密码等信息完成注册,注册后需管理员审核激活方可登录系统。支持用户名唯一性校验和邮箱唯一性校验。 |
| 输入/输出 | 输入:用户名(必填)、邮箱(可选)、密码(必填)等字段。输出:注册成功返回用户信息,失败返回具体错误提示(如"用户名已被注册")。 |
| 涉及代码文件 | BackEnd/usercenter/views.py(UserRegisterView)、BackEnd/usercenter/serializers.py(UserSerializer)、Frontbackend/src/views/login/register/index.vue、Frontbackend/src/api/apis/login_register.js |
![]()
2. 用户登录
| 项目 | 说明 |
|---|
| 功能名称 | 用户登录 |
| 功能描述 | 用户通过用户名+密码进行登录认证。登录成功后服务端生成 JWT Access Token 和 Refresh Token,Refresh Token 存储在 HTTP-only Cookie 中以保证安全性。支持自动 Token 刷新机制。 |
| 输入/输出 | 输入:用户名、密码。输出:登录成功返回用户基本信息(id、username、type、is_staff等)和访问令牌。 |
| 涉及代码文件 | BackEnd/usercenter/views.py(UserLoginView)、BackEnd/ProjectCenter/urls.py(token路由)、Frontbackend/src/views/login/index.vue、Frontbackend/src/stores/user.js |
3. JWT Token 管理
| 项目 | 说明 |
|---|
| 功能名称 | JWT Token 刷新与验证 |
| 功能描述 | 提供 Token 刷新接口(通过 Refresh Token 获取新的 Access Token)、Token 验证接口和 Token 黑名单(注销)接口。前端 axios 拦截器自动处理 Token 过期并尝试刷新。 |
| 输入/输出 | 刷新输入:refresh token。输出:新的 access token。验证输入:任意 token。输出:验证结果。黑名单输入:refresh token。输出:注销确认。 |
| 涉及代码文件 | BackEnd/ProjectCenter/urls.py(/token/refresh/、/token/verify/、/token/blacklist/)、BackEnd/usercenter/views.py(CookieTokenRefreshView)、Frontbackend/src/api/https.js |
4. 用户信息管理(CRUD)
| 项目 | 说明 |
|---|
| 功能名称 | 用户信息增删改查 |
| 功能描述 | 管理员可对所有用户进行完整的CRUD操作(创建、查询、更新、删除),支持多字段模糊查询、精确ID查询、注册时间范围筛选、用户状态筛选。普通用户仅可查看和修改自己的信息。支持头像上传和管理。 |
| 输入/输出 | 输入:用户信息字段(用户名、邮箱、姓名、电话、地址、性别、生日、头像等)。输出:用户列表或单个用户详情。 |
| 涉及代码文件 | BackEnd/usercenter/views.py(UserViewSet)、BackEnd/usercenter/models.py(User模型)、BackEnd/usercenter/serializers.py、BackEnd/usercenter/filters.py、Frontbackend/src/views/managers/User/ |
5. 角色权限管理
| 项目 | 说明 |
|---|
| 功能名称 | 角色管理 |
| 功能描述 | 管理员可创建、查询、更新、删除角色。支持角色名称模糊查询、精确ID查询。角色与用户关联,通过用户type字段区分权限类型(type='1’为管理员,type='2’为普通用户)。 |
| 输入/输出 | 输入:角色名称。输出:角色列表或操作结果。 |
| 涉及代码文件 | BackEnd/usercenter/views.py(RolesViewSet)、BackEnd/usercenter/models.py(Roles模型)、BackEnd/usercenter/filters.py、Frontbackend/src/views/managers/Roles/ |
6. 中医药材数据管理(CRUD)
| 项目 | 说明 |
|---|
| 功能名称 | 中医药材信息增删改查 |
| 功能描述 | 对中药材数据进行完整的CRUD操作。药材字段包括:中文名称、药材成分、适应症、使用方法、参考文献。支持多字段模糊搜索(综合搜索)、精确查询、分页。管理员可增删改,普通用户仅可查看。支持批量删除。 |
| 输入/输出 | 输入:药材信息(chinese_name、composition、indication、use_method、references)。输出:药材列表(分页)或单个药材详情。 |
| 涉及代码文件 | BackEnd/appcenter/views.py(Chinese_medicine_herbsViewSet)、BackEnd/appcenter/models.py(Chinese_medicine_herbs模型)、BackEnd/appcenter/serializers.py、BackEnd/appcenter/filters.py、Frontbackend/src/api/apis/Chinese_medicine_herbsapi.js、Frontbackend/src/views/managers/Chinese_medicine_herbs/ |
![]()
7. 中医药材数据大屏可视化
| 项目 | 说明 |
|---|
| 功能名称 | 数据大屏可视化展示 |
| 功能描述 | 基于 ECharts 构建的数据大屏,展示中药材数据的多维度可视化分析,包括:(1) 药材使用分布环形图/饼图/玫瑰图(可切换);(2) 药材成分TOP10柱状图(可选TOP5/10/15);(3) 药材多维属性雷达图(可选择药材);(4) 药材-成分-适应症关系桑基图;(5) 药材数据增长趋势折线图/面积图/柱状图;(6) 数据质量实时监测仪表盘;(7) 药材数据详情表格(支持搜索、排序、分页)。 |
| 输入/输出 | 输入:从后端API获取的药材数据。输出:6种ECharts图表 + 数据表格 + 药材详情弹窗。 |
| 涉及代码文件 | Frontbackend/src/views/bi/bi.vue(完整大屏组件,含7个ECharts图表初始化与交互逻辑) |
![]()
8. 药材数据综合搜索与过滤
| 项目 | 说明 |
|---|
| 功能名称 | 多维度数据搜索与过滤 |
| 功能描述 | 支持对中药材数据的多维度搜索:按药材名称搜索、按成分搜索、按适应症搜索、按使用方法搜索、按参考文献搜索,以及综合搜索(同时匹配所有字段)。后端通过 Django Filter 实现,前端通过 POST 请求提交过滤条件。 |
| 输入/输出 | 输入:搜索关键词或过滤条件(chinese_name、composition、indication等)。输出:过滤后的药材列表。 |
| 涉及代码文件 | BackEnd/appcenter/filters.py(Chinese_medicine_herbsFilter)、BackEnd/utils/utils.py(filter_by_post方法)、Frontbackend/src/views/bi/bi.vue(搜索/过滤UI) |
9. 系统监控 WebSocket 服务
| 项目 | 说明 |
|---|
| 功能名称 | 系统性能实时监控 |
| 功能描述 | 基于 WebSocket 的系统监控服务,实时采集并推送服务器性能数据,包括:CPU使用率(整体及每核)、内存使用率、磁盘使用率及IO速度、网络速度及流量、网络包数统计、磁盘队列长度、上下文切换次数、系统功耗估算、系统温度、平均负载等。支持流式推送和快照获取两种模式。 |
| 输入/输出 | 输入:WebSocket命令(start_monitoring、get_snapshot、ping)。输出:实时监控数据JSON(cpu、memory、disk、network等指标)。 |
| 涉及代码文件 | BackEnd/systembi.py(CompleteSystemMonitorServer类,WebSocket服务器完整实现) |
10. 前端路由与权限控制
| 项目 | 说明 |
|---|
| 功能名称 | 前端路由管理与权限守卫 |
| 功能描述 | 基于 Vue Router 的前端路由系统,支持动态路由加载。管理员(type=‘1’)可访问全部功能菜单(仪表盘、用户管理、角色管理、数据大屏、中药材管理、API文档),普通用户(type=‘2’)仅可访问用户列表、数据大屏和中药材查看。路由守卫自动拦截未登录访问。 |
| 输入/输出 | 输入:用户登录状态和权限类型。输出:动态菜单和页面访问控制。 |
| 涉及代码文件 | Frontbackend/src/router/asyncRouters.js(管理员路由 + 普通用户路由)、Frontbackend/src/router/beforeEach.js(路由守卫)、Frontbackend/src/stores/user.js |
11. 用户密码修改
| 项目 | 说明 |
|---|
| 功能名称 | 修改登录密码 |
| 功能描述 | 已登录用户可修改自己的登录密码,需提供旧密码进行验证,新密码需满足安全要求。 |
| 输入/输出 | 输入:旧密码、新密码。输出:修改成功/失败提示。 |
| 涉及代码文件 | BackEnd/usercenter/views.py(PasswordChangeView)、BackEnd/usercenter/urls.py(/User/me/change-password/) |
12. 药材数据详情查看与导出
| 项目 | 说明 |
|---|
| 功能名称 | 药材详情弹窗与数据导出 |
| 功能描述 | 在数据大屏中点击药材行可弹出详情弹窗,展示药材的完整信息(成分标签、适应症标签、参考文献),包含基本信息和统计分析两个标签页。统计分析页显示成分数量、适应症数量、使用频率评分及迷你图表。支持将药材数据导出。 |
| 输入/输出 | 输入:点击的药材ID。输出:药材详情弹窗内容。 |
| 涉及代码文件 | Frontbackend/src/views/bi/bi.vue(detailDialogVisible、selectedHerb、handleRowClick、exportHerbData) |
13. 数据完整性评估
| 项目 | 说明 |
|---|
| 功能名称 | 数据质量评估 |
| 功能描述 | 系统自动评估每条药材数据的完整性评分(基于各字段是否为空),在数据大屏和详情弹窗中以进度条形式展示数据完整度,并在实时监测仪表盘中显示整体数据质量评分。 |
| 输入/输出 | 输入:药材数据对象。输出:0-100的完整度百分比值。 |
| 涉及代码文件 | Frontbackend/src/views/bi/bi.vue(calculateDataCompleteness函数) |
14. 数据库初始化与迁移
| 项目 | 说明 |
|---|
| 功能名称 | 数据库一键初始化 |
| 功能描述 | 提供批处理脚本一键完成数据库迁移和超级管理员创建。SQL文件包含完整的中药材数据库初始化数据(data.csv导入数据 + SQL建表语句)。 |
| 输入/输出 | 输入:执行批处理脚本。输出:数据库表结构和初始数据创建完成。 |
| 涉及代码文件 | BackEnd/1安装包.bat、BackEnd/2迁移数据库.bat、BackEnd/3创建超级管理员.bat、jiyupythondezhongyiyaocaishujufe.sql、data.csv |