From 7f3920b09d1db1510d81feced5d5fe6c41c8150f Mon Sep 17 00:00:00 2001 From: tdg930622 <51816549+tdg930622@users.noreply.github.com> Date: Thu, 16 Jan 2025 17:41:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=BC=E5=85=A5=E8=AF=AD=E9=9F=B3UI=E7=9B=B8?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 4 +- src/assets/icons/svg/bmld.svg | 10 ++ src/assets/icons/svg/hang-telephone.svg | 4 + src/assets/icons/svg/up-telephone.svg | 4 + src/components/VoiceCallDialog.vue | 218 ++++++++++++++++++++++-- 5 files changed, 229 insertions(+), 11 deletions(-) create mode 100644 src/assets/icons/svg/bmld.svg create mode 100644 src/assets/icons/svg/hang-telephone.svg create mode 100644 src/assets/icons/svg/up-telephone.svg diff --git a/src/App.vue b/src/App.vue index 3e13771..e662242 100644 --- a/src/App.vue +++ b/src/App.vue @@ -65,7 +65,6 @@ export default { console.error('---初始化失败', message) }) - // this.acceptDialog = { // "sessionId": "32cca051-dcae-4269-ae12-e8eca5e02146", // "calleePhoneNumber": "008605305343323", @@ -89,6 +88,7 @@ export default { // "startCallTime": 1736923493486 // }; // 呼入事件 + window.tccc.on('callIn', (data) => { this.acceptDialog = data; // this.acceptID = data.id; @@ -96,6 +96,8 @@ export default { }) // 会话结束事件 window.tccc.on('sessionEnded', (data) => { + this.$message.error('通话已结束!') + this.acceptDialog = null; console.log(data, '---语音会话结束') }) }) diff --git a/src/assets/icons/svg/bmld.svg b/src/assets/icons/svg/bmld.svg new file mode 100644 index 0000000..8d900b6 --- /dev/null +++ b/src/assets/icons/svg/bmld.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icons/svg/hang-telephone.svg b/src/assets/icons/svg/hang-telephone.svg new file mode 100644 index 0000000..d272ec5 --- /dev/null +++ b/src/assets/icons/svg/hang-telephone.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/svg/up-telephone.svg b/src/assets/icons/svg/up-telephone.svg new file mode 100644 index 0000000..bbc7b0b --- /dev/null +++ b/src/assets/icons/svg/up-telephone.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/VoiceCallDialog.vue b/src/components/VoiceCallDialog.vue index 7f21718..73abe1f 100644 --- a/src/components/VoiceCallDialog.vue +++ b/src/components/VoiceCallDialog.vue @@ -1,8 +1,9 @@ @@ -34,20 +124,91 @@ export default { data() { return { zoomActive: true,// 布局状态 + + answerSts: false,// 接听状态 + queryParam: { + phone: '', + name: '', + idCard: '' + }, + tableData: [], + total:0, } }, mounted() { + this.initLoad() }, methods: { + initLoad() { + let phoneNumber = this.acceptDialog.phone; + phoneNumber = phoneNumber.slice(4); + this.queryParam.phone = phoneNumber; + this.getCaseList(); + }, toggleZoom() { this.zoomActive = !this.zoomActive; }, + + getCaseList() { + voiceCall.caseMatchList(this.queryParam).then(res => { + if (!res.code) { + this.tableData = res; + } + }) + }, + // 呼入接听 + async handleAccept() { + try { + console.log({ sessionId: this.acceptDialog.sessionId }, '---主动接听') + await window.tccc.Call.accept({ sessionId: this.acceptDialog.sessionId }) + this.answerSts = true; + } catch (error) { + console.error(`呼入接听:${error.message}`) + } + }, + // 挂断 + async handleHungUp() { + try { + console.log({ sessionId: this.acceptDialog.sessionId }, '---主动挂断') + await window.tccc.Call.hungUp({ sessionId: this.acceptDialog.sessionId }) + this.$emit('update:acceptDialog', null) + } catch (error) { + console.error(`挂断:${error.message}`) + } + }, + // 标记来电 + async handleMarkers(item) { + try { + // voiceCall.caseMatchList(this.queryParam).then(res => { + // if (!res.code) { + // this.tableData = res; + // } + // }) + } catch (error) { + console.error(`${error}`) + } + }, + // 关联案件-详情 + async handleRelevance(item) { + try { + voiceCall.caseMatch({caseId: item.caseId, sessionId: this.acceptDialog.sessionId}).then(res => { + this.$router.push(`/mediation-page?sourcePage=sourcePage&caseId=${item.caseId}`); + }) + } catch (error) { + console.error(`${error}`) + } + } } } \ No newline at end of file