362 lines
7.7 KiB
Markdown
362 lines
7.7 KiB
Markdown
# 处方库功能 - 安装检查清单
|
||
|
||
## 📋 安装前检查
|
||
|
||
### 环境要求
|
||
- [ ] 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. 收集反馈意见
|
||
|
||
**技术支持:**
|
||
如有问题,请查看文档或联系技术支持团队。
|
||
|
||
---
|
||
|
||
**祝使用愉快!** 🚀
|