From 3c510ea35b428feed7f7a1743a595e7dba634518 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 16 四月 2025 15:50:45 +0800
Subject: [PATCH] 网络分析仪数采配置

---
 src/views/CNAS/resourceDemand/device/component/management.vue |  178 ++++++++++++++++++++++++-----------------------------------
 1 files changed, 73 insertions(+), 105 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index 77e4671..649138e 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -1,37 +1,42 @@
 <!-- 璁惧宸ュ叿鏄庣粏 -->
 <template>
 	<div class="role_manage">
-		<div class="search" v-show="!showData">
-			<div class="search_thing">
-				<div class="search_label">鐘舵�侊細</div>
-				<el-select v-model="queryParams.deviceStatus" placeholder="鍏ㄩ儴" size="small">
-					<el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
-					</el-option>
-				</el-select>
+		<div class="search">
+			<div>
+				<el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
+					<el-form-item label="鐘舵��" prop="deviceStatus" class="form-item">
+						<el-select v-model="queryParams.deviceStatus" placeholder="鍏ㄩ儴" size="small">
+							<el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
+							</el-option>
+						</el-select>
+					</el-form-item>
+					<el-form-item label="璁惧鍚嶇О" prop="deviceName">
+						<el-input size="small" style="width: 160px;" placeholder="璇疯緭鍏�" clearable v-model="queryParams.deviceName"
+							@keyup.enter.native="refreshTable()">
+						</el-input>
+					</el-form-item>
+					<el-form-item label="瑙勬牸鍨嬪彿" prop="specificationModel">
+						<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.specificationModel"
+							@keyup.enter.native="refreshTable()" style="width: 160px;"></el-input>
+					</el-form-item>
+					<el-form-item>
+						<el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
+						<el-button size="mini" @click="refresh">閲嶇疆</el-button>
+					</el-form-item>
+				</el-form>
 			</div>
-			<div class="search_thing">
-				<div class="search_label">璁惧鍚嶇О锛�</div>
-				<div class="search_input">
-					<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.deviceName"
-						@keyup.enter.native="refreshTable()">
-					</el-input>
-				</div>
-			</div>
-			<div class="search_thing">
-				<div class="search_label">瑙勬牸鍨嬪彿锛�</div>
-				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="queryParams.specificationModel" @keyup.enter.native="refreshTable()"></el-input>
-				</div>
-			</div>
-			<div style="padding-left: 30px;">
-				<el-button size="small" @click="refresh()">閲� 缃�</el-button>
-				<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
-				<el-button size="small" type="primary" @click="dialogVisible2 = true">鏂� 澧�</el-button>
-				<el-button size="small" type="primary" @click="handleDownOne">瀵� 鍑�</el-button>
+			<div>
+				<el-upload ref='upload' style="display: inline;margin-right: 8px" :action="uploadAction"
+					:before-upload="beforeUpload" :headers="uploadHeader" :on-error="onError" :on-success="handleSuccessUp"
+					:show-file-list="false" accept='.xls,.xlsx'>
+					<el-button size="small" type="primary">瀵煎叆</el-button>
+				</el-upload>
+				<el-button size="small" type="primary" @click="dialogVisible2 = true">鏂板</el-button>
+				<el-button size="small" type="primary" @click="handleDownOne">瀵煎嚭</el-button>
 			</div>
 		</div>
 		<div class="table" v-show="!showData">
-			<lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 320px)'"
+			<lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 300px)'"
 				:page="page" @pagination="pagination"></lims-table>
 		</div>
 		<el-dialog :title="isUp ? '璁惧璇︽儏' : '妗f淇'" :visible.sync="dialogVisible" width="70%" top="5vh"
@@ -119,7 +124,7 @@
 				<el-col :span="7">
 					<el-form :label-position="labelPosition" :model="formData" label-width="140px" ref="ruleForm">
 						<!-- 瀹為獙瀹ゅ垪琛� -->
