11<template >
22 <el-dialog v-model =" dialogVisible" :close-on-click-modal =" false" :close-on-press-escape =" false"
3- :destroy-on-close =" true" width =" 600" >
3+ :destroy-on-close =" true" width =" 600" >
44 <template #header >
55 <h4 class =" mb-8 medium" >{{ t('views.chatUser.syncUsers') }}</h4 >
66 <div class =" color-secondary lighter" >{{ t('views.chatUser.syncUsersTip') }}</div >
77 </template >
8- <el-form label-position =" top" ref =" formRef" :rules =" rules" :model =" form" require-asterisk-position =" right" >
8+ <el-form label-position =" top" ref =" formRef" :rules =" rules" :model =" form"
9+ require-asterisk-position =" right" >
910 <el-form-item :label =" $t('views.userManage.source.label')" prop =" sync_type" >
1011 <el-select v-model =" form.sync_type" :placeholder =" $t('common.selectPlaceholder')" >
1112 <el-option :label =" t('views.userManage.source.local')" value =" LOCAL" >
2526</template >
2627
2728<script setup lang="ts">
28- import { ref , reactive } from ' vue'
29- import type { FormInstance } from ' element-plus'
30- import { MsgSuccess } from ' @/utils/message'
31- import { t } from ' @/locales'
29+ import {ref , reactive } from ' vue'
30+ import type {FormInstance } from ' element-plus'
31+ import {MsgError , MsgSuccess } from ' @/utils/message'
32+ import {t } from ' @/locales'
3233import userManageApi from ' @/api/system/chat-user'
3334
3435const emit = defineEmits <{
@@ -46,29 +47,45 @@ const form = ref<{
4647})
4748
4849function open() {
49- form .value = { ... defaultForm }
50+ form .value = {... defaultForm }
5051 dialogVisible .value = true
5152}
5253
5354const formRef = ref <FormInstance >();
5455
5556const rules = reactive ({
56- sync_type: [{ required: true , message: t (' common.selectPlaceholder' ), trigger: ' blur' }],
57+ sync_type: [{required: true , message: t (' common.selectPlaceholder' ), trigger: ' blur' }],
5758})
5859
5960const loading = ref <boolean >(false )
6061const submit = async (formEl : FormInstance | undefined ) => {
6162 if (! formEl ) return
6263 await formEl .validate ((valid ) => {
6364 if (valid ) {
64- userManageApi .batchSync (form .value .sync_type , loading ).then (() => {
65- MsgSuccess (t (' common.syncSuccess' ))
66- emit (' refresh' )
67- dialogVisible .value = false
65+ userManageApi .batchSync (form .value .sync_type , loading ).then ((res ) => {
66+ if (res .data ) {
67+ const count = res .data .success_count
68+ if (res .data .conflict_users && res .data .conflict_users .length > 0 ) {
69+ // 遍历res.data.conflict_users, 他是一个数组里面是对象
70+ let ErrorMsg = ' '
71+ res .data .conflict_users .forEach ((item : any ) => {
72+ if (item .type === ' username' ) {
73+ ErrorMsg += ' \n\n ' + t (' views.chatUser.syncMessage.usernameExist' ) + " [ " + item .users .join (' ,' ) + ' \n ' + ' ]'
74+ }
75+ if (item .type === ' nick_name' ) {
76+ ErrorMsg += ' \n\n ' + t (' views.chatUser.syncMessage.nicknameExist' ) + " [ " + item .users .join (' ,' ) + ' \n ' + ' ]'
77+ }
78+ })
79+ MsgSuccess (t (' views.chatUser.syncMessage.title' , {count: count }) + ErrorMsg )
80+ emit (' refresh' )
81+ dialogVisible .value = false
82+ }
83+ }
84+
6885 })
6986 }
7087 })
7188}
7289
73- defineExpose ({ open })
90+ defineExpose ({open })
7491 </script >
0 commit comments