From d9f8ae99586ff3e4f1e86fee447d7ffd715e8b10 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期五, 26 四月 2024 09:10:03 +0800
Subject: [PATCH] 检验项目绑定产品,检验对象绑定产品

---
 src/components/view/a6-device-management.vue |  268 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 172 insertions(+), 96 deletions(-)

diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
index 9c54d17..1c3fb6d 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">
@@ -117,13 +108,6 @@
 						</el-image>
 						<!-- 琛ㄥ崟 -->
 						<el-form :label-position="labelPosition" :model="formData" label-width="90px">
-							<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">
-									</el-option>
-								</el-select>
-							</el-form-item>
 							<el-form-item label="鍑哄巶鏃ユ湡:">
 								<el-date-picker style="width:100%" :disabled="isUp" v-model="formData.dateProduction" type="datetime"
 									size="small" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="閫夋嫨鏃ユ湡">
@@ -143,6 +127,18 @@
 									<el-option v-for="item in authorizerList" :key="item.value" :label="item.label" :value="item.value">
 									</el-option>
 								</el-select>
+							</el-form-item>
+              <el-form-item label="妫�楠岄」鐩�:">
+                <el-cascader
+                v-model="formData.insProductIds"
+                :options="options"
+                :show-all-levels="false"
+                :props="props"
+                placeholder="璇烽�夋嫨" size="small"
+                style="width:100%"
+                collapse-tags
+                separator=","
+                clearable></el-cascader>
 							</el-form-item>
 						</el-form>
 					</el-col>
@@ -172,7 +168,7 @@
 						<el-form-item label="楠屾敹璁板綍:">
 							<el-input :disabled="isUp" v-model="formData.acceptanceRecords" size="small"></el-input>
 						</el-form-item>
-						<el-form-item label="鍑哄巶缂栧彿:">
+						<el-form-item label="璁惧缂栫爜:">
 							<el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
 						</el-form-item>
 						<el-form-item label="璐疆鏃ユ湡:">
@@ -194,7 +190,7 @@
 						<el-form-item label="瑙勬牸鍨嬪彿:">
 							<el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
 						</el-form-item>
-						<el-form-item label="璁惧鐘舵��:">
+						<el-form-item label="褰撳墠鐘舵��:">
 							<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">
@@ -272,19 +268,24 @@
 							</div>
 						</el-image>
 						<!-- 琛ㄥ崟 -->
-						<el-form :label-position="labelPosition" :model="formData2" label-width="90px">
-							<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>
-								</el-select>
+						<el-form :label-position="labelPosition" :model="formData2" label-width="100px">
+							<el-form-item label="浠櫒鍚嶇О:">
+                <el-input v-model="formData2.deviceName" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="鍑哄巶鏃ユ湡:">
-								<el-date-picker style="width:100%" v-model="formData2.dateProduction" type="datetime" size="small"
-									format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="閫夋嫨鏃ユ湡">
-								</el-date-picker>
+              <el-form-item label="浠櫒鍚嶇ОEN:">
+                <el-input v-model="formData2.deviceName" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="璁惧璐熻矗浜�:">
+              <el-form-item label="瑙勬牸鍨嬪彿:">
+                <el-input v-model="formData2.deviceName" size="small"></el-input>
+							</el-form-item>
+              <el-form-item label="鐢熶骇鍘傚:">
+                <el-select v-model="formData2.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%">
+                <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+							</el-form-item>
+							<!-- <el-form-item label="璁惧璐熻矗浜�:">
 								<el-select v-model="formData2.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%">
 									<el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
 										:value="item.value">
@@ -298,87 +299,114 @@
 									</el-option>
 								</el-select>
 							</el-form-item>
+              <el-form-item label="妫�楠岄」鐩�:">
+                <el-cascader
+                v-model="formData.insProductIds"
+                :options="options"
+                :show-all-levels="false"
+                :props="props"
+                placeholder="璇烽�夋嫨" size="small"
+                style="width:100%"
+                collapse-tags
+                separator=","
+                clearable></el-cascader>
+							</el-form-item>
+              -->
 						</el-form>
 					</el-col>
 				</el-col>
 				<!-- 涓棿甯冨眬 -->
 				<el-col :span="7">
