# dims-vue-admin **Repository Path**: coderzys/dims-vue-admin ## Basic Information - **Project Name**: dims-vue-admin - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-14 - **Last Updated**: 2025-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 残疾人信息管理系统开发需求文档 一、文档说明 1.文档目的:明确残疾人信息管理系统的开发目标、功能需求、技术架构及实施规范,为开发团队提供清晰的开发依据,确保系统符合业务场景及技术要求。 1.适用范围:本需求文档适用于系统开发团队(前端、后端、数据库开发人员)、测试团队及项目相关负责人。 1.文档版本:V1.0 1.编制日期:2025 年 10 月 11 日 二、项目概述 2.1 项目背景 随着社会对残疾人权益保障的重视,残疾人信息的规范化管理成为提升服务效率的关键。当前残疾人信息管理多依赖人工记录或分散化系统,存在数据不一致、查询困难、统计分析滞后等问题。为实现残疾人信息的集中化、数字化管理,提升信息查询、统计、服务跟进的效率,特开发本系统。 2.2 项目目标 1.构建统一的残疾人信息管理平台,实现信息录入、存储、查询、修改、删除等基础功能。 1.支持多角色权限管理,确保不同用户(如管理员、基层工作人员、审核人员)按权限操作数据。 1.提供数据统计与分析功能,为政策制定、服务资源调配提供数据支持。 1.保障系统数据安全,实现操作日志追踪,满足数据合规性要求。 三、技术架构 3.1 前端技术栈 框架:Vue 3(组合式 API) UI 组件库:Element Plus 状态管理:Pinia(替代 Vuex,轻量且支持 TypeScript) 路由:Vue Router 4 网络请求:Axios(封装请求拦截器,处理 JWT 令牌) 其他:TypeScript(增强类型校验)、ECharts(数据可视化) 3.2 后端技术栈 核心框架:Spring Boot 2.7.x ORM 框架:MyBatis-Plus(简化 CRUD 操作,支持分页、条件查询) 安全框架:Shiro(权限控制)+ JWT(无状态身份认证) 数据库:MySQL 8.0(支持事务、索引优化) 接口规范:RESTful API(统一接口风格) 其他:Lombok(简化实体类代码)、Validation(参数校验)、Swagger(接口文档自动生成) 3.3 系统架构 前端层:单页应用(SPA),通过 Axios 与后端 API 交互。 后端层: 控制层(Controller):接收前端请求,返回响应。 服务层(Service):处理业务逻辑,调用数据访问层。 数据访问层(Mapper):通过 MyBatis-Plus 操作数据库。 安全层:Shiro+JWT 实现认证与授权,拦截非法请求。 数据层:MySQL 数据库,存储系统所有业务数据。 四、功能需求 4.1 系统管理模块 4.1.1 用户管理 功能描述:管理系统用户(新增、编辑、删除、查询),支持用户状态(启用 / 禁用)切换。 核心字段:用户 ID、用户名、密码(加密存储)、真实姓名、联系电话、所属部门、角色 ID、创建时间、状态。 权限控制:仅超级管理员可操作。 4.1.2 角色管理 功能描述:定义系统角色(如超级管理员、普通管理员、录入员、审核员),配置角色权限。 核心字段:角色 ID、角色名称、角色描述、权限集合、创建时间。 操作:新增角色、编辑角色信息、删除角色、为角色分配权限。 4.1.3 权限管理 功能描述:维护系统权限资源(菜单、按钮),支持权限粒度控制(如 “残疾人信息新增”“统计报表导出”)。 核心字段:权限 ID、权限名称、权限标识(如 “user:add”)、权限类型(菜单 / 按钮)、父级权限 ID、路由路径、组件路径。 4.1.4 操作日志 功能描述:记录用户所有关键操作(如登录、数据新增 / 修改 / 删除、权限变更),支持按用户、时间、操作类型查询。 核心字段:日志 ID、用户 ID、操作内容、操作时间、IP 地址、操作结果(成功 / 失败)。 4.2 残疾人信息管理模块 4.2.1 信息录入 功能描述:录入残疾人基础信息,支持手动输入或 Excel 批量导入。 核心字段: 基本信息:姓名、性别、出生日期、身份证号(唯一标识)、民族、婚姻状况、联系电话、家庭住址。 残疾信息:残疾类型(视力、听力、言语等)、残疾等级(1-4 级)、残疾证号、发证日期、证件有效期。 家庭信息:家庭成员人数、主要抚养人、家庭收入情况。 其他信息:教育程度、就业状态、是否享受补贴、补贴类型。 校验规则:身份证号唯一性校验、残疾证号格式校验。 4.2.2 信息查询与编辑 功能描述:支持多条件组合查询(如按姓名、身份证号、残疾类型、所属区域),查询结果分页展示;可编辑已录入信息(需记录修改日志)。 高级查询:支持模糊查询(姓名、地址)、范围查询(出生日期、发证日期)。 4.2.3 信息审核 功能描述:新录入或修改的信息需经审核员审核后生效,支持审核通过 / 驳回(需填写驳回原因)。 状态流转:未审核 → 审核通过 / 审核驳回(驳回后可重新编辑提交)。 4.2.4 信息导出 功能描述:支持将查询结果导出为 Excel 格式,导出字段可自定义选择。 4.3 统计分析模块 4.3.1 数据统计 功能描述:按维度统计残疾人数量及分布情况,包括: 按残疾类型统计(视力、听力等各类型人数及占比)。 按残疾等级统计(1-4 级人数及占比)。 按区域统计(各街道 / 乡镇残疾人数量)。 按年龄分布统计(分年龄段人数)。 4.3.2 图表展示 功能描述:通过柱状图、饼图、折线图等可视化图表展示统计结果,支持图表下载(PNG 格式)。 4.3.3 报表生成 功能描述:自动生成周期性报表(如月度、季度、年度),支持自定义报表字段及格式,可导出为 PDF 或 Excel。 4.4 系统设置模块 功能描述:配置系统基础参数,如: 残疾类型字典(维护视力、听力等类型列表)。 区域字典(维护省 / 市 / 区 / 街道层级数据)。 系统主题设置(深色 / 浅色模式)。 密码策略(长度、复杂度要求)。 五、非功能需求 5.1 性能需求 响应时间:页面加载时间≤3 秒,单条数据查询≤1 秒,批量导入(1000 条以内)≤10 秒。 并发量:支持至少 50 名用户同时在线操作,无明显延迟。 数据存储:支持≥10 万条残疾人信息存储,数据库查询效率随数据量增长无显著下降(需合理设计索引)。 5.2 安全需求 身份认证:用户登录需输入用户名 + 密码,支持密码加密存储(SHA-256 + 盐值),登录失败 5 次后锁定账号 30 分钟。 授权控制:基于 Shiro 权限模型,严格控制用户操作范围,未授权请求返回 403 错误。 数据安全:敏感信息(如身份证号)存储时部分字符脱敏(如显示为 110101********1234),接口传输采用 HTTPS 加密。 防注入:前端输入过滤特殊字符,后端使用参数化查询(MyBatis-Plus 默认支持),防止 SQL 注入。 5.3 易用性需求 界面设计:遵循 Element Plus 设计规范,风格统一,操作流程简洁(如表单提交按钮固定在底部,查询条件区域可折叠)。 提示信息:操作成功 / 失败时给出明确提示(如 “信息录入成功”“身份证号已存在,请核对”),错误提示需包含解决方案。 帮助文档:系统内置操作指南(悬浮提示或帮助按钮),新用户首次登录显示引导教程。 六、数据库设计(核心表) 表名 说明 核心字段(示例) sys_user 系统用户表 id, username, password, real_name, phone, role_id, status, create_time sys_role 角色表 id, role_name, description, permissions, create_time sys_permission 权限表 id, name, perm_key, type, parent_id, path, component sys_operation_log 操作日志表 id, user_id, operation, operate_time, ip, result disabled_person 残疾人信息表 id, id_card, name, disability_certificate_number,gender,phone,township,village_committee,residential_address,guardian_name, relationship,disability_type, disability_level,disability_details,starting_time_of _certificate_validity_period,validity_period,is_dibao(低保),is_wubao(五保),is_kunjingertong(困境儿童),remark disabled_audit 信息审核表 id, person_id, auditor_id, audit_time, audit_result, reason sys_dict 字典表(如残疾类型) id, dict_type, dict_label, dict_value, sort 七、前后端对接接口设计 7.1 通用接口(公共模块) 接口名称 请求 URL 请求方式 请求参数(示例) 响应参数(示例) 说明 用户登录 /api/auth/login POST { "username": "admin", "password": "123456" } { "code": 200, "msg": "登录成功", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "userInfo": { "id": 1, "realName": "管理员" } } } 登录成功返回 JWT 令牌 获取当前用户信息 /api/auth/currentUser GET Header:Authorization: Bearer {token} { "code": 200, "msg": "success", "data": { "id": 1, "username": "admin", "roleName": "超级管理员" } } 需携带令牌 密码修改 /api/auth/changePwd PUT Header:Authorization: Bearer {token};Body:{ "oldPwd": "123456", "newPwd": "654321" } { "code": 200, "msg": "密码修改成功" } 校验旧密码正确性 获取操作日志列表 /api/log/operationList GET Header:Authorization: Bearer {token};Query:{ "pageNum": 1, "pageSize": 10, "username": "admin" } { "code": 200, "msg": "success", "data": { "total": 100, "list": [ { "id": 1, "operation": "登录", "operateTime": "2025-10-11 09:00:00", "ip": "192.168.1.100" } ] } } 支持分页和条件查询 7.2 系统管理模块接口 7.2.1 用户管理接口 接口名称 请求 URL 请求方式 请求参数(示例) 响应参数(示例) 说明 获取用户列表 /api/sys/user/list GET Header:Authorization: Bearer {token};Query:{ "pageNum": 1, "pageSize": 10, "realName": "张三" } { "code": 200, "msg": "success", "data": { "total": 50, "list": [ { "id": 2, "username": "zhangsan", "realName": "张三", "status": 1 } ] } } 仅超级管理员可访问 新增用户 /api/sys/user/add POST Header:Authorization: Bearer {token};Body:{ "username": "lisi", "realName": "李四", "phone": "13800138000", "roleId": 2 } { "code": 200, "msg": "用户新增成功" } 密码默认 123456(加密存储) 编辑用户 /api/sys/user/edit PUT Header:Authorization: Bearer {token};Body:{ "id": 2, "realName": "李四", "phone": "13900139000", "status": 0 } { "code": 200, "msg": "用户编辑成功" } 禁用用户需传入 status=0 删除用户 /api/sys/user/delete/{id} DELETE Header:Authorization: Bearer {token};Path 参数:id=2 { "code": 200, "msg": "用户删除成功" } 仅超级管理员可操作 7.2.2 角色与权限接口 接口名称 请求 URL 请求方式 请求参数(示例) 响应参数(示例) 说明 获取角色列表 /api/sys/role/list GET Header:Authorization: Bearer {token} { "code": 200, "msg": "success", "data": [ { "id": 1, "roleName": "超级管理员", "description": "系统最高权限" } ] } 角色分配权限 /api/sys/role/assignPerm POST Header:Authorization: Bearer {token};Body:{ "roleId": 2, "permIds": [1,2,3] } { "code": 200, "msg": "权限分配成功" } permIds 为权限 ID 数组 获取权限树 /api/sys/perm/tree GET Header:Authorization: Bearer {token} { "code": 200, "msg": "success", "data": [ { "id": 1, "name": "系统管理", "children": [ { "id": 2, "name": "用户管理" } ] } ] } 用于角色分配权限时展示 7.3 残疾人信息管理模块接口 7.3.1 信息录入与查询接口 接口名称 请求 URL 请求方式 请求参数(示例) 响应参数(示例) 说明 残疾人信息新增 /api/disabled/add POST Header:Authorization: Bearer {token};Body:{ "idCard": "110101199001011234", "name": "王五", "gender": 1, "disabilityType": "视力", "disabilityLevel": 2 } { "code": 200, "msg": "信息录入成功,待审核" } 新增后状态为 “未审核” 残疾人信息批量导入 /api/disabled/importExcel POST Header:Authorization: Bearer {token};FormData:file: [Excel文件] { "code": 200, "msg": "导入成功,共30条数据,其中2条格式错误" } 返回导入结果及错误数据 残疾人信息列表 /api/disabled/list GET Header:Authorization: Bearer {token};Query:{ "pageNum": 1, "pageSize": 10, "name": "王", "disabilityType": "视力", "auditStatus": 1, "startAge": 18, "endAge": 75 } { "code": 200, "msg": "success", "data": { "total": 120, "list": [ { "id": 1, "idCard": "110101********1234", "name": "王五", "gender": 1, "genderLabel": "男", "disabilityType": "视力", "disabilityLevel": 2, "disabilityLevelLabel": "二级", "auditStatus": 1, "auditStatusLabel": "审核通过", ...... ], "pageNum": 1, "pageSize": 10, "pages": 12 } } auditStatus:0 = 未审核,1 = 审核通过,2 = 审核驳回;支持多条件组合查询 残疾人信息编辑 /api/disabled/edit PUT Header:Authorization: Bearer {token};Body:{ "id": 1, "idCard": "110101199001011234", "name": "王五", "phone": "13800138001", "familyIncome": "5000", "auditStatus": 0 } { "code": 200, "msg": "信息编辑成功,需重新审核" } 编辑后状态重置为 “未审核”,需重新提交审核 残疾人信息删除 /api/disabled/delete/{id} DELETE Header:Authorization: Bearer {token};Path 参数:id=1 { "code": 200, "msg": "信息删除成功" } 仅可删除 “未审核” 状态的信息;已审核信息需先驳回再删除 残疾人信息详情查询 /api/disabled/detail/{id} GET Header:Authorization: Bearer {token};Path 参数:id=1 { "code": 200, "msg": "success", "data": { "id": 1, "idCard": "110101********1234", "name": "王五", ... } } 返回完整信息,包含字典项标签(如 genderLabel),无需前端二次转换 残疾人信息导出 /api/disabled/export GET Header:Authorization: Bearer {token};Query:{ "name": "王", "disabilityType": "视力", "exportFields": "id,name,idCard,disabilityType,phone" } 响应类型:application/octet-stream(文件流) exportFields 为可选参数,不传则导出所有字段;前端通过 Blob 接收并下载 Excel 文件 批量导入错误数据下载 /api/disabled/exportError GET Header:Authorization: Bearer {token};Query:{ "importId": "20251011160001" } 响应类型:application/octet-stream(文件流) importId 为批量导入接口返回的导入任务 ID;文件中包含错误数据及错误原因(如 “身份证号已存在”)