检查项目 温馨提示 注意事项

main
鹿和sa0ChunLuyu 2 weeks ago
parent 1553060b5c
commit 8d6d6fbf31

@ -37,6 +37,16 @@ public function BindDevice(Request $request)
return $service->BindDevice($item_id, $device_ids, $userid); return $service->BindDevice($item_id, $device_ids, $userid);
} }
//批量更新检查须知/温馨提示
public function BatchUpdateNotice()
{
$item_ids = request('item_ids');
$field = request('field');
$value = request('value');
$service = new DeptCheckItemService();
return $service->BatchUpdateNotice($item_ids, $field, $value);
}
//保存检查项目信息 //保存检查项目信息
public function Save() public function Save()
{ {

@ -156,6 +156,18 @@ public function BindDevice($item_id,$device_ids,$userid){
return \Yz::Return(false, '绑定失败'); return \Yz::Return(false, '绑定失败');
} }
} }
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 Save($Info){ public function Save($Info){
if(!empty($Info['id'])){ if(!empty($Info['id'])){
$Info['reservation_method']=implode(',', $Info['reservation_method']); $Info['reservation_method']=implode(',', $Info['reservation_method']);

@ -59,6 +59,7 @@
Route::post('admin/GetDeptCheckItemList','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@GetItemList');//获取当前科室权限的检查项目列表 Route::post('admin/GetDeptCheckItemList','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@GetItemList');//获取当前科室权限的检查项目列表
Route::post('admin/DeptItemBindDevice','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@BindDevice');//当前科室权限的检查项目绑定设备 Route::post('admin/DeptItemBindDevice','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@BindDevice');//当前科室权限的检查项目绑定设备
Route::post('admin/DeptSaveItemInfo','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@Save');//当前科室权限的保存检查项目信息 Route::post('admin/DeptSaveItemInfo','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@Save');//当前科室权限的保存检查项目信息
Route::post('admin/DeptBatchUpdateNotice','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@BatchUpdateNotice');//科室版本批量更新检查须知/温馨提示
Route::post('admin/GetDeptDeviceListPage','App\Http\Controllers\API\Admin\YeWu\DeptDeviceController@GetList');//获取当前科室下的设备列表(分页) Route::post('admin/GetDeptDeviceListPage','App\Http\Controllers\API\Admin\YeWu\DeptDeviceController@GetList');//获取当前科室下的设备列表(分页)
Route::post('admin/SaveDeptDevice','App\Http\Controllers\API\Admin\YeWu\DeptDeviceController@Save');//保存当前科室下的设备 Route::post('admin/SaveDeptDevice','App\Http\Controllers\API\Admin\YeWu\DeptDeviceController@Save');//保存当前科室下的设备
Route::post('admin/DelDeptDevice','App\Http\Controllers\API\Admin\YeWu\DeptDeviceController@Del');//删除当前科室下的设备 Route::post('admin/DelDeptDevice','App\Http\Controllers\API\Admin\YeWu\DeptDeviceController@Del');//删除当前科室下的设备

@ -204,6 +204,10 @@ export const DeptItemBindDevice = (data = {}) => {
export const DeptSaveItemInfo = (data = {}) => { export const DeptSaveItemInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/DeptSaveItemInfo', data: data }) return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/DeptSaveItemInfo', data: data })
} }
//科室版本批量更新检查须知/温馨提示
export const DeptBatchUpdateNotice = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/DeptBatchUpdateNotice', data: data })
}
//admin获取科室列表 //admin获取科室列表
export const GetDepartmentList = (data = {}) => { export const GetDepartmentList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetDepartmentList', data: data }) return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetDepartmentList', data: data })