-					<el-form :label-position="labelPosition" :model="formData2" label-width="116px">
-						<el-form-item label="璁惧鍚嶇О:">
-							<el-input v-model="formData2.deviceName" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="鍐呴儴缂栫爜:">
-							<el-input v-model="formData2.internalCode" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="璧勪骇缂栫爜:">
-							<el-input v-model="formData2.assetCode" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="鏍″噯鏃ユ湡锛堟湀锛�:">
-							<el-date-picker v-model="formData2.calibrationDate" type="month" size="small" format="yyyy-MM"
-								value-format="yyyy-MM" style="width:100%" placeholder="閫夋嫨鏈�">
+					<el-form :label-position="labelPosition" :model="formData2" label-width="110px">
+            <!-- <el-form-item label="鐢熶骇鍘傚EN:">
+              <el-input v-model="formData2.deviceName" size="small"></el-input>
+            </el-form-item> -->
+            <el-form-item label="鍑哄巶缂栧彿:">
+              <el-input v-model="formData2.deviceName" size="small"></el-input>
+            </el-form-item>
+            <el-form-item label="绠$悊缂栧彿:">
+              <el-input v-model="formData2.deviceName" size="small"></el-input>
+            </el-form-item>
+            <el-form-item label="鎶�鏈寚鏍�:">
+              <el-input v-model="formData2.deviceName" :rows="7" type="textarea" size="small"></el-input>
+            </el-form-item>
+            <el-form-item label="璐疆鏃ユ湡:">
+							<el-date-picker style="width:100%" v-model="formData2.scrapTime" type="date"
+								format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" placeholder="閫夋嫨鏃ユ湡">
 							</el-date-picker>
 						</el-form-item>
-						<el-form-item label="鎶ュ簾鏃堕棿:">
-							<el-date-picker style="width:100%" v-model="formData2.scrapTime" type="datetime"
-								format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃堕棿">
+            <el-form-item label="鍚敤鏃ユ湡:">
+							<el-date-picker style="width:100%" v-model="formData2.scrapTime" type="date"
+								format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" placeholder="閫夋嫨鏃ユ湡">
 							</el-date-picker>
 						</el-form-item>
-						<el-form-item label="楠屾敹璁板綍:">
-							<el-input v-model="formData2.acceptanceRecords" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="鍑哄巶缂栧彿:">
-							<el-input v-model="formData2.factoryNo" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="璐疆鏃ユ湡:">
-							<el-date-picker style="width:100%" v-model="formData2.acquisitionDate" type="datetime" size="small"
-								format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="閫夋嫨鏃ユ湡">
-							</el-date-picker>
-						</el-form-item>
-						<el-form-item label="鍑嗙‘搴﹂噺鍊�:">
-							<el-input v-model="formData2.accurateMeasurement" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="澶囨敞:">
-							<el-input v-model="formData2.notes" size="small"></el-input>
-						</el-form-item>
+            <el-form-item label="绠$悊浜�:">
+              <el-select v-model="formData2.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%">
+                <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="鍦板潃:">
+              <el-input v-model="formData2.deviceName" size="small"></el-input>
+            </el-form-item>
 					</el-form>
 				</el-col>
 				<!-- 鍙宠竟甯冨眬 -->
 				<el-col :span="7">
-					<el-form :label-position="labelPosition" :model="formData2" label-width="110px" ref="ruleForm">
-						<el-form-item label="瑙勬牸鍨嬪彿:">
-							<el-input v-model="formData2.specificationModel" size="small"></el-input>
+					<el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
+            <!-- 瀹為獙瀹ゅ垪琛� -->
+            <el-form-item label="鎵�灞為儴闂�:">
+              <el-select v-model="formData2.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%">
+                <el-option v-for="item in componentData.selectField.laboratory.select" :key="item.value" :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="妫�娴嬮」鐩�:">
+              <el-cascader
+              v-model="formData.insProductIds"
+              :options="options"
+              :show-all-levels="false"
+              :props="props"
+              placeholder="璇烽�夋嫨" size="small"
+              style="width:100%"
+              collapse-tags
+              separator=","
+              clearable></el-cascader>
+            </el-form-item>
+            <el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:">
+              <el-input v-model="formData2.deviceName" size="small"></el-input>
+            </el-form-item>
+            <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:">
+							<el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd"
+								value-format="yyyy-MM-dd" type="date" size="small" placeholder="閫夋嫨鏃ユ湡">
+							</el-date-picker>
 						</el-form-item>
-						<el-form-item label="璁惧鐘舵��:">
+            <el-form-item label="涓嬫鏍″噯鏃ユ湡:">
+							<el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd"
+								value-format="yyyy-MM-dd" type="date" size="small" placeholder="閫夋嫨鏃ユ湡">
+							</el-date-picker>
+						</el-form-item>
+            <el-form-item label="璁惧绫诲瀷:">
+              <el-select v-model="formData2.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%">
+                <el-option v-for="item in equipmentList" :key="item.value" :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="鍗曚环(涓囧厓):">
+              <el-input v-model="formData2.deviceName" size="small"></el-input>
+            </el-form-item>
+            <el-form-item label="褰撳墠鐘舵��:">
 							<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>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="瀛樻斁鐐�:">
