Commit c17988d2 by pangchong

feat: 多人通话

parent e81c4b06
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
多人呼叫 多人呼叫
</a-button> </a-button>
</div> </div>
<a-collapse :bordered="false"> <a-collapse :bordered="false" :default-active-key="[0, 1]">
<a-collapse-item :header="key + '列表'" :key="index" v-for="(value, key, index) in getUserListGroup"> <a-collapse-item :header="key + '列表'" :key="index" v-for="(value, key, index) in getUserListGroup">
<contacts-list :data="value"></contacts-list> <contacts-list :data="value"></contacts-list>
</a-collapse-item> </a-collapse-item>
...@@ -72,7 +72,7 @@ onSuccess(({ data }) => { ...@@ -72,7 +72,7 @@ onSuccess(({ data }) => {
}) })
const searchParams = reactive({ const searchParams = reactive({
userName: '', userName: '',
isOnline: false isOnline: true
}) })
//获取联系人分组 //获取联系人分组
const getUserListGroup = computed(() => { const getUserListGroup = computed(() => {
......
<template> <template>
<a-checkbox-group v-model="checkbox" class="w-full"> <a-checkbox-group v-model="checkbox" class="w-full">
<template v-for="(item, index) in data" :key="item.id"> <template v-for="(item, index) in data" :key="item.id">
<div class="item flex items-center px-4 py-3 rounded cursor-pointer" v-if="userStore.user_info.id !== item.id"> <div class="item flex items-center px-4 py-3 rounded cursor-pointer">
<global-avatar></global-avatar> <global-avatar></global-avatar>
<div class="ml-[9px] inline-block">{{ item.nickname }}</div> <div class="ml-[9px] inline-block">{{ item.nickname }}</div>
<div class="flex-auto text-right"> <div class="flex-auto text-right">
...@@ -14,9 +14,7 @@ ...@@ -14,9 +14,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ContactsItemDto } from '@/store/contacts/types' import { ContactsItemDto } from '@/store/contacts/types'
import useUserStore from '@/store/user'
const userStore = useUserStore()
interface Props { interface Props {
data?: Array<ContactsItemDto> data?: Array<ContactsItemDto>
} }
......
<template> <template>
<global-model v-model:visible="showModel" title="选择通话用户" :width="320"> <global-model v-model:visible="showModel" title="选择通话用户" :width="320">
<div class="h-80 overflow-y-auto"> <div class="h-80 overflow-y-auto">
<a-collapse :bordered="false"> <a-collapse :bordered="false" :default-active-key="[0, 1]">
<a-collapse-item :header="key + '列表'" :key="index" v-for="(value, key, index) in getUserListGroup"> <a-collapse-item :header="key + '列表'" :key="index" v-for="(value, key, index) in getUserListGroup">
<contacts-list-choose :data="value" v-model="chooseUserIds" v-if="value.length"></contacts-list-choose> <contacts-list-choose :data="value" v-model="chooseUserIds" v-if="value.length"></contacts-list-choose>
</a-collapse-item> </a-collapse-item>
</a-collapse> </a-collapse>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" type="primary" @click="showModel = false" :disabled="chooseUserIds.length == 0">呼叫{{ chooseUserIds.length }}</a-button> <a-button size="large" type="primary" @click="multiCall" :disabled="chooseUserIds.length == 0">呼叫{{ chooseUserIds.length }}</a-button>
<a-button size="large" @click="showModel = false">取消</a-button> <a-button size="large" @click="showModel = false">取消</a-button>
</template> </template>
</global-model> </global-model>
...@@ -20,7 +20,9 @@ import useContactsStore from '@/store/contacts/index' ...@@ -20,7 +20,9 @@ import useContactsStore from '@/store/contacts/index'
import contactsListChoose from './contactsListChoose.vue' import contactsListChoose from './contactsListChoose.vue'
import { cloneDeep } from 'lodash' import { cloneDeep } from 'lodash'
import { videoGroup } from '@/constants/common/user' import { videoGroup } from '@/constants/common/user'
import useUserStore from '@/store/user'
const userStore = useUserStore()
//选中的联系人数组id //选中的联系人数组id
const chooseUserIds = ref([]) const chooseUserIds = ref([])
const showModel = ref(false) const showModel = ref(false)
...@@ -40,12 +42,16 @@ const getUserListGroup = computed(() => { ...@@ -40,12 +42,16 @@ const getUserListGroup = computed(() => {
result[groupName] = [] result[groupName] = []
} }
//在线人员 //在线人员
if (getOnlineContacts.value.find((_item) => _item.id == item.id)) { if (getOnlineContacts.value.find((_item) => _item.id == item.id) && userStore.user_info.id !== item.id) {
result[groupName].push(item) result[groupName].push(item)
} }
return result return result
}, {}) }, {})
}) })
//多人呼叫
const multiCall = () => {
console.log(chooseUserIds.value)
}
defineExpose({ defineExpose({
open open
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment