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