|
|
|
@ -58,12 +58,12 @@
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr :class="[index % 2 == 1 ? 'active1' : 'active2']" style="height:48px" :key="index"
|
|
|
|
|
v-for="(n, index) in equipmentlist">
|
|
|
|
|
<td style="width: 8%;">{{index+1}}</td>
|
|
|
|
|
<td style="width: 18%;">{{n.equipmentName}}</td>
|
|
|
|
|
<td style="width: 20%;">{{n.department}}</td>
|
|
|
|
|
<td style="width: 10%;">{{n.equipmentStatus}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.failureRate !=null ?n.failureRate.toFix(2)+'%':'--'}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.utilizationRatio !=null?n.utilizationRatio.toFix(2)+'%':'--'}}</td>
|
|
|
|
|
<td style="width: 8%;">{{ index + 1 }}</td>
|
|
|
|
|
<td style="width: 18%;">{{ n.equipmentName }}</td>
|
|
|
|
|
<td style="width: 20%;">{{ n.department }}</td>
|
|
|
|
|
<td style="width: 10%;">{{ n.equipmentStatus }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.failureRate != null ? n.failureRate + '%' : '--' }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.utilizationRatio != null ? n.utilizationRatio + '%' : '--' }}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
@ -95,14 +95,14 @@
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr :class="[index % 2 == 1 ? 'active1' : 'active2']" style="height:48px" :key="index"
|
|
|
|
|
v-for="(n, index) in repairlist">
|
|
|
|
|
<td style="width: 8%;">{{index+1}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.equipmentName}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.equipmentCode}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.equipmentLocation}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.workFaultDesc}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.teamName}}</td>
|
|
|
|
|
<td style="width: 10%;">{{n.workHandle}}</td>
|
|
|
|
|
<td style="width: 18%;">{{n.workPlanTime}}</td>
|
|
|
|
|
<td style="width: 8%;">{{ index + 1 }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.equipmentName }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.equipmentCode }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.equipmentLocation }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.workFaultDesc }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.teamName }}</td>
|
|
|
|
|
<td style="width: 10%;">{{ n.workHandle }}</td>
|
|
|
|
|
<td style="width: 18%;">{{ n.workPlanTime }}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
@ -121,7 +121,7 @@
|
|
|
|
|
<div class="box">
|
|
|
|
|
<div class="number">
|
|
|
|
|
<span class="number1">
|
|
|
|
|
{{equipmentinfo.totalEquipment}}
|
|
|
|
|
{{ equipmentinfo.totalEquipment }}
|
|
|
|
|
</span>
|
|
|
|
|
<span class="name1">
|
|
|
|
|
台
|
|
|
|
@ -134,7 +134,7 @@
|
|
|
|
|
<div class="box">
|
|
|
|
|
<div class="number">
|
|
|
|
|
<span class="number1" style="color: #FF4D4F;">
|
|
|
|
|
{{equipmentinfo.faultEquipment}}
|
|
|
|
|
{{ equipmentinfo.faultEquipment }}
|
|
|
|
|
</span>
|
|
|
|
|
<span class="name1">
|
|
|
|
|
台
|
|
|
|
@ -195,9 +195,9 @@
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr :class="[index % 2 == 1 ? 'active1' : 'active2']" style="height:48px" :key="index"
|
|
|
|
|
v-for="(n, index) in equipmentstabilizelist">
|
|
|
|
|
<td style="width: 8%;">{{index+1}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.equipmentCode}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.mtbf !=null ?n.mtbf+'%':'--'}}</td>
|
|
|
|
|
<td style="width: 8%;">{{ index + 1 }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.equipmentCode }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.mtbf != null ? n.mtbf + 'h' : '--' }}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
@ -224,9 +224,9 @@
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr :class="[index % 2 == 1 ? 'active1' : 'active2']" style="height:48px" :key="index"
|
|
|
|
|
v-for="(n, index) in equipmentrepairlist">
|
|
|
|
|
<td style="width: 8%;">{{index+1}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.equipmentName}}</td>
|
|
|
|
|
<td style="width: 12%;">{{n.rapairQuantity !=null ?n.rapairQuantity+'%':'--'}}</td>
|
|
|
|
|
<td style="width: 8%;">{{ index + 1 }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.equipmentName }}</td>
|
|
|
|
|
<td style="width: 12%;">{{ n.rapairQuantity != null ? n.rapairQuantity + '%' : '--' }}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
@ -251,6 +251,7 @@ import {
|
|
|
|
|
getRepairQuantity,
|
|
|
|
|
equipmentIntactRate,
|
|
|
|
|
equipmentStability,
|
|
|
|
|
getDeviceRefreshTime,
|
|
|
|
|
} from "@/api/kanban/equipment";
|
|
|
|
|
import * as echarts from "echarts";
|
|
|
|
|
import moment from "moment";
|
|
|
|
@ -311,189 +312,11 @@ export default {
|
|
|
|
|
equipmentrepairlist: [],
|
|
|
|
|
equipmentstabilizelist: [],
|
|
|
|
|
equipmentinfo: [],
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "中山恒阳工厂",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "999",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "中山小榄工厂",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1000",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "内委虚拟工厂",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1001",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "中山雅黛工厂",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1010",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "中山雅黛工厂(OEM业务)",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1011",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "重庆榄菊工厂",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1020",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "江西榄菊工厂",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1030",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "安徽榄菊工厂",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1040",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "createBy": null,
|
|
|
|
|
// "createTime": null,
|
|
|
|
|
// "updateBy": null,
|
|
|
|
|
// "updateTime": null,
|
|
|
|
|
// "remark": null,
|
|
|
|
|
// "poolName": null,
|
|
|
|
|
// "deptId": null,
|
|
|
|
|
// "parentId": null,
|
|
|
|
|
// "ancestors": null,
|
|
|
|
|
// "deptName": "安徽榄菊工厂(OEM业务)",
|
|
|
|
|
// "orderNum": null,
|
|
|
|
|
// "leader": null,
|
|
|
|
|
// "phone": null,
|
|
|
|
|
// "email": null,
|
|
|
|
|
// "status": null,
|
|
|
|
|
// "delFlag": null,
|
|
|
|
|
// "parentName": "1041",
|
|
|
|
|
// "children": []
|
|
|
|
|
// },
|
|
|
|
|
RefreshTime:null,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
created() { },
|
|
|
|
|
created() {
|
|
|
|
|
},
|
|
|
|
|
destroyed() {
|
|
|
|
|
clearInterval(this.time1);
|
|
|
|
|
this.time1 = null;
|
|
|
|
@ -501,7 +324,7 @@ export default {
|
|
|
|
|
mounted() {
|
|
|
|
|
// this.datetime = moment().subtract(2, "day").format("yyyy-MM-DD");
|
|
|
|
|
//console.log('zhuanhuahou',this.dateRangeone)
|
|
|
|
|
// this.getdatalist(this.selectxt)
|
|
|
|
|
|
|
|
|
|
this.selectFactorylist();
|
|
|
|
|
this.gettime();
|
|
|
|
|
},
|
|
|
|
@ -520,10 +343,24 @@ export default {
|
|
|
|
|
getBoardFactory({
|
|
|
|
|
factory: null,
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if (response.data) {
|
|
|
|
|
if (response) {
|
|
|
|
|
_this.getLineList = response.data;
|
|
|
|
|
_this.selectxt = _this.getLineList[0].parentName;
|
|
|
|
|
_this.getdatalist(_this.selectxt)
|
|
|
|
|
_this.getDeviceRefreshTime()
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
getDeviceRefreshTime() {
|
|
|
|
|
const _this = this;
|
|
|
|
|
getDeviceRefreshTime().then((response) => {
|
|
|
|
|
if (response.data) {
|
|
|
|
|
console.log(response.data)
|
|
|
|
|
this.RefreshTime = response.data
|
|
|
|
|
this.RefreshTime = 1
|
|
|
|
|
this.time1 = setInterval(() => {
|
|
|
|
|
_this.getdatalist(_this.selectxt)
|
|
|
|
|
}, 1000*60*this.RefreshTime);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
@ -533,7 +370,7 @@ export default {
|
|
|
|
|
getRepairWorkOrder({
|
|
|
|
|
poolName: poolName,
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if(response.data){
|
|
|
|
|
if (response.data) {
|
|
|
|
|
response.data.forEach((item) => {
|
|
|
|
|
item.workPlanTime = moment(item.workPlanTime).format('YYYY-MM-DD HH:mm:ss')
|
|
|
|
|
});
|
|
|
|
@ -543,21 +380,29 @@ export default {
|
|
|
|
|
getEquipmentInfo({
|
|
|
|
|
poolName: poolName,
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if(response.data){
|
|
|
|
|
if (response.data) {
|
|
|
|
|
_this.equipmentlist = response.data
|
|
|
|
|
_this.equipmentlist.forEach((item) => {
|
|
|
|
|
if (item.failureRate) {
|
|
|
|
|
item.failureRate = item.failureRate.toFix(2)
|
|
|
|
|
}
|
|
|
|
|
if (item.utilizationRatio) {
|
|
|
|
|
item.utilizationRatio = item.utilizationRatio.toFix(2)
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
getRepairQuantity({
|
|
|
|
|
poolName: poolName,
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if(response.data){
|
|
|
|
|
if (response.data) {
|
|
|
|
|
_this.equipmentrepairlist = response.data
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
equipmentIntactRate({
|
|
|
|
|
poolName: poolName,
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if(response.data){
|
|
|
|
|
if (response.data) {
|
|
|
|
|
_this.equipmentinfo = response.data
|
|
|
|
|
_this.initChart1()
|
|
|
|
|
}
|
|
|
|
@ -565,7 +410,7 @@ export default {
|
|
|
|
|
equipmentStability({
|
|
|
|
|
poolName: poolName,
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
if(response.data){
|
|
|
|
|
if (response.data) {
|
|
|
|
|
_this.equipmentstabilizelist = response.data
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -574,10 +419,12 @@ export default {
|
|
|
|
|
const _this = this
|
|
|
|
|
let intactRate = 0
|
|
|
|
|
let numberAngle = 180
|
|
|
|
|
if(_this.equipmentinfo.intactRate){
|
|
|
|
|
console.log(_this.equipmentinfo.intactRate)
|
|
|
|
|
if (_this.equipmentinfo.intactRate) {
|
|
|
|
|
intactRate = _this.equipmentinfo.intactRate
|
|
|
|
|
numberAngle = parseInt(_this.equipmentinfo.intactRate)*1.8 - 180
|
|
|
|
|
numberAngle = parseInt(180 -_this.equipmentinfo.intactRate * 1.8)
|
|
|
|
|
}
|
|
|
|
|
console.log(numberAngle)
|
|
|
|
|
var myChart1 = echarts.init(document.querySelector("#echart1"));
|
|
|
|
|
var option1 = {
|
|
|
|
|
//提示框组件。开发实际中去掉了指针,提示框可以不用设置。
|
|
|
|
@ -1375,4 +1222,5 @@ export default {
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
|
|
|
|
|
background-color: #0091ff;
|
|
|
|
|
}</style>
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|