From 07a41ade45c962e93a9d449ce1be0eec52e66a6a Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 19 三月 2025 10:44:32 +0800
Subject: [PATCH] 内部单不能修改报告

---
 src/components/view/a6-device-management.vue |  933 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 793 insertions(+), 140 deletions(-)

diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
index 8c9e4a2..478341e 100644
--- a/src/components/view/a6-device-management.vue
+++ b/src/components/view/a6-device-management.vue
@@ -19,7 +19,7 @@
 
 	.search_label {
 		width: 110px;
-		
+
 		font-size: 14px;
 		text-align: right;
 	}
@@ -35,165 +35,439 @@
 		height: calc(100% - 60px - 80px - 10px - 40px);
 		padding: 20px;
 	}
+
+	.el-form-item {
+		margin-bottom: 16px;
+	}
+
+	.picName {
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		word-break: break-all;
+		width: 120px;
+	}
 </style>
 
 <template>
 	<div class="role_manage">
-		<div>
+		<div v-if="!showData">
 			<el-row class="title">
-				<el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏</el-col>
+				<el-col :span="12" style="padding-left: 20px;text-align: left;">璁惧宸ュ叿鏄庣粏</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" v-if="!showData">
 			<div class="search_thing">
 				<div class="search_label">鐘舵�侊細</div>
-				<el-select v-model="value" placeholder="鍏ㄩ儴">
-					<el-option
-					  v-for="item in options"
-					  :key="item.value"
-					  :label="item.label"
-					  :value="item.value">
+				<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>
+				</el-select>
 			</div>
 			<div class="search_thing">
 				<div class="search_label">璁惧鍚嶇О锛�</div>
 				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="componentData.entity.laboratoryNumber" @keyup.enter.native="refreshTable()"></el-input></div>
+						v-model="componentData.entity.deviceName" @keyup.enter.native="refreshTable()"></el-input></div>
 			</div>
-            <div class="search_thing">
+			<div class="search_thing">
 				<div class="search_label">瑙勬牸鍨嬪彿锛�</div>
 				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="componentData.entity.head" @keyup.enter.native="refreshTable()"></el-input></div>
-			</div>
-						<div class="search_thing">
-							<div class="search_label">璁惧澶х被锛�</div>
-							<el-select v-model="value" placeholder="璇烽�夋嫨">
-								<el-option
-								  v-for="item in options"
-								  :key="item.value"
-								  :label="item.label"
-								  :value="item.value">
-								</el-option>
-							  </el-select>
+						v-model="componentData.entity.specificationModel" @keyup.enter.native="refreshTable()"></el-input></div>
 			</div>
 			<div class="search_thing" style="padding-left: 30px;">
-                <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+				<el-button size="small" @click="refresh()">閲� 缃�</el-button>
 				<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
 			</div>
 		</div>
-		<div class="table">
+		<div class="table" v-if="!showData">
 			<!-- 璇硶 瀛愮粍浠堕�氳繃 this.$emit +浼犲叆鏂规硶鍚� 璋冪敤鐖剁粍浠舵柟娉� 渚嬪  this.$emit锛坰electAllByOne锛� 灏遍渶鍦ㄧ埗缁勪欢澹版槑骞朵紶鍏�  @selectAllByOne="selectAllByOne"-->
-			<ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable" :url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter" :delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex"/>
+			<ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable"
+				:url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter"
+				:delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex" />
 		</div>
-			<div>
-			<el-dialog
-				title="璁惧璇︽儏"
-				:visible.sync="dialogVisible"
-				width="70%"
-				:before-close="handleClose">
-				<el-row style="display:flex;justify-content: space-around;">
-					<!-- 宸﹁竟甯冨眬 -->
-					<el-col  :span="7" >
-						<el-col>
-							<!-- 鍥剧墖 -->
-							<img src="https://www.baidu.com/img/bd_logo1.png" alt="" style="width:100%;height: 30vh;">
-							<!-- 琛ㄥ崟 -->
-							<el-form :label-position="labelPosition" :model="formData">
-								<el-form-item label="澶х被锛�" >
-								  <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
-								</el-form-item>
-								<el-form-item label="鍑哄巶鏃ユ湡">
-
-								  <el-input style="width:75%" :disabled="isUp" v-model="formData.dateProduction"></el-input>
-								</el-form-item>
-								<el-form-item label="璁惧璐熻矗浜�" >
-								  <el-input style="width:75%" :disabled="isUp" v-model="formData.equipmentManager"></el-input>
-								</el-form-item>
-								<el-form-item label="琚巿鏉冧汉" >
-									<el-input style="width:75%" :disabled="isUp" v-model="formData.authorizedPerson"></el-input>
-								  </el-form-item>
-								  <el-form-item v-if="!isUp" label="鍥剧墖" >
-									<div style="width:75%;border: 1px solid #DCDFE6;border-radius:4px;margin-left: 22%;display:flex;justify-content: space-around;">
-											<div>{{formData.largeCategory}}</div>
-											<div style="width: 40%;"></div>
-											<div><el-button type="text">棰勮</el-button></div>
-									</div>
-								  </el-form-item>
-							  </el-form>
-						</el-col>
-					</el-col>
-					<!-- 涓棿甯冨眬 -->
-					<el-col  :span="7">
-						<el-form :label-position="labelPosition" :model="formData">
-							<el-form-item label="璁惧鍚嶇О" >
-							  <el-input style="width:75%" :disabled="isUp" v-model="formData.deviceName"></el-input>
+		<el-dialog :title="isUp?'璁惧璇︽儏':'妗f淇'" :visible.sync="dialogVisible" width="70%" :before-close="handleClose">
+			<el-row style="display:flex;justify-content: space-around;">
+				<!-- 宸﹁竟甯冨眬 -->
+				<el-col :span="7">
+					<el-col>
+						<!-- 鍥剧墖 -->
+						<el-image class="img" style="width:100%;height: 320px;marginBottom:16px"
+							:src="javaApi+'/img/'+formData.imageUpload">
+							<div slot="error" class="image-error" style="width: calc(100% -2px);
+            height: 318px;
+            border-radius: 16px;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            border: 1px solid #EEEEEE;">
+								<i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
+							</div>
+						</el-image>
+						<!-- 琛ㄥ崟 -->
+						<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:" required>
+								<el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
+											</el-form-item>
+							<el-form-item label="瑙勬牸鍨嬪彿:" required>
+								<el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
+											</el-form-item>
+							<el-form-item label="鐢熶骇鍘傚:">
+								<el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input>
+											</el-form-item>
+										</el-form>
+									</el-col>
+								</el-col>
+								<!-- 涓棿甯冨眬 -->
+								<el-col :span="7">
+									<el-form :label-position="labelPosition" :model="formData" label-width="116px">
+										<el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:">
+							<el-input :disabled="isUp" v-model="formData.calibrationServices" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="鍐呴儴缂栫爜">
-							  <el-input style="width:75%" :disabled="isUp" v-model="formData.internalCode"></el-input>
+							<el-form-item label="鍑哄巶缂栧彿:">
+							<el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="璧勪骇缂栫爜" >
-							  <el-input style="width:75%" :disabled="isUp" v-model="formData.assetCode"></el-input>
+							<el-form-item label="绠$悊缂栧彿:" required>
+							<el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="鏍″噯鏃ユ湡锛堟湀锛�" >
-								<el-input style="width:75%" :disabled="isUp" v-model="formData.calibrationDate"></el-input>
-							  </el-form-item>
-						  </el-form>
-					</el-col>
-					<!-- 鍙宠竟甯冨眬 -->
-					<el-col  :span="7">
-						<el-form :label-position="labelPosition" :model="formData">
-							<el-form-item label="娲诲姩鍖哄煙" >
-							  <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
+							<el-form-item label="璐疆鏃ユ湡:">
+											<el-date-picker :disabled="isUp" style="width:100%" v-model="formData.acquisitionDate" type="date"
+												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="鍚敤鏃ユ湡:" 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>
+										</el-form-item>
+							<el-form-item label="绠$悊浜�:">
+							<el-select v-model="formData.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%">
+								<el-option :disabled="isUp" 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 style="width:75%" :disabled="isUp" v-model="formData.latestTraceability"></el-input>
+							<el-form-item label="瀛樻斁鐐�:">
+							<el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="娲诲姩褰㈠紡" >
-							  <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
+							<el-form-item label="鎶�鏈寚鏍�:">
+							<el-input :disabled="isUp" v-model="formData.technicalIndicators" :rows="7" type="textarea" size="small"></el-input>
 							</el-form-item>
