|
|
|
|
@ -56,7 +56,7 @@ |
|
|
|
|
<img v-show="activeDevice !== item.id" src="~@/assets/image/device.png" alt=""> |
|
|
|
|
<img v-show="activeDevice == item.id" src="~@/assets/image/device_act.png" alt=""> |
|
|
|
|
</div> |
|
|
|
|
<div class="device_name" :class="activeDevice == item.id ? 'act_dev_name' : ''">{{item.name}}{{item.isSelect}}</div> |
|
|
|
|
<div class="device_name" :class="activeDevice == item.id ? 'act_dev_name' : ''">{{item.name}}</div> |
|
|
|
|
<div class="dev_btn_box"> |
|
|
|
|
<div class="dev_btn" @click="inviteUser(item)" v-show="activeDevice == item.id && !isIntercom && item.online">邀请</div> |
|
|
|
|
<div class="dev_btn del_btn" v-show="activeDevice == item.id" @click="deleteUser(item)">删除</div> |
|
|
|
|
@ -74,12 +74,12 @@ |
|
|
|
|
<!-- @node-expand="handleNodeExpand" @node-collapse="handleNodeCollapse" --> |
|
|
|
|
<!-- selectTreeNode.map(item => item == data.groupNum) ? 'select_node_item' : --> |
|
|
|
|
<span class="custom-tree-node" @mouseenter="enterNode(node,data)" @mouseleave="leaveNode" |
|
|
|
|
:class="[activeNode == data.groupNum ? 'active_node_item' : '',node.level == 1 ? 'first_node' : '']" |
|
|
|
|
:class="[activeNode == data.groupNum ? 'active_node_item' : '',node.level == 1 ? 'first_node' : !data.online ? 'outline' : '']" |
|
|
|
|
slot-scope="{ node, data }" > |
|
|
|
|
<i v-if="node.level == 1" class="spread_node"></i> |
|
|
|
|
<i v-if="node.level == 1" class="level_first" /> |
|
|
|
|
<i v-else-if="node.level == 2" class="level_second" :class="activeNode == data.groupNum ? 'active_level_second' : ''" /> |
|
|
|
|
<span :class="node.level == 1 ? 'first_span' : node.level == 2 ? 'second_span' : ''">{{ data.groupName }}</span> |
|
|
|
|
<span :class="node.level == 1 ? 'first_span' : node.level == 2 ? 'second_span ' : ''">{{ data.groupName }}</span> |
|
|
|
|
<span v-if="node.level == 1 && !isGroup" @click.stop="inviteGroup(data)" class="btn_level">邀请</span> |
|
|
|
|
<!-- <span v-if="activeNode == data.groupNum" class="btn_level">邀请</span> --> |
|
|
|
|
</span> |
|
|
|
|
@ -609,11 +609,11 @@ export default { |
|
|
|
|
mylog("receiveConferenceInvite: "); |
|
|
|
|
_conf = para.conference; |
|
|
|
|
}); |
|
|
|
|
setTimeout(() =>{ |
|
|
|
|
// setTimeout(() =>{ |
|
|
|
|
if(!isRegisted()) { |
|
|
|
|
regist(); |
|
|
|
|
} |
|
|
|
|
},2000) |
|
|
|
|
// },2000) |
|
|
|
|
}, |
|
|
|
|
// 获取所有调度组 |
|
|
|
|
getGroupData(){ |
|
|
|
|
@ -675,33 +675,8 @@ export default { |
|
|
|
|
// 邀请群组 |
|
|
|
|
inviteGroup(row){ |
|
|
|
|
console.log(row) |
|
|
|
|
this.$confirm('确定要邀请该群组吗?', '提示', { |
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
type: 'warning' |
|
|
|
|
}).then(() => { |
|
|
|
|
this.isGroup = true; |
|
|
|
|
row.children.map(item => { |
|
|
|
|
this.selectTreeNode.push(item.id) |
|
|
|
|
this.inviteList.push({ |
|
|
|
|
id:item.id, |
|
|
|
|
name:item.label |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
let audio = document.getElementById('video') //获取媒体控件 |
|
|
|
|
this.$refs.tree.setCheckedKeys(this.selectTreeNode); //把当前选择的key设置到el-tree中 |
|
|
|
|
client.startIntercom(row.id, audio).then((conf) => { //发起群组对讲 |
|
|
|
|
this._intercom = conf; |
|
|
|
|
setListener(); |
|
|
|
|
mylog("startintercom success"); |
|
|
|
|
}).catch((error) => { |
|
|
|
|
mylog("startIntercom fail: " + JSON.stringify(error)); |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
this.getGroupPeo(row) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
@ -836,15 +811,21 @@ export default { |
|
|
|
|
this.isIntercom = true; |
|
|
|
|
this.isMetting = false |
|
|
|
|
this.dialogCall = false; |
|
|
|
|
this.callItem.isSelect = 1; |
|
|
|
|
this.deviceData.find(item => item.id == this.callItem.id).isSelect = 1; |
|
|
|
|
this.inviteList.push(this.callItem); |
|
|
|
|
let audio = document.getElementById('video') //获取媒体控件 |
|
|
|
|
client.startTempIntercom([this.callItem.id],audio,"").then((conf) => { //发起临时对讲 |
|
|
|
|
|
|
|
|
|
// let audio = document.getElementById('video') //获取媒体控件 |
|
|
|
|
var members = [this.callItem.name] |
|
|
|
|
var mediaControl = video1; |
|
|
|
|
var name = '' |
|
|
|
|
client.startTempIntercom(members,mediaControl,name).then((conf) => { //发起临时对讲 |
|
|
|
|
console.log('发起对讲======================================================================>') |
|
|
|
|
this.callItem.isSelect = 1; |
|
|
|
|
this.deviceData.find(item => item.id == this.callItem.id).isSelect = 1; |
|
|
|
|
this.inviteList.push(this.callItem); |
|
|
|
|
this._intercom = conf; |
|
|
|
|
setListener(); |
|
|
|
|
mylog("startintercom success:" + conf.groupNumber); |
|
|
|
|
}).catch((error)=>{ |
|
|
|
|
this.$message.error('对讲失败') |
|
|
|
|
mylog("startIntercomfail:" + JSON.stringify(error)); |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
@ -860,10 +841,9 @@ export default { |
|
|
|
|
}, |
|
|
|
|
// 视频呼叫 |
|
|
|
|
videoCall(){ |
|
|
|
|
this.callItem.isSelect = 1; |
|
|
|
|
// this.callItem.isSelect = 1; |
|
|
|
|
this.isIntercom = false; |
|
|
|
|
this.deviceData.find(item => item.id == this.callItem.id).isSelect = 1; |
|
|
|
|
this.inviteList.push(this.callItem); |
|
|
|
|
|
|
|
|
|
this.dialogCall = false; |
|
|
|
|
this.makecall(true,2) |
|
|
|
|
}, |
|
|
|
|
@ -1128,27 +1108,90 @@ export default { |
|
|
|
|
// console.log('点击节点 ===>',data,node) |
|
|
|
|
|
|
|
|
|
// }, |
|
|
|
|
loadNode(node,resolve){ |
|
|
|
|
let arr = [] |
|
|
|
|
console.log('node ===>',node) |
|
|
|
|
getGroupPeo(data){ |
|
|
|
|
getGroupUser({ |
|
|
|
|
curPage:1, |
|
|
|
|
pageRows:100, |
|
|
|
|
groupNum:node.data.groupNum, |
|
|
|
|
groupName:node.data.groupName |
|
|
|
|
groupNum:data.groupNum, |
|
|
|
|
groupName:data.groupName |
|
|
|
|
}).then(res =>{ |
|
|
|
|
let dataList = res.data.page.dataList |
|
|
|
|
getOnline().then(res1 =>{ |
|
|
|
|
console.log('res1 ===>',res1) |
|
|
|
|
res1.data.Onlines.map(item1 =>{ |
|
|
|
|
res.data.page.dataList.map(item =>{ |
|
|
|
|
console.log('item1 ======>',item1) |
|
|
|
|
dataList.map(item =>{ |
|
|
|
|
item.online = false |
|
|
|
|
if(item1.employeeID == item.employeeID){ |
|
|
|
|
item.online = true |
|
|
|
|
} |
|
|
|
|
arr.push({groupNum:item.id,groupName:item.name,online:item.online}) |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
let tmp = dataList.find(item => item.online) |
|
|
|
|
console.log('tmp ==================>', tmp) |
|
|
|
|
if(tmp){ |
|
|
|
|
this.$confirm('确定要邀请该群组吗?', '提示', { |
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
type: 'warning' |
|
|
|
|
}).then(() => { |
|
|
|
|
this.isGroup = true; |
|
|
|
|
// row.children.map(item => { |
|
|
|
|
// this.selectTreeNode.push(item.id) |
|
|
|
|
// this.inviteList.push({ |
|
|
|
|
// id:item.id, |
|
|
|
|
// name:item.label |
|
|
|
|
// }) |
|
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
var groupNumber = data.groupNum; |
|
|
|
|
var mediaControl = video1 |
|
|
|
|
console.log('groupNumber===》',groupNumber,'media ===>',mediaControl) |
|
|
|
|
// this.$refs.tree.setCheckedKeys(this.selectTreeNode); //把当前选择的key设置到el-tree中 |
|
|
|
|
client.startIntercom(groupNumber,mediaControl).then((conf) => { //发起群组对讲 |
|
|
|
|
this._intercom = conf; |
|
|
|
|
setListener(); |
|
|
|
|
mylog("startintercom success"); |
|
|
|
|
}).catch((error) => { |
|
|
|
|
mylog("startIntercom fail: " + JSON.stringify(error)); |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
}else{ |
|
|
|
|
this.$message.error('该组下无在线人员,不可邀请') |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
loadNode(node,resolve){ |
|
|
|
|
let arr = [] |
|
|
|
|
getOnline().then(res =>{ |
|
|
|
|
let onlineData = res.data.Onlines |
|
|
|
|
getGroupUser({ |
|
|
|
|
curPage:1, |
|
|
|
|
pageRows:100, |
|
|
|
|
groupNum:node.data.groupNum, |
|
|
|
|
groupName:node.data.groupName |
|
|
|
|
}).then(res =>{ |
|
|
|
|
let dataList = res.data.page.dataList |
|
|
|
|
dataList.map(item =>{ |
|
|
|
|
item.online = false |
|
|
|
|
onlineData.map(item1 =>{ |
|
|
|
|
if(item.employeeID == item1.employeeID){ |
|
|
|
|
item.online = true |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
dataList.map(item =>{ |
|
|
|
|
arr.push({groupNum:item.id,groupName:item.name,online:item.online}) |
|
|
|
|
}) |
|
|
|
|
arr.sort((a, b) => b.online-a.online) |
|
|
|
|
return resolve(arr) |
|
|
|
|
}) |
|
|
|
|
console.log('arr ===>',arr) |
|
|
|
|
return resolve(arr) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
@ -1561,6 +1604,11 @@ export default { |
|
|
|
|
opacity: 0.4; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/deep/ .outline{ |
|
|
|
|
opacity: 0.4; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/deep/ .el-tree-node__content:hover{ |
|
|
|
|
background: transparent; |
|
|
|
|
} |
|
|
|
|
|