From 32a95699e59c5c65e18c08643266c9cbfa380ee4 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 07 六月 2024 09:56:05 +0800
Subject: [PATCH] 优化设备明细、检验任务附件权限

---
 src/components/view/a6-device-management.vue |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 202 insertions(+), 33 deletions(-)

diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
index 2cd3435..00e1073 100644
--- a/src/components/view/a6-device-management.vue
+++ b/src/components/view/a6-device-management.vue
@@ -55,13 +55,14 @@
 			<el-row class="title">
 				<el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏</el-col>
 				<el-col :span="12" style="text-align: right;">
+					<el-button size="medium" type="primary" @click="dialogVisible2 = true">鏂板</el-button>
 				</el-col>
 			</el-row>
 		</div>
 		<div class="search">
 			<div class="search_thing">
 				<div class="search_label">鐘舵�侊細</div>
-				<el-select v-model="componentData.entity.deviceStatus" placeholder="鍏ㄩ儴">
+				<el-select v-model="componentData.entity.deviceStatus" placeholder="鍏ㄩ儴" size="small">
 					<el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
 					</el-option>
 				</el-select>
@@ -76,19 +77,9 @@
 				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
 						v-model="componentData.entity.specificationModel" @keyup.enter.native="refreshTable()"></el-input></div>
 			</div>
-			<div class="search_thing">
-				<div class="search_label">璁惧鍒嗙被锛�</div>
-				<el-select v-model="componentData.entity.largeCategory" placeholder="璇烽�夋嫨">
-					<el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value">
-					</el-option>
-				</el-select>
-			</div>
 			<div class="search_thing" style="padding-left: 30px;">
 				<el-button size="small" @click="refresh()">閲� 缃�</el-button>
 				<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
-				<el-col :span="12" style="text-align: right;">
-					<el-button size="medium" type="primary" @click="dialogVisible2 = true">鏂板</el-button>
-				</el-col>
 			</div>
 		</div>
 		<div class="table">
@@ -116,14 +107,14 @@
 							</div>
 						</el-image>
 						<!-- 琛ㄥ崟 -->
-						<el-form :label-position="labelPosition" :model="formData" label-width="100px">
-							<el-form-item label="浠櫒鍚嶇О:">
+						<el-form :label-position="labelPosition" :model="formData" label-width="120px">
+							<el-form-item label="浠櫒鍚嶇О:" required>
 							<el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
 										</el-form-item>
-							<el-form-item label="浠櫒鍚嶇ОEN:">
+							<el-form-item label="浠櫒鍚嶇ОEN:" required>
 								<el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
 											</el-form-item>
-							<el-form-item label="瑙勬牸鍨嬪彿:">
+							<el-form-item label="瑙勬牸鍨嬪彿:" required>
 								<el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
 											</el-form-item>
 							<el-form-item label="鐢熶骇鍘傚:">
@@ -141,7 +132,7 @@
 							<el-form-item label="鍑哄巶缂栧彿:">
 							<el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="绠$悊缂栧彿:">
+							<el-form-item label="绠$悊缂栧彿:" required>
 							<el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input>
 							</el-form-item>
 							<el-form-item label="璐疆鏃ユ湡:">
@@ -149,7 +140,7 @@
 												format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡">
 											</el-date-picker>
 										</el-form-item>
-							<el-form-item label="鍚敤鏃ユ湡:">
+							<el-form-item label="鍚敤鏃ユ湡:" required>
 											<el-date-picker :disabled="isUp" style="width:100%" v-model="formData.activationDate" type="date"
 												format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡">
 											</el-date-picker>
@@ -214,13 +205,13 @@
             <el-form-item label="鍗曚环(涓囧厓):">
               <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input>
             </el-form-item>
-            <el-form-item label="褰撳墠鐘舵��:">
+            <el-form-item label="褰撳墠鐘舵��:" required>
 							<el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="璇烽�夋嫨" size="small" style="width:100%">
 								<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="鏍″噯鍛ㄦ湡锛堟湀锛�:">
+            <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
               <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
             </el-form-item>
 						<el-form-item label="鍥剧墖:">
@@ -267,14 +258,14 @@
 							</div>
 						</el-image>
 						<!-- 琛ㄥ崟 -->
-						<el-form :label-position="labelPosition" :model="formData2" label-width="100px">
-							<el-form-item label="浠櫒鍚嶇О:">
+						<el-form :label-position="labelPosition" :model="formData2" label-width="120px">
+							<el-form-item label="浠櫒鍚嶇О:" required>
                 <el-input v-model="formData2.deviceName" size="small"></el-input>
 							</el-form-item>
-              <el-form-item label="浠櫒鍚嶇ОEN:">
+              <el-form-item label="浠櫒鍚嶇ОEN:" required>
                 <el-input v-model="formData2.enDeviceName" size="small"></el-input>
 							</el-form-item>
