From ddd32e029e6a5866240d737b4cc268e33e861233 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 06 三月 2024 13:57:56 +0800
Subject: [PATCH] 完成设备总览和设备工具明细接口联调

---
 src/components/view/a6-device-management.vue |  226 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 167 insertions(+), 59 deletions(-)

diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
index df5efb9..9b41352 100644
--- a/src/components/view/a6-device-management.vue
+++ b/src/components/view/a6-device-management.vue
@@ -39,6 +39,13 @@
   .el-form-item{
     margin-bottom: 16px;
   }
+  .picName{
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    word-break: break-all;
+    width: 120px;
+  }
 </style>
 
 <template>
@@ -53,14 +60,14 @@
 		<div class="search">
 			<div class="search_thing">
 				<div class="search_label">鐘舵�侊細</div>
-				<el-select v-model="componentData.entity.status" placeholder="鍏ㄩ儴">
+				<el-select v-model="componentData.entity.deviceStatus" placeholder="鍏ㄩ儴">
 					<el-option
-					  v-for="item in options"
+					  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>
@@ -70,13 +77,13 @@
         <div class="search_thing">
 				<div class="search_label">瑙勬牸鍨嬪彿锛�</div>
 				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="componentData.entity.internalCode" @keyup.enter.native="refreshTable()"></el-input></div>
+						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.type" placeholder="璇烽�夋嫨">
+							<div class="search_label">璁惧澶х被锛�</div>
+							<el-select v-model="componentData.entity.largeCategory" placeholder="璇烽�夋嫨">
 								<el-option
-								  v-for="item in options"
+								  v-for="item in equipmentList"
 								  :key="item.value"
 								  :label="item.label"
 								  :value="item.value">
@@ -102,11 +109,20 @@
         <el-col  :span="7" >
           <el-col>
             <!-- 鍥剧墖 -->
-            <img src="https://www.baidu.com/img/bd_logo1.png" alt="" style="width:100%;height: 320px;marginBottom:16px">
+            <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="90px">
               <el-form-item label="璁惧鍒嗙被:" >
-                <!-- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> -->
                 <el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="璇烽�夋嫨" size="small" style="width:100%">
                   <el-option
                     v-for="item in equipmentList"
@@ -124,11 +140,12 @@
                   v-model="formData.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>
               <el-form-item label="璁惧璐熻矗浜�:" >
-                <!-- <el-input :disabled="isUp" v-model="formData.equipmentManager" size="small"></el-input> -->
                 <el-select :disabled="isUp" v-model="formData.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%">
                   <el-option
                     v-for="item in responsiblePersonList"
@@ -140,7 +157,6 @@
                 </el-select>
               </el-form-item>
               <el-form-item label="琚巿鏉冧汉:" >
-                <!-- <el-input :disabled="isUp" v-model="formData.authorizedPerson" size="small"></el-input> -->
                 <el-select :disabled="isUp" v-model="formData.authorizedPerson" size="small" multiple placeholder="璇烽�夋嫨" style="width:100%">
                   <el-option
                     v-for="item in authorizerList"
@@ -171,48 +187,47 @@
                 v-model="formData.calibrationDate"
                 type="month"
                 size="small"
+                format="yyyy-MM"
+                value-format="yyyy-MM"
                 style="width:100%"
                 placeholder="閫夋嫨鏈�">
               </el-date-picker>
-              <!-- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> -->
               </el-form-item>
               <el-form-item label="鎶ュ簾鏃堕棿:" >
                 <el-date-picker
                 style="width:100%"
                   :disabled="isUp"
-                  v-model="formData.calibrationDate"
+                  v-model="formData.scrapTime"
                   type="datetime"
+                  format="yyyy-MM-dd HH:mm:ss"
+                  value-format="yyyy-MM-dd HH:mm:ss"
                   size="small"
                   placeholder="閫夋嫨鏃堕棿">
                 </el-date-picker>
-              <!-- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> -->
               </el-form-item>
               <el-form-item label="楠屾敹璁板綍:" >
-              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.acceptanceRecords" size="small"></el-input>
               </el-form-item>
-              <!-- 璺熸潕缁忕悊纭涓嶈杩欎釜瀛楁 -->
-              <!-- <el-form-item label="缁嗙被:" >
-              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
-              </el-form-item> -->
               <el-form-item label="鍑哄巶缂栧彿:" >
-              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
               </el-form-item>
               <el-form-item label="璐疆鏃ユ湡:" >
                 <el-date-picker
                 style="width:100%"
                   :disabled="isUp"
