parent
48a6419155
commit
3b994f75d6
@ -1,31 +1,103 @@
|
||||
<template>
|
||||
<div v-if="showStatus" id="tips" class="tips" ref="tips"></div>
|
||||
<div v-show="showStatus" id="tips" class="tips" ref="tips"></div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as Tips from './tips'
|
||||
|
||||
export default {
|
||||
name: "TipsComp",
|
||||
props:{
|
||||
msg:{
|
||||
type:Object,
|
||||
default:{}
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
showStatus:false,
|
||||
width:0,
|
||||
height:0,
|
||||
stage:null,
|
||||
layer:null,
|
||||
deviceId:null,
|
||||
commandEnum:{
|
||||
大船大船:'大船大船',
|
||||
开始派工:'开始派工',
|
||||
开始报工:'开始报工',
|
||||
确认完毕:'确认完毕',
|
||||
执行成功:'执行成功',
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
this.initKonvaStage()
|
||||
},
|
||||
created(){
|
||||
this.deviceId=this.$route.query.deviceId||''
|
||||
console.log(this.deviceId)
|
||||
},
|
||||
sockets:{
|
||||
tip(data){
|
||||
if (data.code===3001&&data.msg.deviceId===this.$props.deviceId){
|
||||
this.onMsg(`语音设备已暂停,请再次说出"${this.commandEnum.大船大船}"激活语音设备`,true)
|
||||
setTimeout(()=>{
|
||||
this.hide()
|
||||
},10000)
|
||||
}
|
||||
if (data.code===3002&&data.msg.deviceId===this.$props.deviceId){
|
||||
this.show()
|
||||
let msg
|
||||
switch (data.msg.actionType){
|
||||
case this.commandEnum.大船大船:
|
||||
msg='设备已激活,请说出"开始派工"/"开始报工"'
|
||||
break;
|
||||
case this.commandEnum.开始派工:
|
||||
msg=`${data.msg.actionType},请说出派工单号后"确认完毕"`
|
||||
break;
|
||||
case this.commandEnum.开始报工:
|
||||
msg=`${data.msg.actionType},请说出派工单号后"确认完毕"`
|
||||
break;
|
||||
case this.commandEnum.确认完毕:
|
||||
msg='正中处理中,请稍后...'
|
||||
break;
|
||||
default:
|
||||
msg=data.msg.actionType
|
||||
}
|
||||
this.onMsg(msg)
|
||||
}
|
||||
},
|
||||
complete(){
|
||||
if (data.code===3000&&data.msg.deviceId===this.$props.deviceId){
|
||||
this.onMsg("设备激活中,您需要派工/报工?")
|
||||
}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
getShowStatus(){
|
||||
return this.showStatus
|
||||
onMsg(msg){
|
||||
const {onMsg}=Tips.default
|
||||
onMsg(msg)
|
||||
},
|
||||
initKonvaStage(){
|
||||
this.width=this.$refs.tips.clientWidth
|
||||
this.height=this.$refs.tips.clientHeight
|
||||
const {container}=Tips.default
|
||||
const {stage,layer}=container(this.width,this.height,'tips')
|
||||
this.stage=stage
|
||||
this.layer=layer
|
||||
},
|
||||
hide(){
|
||||
this.showStatus = false;
|
||||
},
|
||||
show(){
|
||||
this.hide()
|
||||
this.showStatus = true
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
#tips{
|
||||
overflow: hidden;
|
||||
aspect-ratio: 16/9;
|
||||
width: 100%;
|
||||
height: 4.5vh;
|
||||
position: fixed;
|
||||
top:5px;
|
||||
}
|
||||
</style>
|
||||
|
@ -0,0 +1,79 @@
|
||||
import Konva from "konva";
|
||||
|
||||
let $layer=null
|
||||
let $width=null
|
||||
let $height=null
|
||||
let $group=null
|
||||
|
||||
const container=function (width=0,height=0,container){
|
||||
$width=width
|
||||
$height=height
|
||||
const stage = new Konva.Stage({
|
||||
container: container,
|
||||
width: width,
|
||||
height: height,
|
||||
});
|
||||
|
||||
const layer = new Konva.Layer();
|
||||
stage.add(layer)
|
||||
layer.draw();
|
||||
$layer=layer
|
||||
|
||||
const imageObj = new Image();
|
||||
imageObj.src = require('@/assets/pwan/gbSelectBg.png');
|
||||
imageObj.onload = function () {
|
||||
const shape = new Konva.Image({
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: width,
|
||||
height:height,
|
||||
image: imageObj,
|
||||
});
|
||||
layer.add(shape)
|
||||
}
|
||||
return {
|
||||
stage,layer
|
||||
}
|
||||
}
|
||||
|
||||
const onMsg=function (msg,replay=false){
|
||||
if ($group){
|
||||
$group.remove()
|
||||
}
|
||||
const group=new Konva.Group({
|
||||
x:$width-50,
|
||||
y:0,
|
||||
width:$width*0.35,
|
||||
height:$height,
|
||||
})
|
||||
$layer.add(group)
|
||||
$group=group
|
||||
|
||||
const text=new Konva.Text({
|
||||
x:0,
|
||||
y:0,
|
||||
width:$width*0.35,
|
||||
height:$height,
|
||||
fill:'yellow',
|
||||
verticalAlign:'middle',
|
||||
fontSize:24,
|
||||
text:msg
|
||||
})
|
||||
group.add(text)
|
||||
|
||||
const play=function (){
|
||||
group.to({
|
||||
x: -$width*0.3,
|
||||
y: 0,
|
||||
duration: 10, //持续时间
|
||||
onFinish() {
|
||||
group.remove()
|
||||
replay&&play()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
play()
|
||||
}
|
||||
|
||||
export default {container,onMsg}
|
Loading…
Reference in new issue