From 3e71d77e7809a709ca2015306ab7ef7935dc82d7 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 24 八月 2026 17:03:50 +0800
Subject: [PATCH] style(auth): 优化认证页面样式和登录组件
---
src/views/_core/authentication/login.vue | 80 ++++++++--------------------------------
1 files changed, 16 insertions(+), 64 deletions(-)
diff --git a/src/views/_core/authentication/login.vue b/src/views/_core/authentication/login.vue
index e63e399..819eb4b 100644
--- a/src/views/_core/authentication/login.vue
+++ b/src/views/_core/authentication/login.vue
@@ -1,28 +1,20 @@
<script lang="ts" setup>
-import type { VbenFormSchema } from '../../../packages/effects/common-ui/src';
+import type { VbenFormSchema } from '@vben/common-ui';
import type { AuthApi } from '#/api/core/auth';
-import { computed, onMounted, ref } from 'vue';
+import { computed, ref } from 'vue';
-import { AuthenticationLogin, Verification, z } from '../../../packages/effects/common-ui/src';
-import { isCaptchaEnable, isTenantEnable } from '../../../packages/effects/hooks/src';
-import { $t } from '../../../packages/locales/src';
-import { useAccessStore } from '../../../packages/stores/src';
+import { AuthenticationLogin, Verification, z } from '@vben/common-ui';
+import { isCaptchaEnable } from '@vben/hooks';
+import { $t } from '@vben/locales';
-import {
- checkCaptcha,
- getCaptcha,
- getTenantByWebsite,
- getTenantSimpleList,
-} from '#/api/core/auth';
+import { checkCaptcha, getCaptcha } from '#/api/core/auth';
import { useAuthStore } from '#/store';
defineOptions({ name: 'Login' });
const authStore = useAuthStore();
-const accessStore = useAccessStore();
-const tenantEnable = isTenantEnable();
const captchaEnable = isCaptchaEnable();
const loginRef = ref();
@@ -30,69 +22,29 @@
const captchaType = 'blockPuzzle'; // 楠岃瘉鐮佺被鍨嬶細'blockPuzzle' | 'clickWord'
-/** 鑾峰彇绉熸埛鍒楄〃 */
-const tenantList = ref<AuthApi.TenantResult[]>([]); // 绉熸埛鍒楄〃
-async function fetchTenantList() {
- if (!tenantEnable) {
- return;
- }
- try {
- // 鑾峰彇绉熸埛鍒楄〃
- tenantList.value = await getTenantSimpleList();
- } catch (error) {
- console.error('鑾峰彇绉熸埛鍒楄〃澶辫触:', error);
- }
-}
-
/** 澶勭悊鐧诲綍 */
-async function handleLogin(values: any) {
- // 濡傛灉寮�鍚獙璇佺爜锛屽垯鍏堥獙璇侀獙璇佺爜
+async function handleLogin(values: AuthApi.LoginParams) {
if (captchaEnable) {
verifyRef.value.show();
return;
}
- // 鏃犻獙璇佺爜锛岀洿鎺ョ櫥褰�
await authStore.authLogin('username', values);
}
/** 楠岃瘉鐮侀�氳繃锛屾墽琛岀櫥褰� */
-async function handleVerifySuccess({ captchaVerification }: any) {
- try {
- await authStore.authLogin('username', {
- ...(await loginRef.value.getFormApi().getValues()),
- captchaVerification,
- });
- } catch (error) {
- console.error('Error in handleLogin:', error);
- }
+async function handleVerifySuccess({
+ captchaVerification,
+}: {
+ captchaVerification: string;
+}) {
+ await authStore.authLogin('username', {
+ ...(await loginRef.value.getFormApi().getValues()),
+ captchaVerification,
+ });
}
-
-/** 缁勪欢鎸傝浇鏃惰幏鍙栫鎴蜂俊鎭� */
-onMounted(() => {
- fetchTenantList();
-});
const formSchema = computed((): VbenFormSchema[] => {
return [
- // {
- // component: 'VbenSelect',
- // componentProps: {
- // options: tenantList.value.map((item) => ({
- // label: item.name,
- // value: item.id.toString(),
- // })),
- // placeholder: $t('authentication.tenantTip'),
- // },
- // fieldName: 'tenantId',
- // label: $t('authentication.tenant'),
- // dependencies: {
- // triggerFields: ['tenantId'],
- // if: tenantEnable,
- // trigger(values) {
- // accessStore.setTenantId(values.tenantId ? Number(values.tenantId) : null);
- // },
- // },
- // },
{
component: 'VbenInput',
componentProps: {
--
Gitblit v1.9.3