From ed537a5c6553973997f5c4849c262cef30635b38 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 11 三月 2025 11:35:26 +0800
Subject: [PATCH] 设备搬迁-设备总览、设备工具明细、资源预定、作业指导书联调

---
 src/views/CNAS/resourceDemand/device/component/operationInstruction.vue |   19 +-----
 src/api/cnas/resourceDemand/device.js                                   |   31 +++++-----
 src/views/CNAS/resourceDemand/device/component/management.vue           |   22 +++++--
 src/views/CNAS/resourceDemand/device/component/device-overview.vue      |   27 +-------
 src/views/CNAS/resourceDemand/device/component/resource-reservation.vue |   48 +++++++---------
 5 files changed, 60 insertions(+), 87 deletions(-)

diff --git a/src/api/cnas/resourceDemand/device.js b/src/api/cnas/resourceDemand/device.js
index 8f66b90..635890a 100644
--- a/src/api/cnas/resourceDemand/device.js
+++ b/src/api/cnas/resourceDemand/device.js
@@ -1198,11 +1198,18 @@
     data: data,
   });
 }
-
+//浣滀笟鎸囧涔︽煡璇�
+export function pageByPageQueryOfHomeworkInstructions(query) {
+  return request({
+    url: "/instruction/pageByPageQueryOfHomeworkInstructions",
+    method: "get",
+    params: query,
+  });
+}
 //浣滀笟鎸囧涔� 瀹℃壒
 export function approvalOfHomeworkInstructionManual(data) {
   return request({
-    url: "/deviceInstruction/approvalOfHomeworkInstructionManual",
+    url: "/instruction/approvalOfHomeworkInstructionManual",
     method: "post",
     data: data,
   });
@@ -1211,7 +1218,7 @@
 //浣滀笟鎸囧涔� 鍒犻櫎
 export function homeworkGuidebook(query) {
   return request({
-    url: "/deviceInstruction/homeworkGuidebook",
+    url: "/instruction/homeworkGuidebook",
     method: "delete",
     params: query,
   });
@@ -1220,7 +1227,7 @@
 //浣滀笟鎸囧涔� 缂栬緫鏌ヨ
 export function homeworkGuidebookEditor(query) {
   return request({
-    url: "/deviceInstruction/homeworkGuidebookEditor",
+    url: "/instruction/homeworkGuidebookEditor",
     method: "get",
     params: query,
   });
@@ -1229,7 +1236,7 @@
 //浣滀笟鎸囧涔︽柊澧�
 export function newHomeworkGuidebookAdded(data) {
   return request({
-    url: "/deviceInstruction/newHomeworkGuidebookAdded",
+    url: "/instruction/newHomeworkGuidebookAdded",
     method: "post",
     data: data,
   });
@@ -1238,20 +1245,12 @@
 //浣滀笟鎸囧涔﹀彈鎺ф枃浠跺垹闄�
 export function deleteHomeworkGuidebook(query) {
   return request({
-    url: "/deviceInstruction/deleteHomeworkGuidebook",
+    url: "/instruction/deleteHomeworkGuidebook",
     method: "delete",
     params: query,
   });
 }
 
-//浣滀笟鎸囧涔� 鏌ヨ
-export function pageByPageQueryOfHomeworkInstructions(query) {
-  return request({
-    url: "/deviceInstruction/pageByPageQueryOfHomeworkInstructions",
-    method: "get",
-    params: query,
-  });
-}
 //璁惧棰勭害鎺ュ彛
 export function reservationSelectDevice(query) {
   return request({
@@ -1260,7 +1259,7 @@
     params: query,
   });
 }
-//璁惧棰勭害鎺ュ彛
+//璁惧棰勭害鎺ュ彛 鍒犻櫎
 export function reservationDelete(query) {
   return request({
     url: "/reservation/delete",
@@ -1268,7 +1267,7 @@
     params: query,
   });
 }
-//璁惧棰勭害鎺ュ彛
+//璁惧棰勭害鎺ュ彛 淇濆瓨
 export function reservationSave(query) {
   return request({
     url: "/reservation/save",
diff --git a/src/views/CNAS/resourceDemand/device/component/device-overview.vue b/src/views/CNAS/resourceDemand/device/component/device-overview.vue
index ae3e069..2efabd0 100644
--- a/src/views/CNAS/resourceDemand/device/component/device-overview.vue
+++ b/src/views/CNAS/resourceDemand/device/component/device-overview.vue
@@ -145,8 +145,8 @@
 
 <template>
   <div class="role_manage">
-    <div>
-      <el-form :model="entity" inline label-position="right" label-width="80px">
+    <div style="margin-top: 10px">
+      <el-form :model="entity" inline label-position="right">
         <el-form-item label="鐘舵��:">
           <el-select v-model="entity.deviceStatus" placeholder="鍏ㄩ儴" size="small" clearable>
             <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
@@ -164,24 +164,6 @@
           @click="currentPage = 1, keyMap = {}, list = [], finishLoding = false, refreshTable()">鏌� 璇�</el-button>
         </el-form-item>
       </el-form>
-      <!-- <div class="search_thing">
-        <div class="search_label">鐘舵�侊細</div>
-        <el-select v-model="entity.deviceStatus" placeholder="鍏ㄩ儴" size="small" clearable>
-          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
-          </el-option>
-        </el-select>
-      </div>
-      <div class="search_thing">
-        <div class="search_label">璁惧鍚嶇О锛�</div>
-        <div class="search_input">
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable
-            v-model="entity.deviceName"></el-input>
-            </div>
-      </div> -->
-
-
-      <!-- <div class="search_thing" style="padding-left: 30px;">
-      </div> -->
     </div>
     <div class="table" v-loading="loading">
       <scroll-pagination @load="refreshTable()" :finishLoding="finishLoding" :list="list"
@@ -255,7 +237,6 @@
       entity: {
         deviceStatus: null,
         deviceName: null,
-        orderBy: { field: "id", order: "asc" }
       },
       options: [],
       list: [],
@@ -298,8 +279,8 @@
         ...this.entity
       }).then(res => {
         if (res.code == 200) {
-          this.total = res.data.body.total
-          let list = res.data.body.records.map(m => {
+          this.total = res.data.total
+          let list = res.data.records.map(m => {
             switch (m.deviceStatus) {
               case 0:
                 // 姝e父
diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index e2e7602..6e95077 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -268,7 +268,7 @@
         <el-col :span="7">
           <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
             <!-- 瀹為獙瀹ゅ垪琛� -->
-            <el-form-item label="鎵�灞為儴闂�:">
+            <el-form-item label="鎵�灞為儴闂�:" required>
               <el-select v-model="formData2.subordinateDepartmentsId" placeholder="璇烽�夋嫨" size="small"
                          style="width:100%">
                 <el-option v-for="item in subordinateDepartmentsList" :key="item.value"
@@ -421,11 +421,9 @@
 			labelPosition: 'right',
 			dialogVisible: false,
 			dialogVisible2: false,
-			addPower: false,
 			showData: false, // 鏁伴噰閰嶇疆椤甸潰
 			tableList: [],
 			addDia: true,
-			addPower: true,
 			//璁惧绫诲瀷鍒楄〃
 			equipmentList: [],
 			// 璐熻矗浜哄垪琛�
@@ -445,7 +443,7 @@
 			queryParams: {},
 			tableData: [],
 			column: [
-				{ label: "璁惧鍚嶇О", prop: "deviceName", dataType: 'link', linkMethod: 'selectAllByOne' },
+				{ label: "璁惧鍚嶇О", prop: "deviceName", dataType: 'link', linkMethod: 'selectAllByOne', width: 120 },
 				{ label: "璁惧鍚嶇ОEN", prop: "enDeviceName" },
 				{
 					label: "瑙勬牸鍨嬪彿",
@@ -469,10 +467,18 @@
 				{
 					label: "璁惧鍒嗙被", prop: "largeCategory", dataType: "tag",
 					formatData: (params) => {
-						return this.equipmentList.find(m => m.value == params).label
+            if (this.equipmentList.find(m => m.value == params)) {
+              return this.equipmentList.find(m => m.value == params).label
+            } else {
+              return null
+            }
 					},
 					formatType: (params) => {
-						return this.equipmentList.find(m => m.value == params).type
+            if (this.equipmentList.find(m => m.value == params)) {
+              return this.equipmentList.find(m => m.value == params).type
+            } else {
+              return null
+            }
 					}
 				},
 				{ label: "鍗曚环", prop: "unitPrice" },
@@ -821,6 +827,10 @@
 				this.$message.error('杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�')
 				return
 			}
+			if (!this.formData2.subordinateDepartmentsId) {
+				this.$message.error('璇烽�夋嫨鎵�灞為儴闂�')
+				return
+			}
 			const formData = this.HaveJson(this.formData2)
 			formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : ''
 			if (formData.authorizedPerson.length === 0) {
diff --git a/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue b/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue
index 436b01f..ab82ea4 100644
--- a/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue
+++ b/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue
@@ -31,9 +31,9 @@
         <template v-slot="scope">
           <el-button type="text" size="small" @click="downloadFile(scope.row.fileSystemName)">涓嬭浇</el-button>
           <el-button type="text" size="small" style="color: red;"
-            @click="deleteHomeworkGuidebook(scope.row)">鍒犻櫎</el-button>
-          <el-button type="text" size="small" @click="instructionEditFun(scope.row)">缂栬緫</el-button>
-          <el-button type="text" size="small" @click="approval(scope.row)">瀹℃壒</el-button>
+            @click="deleteHomeworkGuidebook(scope.row)" :disabled="scope.row.status === true">鍒犻櫎</el-button>
+          <el-button type="text" size="small" @click="instructionEditFun(scope.row)" :disabled="scope.row.status === true">缂栬緫</el-button>
+          <el-button type="text" size="small" @click="approval(scope.row)" :disabled="scope.row.status === true">瀹℃壒</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -309,18 +309,7 @@
       });
     },
     downloadFile(fileName) {
-      let state = /\.(jpg|jpeg|png|gif)$/i.test(fileName)
-      if (state) {
-        let url = this.javaApi + '/img/' + fileName;
-        fileDownload.downloadIamge(url, fileName)
-      } else {
-        const url = this.javaApi + '/word/' + fileName
-        const link = document.createElement('a');
-        link.href = url;
-        link.download = fileName;
-        link.click();
-        this.$message.success('涓嬭浇鎴愬姛')
-      }
+      this.$download.saveAs(fileName, fileName)
     },
     instructionEditFun(row) {
       this.dialogVisible = true
diff --git a/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue b/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue
index b23611b..7f3806b 100644
--- a/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue
+++ b/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue
@@ -2,8 +2,7 @@
 <template>
   <div class="role_manage">
     <el-row class="title">
-      <el-col :span="8" style="text-align: left;">棰勫畾鎬昏</el-col>
-      <el-col :span="16" style="text-align: right;padding-bottom:10px">
+      <el-col :span="24" style="text-align: right;padding:10px 0">
         <el-date-picker
           v-model="startTime"
           format="yyyy-MM-dd"
@@ -19,7 +18,7 @@
           size="mini"
           type="date"
           value-format="yyyy-MM-dd"/>
-        <el-button size="mini" type="primary" @click="ValidateAndQuery">鏌� 璇�</el-button>
+        <el-button size="mini" type="primary" @click="ValidateAndQuery" style="margin-left: 10px">鏌� 璇�</el-button>
       </el-col>
     </el-row>
     <div class="table-container">
@@ -134,7 +133,6 @@
     }
   },
   data() {
-
     return {
       timeSlots: ['09:00-12:00', '13:00-18:00', '18:00-22:00'],
       dates: [],
@@ -154,7 +152,6 @@
       startTime: '',
       endTime: '',
       entity: {
-        deviceName: null,
         laboratoryName: '',
         storagePoint: '',
       },
@@ -169,15 +166,6 @@
         reservationSpecification: ''
       },
       total: '',
-      componentData: {
-        entity: {
-          largeCategory: null,
-          orderBy: {
-            field: 'id',
-            order: 'asc'
-          }
-        },
-      },
       yuyue: null,
       yuyuetime: '',
       rules: {
@@ -202,14 +190,12 @@
       this.clickSidebar(newVal)
     }
   },
-
   created() {
     this.clickSidebar(this.clickNodeVal)
     this.initDate();
   },
   mounted() {
-    this.getStartTimeAndEndTime();
-
+    // this.getStartTimeAndEndTime();
   },
   methods: {
     isBeforeDate() {
@@ -218,7 +204,7 @@
       const appointment = this.appointment && this.appointment.split('-')
       let appointment0 = ''
       let appointment1 = ''
-      if (appointment !== '') {
+      if (appointment) {
         appointment0 = appointment[0].slice(0, 2)
         appointment1 = appointment[1].slice(0, 2)
       }
@@ -238,7 +224,7 @@
       if (!row || row.dateList === null || row.dateList === undefined || row.dateList === "") {
         return '棰勭害';
       }
-      var dateLst = row.dateList
+      const dateLst = row.dateList
       for (const dateLstElement of dateLst) {
         if (dateLstElement.date === date) {
           if (dateLstElement.value === 0) {
@@ -312,12 +298,16 @@
     getStartTimeAndEndTime() {
       //鏌ヨ閫昏緫
       this.tableLoading = true;
-      reservationSelectDevice({
-          current: this.currentPage,
-          size: this.pageSize,
-        ...this.entity,
-        laboratoryNameIsNull: this.laboratoryNameIsNull
-      }).then(res => {
+      const params = {
+        current: this.currentPage,
+        size: this.pageSize,
+        starttime: this.startTime,
+        endtime: this.endTime,
+        laboratoryNameIsNull: this.laboratoryNameIsNull,
+        laboratoryName: this.entity.laboratoryName,
+        storagePoint: this.entity.storagePoint,
+      }
+      reservationSelectDevice(params).then(res => {
         this.tableLoading = false;
         if (res.code === 200) {
           this.tableData = res.data;
@@ -326,17 +316,20 @@
         this.tableLoading = false;
       })
     },
+    // 鎵撳紑棰勭害寮规
     openModal(date, row) {
+      console.log('date', date);
+      console.log('row', row);
       this.yuyue = row;
       this.yuyuetime = date;
       this.appointment = row.time
       this.showModal = true;
       this.getList();
     },
+    // 鎵撳紑鏂板缓棰勫畾寮规
     openAdd() {
       this.addVisiable = true;
       this.addReservation.deviceId = this.yuyue.id;
-      // this.addReservation.deviceNumber = this.yuyue.deviceNumber;
       this.addReservation.deviceName = this.yuyue.deviceName;
       this.addReservation.reservationTime = this.yuyuetime + " " + this.yuyue.time;
       this.addReservation.specificTime = this.yuyue.time;
@@ -393,9 +386,10 @@
         }
       });
     },
+    // 棰勫畾淇℃伅鏌ヨ
     getList() {
       const params = {
-        selectReservationParameterPage: this.yuyue.id,
+        deviceId: this.yuyue.id,
         reservationTime: this.yuyuetime,
         specificTime: this.yuyue.time,
       }

--
Gitblit v1.9.3