-							<el-input v-model="formData2.storagePoint" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="鏈�杩戣拷婧棩鏈�:">
-							<el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd HH:mm:ss"
-								value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="small" placeholder="閫夋嫨鏃ユ湡">
-							</el-date-picker>
-						</el-form-item>
-						<el-form-item label="鍋滅敤鏃堕棿:">
-							<el-date-picker style="width:100%" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
-								v-model="formData2.downTime" type="datetime" size="small" placeholder="閫夋嫨鏃堕棿">
-							</el-date-picker>
-						</el-form-item>
-						<el-form-item label="缁翠慨璁板綍:">
-							<el-input v-model="formData2.maintenanceRecords" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="鐢熶骇鍘傚:">
-							<el-input v-model="formData2.manufacturer" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="閲囪喘璐圭敤:">
-							<el-input v-model="formData2.procurementCosts" size="small"></el-input>
-						</el-form-item>
-						<el-form-item label="鏍″噯璇佷功:">
-							<el-input v-model="formData2.calibrationCerticate" size="small"></el-input>
-						</el-form-item>
+            <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:">
+              <el-input v-model="formData2.deviceName" size="small"></el-input>
+            </el-form-item>
 						<el-form-item label="鍥剧墖:">
 							<div
 								style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;">
@@ -419,6 +447,7 @@
 					imageName: ''
 				},
 				value: '',
+        props: { multiple: true,emitPath:false,value:'id',label:'name' },
 				options: [],
 				labelPosition: 'right',
 				dialogVisible: false,
@@ -470,7 +499,13 @@
 						},
 						authorizedPerson: {
 							select: []
-						}
+						},
+            insProductIds:{
+              select:[]
+            },
+            laboratory:{
+              select:[]
+            }
 					},
 					linkEvent: {
 						deviceName: {
@@ -484,7 +519,14 @@
 						},
 						equipmentManager: {
 							select: []
-						}
+						},
+            insProductIds:{
+              select:[],
+              choose: true
+            },
+            laboratory:{
+              select:[]
+            }
 					},
 					requiredAdd: [],
 					requiredUp: []
@@ -499,7 +541,7 @@
 				responsiblePersonList: [],
 				// 鎺堟潈浜哄垪琛�
 				authorizerList: [],
-				// 璁惧鐘舵�佸垪琛�
+				// 褰撳墠鐘舵�佸垪琛�
 				deviceStatusList: [],
 				upLoad: false,
 				upLoad2: false,
@@ -521,6 +563,8 @@
 			// this.getAuthorizedPerson()
 			this.selectEnumByCategory()
 			this.selectDevicePrincipal()
+      this.getInsProductIds()
+      this.obtainItemParameterList()
 		},
 		methods: {
 			refreshTable() {
@@ -582,6 +626,36 @@
 					this.authorizerList = data
 					this.componentData.tagField.equipmentManager = data
 					this.componentData.tagField.authorizedPerson = data
+				})
+			},
+      getInsProductIds(){
+        this.$axios.post(this.$api.capacityScope.getInsProduction).then(res => {
+          this.componentData.tagField.insProductIds.select = []
+          this.componentData.selectField.insProductIds.select = []
+          this.options = res.data.map((m,i)=>{
+            m.id = i;
+            let children = m.children.map(n=>{
+              n.label = n.name;
+              n.value = n.id;
+              return n
+            })
+            this.componentData.tagField.insProductIds.select = [...this.componentData.tagField.insProductIds.select,...children]
+            this.componentData.selectField.insProductIds.select = [...this.componentData.selectField.insProductIds.select,...children]
+            return m
+          })
+				})
+      },
+      obtainItemParameterList() {
+				this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
+					let data = []
+					res.data.forEach(a=>{
+						data.push({
+							label: a.laboratoryName,
+							value: a.id
+						})
+					})
+					this.componentData.selectField.laboratory.select = data
+					this.componentData.tagField.laboratory.select = data
 				})
 			},
 			handleClose() {
@@ -647,6 +721,7 @@
 				delete this.formData.createUser
 				delete this.formData.updateUser
 				this.formData.authorizedPerson = authorizedPerson
+        this.formData.insProductIds = JSON.stringify(this.formData.insProductIds)
 				this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
 					headers: {
 						'Content-Type': 'application/json'
@@ -671,6 +746,7 @@
 				let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') :
 					''
 				this.formData2.authorizedPerson = authorizedPerson
+        this.formData.insProductIds = JSON.stringify(this.formData.insProductIds)
 				this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
 					headers: {
 						'Content-Type': 'application/json'

--
Gitblit v1.9.3