Vue.component('watch-crn-card', {
|
template: `
|
<div>
|
<div>堆垛机监控</div>
|
<el-collapse v-model="activeNames">
|
<el-collapse-item v-for="(item) in crnList" :name="item.crnNo">
|
<template slot="title">
|
<div style="width: 100%;display: flex;">
|
<div style="width: 50%;">{{ item.crnNo }}号堆垛机</div>
|
<div style="width: 50%;text-align: right;">
|
<el-tag v-if="item.deviceStatus == 'AUTO'" type="success" size="small">自动</el-tag>
|
<el-tag v-else-if="item.deviceStatus == 'WORKING'" size="small">作业中</el-tag>
|
<el-tag v-else-if="item.deviceStatus == 'ERROR'" type="danger" size="small">故障</el-tag>
|
<el-tag v-else type="warning" size="small">离线</el-tag>
|
</div>
|
</div>
|
</template>
|
<el-descriptions border direction="vertical">
|
<el-descriptions-item label="编号">{{ item.crnNo }}</el-descriptions-item>
|
<el-descriptions-item label="工作号">{{ item.workNo }}</el-descriptions-item>
|
<el-descriptions-item label="模式">{{ item.mode }}</el-descriptions-item>
|
<el-descriptions-item label="状态">{{ item.status }}</el-descriptions-item>
|
<el-descriptions-item label="源库位">{{ item.sourceLocNo }}</el-descriptions-item>
|
<el-descriptions-item label="目标库位">{{ item.locNo }}</el-descriptions-item>
|
<el-descriptions-item label="是否有物">{{ item.loading }}</el-descriptions-item>
|
<el-descriptions-item label="列">{{ item.bay }}</el-descriptions-item>
|
<el-descriptions-item label="层">{{ item.lev }}</el-descriptions-item>
|
<el-descriptions-item label="货叉定位">{{ item.forkOffset }}</el-descriptions-item>
|
<el-descriptions-item label="载货台定位">{{ item.liftPos }}</el-descriptions-item>
|
<el-descriptions-item label="走行在定位">{{ item.walkPos }}</el-descriptions-item>
|
<el-descriptions-item label="走行速度(m/min)">{{ item.xspeed }}</el-descriptions-item>
|
<el-descriptions-item label="升降速度(m/min)">{{ item.yspeed }}</el-descriptions-item>
|
<el-descriptions-item label="叉牙速度(m/min)">{{ item.zspeed }}</el-descriptions-item>
|
<el-descriptions-item label="走行距离(Km)">{{ item.xdistance }}</el-descriptions-item>
|
<el-descriptions-item label="升降距离(Km)">{{ item.ydistance }}</el-descriptions-item>
|
<el-descriptions-item label="走行时长(H)">{{ item.xDuration }}</el-descriptions-item>
|
<el-descriptions-item label="升降时长(H)">{{ item.yduration }}</el-descriptions-item>
|
<el-descriptions-item label="故障代码">{{ item.warnCode }}</el-descriptions-item>
|
<el-descriptions-item label="故障描述">{{ item.alarm }}</el-descriptions-item>
|
</el-descriptions>
|
</el-collapse-item>
|
</el-collapse>
|
</div>
|
`,
|
props: ['param'],
|
data() {
|
return {
|
crnList: [],
|
activeNames: ''
|
}
|
},
|
created() {
|
setInterval(() => {
|
this.getCrnStateInfo()
|
},1000)
|
},
|
watch: {
|
param: {
|
handler(newVal, oldVal) {
|
if(newVal.crnNo != 0) {
|
this.activeNames = newVal.crnNo
|
}
|
},
|
deep: true, // 深度监听嵌套属性
|
immediate: true // 立即触发一次(可选)
|
}
|
},
|
methods: {
|
getCrnStateInfo() {
|
let that = this
|
$.ajax({
|
url: baseUrl + "/crn/table/crn/state",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
method: "post",
|
success: (res) => {
|
// 堆垛机信息表获取
|
if (res.code == 200) {
|
let list = res.data;
|
that.crnList = list;
|
}
|
}
|
})
|
},
|
}
|
});
|