-              <el-form-item label="瑙勬牸鍨嬪彿:">
+              <el-form-item label="瑙勬牸鍨嬪彿:" required>
                 <el-input v-model="formData2.specificationModel" size="small"></el-input>
 							</el-form-item>
               <el-form-item label="鐢熶骇鍘傚:">
@@ -295,7 +286,7 @@
             <el-form-item label="鍑哄巶缂栧彿:">
               <el-input v-model="formData2.factoryNo" size="small"></el-input>
             </el-form-item>
-            <el-form-item label="绠$悊缂栧彿:">
+            <el-form-item label="绠$悊缂栧彿:" required>
               <el-input v-model="formData2.managementNumber" size="small"></el-input>
             </el-form-item>
             <el-form-item label="璐疆鏃ユ湡:">
@@ -303,7 +294,7 @@
 								format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡">
 							</el-date-picker>
 						</el-form-item>
-            <el-form-item label="鍚敤鏃ユ湡:">
+            <el-form-item label="鍚敤鏃ユ湡:" required>
 							<el-date-picker style="width:100%" v-model="formData2.activationDate" type="date"
 								format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡">
 							</el-date-picker>
@@ -357,13 +348,13 @@
             <el-form-item label="鍗曚环(涓囧厓):">
               <el-input v-model="formData2.unitPrice" size="small"></el-input>
             </el-form-item>
-            <el-form-item label="褰撳墠鐘舵��:">
+            <el-form-item label="褰撳墠鐘舵��:" required>
 							<el-select v-model="formData2.deviceStatus" placeholder="璇烽�夋嫨" size="small" style="width:100%">
-								<el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
+								<el-option v-for="item in deviceStatusList" :key="item.id" :label="item.label" :value="item.value">
 								</el-option>
 							</el-select>
 						</el-form-item>
-            <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:">
+            <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
               <el-input v-model="formData2.calibrationDate" size="small"></el-input>
             </el-form-item>
 						<el-form-item label="鍥剧墖:">
@@ -387,6 +378,49 @@
 				</el-row>
 			</span>
 		</el-dialog>
+    <el-dialog title="鏁伴噰閰嶇疆" :visible.sync="dialogVisible3" width="400px">
+      <div class="search_thing" style="margin-bottom: 14px;">
+				<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>IP锛�</div>
+				<el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="configForm.ip"></el-input>
+			</div>
+      <div class="search_thing" style="margin-bottom: 14px;">
+				<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>閲囬泦鍦板潃锛�</div>
+				<el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="configForm.collectUrl"></el-input>
+			</div>
+      <div class="search_thing" style="margin-bottom: 14px;">
+				<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍌ㄥ瓨鍦板潃锛�</div>
+				<el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="configForm.storageUrl"></el-input>
+			</div>
+      <div class="search_thing" style="margin-bottom: 14px;">
+				<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍙傜収锛�</div>
+				<el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="configForm.refer"></el-input>
+			</div>
+      <div class="search_thing" style="margin-bottom: 14px;">
+				<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>X锛�</div>
+				<el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="configForm.x"></el-input>
+			</div>
+      <div class="search_thing" style="margin-bottom: 14px;">
+				<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>Y锛�</div>
+				<el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="configForm.y"></el-input>
+			</div>
+      <div class="search_thing">
+				<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍏紡锛�</div>
+				<el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="configForm.formula"></el-input>
+			</div>
+      <span slot="footer" class="dialog-footer">
+				<el-row>
+					<el-button @click="dialogVisible3=false">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submitForm3" :loading="upLoad3">纭� 瀹�</el-button>
+				</el-row>
+			</span>
+    </el-dialog>
 	</div>
 </template>
 
@@ -437,6 +471,11 @@
 						font: '妗f淇',
 						type: 'text',
 						method: 'isUpdate'
