refactor: chat ui
This commit is contained in:
parent
845ba0707e
commit
4ba5fa324a
@ -13,6 +13,8 @@ import { type ChatProfile } from '@/api/type/chat'
|
||||
import {type Ref} from 'vue'
|
||||
|
||||
import useStore from '@/stores'
|
||||
import type {LoginRequest} from "@/api/type/user.ts";
|
||||
|
||||
const prefix: any = {_value: '/workspace/'}
|
||||
Object.defineProperty(prefix, 'value', {
|
||||
get: function () {
|
||||
@ -66,10 +68,97 @@ const anonymousAuthentication: (
|
||||
const applicationProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
|
||||
return get('/application/profile', {}, loading)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 登录
|
||||
* @param request 登录接口请求表单
|
||||
* @param loading 接口加载器
|
||||
* @returns 认证数据
|
||||
*/
|
||||
const login: (accessToken: string, request: LoginRequest, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
||||
accessToken: string,
|
||||
request,
|
||||
loading,
|
||||
) => {
|
||||
return post('/auth/login/' + accessToken, request, undefined, loading)
|
||||
}
|
||||
|
||||
const ldapLogin: (accessToken: string, request: LoginRequest, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
||||
accessToken: string,
|
||||
request,
|
||||
loading,
|
||||
) => {
|
||||
return post('/auth/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('auth/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 {
|
||||
open,
|
||||
chat,
|
||||
chatProfile,
|
||||
anonymousAuthentication,
|
||||
applicationProfile,
|
||||
login,
|
||||
getCaptcha,
|
||||
getAuthType,
|
||||
getDingCallback,
|
||||
getQrType,
|
||||
getWecomCallback,
|
||||
getDingOauth2Callback,
|
||||
getLarkCallback,
|
||||
getQrSource,
|
||||
ldapLogin
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ import {MsgConfirm, MsgError} from '@/utils/message.ts'
|
||||
// import {loadScript} from '@/utils/utils'
|
||||
|
||||
const router = useRouter()
|
||||
const {login, user, theme} = useStore()
|
||||
const {login, user, theme, chatUser} = useStore()
|
||||
const {locale} = useI18n({useScope: 'global'})
|
||||
const loading = ref<boolean>(false)
|
||||
const route = useRoute()
|
||||
@ -297,31 +297,13 @@ function changeMode(val: string) {
|
||||
}
|
||||
|
||||
onBeforeMount(() => {
|
||||
loading.value = true
|
||||
user.asyncGetProfile().then((res) => {
|
||||
if (user.isEnterprise()) {
|
||||
loginApi
|
||||
.getAuthType(accessToken)
|
||||
.then((res: any) => {
|
||||
res = res.data || {}
|
||||
const direct = res.needDirect
|
||||
res = res.authType || []
|
||||
if (direct) {
|
||||
redirectAuth(res[0], false)
|
||||
} else {
|
||||
|
||||
//如果结果包含LDAP,把LDAP放在第一个
|
||||
const ldapIndex = res.indexOf('LDAP')
|
||||
if (ldapIndex !== -1) {
|
||||
const [ldap] = res.splice(ldapIndex, 1)
|
||||
res.unshift(ldap)
|
||||
}
|
||||
modeList.value = [...modeList.value, ...res].filter((item => item !== ''))
|
||||
if (chatUser.chat_profile?.login_value) {
|
||||
modeList.value = chatUser.chat_profile.login_value
|
||||
loginMode.value = modeList.value[0] || 'LOCAL'
|
||||
console.log(modeList.value)
|
||||
if (modeList.value.length == 1 && ['CAS', 'OIDC', 'OAuth2'].includes(modeList.value[0])) {
|
||||
redirectAuth(modeList.value[0])
|
||||
}
|
||||
}
|
||||
})
|
||||
.finally(() => (loading.value = false))
|
||||
// user
|
||||
// .getQrType()
|
||||
// .then((res) => {
|
||||
@ -342,10 +324,6 @@ onBeforeMount(() => {
|
||||
// }
|
||||
// })
|
||||
// .finally(() => (loading.value = false))
|
||||
} else {
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
})
|
||||
//declare const window: any
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user