-							<el-form-item label="娲诲姩褰㈠紡" >
-								<el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
-							  </el-form-item>
-						  </el-form>
-					</el-col>
+					</el-form>
+				</el-col>
+				<!-- 鍙宠竟甯冨眬 -->
+				<el-col :span="7">
+					<el-form :label-position="labelPosition" :model="formData" label-width="140px" ref="ruleForm">
+            <!-- 瀹為獙瀹ゅ垪琛� -->
+            <el-form-item label="鎵�灞為儴闂�:">
+              <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"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="妫�娴嬮」鐩�:">
+              <el-cascader
+			  :disabled="isUp"
+              v-model="formData.insProductIds"
+              :options="options"
+              :show-all-levels="false"
+              :props="props"
+              placeholder="璇烽�夋嫨" size="small"
+              style="width:100%;"
+              :collapse-tags="!isUp"
+              separator=","
+			  filterable
+              clearable></el-cascader>
+            </el-form-item>
+            <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:" v-if="isUp">
+							<el-date-picker :disabled="isUp" style="width:100%" v-model="formData.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="涓嬫鏍″噯鏃ユ湡:" v-if="isUp">
+							<el-date-picker :disabled="isUp" style="width:100%" v-model="formData.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 :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-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input>
+            </el-form-item>
+            <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="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
+              <el-input :disabled="isUp" v-model="formData.calibrationDate" 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;">
+								<div v-show="formData.imageName" class="picName">{{formData.imageName}}</div>
+								<el-upload :disabled="isUp" :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false"
+									accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload"
+									:on-error="onError" ref='upload'>
+									<el-button type="text" style="height:30px;padding-top:8px">涓婁紶</el-button>
+								</el-upload>
+							</div>
+						</el-form-item>
+					</el-form>
+				</el-col>
+			</el-row>
+			<span slot="footer" class="dialog-footer">
+				<el-row v-if="!isUp">
+					<el-button @click="handleClose">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
 				</el-row>
-				<span slot="footer" class="dialog-footer">
-					<el-row v-if="!isUp">
-						<el-button @click="dialogVisible = false">鍙� 娑�</el-button>
-					<el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button>
-					</el-row>
-				</span>
-			</el-dialog>
-		</div>
+			</span>
+		</el-dialog>
+
+
+
+		<!-- 鏂板-->
+		<el-dialog title="鏂板璁惧" :visible.sync="dialogVisible2" width="70%" :before-close="handleClose2">
+			<el-row style="display:flex;justify-content: space-around;">
+				<!-- 宸﹁竟甯冨眬 -->
+				<el-col :span="7">
+					<el-col>
+						<!-- 鍥剧墖 -->
+						<el-image class="img" style="width:100%;height: 320px;margin-bottom:16px"
+							:src="javaApi+'/img/'+formData2.imageUpload">
+							<div slot="error" class="image-error" style="width: calc(100% -2px);
+          height: 318px;
+          border-radius: 16px;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          border: 1px solid #EEEEEE;">
+								<i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
+							</div>
+						</el-image>
+						<!-- 琛ㄥ崟 -->
+						<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:" required>
+                <el-input v-model="formData2.enDeviceName" size="small"></el-input>
+							</el-form-item>
+              <el-form-item label="瑙勬牸鍨嬪彿:" required>
+                <el-input v-model="formData2.specificationModel" 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>
+					</el-col>
+				</el-col>
+				<!-- 涓棿甯冨眬 -->
+				<el-col :span="7">
+					<el-form :label-position="labelPosition" :model="formData2" label-width="110px">
+            <!-- <el-form-item label="鐢熶骇鍘傚EN:">
+              <el-input v-model="formData2.factoryNo" size="small"></el-input>
+            </el-form-item> -->
+			<el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:">
+              <el-input v-model="formData2.calibrationServices" 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="绠$悊缂栧彿:" required>
+              <el-input v-model="formData2.managementNumber" size="small"></el-input>
+            </el-form-item>
+            <el-form-item label="璐疆鏃ユ湡:">
+							<el-date-picker style="width:100%" v-model="formData2.acquisitionDate" type="date"
+								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="鍚敤鏃ユ湡:" 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>
+						</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.storagePoint" size="small"></el-input>
+            </el-form-item>
+			<el-form-item label="鎶�鏈寚鏍�:">
+              <el-input v-model="formData2.technicalIndicators" :rows="7" type="textarea" size="small"></el-input>
+            </el-form-item>
+					</el-form>
+				</el-col>
+				<!-- 鍙宠竟甯冨眬 -->
+				<el-col :span="7">
+					<el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
+            <!-- 瀹為獙瀹ゅ垪琛� -->
+            <el-form-item label="鎵�灞為儴闂�:">
+              <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">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="妫�娴嬮」鐩�:">
+              <el-cascader
+              v-model="formData2.insProductIds"
+              :options="options"
+              :show-all-levels="false"
+              :props="props"
+              placeholder="璇烽�夋嫨" size="small"
+              style="width:100%"
+              collapse-tags
+              separator=","
+			  filterable
+              clearable></el-cascader>
+            </el-form-item>
+            <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-item>
+            <el-form-item label="鍗曚环(涓囧厓):">
+              <el-input v-model="formData2.unitPrice" size="small"></el-input>
+            </el-form-item>
+            <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.id" :label="item.label" :value="item.value">
+								</el-option>
+							</el-select>
+						</el-form-item>
+            <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
+              <el-input v-model="formData2.calibrationDate" 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;">
+								<div v-show="formData2.imageName" class="picName">{{formData2.imageName}}</div>
+								<el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false"
+									accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload"
+									:on-error="onError" ref='upload'>
+									<el-button type="text" style="height:30px;padding-top:8px">涓婁紶</el-button>
+								</el-upload>
+							</div>
+						</el-form-item>
+					</el-form>
+				</el-col>
+			</el-row>
+			<span slot="footer" class="dialog-footer">
+				<el-row>
+					<el-button @click="handleClose2">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submitForm2" :loading="upLoad2">纭� 瀹�</el-button>
+				</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">鍏紡锛�</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>
+    <dataAcquisitionConfig v-if="showData" :deviceId="deviceId"/>
 	</div>
 </template>
 
 <script>
 	import ValueTable from '../tool/value-table.vue'
