From 187109d9ffaaac06dc7cdf68fcdddc30e776e8fd Mon Sep 17 00:00:00 2001 From: sa0ChunLuyu Date: Thu, 23 Jul 2026 02:05:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=E7=9B=AE=20=20?= =?UTF-8?q?=E6=B8=A9=E9=A6=A8=E6=8F=90=E7=A4=BA=20=E6=B3=A8=E6=84=8F?= =?UTF-8?q?=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Admin/YeWu/CheckItemController.php | 10 +++ .../Services/Admin/YeWu/CheckItemService.php | 12 +++ Laravel/routes/api.php | 1 + YiJi-admin/src/api/api.js | 4 + YiJi-admin/src/views/YeWu/CheckItemConfig.vue | 75 ++++++++++++++++++- 5 files changed, 99 insertions(+), 3 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/CheckItemController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/CheckItemController.php index f69ade1..1578f9e 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/CheckItemController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/CheckItemController.php @@ -57,6 +57,16 @@ public function Save() return $s->Save($Info); } + //批量更新检查须知/温馨提示 + public function BatchUpdateNotice() + { + $item_ids = request('item_ids'); + $field = request('field'); + $value = request('value'); + $s = new CheckItemService; + return $s->BatchUpdateNotice($item_ids, $field, $value); + } + //设置互斥 public function SetHuChi(Request $request) { diff --git a/Laravel/app/Services/Admin/YeWu/CheckItemService.php b/Laravel/app/Services/Admin/YeWu/CheckItemService.php index 5bf6dbe..a09d6e0 100644 --- a/Laravel/app/Services/Admin/YeWu/CheckItemService.php +++ b/Laravel/app/Services/Admin/YeWu/CheckItemService.php @@ -242,6 +242,18 @@ public function Save($Info){ } } + public function BatchUpdateNotice($item_ids, $field, $value) + { + if (empty($item_ids) || !in_array($field, ['check_notice', 'warm_tips'])) { + return \Yz::Return(false, '参数错误'); + } + $updated = DB::table('s_check_item') + ->whereIn('id', $item_ids) + ->where('is_del', 0) + ->update([$field => $value]); + return \Yz::Return(true, '批量更新成功,共更新' . $updated . '条'); + } + public function GetRules($item_id) { $rules = DB::table('s_check_item_rule') diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index 1c1e1c0..da8a94c 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -74,6 +74,7 @@ Route::post('admin/ItemBindDevice','App\Http\Controllers\API\Admin\YeWu\CheckItemController@BindDevice');//admin后台检查项目绑定设备 Route::post('admin/GetYuYueTypes','App\Http\Controllers\API\Admin\YeWu\YuYueTypeController@GetTypes');//admin后台获取预约类型 Route::post('admin/SaveItemInfo','App\Http\Controllers\API\Admin\YeWu\CheckItemController@Save');//admin后台保存检查项目信息 + Route::post('admin/BatchUpdateNotice','App\Http\Controllers\API\Admin\YeWu\CheckItemController@BatchUpdateNotice');//批量更新检查须知/温馨提示 Route::post('admin/GetDepartmentList','App\Http\Controllers\API\Admin\YeWu\DepartmentController@GetList');//admin后台获取科室列表 Route::post('admin/SaveDepartment','App\Http\Controllers\API\Admin\YeWu\DepartmentController@Save');//保存科室信息 Route::post('admin/DelDepartment','App\Http\Controllers\API\Admin\YeWu\DepartmentController@Del');//删除科室信息 diff --git a/YiJi-admin/src/api/api.js b/YiJi-admin/src/api/api.js index 36e960a..6441209 100644 --- a/YiJi-admin/src/api/api.js +++ b/YiJi-admin/src/api/api.js @@ -184,6 +184,10 @@ export const GetYuYueTypes = (data = {}) => { export const SaveItemInfo = (data = {}) => { return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveItemInfo', data: data }) } +//admin批量更新检查须知/温馨提示 +export const BatchUpdateNotice = (data = {}) => { + return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/BatchUpdateNotice', data: data }) +} //获取当前科室权限的检查项目类别列表 export const GetDeptCheckItemClassList = (data = {}) => { return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetDeptCheckItemClassList', data: data }) diff --git a/YiJi-admin/src/views/YeWu/CheckItemConfig.vue b/YiJi-admin/src/views/YeWu/CheckItemConfig.vue index 1b7d38c..0377708 100644 --- a/YiJi-admin/src/views/YeWu/CheckItemConfig.vue +++ b/YiJi-admin/src/views/YeWu/CheckItemConfig.vue @@ -35,6 +35,8 @@ 同步分类 同步检查项目 批量关联排班 + 批量设置检查须知 + 批量设置温馨提示 导出 @@ -55,7 +57,7 @@ - + @@ -132,7 +134,10 @@
检查须知:
+ type="textarea" placeholder="请输入检查须知" style="width: 500px;" :rows="8" /> + +
温馨提示:
+ + + + 请输入想要与 {{SelectedHuChiItemInfo.name}} 互斥的项目名称 @@ -292,6 +305,7 @@ ItemBindDevice, GetYuYueTypes, SaveItemInfo, + BatchUpdateNotice, SetHuChi, DelHuChi, GetHuChiList, @@ -327,7 +341,8 @@ reservation_method: '', check_time: '', check_begin_time: '', - check_notice: '' + check_notice: '', + warm_tips: '' }) //获取检查项目类别list let BigClassList = ref([]); @@ -412,6 +427,10 @@ let DevicedialogVisible = ref(false); //关联设备弹窗 let ItemDialogVisible = ref(false); //编辑项目弹窗 let isBatchLink = ref(false) //是否批量关联模式 + let batchNoticeDialogVisible = ref(false) + let batchNoticeField = ref('') + let batchNoticeTitle = ref('') + let batchNoticeValue = ref('') let selectedCheckItems = ref([]) //勾选的检查项目 let checkItemTableRef = ref(null) //表格ref @@ -550,6 +569,55 @@ }) } } + + const openBatchNotice = (field) => { + if (selectedCheckItems.value.length === 0) { + ElMessage.error('请先勾选要批量设置的检查项目') + return + } + batchNoticeField.value = field + batchNoticeTitle.value = field === 'check_notice' ? '批量设置检查须知' : '批量设置温馨提示' + + const valueMap = {} + selectedCheckItems.value.forEach(row => { + const val = (row[field] || '').trim() + if (val) { + valueMap[val] = (valueMap[val] || 0) + 1 + } + }) + + let maxCount = 0 + let mostValue = '' + Object.entries(valueMap).forEach(([val, count]) => { + if (count > maxCount) { + maxCount = count + mostValue = val + } + }) + + batchNoticeValue.value = mostValue + batchNoticeDialogVisible.value = true + } + + const saveBatchNotice = () => { + const ids = selectedCheckItems.value.map(row => row.id) + loading.value = true + BatchUpdateNotice({ + item_ids: ids, + field: batchNoticeField.value, + value: batchNoticeValue.value + }).then(res => { + loading.value = false + if (res.status) { + batchNoticeDialogVisible.value = false + ElMessage.success(res.msg) + GetItemList() + } else { + ElMessage.error(res.msg) + } + }) + } + //获取可用设备列表 let deviceList = ref([]) const GetDeviceList = () => { @@ -575,6 +643,7 @@ } selectedItemInfo.value.check_begin_time = row.check_begin_time selectedItemInfo.value.check_notice = row.check_notice + selectedItemInfo.value.warm_tips = row.warm_tips } //获取预约方式类型 let yuyueType = ref('')