mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
fix: add sync messages for user synchronization feedback in chat-user.ts and SyncUsersDialog.vue
This commit is contained in:
parent
816825d5de
commit
41a0b1adca
|
|
@ -20,5 +20,10 @@ export default {
|
|||
confirmMessage: 'All members in this group will be removed after deletion. Proceed with caution!',
|
||||
},
|
||||
batchDeleteMember: 'Remove selected {count} members?',
|
||||
},
|
||||
syncMessage: {
|
||||
title: 'Successfully synced {count} users',
|
||||
usernameExist: 'The following usernames already exist:',
|
||||
nicknameExist: 'The following nicknames already exist:',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,5 +20,10 @@ export default {
|
|||
confirmMessage: '删除后,该用户组下的成员将全部移除,请谨慎操作!',
|
||||
},
|
||||
batchDeleteMember: '是否移除选中的 {count} 个成员?',
|
||||
},
|
||||
syncMessage: {
|
||||
title: '成功同步 {count} 个用户',
|
||||
usernameExist: '以下用户名已存在:',
|
||||
nicknameExist: '以下姓名已存在:',
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,5 +20,10 @@ export default {
|
|||
confirmMessage: '刪除後,該用戶組下的成員將全部移除,請謹慎操作!',
|
||||
},
|
||||
batchDeleteMember: '是否移除選中的 {count} 個成員?',
|
||||
},
|
||||
syncMessage: {
|
||||
title: '成功同步 {count} 個用戶',
|
||||
usernameExist: '以下用戶名已存在:',
|
||||
nicknameExist: '以下姓名已存在:',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
<template>
|
||||
<el-dialog v-model="dialogVisible" :close-on-click-modal="false" :close-on-press-escape="false"
|
||||
:destroy-on-close="true" width="600">
|
||||
:destroy-on-close="true" width="600">
|
||||
<template #header>
|
||||
<h4 class="mb-8 medium">{{ t('views.chatUser.syncUsers') }}</h4>
|
||||
<div class="color-secondary lighter">{{ t('views.chatUser.syncUsersTip') }}</div>
|
||||
</template>
|
||||
<el-form label-position="top" ref="formRef" :rules="rules" :model="form" require-asterisk-position="right">
|
||||
<el-form label-position="top" ref="formRef" :rules="rules" :model="form"
|
||||
require-asterisk-position="right">
|
||||
<el-form-item :label="$t('views.userManage.source.label')" prop="sync_type">
|
||||
<el-select v-model="form.sync_type" :placeholder="$t('common.selectPlaceholder')">
|
||||
<el-option :label="t('views.userManage.source.local')" value="LOCAL">
|
||||
|
|
@ -25,10 +26,10 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive } from 'vue'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { MsgSuccess } from '@/utils/message'
|
||||
import { t } from '@/locales'
|
||||
import {ref, reactive} from 'vue'
|
||||
import type {FormInstance} from 'element-plus'
|
||||
import {MsgError, MsgSuccess} from '@/utils/message'
|
||||
import {t} from '@/locales'
|
||||
import userManageApi from '@/api/system/chat-user'
|
||||
|
||||
const emit = defineEmits<{
|
||||
|
|
@ -46,14 +47,14 @@ const form = ref<{
|
|||
})
|
||||
|
||||
function open() {
|
||||
form.value = { ...defaultForm }
|
||||
form.value = {...defaultForm}
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
const formRef = ref<FormInstance>();
|
||||
|
||||
const rules = reactive({
|
||||
sync_type: [{ required: true, message: t('common.selectPlaceholder'), trigger: 'blur' }],
|
||||
sync_type: [{required: true, message: t('common.selectPlaceholder'), trigger: 'blur'}],
|
||||
})
|
||||
|
||||
const loading = ref<boolean>(false)
|
||||
|
|
@ -61,14 +62,30 @@ const submit = async (formEl: FormInstance | undefined) => {
|
|||
if (!formEl) return
|
||||
await formEl.validate((valid) => {
|
||||
if (valid) {
|
||||
userManageApi.batchSync(form.value.sync_type, loading).then(() => {
|
||||
MsgSuccess(t('common.syncSuccess'))
|
||||
emit('refresh')
|
||||
dialogVisible.value = false
|
||||
userManageApi.batchSync(form.value.sync_type, loading).then((res) => {
|
||||
if (res.data) {
|
||||
const count = res.data.success_count
|
||||
if (res.data.conflict_users && res.data.conflict_users.length > 0) {
|
||||
// 遍历res.data.conflict_users, 他是一个数组里面是对象
|
||||
let ErrorMsg = ''
|
||||
res.data.conflict_users.forEach((item: any) => {
|
||||
if (item.type === 'username') {
|
||||
ErrorMsg += '\n\n' + t('views.chatUser.syncMessage.usernameExist') + " [ " + item.users.join(',') + '\n' + ' ]'
|
||||
}
|
||||
if (item.type === 'nick_name') {
|
||||
ErrorMsg += '\n\n' + t('views.chatUser.syncMessage.nicknameExist') + " [ " + item.users.join(',') + '\n' + ' ]'
|
||||
}
|
||||
})
|
||||
MsgSuccess(t('views.chatUser.syncMessage.title', {count: count}) + ErrorMsg)
|
||||
emit('refresh')
|
||||
dialogVisible.value = false
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
defineExpose({open})
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue