<!DOCTYPE html>
|
<html lang="en">
|
|
<head>
|
<meta charset="UTF-8">
|
<title>堆垛机设备</title>
|
<link rel="stylesheet" href="../../static/wcs/css/element.css">
|
<script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../../static/wcs/js/common.js"></script>
|
<script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
|
<script type="text/javascript" src="../../static/wcs/js/element.js"></script>
|
</head>
|
|
<body>
|
<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
|
<div style="width: 100%;">
|
<el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
|
max-height="350" style="width: 100%">
|
<el-table-column property="crnNo" label="堆垛机">
|
</el-table-column>
|
<el-table-column property="workNo" label="工作号">
|
</el-table-column>
|
<el-table-column property="statusType" label="模式">
|
</el-table-column>
|
<el-table-column property="wrkStatus$" label="任务状态">
|
</el-table-column>
|
<el-table-column property="deviceStatus" label="设备状态">
|
</el-table-column>
|
</el-table>
|
</div>
|
|
<div style="width: 100%;display: flex;justify-content: center;margin-top: 10px;">
|
<div style="width: 55%;margin-right: 10px;">
|
<el-card class="box-card">
|
<div slot="header" class="clearfix">
|
<span>设备调试</span>
|
</div>
|
<div>
|
<el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
|
<el-form-item label="源站/源库位">
|
<el-input v-model="formParam.sourceStaNo" placeholder="源站/源库位"></el-input>
|
</el-form-item>
|
<el-form-item label="排">
|
<el-input v-model="formParam.sourceRow" placeholder="排"></el-input>
|
</el-form-item>
|
<el-form-item label="列">
|
<el-input v-model="formParam.sourceBay" placeholder="列"></el-input>
|
</el-form-item>
|
<el-form-item label="层">
|
<el-input v-model="formParam.sourceLev" placeholder="层"></el-input>
|
</el-form-item>
|
</el-form>
|
<el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
|
<el-form-item label="目标站/目标库位">
|
<el-input v-model="formParam.staNo" placeholder="目标站/目标库位"></el-input>
|
</el-form-item>
|
<el-form-item label="排">
|
<el-input v-model="formParam.row" placeholder="排"></el-input>
|
</el-form-item>
|
<el-form-item label="列">
|
<el-input v-model="formParam.bay" placeholder="列"></el-input>
|
</el-form-item>
|
<el-form-item label="层">
|
<el-input v-model="formParam.lev" placeholder="层"></el-input>
|
</el-form-item>
|
</el-form>
|
<el-form label-position="top" :inline="true" class="demo-form-inline">
|
<el-form-item label="">
|
<el-checkbox @change="updateEnableInOut('in')" v-model="enableIn">可入</el-checkbox>
|
</el-form-item>
|
<el-form-item label="">
|
<el-checkbox @change="updateEnableInOut('out')" v-model="enableOut">可出</el-checkbox>
|
</el-form-item>
|
</el-form>
|
<div>
|
<el-button @click="requestOperate('put')" type="primary">入库</el-button>
|
<el-button @click="requestOperate('take')" type="primary">出库</el-button>
|
<el-button @click="requestOperate('stockMove')" type="primary">库位转移</el-button>
|
<el-button @click="requestOperate('siteMove')" type="primary">站到站</el-button>
|
<el-button @click="requestOperate('taskComplete')" type="primary">任务完成</el-button>
|
<el-button @click="requestOperate('clearCommand')" type="primary">清除命令</el-button>
|
<el-button @click="requestOperate('handleReset')" type="primary">复位</el-button>
|
<br/>
|
<br/>
|
<el-button @click="requestOperate('auto')" type="warning">联机</el-button>
|
<el-button @click="requestOperate('semiAutomatic')" type="warning">半自动</el-button>
|
<el-button @click="requestOperate('hand')" type="warning">手动</el-button>
|
<el-button @click="requestOperate('onlineWrk4')" type="warning">恢复联机任务</el-button>
|
<el-button @click="requestOperate('onlineWrk3')" type="warning">清除联机任务</el-button>
|
<el-button @click="requestOperate('onlineWrk1')" type="warning">申请完成任务</el-button>
|
<br/>
|
<br/>
|
<el-button @click="requestOperate('onlineWrk2')" type="warning">申请取消任务</el-button>
|
</div>
|
</div>
|
</el-card>
|
</div>
|
<div style="width: 45%;">
|
<el-card class="box-card">
|
<div slot="header" class="clearfix">
|
<span>设备状态</span>
|
</div>
|
<div>
|
<div v-if="currentIndex == null">
|
<el-empty description="请选择设备"></el-empty>
|
</div>
|
<div v-else>
|
<el-descriptions :title="currentTitle" direction="vertical" :column="4" border>
|
<el-descriptions-item label="堆垛机">{{ tableData[currentIndex].crnNo }}
|
</el-descriptions-item>
|
<el-descriptions-item label="工作号">
|
{{ tableData[currentIndex].workNo }}
|
</el-descriptions-item>
|
<el-descriptions-item label="模式">
|
<el-tag>{{ tableData[currentIndex].statusType }}</el-tag>
|
</el-descriptions-item>
|
<el-descriptions-item label="任务状态">
|
<div v-if="tableData[currentIndex].wrkStatus == 0">
|
<el-tag>{{ tableData[currentIndex].wrkStatus$ }}</el-tag>
|
</div>
|
<div v-else>
|
<el-tag type="success">{{ tableData[currentIndex].wrkStatus$ }}</el-tag>
|
</div>
|
</el-descriptions-item>
|
<el-descriptions-item label="设备状态">
|
<el-tag>{{ tableData[currentIndex].deviceStatus }}</el-tag>
|
</el-descriptions-item>
|
<el-descriptions-item label="有物">
|
<el-tag>{{ tableData[currentIndex].loading }}</el-tag>
|
</el-descriptions-item>
|
<el-descriptions-item label="列">{{ tableData[currentIndex].bay }}
|
</el-descriptions-item>
|
<el-descriptions-item label="层">{{ tableData[currentIndex].lev }}
|
</el-descriptions-item>
|
<el-descriptions-item label="故障代码">{{ tableData[currentIndex].warnCode }}
|
</el-descriptions-item>
|
<el-descriptions-item label="故障描述">{{ tableData[currentIndex].lev }}
|
</el-descriptions-item>
|
<el-descriptions-item label="源站">{{ tableData[currentIndex].sourceStaNo }}
|
</el-descriptions-item>
|
<el-descriptions-item label="目标站">{{ tableData[currentIndex].staNo }}
|
</el-descriptions-item>
|
<el-descriptions-item label="源库位">{{ tableData[currentIndex].sourceLocNo }}
|
</el-descriptions-item>
|
<el-descriptions-item label="目标库位">{{ tableData[currentIndex].locNo }}
|
</el-descriptions-item>
|
<el-descriptions-item label="货叉定位">{{ tableData[currentIndex].forkOffset }}
|
</el-descriptions-item>
|
<el-descriptions-item label="载货台定位">{{ tableData[currentIndex].liftPos }}
|
</el-descriptions-item>
|
<el-descriptions-item label="走行在定位">{{ tableData[currentIndex].walkPos }}
|
</el-descriptions-item>
|
<el-descriptions-item label="走行速度(m/min)">{{ tableData[currentIndex].xspeed }}
|
</el-descriptions-item>
|
<el-descriptions-item label="升降速度(m/min)">{{ tableData[currentIndex].yspeed }}
|
</el-descriptions-item>
|
<el-descriptions-item label="叉牙速度(m/min)">{{ tableData[currentIndex].zspeed }}
|
</el-descriptions-item>
|
<el-descriptions-item label="走行距离(Km)">{{ tableData[currentIndex].xdistance }}
|
</el-descriptions-item>
|
<el-descriptions-item label="升降距离(Km)">{{ tableData[currentIndex].ydistance }}
|
</el-descriptions-item>
|
<el-descriptions-item label="走行时长(H)">{{ tableData[currentIndex].xduration }}
|
</el-descriptions-item>
|
<el-descriptions-item label="升降时长(H)">{{ tableData[currentIndex].yduration }}
|
</el-descriptions-item>
|
</el-descriptions>
|
</div>
|
</div>
|
</el-card>
|
</div>
|
</div>
|
</div>
|
<script>
|
var app = new Vue({
|
el: '#app',
|
data: {
|
tableData: [],
|
currentRow: null,
|
currentTitle: "未选择设备",
|
currentIndex: null,
|
formParam: {
|
crnNo: null,
|
sourceStaNo: null,
|
sourceRow: 1,
|
sourceBay: 0,
|
sourceLev: 1,
|
staNo: null,
|
row: 1,
|
bay: 0,
|
lev: 1
|
},
|
enableIn: false,
|
enableOut: false
|
},
|
created() {
|
this.init()
|
},
|
watch: {
|
|
},
|
methods: {
|
init() {
|
this.getTableData()
|
|
setInterval(() => {
|
this.getTableData()
|
}, 1000)
|
},
|
handleRowClick(row, col, event) {
|
const index = this.tableData.indexOf(row)
|
this.currentRow = row;
|
this.currentIndex = index
|
this.currentTitle = row.crnNo + "号堆垛机"
|
this.formParam.crnNo = row.crnNo
|
this.enableIn = row.inEnable == "Y" ? true : false
|
this.enableOut = row.outEnable == "Y" ? true : false
|
},
|
getTableData() {
|
let that = this;
|
$.ajax({
|
url: baseUrl + "/crn/list/auth",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: {},
|
dataType: 'json',
|
contentType: 'application/json;charset=UTF-8',
|
method: 'GET',
|
success: function (res) {
|
that.tableData = res.data
|
}
|
});
|
},
|
requestOperate(method) {
|
let that = this
|
that.$confirm('此操作存在风险,是否继续','提示',{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(()=>{
|
$.ajax({
|
url: baseUrl + "/crn/operator/" + method,
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: this.formParam,
|
method: 'POST',
|
success: function (res) {
|
if (res.code == 200) {
|
that.$message({
|
message: res.msg,
|
type: 'success'
|
});
|
} else {
|
that.$message({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
})
|
|
},
|
updateEnableInOut(type) {
|
let that = this
|
let param = {}
|
if (type == "in") {
|
param = {
|
inEnable: this.enableIn ? "Y" : "N",
|
crnNo: this.formParam.crnNo
|
}
|
} else {
|
param = {
|
outEnable: this.enableOut ? "Y" : "N",
|
crnNo: this.formParam.crnNo
|
}
|
}
|
|
$.ajax({
|
url: baseUrl + "/basCrnp/update/auth",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: param,
|
method: 'POST',
|
success: function (res) {
|
if (res.code == 200) {
|
that.$message({
|
message: res.msg,
|
type: 'success'
|
});
|
} else {
|
that.$message({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
}
|
}
|
})
|
</script>
|
</body>
|
|
</html>
|