refactor: user group
This commit is contained in:
parent
62d0089c9e
commit
f2f6f82240
@ -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
|
||||
}
|
||||
@ -44,7 +44,7 @@ const delUserGroup: (user_group_id: string, loading?: Ref<boolean>) => Promise<R
|
||||
*/
|
||||
const postAddMember: (
|
||||
user_group_id: string,
|
||||
body: string[],
|
||||
body: any,
|
||||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<any>> = (user_group_id, body, loading) => {
|
||||
return post(`${prefix}/${user_group_id}/add_member`, body, {}, loading)
|
||||
|
||||
@ -1,11 +1,15 @@
|
||||
<template>
|
||||
<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">
|
||||
<el-form label-position="top" ref="formRef" :rules="rules" :model="form" require-asterisk-position="right">
|
||||
<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">
|
||||
<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-select v-model="form.user" multiple filterable :placeholder="$t('common.selectPlaceholder')"
|
||||
:loading="optionLoading">
|
||||
<el-option v-for="item in chatUserList" :key="item.id" :label="item.nick_name" :value="item.id">
|
||||
<el-select v-model="form.user" multiple filterable
|
||||
:placeholder="$t('common.selectPlaceholder')"
|
||||
:loading="optionLoading">
|
||||
<el-option v-for="item in chatUserList" :key="item.id" :label="item.nick_name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -22,13 +26,13 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onBeforeMount } from 'vue'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { MsgSuccess } from '@/utils/message'
|
||||
import { t } from '@/locales'
|
||||
import {ref, reactive, onBeforeMount} from 'vue'
|
||||
import type {FormInstance} from 'element-plus'
|
||||
import {MsgSuccess} from '@/utils/message'
|
||||
import {t} from '@/locales'
|
||||
import SystemGroupApi from '@/api/system/user-group'
|
||||
import userManageApi from '@/api/system/chat-user'
|
||||
import type { ChatUserItem } from '@/api/type/systemChatUser'
|
||||
import type {ChatUserItem} from '@/api/type/systemChatUser'
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'refresh'): void;
|
||||
@ -44,6 +48,7 @@ const form = ref<{ user: string[] }>({
|
||||
|
||||
const optionLoading = ref(false)
|
||||
const chatUserList = ref<ChatUserItem[]>([])
|
||||
|
||||
async function getChatUserList() {
|
||||
try {
|
||||
const res = await userManageApi.getChatUserList(optionLoading)
|
||||
@ -58,8 +63,9 @@ onBeforeMount(() => {
|
||||
})
|
||||
|
||||
const groupId = ref('');
|
||||
|
||||
function open(id: string) {
|
||||
form.value = { ...defaultForm }
|
||||
form.value = {...defaultForm}
|
||||
groupId.value = id
|
||||
dialogVisible.value = true
|
||||
}
|
||||
@ -67,7 +73,7 @@ function open(id: string) {
|
||||
const formRef = ref<FormInstance>();
|
||||
|
||||
const rules = reactive({
|
||||
user: [{ required: true, message: t('common.selectPlaceholder'), trigger: 'blur' }],
|
||||
user: [{required: true, message: t('common.selectPlaceholder'), trigger: 'blur'}],
|
||||
})
|
||||
|
||||
const loading = ref<boolean>(false)
|
||||
@ -75,7 +81,7 @@ const submit = async (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
await formEl.validate((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'))
|
||||
emit('refresh')
|
||||
dialogVisible.value = false
|
||||
@ -84,5 +90,5 @@ const submit = async (formEl: FormInstance | undefined) => {
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
defineExpose({open})
|
||||
</script>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user