From 2113317f2faa3e2b44b48b8c4560bfecd480b981 Mon Sep 17 00:00:00 2001 From: sa0ChunLuyu Date: Fri, 17 Jul 2026 18:56:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=91=E5=AE=A4=E7=BA=A7=E5=88=AB=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E5=A2=9E=E6=89=A7=E8=A1=8C=E8=AF=8A?= =?UTF-8?q?=E5=AE=A4=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Admin/YeWu/DeptDeviceController.php | 38 ++++ .../Services/Admin/YeWu/DeptDeviceService.php | 89 +++++++++ Laravel/routes/api.php | 3 + YiJi-admin/src/api/api.js | 12 ++ .../Yewu/DepartmentResourcesSave.vue | 2 +- YiJi-admin/src/router/index.js | 7 + .../src/views/YeWu/DeptDeviceConfig.vue | 176 +++++++++++++++++ .../src/views/YeWu/DeptResourceConfig.vue | 177 ++++++++++++++++++ 8 files changed, 503 insertions(+), 1 deletion(-) create mode 100644 Laravel/app/Http/Controllers/API/Admin/YeWu/DeptDeviceController.php create mode 100644 Laravel/app/Services/Admin/YeWu/DeptDeviceService.php create mode 100644 YiJi-admin/src/views/YeWu/DeptDeviceConfig.vue create mode 100644 YiJi-admin/src/views/YeWu/DeptResourceConfig.vue diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/DeptDeviceController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/DeptDeviceController.php new file mode 100644 index 0000000..93da6ac --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/DeptDeviceController.php @@ -0,0 +1,38 @@ +get('userid'); + $service = new DeptDeviceService(); + return $service->GetList($searchInfo, $page, $pageSize, $userid); + } + + //保存设备 + public function Save(Request $request) + { + $data = request('Info'); + $userid = $request->get('userid'); + $service = new DeptDeviceService(); + return $service->Save($data, $userid); + } + + //删除设备 + public function Del() + { + $id = request('id'); + $service = new DeptDeviceService(); + return $service->Del($id); + } +} \ No newline at end of file diff --git a/Laravel/app/Services/Admin/YeWu/DeptDeviceService.php b/Laravel/app/Services/Admin/YeWu/DeptDeviceService.php new file mode 100644 index 0000000..39e459f --- /dev/null +++ b/Laravel/app/Services/Admin/YeWu/DeptDeviceService.php @@ -0,0 +1,89 @@ +where('id', $userid)->first(); + if (!$user || !$user->department_id) { + return \Yz::Return(true, '查询成功', ['list' => [], 'count' => 0]); + } + + $list = DB::table('s_devices') + ->join('s_department_resources_device', 's_devices.id', '=', 's_department_resources_device.device_id') + ->where('s_department_resources_device.department_id', $user->department_id) + ->where('s_devices.is_del', 0); + + if (!empty($searchInfo['name'])) { + $list->where('s_devices.device_name', 'like', '%' . $searchInfo['name'] . '%'); + } + if (isset($searchInfo['status']) && $searchInfo['status'] !== '') { + $list->where('s_devices.status', $searchInfo['status']); + } + + $count = $list->count(); + $items = $list->select('s_devices.*') + ->orderBy('s_devices.id', 'desc') + ->skip(($page - 1) * $pageSize) + ->take($pageSize) + ->get(); + + return \Yz::Return(true, '查询成功', ['list' => $items, 'count' => $count]); + } + + //保存设备(新建时同时关联到当前科室) + public function Save($data, $userid) + { + $user = DB::table('users')->where('id', $userid)->first(); + if (!$user || !$user->department_id) { + return \Yz::Return(false, '用户科室信息不存在'); + } + + DB::beginTransaction(); + try { + if (empty($data['id'])) { + //新建设备 + $deviceId = DB::table('s_devices')->insertGetId([ + 'device_name' => $data['device_name'], + 'status' => $data['status'] ?? 1, + 'is_del' => 0, + ]); + //关联到当前科室 + DB::table('s_department_resources_device')->insert([ + 'department_id' => $user->department_id, + 'device_id' => $deviceId, + ]); + } else { + //更新设备 + DB::table('s_devices')->where('id', $data['id'])->update([ + 'device_name' => $data['device_name'], + 'status' => $data['status'] ?? 1, + ]); + } + DB::commit(); + return \Yz::Return(true, '保存成功'); + } catch (\Exception $e) { + DB::rollBack(); + return \Yz::Return(false, '保存失败'); + } + } + + //删除设备(软删除 + 解除关联) + public function Del($id) + { + DB::beginTransaction(); + try { + DB::table('s_devices')->where('id', $id)->update(['is_del' => 1]); + DB::table('s_department_resources_device')->where('device_id', $id)->delete(); + DB::commit(); + return \Yz::Return(true, '删除成功'); + } catch (\Exception $e) { + DB::rollBack(); + return \Yz::Return(false, '删除失败'); + } + } +} \ No newline at end of file diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index 84cbb8e..61525d2 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -57,6 +57,9 @@ 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/DeptSaveItemInfo','App\Http\Controllers\API\Admin\YeWu\DeptCheckItemController@Save');//当前科室权限的保存检查项目信息 + 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/DelDeptDevice','App\Http\Controllers\API\Admin\YeWu\DeptDeviceController@Del');//删除当前科室下的设备 Route::post('admin/GetDeviceList','App\Http\Controllers\API\Admin\YeWu\DevicesController@GetList');//admin后台获取设备列表 Route::post('admin/SaveDeviceList','App\Http\Controllers\API\Admin\YeWu\DevicesController@Save');//admin后台保存设备列表 Route::post('admin/GetEnableDeviceList','App\Http\Controllers\API\Admin\YeWu\DevicesController@GetEnableList');//admin后台可用设备列表 diff --git a/YiJi-admin/src/api/api.js b/YiJi-admin/src/api/api.js index 10fe650..b9e9f1a 100644 --- a/YiJi-admin/src/api/api.js +++ b/YiJi-admin/src/api/api.js @@ -131,6 +131,18 @@ export const SaveDeviceList = (data = {}) => { export const DelDevice = (data = {}) => { return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/DelDevice', data: data }) } +//获取当前科室下的设备列表 +export const GetDeptDeviceListPage = (data = {}) => { + return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetDeptDeviceListPage', data: data }) +} +//保存当前科室下的设备 +export const SaveDeptDevice = (data = {}) => { + return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveDeptDevice', data: data }) +} +//删除当前科室下的设备 +export const DelDeptDevice = (data = {}) => { + return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/DelDeptDevice', data: data }) +} //admin后台获取可用设备列表 export const GetEnableDeviceList = (data = {}) => { diff --git a/YiJi-admin/src/components/Yewu/DepartmentResourcesSave.vue b/YiJi-admin/src/components/Yewu/DepartmentResourcesSave.vue index d77b3a0..fac4de1 100644 --- a/YiJi-admin/src/components/Yewu/DepartmentResourcesSave.vue +++ b/YiJi-admin/src/components/Yewu/DepartmentResourcesSave.vue @@ -2,7 +2,7 @@
- + diff --git a/YiJi-admin/src/router/index.js b/YiJi-admin/src/router/index.js index d4aaf4a..ab92514 100644 --- a/YiJi-admin/src/router/index.js +++ b/YiJi-admin/src/router/index.js @@ -138,6 +138,13 @@ const router = createRouter({ meta: { title: '检查项目管理' } + },{ + path: '/yewu/deptDeviceConfig', + name: 'YewuDeptResourceConfig', + component: () => import('../views/YeWu/DeptResourceConfig.vue'), + meta: { + title: '排班管理' + } },{ path: '/yewu/devicesConfig', name: 'YewuDevicesConfig', diff --git a/YiJi-admin/src/views/YeWu/DeptDeviceConfig.vue b/YiJi-admin/src/views/YeWu/DeptDeviceConfig.vue new file mode 100644 index 0000000..570cbe0 --- /dev/null +++ b/YiJi-admin/src/views/YeWu/DeptDeviceConfig.vue @@ -0,0 +1,176 @@ + + + + + \ No newline at end of file diff --git a/YiJi-admin/src/views/YeWu/DeptResourceConfig.vue b/YiJi-admin/src/views/YeWu/DeptResourceConfig.vue new file mode 100644 index 0000000..693cf2c --- /dev/null +++ b/YiJi-admin/src/views/YeWu/DeptResourceConfig.vue @@ -0,0 +1,177 @@ + + + + + \ No newline at end of file