+  import dataAcquisitionConfig from '../do/b6-device-management/b6-data-acquisition-config.vue'
 	export default {
 		components: {
-			ValueTable
+			ValueTable,
+      dataAcquisitionConfig
 		},
 		data() {
 			return {
+				deviceId: '',
+				fileTypeOptions: [
+					{label: 'csv', value: '.csv'},
+					{label: 'db', value: '.db'},
+					{label: 'mdb', value: '.mdb'},
+					{label: 'word', value: '.docx'},
+					{label: 'excel', value: '.xlsx'},
+					{label: 'txt', value: '.txt'},
+					{label: 'png', value: '.png'},
+				],
 				//鏄惁鏄。妗堜慨璁�  true涓嶆槸 false鏄�
 				isUp: true,
-				formData: {},
+				formData: {
+				},
+				formData2: {
+					imageUpload: '',
+					imageName: ''
+				},
 				value: '',
+        		props: { multiple: true,emitPath:false,value:'id',label:'name' },
 				options: [],
 				labelPosition: 'right',
 				dialogVisible: false,
+				dialogVisible2: false,
+				addPower: false,
+        showData: false, // 鏁伴噰閰嶇疆椤甸潰
+        tableList: [],
 				componentData: {
 					entity: {
-						largeCategory: null,
-						subclass: null,
+						deviceStatus: null,
 						deviceName: null,
-						internalCode: null,
 						specificationModel: null,
-						manufacturer: null,
+						largeCategory: null,
 						orderBy: {
 							field: 'id',
 							order: 'asc'
@@ -203,90 +477,469 @@
 					showSelect: false,
 					select: false,
 					do: [{
-						id: 'details',
-						font: '璇︽儏',
-						type: 'text',
-						method: 'selectAllByOne'
-					}, {
 						id: 'delete',
 						font: '鍒犻櫎',
 						type: 'text',
 						method: 'doDiy'
-					},{
+					}, {
 						id: 'archives',
 						font: '妗f淇',
 						type: 'text',
 						method: 'isUpdate'
-					}],
-					tagField: {},
-					selectField: {},
-					requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
-					requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
+					}
+          // , {
+					// 	id: 'handleConfig',
+					// 	font: '鏁伴噰閰嶇疆',
+					// 	type: 'text',
+					// 	method: 'handleConfig',
+          //   disabFun: (row, index) => {
+          //     return row.insProductItem === ''
+          //   }
+					// }
+        ],
+          headNoShow:['enDeviceName'],
+					tagField: {
+						deviceStatus: {
+							select: []
+						},
+						equipmentManager: {
+							select: []
+						},
+						authorizedPerson: {
+							select: []
+						},
+            insProductIds:{
+              select:[]
+            }
+					},
+					linkEvent: {
+						deviceName: {
+							method: 'selectAllByOne'
+						}
+					},
+					selectField: {
+						authorizedPerson: {
+							select: [],
+							choose: true
+						},
+						equipmentManager: {
+							select: []
+						},
+            insProductIds:{
+              select:[],
+              choose: true
+            }
+					},
+					requiredAdd: [],
+					requiredUp: [],
+          needSort: ['deviceName', 'acquisitionDate', 'activationDate', 'lastCalibrationDate', 'nextCalibrationDate', 'deviceStatus'],
 				},
 				entityCopy: {},
 				upIndex: 0,
 				addDia: true,
-				addPower: true
+				addPower: true,
+				//璁惧绫诲瀷鍒楄〃
+				equipmentList: [],
+				// 璐熻矗浜哄垪琛�
+				responsiblePersonList: [],
+				// 鎺堟潈浜哄垪琛�
+				authorizerList: [],
+				// 褰撳墠鐘舵�佸垪琛�
+				deviceStatusList: [],
+				// 鎵�灞為儴闂�
+				subordinateDepartmentsList: [],
+				upLoad: false,
+				upLoad2: false,
+        dialogVisible3:false,
+        upLoad3:false,
+        configForm:{}
+			}
+		},
+		computed: {
+			headers() {
+				return {
+					'token': sessionStorage.getItem('token')
+				}
+			},
+			action() {
+				return this.javaApi + this.$api.deviceScope.uploadFile
 			}
 		},
 		mounted() {
 			this.entityCopy = this.HaveJson(this.componentData.entity)
 			this.getPower()
+			// this.getAuthorizedPerson()
+			this.selectEnumByCategory()
+			this.selectDevicePrincipal()
+			this.obtainItemParameterList()
+      		this.getInsProductIds()
 		},
 		methods: {
-			refreshTable() {
-				this.$refs['ValueTable'].selectList()
+			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.subordinateDepartmentsList = data
+				})
+			},
+			refreshTable(e) {
+				this.$refs['ValueTable'].selectList(e)
 			},
 			refresh() {
 				this.componentData.entity = this.HaveJson(this.entityCopy)
 				this.upIndex++
 			},
