# 处方库功能 - 安装检查清单 ## 📋 安装前检查 ### 环境要求 - [ ] PHP >= 7.4 - [ ] MySQL >= 5.7 - [ ] Node.js >= 14.x(前端开发) - [ ] 已安装并运行 ThinkPHP 框架 - [ ] 已安装并运行 Vue 3 前端项目 ### 权限检查 - [ ] 数据库创建表权限 - [ ] 文件读写权限 - [ ] 后台管理员账号 ## 🔧 安装步骤 ### 步骤1:备份数据库 ✅ ```bash # 备份当前数据库(推荐) mysqldump -u用户名 -p密码 数据库名 > backup_$(date +%Y%m%d).sql ``` - [ ] 已完成数据库备份 ### 步骤2:安装数据库表 ✅ #### 方式A:自动安装(推荐) **Windows:** ```bash 双击运行 install_prescription_library.bat ``` **Linux/Mac:** ```bash chmod +x install_prescription_library.sh ./install_prescription_library.sh ``` #### 方式B:手动安装 ```bash mysql -h主机 -u用户名 -p密码 数据库名 < server/database/migrations/create_prescription_library.sql ``` - [ ] 数据库表安装成功 - [ ] 验证表是否创建:`SHOW TABLES LIKE '%prescription_library%';` ### 步骤3:验证后端文件 ✅ 检查以下文件是否存在: **模型层:** - [ ] server/app/common/model/tcm/PrescriptionLibrary.php **控制器层:** - [ ] server/app/adminapi/controller/tcm/PrescriptionLibraryController.php **业务逻辑层:** - [ ] server/app/adminapi/logic/tcm/PrescriptionLibraryLogic.php **列表逻辑层:** - [ ] server/app/adminapi/lists/tcm/PrescriptionLibraryLists.php **验证器层:** - [ ] server/app/adminapi/validate/tcm/PrescriptionLibraryValidate.php ### 步骤4:验证前端文件 ✅ 检查以下文件是否存在: **页面组件:** - [ ] admin/src/views/consumer/prescription/list.vue **API接口:** - [ ] admin/src/api/tcm.ts(已更新) ### 步骤5:配置路由(如需要) ✅ ThinkPHP 通常自动识别路由,无需手动配置。 如需手动配置,在路由文件中添加: ```php // 处方库路由 Route::group('tcm.prescriptionLibrary', function () { Route::get('lists', 'tcm.PrescriptionLibrary/lists'); Route::post('add', 'tcm.PrescriptionLibrary/add'); Route::post('edit', 'tcm.PrescriptionLibrary/edit'); Route::post('delete', 'tcm.PrescriptionLibrary/delete'); Route::get('detail', 'tcm.PrescriptionLibrary/detail'); }); ``` - [ ] 路由配置完成(如需要) ### 步骤6:配置菜单权限 ✅ 在后台管理系统中添加菜单项: **菜单配置示例:** ``` 菜单名称:处方库 菜单路径:/consumer/prescription/list 图标:el-icon-document 排序:100 权限标识:tcm.prescriptionLibrary/lists ``` **权限节点:** - [ ] tcm.prescriptionLibrary/lists(查看列表) - [ ] tcm.prescriptionLibrary/add(添加处方) - [ ] tcm.prescriptionLibrary/edit(编辑处方) - [ ] tcm.prescriptionLibrary/delete(删除处方) - [ ] tcm.prescriptionLibrary/detail(查看详情) - [ ] 菜单配置完成 - [ ] 权限节点配置完成 ### 步骤7:重启服务(如需要) ✅ **后端:** ```bash # 清除缓存 php think clear # 重启PHP-FPM(如使用) sudo systemctl restart php-fpm ``` **前端:** ```bash # 开发环境 npm run dev # 生产环境 npm run build ``` - [ ] 后端服务已重启 - [ ] 前端已重新编译 ## 🧪 功能测试 ### 测试1:访问页面 ✅ - [ ] 能够访问处方库页面 - [ ] 页面正常显示,无报错 - [ ] 列表为空或显示数据 ### 测试2:创建处方 ✅ - [ ] 点击"新增处方"按钮 - [ ] 填写处方名称 - [ ] 添加药材 - [ ] 设置是否公开 - [ ] 保存成功 ### 测试3:查看处方 ✅ - [ ] 点击"查看"按钮 - [ ] 显示处方详情 - [ ] 字段不可编辑 ### 测试4:编辑处方 ✅ - [ ] 点击"编辑"按钮 - [ ] 修改处方信息 - [ ] 保存成功 ### 测试5:删除处方 ✅ - [ ] 点击"删除"按钮 - [ ] 确认删除 - [ ] 删除成功 ### 测试6:搜索功能 ✅ - [ ] 输入处方名称搜索 - [ ] 选择是否公开筛选 - [ ] 显示正确结果 ### 测试7:权限测试 ✅ - [ ] 用户A创建私有处方 - [ ] 用户B无法查看用户A的私有处方 - [ ] 用户A创建公开处方 - [ ] 用户B可以查看用户A的公开处方 - [ ] 用户B无法删除用户A的处方 ## 🔍 问题排查 ### 问题1:无法访问页面 **可能原因:** - 路由未配置 - 权限未分配 - 前端路由错误 **解决方案:** 1. 检查路由配置 2. 检查菜单权限 3. 查看浏览器控制台错误 ### 问题2:数据库表创建失败 **可能原因:** - 数据库连接失败 - 权限不足 - 表已存在 **解决方案:** 1. 检查数据库配置 2. 检查用户权限 3. 删除已存在的表后重试 ### 问题3:API请求失败 **可能原因:** - 后端文件未上传 - 路由配置错误 - 权限验证失败 **解决方案:** 1. 检查后端文件是否存在 2. 检查API路径是否正确 3. 查看后端日志 ### 问题4:前端页面报错 **可能原因:** - 前端文件未编译 - API接口路径错误 - 组件引用错误 **解决方案:** 1. 重新编译前端代码 2. 检查API接口配置 3. 查看浏览器控制台错误 ## 📊 验证清单 ### 数据库验证 ```sql -- 检查表是否存在 SHOW TABLES LIKE '%prescription_library%'; -- 检查表结构 DESC zyt_prescription_library; -- 检查索引 SHOW INDEX FROM zyt_prescription_library; -- 插入测试数据 INSERT INTO `zyt_prescription_library` (`prescription_name`, `herbs`, `is_public`, `creator_id`, `creator_name`, `create_time`, `update_time`) VALUES ('测试处方', '[{"name":"测试药材","dosage":10}]', 1, 1, '测试医生', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()); -- 查询测试数据 SELECT * FROM zyt_prescription_library WHERE prescription_name = '测试处方'; -- 删除测试数据 DELETE FROM zyt_prescription_library WHERE prescription_name = '测试处方'; ``` - [ ] 表结构正确 - [ ] 索引创建成功 - [ ] 数据插入成功 - [ ] 数据查询成功 - [ ] 数据删除成功 ### API验证 使用 Postman 或类似工具测试: **获取列表:** ``` GET /api/tcm.prescriptionLibrary/lists ``` **添加处方:** ``` POST /api/tcm.prescriptionLibrary/add Body: { "prescription_name": "测试处方", "herbs": [{"name": "测试药材", "dosage": 10}], "is_public": 1 } ``` **编辑处方:** ``` POST /api/tcm.prescriptionLibrary/edit Body: { "id": 1, "prescription_name": "测试处方(已修改)", "herbs": [{"name": "测试药材", "dosage": 15}], "is_public": 0 } ``` **删除处方:** ``` POST /api/tcm.prescriptionLibrary/delete Body: { "id": 1 } ``` **获取详情:** ``` GET /api/tcm.prescriptionLibrary/detail?id=1 ``` - [ ] 列表接口正常 - [ ] 添加接口正常 - [ ] 编辑接口正常 - [ ] 删除接口正常 - [ ] 详情接口正常 ## ✅ 安装完成确认 ### 最终检查 - [ ] 所有文件已上传 - [ ] 数据库表已创建 - [ ] 菜单权限已配置 - [ ] 功能测试通过 - [ ] API测试通过 - [ ] 权限测试通过 ### 文档确认 - [ ] 已阅读 PRESCRIPTION_LIBRARY_README.md - [ ] 已阅读 QUICK_START_PRESCRIPTION_LIBRARY.md - [ ] 已了解功能使用方法 ### 备份确认 - [ ] 已备份数据库 - [ ] 已备份原有代码 - [ ] 已记录安装日期和版本 ## 📝 安装记录 **安装日期:** _______________ **安装人员:** _______________ **版本号:** v1.0.0 **数据库名:** _______________ **备注:** ``` _______________________________________________ _______________________________________________ _______________________________________________ ``` ## 🎉 安装成功! 恭喜!处方库功能已成功安装。 **下一步:** 1. 创建第一个处方 2. 测试各项功能 3. 培训使用人员 4. 收集反馈意见 **技术支持:** 如有问题,请查看文档或联系技术支持团队。 --- **祝使用愉快!** 🚀