diff --git a/src/App.vue b/src/App.vue index 608debf..e662242 100644 --- a/src/App.vue +++ b/src/App.vue @@ -21,14 +21,22 @@ export default { }, data(){ return { - acceptDialog: null,// id + acceptDialog: null, } }, mounted() { let token = sessionStorage.getItem('token') if (token){this.initVoiceCall();} + let brokerEndpoint = sessionStorage.getItem('brokerEndpoint') + if (brokerEndpoint){this.$stompSocket.initStomp(brokerEndpoint,a => this.socketSucc(a), b => this.socketErr(b));} }, methods: { + socketSucc(frame) { + console.log(frame, '---初始化成功app') + }, + socketErr(frame) { + console.log(frame, '---初始化失败app') + }, scriptWithDataSetExists(dataId) { const scriptElement = document.querySelector(`script[data-telephone="${dataId}"]`); return scriptElement !== null; @@ -57,33 +65,40 @@ export default { console.error('---初始化失败', message) }) - this.acceptDialog = { - "sessionId": "32cca051-dcae-4269-ae12-e8eca5e02146", - "calleePhoneNumber": "008605305343323", - "callerPhoneNumber": "008613882832314", - "protectedCallee": "008605305343323", - "protectedCaller": "008613882832314", - "ivrPath": [ - { - "key": "1", - "label": "分支内容1" - } - ], - "callerLocation": "四川达州移动", - "timeout": 30, - "type": "phone", - "serverType": "staffSeat", - "aiEnabled": false, - "id": "32cca051-dcae-4269-ae12-e8eca5e02146", - "phone": "008613882832314", - "direction": "0", - "startCallTime": 1736923493486 - }; + // this.acceptDialog = { + // "sessionId": "32cca051-dcae-4269-ae12-e8eca5e02146", + // "calleePhoneNumber": "008605305343323", + // "callerPhoneNumber": "008613882832314", + // "protectedCallee": "008605305343323", + // "protectedCaller": "008613882832314", + // "ivrPath": [ + // { + // "key": "1", + // "label": "分支内容1" + // } + // ], + // "callerLocation": "四川达州移动", + // "timeout": 30, + // "type": "phone", + // "serverType": "staffSeat", + // "aiEnabled": false, + // "id": "32cca051-dcae-4269-ae12-e8eca5e02146", + // "phone": "008613882832314", + // "direction": "0", + // "startCallTime": 1736923493486 + // }; // 呼入事件 - window.tccc.on('callIn', (callback) => { - this.acceptDialog = callback; - // this.acceptID = callback.id; - console.log(callback, '---呼入') + + window.tccc.on('callIn', (data) => { + this.acceptDialog = data; + // this.acceptID = data.id; + console.log(data, '---语音呼入') + }) + // 会话结束事件 + window.tccc.on('sessionEnded', (data) => { + this.$message.error('通话已结束!') + this.acceptDialog = null; + console.log(data, '---语音会话结束') }) }) }, @@ -113,6 +128,9 @@ export default { } } } + }, + beforeDestroy() { + this.$stompSocket.deactivate(); } }; 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/sound-on.svg b/src/assets/icons/svg/sound-on.svg new file mode 100644 index 0000000..7f78895 --- /dev/null +++ b/src/assets/icons/svg/sound-on.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + 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/assets/image/mediate/mediatefail.png b/src/assets/image/mediate/mediatefail.png new file mode 100644 index 0000000..2d83051 Binary files /dev/null and b/src/assets/image/mediate/mediatefail.png differ diff --git a/src/assets/image/mediate/mediatesuccess.png b/src/assets/image/mediate/mediatesuccess.png new file mode 100644 index 0000000..1d543e1 Binary files /dev/null and b/src/assets/image/mediate/mediatesuccess.png differ diff --git a/src/components/VoiceCallDialog.vue b/src/components/VoiceCallDialog.vue index d5c8636..73abe1f 100644 --- a/src/components/VoiceCallDialog.vue +++ b/src/components/VoiceCallDialog.vue @@ -1,5 +1,112 @@ \ No newline at end of file diff --git a/src/main.js b/src/main.js index a7485e1..3fa1249 100644 --- a/src/main.js +++ b/src/main.js @@ -46,7 +46,10 @@ new Vue({ keyWords:null,//关键字 description:null,//描述 sitetitle:null,//标题 - sitetitleinit:null// + sitetitleinit:null,// + firstlevelmenu:['/case-management','/mediation-package','/case-package','/payment-receipt','/mediation-management', + '/system-management/area-management','/system-management/role-permissions-management', + '/system-management/role-management','/system-management/user-management'] } }, metaInfo () { @@ -60,7 +63,42 @@ new Vue({ render: h => h(App), watch:{ '$route': function(to, from) { - console.log(to,from,'路由信息') + // console.log(to,from,'路由信息') + + // 判断当前登录人是否有该地址的访问权限 + if(this.firstlevelmenu.includes(to.path)) + { + let interviewFlag = false + if(JSON.parse(sessionStorage.getItem('userInfo'))) + { + let resources = JSON.parse(sessionStorage.getItem('userInfo')).resources + let menuTree = resources[0].children + + menuTree.forEach(item =>{ + if(item.url == to.path){ interviewFlag = true} + if(!interviewFlag) + { + item.children.forEach(item =>{ + if(item.url == to.path){ interviewFlag = true} + }) + } + }) + } + if(!interviewFlag) + { + // 判断当前登录人角色,如果是普通调解员,则默认展示区域且不可选择 + let identifier = this.$store.state.userinfo.roleIdentifier + if(identifier.includes('manager')) + { + router.push('/workbench') + } + else + { + router.push('/workbenchcm') + } + } + } + if(to.meta.title!=null&&to.meta.sitetitleinit!=null) { this.sitetitle=to.meta.title+'-'+this.sitetitleinit; diff --git a/src/pages/event-tracing/components/CallDialog.vue b/src/pages/event-tracing/components/CallDialog.vue index f3b6863..bdac5e9 100644 --- a/src/pages/event-tracing/components/CallDialog.vue +++ b/src/pages/event-tracing/components/CallDialog.vue @@ -52,7 +52,7 @@ - + @@ -66,10 +66,10 @@ - + diff --git a/src/pages/event-tracing/components/voideDialog.vue b/src/pages/event-tracing/components/voideDialog.vue index 6c3fe3f..2d26493 100644 --- a/src/pages/event-tracing/components/voideDialog.vue +++ b/src/pages/event-tracing/components/voideDialog.vue @@ -88,7 +88,7 @@