-                  v-model="formData.calibrationDate"
+                  v-model="formData.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-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> -->
               </el-form-item>
               <el-form-item label="鍑嗙‘搴﹂噺鍊�:" >
-              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.accurateMeasurement" size="small"></el-input>
               </el-form-item>
               <el-form-item label="澶囨敞:" >
-              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.notes" size="small"></el-input>
               </el-form-item>
             </el-form>
         </el-col>
@@ -220,11 +235,10 @@
         <el-col  :span="7">
           <el-form :label-position="labelPosition" :model="formData" label-width="110px" ref="ruleForm">
             <el-form-item label="瑙勬牸鍨嬪彿:" >
-              <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
+              <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.latestTraceability" size="small"></el-input> -->
-              <el-select :disabled="isUp" v-model="formData.latestTraceability" placeholder="璇烽�夋嫨" size="small" style="width:100%">
+              <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="璇烽�夋嫨" size="small" style="width:100%">
                   <el-option
                     v-for="item in deviceStatusList"
                     :key="item.value"
@@ -235,14 +249,15 @@
                 </el-select>
             </el-form-item>
             <el-form-item label="瀛樻斁鐐�:" >
-              <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input>
             </el-form-item>
             <el-form-item label="鏈�杩戣拷婧棩鏈�:" >
-              <!-- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> -->
               <el-date-picker
                 style="width:100%"
                   :disabled="isUp"
-                  v-model="formData.largeCategory"
+                  v-model="formData.latestTraceability"
+                  format="yyyy-MM-dd HH:mm:ss"
+                  value-format="yyyy-MM-dd HH:mm:ss"
                   type="datetime"
                   size="small"
                   placeholder="閫夋嫨鏃ユ湡">
@@ -252,37 +267,38 @@
                 <el-date-picker
                 style="width:100%"
                   :disabled="isUp"
-                  v-model="formData.largeCategory"
+                  format="yyyy-MM-dd HH:mm:ss"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  v-model="formData.downTime"
                   type="datetime"
                   size="small"
                   placeholder="閫夋嫨鏃堕棿">
                 </el-date-picker>
-              <!-- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> -->
               </el-form-item>
               <el-form-item label="缁翠慨璁板綍:" >
-              <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.maintenanceRecords" size="small"></el-input>
               </el-form-item>
               <el-form-item label="鐢熶骇鍘傚:" >
-              <el-input :disabled="isUp" v-model="formData.largeCategory" size="small" ></el-input>
+              <el-input :disabled="isUp" v-model="formData.manufacturer" size="small" ></el-input>
               </el-form-item>
-              <!-- 璺熸潕缁忕悊纭涓嶈杩欎釜瀛楁 -->
-              <!-- <el-form-item label="妫�娴嬬被鍨�:" >
-              <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
-              </el-form-item> -->
               <el-form-item label="閲囪喘璐圭敤:" >
-              <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.procurementCosts" size="small"></el-input>
               </el-form-item>
               <el-form-item label="鏍″噯璇佷功:" >
-              <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
+              <el-input :disabled="isUp" v-model="formData.calibrationCerticate" size="small"></el-input>
               </el-form-item>
               <el-form-item v-if="!isUp" 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-if="formData.largeCategory">{{formData.largeCategory}}</div>
+                  <div v-show="formData.imageName" class="picName">{{formData.imageName}}</div>
                   <el-upload
-                      action="https://jsonplaceholder.typicode.com/posts/"
+                      :action="action"
                       :on-success="handleSuccessUpImg"
                       :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;paddingTop:8px">涓婁紶</el-button>
                     </el-upload>
@@ -294,7 +310,7 @@
       <span slot="footer" class="dialog-footer">
         <el-row v-if="!isUp">
           <el-button @click="handleClose">鍙� 娑�</el-button>
-        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
         </el-row>
       </span>
     </el-dialog>
