refactor: user group

This commit is contained in:
wxg0103 2025-06-17 19:13:42 +08:00
parent 62d0089c9e
commit f2f6f82240
3 changed files with 22 additions and 110 deletions

View File

@ -1,94 +0,0 @@
import {Result} from '@/request/Result.ts'
import {get, post} from '@/request'
import type {LoginRequest} from '@/api/type/login.ts'
import type {Ref} from 'vue'
/**
*
* @param request
* @param loading
* @returns
*/
const login: (accessToken: string, request: LoginRequest, loading?: Ref<boolean>) => Promise<Result<any>> = (
accessToken: string,
request,
loading,
) => {
return post('/chat_user/login/' + accessToken, request, undefined, loading)
}
const ldapLogin: (accessToken: string, request: LoginRequest, loading?: Ref<boolean>) => Promise<Result<any>> = (
accessToken: string,
request,
loading,
) => {
return post('/chat_user/ldap/login/' + accessToken, request, undefined, loading)
}
/**
*
* @param loading
*/
const getCaptcha: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('/user/captcha', undefined, loading)
}
/**
*
*/
const getAuthType: (accessToken: string, loading?: Ref<boolean>) => Promise<Result<any>> = (accessToken, loading) => {
return get('chat_user/auth/types/' + accessToken, undefined, loading)
}
/**
*
*/
const getQrType: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('qr_type', undefined, loading)
}
const getQrSource: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('qr_type/source', undefined, loading)
}
const getDingCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('dingtalk', {code}, loading)
}
const getDingOauth2Callback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('dingtalk/oauth2', {code}, loading)
}
const getWecomCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('wecom', {code}, loading)
}
const getLarkCallback: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
code,
loading
) => {
return get('lark/oauth2', {code}, loading)
}
export default {
login,
getCaptcha,
getAuthType,
getDingCallback,
getQrType,
getWecomCallback,
getDingOauth2Callback,
getLarkCallback,
getQrSource,
ldapLogin
}

View File

@ -44,7 +44,7 @@ const delUserGroup: (user_group_id: string, loading?: Ref<boolean>) => Promise<R
*/ */
const postAddMember: ( const postAddMember: (
user_group_id: string, user_group_id: string,
body: string[], body: any,
loading?: Ref<boolean>, loading?: Ref<boolean>,
) => Promise<Result<any>> = (user_group_id, body, loading) => { ) => Promise<Result<any>> = (user_group_id, body, loading) => {
return post(`${prefix}/${user_group_id}/add_member`, body, {}, loading) return post(`${prefix}/${user_group_id}/add_member`, body, {}, loading)

View File

@ -1,11 +1,15 @@
<template> <template>
<el-dialog :title="$t('views.role.member.add')" v-model="dialogVisible" :close-on-click-modal="false" <el-dialog :title="$t('views.role.member.add')" v-model="dialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false" :destroy-on-close="true"> :close-on-press-escape="false" :destroy-on-close="true">
<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.chatUser.group.usernameOrName')" prop="user"> <el-form-item :label="$t('views.chatUser.group.usernameOrName')" prop="user">
<el-select v-model="form.user" multiple filterable :placeholder="$t('common.selectPlaceholder')" <el-select v-model="form.user" multiple filterable
:placeholder="$t('common.selectPlaceholder')"
:loading="optionLoading"> :loading="optionLoading">
<el-option v-for="item in chatUserList" :key="item.id" :label="item.nick_name" :value="item.id"> <el-option v-for="item in chatUserList" :key="item.id" :label="item.nick_name"
:value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -44,6 +48,7 @@ const form = ref<{ user: string[] }>({
const optionLoading = ref(false) const optionLoading = ref(false)
const chatUserList = ref<ChatUserItem[]>([]) const chatUserList = ref<ChatUserItem[]>([])
async function getChatUserList() { async function getChatUserList() {
try { try {
const res = await userManageApi.getChatUserList(optionLoading) const res = await userManageApi.getChatUserList(optionLoading)
@ -58,6 +63,7 @@ onBeforeMount(() => {
}) })
const groupId = ref(''); const groupId = ref('');
function open(id: string) { function open(id: string) {
form.value = {...defaultForm} form.value = {...defaultForm}
groupId.value = id groupId.value = id
@ -75,7 +81,7 @@ const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return if (!formEl) return
await formEl.validate((valid) => { await formEl.validate((valid) => {
if (valid) { if (valid) {
SystemGroupApi.postAddMember(groupId.value, form.value.user, loading).then(() => { SystemGroupApi.postAddMember(groupId.value, {"user_ids": form.value.user}, loading).then(() => {
MsgSuccess(t('common.createSuccess')) MsgSuccess(t('common.createSuccess'))
emit('refresh') emit('refresh')
dialogVisible.value = false dialogVisible.value = false