工作台科室

main
鹿和sa0ChunLuyu 2 weeks ago
parent 47e51980b0
commit 0afdf0600a

@ -75,6 +75,14 @@ public function SaveChildren()
$service = new DepartmentService();
return $service->SaveChildren($department_id, $children_ids);
}
//获取有排班资源的科室列表
public function GetHasScheduleTopDepartments()
{
$exclude_id = request('department_id');
$service = new DepartmentService();
return $service->GetHasScheduleTopDepartments($exclude_id);
}
//按名称或编号模糊搜索科室
public function Search()
{

@ -145,6 +145,18 @@ public function GetList(Request $request)
})
->pluck('department_number');
//工作台科室:合并关联科室的 department_number
if ($department->is_workbench == 1) {
$linkedIds = json_decode($department->linked_departments, true);
if (!empty($linkedIds) && is_array($linkedIds)) {
$linkedDeptNumbers = DB::table('s_department')
->whereIn('id', $linkedIds)
->where('is_del', 0)
->pluck('department_number');
$deptNumbers = $deptNumbers->merge($linkedDeptNumbers);
}
}
$list = $list->where(function ($q) use($deptNumbers) {
$q->whereIn('RISRAcceptDeptCode', $deptNumbers)
->orWhereIn('reservation_department_code', $deptNumbers);
@ -255,13 +267,12 @@ public function CheckEntrstItemGroup()
if($v->device_id==$value){
foreach ($items as $item){
if($item['name']==$v->item_name){
$v->rowid[]=$item['rowid'];
$clone = clone $v;
$clone->rowid = $item['rowid'];
$lg[] = $clone;
$rowids[] = $item['rowid'];
}
}
$lg[]=$v;
}
}
if(count($lg)>1 or count($group)==0){

@ -186,6 +186,27 @@ public function SaveChildren($department_id, $children_ids)
}
return \Yz::Return(true, '保存成功', []);
}
//获取有排班资源的科室列表(排除指定科室自身)
public function GetHasScheduleTopDepartments($exclude_id = null)
{
$hasResourceDeptIds = DB::table('s_department_resources')
->where('is_del', 0)
->distinct()
->pluck('department_id');
$list = DB::table('s_department')
->where('is_del', 0)
->where('department_status', 1)
->whereIn('id', $hasResourceDeptIds)
->when($exclude_id, function($q) use ($exclude_id) {
$q->where('id', '!=', $exclude_id);
})
->select('id', 'department_name')
->get();
return \Yz::Return(true, '查询成功', ['list' => $list]);
}
//按名称或编号模糊搜索科室
public function Search($keyword)
{

@ -83,6 +83,7 @@
Route::post('admin/GetDepartmentChildren','App\Http\Controllers\API\Admin\YeWu\DepartmentController@GetChildren');//获取科室已关联的子科室列表
Route::post('admin/GetLeafDepartmentList','App\Http\Controllers\API\Admin\YeWu\DepartmentController@GetLeafList');//获取可作为诊室的叶子节点科室列表
Route::post('admin/SaveDepartmentChildren','App\Http\Controllers\API\Admin\YeWu\DepartmentController@SaveChildren');//保存科室关联诊室关系
Route::post('admin/GetHasScheduleTopDepartments','App\Http\Controllers\API\Admin\YeWu\DepartmentController@GetHasScheduleTopDepartments');//获取有排班资源的科室列表
Route::post('admin/SaveDepartmentResource','App\Http\Controllers\API\Admin\YeWu\DepartmentResourceController@Save');//保存科室资源信息
Route::post('admin/DepartmentResourceGetList','App\Http\Controllers\API\Admin\YeWu\DepartmentResourceController@GetList');//获取科室资源list
Route::post('admin/DepartmentResourceGetEnableList','App\Http\Controllers\API\Admin\YeWu\DepartmentResourceController@GetEnableList');//获取可用科室资源

@ -229,7 +229,10 @@ export const GetLeafDepartmentList = (data = {}) => {
export const SaveDepartmentChildren = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveDepartmentChildren', data: data })
}
//admin获取有排班资源的科室列表
export const GetHasScheduleTopDepartments = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetHasScheduleTopDepartments', data: data })
}
//admin保存科室资源信息
export const SaveDepartmentResource = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveDepartmentResource', data: data })

@ -98,6 +98,18 @@
<el-switch v-model="departmentInfo.appointment_enabled" active-text="" inactive-text=""
:active-value="1" :inactive-value="0" />
</el-form-item>
<el-divider content-position="left">工作台属性</el-divider>
<el-form-item label="是否工作台科室:">
<el-switch v-model="departmentInfo.is_workbench" active-text="" inactive-text=""
:active-value="1" :inactive-value="0" />
</el-form-item>
<el-form-item label="关联科室:" v-if="departmentInfo.is_workbench == 1">
<el-select v-model="selectedLinkedDepts" multiple filterable collapse-tags
placeholder="请选择关联科室" style="width: 100%;">
<el-option v-for="item in topScheduleDepts" :key="item.id"
:label="item.department_name" :value="item.id" />
</el-select>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
@ -168,7 +180,8 @@
getGroupList,
GetDepartmentChildren,
GetLeafDepartmentList,
SaveDepartmentChildren
SaveDepartmentChildren,
GetHasScheduleTopDepartments
} from '@/api/api.js'
import { ElMessage, ElMessageBox } from 'element-plus'
import DepartmentResourcesSave from '@/components/Yewu/DepartmentResourcesSave.vue'
@ -184,6 +197,8 @@
});
let loading = ref(false);
let selectedLinkedDepts = ref([])
let topScheduleDepts = ref([])
let searchInfo = ref({
status: null,
name: '',
@ -228,7 +243,9 @@
department_status: null,
appointment_enabled: 0,
auto_gen_days: 15,
pid: 0
pid: 0,
is_workbench: 0,
linked_departments: '[]'
})
const Edit = (row) => {
dialogVisible.value = true
@ -239,10 +256,19 @@
department_status: row.department_status,
appointment_enabled: row.appointment_enabled ?? 0,
auto_gen_days: row.auto_gen_days ?? 15,
pid: row.pid ?? 0
pid: row.pid ?? 0,
is_workbench: row.is_workbench ?? 0,
linked_departments: row.linked_departments ?? '[]'
}
try {
selectedLinkedDepts.value = JSON.parse(row.linked_departments || '[]').map(Number)
} catch {
selectedLinkedDepts.value = []
}
loadTopScheduleDepts()
}
const Save = () => {
departmentInfo.value.linked_departments = JSON.stringify(selectedLinkedDepts.value.map(String))
loading.value = true
SaveDepartment({
info: departmentInfo.value,
@ -266,8 +292,12 @@
department_status: 1,
appointment_enabled: 0,
auto_gen_days: 15,
pid: 0
pid: 0,
is_workbench: 0,
linked_departments: '[]'
}
selectedLinkedDepts.value = []
loadTopScheduleDepts()
}
//
let addUserdialogVisible =ref(false);
@ -412,6 +442,16 @@
}
})
}
const loadTopScheduleDepts = () => {
GetHasScheduleTopDepartments({
department_id: departmentInfo.value.id
}).then(res => {
if (res.status) {
topScheduleDepts.value = res.data.list
}
})
}
onMounted(() => {
getGroup()
GetList()

Loading…
Cancel
Save