@ -32,6 +32,8 @@
</div> </div>
<el-button type="primary" @click="GetItemList()" style="margin-left: 10px;">查询</el-button> <el-button type="primary" @click="GetItemList()" style="margin-left: 10px;">查询</el-button>
<el-button type="primary" @click="BatchLinkDevice()" style="margin-left: 10px;">批量关联排班</el-button> <el-button type="primary" @click="BatchLinkDevice()" style="margin-left: 10px;">批量关联排班</el-button>
<el-button type="primary" @click="openBatchNotice('check_notice')" style="margin-left: 10px;">批量设置检查须知</el-button>
<el-button type="primary" @click="openBatchNotice('warm_tips')" style="margin-left: 10px;">批量设置温馨提示</el-button>
</el-row> </el-row>
</div> </div>
<el-table ref="checkItemTableRef" :data="tableData" style="width: 100%; margin-top: 10px;" row-key="id" @sort-change="onSortChange" @selection-change="onSelectionChange"> <el-table ref="checkItemTableRef" :data="tableData" style="width: 100%; margin-top: 10px;" row-key="id" @sort-change="onSortChange" @selection-change="onSelectionChange">
@ -45,7 +47,7 @@
<el-tag v-if="scope.row.limosis==0" class="ml-2" type="success"></el-tag> <el-tag v-if="scope.row.limosis==0" class="ml-2" type="success"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="check_notice" label="检查须知" /> <el-table-column prop="check_notice" label="检查须知" v-if="false" />
<el-table-column prop="check_time" label="检查时间" width="100" /> <el-table-column prop="check_time" label="检查时间" width="100" />
<el-table-column prop="check_begin_time" label="开始预约时间" width="120" /> <el-table-column prop="check_begin_time" label="开始预约时间" width="120" />
<el-table-column prop="devicesInfo" label="关联排班"> <el-table-column prop="devicesInfo" label="关联排班">
@ -118,7 +120,10 @@
<div class="row"><span class="title">检查须知</span><el-input v-model="selectedItemInfo.check_notice" <div class="row"><span class="title">检查须知</span><el-input v-model="selectedItemInfo.check_notice"
type="textarea" placeholder="请输入检查须知" style=" width: 500px;" /></div> type="textarea" placeholder="请输入检查须知" style="width: 500px;" :rows="8" /></div>
<div class="row"><span class="title">温馨提示</span><el-input v-model="selectedItemInfo.warm_tips"
type="textarea" placeholder="请输入温馨提示" style="width: 500px;" :rows="8" /></div>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
@ -251,6 +256,14 @@
<el-button type="primary" @click="SaveRulesFunc"></el-button> <el-button type="primary" @click="SaveRulesFunc"></el-button>
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="batchNoticeDialogVisible" :title="batchNoticeTitle" width="40%">
<el-input v-model="batchNoticeValue" type="textarea" placeholder="请输入内容"
style="width: 100%;" :rows="8" />
<template #footer>
<el-button @click="batchNoticeDialogVisible = false">取消</el-button>
<el-button type="primary" @click="saveBatchNotice"></el-button>
</template>
</el-dialog>
</div> </div>
</template> </template>
@ -272,7 +285,8 @@
GetHuChiList, GetHuChiList,
GetCheckItemList, GetCheckItemList,
GetCheckItemRules, GetCheckItemRules,
SaveCheckItemRules SaveCheckItemRules,
DeptBatchUpdateNotice
} from '@/api/api.js' } from '@/api/api.js'
import { import {
ElMessage, ElMessage,
@ -300,7 +314,8 @@
reservation_method: '', reservation_method: '',
check_time: '', check_time: '',
check_begin_time: '', check_begin_time: '',
check_notice: '' check_notice: '',
warm_tips: ''
}) })
//list //list
let BigClassList = ref([]); let BigClassList = ref([]);
@ -382,6 +397,10 @@
let isBatchLink = ref(false) // let isBatchLink = ref(false) //
let selectedCheckItems = ref([]) // let selectedCheckItems = ref([]) //
let checkItemTableRef = ref(null) //ref let checkItemTableRef = ref(null) //ref
let batchNoticeDialogVisible = ref(false)
let batchNoticeField = ref('')
let batchNoticeTitle = ref('')
let batchNoticeValue = ref('')
// //
const linkDialogTitle = computed(() => { const linkDialogTitle = computed(() => {
@ -393,6 +412,55 @@
selectedCheckItems.value = rows selectedCheckItems.value = rows
} }
//
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
DeptBatchUpdateNotice({
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)
}
})
}
//穿 //穿
const LinkDeviceClick = (row) => { const LinkDeviceClick = (row) => {
isBatchLink.value = false isBatchLink.value = false
@ -524,6 +592,7 @@
} }
selectedItemInfo.value.check_begin_time = row.check_begin_time selectedItemInfo.value.check_begin_time = row.check_begin_time
selectedItemInfo.value.check_notice = row.check_notice selectedItemInfo.value.check_notice = row.check_notice
selectedItemInfo.value.warm_tips = row.warm_tips
} }
// //
let yuyueType = ref('') let yuyueType = ref('')

Loading…
Cancel
Save