-						<el-form-item label="鎵�灞為儴闂�:">
+						<el-form-item label="鎵�灞為儴闂�:" required>
 							<el-select :disabled="isUp" v-model="formData.subordinateDepartmentsId" placeholder="璇烽�夋嫨" size="small"
 								style="width:100%">
 								<el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
@@ -277,7 +282,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" :label="item.label"
 									:value="item.value">
@@ -382,7 +387,7 @@
 				</el-row>
 			</span>
 		</el-dialog>
-		<dataAcquisitionConfig v-if="showData" :deviceId="deviceId" />
+		<dataAcquisitionConfig v-if="showData" :deviceId="deviceId" :deviceName="deviceName" />
 	</div>
 </template>
 
@@ -415,8 +420,10 @@
 	},
 	data() {
 		return {
+			uploadAction: process.env.VUE_APP_BASE_API + '/deviceScope/importDevice',
 			dateFormat: 'yyyy-MM-dd',
 			deviceId: '',
+			deviceName: '',
 			fileTypeOptions: [
 				{ label: 'csv', value: '.csv' },
 				{ label: 'db', value: '.db' },
@@ -484,17 +491,25 @@
 				{ label: "鎵�灞為儴闂�", prop: "laboratoryName" },
 				{ label: "妫�楠岄」鐩�", prop: "insProductItem" },
 				{ label: "鏍″噯鏈嶅姟鏈烘瀯", prop: "calibrationServices" },
-				{ label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDateTwo" },
-				{ label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastCalibrationDate" },
-				{ label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDateTwo" },
-				{ label: "涓嬫鏍告煡鏃ユ湡", prop: "nextCalibrationDate" },
+				{ label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDate" },
+				{ label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastCalibrationDateTwo" },
+				{ label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDate" },
+				{ label: "涓嬫鏍告煡鏃ユ湡", prop: "nextCalibrationDateTwo" },
 				{
 					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" },
@@ -554,13 +569,10 @@
 		}
 	},
 	mounted() {
-		// this.entityCopy = this.HaveJson(this.componentData.entity)
-		// this.getPower()
 		this.selectEnumByCategory()
 		this.selectDevicePrincipal()
 		this.obtainItemParameterList()
 		this.getInsProductIds()
-		// this.$customEvents.$on('largeCategory', this.handleNotification);
 		// 鍒濆鍖�
 		this.clickSidebar(this.clickNodeVal)
 	},
@@ -619,38 +631,6 @@
 				const blob = new Blob([res], { type: 'application/octet-stream' });
 				this.$download.saveAs(blob, '璁惧浠櫒涓�瑙堣〃.doc')
 			})
-		},
-		// 鏉冮檺鍒嗛厤
-		getPower(radio) {
-			let power = JSON.parse(sessionStorage.getItem('power'))
-			let up = false
-			let del = false
-			let add = false
-			let config = false
-			for (var i = 0; i < power.length; i++) {
-				if (power[i].menuMethod == 'upDeviceParameter') {
-					up = true
-				}
-				if (power[i].menuMethod == 'delDeviceParameter') {
-					del = true
-				}
-				if (power[i].menuMethod == 'addDeviceParameter') {
-					add = true
-				}
-				if (power[i].menuMethod == 'saveDataAcquisitionConfiguration') {
-					config = true
-				}
-			}
-			if (!config) {
-				this.componentData.do.splice(2, 1)
-			}
-			if (!up) {
-				this.componentData.do.splice(1, 1)
-			}
-			if (!del) {
-				this.componentData.do.splice(0, 1)
-			}
-			this.addPower = add
 		},
 		// 鑾峰彇瀛楀吀
 		selectEnumByCategory() {
@@ -792,6 +772,15 @@
 				})
 			}
 		},
+		handleSuccessUp(response, file, fileList) {
+			this.$refs.upload.clearFiles()
+			if (response.code !== 200) {
+				this.$message.error(response.msg)
+				return
+			}
+			this.$message.success('涓婁紶鎴愬姛')
+			this.refreshTable()
+		},
 		submitForm() {
 			if (!this.formData.deviceName) {
 				this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
@@ -813,6 +802,10 @@
 				this.$message.error('鏈緭鍏ユ牎鍑嗘湁鏁堟湡')
 				return
 			}
+			if (!this.formData.subordinateDepartmentsId) {
+				this.$message.error('鏈�夋嫨鎵�灞為儴闂�')
+				return
+			}
 			if (this.formData.deviceStatus === '' || this.formData.deviceStatus === null) {
 				this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
 				return
@@ -827,17 +820,13 @@
 			delete this.formData.updateUser
 			const formData = this.HaveJson(this.formData)
 			formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : ''
-			if (formData.authorizedPerson.length === 0) {
+			if (!formData.authorizedPerson || formData.authorizedPerson.length === 0) {
 				formData.authorizedPerson = ''
 			} else {
 				formData.authorizedPerson = JSON.stringify(formData.authorizedPerson)
 			}
 			this.upLoad = true;
 			upDeviceParameter(formData).then(res => {
-				if (res.code === 201) {
-					this.upLoad = false
-					return
-				}
 				this.$message.success('淇敼鎴愬姛')
 				this.upLoad = false
 				this.refreshTable('page')
@@ -880,17 +869,13 @@
 			}
 			const formData = this.HaveJson(this.formData2)
 			formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : ''
-			if (formData.authorizedPerson.length === 0) {
+			if (!formData.authorizedPerson || formData.authorizedPerson.length === 0) {
 				formData.authorizedPerson = ''
 			} else {
 				formData.authorizedPerson = JSON.stringify(formData.authorizedPerson)
 			}
 			this.upLoad2 = true;
 			addDeviceParameter(formData).then(res => {
-				if (res.code === 201) {
-					this.upLoad2 = false
-					return
-				}
 				this.$message.success('鎻愪氦鎴愬姛')
 				this.upLoad2 = false
 				this.refreshTable('page')
@@ -921,6 +906,7 @@
 			})
 			this.tableList = list2
 			this.deviceId = row.id
+			this.deviceName = row.deviceName
 			this.$nextTick(() => {
 				this.showData = true
 			})
@@ -958,9 +944,6 @@
 			this.upLoad3 = true
 			numberCollect(this.configForm).then(res => {
 				this.upLoad3 = false
-				if (res.code === 201) {
-					return
-				}
 				this.$message.success('鎿嶄綔鎴愬姛')
 				this.refreshTable('page')
 				this.dialogVisible3 = false
@@ -1007,7 +990,6 @@
 			})
 				.then(() => {
 					delDeviceParameter({ id: row.id }).then((res) => {
-						if (res.code == 201) return;
 						this.$message.success("鍒犻櫎鎴愬姛");
 						this.refresh();
 					});
@@ -1025,18 +1007,9 @@
 </script>
 
 <style scoped>
-.role_manage {
-	width: 100%;
-	height: 100%;
-}
-
-.title {
-	line-height: 15px;
-}
-
 .search {
+	height: 46px;
 	display: flex;
-	align-items: center;
 	justify-content: space-between;
 	margin-top: 10px;
 }
@@ -1053,18 +1026,9 @@
 	text-align: right;
 }
 
-.search_input {
-	width: calc(100% - 80px);
-}
-
 .table {
-	margin-top: 12px;
 	background-color: #fff;
-	height: calc(100vh - 17em);
-}
-
-.el-form-item {
-	margin-bottom: 16px;
+	height: calc(100vh - 16em);
 }
 
 .picName {
@@ -1074,4 +1038,8 @@
 	word-break: break-all;
 	width: 120px;
 }
+
+.form-item>>>.el-form-item__content {
+	width: 120px;
+}
 </style>

--
Gitblit v1.9.3