diff --git a/src/components/common/SelectDialog.vue b/src/components/common/SelectDialog.vue new file mode 100644 index 0000000..655898a --- /dev/null +++ b/src/components/common/SelectDialog.vue @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + {{ `${optionsBySearch[item]?.nickName} ${optionsBySearch[item]?.account}` }} + + + + + + + + {{ `已选择:${selected.length} 人` }} + + 清空 + + + + {{ `${optionsBySearch[item].nickName} ${optionsBySearch[item].account}` }} + + + + + + + + + + + + + diff --git a/src/views/contacts/user/SubPartition.vue b/src/views/contacts/user/SubPartition.vue index 291083e..8b44c3f 100644 --- a/src/views/contacts/user/SubPartition.vue +++ b/src/views/contacts/user/SubPartition.vue @@ -16,11 +16,14 @@ import { } from '@/api/message' import { PARTITION_TYPE } from '@/const/userConst' import { ElMessage, ElMessageBox } from 'element-plus' -import { messageStore } from '@/stores' +import { messageStore, userStore } from '@/stores' import { ElLoading } from 'element-plus' import { el_loading_options } from '@/const/commonConst' +import SelectDialog from '@/components/common/SelectDialog.vue' +import { combineId } from '@/js/utils/common' const messageData = messageStore() +const userData = userStore() const partitionSearchKey = ref('') const userSearchKey = ref('') const isShowAddPartitionDialog = ref(false) @@ -29,10 +32,9 @@ const oprMenuRef = ref() const showOprMenuPartitionId = ref(0) const selectedIndex = ref('') -const isAddSession = ref(false) +const isShowSelectDialog = ref(false) const addSessionSelected = ref([]) const addSessionPartitionId = ref(null) -const addSessionTransferRef = ref() onMounted(async () => { if (!Object.keys(messageData.sessionList).length) { @@ -77,13 +79,10 @@ const detailData = computed(() => { }) const hasNoParitionSessions = computed(() => { - const data = [] + const data = {} Object.values(messageData.sessionList).forEach((item) => { if (item.partitionId === 0) { - data.push({ - key: item.sessionId, - label: item.objectInfo.nickName - }) + data[item.objectInfo.account] = item.objectInfo } }) return data @@ -186,23 +185,18 @@ const showOperationMenu = (e, partitionId) => { const onShowAddSessionByButton = (partitionId) => { addSessionPartitionId.value = partitionId addSessionSelected.value = [] - isAddSession.value = true + isShowSelectDialog.value = true } -const onCloseAddSession = () => { - addSessionTransferRef.value.clearQuery('left') - addSessionTransferRef.value.clearQuery('right') - isAddSession.value = false -} - -const onSaveAddSession = () => { - addSessionSelected.value.forEach((sessionId) => { +const onConfirmSelect = (selected) => { + addSessionSelected.value = selected + addSessionSelected.value.forEach((account) => { + const sessionId = combineId(account, userData.user.account) messageData.updateSession({ sessionId: sessionId, partitionId: partitions.value[addSessionPartitionId.value].partitionId }) }) - isAddSession.value = false } const isShowUserCard = ref(false) @@ -314,17 +308,12 @@ const onShowUserCard = async ({ sessionId, account }) => { @close="isShowRenamePartitionDialog = false" @confirm="onRenamePartitionConfirm" > - - + 为分组 { 添加联系人 - - - - - +