-	
 			// 鏉冮檺鍒嗛厤
 			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'){
+					if (power[i].menuMethod == 'upDeviceParameter') {
 						up = true
 					}
-					if(power[i].menuMethod=='delDeviceParameter'){
+					if (power[i].menuMethod == 'delDeviceParameter') {
 						del = true
 					}
-					if(power[i].menuMethod=='addDeviceParameter'){
+					if (power[i].menuMethod == 'addDeviceParameter') {
 						add = true
 					}
+          			if (power[i].menuMethod == 'saveDataAcquisitionConfiguration') {
+						config = true
+					}
 				}
-				if(!del){
-					this.componentData.do.splice(1, 1)
-				}
-				if(!up){
-					this.componentData.do.splice(0, 1)
-				}
-				this.addPower = add
+				// 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() {
+				this.$axios.post(this.$api.enums.selectEnumByCategory, {
+					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, {
+					category: "璁惧鍒嗙被"
+				}).then(res => {
+					this.equipmentList = res.data
+				})
 			},
-			handleClose(){
+			// 鑾峰彇璐熻矗浜哄垪琛�
+			selectDevicePrincipal() {
+				this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
+					let data = []
+					res.data.forEach(a => {
+						data.push({
+							label: a.name,
+							value: a.id
+						})
+					})
+					this.responsiblePersonList = data
+					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 = m.name;
+            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
+          })
+          this.options.forEach(item=>{
+            if(item.children.length==0){
+              item.children = null;
+            }else{
+              item.children.forEach(m=>{
+                if(m.children.length==0){
+                  m.children = null;
+                }else{
+                  m.children.forEach(n=>{
+                    if(n.children&&n.children.length==0){
+                      n.children = null;
+                    }
+                  })
+                }
+              })
+            }
+          })
+				})
+      },
+			handleClose() {
+				this.formData = {}
+				this.formData2 = {
+					imageUpload: '',
+					imageName: ''
+				}
 				this.dialogVisible = false;
+				this.upLoad = false;
 			},
