提交 19a480c4 编写于 作者: A AdamCaoQAQ

feat: 修改部分一机多控逻辑

上级 d3c59e24
......@@ -39,11 +39,13 @@
"serve-handler": "^6.1.3"
},
"dependencies": {
"vant": "^3.1.0-beta.0",
"vue": "^3.2.21",
"@dokit/web": "file:packages/web",
"@dokit/web-core": "file:packages/core",
"@dokit/web-independent": "file:packages/web-independent",
"@dokit/web-utils": "file:packages/utils",
"@dokit/web": "file:packages/web",
"@dokit/web-independent": "file:packages/web-independent"
"qrcodejs2": "0.0.2",
"qrcodejs2-fix": "0.0.1",
"vant": "^3.1.0-beta.0",
"vue": "^3.2.21"
}
}
......@@ -7,6 +7,7 @@ export default class EventPlayback {
this.socketUrl = url
this.state = getGlobalData();
this.init()
this.isAutoTest = false
}
init() {
!this.state.mySocket && (this.state.mySocket = new mySocket(this.socketUrl))
......@@ -23,97 +24,128 @@ export default class EventPlayback {
}
} else if (msg.type === "BROADCAST") {
data = JSON.parse(msg.data)
console.log(data)
if (msg.contentType === 'action') {
this.state.aid = data.eventId
if (this.state.startPlayback) {
let node = document.querySelector(data.viewC12c.viewPath)
let event;
switch (data.viewC12c.actionType) {
// case "navigatorBack":
// window.history.back()
// break;
case "ON_CLICK":
node.click();
break;
case "ON_TOUCH_START":
event = document.createEvent('MouseEvents');
event.initMouseEvent('touchstart', true, true, window, 0, data.viewC12c.cloneEvent.targetTouches.screenX, data.viewC12c.cloneEvent.targetTouches.screenY, data.viewC12c.cloneEvent.targetTouches.clientX, data.viewC12c.cloneEvent.targetTouches.clientY, data.viewC12c.cloneEvent.ctrlKey, data.viewC12c.cloneEvent.altKey, data.viewC12c.cloneEvent.shiftKey, data.viewC12c.cloneEvent.metaKey);
event.changedTouches = [{
clientX: data.viewC12c.cloneEvent.targetTouches.clientX,
clientY: data.viewC12c.cloneEvent.targetTouches.clientY,
force: data.viewC12c.cloneEvent.targetTouches.force,
identifier: data.viewC12c.cloneEvent.targetTouches.identifier,
pageX: data.viewC12c.cloneEvent.targetTouches.pageX,
pageY: data.viewC12c.cloneEvent.targetTouches.pageY,
radiusX: data.viewC12c.cloneEvent.targetTouches.radiusX,
radiusY: data.viewC12c.cloneEvent.targetTouches.radiusY,
rotationAngle: data.viewC12c.cloneEvent.targetTouches.rotationAngle,
screenX: data.viewC12c.cloneEvent.targetTouches.screenX,
screenY: data.viewC12c.cloneEvent.targetTouches.screenY
}]
event.touches = event.changedTouches
event.targetTouches = event.changedTouches
console.log('fyq', event)
node.dispatchEvent(event);
break;
case "ON_TOUCH_MOVE":
event = document.createEvent('MouseEvents');
event.initMouseEvent('touchmove', true, true, window, 0, data.viewC12c.cloneEvent.targetTouches.screenX, data.viewC12c.cloneEvent.targetTouches.screenY, data.viewC12c.cloneEvent.targetTouches.clientX, data.viewC12c.cloneEvent.targetTouches.clientY, data.viewC12c.cloneEvent.ctrlKey, data.viewC12c.cloneEvent.altKey, data.viewC12c.cloneEvent.shiftKey, data.viewC12c.cloneEvent.metaKey);
event.changedTouches = [{
clientX: data.viewC12c.cloneEvent.targetTouches.clientX,
clientY: data.viewC12c.cloneEvent.targetTouches.clientY,
force: data.viewC12c.cloneEvent.targetTouches.force,
identifier: data.viewC12c.cloneEvent.targetTouches.identifier,
pageX: data.viewC12c.cloneEvent.targetTouches.pageX,
pageY: data.viewC12c.cloneEvent.targetTouches.pageY,
radiusX: data.viewC12c.cloneEvent.targetTouches.radiusX,
radiusY: data.viewC12c.cloneEvent.targetTouches.radiusY,
rotationAngle: data.viewC12c.cloneEvent.targetTouches.rotationAngle,
screenX: data.viewC12c.cloneEvent.targetTouches.screenX,
screenY: data.viewC12c.cloneEvent.targetTouches.screenY
}]
event.touches = event.changedTouches
event.targetTouches = event.changedTouches
node.dispatchEvent(event);
break;
case "ON_TOUCH_END":
event = document.createEvent('MouseEvents');
event.initMouseEvent('touchend', true, true, window, 0, data.viewC12c.cloneEvent.changedTouches.screenX, data.viewC12c.cloneEvent.changedTouches.screenY, data.viewC12c.cloneEvent.changedTouches.clientX, data.viewC12c.cloneEvent.changedTouches.clientY, data.viewC12c.cloneEvent.ctrlKey, data.viewC12c.cloneEvent.altKey, data.viewC12c.cloneEvent.shiftKey, data.viewC12c.cloneEvent.metaKey);
event.changedTouches = [{
clientX: data.viewC12c.cloneEvent.targetTouches.clientX,
clientY: data.viewC12c.cloneEvent.targetTouches.clientY,
force: data.viewC12c.cloneEvent.targetTouches.force,
identifier: data.viewC12c.cloneEvent.targetTouches.identifier,
pageX: data.viewC12c.cloneEvent.targetTouches.pageX,
pageY: data.viewC12c.cloneEvent.targetTouches.pageY,
radiusX: data.viewC12c.cloneEvent.targetTouches.radiusX,
radiusY: data.viewC12c.cloneEvent.targetTouches.radiusY,
rotationAngle: data.viewC12c.cloneEvent.targetTouches.rotationAngle,
screenX: data.viewC12c.cloneEvent.targetTouches.screenX,
screenY: data.viewC12c.cloneEvent.targetTouches.screenY
}]
event.touches = event.changedTouches
event.targetTouches = event.changedTouches
node.dispatchEvent(event);
break;
case "ON_INPUT_CHANGE":
event = document.createEvent('Events');
event.initEvent('input', true, true);
node.value = data.viewC12c.inputValue;
node.dispatchEvent(event);
break;
case "ON_SCROLL":
node.scrollTop = data.viewC12c.scrollX;
node.scrollLeft = data.viewC12c.scrollY;
break;
default:
break;
const nodeOps = () => {
let node = document.querySelector(data.viewC12c.viewPath)
let event;
switch (data.viewC12c.actionType) {
// case "navigatorBack":
// window.history.back()
// break;
case "ON_CLICK":
node.click();
break;
case "ON_TOUCH_START":
event = document.createEvent('MouseEvents');
event.initMouseEvent('touchstart', true, true, window, 0, data.viewC12c.cloneEvent.targetTouches.screenX, data.viewC12c.cloneEvent.targetTouches.screenY, data.viewC12c.cloneEvent.targetTouches.clientX, data.viewC12c.cloneEvent.targetTouches.clientY, data.viewC12c.cloneEvent.ctrlKey, data.viewC12c.cloneEvent.altKey, data.viewC12c.cloneEvent.shiftKey, data.viewC12c.cloneEvent.metaKey);
event.changedTouches = [{
clientX: data.viewC12c.cloneEvent.targetTouches.clientX,
clientY: data.viewC12c.cloneEvent.targetTouches.clientY,
force: data.viewC12c.cloneEvent.targetTouches.force,
identifier: data.viewC12c.cloneEvent.targetTouches.identifier,
pageX: data.viewC12c.cloneEvent.targetTouches.pageX,
pageY: data.viewC12c.cloneEvent.targetTouches.pageY,
radiusX: data.viewC12c.cloneEvent.targetTouches.radiusX,
radiusY: data.viewC12c.cloneEvent.targetTouches.radiusY,
rotationAngle: data.viewC12c.cloneEvent.targetTouches.rotationAngle,
screenX: data.viewC12c.cloneEvent.targetTouches.screenX,
screenY: data.viewC12c.cloneEvent.targetTouches.screenY
}]
event.touches = event.changedTouches
event.targetTouches = event.changedTouches
console.log('fyq', event)
node.dispatchEvent(event);
break;
case "ON_TOUCH_MOVE":
event = document.createEvent('MouseEvents');
event.initMouseEvent('touchmove', true, true, window, 0, data.viewC12c.cloneEvent.targetTouches.screenX, data.viewC12c.cloneEvent.targetTouches.screenY, data.viewC12c.cloneEvent.targetTouches.clientX, data.viewC12c.cloneEvent.targetTouches.clientY, data.viewC12c.cloneEvent.ctrlKey, data.viewC12c.cloneEvent.altKey, data.viewC12c.cloneEvent.shiftKey, data.viewC12c.cloneEvent.metaKey);
event.changedTouches = [{
clientX: data.viewC12c.cloneEvent.targetTouches.clientX,
clientY: data.viewC12c.cloneEvent.targetTouches.clientY,
force: data.viewC12c.cloneEvent.targetTouches.force,
identifier: data.viewC12c.cloneEvent.targetTouches.identifier,
pageX: data.viewC12c.cloneEvent.targetTouches.pageX,
pageY: data.viewC12c.cloneEvent.targetTouches.pageY,
radiusX: data.viewC12c.cloneEvent.targetTouches.radiusX,
radiusY: data.viewC12c.cloneEvent.targetTouches.radiusY,
rotationAngle: data.viewC12c.cloneEvent.targetTouches.rotationAngle,
screenX: data.viewC12c.cloneEvent.targetTouches.screenX,
screenY: data.viewC12c.cloneEvent.targetTouches.screenY
}]
event.touches = event.changedTouches
event.targetTouches = event.changedTouches
node.dispatchEvent(event);
break;
case "ON_TOUCH_END":
event = document.createEvent('MouseEvents');
event.initMouseEvent('touchend', true, true, window, 0, data.viewC12c.cloneEvent.changedTouches.screenX, data.viewC12c.cloneEvent.changedTouches.screenY, data.viewC12c.cloneEvent.changedTouches.clientX, data.viewC12c.cloneEvent.changedTouches.clientY, data.viewC12c.cloneEvent.ctrlKey, data.viewC12c.cloneEvent.altKey, data.viewC12c.cloneEvent.shiftKey, data.viewC12c.cloneEvent.metaKey);
event.changedTouches = [{
clientX: data.viewC12c.cloneEvent.targetTouches.clientX,
clientY: data.viewC12c.cloneEvent.targetTouches.clientY,
force: data.viewC12c.cloneEvent.targetTouches.force,
identifier: data.viewC12c.cloneEvent.targetTouches.identifier,
pageX: data.viewC12c.cloneEvent.targetTouches.pageX,
pageY: data.viewC12c.cloneEvent.targetTouches.pageY,
radiusX: data.viewC12c.cloneEvent.targetTouches.radiusX,
radiusY: data.viewC12c.cloneEvent.targetTouches.radiusY,
rotationAngle: data.viewC12c.cloneEvent.targetTouches.rotationAngle,
screenX: data.viewC12c.cloneEvent.targetTouches.screenX,
screenY: data.viewC12c.cloneEvent.targetTouches.screenY
}]
event.touches = event.changedTouches
event.targetTouches = event.changedTouches
node.dispatchEvent(event);
break;
case "ON_INPUT_CHANGE":
event = document.createEvent('Events');
event.initEvent('input', true, true);
node.value = data.viewC12c.inputValue;
node.dispatchEvent(event);
break;
case "ON_SCROLL":
node.scrollTop = data.viewC12c.scrollX;
node.scrollLeft = data.viewC12c.scrollY;
break;
default:
break;
}
}
if (this.isAutoTest) {
setTimeout(() => {
nodeOps()
this.state.mySocket.send({
type: 'AUTOTEST',
contentType:'action_response',
channelSerial: this.state.channelSerial,
data: JSON.stringify({ command: 'action_response',message: 'success', params: {eventId: data.eventId}})
})
}, data.diffTime);
} else {
nodeOps()
}
}
} else if (msg.contentType === 'mc_host') {
this.state.isHost = false;
this.state.startPlayback = true
}
} else if (msg.type === "AUTOTEST") {
console.log('message', msg)
data = JSON.parse(msg.data)
if (msg.contentType === 'auto_test_control') {
if (data.command === 'startAutoTest' || data.command === 'stopAutoTest') {
this.isAutoTest = data.command === 'startAutoTest' ? true : false
this.state.mySocket.send({
type: 'AUTOTEST',
contentType:'control_response',
channelSerial: this.state.channelSerial,
data: JSON.stringify({...data, command: 'control_response',message: 'success', params: {command:data.command}})
})
}
}
}
} catch (error) {
console.error(error);
......
......@@ -35,17 +35,23 @@
},
"dependencies": {
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> 4219bdfe (feat: 修改部分一机多控逻辑)
"@dokit/web-core": "file:../core",
"@dokit/web-utils": "file:../utils",
"jsqr": "^1.4.0",
"web-vitals": "^2.1.2",
"moment": "^2.29.1"
<<<<<<< HEAD
=======
"@dokit/web-core": "^0.0.3-alpha.3",
"@dokit/web-utils": "^0.0.1",
"mutation-observer": "^1.0.3",
"web-vitals": "^2.1.2"
>>>>>>> cc153ece (web_0.0.3-alpha.3)
=======
>>>>>>> 4219bdfe (feat: 修改部分一机多控逻辑)
},
"gitHead": "886ea7c19806526668e5da0179da335e7df9d012"
}
......@@ -81,7 +81,7 @@ export default {
watch: {
socketHistoryList: {
handler: function (newVal, oldVal) {
this.historyList = [...newVal];
this.historyList = newVal && [...newVal] || [];
},
deep: true,
immediate: true,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册