热力上图功能BUG处理
This commit is contained in:
parent
8fa3101fbd
commit
c670c0d305
|
|
@ -0,0 +1,108 @@
|
|||
<template>
|
||||
<div id="demo">
|
||||
<iframe
|
||||
src="https://10.22.245.209:18889/ktCallingSystem/wholeCallPage?agentId=1029&agentPwd=cinAgt123%23"
|
||||
id="iframe"
|
||||
style="width: 108plx; height: 108px; right: 20px; bottom: 20px"
|
||||
allow="microphone;camera;midi;encrypted-media"
|
||||
>
|
||||
</iframe>
|
||||
<el-button @click="call">拨打</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script setup name="call">
|
||||
const props = defineProps({
|
||||
listRows: {
|
||||
required: true,
|
||||
type: Object,
|
||||
defult: {},
|
||||
},
|
||||
width: {
|
||||
type: String,
|
||||
defult: "",
|
||||
},
|
||||
height: {
|
||||
type: String,
|
||||
defult: "",
|
||||
}
|
||||
});
|
||||
/**
|
||||
* 监听iframe的消息
|
||||
*/
|
||||
window.addEventListener("message", function (msg) {
|
||||
// 接受从iframe传来的消息
|
||||
var data = msg.data;
|
||||
if (data && typeof data === "string" && data.startsWith("{")) {
|
||||
var dataObj = JSON.parse(data);
|
||||
handleMessage(dataObj);
|
||||
} else {
|
||||
console.log("not a valid message");
|
||||
console.log(data);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 消息处理
|
||||
*/
|
||||
function handleMessage(obj) {
|
||||
console.log("receive message from iframe: ", obj);
|
||||
var op = obj.op || "";
|
||||
var value = obj.value || "";
|
||||
const { width, height } = props;
|
||||
switch (op) {
|
||||
case "big_dialog": // 拨号、通话时窗口变大
|
||||
var iframe = document.getElementById("iframe");
|
||||
if(width || height) {
|
||||
iframe.style.width = width;
|
||||
iframe.style.height = height;
|
||||
} else {
|
||||
iframe.style.width = "1920px";
|
||||
iframe.style.height = "1080px";
|
||||
iframe.style.right = "0px";
|
||||
iframe.style.bottom = "0px";
|
||||
}
|
||||
break;
|
||||
case "small_dialog": // 返回电话盘
|
||||
var iframe = document.getElementById("iframe");
|
||||
iframe.style.width = "400px";
|
||||
iframe.style.height = "300px";
|
||||
iframe.style.right = "20px";
|
||||
iframe.style.bottom = "20px";
|
||||
break;
|
||||
case "call_in": // 电话呼入
|
||||
var iframe = document.getElementById("iframe");
|
||||
iframe.style.width = "238px";
|
||||
iframe.style.height = "108px";
|
||||
case "move": // 电话盘拖动
|
||||
var iframe = document.getElementById("iframe");
|
||||
var offsetX = value.offsetX;
|
||||
var offsetY = value.offsetY;
|
||||
iframe.style.right = addPixel(iframe.style.right, -offsetX);
|
||||
iframe.style.bottom = addPixel(iframe.style.bottom, -offsetY);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
function addPixel(pixelStr, offset) {
|
||||
var num = Number(pixelStr.replace("px", ""));
|
||||
return num + offset + "px";
|
||||
}
|
||||
|
||||
function call() {
|
||||
const value = props.listRows.phone;
|
||||
var iframeWindow = window.frames[0];
|
||||
const msgObj = {
|
||||
op: "call", // 拨号
|
||||
value: value,
|
||||
};
|
||||
iframeWindow.postMessage(JSON.stringify(msgObj), "*");
|
||||
}
|
||||
|
||||
onMounted(() => {});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
Loading…
Reference in New Issue