@@ -318,12 +334,10 @@
 				dialogVisible: false,
 				componentData: {
 					entity: {
-						largeCategory: null,
-						subclass: null,
+						deviceStatus: null,
 						deviceName: null,
-						internalCode: null,
 						specificationModel: null,
-						manufacturer: null,
+						largeCategory: null,
 						orderBy: {
 							field: 'id',
 							order: 'asc'
@@ -348,7 +362,23 @@
 						type: 'text',
 						method: 'isUpdate'
 					}],
-					tagField: {},
+					tagField: {
+            deviceStatus: {
+							select: [{
+								value: 0,
+								type: 'success',
+								label: '姝e父'
+							},{
+								value: 1,
+								type: 'warning',
+								label: '鎶ュ簾'
+							},{
+								value: 2,
+								type: 'danger',
+								label: '淇濅慨'
+							}]
+						}
+          },
 					selectField: {},
 					requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
 					requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
@@ -357,7 +387,7 @@
 				upIndex: 0,
 				addDia: true,
 				addPower: true,
-        //璁惧鍒楄〃
+        //璁惧绫诲瀷鍒楄〃
         equipmentList:[],
         // 璐熻矗浜哄垪琛�
         responsiblePersonList:[],
@@ -365,12 +395,23 @@
         authorizerList:[],
         // 璁惧鐘舵�佸垪琛�
         deviceStatusList:[],
+        upLoad:false,
 			}
 		},
+    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()
 		},
 		methods: {
 			refreshTable() {
@@ -380,7 +421,6 @@
 				this.componentData.entity = this.HaveJson(this.entityCopy)
 				this.upIndex++
 			},
-
 			// 鏉冮檺鍒嗛厤
 			getPower(radio) {
 				let power = JSON.parse(sessionStorage.getItem('power'))
@@ -409,19 +449,45 @@
       // 鑾峰彇鎺堟潈浜�
       getAuthorizedPerson(){
         this.$axios.get(this.$api.deviceScope.authorizedPerson).then(res => {
-          console.log(11111,res)
 					let data = []
 					res.data.forEach(a=>{
 						data.push({
-							label: a.laboratoryName,
-							value: a.laboratoryName
+							label: a.authorizedPerson,
+							value: a.authorizedPerson
 						})
 					})
 					this.authorizerList = data
 				})
       },
+      // 鑾峰彇瀛楀吀
+      selectEnumByCategory() {
+				this.$axios.post(this.$api.enums.selectEnumByCategory, {
+					category: "璁惧鐘舵��"
+				}).then(res => {
+					this.deviceStatusList = res.data
+				})
+        this.$axios.post(this.$api.enums.selectEnumByCategory, {
+					category: "璁惧鍒嗙被"
+				}).then(res => {
+					this.equipmentList = res.data
+				})
+			},
+      // 鑾峰彇璐熻矗浜哄垪琛�
+      selectDevicePrincipal(){
+        this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
+					let data = []
+					res.data.forEach(a=>{
+						data.push({
+							label: a.equipmentManager,
+							value: a.equipmentManager
+						})
+					})
+					this.responsiblePersonList = data
+				})
+      },
 			handleClose(){
 				this.dialogVisible = false;
+        this.upLoad = false;
 			},
 			selectAllByOne(row){
 				this.isUp = true
@@ -429,7 +495,8 @@
 				this.dialogVisible = true;
 				//row = 鐐瑰嚮瀵瑰簲琛屽��
 				//澶嶅埗缁檉ormData
-				this.formData=row;
+				this.formData=this.HaveJson(row);
+        this.formData.authorizedPerson=row.authorizedPerson?row.authorizedPerson.split(','):[];
 			},
 			isUpdate(row){
 				//淇敼  isUp 涓烘。妗堜慨鏀�
@@ -438,15 +505,56 @@
 				this.dialogVisible = true;
 				//row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽��
 				//澶嶅埗缁檉ormData
-				this.formData=row;
+				this.formData=this.HaveJson(row);
+        this.formData.authorizedPerson=row.authorizedPerson?row.authorizedPerson.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, file, fileList){
-        console.log(response, file, fileList)
+      handleSuccessUpImg(response,){
+        if(response.code==200){
+          this.formData.imageUpload = response.data.url;
+          this.formData.imageName = response.data.name;
+        }
       },
       submitForm(){
-        this.dialogVisible = false
+        this.upLoad = true;
+        let authorizedPerson = this.formData.authorizedPerson.length>0?this.formData.authorizedPerson.join(','):''
+        delete this.formData.createTime
+        delete this.formData.updateTime
+        delete this.formData.createUser
+        delete this.formData.updateUser
+        this.formData.authorizedPerson = authorizedPerson
+        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()
+          this.dialogVisible = false
+				}).catch(e => {
+					this.$message.error('淇敼澶辫触')
+					this.dialogVisible = false
+					this.upLoad = false
+				})
       }
-			}
 		}
+	}
 </script>

--
Gitblit v1.9.3