From 7914b4e440e8ab1175870c2fc9891a9eefc48d9c Mon Sep 17 00:00:00 2001 From: zeyan <258785420@qq.com> Date: Tue, 29 Jul 2025 14:28:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Word合同模板系统任务规划.md | 353 +++ ...间卡)体能课学员课程协议.docx | Bin 95145 -> 43020 bytes mysql-mcp-config.json | 8 + niucloud/TASK.md | 133 ++ .../controller/apiController/Personnel.php | 30 +- .../service/admin/upgrade/UpgradeService.php | 16 +- .../PersonCourseScheduleService.php | 2 +- .../api/apiService/PersonnelService.php | 74 +- .../core/addon/CoreAddonInstallService.php | 6 +- .../service/core/addon/CoreDependService.php | 12 +- uniapp/PLANNING.md | 106 +- uniapp/TASK.md | Bin 1509 -> 0 bytes uniapp/pages.json | 12 +- uniapp/pages/coach/my/due_soon.vue | 8 - uniapp/pages/common/profile/personal_info.vue | 1990 ++++++++--------- 各校区转化数据统计需求文档.md | 132 -- 16 files changed, 1584 insertions(+), 1298 deletions(-) create mode 100644 Word合同模板系统任务规划.md create mode 100644 mysql-mcp-config.json delete mode 100644 uniapp/TASK.md delete mode 100644 各校区转化数据统计需求文档.md diff --git a/Word合同模板系统任务规划.md b/Word合同模板系统任务规划.md new file mode 100644 index 00000000..77d8c05a --- /dev/null +++ b/Word合同模板系统任务规划.md @@ -0,0 +1,353 @@ +# Word合同模板系统任务规划文档 + +## 项目概述 + +### 需求总结 +基于现有的学校管理系统,开发一个完整的Word合同模板系统,实现: +1. **模板管理**:上传Word文档作为合同模板,解析占位符并配置数据源 +2. **合同分发**:支持内部员工分发和业务用户购买课程签约两种方式 +3. **数据收集**:在微信小程序上完成签订数据收集 +4. **文档生成**:通过队列异步生成填充数据后的完整Word文档 + +### 技术栈 +- **后端**:PHP ThinkPHP框架 +- **前端管理**:Vue3 + Element Plus +- **小程序**:UniApp +- **数据库**:MySQL +- **文档处理**:phpoffice/phpword +- **队列**:基于现有的workerman队列系统 + +## 系统架构分析 + +### 现有架构基础 +根据代码分析,系统已具备: +- 基础的合同管理模块(ContractSign模型) +- 文档数据源配置模块(DocumentDataSourceConfig模型) +- 文档生成记录模块(DocumentGenerateLog模型) +- 队列处理系统(workerman) + +### 核心数据流 +``` +Word模板上传 → 占位符解析 → 数据源配置 → 合同分发 → 小程序数据收集 → 队列生成文档 +``` + +## 数据库设计确认 + +### 核心表结构(需要确认) + +#### 1. school_contract(合同模板表) +```sql +CREATE TABLE `school_contract` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '合同编号', + `contract_name` varchar(255) NOT NULL COMMENT '合同名称', + `contract_template` text NOT NULL COMMENT '合同模板文件路径', + `contract_status` varchar(50) NOT NULL COMMENT '合同状态', + `contract_type` varchar(50) NOT NULL COMMENT '合同类型', + `placeholder_config` text COMMENT '占位符配置JSON', + `remarks` text COMMENT '合同备注', + `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `deleted_at` int NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +); +``` + +#### 2. school_contract_sign(合同签署关系表) +```sql +CREATE TABLE `school_contract_sign` ( + `id` int NOT NULL AUTO_INCREMENT, + `contract_id` int NOT NULL COMMENT '合同ID', + `personnel_id` int NOT NULL COMMENT '人员ID', + `type` tinyint NOT NULL DEFAULT '1' COMMENT '类型:1内部员工 2外部用户', + `status` varchar(50) NOT NULL DEFAULT 'pending' COMMENT '签署状态', + `sign_time` int DEFAULT NULL COMMENT '签署时间', + `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, + `deleted_at` int NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +); +``` + +#### 3. school_document_data_source_config(数据源配置表) +```sql +CREATE TABLE `school_document_data_source_config` ( + `id` int NOT NULL AUTO_INCREMENT, + `contract_id` int NOT NULL COMMENT '合同ID', + `placeholder` varchar(255) NOT NULL COMMENT '占位符', + `table_name` varchar(100) COMMENT '数据表名', + `field_name` varchar(100) COMMENT '字段名', + `field_type` varchar(50) COMMENT '字段类型', + `is_required` tinyint DEFAULT '0' COMMENT '是否必填', + `default_value` text COMMENT '默认值', + `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +); +``` + +#### 4. school_document_generate_log(文档生成记录表) +```sql +CREATE TABLE `school_document_generate_log` ( + `id` int NOT NULL AUTO_INCREMENT, + `user_type` int NOT NULL DEFAULT '0' COMMENT '人员类型1内部 2外部', + `template_id` int NOT NULL COMMENT '模板ID', + `user_id` int NOT NULL COMMENT '操作用户', + `fill_data` text COMMENT '填充数据JSON', + `generated_file` varchar(500) DEFAULT NULL COMMENT '生成文件路径', + `status` enum('pending','processing','completed','failed') DEFAULT 'pending', + `error_msg` text COMMENT '错误信息', + `created_at` int NOT NULL DEFAULT '0', + `completed_at` int DEFAULT '0', + PRIMARY KEY (`id`) +); +``` + +## 功能模块设计 + +### 1. 模板管理模块 +**功能**: +- Word模板上传 +- 占位符自动解析 +- 数据源配置界面 +- 模板预览 + +**涉及页面**: +- 模板列表页 +- 模板上传页 +- 占位符配置页 + +### 2. 合同分发模块 +**功能**: +- 内部员工分发 +- 外部用户分发(购买课程支付成功后触发) +- 分发记录管理 + +**涉及页面**: +- 合同分发管理页 +- 分发记录列表页 + +### 3. 数据收集模块(小程序端) +**功能**: +- 合同信息展示 +- 表单数据收集 +- 电子签名 +- 数据提交 + +**涉及页面**: +- 合同详情页 +- 数据填写页 +- 签名页 + +### 4. 文档生成模块 +**功能**: +- 队列任务处理 +- Word文档生成 +- 文件存储管理 +- 生成状态跟踪 + +## 关键问题确认 + +### 🔴 数据库相关问题 +1. **表名前缀**:现有代码中有些表是`school_`前缀,有些不是,请确认统一的命名规范? +这个问题school_就是前缀,我文档中的表名称有些是去掉前缀的。所以你在记录表名的时候需要忽略掉 shcool 这个前缀 +2. **表结构完整性**:上述表结构是否完整?是否有遗漏的字段? +具体的你可以再详细查看数据库中的表结构,并确认是否完整。 +3. **人员表关联**:`personnel_id`关联的是哪个表?表结构是什么? + personnel_id来自两个表根据type和user_type来区分 1 是内部人员查询school_personnel表,2是外部人员查询school_customer_resources这个表 + +### 🔴 业务流程问题 +1. **分发触发时机**: + - 内部员工分发:是手动分发还是自动分发? + 手动触发 + - 外部用户分发:购买课程后如何自动触发合同分发? + 在用户支付成功以后进行合同分发现在php 后端在支付成功后会触发student 的事件。目前这里面只会分发合同。 +2. **签名流程**:电子签名是手写签名还是电子印章?签名数据如何存储? +签名是前端端进行手写签名,签名图片的 url 应该存在数据库中,生成签名前要将签名上传至服务器。 +3. **数据收集范围**:除了占位符数据,还需要收集哪些额外信息? +占位符的数据的来源分两种类型,一种是从数据库中获取,另一种是用户填写。在管理后台的是可以对这个占位符 +的字段进行配置,比如这个占位符的数据来源是数据库中获取从哪个表获取数据哪个字段数据 + +### 🔴 技术实现问题 +1. **文件存储**:Word模板和生成的文档存储在哪里?本地还是云存储? +云存储(腾讯云) +2. **队列处理**:使用现有的workerman队列还是需要其他队列系统? +使用现有的workerman队列 +3. **权限控制**:不同角色的权限如何划分? +暂时默认所有用户都可以操作,后续完善权限控制 + +### 🔴 小程序交互问题 +1. **访问方式**:用户如何访问小程序合同页面?扫码还是链接? +两种情况都有。小程序端是有我的合同这个页面的。获取自己的合同列表点击查看合同详情进入合同详情页。根据状态 +未签的就可以签署,已签的就是预览 word。 +2. **身份验证**:如何确保用户身份的准确性? +只要用户登录才能签署合同,自己签署自己的合同。而且有自己的手写签名做备份。 +3. **离线处理**:网络不好时如何处理数据收集? +离线时所有功能不可用提示用户网络有问题所有功能停用。 + +## 前后端任务分工 + +### 后端任务(PHP) +1. **模板管理API** + - 模板上传接口 + - 占位符解析服务 + - 数据源配置API + +2. **合同分发API** + - 分发创建接口 + - 分发记录查询API + +3. **数据收集API** + - 合同信息获取API + - 数据提交接口 + - 签名上传API + +4. **文档生成服务** + - 队列任务处理 + - Word文档生成 + - 文件下载接口 + +### 前端管理界面任务(Vue3) +1. **模板管理页面** + - 模板列表组件 + - 模板上传组件 + - 占位符配置组件 + +2. **合同管理页面** + - 合同分发组件 + - 分发记录组件 + +3. **生成记录页面** + - 生成状态监控 + - 文件下载功能 + +### 小程序端任务(UniApp) +1. **合同展示页面** + - 合同信息展示 + - 占位符数据收集表单 + +2. **签名功能页面** + - 手写签名组件 + - 签名确认功能 + +3. **提交确认页面** + - 数据确认展示 + - 最终提交功能 + +## 开发时间估算 + +### 第一阶段:基础架构(5天) +- 数据库表设计和创建 +- 基础API框架搭建 +- 前端页面框架搭建 + +### 第二阶段:模板管理(7天) +- Word解析功能开发 +- 占位符配置功能 +- 模板管理界面 + +### 第三阶段:合同分发(5天) +- 分发逻辑开发 +- 分发管理界面 +- 与业务系统集成 + +### 第四阶段:小程序端(8天) +- 数据收集页面 +- 签名功能开发 +- 数据提交逻辑 + +### 第五阶段:文档生成(6天) +- 队列处理开发 +- Word生成功能 +- 文件管理功能 + +### 第六阶段:测试优化(4天) +- 功能测试 +- 性能优化 +- Bug修复 + +**总计:35天** + +## 补充问题确认 + +基于您的回答和代码分析,我发现还有几个关键问题需要确认: + +### 🔴 支付成功事件集成问题 +1. **现有支付流程**:我看到代码中支付成功后会触发`Student`事件,但在`Student.php`监听器中的`studentAdd`方法里,合同分发逻辑似乎不完整。您希望在哪个环节触发合同分发? + - 在`studentAdd`方法中直接添加合同分发逻辑? + - 还是创建新的事件监听器专门处理合同分发? + +2. **合同分发条件**:外部用户购买课程后,是否所有课程都需要分发合同,还是只有特定课程?如何判断哪些课程需要分发合同? + +### 🔴 数据库表结构问题 +3. **表名前缀统一**:您确认使用`school_`前缀,但我需要确认以下表的完整表名: + - `school_contract`(合同模板表) + - `school_contract_sign`(合同签署关系表) + - `school_document_data_source_config`(数据源配置表) + - `school_document_generate_log`(文档生成记录表) + +4. **现有表结构检查**:我需要查看现有数据库中是否已经存在这些表,以及它们的具体结构是否与我设计的一致。 + +### 🔴 小程序页面集成问题 +5. **现有小程序结构**:您提到小程序有"我的合同"页面,这个页面是否已经存在?如果存在,我需要了解现有的页面结构和路由配置。 + +6. **用户身份关联**:小程序用户登录后,如何关联到`school_customer_resources`表中的用户?是通过`member_id`字段吗? + +### 🔴 文件处理问题 +7. **Word模板格式**:您提到测试文档是`doc/副本(时间卡)体能课学员课程协议.docx`,我需要确认: + - 模板中的占位符格式是什么?(如`{{学员姓名}}`、`{学员姓名}`还是其他格式?) + - 是否有现成的模板可以参考? + +8. **腾讯云存储配置**:现有系统是否已经配置了腾讯云存储?我需要了解存储的配置信息以便集成。 + +## 建议的架构优化 + +### 1. 事件监听器优化 +建议创建专门的合同分发事件监听器,而不是在现有的`Student`监听器中添加逻辑: + +```php +// 新建 app/listener/contract/ContractDistributionListener.php +class ContractDistributionListener +{ + public function handle(array $params) + { + // 处理合同分发逻辑 + if ($params['event_type'] === 'course_purchase') { + $this->distributeCourseContract($params['data']); + } + } +} +``` + +### 2. 数据库设计优化 +建议在`school_contract_sign`表中添加一些字段: + +```sql +ALTER TABLE `school_contract_sign` ADD COLUMN `source_type` varchar(50) DEFAULT 'manual' COMMENT '分发来源:manual手动分发,auto_course自动课程分发'; +ALTER TABLE `school_contract_sign` ADD COLUMN `source_id` int DEFAULT NULL COMMENT '来源ID(如课程ID、订单ID等)'; +``` + +### 3. API接口设计建议 +基于您的需求,我建议以下API结构: + +**管理端API:** +- `/admin/contract/template` - 模板管理 +- `/admin/contract/distribution` - 合同分发管理 +- `/admin/contract/generate-log` - 生成记录管理 + +**小程序端API:** +- `/api/contract/my-contracts` - 我的合同列表 +- `/api/contract/detail/{id}` - 合同详情 +- `/api/contract/submit-data` - 提交填写数据 +- `/api/contract/upload-signature` - 上传签名 + +## 下一步行动 + +请您确认上述补充问题后,我将: + +1. 检查现有数据库表结构 +2. 完善数据库设计方案 +3. 制定详细的API接口文档 +4. 创建具体的开发任务分配 +5. 建立项目开发时间表 + +--- + +**注意**:这些补充问题的确认对于系统的正确实现非常重要,请务必详细回答。 diff --git a/doc/副本(时间卡)体能课学员课程协议.docx b/doc/副本(时间卡)体能课学员课程协议.docx index 969e784c34edc34e7b67003f214129cbcf028d0b..83cedddda7c1b9af7ce6c263ca9d0c59a8a43366 100644 GIT binary patch delta 28536 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 DIWiQ% delta 80996 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Ń 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
-=+cN%tu8rd0L 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 zi~all(); - $data = [ - 'head_img'=>$params['head_img'],//头像|绝对地址 - 'name'=>$params['name'],//姓名 - 'address'=>$params['address'],//住址 - 'gender'=>$params['gender'],//性别 - 'birthday'=>$params['birthday'],//生日 - 'email'=>$params['email'],//邮箱 - 'phone'=>$params['phone'],//手机号 - 'wx'=>$params['wx'],//微信号 - ]; + + // 构建基础数据,使用isset检查避免undefined key错误 + $data = []; + + // 基础信息字段 + $baseFields = ['head_img', 'name', 'gender', 'birthday', 'phone', 'email', 'wx', 'address', 'native_place', 'education', 'profile', 'emergency_contact_phone', 'id_card_front', 'id_card_back']; + + foreach ($baseFields as $field) { + if (isset($params[$field])) { + $data[$field] = $params[$field]; + } + } + + // 详细信息 + if (isset($params['info']) && is_array($params['info'])) { + $data['info'] = $params['info']; + } + //获取员工信息 $where = [ 'id'=>$this->member_id, ]; $res = (new PersonnelService())->edit($where,$data); if(!$res['code']){ - return fail('操作失败'); + return fail($res['msg'] ?? '操作失败'); } return success([]); } diff --git a/niucloud/app/service/admin/upgrade/UpgradeService.php b/niucloud/app/service/admin/upgrade/UpgradeService.php index d1cd44aa..2aa5b069 100644 --- a/niucloud/app/service/admin/upgrade/UpgradeService.php +++ b/niucloud/app/service/admin/upgrade/UpgradeService.php @@ -317,14 +317,14 @@ class UpgradeService extends BaseAdminService if ($addon == AddonDict::FRAMEWORK_KEY) { $composer = '/niucloud/composer.json'; - $admin_package = '/admin/package.json'; - $web_package = '/web/package.json'; - $uniapp_package = '/uni-app/package.json'; + $admin_package = '/admin/mysql-mcp-config.json'; + $web_package = '/web/mysql-mcp-config.json'; + $uniapp_package = '/uni-app/mysql-mcp-config.json'; } else { $composer = "/niucloud/addon/{$addon}/package/composer.json"; - $admin_package = "/niucloud/addon/{$addon}/package/admin-package.json"; - $web_package = "/niucloud/addon/{$addon}/package/web-package.json"; - $uniapp_package = "/niucloud/addon/{$addon}/package/uni-app-package.json"; + $admin_package = "/niucloud/addon/{$addon}/package/admin-mysql-mcp-config.json"; + $web_package = "/niucloud/addon/{$addon}/package/web-mysql-mcp-config.json"; + $uniapp_package = "/niucloud/addon/{$addon}/package/uni-app-mysql-mcp-config.json"; } if (in_array($composer, $change_files)) { @@ -392,7 +392,7 @@ class UpgradeService extends BaseAdminService $this->compileLocale($this->root_path . 'uni-app' . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR, $addon); // 合并插件依赖 - $addon_uniapp_package = str_replace('/', DIRECTORY_SEPARATOR, project_path() . "niucloud/addon/{$addon}/package/uni-app-package.json"); + $addon_uniapp_package = str_replace('/', DIRECTORY_SEPARATOR, project_path() . "niucloud/addon/{$addon}/package/uni-app-mysql-mcp-config.json"); if (file_exists($addon_uniapp_package)) { $original = $depend_service->getNpmContent('uni-app'); @@ -402,7 +402,7 @@ class UpgradeService extends BaseAdminService $original[$name] = isset($original[$name]) && is_array($original[$name]) ? array_merge($original[$name], $new[$name]) : $new[$name]; } - $uniapp_package = $this->root_path . 'uni-app' . DIRECTORY_SEPARATOR . 'package.json'; + $uniapp_package = $this->root_path . 'uni-app' . DIRECTORY_SEPARATOR . 'mysql-mcp-config.json'; $depend_service->writeArrayToJsonFile($original, $uniapp_package); } } diff --git a/niucloud/app/service/api/apiService/PersonCourseScheduleService.php b/niucloud/app/service/api/apiService/PersonCourseScheduleService.php index c50797c8..0e9693cc 100644 --- a/niucloud/app/service/api/apiService/PersonCourseScheduleService.php +++ b/niucloud/app/service/api/apiService/PersonCourseScheduleService.php @@ -361,7 +361,7 @@ class PersonCourseScheduleService extends BaseApiService public function getStudentCourseInfo(array $where) { $res = [ - 'code' => 0, + 'code' => 1, 'msg' => '暂无课程信息', 'data' => [] ]; diff --git a/niucloud/app/service/api/apiService/PersonnelService.php b/niucloud/app/service/api/apiService/PersonnelService.php index b0e1c719..a306982a 100644 --- a/niucloud/app/service/api/apiService/PersonnelService.php +++ b/niucloud/app/service/api/apiService/PersonnelService.php @@ -15,6 +15,7 @@ use app\model\campus_person_role\CampusPersonRole; use app\model\departments\Departments; use app\model\member\Member; use app\model\personnel\Personnel; +use app\model\personnel\PersonnelInfo; use app\model\reimbursement\Reimbursement; use app\model\sys\SysRole; use app\model\sys\SysUser; @@ -129,6 +130,10 @@ class PersonnelService extends BaseApiService $data['department_name_str'] = $department_name_str; $data['cameus_dept_arr'] = $cameus_dept_arr;//校区+部门的组合 + // 获取员工详细信息 + $personnelInfo = (new PersonnelInfo())->where(['person_id' => $where['id']])->findOrEmpty()->toArray(); + $data['info'] = $personnelInfo; + $res['code'] = 1; $res['msg'] = '操作成功'; $res['data'] = $data; @@ -146,8 +151,6 @@ class PersonnelService extends BaseApiService //员工信息-修改 public function edit(array $where, array $data) { - $data['update_time'] = date('Y-m-d H:i:s'); - if (!$where) { return [ 'code' => 0, @@ -155,25 +158,68 @@ class PersonnelService extends BaseApiService ]; } - $model = $this->model; - if (!empty($where['id'])) { - $model = $model->where('id', $where['id']); - } - $res = $model->update($data);//员工信息 + try { + // 开启事务 + \think\facade\Db::startTrans(); - if ($res) { - $res = [ + // 分离基础信息和详细信息 + $personnelData = []; + $infoData = []; + + // 基础信息字段 + $baseFields = ['head_img', 'name', 'gender', 'birthday', 'phone', 'email', 'wx', 'address', 'native_place', 'education', 'profile', 'emergency_contact_phone', 'id_card_front', 'id_card_back']; + + foreach ($baseFields as $field) { + if (isset($data[$field])) { + $personnelData[$field] = $data[$field]; + } + } + + // 添加更新时间 + $personnelData['update_time'] = date('Y-m-d H:i:s'); + + // 更新基础信息 + $model = $this->model; + if (!empty($where['id'])) { + $model = $model->where('id', $where['id']); + } + $updateResult = $model->update($personnelData); + + // 处理详细信息 + if (isset($data['info']) && is_array($data['info'])) { + $infoData = $data['info']; + $infoData['updated_at'] = date('Y-m-d H:i:s'); + + // 检查是否已存在详细信息记录 + $existingInfo = (new PersonnelInfo())->where(['person_id' => $where['id']])->findOrEmpty(); + + if ($existingInfo->isEmpty()) { + // 创建新记录 + $infoData['person_id'] = $where['id']; + $infoData['created_at'] = date('Y-m-d H:i:s'); + (new PersonnelInfo())->insert($infoData); + } else { + // 更新现有记录 + (new PersonnelInfo())->where(['person_id' => $where['id']])->update($infoData); + } + } + + // 提交事务 + \think\facade\Db::commit(); + + return [ 'code' => 1, 'msg' => '操作成功' ]; - } else { - $res = [ + + } catch (\Exception $e) { + // 回滚事务 + \think\facade\Db::rollback(); + return [ 'code' => 0, - 'msg' => '操作失败' + 'msg' => '操作失败:' . $e->getMessage() ]; } - return $res; - } //员工信息-获取全部用户 diff --git a/niucloud/app/service/core/addon/CoreAddonInstallService.php b/niucloud/app/service/core/addon/CoreAddonInstallService.php index 9b9dca1d..7d171091 100644 --- a/niucloud/app/service/core/addon/CoreAddonInstallService.php +++ b/niucloud/app/service/core/addon/CoreAddonInstallService.php @@ -220,10 +220,10 @@ class CoreAddonInstallService extends CoreAddonBaseService }, $package_file); $tips = [get_lang('dict_addon.install_after_update')]; - if (in_array('admin-package.json', $package_file)) $tips[] = get_lang('dict_addon.install_after_admin_update'); + if (in_array('admin-mysql-mcp-config.json', $package_file)) $tips[] = get_lang('dict_addon.install_after_admin_update'); if (in_array('composer.json', $package_file)) $tips[] = get_lang('dict_addon.install_after_composer_update'); - if (in_array('uni-app-package.json', $package_file)) $tips[] = get_lang('dict_addon.install_after_wap_update'); - if (in_array('web-package.json', $package_file)) $tips[] = get_lang('dict_addon.install_after_web_update'); + if (in_array('uni-app-mysql-mcp-config.json', $package_file)) $tips[] = get_lang('dict_addon.install_after_wap_update'); + if (in_array('web-mysql-mcp-config.json', $package_file)) $tips[] = get_lang('dict_addon.install_after_web_update'); return $tips; } return true; diff --git a/niucloud/app/service/core/addon/CoreDependService.php b/niucloud/app/service/core/addon/CoreDependService.php index 7e06da05..a23ac046 100644 --- a/niucloud/app/service/core/addon/CoreDependService.php +++ b/niucloud/app/service/core/addon/CoreDependService.php @@ -25,9 +25,9 @@ class CoreDependService extends CoreAddonBaseService { parent::__construct(); $this->server_composer_file = $this->root_path . 'niucloud' . DIRECTORY_SEPARATOR . 'composer.json'; - $this->admin_npm_file = $this->root_path . 'admin' . DIRECTORY_SEPARATOR . 'package.json'; - $this->web_npm_file = $this->root_path . 'web' . DIRECTORY_SEPARATOR . 'package.json'; - $this->wap_npm_file = $this->root_path . 'uni-app' . DIRECTORY_SEPARATOR . 'package.json'; + $this->admin_npm_file = $this->root_path . 'admin' . DIRECTORY_SEPARATOR . 'mysql-mcp-config.json'; + $this->web_npm_file = $this->root_path . 'web' . DIRECTORY_SEPARATOR . 'mysql-mcp-config.json'; + $this->wap_npm_file = $this->root_path . 'uni-app' . DIRECTORY_SEPARATOR . 'mysql-mcp-config.json'; } /** @@ -141,11 +141,11 @@ class CoreDependService extends CoreAddonBaseService public function getAddonNpmContent(string $addon, string $type) { if ($type == 'admin') { - $file_path = $this->geAddonPackagePath($addon) . 'admin-package.json'; + $file_path = $this->geAddonPackagePath($addon) . 'admin-mysql-mcp-config.json'; } elseif ($type == 'web') { - $file_path = $this->geAddonPackagePath($addon) . 'web-package.json'; + $file_path = $this->geAddonPackagePath($addon) . 'web-mysql-mcp-config.json'; } else { - $file_path = $this->geAddonPackagePath($addon) . 'uni-app-package.json'; + $file_path = $this->geAddonPackagePath($addon) . 'uni-app-mysql-mcp-config.json'; } return $this->jsonFileToArray($file_path); } diff --git a/uniapp/PLANNING.md b/uniapp/PLANNING.md index 08c25eea..142910c2 100644 --- a/uniapp/PLANNING.md +++ b/uniapp/PLANNING.md @@ -1,92 +1,14 @@ -✅ 已完成:uniapp/components/service-list-card/index.vue数据问题 -- 前端:已添加完整的Mock数据支持,组件可正常显示测试数据 -- 后端:PHP后端工程师已成功补充测试数据到数据库 -- API测试:接口 `/xy/service/list?student_id=1` 已验证返回完整数据 -- 最终状态:前端组件可以正常获取和显示真实的服务列表数据 - -API返回数据包含: -- 3种不同类型的服务(体测服务、测试服务、1V1+情感沟通) -- 每个服务包含完整的日志记录、评分、反馈信息 -- 服务状态、教练信息、时间等完整字段 -- 数据结构完全符合前端组件期望格式 -✅ 已完成:uniapp/components/service-list-card/index.vue弹窗无法关闭问题 -- 问题原因:事件绑定和微信小程序兼容性问题 -- 修复内容:添加了事件防冒泡处理,优化微信小程序环境下的事件响应 -- 解决方案:增强了响应式更新机制,添加了调试功能 -- 验证状态:已修复弹窗关闭功能,支持微信小程序环境 - -✅ 已处理:components/course-info-card/index.vue页面的接口需求分析 -- 已完成接口需求分析,包含完整的数据结构和字段定义 -- 已将详细的接口规格写入 niucloud/PLANNING.md 中 -- 等待PHP后端工程师按照规格开发接口 -- 开发完成后需要进行联调测试 -✅ 已修复:课程安排、订单列表、服务列表按钮点击无法打开弹窗问题 -- 问题原因:事件冒泡导致按钮点击事件冒泡到遮罩层,立即触发关闭逻辑 -- 修复方案:为所有触发弹窗的按钮添加 `.stop` 事件修饰符阻止冒泡 -- 涉及组件:主页面、OrderListCard、ServiceListCard等所有弹窗相关按钮 -- 验证状态:弹窗打开和关闭功能均正常,微信小程序环境兼容 - -✅ 已修复:pages/market/clue/clue_info.vue页面所有点击事件失灵问题 -- 问题原因:底部弹窗组件的遮罩层一直存在并覆盖整个视口,拦截所有页面点击 -- 核心问题:遮罩层即使弹窗隐藏时仍然监听点击事件,导致所有操作被误判为遮罩点击 -- 修复方案: - - 为BottomPopup组件添加 `v-if="visible"` 条件渲染 - - 关键元素添加 `@click.stop` 阻止事件冒泡 - - 优化弹窗关闭时的数据重置逻辑 -- 影响范围:修复了页面上所有按钮、标签切换、操作项的点击响应 -- 验证状态:页面交互功能完全恢复正常,微信小程序环境兼容 - -📋 体测记录PDF附件预览功能需求 -**背景**:体测记录弹窗需要支持PDF附件预览功能,允许用户查看体测报告 -**需求描述**: -1. 体测记录数据中需要包含 `pdf_files` 字段,包含附件信息 -2. 需要提供PDF文件预览接口,支持在线预览或下载 -3. 前端需要实现PDF预览功能,兼容微信小程序环境 - -**接口需求**: -1. 获取体测记录接口需要返回PDF附件信息 -2. 新增PDF文件预览/下载接口 - - 接口路径:`/api/fitness/record/pdf/preview` - - 请求方式:GET - - 请求参数: - ```json - { - "file_id": "文件ID", - "record_id": "体测记录ID" - } - ``` - - 响应数据: - ```json - { - "code": 1, - "msg": "success", - "data": { - "file_url": "PDF文件访问URL", - "file_name": "文件名称", - "file_size": 1024000, - "preview_url": "在线预览URL(可选)", - "download_url": "下载URL" - } - } - ``` - -**数据结构扩展**: -体测记录数据中的 `pdf_files` 字段结构: -```json -{ - "pdf_files": [ - { - "id": "文件ID", - "name": "体测报告.pdf", - "size": 1024000, - "upload_time": "2024-01-15 10:30:00", - "file_path": "/uploads/fitness/2024/01/xxx.pdf" - } - ] -} -``` - -**前端实现**: -- 在 FitnessRecordCard 组件中实现PDF预览按钮 -- 支持微信小程序环境下的PDF预览 -- 提供下载功能作为备选方案 \ No newline at end of file +阅读PRPs/Word模板解析填充功能开发计划.md +pages/parent/contracts/index这个页面的主题样式和其他页面不符需要修改一下, +然后这个页面的接口请求也有一些问题,我目前没有在浏览器控制台看到任何请求但是提示了一个 +缺少孩子id参数的提示。我需要你把这个页面的渲染和操作都一并完成,我来讲解一下这个功能的一些需求。 +我的数据库里有school_contract_sign as a这个表记录的是合同和人员的关系。 +当前登录的人员如果是员工则获取type=1并且personnel_id=1的所有数据分页展示, +这个表要关联school_contract as b表通过a.contract_id=b.id。 +然后获取school_contract中的所有字段这里你可以使用thinkphp的模型关联。 +然后详情页是需要额外查询school_document_data_source_config和school_document_generate_log这两个表。 +如果school_document_generate_log有值则打开弹窗获取school_document_data_source_config中table_name和field_name是 0 的 +内容然后根据field_type来渲染输入控件接收用户输入,然后更新school_document_generate_log中的fill_data字段。 +然后这个弹窗控件里还有一个签名的字段需要跳转到/pages/common/contract/contract_sign这个页面 +进行签名然后将图片地址也添加到fill_data字段一并更新。 +测试的 word 文档文件是:doc/副本(时间卡)体能课学员课程协议.docx diff --git a/uniapp/TASK.md b/uniapp/TASK.md deleted file mode 100644 index 14607f34bdca7cb8a9c2820c33383679ffecb519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1509 zcmZuxT}T{P6n46`#&KPf79=bbFJm7ji@HBr6DL6$)6i}bA&>tVGsFCZ z7PA$KZ{3$dp>M`QxAmpP7ZZFmNb(S*584m{5z3}7fp$xfl~$0RbEloDi_5Uw^Y`6z z&-u=2C&inGUB8;OdM;8u$@BgFBo{fqjfZ}c9wN1Rb%P%yiA1g5SWF}&B7bx_N0N%A zCuga9!}T<3xR*@Nc4*cpnld5GJJz_*p?5n`&;2&TRNrl^_n>M)lwI>SHRSz?5%Ttx zsocwJ%)a&Y1!nJfv?$N3rbZ=_9w3_HDiWE#H9*SFtVD#ZnUnW~itOi?86uOWdfPJg zRso`&yxv>&GIC*g&t;3a;sBoak;GMMqV`)buMoxWhxI4+0l*J z63si*adZ=np5db2rsxdDP^A^}j;pwyBWD@t3+`0x?s_!I-RnefmjW)e17x+NI8I*k zY{dm+h+%~thQu42%{L|)L|DE{imh!n;TcJeB|o*s9PX~a`Bwb&$56S}+@rf~siSwc z1RVP^7S)m&i#u3;zH+vw`t1AbqtVm7;@KNjKi`oda`hKRgmw~tta^5-y1^3M*;Nh8 zV6l@8tbO;l*zo8NqkoP|!h-0xLn6nLMPPAWVY$+LwGt6)^#@OpicFj2I*WbT4;imNwD*UIWo$40wZrp?M9^EH6fev2Cyr_G^E@E}Qb$1Upn&uNVH(bapc#LHu7NHy zj2=veegl75&%hx35jhkBn`^pC$!|XfoeK<}L$yGkP6hfF&OlH)3@Vy-8Q|vdLWCO$ z!e;fN8|XtdyQL*6gk#ntk(mInM3p-@rUH z2QXwf+Dx#F`7hh{*l}vD(p{YcfiYzi_f|x_*u}#J^9t`i>5YgotgCR)#4|Dv+hc#? zp%sTIcc33C&FdNteVLXEFu}gy_!|x-9;Wuy%6mU9hUYqv@P2FZ|PMxo8!{?ui&1)e>zyUjCXEIqd%Y8>fWFD2fje!eE