-			selectAllByOne(row){
+			handleClose2() {
+				this.formData = {}
+				this.formData2 = {
+					imageUpload: '',
+					imageName: ''
+				}
+				this.dialogVisible2 = false;
+				this.upLoad = false;
+			},
+			selectAllByOne(row) {
 				this.isUp = true
 				//鎵撳紑寮规
 				this.dialogVisible = true;
 				//row = 鐐瑰嚮瀵瑰簲琛屽��
 				//澶嶅埗缁檉ormData
-				this.formData=row;
+				this.formData = this.HaveJson(row);
+				this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
 			},
-			isUpdate(row){
+			isUpdate(row) {
 				//淇敼  isUp 涓烘。妗堜慨鏀�
 				this.isUp = false
 				//鎵撳紑寮规
 				this.dialogVisible = true;
 				//row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽��
 				//澶嶅埗缁檉ormData
-				this.formData=row;
-			}
-			}
+				this.formData = this.HaveJson(row);
+        if(typeof(row.insProductIds)==='number'){
+          row.insProductIds = row.insProductIds+''
+        }
+				this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
+			},
+			beforeUpload(file) {
+				if (file.size > 1024 * 1024 * 10) {
+					this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+					this.$refs.upload.clearFiles()
+					return false;
+				} else {
+					return true;
+				}
+			},
+			onError(err, file, fileList) {
+				this.$message.error('涓婁紶澶辫触')
+				this.$refs.upload.clearFiles()
+			},
+			// 涓婁紶鍥剧墖鎴愬姛
+			handleSuccessUpImg(response, ) {
+				if (response.code == 200) {
+					this.formData.imageUpload = response.data.url;
+					this.formData.imageName = response.data.name;
+				}
+			},
+			handleSuccessUpImg2(response) {
+				if (response.code == 200) {
+					this.$nextTick(() => {
+            this.formData.imageUpload = response.data.url;
+            this.formData.imageName = response.data.name;
+						this.formData2.imageUpload = response.data.url;
+						this.formData2.imageName = response.data.name;
+					})
+				}
+			},
+			submitForm() {
+        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?this.formData.insProductIds.join():''
+        this.upLoad = true;
+				this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
+					headers: {
+						'Content-Type': 'application/json'
+					}
+				}).then(res => {
+					if (res.code === 201) {
+						this.upLoad = false
+						return
+					}
+					this.$message.success('淇敼鎴愬姛')
+					this.upLoad = false
+					this.refreshTable('page')
+					this.dialogVisible = false
+				}).catch(e => {
+					this.$message.error('淇敼澶辫触')
+					this.dialogVisible = false
+					this.upLoad = false
+				})
+			},
+			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.formData2.deviceStatus===null){
+          this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
+          return
+        }
+        if(!this.formData2.calibrationDate){
+          this.$message.error('杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�')
+          return
+        }
+				this.upLoad2 = true;
+        this.formData2.insProductIds = this.formData2.insProductIds?this.formData2.insProductIds.join():''
+				this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
+					headers: {
+						'Content-Type': 'application/json'
+					}
+				}).then(res => {
+					if (res.code === 201) {
+						this.upLoad2 = false
+						return
+					}
+					this.$message.success('鎻愪氦鎴愬姛')
+					this.upLoad2 = false
+					this.refreshTable('page')
+					this.dialogVisible2 = false
+					this.formData2 = {
+						imageUpload: '',
+						imageName: ''
+					}
+				}).catch(e => {
+					this.$message.error('鎻愪氦澶辫触')
+					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
+        // })
+        this.showData = true
+        const list = row.insProductItem.split(';')
+        let list2 = []
+        list.map((item) => {
+          const obj = Object.assign({
+			deviceId: row.id,
+            insProductItem: item,
+          })
+          list2.push(obj)
+        })
+        this.tableList = list2
+		this.deviceId = row.id
+      },
+      closeDataVue () {
+        this.showData = false
+      },
+      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
+        }
+
+        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('page')
+					this.dialogVisible3 = false
+				}).catch(e => {
+					this.$message.error('鎿嶄綔澶辫触')
+					this.dialogVisible3 = false
+					this.upLoad3 = false
+				})
+      }
 		}
-</script>
\ No newline at end of file
+	}
+</script>

--
Gitblit v1.9.3