<!DOCTYPE html>
|
<html lang="en">
|
|
<head>
|
<meta charset="UTF-8">
|
<title>RGV设备</title>
|
<link rel="stylesheet" href="../../static/css/element.css">
|
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../../static/js/common.js"></script>
|
<script type="text/javascript" src="../../static/js/vue.min.js"></script>
|
<script type="text/javascript" src="../../static/js/element.js"></script>
|
</head>
|
|
<body>
|
<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
|
<div style="width: 100%;">
|
<el-table border ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
|
max-height="350" style="width: 100%">
|
<el-table-column property="rgvNo" label="RGV号">
|
</el-table-column>
|
<el-table-column property="workNo1" label="工作号">
|
</el-table-column>
|
<el-table-column property="statusType" label="模式">
|
</el-table-column>
|
<el-table-column property="status" label="任务状态">
|
</el-table-column>
|
<el-table-column property="walkPos" label="设备状态">
|
</el-table-column>
|
<el-table-column property="pakMk" 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" v-if="rgvMode !== 2 && rgvMode !== 1 ">
|
<!-- <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-button @click="initiate" type="warning">执行任务</el-button>
|
</el-form-item>
|
</el-form>
|
|
<div v-if="rgvMode === 2 ">
|
<el-form :model="formParamD" label-position="top" :inline="true" class="demo-form-inline">
|
<el-form-item label="起始站">
|
<el-input v-model="formParamD.sourceRow" placeholder="起始站"></el-input>
|
</el-form-item>
|
<el-form-item label="目标站">
|
<el-input v-model="formParamD.sourceBay" placeholder="目标站"></el-input>
|
</el-form-item>
|
<el-form-item label="启动">
|
<el-button @click="initiateD(1)" type="warning">取货</el-button>
|
<el-button @click="initiateD(2)" type="warning">放货</el-button>
|
<el-button @click="initiateD(3)" type="warning">XY移动</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
<div v-if="demo === 'N' ">
|
<el-button v-if="rgvMode === 0 " type="danger">未知</el-button>
|
<el-button v-if="rgvMode === -1 " type="danger">未知</el-button>
|
<el-button v-if="rgvMode === 3 " type="primary">联机</el-button>
|
<el-button v-if="rgvMode === 2 " type="primary">单机</el-button>
|
<el-button v-if="rgvMode === 1 " type="warning">手动</el-button>
|
</div>
|
<div v-if="rgvMode !== 0 ">
|
<div style="margin: 10px auto 10px auto">
|
<el-button v-if="demo === 'N' " @click="demos('true')" type="info">演示</el-button>
|
<el-button v-if="demo === 'Y' " @click="demos('false')" type="info">取消演示</el-button>
|
</div>
|
<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
|
<el-button v-if="rgvMode !== 3 " @click="rgvStatus(15)" type="primary">联机</el-button>
|
<el-button v-if="rgvMode !== 2 " @click="rgvStatus(14)" type="primary">单机</el-button>
|
<el-button v-if="rgvMode !== 1 " @click="rgvStatus(12)" type="warning">手动</el-button>
|
</div>
|
<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
|
<el-button @click="rgvStatus(8)" type="primary">启动</el-button>
|
<el-button @click="rgvStatus(9)" type="primary">停止</el-button>
|
<el-button @click="rgvStatus(11)" type="primary">复位按钮</el-button>
|
</div>
|
<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
|
<el-button @click="rgvStatus(7)" type="warning">报警消音</el-button>
|
<el-button v-if="rgvMode === 1 " @click="rgvStatus(13)" type="warning">手动定位</el-button>
|
</div>
|
<div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
|
<el-button :style="" @click="rgvStatus(5)" type="danger">强制启动</el-button>
|
<el-button @click="rgvStatus(10)" type="danger">急停</el-button>
|
<el-button @click="rgvStatus(16)" type="danger">货叉定位回中</el-button>
|
</div>
|
<div style="margin-top: 5px" v-if="demo === 'Y'">
|
<el-button @click="staTova(2,1)" type="warning">输送-置换1</el-button>
|
<el-button @click="staTova(2,3)" type="warning">输送-置换2</el-button>
|
<el-button @click="staTova(2,5)" type="warning">输送-置换3</el-button>
|
<el-button @click="staTova(2,7)" type="warning">输送-置换4</el-button>
|
</div>
|
<div style="margin-top: 5px" v-if="demo === 'Y'">
|
<el-button @click="staTova(2,4)" type="warning">输送-灌装1</el-button>
|
<el-button @click="staTova(2,6)" type="warning">输送-灌装2</el-button>
|
<el-button @click="staTova(2,8)" type="warning">输送-灌装3</el-button>
|
</div>
|
<div style="margin-top: 5px" v-if="demo === 'Y'">
|
<el-button @click="staTova(1,10)" type="warning">置换1-放货</el-button>
|
<el-button @click="staTova(2,10)" type="warning">置换2-放货</el-button>
|
<el-button @click="staTova(3,10)" type="warning">置换3-放货</el-button>
|
<el-button @click="staTova(4,10)" type="warning">置换4-放货</el-button>
|
</div>
|
</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="RGV">{{ tableData[currentIndex].rgvNo }}
|
</el-descriptions-item>
|
<el-descriptions-item label="工作号">
|
{{ tableData[currentIndex].workNo1 }}
|
</el-descriptions-item>
|
<el-descriptions-item label="模式">
|
<el-tag>{{ tableData[currentIndex].statusType }}</el-tag>
|
</el-descriptions-item>
|
<el-descriptions-item label="任务状态">
|
|
<el-tag>{{ tableData[currentIndex].status}}</el-tag>
|
|
</el-descriptions-item>
|
<el-descriptions-item label="设备状态">
|
<el-tag>{{ tableData[currentIndex].walkPos }}</el-tag>
|
</el-descriptions-item>
|
<el-descriptions-item label="故障代码">{{ tableData[currentIndex].warnCode }}
|
</el-descriptions-item>
|
<el-descriptions-item label="故障描述">{{ tableData[currentIndex].alarm }}
|
</el-descriptions-item>
|
<!-- <el-descriptions-item label="源站">{{ tableData[currentIndex].staNo }}-->
|
<!-- </el-descriptions-item>-->
|
<!-- <el-descriptions-item label="目标站">{{ tableData[currentIndex].sourceStaNo }}-->
|
<!-- </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: {
|
rgvNo: null,
|
sourceStaNo: null,
|
sourceRow: 1,
|
sourceBay: 0,
|
sourceLev: 1,
|
staNo: null,
|
row: 1,
|
bay: 0,
|
lev: 1,
|
barcode:null,
|
barcodeType:null,
|
emptyContainer:null
|
},
|
formParamD: {
|
rgvNo: null,
|
sourceStaNo: null,
|
sourceRow: 1,
|
sourceBay: 0,
|
sourceLev: 1,
|
staNo: null,
|
row: 1,
|
bay: 0,
|
lev: 1,
|
barcode:null,
|
barcodeType:null,
|
emptyContainer:null
|
},
|
enableIn: false,
|
enableOut: false,
|
options:[
|
{
|
value:'1',
|
label:'是'
|
},
|
{
|
value:'0',
|
label:'否'
|
}
|
],
|
demo: 'X',
|
rgvMode: 0
|
},
|
created() {
|
this.init()
|
},
|
watch: {
|
|
},
|
methods: {
|
staTova(sta,end){
|
let that = this
|
that.$confirm('此操作存在风险,是否继续','提示',{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(()=>{
|
$.ajax({
|
url: baseUrl + "/rgv/rgvDemoTask",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data:{
|
rgvNo : this.formParam.rgvNo,
|
sta : sta,
|
end : end
|
},
|
method: 'Get',
|
success: function (res) {
|
if (res.code == 200) {
|
that.$message({
|
message: res.msg,
|
type: 'success'
|
});
|
} else {
|
that.$message({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
})
|
},
|
init() {
|
this.getTableData()
|
|
setInterval(() => {
|
this.getTableData()
|
this.demoStatus()
|
}, 1000)
|
},
|
handleRowClick(row, col, event) {
|
const index = this.tableData.indexOf(row)
|
this.currentRow = row;
|
this.currentIndex = index
|
this.currentTitle = row.rgvNo + "号RGV"
|
this.formParam.rgvNo = row.rgvNo
|
this.enableIn = row.inEnable == "Y" ? true : false
|
this.enableOut = row.outEnable == "Y" ? true : false
|
},
|
getTableData() {
|
let that = this;
|
$.ajax({
|
url: baseUrl + "/rgv/table/rgv/state",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: {},
|
dataType: 'json',
|
contentType: 'application/json;charset=UTF-8',
|
method: 'post',
|
success: function (res) {
|
that.tableData = res.data
|
}
|
});
|
},
|
demoStatus() {
|
let that = this;
|
$.ajax({
|
url: baseUrl + "/rgv/demo/status",
|
data:{
|
rgvNo : this.formParam.rgvNo
|
},
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
contentType: 'application/json;charset=UTF-8',
|
method: 'get',
|
success: function (res) {
|
// console.log(res)
|
that.demo = res.data.demo
|
that.rgvMode = res.data.rgvMode
|
}
|
});
|
},
|
initiate(){
|
let that = this
|
that.$confirm('此操作存在风险,是否继续','提示',{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(()=>{
|
$.ajax({
|
url: baseUrl + "/rgv/operator/put",
|
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'
|
});
|
}
|
}
|
});
|
})
|
},
|
initiateD(method){
|
let urlS = "/rgv/operator/single/step/three/put";
|
if (method===1){
|
urlS = "/rgv/operator/single/step/one/put";
|
}else if (method === 2){
|
urlS = "/rgv/operator/single/step/two/put";
|
}else if (method === 3){
|
urlS = "/rgv/operator/single/step/three/put";
|
}
|
let that = this
|
that.$confirm('此操作存在风险,是否继续','提示',{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(()=>{
|
$.ajax({
|
url: baseUrl + urlS,
|
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'
|
});
|
}
|
}
|
});
|
})
|
},
|
demos(method){
|
let that = this
|
that.$confirm('此操作存在风险,是否继续','提示',{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(()=>{
|
$.ajax({
|
url: baseUrl + "/rgv/demo/status/" + method,
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data:{
|
rgvNo : this.formParam.rgvNo
|
},
|
method: 'Get',
|
success: function (res) {
|
if (res.code == 200) {
|
that.$message({
|
message: res.msg,
|
type: 'success'
|
});
|
} else {
|
that.$message({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
})
|
},
|
rgvStatus(method){
|
let that = this
|
that.$confirm('此操作存在风险,是否继续','提示',{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(()=>{
|
$.ajax({
|
url: baseUrl + "/rgv/demo/status/rgvStatus",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data:{
|
rgvNo : this.formParam.rgvNo,
|
status : Number(method)
|
},
|
method: 'Get',
|
success: function (res) {
|
if (res.code == 200) {
|
that.$message({
|
message: res.msg,
|
type: 'success'
|
});
|
} else {
|
that.$message({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
})
|
},
|
requestOperate(method) {
|
let that = this
|
that.$confirm('此操作存在风险,是否继续','提示',{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(()=>{
|
$.ajax({
|
url: baseUrl + "/rgv/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",
|
rgvNo: this.formParam.rgvNo
|
}
|
} else {
|
param = {
|
outEnable: this.enableOut ? "Y" : "N",
|
rgvNo: this.formParam.rgvNo
|
}
|
}
|
|
$.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>
|