+					}, {
+						id: 'handleConfig',
+						font: '鏁伴噰閰嶇疆',
+						type: 'text',
+						method: 'handleConfig'
 					}],
 					tagField: {
 						deviceStatus: {
@@ -489,6 +528,9 @@
 				subordinateDepartmentsList: [],
 				upLoad: false,
 				upLoad2: false,
+        dialogVisible3:false,
+        upLoad3:false,
+        configForm:{}
 			}
 		},
 		computed: {
@@ -536,6 +578,7 @@
 				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
@@ -546,6 +589,12 @@
 					if (power[i].menuMethod == 'addDeviceParameter') {
 						add = true
 					}
+          if (power[i].menuMethod == 'numberCollect') {
+						config = true
+					}
+				}
+        if (!config) {
+					this.componentData.do.splice(2, 1)
 				}
 				if (!up) {
 					this.componentData.do.splice(1, 1)
@@ -561,6 +610,11 @@
 					category: "璁惧鐘舵��"
 				}).then(res => {
 					this.deviceStatusList = res.data
+          this.deviceStatusList.forEach(a=>{
+            if(!isNaN(a.value)){
+              a.value = parseInt(a.value)
+            }
+          })
 					this.componentData.tagField.deviceStatus.select = res.data
 				})
 				this.$axios.post(this.$api.enums.selectEnumByCategory, {
@@ -590,7 +644,7 @@
           this.componentData.tagField.insProductIds.select = []
           this.componentData.selectField.insProductIds.select = []
           this.options = res.data.map((m,i)=>{
-            m.id = i;
+            m.id = m.name;
             let children = m.children.map(n=>{
               n.label = n.name;
               n.value = n.id;
@@ -637,6 +691,9 @@
 				//row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽��
 				//澶嶅埗缁檉ormData
 				this.formData = this.HaveJson(row);
+        if(typeof(row.insProductIds)==='number'){
+          row.insProductIds = row.insProductIds+''
+        }
 				this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
 			},
 			beforeUpload(file) {
@@ -668,12 +725,40 @@
 				}
 			},
 			submitForm() {
-				this.upLoad = true;
+        if(!this.formData.deviceName){
+          this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
+          return
+        }
+        if(!this.formData.enDeviceName){
+          this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N')
+          return
+        }
+        if(!this.formData.specificationModel){
+          this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�')
+          return
+        }
+        if(!this.formData.managementNumber){
+          this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�')
+          return
+        }
+        if(!this.formData.activationDate){
+          this.$message.error('鏈緭鍏ュ惎鐢ㄦ棩鏈�')
+          return
+        }
+        if(this.formData.deviceStatus==='' || this.formData.deviceStatus===null){
+          this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
+          return
+        }
+        if(!this.formData.calibrationDate){
+          this.$message.error('鏈緭鍏ユ牎鍑嗗懆鏈燂紙鏈堬級')
+          return
+        }
 				delete this.formData.createTime
 				delete this.formData.updateTime
 				delete this.formData.createUser
 				delete this.formData.updateUser
-        this.formData.insProductIds = this.formData.insProductIds.join()
+        this.formData.insProductIds = this.formData.insProductIds?this.formData.insProductIds.join():''
+        this.upLoad = true;
 				this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
 					headers: {
 						'Content-Type': 'application/json'
@@ -694,8 +779,36 @@
 				})
 			},
 			submitForm2() {
+        if(!this.formData2.deviceName){
+          this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
+          return
+        }
+        if(!this.formData2.enDeviceName){
+          this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N')
+          return
+        }
+        if(!this.formData2.specificationModel){
+          this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�')
+          return
+        }
+        if(!this.formData2.managementNumber){
+          this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�')
+          return
+        }
+        if(!this.formData2.activationDate){
+          this.$message.error('鏈緭鍏ュ惎鐢ㄦ棩鏈�')
+          return
+        }
+        if(!this.formData2.deviceStatus){
+          this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
+          return
+        }
+        if(!this.formData2.calibrationDate){
+          this.$message.error('杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�')
+          return
+        }
 				this.upLoad2 = true;
-        this.formData.insProductIds = this.formData.insProductIds.join()
+        this.formData2.insProductIds = this.formData2.insProductIds.join()
 				this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
 					headers: {
 						'Content-Type': 'application/json'
@@ -718,7 +831,63 @@
 					this.dialogVisible2 = false
 					this.upLoad2 = false
 				})
-			}
+			},
+      handleConfig(row){
+        this.configForm = {}
+        this.dialogVisible3 = true
+        this.$axios.post(this.$api.deviceScope.getNumberCollect+'?id='+row.id).then(res => {
+          this.configForm = res.data
+        })
+      },
+      submitForm3(){
+        if(!this.configForm.ip){
+          this.$message.error('璇峰~鍐橧P');
+          return
+        }
+        if(!this.configForm.collectUrl){
+          this.$message.error('璇峰~鍐欓噰闆嗗湴鍧�');
+          return
+        }
+        if(!this.configForm.storageUrl){
+          this.$message.error('璇峰~鍐欏偍瀛樺湴鍧�');
+          return
+        }
+        if(!this.configForm.refer){
+          this.$message.error('璇峰~鍐欏弬鐓�');
+          return
+        }
+        if(!this.configForm.x){
+          this.$message.error('璇峰~鍐橷');
+          return
+        }
+        if(!this.configForm.y){
+          this.$message.error('璇峰~鍐橸');
+          return
+        }
+        if(!this.configForm.formula){
+          this.$message.error('璇峰~鍐欏叕寮�');
+          return
+        }
+
+        this.upLoad3 = true
+        this.$axios.post(this.$api.deviceScope.numberCollect, this.configForm, {
+					headers: {
+						'Content-Type': 'application/json'
+					}
+				}).then(res => {
+          this.upLoad3 = false
+					if (res.code === 201) {
+						return
+					}
+					this.$message.success('鎿嶄綔鎴愬姛')
+					this.refreshTable()
+					this.dialogVisible3 = false
+				}).catch(e => {
+					this.$message.error('鎿嶄綔澶辫触')
+					this.dialogVisible3 = false
+					this.upLoad3 = false
+				})
+      }
 		}
 	}
 </script>

--
Gitblit v1.9.3