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-overview.vue   |  206 ++++++++++++++-----------
 src/components/view/a6-device-management.vue |  226 ++++++++++++++++++++-------
 src/assets/api/controller.js                 |    2 
 3 files changed, 283 insertions(+), 151 deletions(-)

diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 0b2baf3..b514359 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -101,6 +101,8 @@
 	upDeviceParameter: "/deviceScope/upDeviceParameter", //淇敼璁惧璇︽儏鍙傛暟
   authorizedPerson: "/deviceScope/authorizedPerson", //鑾峰彇鎺堟潈浜�
   selectEquipmentOverview: "/deviceScope/selectEquipmentOverview", //鑾峰彇璁惧鎬昏
+  uploadFile: "/deviceScope/uploadFile", //涓婁紶鍥剧墖
+  selectDevicePrincipal: "/deviceScope/selectDevicePrincipal", //鑾峰彇璁惧璐熻矗浜�
 }
 
 const systemLog = {
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>
diff --git a/src/components/view/a6-device-overview.vue b/src/components/view/a6-device-overview.vue
index 7c83b47..d330033 100644
--- a/src/components/view/a6-device-overview.vue
+++ b/src/components/view/a6-device-overview.vue
@@ -33,16 +33,17 @@
 		width: calc(100% - 40px);
 		height: calc(100% - 60px - 80px - 10px - 40px);
 		padding: 20px;
+    overflow-y: auto;
 	}
 
