Commit 1c2cf687 authored by 李志鸣's avatar 李志鸣

Merge branch 'dev' of git.vtstar.net:zhongtong/zhongtong-avi-web into dev

parents 1cfd91c0 61808aa1
......@@ -533,6 +533,10 @@
>
<p>{{query['HDG1-204'].busNo}}</p>
</div>
<!-- 实时车辆 -->
<div class="onlineNum">
<p>总量 <span>{{ this.onlineNum? this.onlineNum : '0' }}</span></p>
</div>
<Tooltip
ref="toolRef"
:query="BusInformation"
......@@ -553,10 +557,12 @@ export default {
},
data () {
return {
// 定时器
timer: null,
// 当前在线人数
onlineNum: null,
// 车体定位信息
busPosition: {},
// 车辆定位数据
carPostionInfo: {},
// 面色/漆作业区域实时信息
query: {},
// 根据车身号获得当前车体信息
......@@ -574,26 +580,25 @@ export default {
},
mounted () {
this.getComplexionPaintInformation();
this.pollingGetInterface();
},
beforeDestroy () {
clearInterval(this.timer);
},
methods: {
// 查询面色/漆作业区实时信息
// 获取面色/漆作业区实时信息
getComplexionPaintInformation () {
this.$fetch('area-controller/realTime-get', { areaNo: '6' })
.then(res => {
// console.log(res);
// this.query = _.cloneDeep(res);
for (let i = 0; i < res.length; i++) {
if (res[i].code === '6') {
console.log(res[i]);
this.query = _.cloneDeep(res[i].stationMap);
for (let item of res) {
if (item.code === '6') {
this.query = item.stationMap;
// 获取当前在线人数
this.onlineNum = _.clone(res[i].onlineNum);
console.log(this.onlineNum)
this.onlineNum = _.clone(item.onlineNum);
console.log(this.onlineNum);
break;
}
}
console.log(this.query);
})
.catch(error => {
reject(error);
......@@ -601,24 +606,16 @@ export default {
},
// 解析车体类型及车体定位样式
judgeCarTypeAndcarStationstyle (outOrIn, station) {
//根据车位编码Station 判断是否该车位已经被定位
// let stateTemp = _.cloneDeep(this.$route.query);
// console.log('aaa', stateTemp);
// this.$fetch('area-controller/busNo-get', {stateTemp}).then(res => {
// console.log(res);
// this.busPosition = _.cloneDeep(res);
// if (this.busPosition.hasOwnProperty(station)) {
// return 'isPositioned'
// } else {
if (outOrIn === 'OTHER') {
return 'carOutFactory';
// 判断有无车体定位信息
if (this.carPostionInfo.hasOwnProperty(station)) {
return 'isPositioned';
} else {
return '';
if (outOrIn === 'OTHER') {
return 'carOutFactory';
} else {
return '';
}
}
// }
// }).catch(error => {
// reject(error);
// })
},
clickBtn (busNub) {
console.log(busNub);
......@@ -637,6 +634,34 @@ export default {
.catch(error => {
reject(error);
});
},
// 查询车辆定位
getCarPostion () {
let queryParams = { orderNo: '1111', workOrderNo: '' };
// 请求接口
this.$fetch('area-controller/busNo-get', { queryParams }).then(
res => {
this.carPostionInfo = _.cloneDeep(res);
}
);
},
// 轮询请求接口
pollingGetInterface () {
// 查询车辆定位
console.log('2222', this.$route.query);
if (
this.$route.query.hasOwnProperty('orderNo') ||
this.$route.query.hasOwnProperty('workOrderNo')
) {
this.getCarPostion();
}
// 获取面色/漆作业区实时信息
this.getComplexionPaintInformation();
this.timer = setInterval(() => {
this.carPostionInfo = {};
// 获取面色/漆作业区实时信息
this.getComplexionPaintInformation();
}, 20000);
}
}
};
......@@ -646,6 +671,20 @@ export default {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.onlineNum {
position: absolute;
color: #ffffff;
z-index: 999;
right: 300px;
top: 50px;
color: #00b4ff;
font-size: 16px;
font-weight: 750;
span {
margin: 30px;
font-size: 24px;
}
}
.paint-content {
position: relative;
margin: 0 auto;
......@@ -730,7 +769,7 @@ export default {
.paint-row-13-3,
.paint-row-13-5 {
position: absolute;
width: 140px;
width: 100px;
height: 40px;
cursor: pointer;
background: url("../../../assets/images/Monitor/monitor_car.png")
......@@ -739,7 +778,7 @@ export default {
background-position: 0 16px;
p {
font-size: 14px;
font-size: 12px;
margin: 0;
color: #ffffff;
font-weight: bold;
......
......@@ -433,6 +433,10 @@
>
<p>{{query['HDG1-66'].busNo}}</p>
</div>
<!-- 实时车辆 -->
<div class="onlineNum">
<p>总量 <span>{{ this.onlineNum? this.onlineNum : '0' }}</span></p>
</div>
<Tooltip
ref="toolRef"
:query="BusInformation"
......@@ -449,57 +453,63 @@ export default {
},
data () {
return {
//定时器
timer: null,
// 车辆定位数据
carPostionInfo: {},
// 当前在线人数
onlineNum: null,
// 车体定位信息
busPosition: {},
// 电泳作业区域实时信息
query: {},
// 根据车身号获得当前车体信息
BusInformation: {
'saleOrderNo': '201905201252',
'planOrderNo': '83848484',
'code': 'EDSCSFDGVG',
'busType': 'car',
'orderSize': '20',
'unit': 'From China',
'shop': '二号车间',
'line': '4-25'
saleOrderNo: '201905201252',
planOrderNo: '83848484',
code: 'EDSCSFDGVG',
busType: 'car',
orderSize: '20',
unit: 'From China',
shop: '二号车间',
line: '4-25'
}
};
},
mounted () {
this.getElectrophoresisInformation();
console.log(this.$route)
this.pollingGetInterface();
console.log('2222', this.timer);
},
beforeDestroy () {
clearInterval(this.timer);
},
methods: {
// 点击车位弹出车体信息
clickBtn (row) {
console.log(row)
console.log(row);
this.$refs.toolRef.$refs.tooltip.style.visibility = 'visible';
let left = window.event.clientX;
let top = window.event.clientY;
this.$refs.toolRef.$refs.tooltip.style.top = top - 100 + 'px';
this.$refs.toolRef.$refs.tooltip.style.left = left - 100 + 'px';
this.$fetch('area-controller/busNo-get', {busNo: row}).then(res => {
console.log('res', res);
// this.BusInformation = _.cloneDeep(res);
}).catch(error => {
reject(error)
})
this.$fetch('area-controller/busNo-get', { busNo: row })
.then(res => {
console.log('res', res);
// this.BusInformation = _.cloneDeep(res);
})
.catch(error => {
reject(error);
});
},
// 查询电泳实时信息
getElectrophoresisInformation () {
this.$fetch('area-controller/realTime-get', { areaNo: '2' })
.then(res => {
console.log('getall', res);
for (let i = 0; i < res.length; i++) {
if (res[i].code === '2') {
console.log(res[i]);
this.query = _.cloneDeep(res[i].stationMap);
for (let item of res) {
if (item.code === '2') {
this.query = item.stationMap;
// 获取当前在线人数
this.onlineNum = _.clone(res[i].onlineNum);
console.log(this.onlineNum)
this.onlineNum = _.clone(item.onlineNum);
console.log(this.onlineNum);
break;
}
}
})
......@@ -509,24 +519,43 @@ export default {
},
// 解析车体类型及车体定位样式
judgeCarTypeAndcarStationstyle (outOrIn, station) {
//根据车位编码Station 判断是否该车位已经被定位
// let stateTemp = _.cloneDeep(this.$route.query);
// console.log('aaa', stateTemp);
// this.$fetch('area-controller/busNo-get', {stateTemp}).then(res => {
// console.log(res);
// this.busPosition = _.cloneDeep(res);
// if (this.busPosition.hasOwnProperty(station)) {
// return 'isPositioned'
// } else {
if (outOrIn === 'OTHER') {
return 'carOutFactory';
// 判断有无车体定位信息
if (this.carPostionInfo.hasOwnProperty(station)) {
return 'isPositioned';
} else {
return '';
if (outOrIn === 'OTHER') {
return 'carOutFactory';
} else {
return '';
}
}
// }
// }).catch(error => {
// reject(error);
// })
},
// 查询车辆定位
getCarPostion () {
let queryParams = { orderNo: '1111', workOrderNo: '' };
// 请求接口
this.$fetch('area-controller/busNo-get', { queryParams }).then(
res => {
this.carPostionInfo = _.cloneDeep(res);
}
);
},
// 轮询请求接口
pollingGetInterface () {
// 查询车辆定位
if (
this.$route.query.hasOwnProperty('orderNo') ||
this.$route.query.hasOwnProperty('workOrderNo')
) {
this.getCarPostion();
}
// 获取电泳作业区实时信息
this.getElectrophoresisInformation();
this.timer = setInterval(() => {
this.carPostionInfo = {};
// 获取电泳作业区实时信息
this.getElectrophoresisInformation();
}, 20000);
}
}
};
......@@ -536,13 +565,27 @@ export default {
.page-pack {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.onlineNum {
position: absolute;
color: #ffffff;
z-index: 999;
right: 300px;
top: 50px;
color: #00b4ff;
font-size: 16px;
font-weight: 750;
span {
margin: 30px;
font-size: 24px;
}
}
.elect-content {
position: relative;
margin: 0 auto;
width: 1600px;
height: 900px;
background: url("../../../assets/images/Monitor/monitor_electrophoresis.png") no-repeat;
background: url("../../../assets/images/Monitor/monitor_electrophoresis.png")
no-repeat;
.elect-row-1-1,
.elect-row-1-2,
.elect-row-1-3,
......@@ -596,7 +639,7 @@ export default {
.elect-row-13-4,
.elect-row-13-5 {
position: absolute;
width: 140px;
width: 100px;
height: 40px;
cursor: pointer;
background: url("../../../assets/images/Monitor/monitor_car.png")
......@@ -605,7 +648,7 @@ export default {
background-position: 0 16px;
p {
font-size: 14px;
font-size: 12px;
margin: 0;
color: #ffffff;
font-weight: bold;
......@@ -815,7 +858,8 @@ export default {
.elect-row-13-2 {
left: 708px;
}
.elect-row-8-4,.elect-row-9-5 {
.elect-row-8-4,
.elect-row-9-5 {
left: 830px;
}
.carOutFactory {
......
......@@ -3,172 +3,391 @@
<div class="page-pack">
<div class="container-pack">
<!-- 第一行 -->
<div class="finished-row-1-1">
<p>CDA213</p>
<div
class="finished-row-1-1"
@click="clickBtn(query['HDG1-147'].busNo)"
v-if="query.hasOwnProperty('HDG1-147') && query['HDG1-147'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-147'].busType, 'HDG1-147')"
>
<p>{{query['HDG1-147'].busNo}}</p>
</div>
<div class="finished-row-1-2">
<p>CDA213</p>
<div
class="finished-row-1-2"
@click="clickBtn(query['HDG1-163'].busNo)"
v-if="query.hasOwnProperty('HDG1-163') && query['HDG1-163'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-163'].busType, 'HDG1-163')"
>
<p>{{query['HDG1-163'].busNo}}</p>
</div>
<div class="finished-row-1-3">
<p>CDA213</p>
<div
class="finished-row-1-3"
@click="clickBtn(query['HDG1-205'].busNo)"
v-if="query.hasOwnProperty('HDG1-205') && query['HDG1-205'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-205'].busType, 'HDG1-205')"
>
<p>{{query['HDG1-205'].busNo}}</p>
</div>
<div class="finished-row-1-4">
<p>CDA213</p>
<div
class="finished-row-1-4"
@click="clickBtn(query['HDG1-206'].busNo)"
v-if="query.hasOwnProperty('HDG1-206') && query['HDG1-206'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-206'].busType, 'HDG1-206')"
>
<p>{{query['HDG1-206'].busNo}}</p>
</div>
<div class="finished-row-1-5">
<p>CDA213</p>
<div
class="finished-row-1-5"
@click="clickBtn(query['HDG1-207'].busNo)"
v-if="query.hasOwnProperty('HDG1-207') && query['HDG1-207'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-207'].busType, 'HDG1-207')"
>
<p>{{query['HDG1-207'].busNo}}</p>
</div>
<!-- 第二行 -->
<div class="finished-row-2-1">
<p>CDA213</p>
<div
class="finished-row-2-1"
@click="clickBtn(query['HDG1-148'].busNo)"
v-if="query.hasOwnProperty('HDG1-148') && query['HDG1-148'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-148'].busType, 'HDG1-148')"
>
<p>{{query['HDG1-148'].busNo}}</p>
</div>
<div class="finished-row-2-2">
<p>CDA213</p>
<div
class="finished-row-2-2"
@click="clickBtn(query['HDG1-164'].busNo)"
v-if="query.hasOwnProperty('HDG1-164') && query['HDG1-164'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-164'].busType, 'HDG1-164')"
>
<p>{{query['HDG1-164'].busNo}}</p>
</div>
<div class="finished-row-2-3">
<p>CDA213</p>
<div
class="finished-row-2-3"
@click="clickBtn(query['HDG1-208'].busNo)"
v-if="query.hasOwnProperty('HDG1-208') && query['HDG1-208'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-208'].busType, 'HDG1-208')"
>
<p>{{query['HDG1-208'].busNo}}</p>
</div>
<div class="finished-row-2-4">
<p>CDA213</p>
<div
class="finished-row-2-4"
@click="clickBtn(query['HDG1-209'].busNo)"
v-if="query.hasOwnProperty('HDG1-209') && query['HDG1-209'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-209'].busType, 'HDG1-209')"
>
<p>{{query['HDG1-209'].busNo}}</p>
</div>
<div class="finished-row-2-5">
<p>CDA213</p>
<div
class="finished-row-2-5"
@click="clickBtn(query['HDG1-210'].busNo)"
v-if="query.hasOwnProperty('HDG1-210') && query['HDG1-210'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-210'].busType, 'HDG1-210')"
>
<p>{{query['HDG1-210'].busNo}}</p>
</div>
<!-- 第三行 -->
<div class="finished-row-3-1">
<p>CDA213</p>
<div
class="finished-row-3-1"
@click="clickBtn(query['HDG1-149'].busNo)"
v-if="query.hasOwnProperty('HDG1-149') && query['HDG1-149'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-149'].busType, 'HDG1-149')"
>
<p>{{query['HDG1-149'].busNo}}</p>
</div>
<div class="finished-row-3-2">
<p>CDA213</p>
<div
class="finished-row-3-2"
@click="clickBtn(query['HDG1-165'].busNo)"
v-if="query.hasOwnProperty('HDG1-165') && query['HDG1-165'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-165'].busType, 'HDG1-165')"
>
<p>{{query['HDG1-165'].busNo}}</p>
</div>
<div class="finished-row-3-3">
<p>CDA213</p>
<div
class="finished-row-3-3"
@click="clickBtn(query['HDG1-211'].busNo)"
v-if="query.hasOwnProperty('HDG1-211') && query['HDG1-211'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-211'].busType, 'HDG1-211')"
>
<p>{{query['HDG1-211'].busNo}}</p>
</div>
<div class="finished-row-3-4">
<p>CDA213</p>
<div
class="finished-row-3-4"
@click="clickBtn(query['HDG1-212'].busNo)"
v-if="query.hasOwnProperty('HDG1-212') && query['HDG1-212'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-212'].busType, 'HDG1-212')"
>
<p>{{query['HDG1-212'].busNo}}</p>
</div>
<div class="finished-row-3-5">
<p>CDA213</p>
<div
class="finished-row-3-5"
@click="clickBtn(query['HDG1-213'].busNo)"
v-if="query.hasOwnProperty('HDG1-213') && query['HDG1-213'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-213'].busType, 'HDG1-213')"
>
<p>{{query['HDG1-213'].busNo}}</p>
</div>
<!-- 涂装车出 -->
<div class="paint-car-out">
<p>CDA213</p>
<div
class="paint-car-out"
@click="clickBtn(query['HXG2-1'].busNo)"
v-if="query.hasOwnProperty('HXG2-1') && query['HXG2-1'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HXG2-1'].busType, 'HXG2-1')"
>
<p>{{query['HXG2-1'].busNo}}</p>
</div>
</div>
<!-- 实时车辆 -->
<div class="onlineNum">
<p>总量 <span>{{ this.onlineNum? this.onlineNum : '0' }}</span></p>
</div>
<Tooltip
ref="toolRef"
:query="BusInformation"
></Tooltip>
</div>
</template>
<script>
export default {
data () {
return {}
import Tooltip from './Tooltip';
export default {
components: {
Tooltip
},
data () {
return {
// 成品车作业区实时信息
query: {},
// 轮询定时器
timer: {},
// 当前在线人数
onlineNum: null,
// 车辆定位数据
carPostionInfo: {},
// 根据车身号获得当前车体信息
BusInformation: {
saleOrderNo: '2019-10-11 11:09',
planOrderNo: '83848484',
code: 'EDSCSFDGVG',
busType: 'car',
orderSize: '2222222255555550',
unit: 'From China',
shop: '二号车间',
line: '4-25'
}
};
},
mounted () {
this.pollingGetInterface();
},
beforeDestroy () {
clearInterval(this.timer);
},
methods: {
// 获取成品车作业区实时信息
getFinishedCarInformation () {
this.$fetch('area-controller/realTime-get', { areaNo: '7' }).then(
res => {
console.log(res);
for (let item of res) {
if (item.code === '7') {
this.query = item.stationMap;
// 获取当前在线人数
this.onlineNum = _.clone(item.onlineNum);
console.log(this.onlineNum);
break;
}
}
}
);
},
// 点击车位弹出车体信息
clickBtn (row) {
console.log(row);
this.$refs.toolRef.$refs.tooltip.style.visibility = 'visible';
let left = window.event.clientX;
let top = window.event.clientY;
this.$refs.toolRef.$refs.tooltip.style.top = top - 100 + 'px';
this.$refs.toolRef.$refs.tooltip.style.left = left - 100 + 'px';
this.$fetch('area-controller/busNo-get', { busNo: row })
.then(res => {
console.log('res', res);
})
.catch(error => {
reject(error);
});
},
// 解析车体类型及车体定位样式
judgeCarTypeAndcarStationstyle (outOrIn, station) {
// 判断有无车体定位信息
if (this.carPostionInfo.hasOwnProperty(station)) {
return 'isPositioned';
} else {
if (outOrIn === 'OTHER') {
return 'carOutFactory';
} else {
return '';
}
}
},
// 查询车辆定位
getCarPostion () {
let queryParams = { orderNo: '1111', workOrderNo: '' };
// 请求接口
this.$fetch('area-controller/busNo-get', { queryParams }).then(
res => {
this.carPostionInfo = _.cloneDeep(res);
}
);
},
// 轮询请求接口
pollingGetInterface () {
// 查询车辆定位
if (
this.$route.query.hasOwnProperty('orderNo') ||
this.$route.query.hasOwnProperty('workOrderNo')
) {
this.getCarPostion();
}
// 获取成品车作业区实时信息
this.getFinishedCarInformation();
this.timer = setInterval(() => {
this.carPostionInfo = {};
// 获取成品车作业区实时信息
this.getFinishedCarInformation();
}, 20000);
}
}
};
</script>
<style lang="scss" scoped>
.page-pack {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.container-pack {
position: relative;
margin: 0 auto;
width: 1600px;
height: 900px;
background: url("../../../assets/images/Monitor/monitor_finished_car.png");
.page-pack {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.onlineNum {
position: absolute;
color: #ffffff;
z-index: 999;
right: 300px;
top: 50px;
color: #00b4ff;
font-size: 16px;
font-weight: 750;
span {
margin: 30px;
font-size: 24px;
}
}
.container-pack {
position: relative;
margin: 0 auto;
width: 1600px;
height: 900px;
background: url("../../../assets/images/Monitor/monitor_finished_car.png");
div {
position: absolute;
width: 140px;
height: 50px;
cursor: pointer;
background: url('../../../assets/images/Monitor/monitor_car.png') no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
div {
position: absolute;
width: 140px;
height: 50px;
cursor: pointer;
background: url("../../../assets/images/Monitor/monitor_car.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
p {
font-size: 14px;
margin: 0;
color: #ffffff;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
p {
font-size: 14px;
margin: 0;
color: #ffffff;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
// 第一行
.finished-row-1-1 {
top: 395px;
left: 200px;
}
.finished-row-1-2 {
top: 395px;
left: 365px;
}
.finished-row-1-3 {
top: 395px;
left: 680px;
}
.finished-row-1-4 {
top: 395px;
left: 830px;
}
.finished-row-1-5 {
top: 395px;
left: 1010px;
}
// 第一行
.finished-row-1-1 {
top: 395px;
left: 200px;
}
.finished-row-1-2 {
top: 395px;
left: 365px;
}
.finished-row-1-3 {
top: 395px;
left: 680px;
}
.finished-row-1-4 {
top: 395px;
left: 830px;
}
.finished-row-1-5 {
top: 395px;
left: 1010px;
}
// 第二行
.finished-row-2-1 {
top: 442px;
left: 200px;
}
.finished-row-2-2 {
top: 442px;
left: 365px;
}
.finished-row-2-3 {
top: 442px;
left: 680px;
}
.finished-row-2-4 {
top: 442px;
left: 830px;
}
.finished-row-2-5 {
top: 442px;
left: 1010px;
}
// 第二行
.finished-row-2-1 {
top: 442px;
left: 200px;
}
.finished-row-2-2 {
top: 442px;
left: 365px;
}
.finished-row-2-3 {
top: 442px;
left: 680px;
}
.finished-row-2-4 {
top: 442px;
left: 830px;
}
.finished-row-2-5 {
top: 442px;
left: 1010px;
}
// 第三行
.finished-row-3-1 {
top: 495px;
left: 200px;
}
.finished-row-3-2 {
top: 495px;
left: 365px;
}
.finished-row-3-3 {
top: 495px;
left: 680px;
}
.finished-row-3-4 {
top: 495px;
left: 830px;
}
.finished-row-3-5 {
top: 495px;
left: 1010px;
}
// 第三行
.finished-row-3-1 {
top: 495px;
left: 200px;
}
.finished-row-3-2 {
top: 495px;
left: 365px;
}
.finished-row-3-3 {
top: 495px;
left: 680px;
}
.finished-row-3-4 {
top: 495px;
left: 830px;
}
.finished-row-3-5 {
top: 495px;
left: 1010px;
}
// 涂装车出
.paint-car-out {
top: 435px;
left: 1325px;
}
// 涂装车出
.paint-car-out {
top: 435px;
left: 1325px;
}
.carOutFactory {
background: url("../../../assets/images/Monitor/monitor_car_external.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
.isPositioned {
background: url("../../../assets/images/Monitor/monitor_position_car.gif")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
}
}
</style>
<template>
<div class="page-body">
<div class="coat-content">
<div class="coat-row-1-1">
<p>CDA23323</p>
<div
class="coat-row-1-1"
@click="clickBtn(query['HDG1-115'].busNo)"
v-if="query.hasOwnProperty('HDG1-115') && query['HDG1-115'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-115'].busType, 'HDG1-115')"
>
<p>{{query['HDG1-115'].busNo}}</p>
</div>
<div class="coat-row-1-2">
<p>CDA2333</p>
<div
class="coat-row-1-2"
@click="clickBtn(query['HDG1-116'].busNo)"
v-if="query.hasOwnProperty('HDG1-116') && query['HDG1-116'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-116'].busType, 'HDG1-116')"
>
<p>{{query['HDG1-116'].busNo}}</p>
</div>
<div class="coat-row-1-3">
<p>CDA23</p>
<div
class="coat-row-1-3"
@click="clickBtn(query['HDG1-117'].busNo)"
v-if="query.hasOwnProperty('HDG1-117') && query['HDG1-117'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-117'].busType, 'HDG1-117')"
>
<p>{{query['HDG1-117']}}</p>
</div>
<div class="coat-row-1-4">
<p>CDA2</p>
<div
class="coat-row-1-4"
@click="clickBtn(query['HDG1-118'].busNo)"
v-if="query.hasOwnProperty('HDG1-118') && query['HDG1-118'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-118'].busType, 'HDG1-118')"
>
<p>{{query['HDG1-118']}}</p>
</div>
<div class="coat-row-1-5">
<p>CDA231312</p>
<div
class="coat-row-1-5"
@click="clickBtn(query['HDG1-119'].busNo)"
v-if="query.hasOwnProperty('HDG1-119') && query['HDG1-119'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-119'].busType, 'HDG1-119')"
>
<p>{{query['HDG1-119'].busNo}}</p>
</div>
<!-- 第二行 -->
<div class="coat-row-2-1">
<p>CDA23323</p>
<div
class="coat-row-2-1"
@click="clickBtn(query['HDG1-120'].busNo)"
v-if="query.hasOwnProperty('HDG1-120') && query['HDG1-120'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-120'].busType, 'HDG1-120')"
>
<p>{{query['HDG1-120'].busNo}}</p>
</div>
<div class="coat-row-2-2">
<p>CDA2333</p>
<div
class="coat-row-2-2"
@click="clickBtn(query['HDG1-121'].busNo)"
v-if="query.hasOwnProperty('HDG1-121') && query['HDG1-121'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-121'].busType, 'HDG1-121')"
>
<p>{{query['HDG1-121'].busNo}}</p>
</div>
<div class="coat-row-2-3">
<p>CDA23</p>
<div
class="coat-row-2-3"
@click="clickBtn(query['HDG1-122'].busNo)"
v-if="query.hasOwnProperty('HDG1-122') && query['HDG1-122'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-122'].busType, 'HDG1-122')"
>
<p>{{query['HDG1-122'].busNo}}</p>
</div>
<div class="coat-row-2-4">
<p>CDA2</p>
<div
class="coat-row-2-4"
@click="clickBtn(query['HDG1-123'].busNo)"
v-if="query.hasOwnProperty('HDG1-123') && query['HDG1-123'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-123'].busType, 'HDG1-123')"
>
<p>{{query['HDG1-123'].busNo}}</p>
</div>
<div class="coat-row-2-5">
<p>CDA231312</p>
<div
class="coat-row-2-5"
@click="clickBtn(query['HDG1-124'].busNo)"
v-if="query.hasOwnProperty('HDG1-124') && query['HDG1-124'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-124'].busType, 'HDG1-124')"
>
<p>{{query['HDG1-124'].busNo}}</p>
</div>
<div class="coat-row-2-6">
<p>CDA231312</p>
<div
class="coat-row-2-6"
@click="clickBtn(query['HDG5-18'].busNo)"
v-if="query.hasOwnProperty('HDG5-18') && query['HDG5-18'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-18'].busType, 'HDG5-18')"
>
<p>{{query['HDG5-18']}}</p>
</div>
<!-- 第三行 -->
<div class="coat-row-3-1">
<p>CDA23323</p>
<div
class="coat-row-3-1"
@click="clickBtn(query['HDG1-125'].busNo)"
v-if="query.hasOwnProperty('HDG1-125') && query['HDG1-125'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-125'].busType, 'HDG1-125')"
>
<p>{{query['HDG1-125'].busNo}}</p>
</div>
<div class="coat-row-3-2">
<p>CDA2333</p>
<div
class="coat-row-3-2"
@click="clickBtn(query['HDG1-126'].busNo)"
v-if="query.hasOwnProperty('HDG1-126') && query['HDG1-126'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-126'].busType, 'HDG1-126')"
>
<p>{{query['HDG1-126'].busNo}}</p>
</div>
<div class="coat-row-3-3">
<p>CDA23</p>
<div
class="coat-row-3-3"
@click="clickBtn(query['HDG1-127'].busNo)"
v-if="query.hasOwnProperty('HDG1-127') && query['HDG1-127'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-127'].busType, 'HDG1-127')"
>
<p>{{query['HDG1-127'].busNo}}</p>
</div>
<div class="coat-row-3-4">
<p>CDA2</p>
<div
class="coat-row-3-4"
@click="clickBtn(query['HDG1-128'].busNo)"
v-if="query.hasOwnProperty('HDG1-128') && query['HDG1-128'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-128'].busType, 'HDG1-128')"
>
<p>{{query['HDG1-128'].busNo}}</p>
</div>
<div class="coat-row-3-5">
<p>CDA231312</p>
<div
class="coat-row-3-5"
@click="clickBtn(query['HDG1-129'].busNo)"
v-if="query.hasOwnProperty('HDG1-129') && query['HDG1-129'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-129'].busType, 'HDG1-129')"
>
<p>{{query['HDG1-129'].busNo}}</p>
</div>
<div class="coat-row-3-6">
<p>CDA231312</p>
<div
class="coat-row-3-6"
@click="clickBtn(query['HDG5-19'].busNo)"
v-if="query.hasOwnProperty('HDG5-19') && query['HDG5-19'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-19'].busType, 'HDG5-19')"
>
<p>{{query['HDG5-19'].busNo}}</p>
</div>
<!-- 第四行 -->
<div class="coat-row-4-1">
<p>CDA23323</p>
<div
class="coat-row-4-1"
@click="clickBtn(query['HDG1-130'].busNo)"
v-if="query.hasOwnProperty('HDG1-130') && query['HDG1-130'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-130'].busType, 'HDG1-130')"
>
<p>{{query['HDG1-130'].busNo}}</p>
</div>
<div class="coat-row-4-2">
<p>CDA2333</p>
<div
class="coat-row-4-2"
@click="clickBtn(query['HDG1-131'].busNo)"
v-if="query.hasOwnProperty('HDG1-131') && query['HDG1-131'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-131'].busType, 'HDG1-131')"
>
<p>{{query['HDG1-131'].busNo}}</p>
</div>
<div class="coat-row-4-3">
<p>CDA23</p>
<div
class="coat-row-4-3"
@click="clickBtn(query['HDG1-132'].busNo)"
v-if="query.hasOwnProperty('HDG1-132') && query['HDG1-132'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-132'].busType, 'HDG1-132')"
>
<p>{{query['HDG1-132'].busNo}}</p>
</div>
<div class="coat-row-4-4">
<p>CDA2</p>
<div
class="coat-row-4-4"
@click="clickBtn(query['HDG1-133'].busNo)"
v-if="query.hasOwnProperty('HDG1-133') && query['HDG1-133'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-133'].busType, 'HDG1-133')"
>
<p>{{query['HDG1-133'].busNo}}</p>
</div>
<div class="coat-row-4-5">
<p>CDA231312</p>
<div
class="coat-row-4-5"
@click="clickBtn(query['HDG5-20'].busNo)"
v-if="query.hasOwnProperty('HDG5-20') && query['HDG5-20'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-20'].busType, 'HDG5-20')"
>
<p>{{query['HDG5-20'].busNo}}</p>
</div>
<!-- 实时车辆 -->
<div class="onlineNum">
<p>总量 <span>{{ this.onlineNum? this.onlineNum : '0' }}</span></p>
</div>
</div>
<Tooltip
ref="toolRef"
:query="BusInformation"
></Tooltip>
</div>
</template>
<script>
......@@ -78,27 +196,141 @@
* @author MARS 2019-09-28 <wangyunfan@vtstar.net>
* @fileoverview 中涂作业区
*/
import Tooltip from './Tooltip';
export default {
components: {
Tooltip
},
data () {
return {}
return {
// 中涂作业区实时信息
query: {},
// 轮询定时器
timer: {},
// 当前在线人数
onlineNum: null,
// 车辆定位数据
carPostionInfo: {},
// 根据车身号获得当前车体信息
BusInformation: {
saleOrderNo: '2019-10-11 11:09',
planOrderNo: '83848484',
code: 'EDSCSFDGVG',
busType: 'car',
orderSize: '2222222255555550',
unit: 'From China',
shop: '二号车间',
line: '4-25'
}
};
},
mounted () {},
methods: {}
}
mounted () {
this.pollingGetInterface();
},
beforeDestroy () {
clearInterval(this.timer);
},
methods: {
// 获取中涂作业区实时信息
getMiddleCoatInformation () {
this.$fetch('area-controller/realTime-get', { areaNo: '5' }).then(
res => {
for (let item of res) {
if (item.code === '5') {
this.query = item.stationMap;
// 获取当前在线人数
this.onlineNum = _.clone(item.onlineNum);
console.log(this.onlineNum);
break;
}
}
}
);
},
// 点击车位弹出车体信息
clickBtn (row) {
console.log(row);
this.$refs.toolRef.$refs.tooltip.style.visibility = 'visible';
let left = window.event.clientX;
let top = window.event.clientY;
this.$refs.toolRef.$refs.tooltip.style.top = top - 100 + 'px';
this.$refs.toolRef.$refs.tooltip.style.left = left - 100 + 'px';
this.$fetch('area-controller/busNo-get', { busNo: row })
.then(res => {
console.log('res', res);
})
.catch(error => {
reject(error);
});
},
// 解析车体类型及车体定位样式
judgeCarTypeAndcarStationstyle (outOrIn, station) {
// 判断有无车体定位信息
if (this.carPostionInfo.hasOwnProperty(station)) {
return 'isPositioned';
} else {
if (outOrIn === 'OTHER') {
return 'carOutFactory';
} else {
return '';
}
}
},
// 查询车辆定位
getCarPostion () {
let queryParams = { orderNo: '1111', workOrderNo: '' };
// 请求接口
this.$fetch('area-controller/busNo-get', { queryParams }).then(
res => {
this.carPostionInfo = _.cloneDeep(res);
}
);
},
// 轮询请求接口
pollingGetInterface () {
// 查询车辆定位
if (
this.$route.query.hasOwnProperty('orderNo') ||
this.$route.query.hasOwnProperty('workOrderNo')
) {
this.getCarPostion();
}
// 获取电泳作业区实时信息
this.getMiddleCoatInformation();
this.timer = setInterval(() => {
this.carPostionInfo = {};
// 获取电泳作业区实时信息
this.getMiddleCoatInformation();
}, 20000);
}
}
};
</script>
<style lang="scss" scoped>
.page-body {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.onlineNum {
position: absolute;
color: #ffffff;
z-index: 999;
right: 300px;
top: 50px;
color: #00b4ff;
font-size: 16px;
font-weight: 750;
span {
margin: 30px;
font-size: 24px;
}
}
.coat-content {
position: relative;
margin: 0 auto;
width: 1600px;
height: 900px;
background: url('../../../assets/images/Monitor/coat-bg.png') no-repeat;
background: url("../../../assets/images/Monitor/coat-bg.png") no-repeat;
.coat-row-1-1,
.coat-row-1-2,
......@@ -123,15 +355,16 @@ export default {
.coat-row-4-4,
.coat-row-4-5 {
position: absolute;
width: 140px;
width: 100px;
height: 50px;
cursor: pointer;
background: url('../../../assets/images/Monitor/monitor_car.png') no-repeat;
background: url("../../../assets/images/Monitor/monitor_car.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
p {
font-size: 14px;
font-size: 12px;
margin: 0;
color: #ffffff;
font-weight: bold;
......@@ -232,6 +465,18 @@ export default {
top: 603px;
left: 1260px;
}
.carOutFactory {
background: url("../../../assets/images/Monitor/monitor_car_external.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
.isPositioned {
background: url("../../../assets/images/Monitor/monitor_position_car.gif")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
}
}
</style>
<template>
<div class="page-body">
<div class="putty-content">
<div class="putty-row-1-1">
<p>CDA233231231231321312</p>
<div
class="putty-row-1-1"
@click="clickBtn(query['HDG1-95'].busNo)"
v-if="query.hasOwnProperty('HDG1-95') && query['HDG1-95'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-95'].busType, 'HDG1-95')"
>
<p>{{ query['HDG1-95'].busNo }}</p>
</div>
<div class="putty-row-1-2">
<p>CDA213</p>
<div
class="putty-row-1-2"
@click="clickBtn(query['HDG1-96'].busNo)"
v-if="query.hasOwnProperty('HDG1-96') && query['HDG1-96'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-96'].busType, 'HDG1-96')"
>
<p>{{query['HDG1-96'].busNo}}</p>
</div>
<div class="putty-row-1-3">
<p>CDA213</p>
<div
class="putty-row-1-3"
@click="clickBtn(query['HDG1-97'].busNo)"
v-if="query.hasOwnProperty('HDG1-97') && query['HDG1-97'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-97'].busType, 'HDG1-97')"
>
<p>{{query['HDG1-97'].busNo}}</p>
</div>
<div class="putty-row-1-4">
<p>CDA213</p>
<div
class="putty-row-1-4"
@click="clickBtn(query['HDG1-98'].busNo)"
v-if="query.hasOwnProperty('HDG1-98') && query['HDG1-98'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-98'].busType, 'HDG1-98')"
>
<p>{{query['HDG1-98'].busNo}}</p>
</div>
<div class="putty-row-1-5">
<p>CDA213</p>
<div
class="putty-row-1-5"
@click="clickBtn(query['HDG1-99'].busNo)"
v-if="query.hasOwnProperty('HDG1-99') && query['HDG1-99'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-99'].busType, 'HDG1-99')"
>
<p>{{query['HDG1-99'].busNo}}</p>
</div>
<div class="putty-row-1-6">
<p>CDA213</p>
<div
class="putty-row-1-6"
@click="clickBtn(query['HDG5-13'].busNo)"
v-if="query.hasOwnProperty('HDG5-13') && query['HDG5-13'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-13'].busType, 'HDG5-13')"
>
<p>{{query['HDG5-13'].busNo}}</p>
</div>
<div class="putty-row-2-1">
<p>CDA213</p>
<div
class="putty-row-2-1"
@click="clickBtn(query['HDG1-100'].busNo)"
v-if="query.hasOwnProperty('HDG1-100') && query['HDG1-100'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-100'].busType, 'HDG1-100')"
>
<p>{{query['HDG1-100'].busNo}}</p>
</div>
<div class="putty-row-2-2">
<p>CDA213</p>
<div
class="putty-row-2-2"
@click="clickBtn(query['HDG1-101'].busNo)"
v-if="query.hasOwnProperty('HDG1-101') && query['HDG1-101'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-101'].busType, 'HDG1-101')"
>
<p>{{query['HDG1-101'].busNo}}</p>
</div>
<div class="putty-row-2-3">
<p>CDA213</p>
<div
class="putty-row-2-3"
@click="clickBtn(query['HDG1-102'].busNo)"
v-if="query.hasOwnProperty('HDG1-102') && query['HDG1-102'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-102'].busType, 'HDG1-102')"
>
<p>{{query['HDG1-102'].busNo}}</p>
</div>
<div class="putty-row-2-4">
<p>CDA213</p>
<div
class="putty-row-2-4"
@click="clickBtn(query['HDG1-103'].busNo)"
v-if="query.hasOwnProperty('HDG1-103') && query['HDG1-103'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-103'].busType, 'HDG1-103')"
>
<p>{{query['HDG1-103'].busNo}}</p>
</div>
<div class="putty-row-2-5">
<p>CDA213</p>
<div
class="putty-row-2-5"
@click="clickBtn(query['HDG1-104'].busNo)"
v-if="query.hasOwnProperty('HDG1-104') && query['HDG1-104'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-104'].busType, 'HDG1-104')"
>
<p>{{query['HDG1-104'].busNo}}</p>
</div>
<div class="putty-row-2-6">
<p>CDA213</p>
<div
class="putty-row-2-6"
@click="clickBtn(query['HDG5-14'].busNo)"
v-if="query.hasOwnProperty('HDG5-14') && query['HDG5-14'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-14'].busType, 'HDG5-14')"
>
<p>{{query['HDG5-14'].busNo}}</p>
</div>
<div class="putty-row-3-1">
<p>CDA213</p>
<div
class="putty-row-3-1"
@click="clickBtn(query['HDG1-105'].busNo)"
v-if="query.hasOwnProperty('HDG1-105') && query['HDG1-105'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-105'].busType, 'HDG1-105')"
>
<p>{{query['HDG1-105'].busNo}}</p>
</div>
<div class="putty-row-3-2">
<p>CDA213</p>
<div
class="putty-row-3-2"
@click="clickBtn(query['HDG1-106'].busNo)"
v-if="query.hasOwnProperty('HDG1-106') && query['HDG1-106'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-106'].busType, 'HDG1-106')"
>
<p>{{query['HDG1-106']}}</p>
</div>
<div class="putty-row-3-3">
<p>CDA213</p>
<div
class="putty-row-3-3"
@click="clickBtn(query['HDG1-107'].busNo)"
v-if="query.hasOwnProperty('HDG1-107') && query['HDG1-107'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-107'].busType, 'HDG1-107')"
>
<p>{{query['HDG1-107'].busNo}}</p>
</div>
<div class="putty-row-3-4">
<p>CDA213</p>
<div
class="putty-row-3-4"
@click="clickBtn(query['HDG1-108'].busNo)"
v-if="query.hasOwnProperty('HDG1-108') && query['HDG1-108'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-108'].busType, 'HDG1-108')"
>
<p>{{query['HDG1-108'].busNo}}</p>
</div>
<div class="putty-row-3-5">
<p>CDA213</p>
<div
class="putty-row-3-5"
@click="clickBtn(query['HDG1-109'].busNo)"
v-if="query.hasOwnProperty('HDG1-109') && query['HDG1-109'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-109'].busType, 'HDG1-109')"
>
<p>{{query['HDG1-109'].busNo}}</p>
</div>
<div class="putty-row-3-6">
<p>CDA213</p>
<div
class="putty-row-3-6"
@click="clickBtn(query['HDG5-15'].busNo)"
v-if="query.hasOwnProperty('HDG5-15') && query['HDG5-15'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-15'].busType, 'HDG5-15')"
>
<p>{{query['HDG5-15'].busNo}}</p>
</div>
<div class="putty-row-4-1">
<p>CDA213</p>
<div
class="putty-row-4-1"
@click="clickBtn(query['HDG1-110'].busNo)"
v-if="query.hasOwnProperty('HDG1-110') && query['HDG1-110'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-110'].busType, 'HDG1-110')"
>
<p>{{query['HDG1-110'].busNo}}</p>
</div>
<div class="putty-row-4-2">
<p>CDA213</p>
<div
class="putty-row-4-2"
@click="clickBtn(query['HDG1-111'].busNo)"
v-if="query.hasOwnProperty('HDG1-111') && query['HDG1-111'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-111'].busType, 'HDG1-111')"
>
<p>{{query['HDG1-111'].busNo}}</p>
</div>
<div class="putty-row-4-3">
<p>CDA213</p>
<div
class="putty-row-4-3"
@click="clickBtn(query['HDG1-112'].busNo)"
v-if="query.hasOwnProperty('HDG1-112') && query['HDG1-112'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-112'].busType, 'HDG1-112')"
>
<p>{{query['HDG1-112'].busNo}}</p>
</div>
<div class="putty-row-4-4">
<p>CDA213</p>
<div
class="putty-row-4-4"
@click="clickBtn(query['HDG1-113'].busNo)"
v-if="query.hasOwnProperty('HDG1-113') && query['HDG1-113'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-113'].busType, 'HDG1-113')"
>
<p>{{query['HDG1-113'].busNo}}</p>
</div>
<div class="putty-row-4-5">
<p>CDA213</p>
<div
class="putty-row-4-5"
@click="clickBtn(query['HDG1-114'].busNo)"
v-if="query.hasOwnProperty('HDG1-114') && query['HDG1-114'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG1-114'].busType, 'HDG1-114')"
>
<p>{{query['HDG1-114'].busNo}}</p>
</div>
<div class="putty-row-4-6">
<p>CDA213</p>
<div
class="putty-row-4-6"
@click="clickBtn(query['HDG5-16'].busNo)"
v-if="query.hasOwnProperty('HDG5-16') && query['HDG5-16'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-16'].busType, 'HDG5-16')"
>
<p>{{query['HDG5-16'].busNo}}</p>
</div>
<div
v-popover:nasdsd
class="putty-row-5-6"
@click="showPopover(data, data.pr56, 'popover2')"
@click="clickBtn(query['HDG5-17'].busNo)"
v-if="query.hasOwnProperty('HDG5-17') && query['HDG5-17'].state !== 'FREE'"
:class="judgeCarTypeAndcarStationstyle(query['HDG5-17'].busType, 'HDG5-17')"
>
<p>{{ data.pr56.name }}</p>
<p>{{query['HDG5-17'].busNo}}</p>
</div>
</div>
<el-popover
:ref="item.name"
v-for="(item, index) in options"
:key="Math.random(index)"
placement="top"
width="300"
trigger="click"
<!-- 实时车辆 -->
<div class="onlineNum">
<p>总量 <span>{{ this.onlineNum? this.onlineNum : '0' }}</span></p>
</div>
<!-- 信息展示弹窗 -->
<Tooltip
ref="toolRef"
:query="BusInformation"
>
<div class="flex-content">
<p>111: <span>{{ item.car }}</span></p>
<p>111: <span>{{ item.code }}</span></p>
<p>111: <span>{{ item.name }}</span></p>
<p>111: <span>{{ item.no }}</span></p>
<p>111: <span>{{ item.time }}</span></p>
</div>
</el-popover>
</Tooltip>
</div>
</template>
<script>
......@@ -104,66 +219,135 @@
* @author MARS 2019-09-28 <wangyunfan@vtstar.net>
* @fileoverview 腻子作业区
*/
import Tooltip from './Tooltip';
export default {
components: {
Tooltip
},
data () {
return {
show: true,
data: {
pr56: {
name: 'nasdsd',
code: '这是编码啊',
no: '2233123',
time: '2019-09-29',
car: '中通客车'
},
pr51: {
name: 'qqqname',
code: 'qqq这是编码啊',
no: 'qqq2233123',
time: '2222019-09-29',
car: '中通222客车'
}
},
// 定时器
timer: null,
// 腻子作业区实时信息
query: {},
popover: null,
options: []
}
// 根据车身号获取当前车体区域信息
BusInformation: {},
// 车辆定位数据
carPostionInfo: {},
// 当前在线人数
onlineNum: null
};
},
mounted () {},
mounted () {
this.pollingGetInterface();
},
methods: {
/**
* @method 点击展示popover
* @description
*/
showPopover (data, val, item) {
let keys = []
let values = []
for (let key in data) {
keys.push(key)
values.push(data[key])
// 获取腻子作业区实时信息
getPuttyInformation () {
this.$fetch('area-controller/realTime-get', { areaNo: '4' })
.then(res => {
for (let item of res) {
if (item.code === '4') {
this.query = item.stationMap;
// 获取当前在线人数
this.onlineNum = _.clone(item.onlineNum);
console.log(this.onlineNum);
break;
}
}
})
.catch(error => {
reject(error);
});
},
// 解析车体类型及车体定位样式
judgeCarTypeAndcarStationstyle (outOrIn, station) {
// 判断有无车体定位信息
if (this.carPostionInfo.hasOwnProperty(station)) {
return 'isPositioned';
} else {
if (outOrIn === 'OTHER') {
return 'carOutFactory';
} else {
return '';
}
}
let newArr = []
newArr = _.cloneDeep(values)
this.options = newArr.filter(item => val.name === item.name)
console.log(this.options)
console.log(this.$refs.nasdsd)
},
// 点击车辆工位
clickBtn (busNub) {
console.log(busNub);
let left = window.event.clientX;
let top = window.event.clientY;
console.log('left', left);
console.log('top', top);
this.$refs.toolRef.$refs.tooltip.style.visibility = 'visible';
this.$refs.toolRef.$refs.tooltip.style.top = `${top - 100}px`;
this.$refs.toolRef.$refs.tooltip.style.left = `${left}px`;
this.$fetch('area-controller/busNo-get', { busNo: busNub })
.then(res => {
console.log('res', res);
// this.BusInformation = _.cloneDeep(res);
})
.catch(error => {
reject(error);
});
},
// 查询车辆定位
getCarPostion () {
let queryParams = { orderNo: '', workOrderNo: '' };
// 请求接口
this.$fetch('area-controller/busNo-get', { queryParams }).then(
res => {
this.carPostionInfo = _.cloneDeep(res);
}
);
},
// 轮询请求接口
pollingGetInterface () {
// 查询车辆定位
if (
this.$route.query.hasOwnProperty('orderNo') ||
this.$route.query.hasOwnProperty('workOrderNo')
) {
this.getCarPostion();
}
// 获取腻子作业区实时信息
this.getPuttyInformation();
this.timer = setInterval(() => {
this.carPostionInfo = {};
// 获取腻子作业区实时信息
this.getPuttyInformation();
}, 20000);
}
}
}
};
</script>
<style lang="scss" scoped>
.page-body {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.onlineNum {
position: absolute;
color: #ffffff;
z-index: 999;
right: 300px;
top: 50px;
color: #00b4ff;
font-size: 16px;
font-weight: 750;
span {
margin: 30px;
font-size: 24px;
}
}
.putty-content {
position: relative;
margin: 0 auto;
width: 1600px;
height: 900px;
background: url('../../../assets/images/Monitor/putty-bg.png') no-repeat;
background: url("../../../assets/images/Monitor/putty-bg.png") no-repeat;
// ? 公共样式
.putty-row-1-1,
......@@ -195,7 +379,8 @@ export default {
width: 140px;
height: 50px;
cursor: pointer;
background: url('../../../assets/images/Monitor/monitor_car.png') no-repeat;
background: url("../../../assets/images/Monitor/monitor_car.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
......@@ -302,10 +487,21 @@ export default {
.putty-row-5-6 {
left: 1256px;
}
.putty-row-5-6 {
top: 655px;
}
.carOutFactory {
background: url("../../../assets/images/Monitor/monitor_car_external.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
.isPositioned {
background: url("../../../assets/images/Monitor/monitor_position_car.gif")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
}
}
</style>
......@@ -3,550 +3,614 @@
<div class="page-pack">
<div class="container-pack">
<!-- 第一行 -->
<div
<div
class="sealed-row-1-1"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-57') && sealedAnticorrosion['HDG1-57'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-57'].busType, 'HDG1-57')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-57'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-57'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-57'].busNo}}</p>
</div>
<div
<div
class="sealed-row-1-2"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-67') && sealedAnticorrosion['HDG1-67'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-67'].busType, 'HDG1-67')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-67'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-67'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-67'].busNo}}</p>
</div>
<div
<div
class="sealed-row-1-3"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-68') && sealedAnticorrosion['HDG1-68'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-68'].busType, 'HDG1-68')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-68'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-68'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-68'].busNo}}</p>
</div>
<div
<div
class="sealed-row-1-4"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-69') && sealedAnticorrosion['HDG1-69'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-69'].busType, 'HDG1-69')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-69'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-69'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-69'].busNo}}</p>
</div>
<div
<div
class="sealed-row-1-5"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-70') && sealedAnticorrosion['HDG1-70'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-70'].busType, 'HDG1-70')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-70'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-70'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-70'].busNo}}</p>
</div>
<!-- 第二行 -->
<div
<div
class="sealed-row-2-1"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-58') && sealedAnticorrosion['HDG1-58'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-58'].busType, 'HDG1-58')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-58'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-58'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-58'].busNo}}</p>
</div>
<div
<div
class="sealed-row-2-2"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-71') && sealedAnticorrosion['HDG1-71'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-71'].busType, 'HDG1-71')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-71'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-71'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-71'].busNo}}</p>
</div>
<div
<div
class="sealed-row-2-3"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-72') && sealedAnticorrosion['HDG1-72'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-72'].busType, 'HDG1-72')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-72'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-72'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-72'].busNo}}</p>
</div>
<div
<div
class="sealed-row-2-4"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-73') && sealedAnticorrosion['HDG1-73'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-73'].busType, 'HDG1-73')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-73'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-73'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-73'].busNo}}</p>
</div>
<div
<div
class="sealed-row-2-5"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-74') && sealedAnticorrosion['HDG1-74'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-74'].busType, 'HDG1-74')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-74'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-74'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-74'].busNo}}</p>
</div>
<!-- 第三行 -->
<div
<div
class="sealed-row-3-1"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-75') && sealedAnticorrosion['HDG1-75'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-75'].busType, 'HDG1-75')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-75'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-75'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-75'].busNo}}</p>
</div>
<div
<div
class="sealed-row-3-2"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-76') && sealedAnticorrosion['HDG1-76'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-76'].busType, 'HDG1-76')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-76'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-76'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-76'].busNo}}</p>
</div>
<div
<div
class="sealed-row-3-3"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-77') && sealedAnticorrosion['HDG1-77'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-77'].busType, 'HDG1-77')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-77'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-77'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-77'].busNo}}</p>
</div>
<div
<div
class="sealed-row-3-4"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-78') && sealedAnticorrosion['HDG1-78'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-78'].busType, 'HDG1-78')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-78'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-78'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-78'].busNo}}</p>
</div>
<div
<div
class="sealed-row-3-5"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-79') && sealedAnticorrosion['HDG1-79'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-79'].busType, 'HDG1-79')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-79'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-79'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-79'].busNo}}</p>
</div>
<!-- 第四行 -->
<div
<div
class="sealed-row-4-1"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-80') && sealedAnticorrosion['HDG1-80'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-80'].busType, 'HDG1-80')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-80'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-80'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-80'].busNo}}</p>
</div>
<div
<div
class="sealed-row-4-2"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-81') && sealedAnticorrosion['HDG1-81'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-81'].busType, 'HDG1-81')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-81'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-81'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-81'].busNo}}</p>
</div>
<div
<div
class="sealed-row-4-3"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-82') && sealedAnticorrosion['HDG1-82'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-82'].busType, 'HDG1-82')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-82'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-82'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-82'].busNo}}</p>
</div>
<div
<div
class="sealed-row-4-4"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-83') && sealedAnticorrosion['HDG1-83'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-83'].busType, 'HDG1-83')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-83'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-83'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-83'].busNo}}</p>
</div>
<div
<div
class="sealed-row-4-5"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-84') && sealedAnticorrosion['HDG1-84'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-84'].busType, 'HDG1-84')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-84'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-84'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-84'].busNo}}</p>
</div>
<!-- 第五行 -->
<div
<div
class="sealed-row-5-1"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-85') && sealedAnticorrosion['HDG1-85'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-85'].busType, 'HDG1-85')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-85'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-85'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-85'].busNo}}</p>
</div>
<div
<div
class="sealed-row-5-2"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-86') && sealedAnticorrosion['HDG1-86'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-86'].busType, 'HDG1-86')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-86'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-86'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-86'].busNo}}</p>
</div>
<div
<div
class="sealed-row-5-3"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-87') && sealedAnticorrosion['HDG1-87'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-87'].busType, 'HDG1-87')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-87'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-87'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-87'].busNo}}</p>
</div>
<div
<div
class="sealed-row-5-4"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-88') && sealedAnticorrosion['HDG1-88'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-88'].busType, 'HDG1-88')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-88'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-88'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-88'].busNo}}</p>
</div>
<div
<div
class="sealed-row-5-5"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-89') && sealedAnticorrosion['HDG1-89'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-89'].busType, 'HDG1-89')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-89'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-89'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-89'].busNo}}</p>
</div>
<!-- 第六行 -->
<div
<div
class="sealed-row-6-1"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-90') && sealedAnticorrosion['HDG1-90'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-90'].busType, 'HDG1-90')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-90'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-90'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-90'].busNo}}</p>
</div>
<div
<div
class="sealed-row-6-2"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-91') && sealedAnticorrosion['HDG1-91'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-91'].busType, 'HDG1-91')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-91'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-91'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-91'].busNo}}</p>
</div>
<div
<div
class="sealed-row-6-3"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-92') && sealedAnticorrosion['HDG1-92'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-92'].busType, 'HDG1-92')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-92'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-92'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-92'].busNo}}</p>
</div>
<div
<div
class="sealed-row-6-4"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-93') && sealedAnticorrosion['HDG1-93'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-93'].busType, 'HDG1-93')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-93'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-93'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-93'].busNo}}</p>
</div>
<div
<div
class="sealed-row-6-5"
v-if="sealedAnticorrosion.hasOwnProperty('HDG1-94') && sealedAnticorrosion['HDG1-94'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG1-94'].busType, 'HDG1-94')"
@click="doCarStationClick(sealedAnticorrosion['HDG1-94'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG1-94'].busNo)"
>
<p>{{sealedAnticorrosion['HDG1-94'].busNo}}</p>
</div>
<!-- 右一列 -->
<div
<div
class="sealed-right-column-1-1"
v-if="sealedAnticorrosion.hasOwnProperty('HDG5-8') && sealedAnticorrosion['HDG5-8'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG5-8'].busType, 'HDG5-8')"
@click="doCarStationClick(sealedAnticorrosion['HDG5-8'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG5-8'].busNo)"
>
<p>{{sealedAnticorrosion['HDG5-8'].busNo}}</p>
</div>
<div
<div
class="sealed-right-column-1-2"
v-if="sealedAnticorrosion.hasOwnProperty('HDG5-9') && sealedAnticorrosion['HDG5-9'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG5-9'].busType, 'HDG5-9')"
@click="doCarStationClick(sealedAnticorrosion['HDG5-9'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG5-9'].busNo)"
>
<p>{{sealedAnticorrosion['HDG5-9'].busNo}}</p>
</div>
<div
<div
class="sealed-right-column-1-3"
v-if="sealedAnticorrosion.hasOwnProperty('HDG5-10') && sealedAnticorrosion['HDG5-10'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG5-10'].busType, 'HDG5-10')"
@click="doCarStationClick(sealedAnticorrosion['HDG5-10'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG5-10'].busNo)"
>
<p>{{sealedAnticorrosion['HDG5-10'].busNo}}</p>
</div>
<div
<div
class="sealed-right-column-1-4"
v-if="sealedAnticorrosion.hasOwnProperty('HDG5-11') && sealedAnticorrosion['HDG5-11'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG5-11'].busType, 'HDG5-11')"
@click="doCarStationClick(sealedAnticorrosion['HDG5-11'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG5-11'].busNo)"
>
<p>{{sealedAnticorrosion['HDG5-11'].busNo}}</p>
</div>
<div
<div
class="sealed-right-column-1-5"
v-if="sealedAnticorrosion.hasOwnProperty('HDG5-12') && sealedAnticorrosion['HDG5-12'].state !== 'FREE'"
:class="judgeCarTypeAndCarStationStyle(sealedAnticorrosion['HDG5-12'].busType, 'HDG5-12')"
@click="doCarStationClick(sealedAnticorrosion['HDG5-12'].busNo)">
@click="doCarStationClick(sealedAnticorrosion['HDG5-12'].busNo)"
>
<p>{{sealedAnticorrosion['HDG5-12'].busNo}}</p>
</div>
</div>
<!-- 实时车辆 -->
<div class="onlineNum">
<p>总量 <span>{{ this.onlineNum? this.onlineNum : '0' }}</span></p>
</div>
<!-- 详细信息展示组件 -->
<Tooltip
ref="toolRef"
:query="currentBusInfo">
:query="currentBusInfo"
>
</Tooltip>
</div>
</template>
<script>
import Tooltip from './Tooltip'
export default {
components: {
Tooltip
},
data () {
return {
// 密封防腐作业区域实时数据
sealedAnticorrosion: {},
// 筛选条件订单号
orderNo: '',
// 筛选条件工单号
workOrderNo: '',
// 车体定位数据
carPostion: {},
// 当前车体信息
currentBusInfo: {}
import Tooltip from './Tooltip';
export default {
components: {
Tooltip
},
data () {
return {
// 密封防腐作业区域实时数据
sealedAnticorrosion: {},
// 筛选条件订单号
orderNo: '',
// 筛选条件工单号
workOrderNo: '',
// 车体定位数据
carPostion: {},
// 当前车体信息
currentBusInfo: {}
};
},
methods: {
// 解析车体类型及车体定位样式
judgeCarTypeAndCarStationStyle (carType, caeNumber) {
if (this.carPostion.hasOwnProperty(caeNumber)) {
return 'monitor-car-location-position';
} else {
if (carType === 'OWN') {
return '';
} else {
return 'monitor-car-external';
}
}
},
methods: {
// 解析车体类型及车体定位样式
judgeCarTypeAndCarStationStyle (carType, caeNumber) {
if (this.carPostion.hasOwnProperty(caeNumber)) {
return 'monitor-car-location-position'
} else {
if (carType === 'OWN') {
return ''
} else {
return 'monitor-car-external'
}
// 点击工位
doCarStationClick (busNo) {
let queryParams = { busNo: busNo };
this.$refs.toolRef.$refs.tooltip.style.visibility = 'visible';
let left = window.event.clientX;
let top = window.event.clientY;
this.$refs.toolRef.$refs.tooltip.style.top = top - 100 + 'px';
this.$refs.toolRef.$refs.tooltip.style.left = left - 100 + 'px';
this.$fetch('area-controller/busNo-get', queryParams).then(
response => {
this.currentBusInfo = _.cloneDeep(response);
}
},
// 点击工位
doCarStationClick (busNo) {
let queryParams = { busNo: busNo }
this.$refs.toolRef.$refs.tooltip.style.visibility = 'visible';
let left = window.event.clientX;
let top = window.event.clientY;
this.$refs.toolRef.$refs.tooltip.style.top = top - 100 + 'px';
this.$refs.toolRef.$refs.tooltip.style.left = left - 100 + 'px';
this.$fetch('area-controller/busNo-get', queryParams).then(response => {
this.currentBusInfo = _.cloneDeep(response)
})
},
// 获取密封防腐作业区实时数据
getSealedAnticorrosionRealTimeData () {
let queryParams = { areaNo: '3' }
this.$fetch('area-controller/realTime-get', queryParams).then(response => {
);
},
// 获取密封防腐作业区实时数据
getSealedAnticorrosionRealTimeData () {
let queryParams = { areaNo: '3' };
this.$fetch('area-controller/realTime-get', queryParams).then(
response => {
for (let item of response) {
if (item.code === '3') {
this.sealedAnticorrosionRealTime = _.cloneDeep(item)
this.sealedAnticorrosionRealTime = _.cloneDeep(
item
);
}
}
})
},
}
);
},
// 根据工单号或订单号定位当前车体位置
getCurrentPosition () {
let queryParams = {
orderNo: this.orderNo,
workOrderNo: this.workOrderNo
};
this.$fetch('area-controller/workOrderNo-get', queryParams).then(
response => {
this.carPostion = _.cloneDeep(response);
}
);
},
// 轮询查询区域实时信息
pollingGetAreaRealTimeData () {
// 获取密封防腐作业区实时数据
this.getSealedAnticorrosionRealTimeData();
// 根据工单号或订单号定位当前车体位置
getCurrentPosition () {
let queryParams = { orderNo: this.orderNo, workOrderNo: this.workOrderNo }
this.$fetch('area-controller/workOrderNo-get', queryParams).then(response => {
this.carPostion = _.cloneDeep(response)
})
},
// 轮询查询区域实时信息
pollingGetAreaRealTimeData () {
this.getCurrentPosition();
setInterval(() => {
this.carPostion = {};
// 获取密封防腐作业区实时数据
this.getSealedAnticorrosionRealTimeData()
// 根据工单号或订单号定位当前车体位置
this.getCurrentPosition()
setInterval(() => {
this.carPostion = {}
// 获取密封防腐作业区实时数据
this.getSealedAnticorrosionRealTimeData()
}, 20000)
}
},
mounted () {
setTimeout(() => {
// 轮询查询区域实时信息
this.pollingGetAreaRealTimeData()
}, 0)
this.getSealedAnticorrosionRealTimeData();
}, 20000);
}
},
mounted () {
setTimeout(() => {
// 轮询查询区域实时信息
this.pollingGetAreaRealTimeData();
}, 0);
}
};
</script>
<style lang="scss" scoped>
.page-pack {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.page-pack {
min-height: 100%;
background: rgba(0, 7, 12, 1);
position: relative;
.onlineNum {
position: absolute;
color: #ffffff;
z-index: 999;
right: 300px;
top: 50px;
color: #00b4ff;
font-size: 16px;
font-weight: 750;
span {
margin: 30px;
font-size: 24px;
}
}
.container-pack {
position: relative;
margin: 0 auto;
width: 1600px;
height: 900px;
background: url("../../../assets/images/Monitor/monitor_sealed_anticorrosion.png");
.container-pack {
position: relative;
margin: 0 auto;
width: 1600px;
height: 900px;
background: url("../../../assets/images/Monitor/monitor_sealed_anticorrosion.png");
div {
position: absolute;
width: 140px;
height: 50px;
cursor: pointer;
background: url('../../../assets/images/Monitor/monitor_car.png') no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
div {
position: absolute;
width: 140px;
height: 50px;
cursor: pointer;
background: url("../../../assets/images/Monitor/monitor_car.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
p {
font-size: 14px;
margin: 0;
color: #ffffff;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
p {
font-size: 14px;
margin: 0;
color: #ffffff;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
// 第一行
.sealed-row-1-1 {
top: 265px;
left: 155px;
}
.sealed-row-1-2 {
top: 265px;
left: 345px;
}
.sealed-row-1-3 {
top: 265px;
left: 530px;
}
.sealed-row-1-4 {
top: 265px;
left: 720px;
}
.sealed-row-1-5 {
top: 265px;
left: 910px;
}
// 第一行
.sealed-row-1-1 {
top: 265px;
left: 155px;
}
.sealed-row-1-2 {
top: 265px;
left: 345px;
}
.sealed-row-1-3 {
top: 265px;
left: 530px;
}
.sealed-row-1-4 {
top: 265px;
left: 720px;
}
.sealed-row-1-5 {
top: 265px;
left: 910px;
}
// 第二行
.sealed-row-2-1 {
top: 352px;
left: 155px;
}
.sealed-row-2-2 {
top: 352px;
left: 345px;
}
.sealed-row-2-3 {
top: 352px;
left: 530px;
}
.sealed-row-2-4 {
top: 352px;
left: 720px;
}
.sealed-row-2-5 {
top: 352px;
left: 910px;
}
// 第二行
.sealed-row-2-1 {
top: 352px;
left: 155px;
}
.sealed-row-2-2 {
top: 352px;
left: 345px;
}
.sealed-row-2-3 {
top: 352px;
left: 530px;
}
.sealed-row-2-4 {
top: 352px;
left: 720px;
}
.sealed-row-2-5 {
top: 352px;
left: 910px;
}
// 第三行
.sealed-row-3-1 {
top: 435px;
left: 210px;
}
.sealed-row-3-2 {
top: 437px;
left: 345px;
}
.sealed-row-3-3 {
top: 437px;
left: 530px;
}
.sealed-row-3-4 {
top: 437px;
left: 720px;
}
.sealed-row-3-5 {
top: 437px;
left: 910px;
}
// 第三行
.sealed-row-3-1 {
top: 435px;
left: 210px;
}
.sealed-row-3-2 {
top: 437px;
left: 345px;
}
.sealed-row-3-3 {
top: 437px;
left: 530px;
}
.sealed-row-3-4 {
top: 437px;
left: 720px;
}
.sealed-row-3-5 {
top: 437px;
left: 910px;
}
// 第四行
.sealed-row-4-1 {
top: 520px;
left: 210px;
}
.sealed-row-4-2 {
top: 520px;
left: 392px;
}
.sealed-row-4-3 {
top: 520px;
left: 572px;
}
.sealed-row-4-4 {
top: 520px;
left: 752px;
}
.sealed-row-4-5 {
top: 520px;
left: 936px;
}
// 第四行
.sealed-row-4-1 {
top: 520px;
left: 210px;
}
.sealed-row-4-2 {
top: 520px;
left: 392px;
}
.sealed-row-4-3 {
top: 520px;
left: 572px;
}
.sealed-row-4-4 {
top: 520px;
left: 752px;
}
.sealed-row-4-5 {
top: 520px;
left: 936px;
}
// 第五行
.sealed-row-5-1 {
top: 605px;
left: 155px;
}
.sealed-row-5-2 {
top: 605px;
left: 345px;
}
.sealed-row-5-3 {
top: 605px;
left: 530px;
}
.sealed-row-5-4 {
top: 605px;
left: 720px;
}
.sealed-row-5-5 {
top: 605px;
left: 910px;
}
// 第五行
.sealed-row-5-1 {
top: 605px;
left: 155px;
}
.sealed-row-5-2 {
top: 605px;
left: 345px;
}
.sealed-row-5-3 {
top: 605px;
left: 530px;
}
.sealed-row-5-4 {
top: 605px;
left: 720px;
}
.sealed-row-5-5 {
top: 605px;
left: 910px;
}
// 第六行
.sealed-row-6-1 {
top: 690px;
left: 155px;
}
.sealed-row-6-2 {
top: 690px;
left: 345px;
}
.sealed-row-6-3 {
top: 690px;
left: 530px;
}
.sealed-row-6-4 {
top: 690px;
left: 720px;
}
.sealed-row-6-5 {
top: 690px;
left: 910px;
}
// 第六行
.sealed-row-6-1 {
top: 690px;
left: 155px;
}
.sealed-row-6-2 {
top: 690px;
left: 345px;
}
.sealed-row-6-3 {
top: 690px;
left: 530px;
}
.sealed-row-6-4 {
top: 690px;
left: 720px;
}
.sealed-row-6-5 {
top: 690px;
left: 910px;
}
// 右一列
.sealed-right-column-1-1 {
top: 352px;
left: 1275px;
}
.sealed-right-column-1-2 {
top: 438px;
left: 1275px;
}
.sealed-right-column-1-3 {
top: 522px;
left: 1275px;
}
.sealed-right-column-1-4 {
top: 604px;
left: 1318px;
}
.sealed-right-column-1-5 {
top: 688px;
left: 1318px;
}
// 右一列
.sealed-right-column-1-1 {
top: 352px;
left: 1275px;
}
.sealed-right-column-1-2 {
top: 438px;
left: 1275px;
}
.sealed-right-column-1-3 {
top: 522px;
left: 1275px;
}
.sealed-right-column-1-4 {
top: 604px;
left: 1318px;
}
.sealed-right-column-1-5 {
top: 688px;
left: 1318px;
}
}
}
// 轻客车体样式
.monitor-car-external {
background: url('../../../assets/images/Monitor/monitor_car_external.png') !important;
background-size: cover !important;
}
// 轻客车体样式
.monitor-car-external {
background: url("../../../assets/images/Monitor/monitor_car_external.png") !important;
background-size: cover !important;
}
// 定位车体样式
.monitor-car-location-position {
background: url('../../../assets/images/Monitor/monitor_position_car.gif') !important;
background-size: cover !important;
}
// 定位车体样式
.monitor-car-location-position {
background: url("../../../assets/images/Monitor/monitor_position_car.gif") !important;
background-size: cover !important;
}
</style>
......@@ -283,7 +283,10 @@
<p>{{query['HDG1-56'].busNo}}</p>
</div>
</div>
<!-- 实时车辆 -->
<div class="onlineNum">
<p>总量 <span>{{ this.onlineNum? this.onlineNum : '0' }}</span></p>
</div>
<!-- 信息展示弹窗 -->
<Tooltip
ref="toolRef"
......@@ -301,10 +304,12 @@ export default {
},
data () {
return {
// 定时器
timer: null,
// 当前在线人数
onlineNum: null,
// 车体定位信息
busPosition: {},
// 车辆定位数据
carPostionInfo: {},
// 钣金车存放区实时信息
query: {},
// 根据车身号获得当前车体信息
......@@ -321,23 +326,23 @@ export default {
};
},
mounted () {
this.getSheetMetalInformation();
this.pollingGetInterface();
},
beforeDestroy () {
clearInterval(this.timer);
},
methods: {
// 获取钣金车存放区实时信息
getSheetMetalInformation () {
this.$fetch('area-controller/realTime-get', { areaNo: '1' })
.then(res => {
// this.query = _.cloneDeep(res);
// console.log(this.query);
console.log(res);
for (let i = 0; i < res.length; i++) {
if (res[i].code === '1') {
this.query = _.cloneDeep(res[i].stationMap);
console.log(this.query)
for (let item of res) {
if (item.code === '1') {
this.query = item.stationMap;
// 获取当前在线人数
this.onlineNum = _.clone(res[i].onlineNum);
console.log(this.onlineNum)
this.onlineNum = _.clone(item.onlineNum);
console.log(this.onlineNum);
break;
}
}
})
......@@ -345,6 +350,7 @@ export default {
reject(error);
});
},
// 点击车辆工位
clickBtn (busNub) {
console.log(busNub);
let left = window.event.clientX;
......@@ -352,8 +358,8 @@ export default {
console.log('left', left);
console.log('top', top);
this.$refs.toolRef.$refs.tooltip.style.visibility = 'visible';
this.$refs.toolRef.$refs.tooltip.style.top = top - 100 + 'px';
this.$refs.toolRef.$refs.tooltip.style.left = left - 100 + 'px';
this.$refs.toolRef.$refs.tooltip.style.top = `${top - 100}px`;
this.$refs.toolRef.$refs.tooltip.style.left = `${left}px`;
this.$fetch('area-controller/busNo-get', { busNo: busNub })
.then(res => {
console.log('res', res);
......@@ -365,24 +371,43 @@ export default {
},
// 解析车体类型及车体定位样式
judgeCarTypeAndcarStationstyle (outOrIn, station) {
//根据车位编码Station 判断是否该车位已经被定位
// let stateTemp = _.cloneDeep(this.$route.query);
// console.log('aaa', stateTemp);
// this.$fetch('area-controller/busNo-get', {stateTemp}).then(res => {
// console.log(res);
// this.busPosition = _.cloneDeep(res);
// if (this.busPosition.hasOwnProperty(station)) {
// return 'isPositioned'
// } else {
if (outOrIn === 'OTHER') {
return 'carOutFactory';
// 判断有无车体定位信息
if (this.carPostionInfo.hasOwnProperty(station)) {
return 'isPositioned';
} else {
return '';
if (outOrIn === 'OTHER') {
return 'carOutFactory';
} else {
return '';
}
}
// }
// }).catch(error => {
// reject(error);
// })
},
// 查询车辆定位
getCarPostion () {
let queryParams = { orderNo: '1111', workOrderNo: '' };
// 请求接口
this.$fetch('area-controller/busNo-get', { queryParams }).then(
res => {
this.carPostionInfo = _.cloneDeep(res);
}
);
},
// 轮询请求接口
pollingGetInterface () {
// 查询车辆定位
if (
this.$route.query.hasOwnProperty('orderNo') ||
this.$route.query.hasOwnProperty('workOrderNo')
) {
this.getCarPostion();
}
// 获取钣金作业区实时信息
this.getSheetMetalInformation();
this.timer = setInterval(() => {
this.carPostionInfo = {};
// 获取钣金作业区实时信息
this.getSheetMetalInformation();
}, 20000);
}
}
};
......@@ -392,7 +417,20 @@ export default {
.page-pack {
min-height: 100%;
background: rgba(0, 7, 12, 1);
.onlineNum {
position: absolute;
color: #ffffff;
z-index: 999;
right: 300px;
top: 50px;
color: #00b4ff;
font-size: 16px;
font-weight: 750;
span {
margin: 30px;
font-size: 24px;
}
}
.container-pack {
position: relative;
margin: 0 auto;
......@@ -598,6 +636,18 @@ export default {
top: 700px;
left: 579px;
}
.carOutFactory {
background: url("../../../assets/images/Monitor/monitor_car_external.png")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
.isPositioned {
background: url("../../../assets/images/Monitor/monitor_position_car.gif")
no-repeat;
background-size: 35px 18px;
background-position: 0 16px;
}
}
}
</style>
......@@ -74,12 +74,12 @@ export default {
}
}
</script>
<style lang="scss" scoped>
<style lang="scss">
.tooltip {
position: absolute;
padding: 20px 0 0 0;
width: 260px;
height: 266px;
height: 246px;
border-radius: 9px;
background: #000000;
opacity: 0.8;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment