|
@@ -10,7 +10,7 @@
|
|
|
<div v-show="activeIndex === 0" class="content">
|
|
|
<div class="left-content">
|
|
|
<div class="search-box">
|
|
|
- <el-input v-model="queryParams.keyword" class="custom-input" placeholder="组织架构搜索" style="width: 214px">
|
|
|
+ <el-input v-model="queryParams.label" class="custom-input" placeholder="组织架构搜索" style="width: 214px" @keyup.enter="getTree">
|
|
|
<template #prefix>
|
|
|
<el-icon class="el-input__icon"><search /></el-icon>
|
|
|
</template>
|
|
@@ -84,11 +84,11 @@
|
|
|
<!-- </div>-->
|
|
|
<!-- </div>-->
|
|
|
<div class="btn-box">
|
|
|
- <div class="btn">
|
|
|
+ <div class="btn" @click="handleJoinMeeting">
|
|
|
<div class="icon1"></div>
|
|
|
<div class="text">会议号入会</div>
|
|
|
</div>
|
|
|
- <div class="btn">
|
|
|
+ <div class="btn" @click="handleStartCall">
|
|
|
<div class="icon2"></div>
|
|
|
<div class="text">电话呼叫</div>
|
|
|
</div>
|
|
@@ -103,57 +103,25 @@
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
import { Search } from '@element-plus/icons-vue';
|
|
|
-import { getStartMiniParan } from '@/api/emergencyCommandMap/communication';
|
|
|
+import { getAvconDeptList, getAvconDeptTree, getStartMiniParan } from '@/api/emergencyCommandMap/communication';
|
|
|
+
|
|
|
+const proxy = getCurrentInstance()?.proxy;
|
|
|
|
|
|
let activeIndex = ref(0);
|
|
|
const options = ref([{ name: '全部', value: '全部' }]);
|
|
|
-const queryParams = ref({
|
|
|
- value1: '',
|
|
|
- keyword: ''
|
|
|
-});
|
|
|
const menu = ref([{ name: '视频会商' }, { name: '无人机' }, { name: '单兵设备' }]);
|
|
|
-const treeData = ref([
|
|
|
- {
|
|
|
- label: '茂名市',
|
|
|
- children: [
|
|
|
- {
|
|
|
- label: '茂名市委',
|
|
|
- children: [
|
|
|
- {
|
|
|
- label: '茂名市纪委监委',
|
|
|
- isLeaf: true
|
|
|
- },
|
|
|
- {
|
|
|
- label: '茂名市委办公室',
|
|
|
- isLeaf: true
|
|
|
- },
|
|
|
- {
|
|
|
- label: '茂名市委组织部',
|
|
|
- isLeaf: true
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '茂名市人大',
|
|
|
- children: [
|
|
|
- {
|
|
|
- label: '茂名市人大常委会秘书长、副秘书长',
|
|
|
- isLeaf: true
|
|
|
- },
|
|
|
- {
|
|
|
- label: '茂名市人大常委会办公室',
|
|
|
- isLeaf: true
|
|
|
- },
|
|
|
- {
|
|
|
- label: '茂名市人大常委会研究室',
|
|
|
- isLeaf: true
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
-]);
|
|
|
+const treeData = ref([]);
|
|
|
const userList = ref([]);
|
|
|
+const queryParams = reactive({
|
|
|
+ label: '',
|
|
|
+ value1: ''
|
|
|
+});
|
|
|
+
|
|
|
+const getTree = () => {
|
|
|
+ getAvconDeptTree(queryParams).then((res) => {
|
|
|
+ treeData.value = res.data;
|
|
|
+ });
|
|
|
+};
|
|
|
const selectList = computed(() => {
|
|
|
const data = [];
|
|
|
userList.value.forEach((item) => {
|
|
@@ -175,50 +143,15 @@ const getCheckedClass = () => {
|
|
|
return res;
|
|
|
};
|
|
|
const handleNodeClick = (item) => {
|
|
|
- if (item.isLeaf) {
|
|
|
- const data = [
|
|
|
- {
|
|
|
- id: 1,
|
|
|
- name: '李莉莉',
|
|
|
- duty: '副主任',
|
|
|
- dept: '茂名市/茂名市政府/茂名应急管理局'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 2,
|
|
|
- name: '何里',
|
|
|
- duty: '副主任',
|
|
|
- dept: '茂名市/茂名市政府/茂名应急管理局'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 3,
|
|
|
- name: '张三',
|
|
|
- duty: '副主任',
|
|
|
- dept: '茂名市/茂名市政府/茂名应急管理局'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 4,
|
|
|
- name: '张三',
|
|
|
- duty: '副主任',
|
|
|
- dept: '茂名市/茂名市政府/茂名应急管理局'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 5,
|
|
|
- name: '张三',
|
|
|
- duty: '副主任',
|
|
|
- dept: '茂名市/茂名市政府/茂名应急管理局'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 6,
|
|
|
- name: '张三',
|
|
|
- duty: '副主任',
|
|
|
- dept: '茂名市/茂名市政府/茂名应急管理局'
|
|
|
- }
|
|
|
- ];
|
|
|
- data.forEach((item) => {
|
|
|
- item.checked = false;
|
|
|
+ // if (item.isLeaf) {
|
|
|
+ // debugger
|
|
|
+ getAvconDeptList(item.id, {}).then((res) => {
|
|
|
+ res.data.forEach((item) => {
|
|
|
+ item.checked = false;
|
|
|
+ });
|
|
|
+ userList.value = res.data;
|
|
|
});
|
|
|
- userList.value = data;
|
|
|
- }
|
|
|
+ // }
|
|
|
};
|
|
|
// 全选、全取消
|
|
|
const handleChecked = () => {
|
|
@@ -252,13 +185,77 @@ const deleteItem = (item) => {
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
+// 会议号入会
|
|
|
+const handleJoinMeeting = () => {
|
|
|
+ proxy?.$modal.msgError('融合通信新开发功能,暂未对接');
|
|
|
+ return false;
|
|
|
+
|
|
|
+ const screenWidth = window.screen.width * window.devicePixelRatio;
|
|
|
+ const screenHeight = window.screen.height * window.devicePixelRatio;
|
|
|
+ const data = {
|
|
|
+ "userid": "", // 空表示后台获取当前用户对应融合通信dev_id
|
|
|
+ "password": "123",
|
|
|
+ roomid: '715724498', // 会议号
|
|
|
+ windowpos: { "x": 0, "y": 0, "width": screenWidth, "height": screenHeight, "top": true },
|
|
|
+ members: { num: 1} // 不用邀请别人
|
|
|
+ };
|
|
|
+ getStartMiniParan(data).then((res) => {
|
|
|
+ // 创建一个a标签元素
|
|
|
+ const a = document.createElement('a');
|
|
|
+ // 设置a标签的href属性
|
|
|
+ a.href = res.data;
|
|
|
+ // 触发点击事件
|
|
|
+ a.click();
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 电话呼叫
|
|
|
+const handleStartCall = () => {
|
|
|
+ let dev_list = [];
|
|
|
+ userList.value.forEach((item)=>{
|
|
|
+ if(item.checked && item.mobile != '') {
|
|
|
+ dev_list.push({id: item.mobile, avtype: 'a'}); // a 音频 v 视频 默认 av
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (dev_list.length == 0) {
|
|
|
+ proxy?.$modal.msgError('请勾选人员');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ const screenWidth = window.screen.width * window.devicePixelRatio;
|
|
|
+ const screenHeight = window.screen.height * window.devicePixelRatio;
|
|
|
+ const data = {
|
|
|
+ "userid": "", // 空表示后台获取当前用户对应融合通信dev_id
|
|
|
+ "password": "123",
|
|
|
+ roomid: '', // 空表示新会议室
|
|
|
+ windowpos: { "x": 0, "y": 0, "width": screenWidth, "height": screenHeight, "top": true },
|
|
|
+ members: {
|
|
|
+ num: dev_list.length + 2, // 配置多少个座位,一般就是邀请人多少个就多少个
|
|
|
+ "dev-list": dev_list,
|
|
|
+ // "sip-list": [ { "id": "60002" }, { "id": "60008", "avtype": "a" }, { "id": "60003", "avtype": "v" } ]
|
|
|
+ }
|
|
|
+ };
|
|
|
+ getStartMiniParan(data).then((res) => {
|
|
|
+ // 创建一个a标签元素
|
|
|
+ const a = document.createElement('a');
|
|
|
+ // 设置a标签的href属性
|
|
|
+ a.href = res.data;
|
|
|
+ // 触发点击事件
|
|
|
+ a.click();
|
|
|
+ });
|
|
|
+};
|
|
|
// 发起会议
|
|
|
const handleStartMeeting = () => {
|
|
|
+ const screenWidth = window.screen.width * window.devicePixelRatio;
|
|
|
+ const screenHeight = window.screen.height * window.devicePixelRatio;
|
|
|
const data = {
|
|
|
- userid: 'mmyj0006@mm.zw.yj',
|
|
|
- password: '123',
|
|
|
+ userid: 'mmyj0006@mm.zw.yj', // 空表示后台获取当前用户对应融合通信dev_id
|
|
|
+ password: '123', // 空表示后台获取
|
|
|
roomid: '',
|
|
|
- 'dev-list': [{ id: 'hh@mm.zw.yj', avtype: 'av' }]
|
|
|
+ windowpos: { "x": 0, "y": 0, "width": screenWidth, "height": screenHeight, "top": true },
|
|
|
+ members: {
|
|
|
+ num: 6, // 配置多少个座位,一般就是邀请人多少个就多少个
|
|
|
+ 'dev-list': [{ id: 'mmyj0010@mm.zw.yj', avtype: 'av' }] // 0010是李步尚
|
|
|
+ }
|
|
|
};
|
|
|
getStartMiniParan(data).then((res) => {
|
|
|
// 创建一个a标签元素
|
|
@@ -269,6 +266,10 @@ const handleStartMeeting = () => {
|
|
|
a.click();
|
|
|
});
|
|
|
};
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ getTree();
|
|
|
+})
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
@@ -423,9 +424,10 @@ const handleStartMeeting = () => {
|
|
|
background-color: #122868;
|
|
|
}
|
|
|
.phone-icon {
|
|
|
+ flex-shrink: 0;
|
|
|
width: 24px;
|
|
|
height: 25px;
|
|
|
- background: url('@/assets/images/emergencyCommandMap/communication/phone.png');
|
|
|
+ background: url('@/assets/images/emergencyCommandMap/communication/phone.png') no-repeat;
|
|
|
background-size: 100%;
|
|
|
cursor: pointer;
|
|
|
}
|