diff --git a/ui/src/views/login/components/LoginContainer.vue b/ui/src/layout/login-layout/LoginContainer.vue similarity index 100% rename from ui/src/views/login/components/LoginContainer.vue rename to ui/src/layout/login-layout/LoginContainer.vue diff --git a/ui/src/views/login/components/LoginLayout.vue b/ui/src/layout/login-layout/LoginLayout.vue similarity index 98% rename from ui/src/views/login/components/LoginLayout.vue rename to ui/src/layout/login-layout/LoginLayout.vue index 5ea09fe62..8c2150c4e 100644 --- a/ui/src/views/login/components/LoginLayout.vue +++ b/ui/src/layout/login-layout/LoginLayout.vue @@ -79,7 +79,7 @@ const loginImage = computed(() => { return `${fileURL.value}` } else { const imgName = getThemeImg(theme.themeInfo?.theme) - const imgPath = `../../../assets/theme/${imgName}.jpg` + const imgPath = `../../assets/theme/${imgName}.jpg` const imageUrl = new URL(imgPath, import.meta.url).href return imageUrl } diff --git a/ui/src/layout/login-layout/UserLoginLayout.vue b/ui/src/layout/login-layout/UserLoginLayout.vue new file mode 100644 index 000000000..09b2893a7 --- /dev/null +++ b/ui/src/layout/login-layout/UserLoginLayout.vue @@ -0,0 +1,60 @@ + + + + + + + + + + + diff --git a/ui/src/request/index.ts b/ui/src/request/index.ts index 4f35ee077..cda7de444 100644 --- a/ui/src/request/index.ts +++ b/ui/src/request/index.ts @@ -47,7 +47,7 @@ instance.interceptors.response.use( } if ( !response.config.url.includes('/valid') && - !response.config.url.includes('/function_lib/debug') + !response.config.url.includes('/tool/debug') ) { MsgError(response.data.message) return Promise.reject(response.data) diff --git a/ui/src/router/index.ts b/ui/src/router/index.ts index 8283e332a..06128d769 100644 --- a/ui/src/router/index.ts +++ b/ui/src/router/index.ts @@ -25,8 +25,8 @@ router.beforeEach( return } const { user, login } = useStore() - const notAuthRouteNameList = ['register', 'login', 'forgot_password', 'reset_password', 'Chat'] + const notAuthRouteNameList = ['login', 'ForgotPassword', 'ResetPassword', 'Chat', 'UserLogin'] if (!notAuthRouteNameList.includes(to.name ? to.name.toString() : '')) { if (to.query && to.query.token) { localStorage.setItem('token', to.query.token.toString()) diff --git a/ui/src/router/routes.ts b/ui/src/router/routes.ts index 6185d6ff5..7f470824c 100644 --- a/ui/src/router/routes.ts +++ b/ui/src/router/routes.ts @@ -24,6 +24,13 @@ export const routes: Array = [ component: () => import('@/views/chat/index.vue'), }, + // 对话用户登录 + { + path: '/user-login/:accessToken', + name: 'UserLogin', + component: () => import('@/views/chat/user-login/index.vue'), + }, + { path: '/login', name: 'login', diff --git a/ui/src/views/chat/user-login/ForgotPassword.vue b/ui/src/views/chat/user-login/ForgotPassword.vue new file mode 100644 index 000000000..6cd5c5b58 --- /dev/null +++ b/ui/src/views/chat/user-login/ForgotPassword.vue @@ -0,0 +1,137 @@ + + + + {{ $t('views.login.resetPassword') }} + + + + + + + + + + + + + + + {{ + $t('common.confirm') + }} + + + {{ $t('views.login.buttons.backLogin') }} + + + + + + + diff --git a/ui/src/views/chat/user-login/ResetPassword.vue b/ui/src/views/chat/user-login/ResetPassword.vue new file mode 100644 index 000000000..f8138c2f8 --- /dev/null +++ b/ui/src/views/chat/user-login/ResetPassword.vue @@ -0,0 +1,137 @@ + + + + {{ $t('views.login.resetPassword') }} + + + + + + + + + + + + + + + {{ + $t('common.confirm') + }} + + + {{ $t('views.login.buttons.backLogin') }} + + + + + + + diff --git a/ui/src/views/chat/user-login/components/LoginContainer.vue b/ui/src/views/chat/user-login/components/LoginContainer.vue new file mode 100644 index 000000000..0415bdc96 --- /dev/null +++ b/ui/src/views/chat/user-login/components/LoginContainer.vue @@ -0,0 +1,37 @@ + + + + + + + + {{ subTitle }} + + + + + + + + + diff --git a/ui/src/views/chat/user-login/components/LoginLayout.vue b/ui/src/views/chat/user-login/components/LoginLayout.vue new file mode 100644 index 000000000..8c2150c4e --- /dev/null +++ b/ui/src/views/chat/user-login/components/LoginLayout.vue @@ -0,0 +1,108 @@ + + + + + + + + + + + + + {{ + lang.label + }} + + + + + + + + + {{ currentLanguage }} + + + + + + + + + + diff --git a/ui/src/views/chat/user-login/index.vue b/ui/src/views/chat/user-login/index.vue new file mode 100644 index 000000000..93d42cf07 --- /dev/null +++ b/ui/src/views/chat/user-login/index.vue @@ -0,0 +1,450 @@ + + + + {{ loginMode || $t('views.login.title') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ $t('views.login.buttons.login') }} + + + + {{ $t('views.login.forgotPassword') }}? + + + + + + + + {{ $t('views.login.moreMethod') }} + + + + + {{ item }} + + + + + + + + + + + + diff --git a/ui/src/views/chat/user-login/scanCompinents/QrCodeTab.vue b/ui/src/views/chat/user-login/scanCompinents/QrCodeTab.vue new file mode 100644 index 000000000..a7781dd69 --- /dev/null +++ b/ui/src/views/chat/user-login/scanCompinents/QrCodeTab.vue @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + diff --git a/ui/src/views/chat/user-login/scanCompinents/dingtalkQrCode.vue b/ui/src/views/chat/user-login/scanCompinents/dingtalkQrCode.vue new file mode 100644 index 000000000..670084d38 --- /dev/null +++ b/ui/src/views/chat/user-login/scanCompinents/dingtalkQrCode.vue @@ -0,0 +1,141 @@ + + + + {{ $t('views.system.authentication.scanTheQRCode.dingtalkQrCode') }} + + + + + + + + + diff --git a/ui/src/views/chat/user-login/scanCompinents/larkQrCode.vue b/ui/src/views/chat/user-login/scanCompinents/larkQrCode.vue new file mode 100644 index 000000000..fd4e4fcb4 --- /dev/null +++ b/ui/src/views/chat/user-login/scanCompinents/larkQrCode.vue @@ -0,0 +1,59 @@ + + + + {{ $t('views.system.authentication.scanTheQRCode.larkQrCode') }} + + + + + + diff --git a/ui/src/views/chat/user-login/scanCompinents/wecomQrCode.vue b/ui/src/views/chat/user-login/scanCompinents/wecomQrCode.vue new file mode 100644 index 000000000..d0e639158 --- /dev/null +++ b/ui/src/views/chat/user-login/scanCompinents/wecomQrCode.vue @@ -0,0 +1,79 @@ + + + + + + + diff --git a/ui/src/views/login/ForgotPassword.vue b/ui/src/views/login/ForgotPassword.vue index 83ff33da1..3ab563136 100644 --- a/ui/src/views/login/ForgotPassword.vue +++ b/ui/src/views/login/ForgotPassword.vue @@ -28,7 +28,7 @@ size="large" class="input-item" v-model="resetPasswordForm.re_password" - :placeholder="$t('views.login.loginForm..re_password.placeholder')" + :placeholder="$t('views.login.loginForm.re_password.placeholder')" show-password > @@ -55,6 +55,8 @@