<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<title>WCS控制中心</title>
|
<link rel="stylesheet" href="../static/css/animate.min.css">
|
<link rel="stylesheet" href="../static/vue/element/element.css">
|
<link rel="stylesheet" href="../static/css/console_vue.css">
|
<link rel="stylesheet" href="../static/css/toggle-switch.css">
|
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../static/layui/layui.js"></script>
|
<script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script>
|
<script type="text/javascript" src="../static/js/common.js"></script>
|
<script type="text/javascript" src="../static/vue/js/vue.min.js"></script>
|
<script type="text/javascript" src="../static/vue/element/element.js"></script>
|
</head>
|
<body>
|
<div id="app">
|
<div style="display: flex;justify-content: center;align-items: center;width: 100%;margin-top: 150px;">
|
<div id="mapDataId" style="zoom: 0.7;position: relative;">
|
<div class="pointContainer" v-for="(row,index) in map" :key="index">
|
<div v-for="(col,idx) in row" :key="idx">
|
<div v-if="col.value == 0">
|
<!-- 子轨道 路径为穿梭车预计路径则显示穿梭车颜色和穿梭车号 -->
|
<div :style="{background: checkAdvancePath(index,idx).length == 0 ? '':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item" v-if="col.data.length > 0">{{col.data}}</div>
|
<div :style="{background: checkAdvancePath(index,idx).length == 0 ? '':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item" v-else>{{checkAdvancePath(index,idx).length == 0 ? idx:checkAdvancePath(index,idx)}}</div>
|
</div>
|
<div v-else-if="col.value == 3">
|
<!-- 母轨道 路径为穿梭车预计路径则显示穿梭车颜色和穿梭车号 -->
|
<div :style="{background: checkAdvancePath(index,idx).length == 0 ? '#5af':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item">{{checkAdvancePath(index,idx).length == 0 ? '⇅⇄':checkAdvancePath(index,idx)}}</div>
|
</div>
|
<div v-else-if="col.value == 4">
|
<!-- 站点 -->
|
<div class="site" :id="'site-' + col.data" @click="openSite(col.data)">{{col.data}}</div>
|
</div>
|
<div v-else-if="col.value == 5">
|
<!-- 充电桩 -->
|
<div class="item" style="font-size: 24px">⚡</div>
|
</div>
|
<div v-else-if="col.value == -999">
|
<!-- 路径占用区域 -->
|
<div class="item" style="background:#f83333;color: #fff;">{{idx}}</div>
|
</div>
|
<div v-else-if="col.value < 0">
|
<!-- 禁止显示区域 -->
|
<div class="item" style="visibility: hidden">{{idx}}</div>
|
</div>
|
<div v-else>
|
<div class="item" v-if="col.data.length > 0">{{col.data}}</div>
|
<div class="item" v-else>{{idx}}-{{col.value}}</div>
|
</div>
|
</div>
|
|
<div>
|
<!-- 显示行号 -->
|
<div class="item" style="background: none;color: #000;">#{{index+1}}</div>
|
</div>
|
</div>
|
|
<!--输出小车-->
|
<div v-for="(car,idx) in currentLevShuttleList"
|
:style="{
|
left: getCarPosition(car.wcsPoint.x,car.wcsPoint.y)[1]
|
,top: getCarPosition(car.wcsPoint.x,car.wcsPoint.y)[0]
|
,color: shuttleColorList[car.shuttleNo]
|
}"
|
class="sxcar" :id="'sxcar-' + car.shuttleNo">
|
{{car.shuttleNo}}
|
</div>
|
|
</div>
|
|
<!--输出楼层-->
|
<div style="height: 100%;">
|
<div class="floorBtnBox" v-for="(lev,idx) in floorList">
|
<el-button :style="{background:currentLev === lev ? '#7DCDFF':''}" @click="changFloor(lev)">{{lev}}F</el-button>
|
</div>
|
<div>
|
<!-- <el-button @click="testMove()">测试移动车</el-button>-->
|
<el-button @click="resetMap()">重置地图</el-button>
|
<el-button @click="initLoc()">初始化库位</el-button>
|
</div>
|
</div>
|
</div>
|
|
<div class="footer">
|
<!-- 总开关 -->
|
<div class="line-status">
|
<div class="body-head">总开关</div>
|
<div class="switch" @click="systemSwitch">
|
<label id="system-toggle" class="toggle-switch" style="margin-left: 20px;">
|
<input id="system-toggle-checked" disabled type="checkbox">
|
<div class="button">
|
<div class="light"></div>
|
<div class="dots"></div>
|
<div class="characters"></div>
|
<div class="shine"></div>
|
<div class="shadow"></div>
|
</div>
|
</label>
|
|
<div class="switch_r">
|
<p>系统状态</p>
|
<p id="system-run-desc">系统运行中</p>
|
</div>
|
</div>
|
</div>
|
<!-- 四向穿梭车状态 -->
|
<div class="line-status">
|
<div class="body-head">穿梭车状态</div>
|
<div class="shuttle-status-box">
|
<div v-for="(item,idx) in shuttleList" class="state">
|
<span :style="{color: shuttleColorList[item.shuttleNo]}">四向穿梭车 {{item.shuttleNo}}</span>
|
<span v-if="item.protocolStatus == 1"
|
class="state-ss shuttle-idle">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 2"
|
class="state-ss shuttle-working">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 3"
|
class="state-ss shuttle-waiting">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 4"
|
class="state-ss shuttle-charging">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 5"
|
class="state-ss shuttle-charging-waiting">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 6"
|
class="state-ss shuttle-fixing">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 7"
|
class="state-ss shuttle-offline">{{item.protocolStatus$}}</span>
|
<span v-else class="state-ss shuttle-offline">{{item.protocolStatus$}}</span>
|
</div>
|
</div>
|
<div class="allStatus"><span>所有状态</span></div>
|
<div class="allStatus item-group">
|
<span class="shuttle-idle">空闲</span>
|
<span class="shuttle-working">作业中</span>
|
<span class="shuttle-waiting">等待确认</span>
|
<span class="shuttle-charging">充电中</span>
|
<span class="shuttle-charging-waiting">充电任务等待确认</span>
|
<span class="shuttle-fixing">故障修复中</span>
|
<span class="shuttle-offline">离线</span>
|
</div>
|
</div>
|
<!-- 提升机状态 -->
|
<div class="line-status">
|
<div class="body-head">提升机状态</div>
|
<div class="lift-status-box">
|
<div v-for="(item,idx) in liftList" class="state states">
|
<span>提升机 {{item.liftNo}}</span>
|
<span v-if="item.protocolStatus == 1"
|
class="state-ss lift-idle">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 2"
|
class="state-ss lift-working">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 3"
|
class="state-ss lift-waiting">{{item.protocolStatus$}}</span>
|
<span v-else-if="item.protocolStatus == 4"
|
class="state-ss lift-offline">{{item.protocolStatus$}}</span>
|
<span v-else class="state-ss lift-offline">{{item.protocolStatus$}}</span>
|
</div>
|
</div>
|
<div class="allStatus"><span>所有状态</span></div>
|
<div class="allStatus item-group">
|
<span class="lift-idle">空闲</span>
|
<span class="lift-working">作业中</span>
|
<span class="lift-waiting">等待确认</span>
|
<span class="lift-offline">离线</span>
|
</div>
|
</div>
|
<!-- 输送线状态 -->
|
<div class="line-status">
|
<div class="body-head">输送线状态</div>
|
<div class="state states">
|
<span>运输线总数</span>
|
<span class="line-ss">9</span>
|
</div>
|
<div class="allStatus"><span>所有状态</span></div>
|
<div class="allStatus item-group">
|
<span class="site-auto-run-id">自动+有物+ID</span>
|
<span class="site-auto-run">自动+有物</span>
|
<span class="site-auto-id">自动+ID</span>
|
<span class="site-auto">自动</span>
|
<span class="site-unauto">非自动/手动</span>
|
</div>
|
</div>
|
<!-- 条码表格 -->
|
<div class="bar-code">
|
<div class="body-head" id="code">条码扫描器</div>
|
<div class="tablebox">
|
<div class="table-head">
|
<li><span>条码名称</span><span class="right">扫码时间</span></li>
|
</div>
|
<div id="barcode1" class="table-body">
|
<li v-for="(item,index) in codeList1" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li>
|
</div>
|
</div>
|
<div class="tablebox">
|
<div class="table-head">
|
<li><span>条码名称</span><span class="right">扫码时间</span></li>
|
</div>
|
<div id="barcode2" class="table-body">
|
<li v-for="(item,index) in codeList2" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<!-- 输送设备弹窗 -->
|
<div id="siteWindow" :style="{display:siteWindow?'block':'none'}" class="animate__animated animate__fadeIn">
|
<!-- 表头 -->
|
<div id="siteWindow-head">
|
<div class="detailed"></div>
|
<button @click="siteWindow = false"></button>
|
</div>
|
<!-- 表内容 -->
|
<div class="siteWindow-body">
|
<form>
|
<!-- 设备号 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>设备号:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="siteId" value="">
|
</div>
|
</div>
|
<!-- 工作号 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>工作号:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="workNo" value="">
|
</div>
|
</div>
|
<!-- 工作状态 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>工作状态:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="wrkSts" value="">
|
</div>
|
</div>
|
<div class="form-item">
|
<!-- 自动 -->
|
<div class="form-item-checkbox">
|
<div class="form-item-label-checkbox">
|
<span>自动</span>
|
</div>
|
<div class="form-item-input-checkbox">
|
<input type="checkbox" name="autoing">
|
</div>
|
</div>
|
<!-- 有物 -->
|
<div class="form-item-checkbox">
|
<div class="form-item-label-checkbox">
|
<span>有物</span>
|
</div>
|
<div class="form-item-input-checkbox">
|
<input type="checkbox" name="loading">
|
</div>
|
</div>
|
<!-- 能入 -->
|
<div class="form-item-checkbox">
|
<div class="form-item-label-checkbox">
|
<span>能入</span>
|
</div>
|
<div class="form-item-input-checkbox">
|
<input type="checkbox" name="canining">
|
</div>
|
</div>
|
<!-- 能出 -->
|
<div class="form-item-checkbox">
|
<div class="form-item-label-checkbox">
|
<span>能出</span>
|
</div>
|
<div class="form-item-input-checkbox">
|
<input type="checkbox" name="canouting">
|
</div>
|
</div>
|
</div>
|
<!-- 出入类型 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>出入类型:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="ioType" value="">
|
</div>
|
</div>
|
<!-- 源站 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>源站:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="sourceStaNo" value="">
|
</div>
|
</div>
|
<!-- 目标站 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>目标站:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="staNo" value="">
|
</div>
|
</div>
|
<!-- 源库位 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>源库位:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="sourceLocNo" value="">
|
</div>
|
</div>
|
<!-- 目标库位 -->
|
<div class="form-item">
|
<div class="form-item-label">
|
<span>目标库位:</span>
|
</div>
|
<div class="form-item-input">
|
<input type="text" name="locNo" value="">
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
|
</div>
|
<script>
|
var app = new Vue({
|
el: '#app',
|
data: {
|
map: [],//地图数据
|
currentLev: 1,//地图当前楼层
|
siteWindow: false, //站点弹窗显示默认不显示
|
floorList: [1, 2, 3], //当前项目楼层
|
shuttleList: [], //四向穿梭车集合
|
currentLevShuttleList: [],//当前楼层四向穿梭车集合
|
shuttleColorList: [],//四向穿梭车颜色集合
|
liftList: [], //提升机集合
|
systemStatus: true,//系统运行状态
|
consoleInterval: null,//定时器存储变量
|
codeList1: [],//条码List
|
codeList2: [],//条码List
|
ws: null,
|
},
|
created() {
|
this.init()
|
},
|
watch: {
|
|
},
|
methods: {
|
init() {
|
this.ws = new WebSocket("ws://" + window.location.host + baseUrl + "/console/websocket");
|
this.ws.onopen = this.webSocketOnOpen
|
this.ws.onerror = this.webSocketOnError
|
this.ws.onmessage = this.webSocketOnMessage
|
this.ws.onclose = this.webSocketClose
|
|
this.getMap(this.currentLev)
|
this.getSystemRunningStatus() //获取系统运行状态
|
|
this.consoleInterval = setInterval(() => {
|
this.getShuttleStateInfo() //获取四向穿梭车信息
|
this.getLiftStateInfo() //获取提升机信息
|
this.getSiteInfo() //获取输送站点数据
|
this.getMap(this.currentLev) //获取实时地图数据
|
this.getCodeData()//获取条码
|
}, 1000)
|
},
|
//获取地图数据
|
getMap(lev) {
|
this.sendWs(JSON.stringify({
|
"url": "/console/map/auth",
|
"data": lev
|
}))
|
},
|
setMap(res) {
|
//获取地图数据
|
let data = res.data
|
let tmp = []
|
for (let i = 1; i < data.length - 1; i++) {
|
tmp.push(data[i])
|
}
|
// console.log(tmp)
|
this.map = tmp
|
},
|
openSite(id) {
|
this.siteWindow = true; //打开站点信息弹窗
|
$(".detailed").empty();
|
$('.detailed').append(id + '站点详细信息');
|
$.ajax({
|
url: baseUrl + "/console/site/detail",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: {
|
siteId: id
|
},
|
method: 'post',
|
success: function(res) {
|
for (var val in res.data) {
|
var find = $("#siteWindow").find(":input[name='" + val + "']");
|
if (find[0].type === 'text') {
|
find.val(res.data[val]);
|
} else if (find[0].type === 'checkbox') {
|
find.attr("checked", res.data[val] === 'Y');
|
}
|
}
|
}
|
|
})
|
},
|
getSiteInfo() {
|
//获取输送站点数据
|
this.sendWs(JSON.stringify({
|
"url": "/console/latest/data/site",
|
"data": {}
|
}))
|
},
|
setSiteInfo(res) {
|
//获取输送站点数据
|
if (res.code === 200){
|
var sites = res.data;
|
for (var i = 0; i < sites.length; i++){
|
var siteEl = $("#site-"+sites[i].siteId);
|
siteEl.attr("class", "site " + sites[i].siteStatus);
|
if (sites[i].workNo != null && sites[i].workNo>0) {
|
siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
|
} else {
|
siteEl.html(sites[i].siteId);
|
}
|
}
|
} else if (res.code === 403){
|
parent.location.href = baseUrl+"/login";
|
} else {
|
console.log(res.msg);
|
}
|
},
|
changFloor(lev) {
|
this.currentLev = lev
|
this.currentLevShuttleList = []
|
this.getMap(lev)
|
},
|
getShuttleStateInfo() {
|
this.sendWs(JSON.stringify({
|
"url": "/shuttle/table/shuttle/state",
|
"data": {}
|
}))
|
},
|
setShuttleStateInfo(res) {
|
// 四向穿梭车信息表获取
|
let that = this
|
if (res.code == 200) {
|
let currentLevShuttle = []//当前楼层小车集合
|
res.data.forEach((item,idx) => {
|
if (item != null && item.point != undefined && item.point != null) {
|
if (item.point.z == that.currentLev) {
|
currentLevShuttle.push(item);
|
}
|
}
|
})
|
that.currentLevShuttleList = currentLevShuttle
|
that.shuttleList = res.data
|
|
if (that.shuttleColorList.length == 0) {
|
let colorList = []//随机小车颜色
|
res.data.forEach((item,idx) => {
|
colorList[item.shuttleNo] = that.colorRGB()
|
})
|
that.shuttleColorList = colorList
|
}
|
}
|
},
|
getLiftStateInfo() {
|
// 提升机信息表获取
|
this.sendWs(JSON.stringify({
|
"url": "/lift/table/lift/state",
|
"data": {}
|
}))
|
},
|
setLiftStateInfo(res) {
|
// 提升机信息表获取
|
if (res.code == 200) {
|
this.liftList = res.data
|
}
|
},
|
systemSwitch() {
|
// 系统开关
|
let that = this
|
if (this.systemStatus) {
|
this.$prompt('请输入口令,并停止WCS系统', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
}).then(({
|
value
|
}) => {
|
that.doSwitch(0, value)
|
}).catch(() => {
|
|
});
|
} else {
|
this.doSwitch(1)
|
}
|
},
|
doSwitch(operatorType, password) {
|
let that = this
|
$.ajax({
|
url: baseUrl + "/console/system/switch",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: {
|
operatorType: operatorType,
|
password: password
|
},
|
method: 'POST',
|
success: function(res) {
|
if (res.code === 200) {
|
if (res.data.status) {
|
$('#system-toggle-checked').attr("checked", true);
|
$('#system-run-desc').html("系统运行中...");
|
that.systemStatus = true;
|
parent.systemRunning = true;
|
} else {
|
$('#system-toggle-checked').attr("checked", false);
|
$('#system-run-desc').html("系统已停止!");
|
that.systemStatus = false;
|
parent.systemRunning = false;
|
}
|
} else if (res.code === 403) {
|
parent.location.href = baseUrl + "/login";
|
} else {
|
that.$message({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
},
|
getSystemRunningStatus() {
|
// 获取wcs系统运行状态
|
let that = this
|
$.ajax({
|
url: baseUrl + "/console/system/running/status",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
method: 'POST',
|
success: function(res) {
|
if (res.code === 200) {
|
if (res.data.status) {
|
$('#system-toggle-checked').attr("checked", true);
|
$('#system-run-desc').html("系统运行中...");
|
that.systemStatus = true;
|
parent.systemRunning = true;
|
} else {
|
$('#system-toggle-checked').attr("checked", false);
|
$('#system-run-desc').html("系统已停止!");
|
that.systemStatus = false;
|
parent.systemRunning = false;
|
}
|
} else if (res.code === 403) {
|
parent.location.href = baseUrl + "/login";
|
} else {
|
that.$message({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
},
|
getCarPosition(x,y) {
|
//计算四向穿梭车图标位置
|
let top = (x * 35 - 35) + "px" //需要减去小车自己所占高度
|
let left = (y * 35) + "px" //需要减去小车自己所占宽度
|
return [top,left];
|
},
|
testMove() {
|
let that = this
|
clearInterval(this.consoleInterval)//清理定时器
|
|
let shuttleList = this.currentLevShuttleList
|
$.ajax({
|
url: baseUrl + "/static/testMoveData.json",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
method: 'GET',
|
success: function(res) {
|
shuttleList[0].moveAdvancePath = res
|
that.currentLevShuttleList = shuttleList
|
|
let index = 0
|
let tmp = null
|
tmp = setInterval(() => {
|
if (index < res.length) {
|
that.currentLevShuttleList[0].wcsPoint.y = res[index].y
|
that.currentLevShuttleList[0].wcsPoint.x = res[index].x
|
index++
|
}else {
|
clearInterval(tmp)
|
that.init()
|
}
|
},1000)
|
}
|
});
|
},
|
colorRGB(){
|
//随机颜色
|
const r = Math.floor(Math.random()*256);
|
const g = Math.floor(Math.random()*256);
|
const b = Math.floor(Math.random()*256);
|
return `rgb(${r},${g},${b})`;
|
},
|
checkAdvancePath(x,y) {
|
//检测路径是否为穿梭车预计路径,如x和y路径是穿梭车预计路径,则返回小车号
|
this.currentLevShuttleList.forEach((item,idx) => {
|
if (item.moveAdvancePath != null) {
|
item.moveAdvancePath.forEach((path,index) => {
|
if (path.x === x && path.y === y) {
|
return item.shuttleNo;
|
}
|
})
|
}
|
})
|
let data = []
|
let shuttleList = this.currentLevShuttleList;
|
for (var i = 0; i < shuttleList.length; i++) {
|
let shuttle = shuttleList[i]
|
let moveAdvancePath = shuttle.moveAdvancePath
|
if (moveAdvancePath != null) {
|
for (var j = 0; j < moveAdvancePath.length; j++) {
|
let path = moveAdvancePath[j]
|
if (path.x-1 === x && path.y === y) {//路径符合
|
data.push(shuttle.shuttleNo)
|
continue;
|
}
|
}
|
}
|
}
|
return data;//返回小车号集合
|
},
|
resetMap() {
|
//重置地图
|
let that = this
|
$.ajax({
|
url:baseUrl+"/console/map/resetMap/" + this.currentLev,
|
headers:{
|
'token': localStorage.getItem('token')
|
},
|
data:{},
|
method:'get',
|
success:function (res) {
|
that.$message({
|
message: that.currentLev + '层地图重置完成',
|
type: 'success'
|
});
|
}
|
})
|
},
|
initLoc() {
|
//初始化库位
|
let that = this
|
$.ajax({
|
url:baseUrl+"/locMast/init",
|
headers:{
|
'token': localStorage.getItem('token')
|
},
|
data:{},
|
method:'post',
|
success:function (res) {
|
that.$message({
|
message: '初始化完成',
|
type: 'success'
|
});
|
}
|
})
|
},
|
getCodeData(){
|
this.sendWs(JSON.stringify({
|
"url": "/console/barcode/output/site",
|
"data": {}
|
}))
|
},
|
setCodeData(res) {
|
if(res.code === 200){
|
let data = JSON.parse(res.data)
|
if (data.length <= 5) {
|
this.codeList1 = data;
|
} else {
|
this.codeList1 = data.slice(0, 5);
|
this.codeList2 = data.splice(5, 10);
|
}
|
}
|
},
|
webSocketOnOpen(e) {
|
console.log("open");
|
},
|
webSocketOnError(e) {
|
console.log(e);
|
},
|
webSocketOnMessage(e) {
|
const result = JSON.parse(e.data);
|
if (result.url == "/shuttle/table/shuttle/state") {
|
this.setShuttleStateInfo(JSON.parse(result.data))
|
}else if (result.url == "/lift/table/lift/state") {
|
this.setLiftStateInfo(JSON.parse(result.data))
|
}else if (result.url == "/console/latest/data/site") {
|
this.setSiteInfo(JSON.parse(result.data))
|
}else if (result.url == "/console/map/auth") {
|
this.setMap(JSON.parse(result.data))
|
}else if (result.url == "/console/barcode/output/site") {
|
this.setCodeData(JSON.parse(result.data))
|
}
|
},
|
webSocketClose(e) {
|
console.log("close");
|
},
|
sendWs(message) {
|
if (this.ws.readyState == WebSocket.OPEN) {
|
this.ws.send(message)
|
}
|
}
|
}
|
})
|
</script>
|
</body>
|
</html>
|