-  ul {
+  .card {
     list-style-type: none;
     display: grid;
     grid-template-columns: repeat(auto-fit, 375px);
-    justify-content: center;
+    /* justify-content: center; */
     grid-gap: 16px;
   }
-  ul li{
+  .card li{
     width: 375px;
     height: 165px;
     border-radius: 8px 8px 8px 8px;
@@ -57,14 +58,14 @@
     position: relative;
     overflow: hidden;
   }
-  ul li .img{
+  .card li .img{
     width: 114px;
     height: 114px;
     border-radius: 16px;
     margin-right: 24px;
   }
   .list-left .list-left-info{
-    line-height: 30px;
+    line-height: 36px;
     display: flex;
   }
   .text-truncate {
@@ -131,7 +132,7 @@
 		<div class="search">
       <div class="search_thing">
 				<div class="search_label">鐘舵�侊細</div>
-				<el-select v-model="searchForm.status" placeholder="鍏ㄩ儴" size="small">
+				<el-select v-model="entity.deviceStatus" placeholder="鍏ㄩ儴" size="small">
 					<el-option
 					  v-for="item in options"
 					  :key="item.value"
@@ -142,18 +143,17 @@
 			</div>
 			<div class="search_thing">
 				<div class="search_label">璁惧鍚嶇О锛�</div>
-				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.name"
-						@keyup.enter.native="refreshTable()"></el-input></div>
+				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="entity.deviceName"></el-input></div>
 			</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-button size="small" type="primary" @click="currentPage= 1,list=[],finishLoding = false,refreshTable()">鏌� 璇�</el-button>
 			</div>
 		</div>
-		<div class="table">
-      <ul v-loading="loading" @scroll="scrollFn">
+		<div class="table" @scroll="scrollFn">
+      <ul v-loading="loading" class="card">
         <li v-for="(m,i) in list" :key="i">
-          <el-image class="img">
+          <el-image class="img" :src="javaApi+'/img/'+m.imageUpload">
             <div slot="error" class="image-error" style="width: 112px;
             height: 112px;
             border-radius: 16px;
@@ -161,22 +161,26 @@
             align-items: center;
             justify-content: center;
             border: 1px solid #EEEEEE;">
-              <i class="el-icon-picture-outline"></i>
+              <i class="el-icon-picture-outline" style="font-size:30px;color:#666666;"></i>
             </div>
           </el-image>
           <div class="list-left">
             <div class="list-left-info">
               <span class="label">璁惧鍚嶇О锛�</span>
-              <span style="color:#3A7BFA;font-size: 16px;display: inline-block;
-    width: 129px; word-break: break-all;" class="text-truncate">灏忚垶鐏垫缉娑℃贩鍚堝櫒</span>
+              <span style="color:#3A7BFA;
+              font-size: 16px;
+              display: inline-block;
+              width: 129px;
+              word-break: break-all;" class="text-truncate">{{m.deviceName?m.deviceName:'鏃�'}}</span>
             </div>
             <div class="list-left-info">
               <span class="label">瑙勬牸鍨嬪彿锛�</span>
-              <span style="color:#333333;font-size: 16px;">CASJTS-C004-01</span>
+              <span style="color:#333333;font-size: 16px;">{{m.specificationModel?m.specificationModel:'鏃�'}}</span>
             </div>
             <div class="list-left-info">
               <span class="label">鐘舵�侊細</span>
-              <el-tag :type="m.type">鏍囩浜�</el-tag>
+              <el-tag :type="m.type" v-if="m.deviceStatusName">{{m.deviceStatusName}}</el-tag>
+              <span v-else style="color:#333333;font-size: 16px;">鏃�</span>
             </div>
           </div>
           <div class="circles" :class="m.type">
@@ -187,17 +191,17 @@
           </div>
         </li>
       </ul>
-      <div v-if="list.length<1&&!loading&&!isLoding&&!finishLoding" style="color:#909399;font-size:14px;text-align: center;margin-top:200px" >鏆傛棤鏁版嵁</div>
-      <div v-if="!noMore&&list.length>0">
+      <div v-if="list.length<1&&!loading&&!isLoding" style="color:#909399;font-size:14px;text-align: center;margin-top:200px" >鏆傛棤鏁版嵁</div>
+      <div v-if="list.length>0">
         <el-button
-          v-show="isLoding"
+          v-if="isLoding"
           type="text"
           style="display: flex; margin: 0 auto; color: #909399"
-          ><i class="el-icon-loading"></i
+          ><i class="el-icon-loading" style="font-size:20px"></i
         ></el-button>
          <el-button
           type="text"
-          v-show="finishLoding"
+          v-if="finishLoding"
           style="display: flex; margin: 0 auto; color: #909399"
           >宸茬粡娌℃湁鏇村鍟</el-button
         >
@@ -210,83 +214,103 @@
 	export default {
 		data() {
 			return {
+        entity:{
+          deviceStatus: null,
+					deviceName: null,
+          orderBy: {field: "id", order: "asc"}
+        },
         options:[],
-        // 鎼滅储琛ㄥ崟
-        searchForm:{},
-        list:[
-          {
-            type:'danger'
-          },
-          {
-            type:'danger'
-          },
-          {
-            type:'success'
-          },
-          {
-            type:'success'
-          },
-          {
-            type:'danger'
-          },
-          {
-            type:'danger'
-          },
-          {
-            type:'danger'
-          },
-          {
-            type:'danger'
-          },
-          {
-            type:'warning'
-          },
-          {
-            type:'warning'
-          },
-        ],
-        noMore: false, // 鎼滅储缁撴灉鏃犵殑灞曠ず
+        list:[],
         currentPage: 1, // 褰撳墠椤�
-        pageSize: 12, // 涓�椤�12鏉�
+        pageSize: 16, // 涓�椤�16鏉�
         total: '',
-        loading: false, // 缁勪欢loading鐨勫睍绀�,榛樿涓簍rue
+        loading: true, // 缁勪欢loading鐨勫睍绀�,榛樿涓簍rue
         isLoding: false, // 鍔犺浇涓紝loading鍥炬爣,榛樿涓簍rue
         finishLoding: false // 鍔犺浇瀹屾垚锛屾樉绀哄凡缁忔病鏈夋洿澶氫簡
 			}
 		},
     created() {
+      this.selectEnumByCategory()
+      this.currentPage = 1;
+      this.list = [];
       this.refreshTable();
-    },
-		mounted() {
-      // window.addEventListener("scroll", this.throttle(this.scrollFn, 500));
-		},
-    destroyed() {
-      // window.removeEventListener("scroll", this.throttle(), false);
     },
 		methods: {
 			refreshTable() {
-        this.loading = true
-        this.isLoding = true
-        this.$axios.get(this.$api.deviceScope.selectEquipmentOverview).then(res => {
-          console.log(11111,res)
+        if(this.currentPage>1){
+          this.isLoding = true
+        }else{
+          this.loading = true
+        }
+        if(this.list.length==0){
+          window.addEventListener("scroll", this.throttle(this.scrollFn, 20000));
+        }
+        this.$axios.post(this.$api.deviceScope.selectDeviceParameter,{
+					page: {
+            current: this.currentPage,
+            size: this.pageSize
+          },
+					entity: this.entity
+				}, {
+					headers: {
+						'Content-Type': 'application/json'
+					}
+				}).then(res => {
+          if(res.code==200){
+            this.total = res.data.body.total
+            let list = res.data.body.records.map(m=>{
+              switch (m.deviceStatus){
+                case '0':
+                  // 姝e父
+                  m.type ='success'
+                  break;
+                case '1':
+                  // 鎶ュ簾
+                  m.type ='warning'
+                  break;
+                case '2':
+                  // 淇濅慨
+                  m.type ='danger'
+                  break;
+              }
+              this.options.forEach(j=>{
+                if(m.deviceStatus==j.value){
+                  m.deviceStatusName = j.label
+                }
+              })
+              return m;
+            })
+            if(list.length==0){
+              this.finishLoding = true;
+            }else{
+              if(list.length<this.pageSize){
+                this.finishLoding = true;
+              }
+              this.list = this.list.concat(list)
+            }
+          }
+          this.loading = false
+          this.isLoding = false;
 				})
-        // allCoursesList({
-        //   currentPage: this.currentPage,
-        //   pageSize: this.pageSize,
-        //   keyword: this.$route.query.keywords
-        // }).then((res) => {
-        //   if (res.data.code === 0) {
-        //     this.loading = false
-        //     this.keyWordsCoursesList = [...res.data.data.rows]
-        //     this.total = res.data.data.total
-        //     if (this.keyWordsCoursesList.length === 0) {
-        //       this.noMore = true;
-        //     }
-        //   }
-        // });
 			},
 			refresh() {
-
+        this.currentPage= 1;
+        this.list=[];
+        this.finishLoding = false;
+        this.entity={
+          deviceStatus: null,
+					deviceName: null,
+          orderBy: {field: "id", order: "asc"}
+        };
+        this.refreshTable()
+			},
+      // 鑾峰彇瀛楀吀
+      selectEnumByCategory() {
+				this.$axios.post(this.$api.enums.selectEnumByCategory, {
+					category: "璁惧鐘舵��"
+				}).then(res => {
+					this.options = res.data
+				})
 			},
       // 婊氬姩瑙﹀簳鍔犺浇
       scrollFn() {
@@ -298,13 +322,8 @@
           scrollTop + clientHeight >= scrollHeight - height &&
           scrollHeight != 0
         ) {
-          if (this.pageSize > this.total) {
-            this.isLoding = false;
-            this.finishLoding = true;
-            window.removeEventListener("scroll", this.throttle(), false);
-          }else{
-            this.currentPage + 1;
-            this.pageSize = this.pageSize += 12;
+          if (!this.finishLoding&&this.currentPage*this.pageSize<this.total) {
+            this.currentPage = this.currentPage + 1;
             this.refreshTable();
           }
         } else {
@@ -325,6 +344,9 @@
           }
         };
       },
-		}
+		},
+    destroyed() {
+      window.removeEventListener("scroll", this.throttle(), false);
+    },
 	}
 </script>

--
Gitblit v1.9.3