From c6e96cdb8b1cfb51e9a45bf86c38d1353e983127 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 19 十月 2026 15:19:48 +0800
Subject: [PATCH] 设备模块业务完善及前序页面优化

---
 src/views/CNAS/resourceDemand/device/component/management.vue |   64 ++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 20 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index 0c7c824..0db1429 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -27,7 +27,7 @@
         </el-form>
       </div>
       <div>
-        <el-button size="small" type="primary" @click="dialogVisible2 = true">鏂板</el-button>
+        <el-button size="small" type="primary" @click="openAddDialog">鏂板</el-button>
         <el-button size="small" type="primary" @click="handleDownOne">瀵煎嚭</el-button>
       </div>
     </div>
@@ -132,7 +132,7 @@
 							:props="props" placeholder="璇烽�夋嫨" size="small" style="width:100%;" :collapse-tags="!isUp" separator=","
 							filterable clearable></el-cascader>
 					</el-form-item>
-					<el-form-item label="璁惧绫诲瀷:">
+					<el-form-item label="璁惧/璁¢噺鍣ㄥ叿:">
 						<el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="璇烽�夋嫨" size="small"
 							style="width:100%">
 							<el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value">
@@ -336,7 +336,7 @@
 							placeholder="璇烽�夋嫨" size="small" style="width:100%" collapse-tags separator="," filterable
 							clearable></el-cascader>
 					</el-form-item>
-					<el-form-item label="璁惧绫诲瀷:">
+					<el-form-item label="璁惧/璁¢噺鍣ㄥ叿:">
 						<el-select v-model="formData2.largeCategory" placeholder="璇烽�夋嫨" size="small" style="width:100%">
 							<el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value">
 							</el-option>
@@ -425,7 +425,9 @@
 } from '@/api/cnas/resourceDemand/device.js'
 import { selectUserCondition } from "@/api/business/inspectionTask";
 import dayjs from 'dayjs'
+import { formatListDate } from './dateFormat'
 import { selectQualifiedSupplierManagementPage } from '@/api/cnas/externalService/supplierManage/supplierManage'
