工作台科室

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

@ -75,6 +75,14 @@ public function SaveChildren()
$service = new DepartmentService(); $service = new DepartmentService();
return $service->SaveChildren($department_id, $children_ids); 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() public function Search()
{ {

@ -145,6 +145,18 @@ public function GetList(Request $request)
}) })
->pluck('department_number'); ->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) { $list = $list->where(function ($q) use($deptNumbers) {
$q->whereIn('RISRAcceptDeptCode', $deptNumbers) $q->whereIn('RISRAcceptDeptCode', $deptNumbers)
->orWhereIn('reservation_department_code', $deptNumbers); ->orWhereIn('reservation_department_code', $deptNumbers);
@ -255,13 +267,12 @@ public function CheckEntrstItemGroup()
if($v->device_id==$value){ if($v->device_id==$value){
foreach ($items as $item){ foreach ($items as $item){
if($item['name']==$v->item_name){ if($item['name']==$v->item_name){
$clone = clone $v;
$v->rowid[]=$item['rowid']; $clone->rowid = $item['rowid'];
$lg[] = $clone;
$rowids[] = $item['rowid']; $rowids[] = $item['rowid'];
} }
} }
$lg[]=$v;
} }
} }
if(count($lg)>1 or count($group)==0){ if(count($lg)>1 or count($group)==0){

@ -186,6 +186,27 @@ public function SaveChildren($department_id, $children_ids)
} }
return \Yz::Return(true, '保存成功', []); 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) public function Search($keyword)
{ {

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

@ -229,7 +229,10 @@ export const GetLeafDepartmentList = (data = {}) => {
export const SaveDepartmentChildren = (data = {}) => { export const SaveDepartmentChildren = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveDepartmentChildren', data: 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保存科室资源信息 //admin保存科室资源信息
export const SaveDepartmentResource = (data = {}) => { export const SaveDepartmentResource = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveDepartmentResource', data: 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="" <el-switch v-model="departmentInfo.appointment_enabled" active-text="" inactive-text=""
:active-value="1" :inactive-value="0" /> :active-value="1" :inactive-value="0" />
</el-form-item> </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> </el-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
@ -168,7 +180,8 @@
getGroupList, getGroupList,
GetDepartmentChildren, GetDepartmentChildren,
GetLeafDepartmentList, GetLeafDepartmentList,
SaveDepartmentChildren SaveDepartmentChildren,
GetHasScheduleTopDepartments
} from '@/api/api.js' } from '@/api/api.js'
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
import DepartmentResourcesSave from '@/components/Yewu/DepartmentResourcesSave.vue' import DepartmentResourcesSave from '@/components/Yewu/DepartmentResourcesSave.vue'
@ -184,6 +197,8 @@
}); });
let loading = ref(false); let loading = ref(false);
let selectedLinkedDepts = ref([])
let topScheduleDepts = ref([])
let searchInfo = ref({ let searchInfo = ref({
status: null, status: null,
name: '', name: '',
@ -228,7 +243,9 @@
department_status: null, department_status: null,
appointment_enabled: 0, appointment_enabled: 0,
auto_gen_days: 15, auto_gen_days: 15,
pid: 0 pid: 0,
is_workbench: 0,
linked_departments: '[]'
}) })
const Edit = (row) => { const Edit = (row) => {
dialogVisible.value = true dialogVisible.value = true
@ -239,10 +256,19 @@
department_status: row.department_status, department_status: row.department_status,
appointment_enabled: row.appointment_enabled ?? 0, appointment_enabled: row.appointment_enabled ?? 0,
auto_gen_days: row.auto_gen_days ?? 15, 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 = () => { const Save = () => {
departmentInfo.value.linked_departments = JSON.stringify(selectedLinkedDepts.value.map(String))
loading.value = true loading.value = true
SaveDepartment({ SaveDepartment({
info: departmentInfo.value, info: departmentInfo.value,
@ -266,8 +292,12 @@
department_status: 1, department_status: 1,
appointment_enabled: 0, appointment_enabled: 0,
auto_gen_days: 15, auto_gen_days: 15,
pid: 0 pid: 0,
is_workbench: 0,
linked_departments: '[]'
} }
selectedLinkedDepts.value = []
loadTopScheduleDepts()
} }
// //
let addUserdialogVisible =ref(false); 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(() => { onMounted(() => {
getGroup() getGroup()
GetList() GetList()

Loading…
Cancel
Save