From 7ba4bd23e18da1e39b91798d1e052db635b86bef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B2=A9=E4=BB=9488?= <>
Date: Sat, 14 Mar 2026 16:02:25 +0800
Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=A2=9E=E5=8A=A0=E5=8D=A0?=
=?UTF-8?q?=E4=BD=8D=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../API/Admin/YeWu/PlanModelController.php | 61 ++++++++
Laravel/routes/api.php | 1 +
YiJi-admin/src/api/api.js | 4 +
.../src/views/AppointmentMngr/PlanModel.vue | 142 +++++++++++++++++-
4 files changed, 207 insertions(+), 1 deletion(-)
diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php
index 1d6fa7e..a4c4c8b 100644
--- a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php
+++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php
@@ -443,4 +443,65 @@ class PlanModelController extends Controller
}
}
+
+ //保存模板占位数量
+ public function SaveLockedCount(Request $request)
+ {
+ $userid = $request->get('userid');
+ $roster_id = request('roster_id');
+ $locked_counts = request('locked_counts');
+
+ if (empty($roster_id)) {
+ return \Yz::echoError1('模板ID不能为空');
+ }
+
+ if (empty($locked_counts) || !is_array($locked_counts)) {
+ return \Yz::echoError1('占位数量不能为空');
+ }
+
+ DB::beginTransaction();
+
+ try {
+ foreach ($locked_counts as $item) {
+ $appointment_type_id = $item['appointment_type_id'];
+ $locked_count = $item['locked_count'];
+
+ // 查询对应的记录(模板表 s_source_roster_count)
+ $countRecord = DB::table('s_source_roster_count')
+ ->where([
+ 'roster_id' => $roster_id,
+ 'appointment_type_id' => $appointment_type_id
+ ])
+ ->first();
+
+ if (!$countRecord) {
+ DB::rollBack();
+ return \Yz::echoError1('未找到对应的渠道数量记录');
+ }
+
+ if ($locked_count < 0) {
+ DB::rollBack();
+ return \Yz::echoError1('占位数量不能为负数');
+ }
+
+ // 更新占位数量
+ DB::table('s_source_roster_count')
+ ->where([
+ 'roster_id' => $roster_id,
+ 'appointment_type_id' => $appointment_type_id
+ ])
+ ->update([
+ 'locked_count' => $locked_count,
+ 'updated_at' => date('Y-m-d H:i:s')
+ ]);
+ }
+
+ DB::commit();
+ return \Yz::Return(true, '保存成功', []);
+
+ } catch (\Exception $e) {
+ DB::rollBack();
+ return \Yz::echoError1('保存失败:' . $e->getMessage());
+ }
+ }
}
diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php
index 3523d8c..24a34c6 100644
--- a/Laravel/routes/api.php
+++ b/Laravel/routes/api.php
@@ -81,6 +81,7 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () {
Route::post('admin/GetPlanModelDetailInfo','App\Http\Controllers\API\Admin\YeWu\PlanModelController@GetDetailInfo');//获取计划模板详情
Route::post('admin/PlanModelDel','App\Http\Controllers\API\Admin\YeWu\PlanModelController@Del');//删除计划模板
Route::post('admin/SaveAppointmentRatio','App\Http\Controllers\API\Admin\YeWu\PlanModelController@SaveAppointmentRatio');//保存渠道比例
+ Route::post('admin/SavePlanModelLockedCount','App\Http\Controllers\API\Admin\YeWu\PlanModelController@SaveLockedCount');//保存模板占位数量
Route::post('admin/CreatePlanList','App\Http\Controllers\API\Admin\YeWu\PlanListController@Create');//生成计划明细
Route::post('admin/PlanListGetList','App\Http\Controllers\API\Admin\YeWu\PlanListController@GetList');//生成计划明细
Route::post('admin/PlanListGetDetail','App\Http\Controllers\API\Admin\YeWu\PlanListController@GetDetail');//计划详情
diff --git a/YiJi-admin/src/api/api.js b/YiJi-admin/src/api/api.js
index 6143a45..bb6107e 100644
--- a/YiJi-admin/src/api/api.js
+++ b/YiJi-admin/src/api/api.js
@@ -390,4 +390,8 @@ export const adminPlanTongJi = (data = {}) => {
//保存占位数量
export const SaveLockedCount = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveLockedCount', data: data })
+}
+//保存模板占位数量
+export const SavePlanModelLockedCount = (data = {}) => {
+ return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SavePlanModelLockedCount', data: data })
}
\ No newline at end of file
diff --git a/YiJi-admin/src/views/AppointmentMngr/PlanModel.vue b/YiJi-admin/src/views/AppointmentMngr/PlanModel.vue
index 50ec53f..d70b568 100644
--- a/YiJi-admin/src/views/AppointmentMngr/PlanModel.vue
+++ b/YiJi-admin/src/views/AppointmentMngr/PlanModel.vue
@@ -83,6 +83,11 @@