+import { saveBlobOrShowError } from '@/utils/saveBlob'
 export default {
 	props: {
 		clickNodeVal: {
@@ -473,8 +475,11 @@
 			showData: false, // 鏁伴噰閰嶇疆椤甸潰
 			tableList: [],
 			addDia: true,
-			//璁惧绫诲瀷鍒楄〃
-			equipmentList: [],
+			//璁惧绫诲瀷鍒楄〃锛氫笌宸︿晶鏍戔�滆澶�/璁¢噺鍣ㄥ叿鈥濆垎绫讳繚鎸佷竴鑷�
+			equipmentList: [
+				{ label: '璁惧', value: '璁惧' },
+				{ label: '璁¢噺鍣ㄥ叿', value: '璁¢噺鍣ㄥ叿' }
+			],
 			// 璐熻矗浜哄垪琛�
 			responsiblePersonList: [],
 			// 鎺堟潈浜哄垪琛�
@@ -498,18 +503,18 @@
 				{ label: "鍑哄巶缂栧彿", prop: "factoryNo" },
 				{ label: "绠$悊缂栧彿", prop: "managementNumber" },
 				{ label: "鎶�鏈寚鏍�", prop: "technicalIndicators" },
-				{ label: "璐疆鏃ユ湡", prop: "acquisitionDate" },
-				{ label: "鏍″噯鏈夋晥鏈�", prop: "activationDate" },
+				{ label: "璐疆鏃ユ湡", prop: "acquisitionDate", formatData: (params) => formatListDate(params) },
+				{ label: "鏍″噯鏈夋晥鏈�", prop: "activationDate", formatData: (params) => formatListDate(params) },
 				{ label: "绠$悊浜�", prop: "equipmentManagerUser" },
 				{ label: "瀛樻斁鐐�", prop: "storagePoint" },
 				{ label: "妫�楠岄」鐩�", prop: "insProductItem" },
 				{ label: "鏍″噯鏈嶅姟鏈烘瀯", prop: "calibrationServices" },
-				{ label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDateTwo" },
-				{ label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastExamineDate" },
-				{ label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDateTwo" },
-				{ label: "涓嬫鏍告煡鏃ユ湡", prop: "nextExamineDate" },
-				{ label: "鏈�杩戜繚鍏绘棩鏈�", prop: "lastMaintenanceDate" },
-				{ label: "涓嬫淇濆吇鏃ユ湡", prop: "nextMaintenanceDate" },
+				{ label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDateTwo", formatData: (params) => formatListDate(params) },
+				{ label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastExamineDate", formatData: (params) => formatListDate(params) },
+				{ label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDateTwo", formatData: (params) => formatListDate(params) },
+				{ label: "涓嬫鏍告煡鏃ユ湡", prop: "nextExamineDate", formatData: (params) => formatListDate(params) },
+				{ label: "鏈�杩戜繚鍏绘棩鏈�", prop: "lastMaintenanceDate", formatData: (params) => formatListDate(params) },
+				{ label: "涓嬫淇濆吇鏃ユ湡", prop: "nextMaintenanceDate", formatData: (params) => formatListDate(params) },
 				{
 					label: "璁惧鍒嗙被", prop: "largeCategory", dataType: "tag",
 					formatData: (params) => {
@@ -698,8 +703,9 @@
 			this.outLoading = true
 			exportEquipmentDetails({ ...this.queryParams }).then(res => {
 				this.outLoading = false
-				const blob = new Blob([res], { type: 'application/octet-stream' });
-				this.$download.saveAs(blob, '璁惧浠櫒涓�瑙堣〃.doc')
+				saveBlobOrShowError(res, '璁惧浠櫒涓�瑙堣〃.doc', 'application/msword')
+			}).catch(() => {
+				this.outLoading = false
 			})
 		},
 		// 鑾峰彇瀛楀吀
@@ -707,10 +713,6 @@
 			// 璁惧鐘舵��
 			this.getDicts("device_status").then((response) => {
 				this.deviceStatusList = this.dictToValue(response.data);
-			});
-			// 璁惧鍒嗙被
-			this.getDicts("device_type").then((response) => {
-				this.equipmentList = this.dictToValue(response.data);
 			});
 		},
 		// 鑾峰彇璐熻矗浜哄垪琛�
@@ -812,6 +814,11 @@
 			//澶嶅埗缁檉ormData
 			this.formData = this.HaveJson(row);
 			this.formData.authorizedPerson = this.normalizeAuthorizedPerson(row.authorizedPerson);
+			// 璁惧绫诲瀷涓虹┖鏃讹紝榛樿鍙栧乏渚ф爲褰撳墠鎵�鍦ㄥ垎绫�
+			const treeCategory = this.clickNodeVal && this.clickNodeVal.label
+			if (!this.formData.largeCategory && (treeCategory === '璁惧' || treeCategory === '璁¢噺鍣ㄥ叿')) {
+				this.formData.largeCategory = treeCategory
+			}
 			if (typeof (row.insProductIds) === 'number') {
 				row.insProductIds = row.insProductIds + ''
 			}
@@ -918,6 +925,8 @@
 				this.$message.success('淇敼鎴愬姛')
 				this.upLoad = false
 				this.refreshTable('page')
+				// 绫诲瀷鍙兘鍙樻洿锛屽埛鏂板乏渚ф爲璁╄澶囧綊鍒版柊鐨勫垎绫讳笅
+				this.$emit('refresh-tree')
 				this.dialogVisible = false
 			}).catch(e => {
 				this.$message.error('淇敼澶辫触')
@@ -937,6 +946,10 @@
 			}
 			if (!this.formData2.managementNumber) {
 				this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�')
+				return
+			}
+			if (!this.formData2.largeCategory) {
+				this.$message.error('璇烽�夋嫨璁惧/璁¢噺鍣ㄥ叿')
 				return
 			}
 			if (!this.formData2.activationDate) {
@@ -961,6 +974,7 @@
 				this.$message.success('鎻愪氦鎴愬姛')
 				this.upLoad2 = false
 				this.refreshTable('page')
+				this.$emit('refresh-tree')
 				this.dialogVisible2 = false
 				this.formData2 = {
 					imageUpload: '',
@@ -1006,6 +1020,14 @@
 				this.refreshTable('page')
 			}
 		},
+		// 鏂板璁惧锛氶粯璁ゅ彇宸︿晶鏍戝綋鍓嶆墍鍦ㄥ垎绫�
+		openAddDialog() {
+			const treeCategory = this.clickNodeVal && this.clickNodeVal.label
+			if (!this.formData2.largeCategory && (treeCategory === '璁惧' || treeCategory === '璁¢噺鍣ㄥ叿')) {
+				this.formData2.largeCategory = treeCategory
+			}
+			this.dialogVisible2 = true
+		},
 		handleDelete(row) {
 			this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
 				confirmButtonText: "纭畾",
@@ -1015,7 +1037,9 @@
 				.then(() => {
 					delDeviceParameter({ id: row.id }).then((res) => {
 						this.$message.success("鍒犻櫎鎴愬姛");
-						this.refresh();
+						this.refreshTable()
+						// 宸插垹闄ょ殑璁惧瑕佷粠宸︿晶鏍戝悓姝ョЩ闄�
+						this.$emit('refresh-tree')
 					});
 				})
 				.catch(() => { });

--
Gitblit v1.9.3