1.添加统一认证登陆
This commit is contained in:
2025-10-31 17:52:21 +08:00
parent 2e23b3641c
commit 80f7434a37
3 changed files with 94 additions and 11 deletions
+69 -11
View File
@@ -13,6 +13,10 @@
<div class="aui-formBox">
<div class="aui-formWell">
<div class="form-title">{{ t('sys.login.formTitle') }}</div>
<a-tabs v-model:activeKey="activeKey">
<a-tab-pane key="0" tab="健康系统认证" />
<a-tab-pane key="1" tab="平台统一认证" />
</a-tabs>
<div class="aui-form-box" style="height: 180px">
<a-form ref="loginRef" :model="formData" @keyup.enter.native="loginHandleClick">
<div class="aui-account">
@@ -37,7 +41,7 @@
/>
</a-form-item>
</div>
<div class="aui-inputClear">
<div class="aui-inputClear" v-if="activeKey === '0'">
<i class="icon icon-code"></i>
<a-form-item>
<a-input
@@ -61,19 +65,29 @@
/>
</div>
</div>
<div class="aui-flex remember">
<div class="aui-flex-box">
<div class="aui-choice">
<a-input v-model:value="rememberMe" class="fix-auto-fill" type="checkbox" />
<span class="aui-check">{{ t('sys.login.rememberMe') }}</span>
</div>
</div>
</div>
<!-- <div class="aui-flex remember">-->
<!-- <div class="aui-flex-box">-->
<!-- <div class="aui-choice">-->
<!-- <a-input v-model:value="rememberMe" class="fix-auto-fill" type="checkbox" />-->
<!-- <span class="aui-check">{{ t('sys.login.rememberMe') }}</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div>
</a-form>
</div>
<div class="aui-formButton">
<div class="aui-flex">
<div class="aui-formButton" style="margin-top: 10%">
<div class="aui-flex" v-if="activeKey === '1'">
<a-button
:loading="loginLoading"
class="aui-link-login aui-flex-box"
type="primary"
@click="loginHandleClickOne"
>
{{ t('sys.login.loginButton') }}
</a-button>
</div>
<div class="aui-flex" v-else>
<a-button
:loading="loginLoading"
class="aui-link-login aui-flex-box"
@@ -101,6 +115,7 @@
import { useI18n } from '/@/hooks/web/useI18n';
import { useDesign } from '/@/hooks/web/useDesign';
import { encipher } from '/@/utils/jsencrypt';
import { loginAnYanApi } from '/@/views/system/loginmini/login.api';
const { prefixCls } = useDesign('mini-login');
const { notification, createMessage } = useMessage();
@@ -111,6 +126,7 @@
requestCodeSuccess: false,
checkKey: null,
});
const activeKey = ref('0');
const rememberMe = ref<string>('0');
const type = ref<string>('login');
//账号登录表单字段
@@ -145,6 +161,9 @@
async function loginHandleClick() {
accountLogin();
}
async function loginHandleClickOne() {
accountLoginOne();
}
watch(
() => formData.password,
@@ -195,6 +214,45 @@
loginLoading.value = false;
}
}
async function accountLoginOne() {
if (!formData.username) {
createMessage.warn(t('sys.login.accountPlaceholder'));
return;
}
if (!formData.password) {
createMessage.warn(t('sys.login.passwordPlaceholder'));
return;
}
try {
loginLoading.value = true;
const { userInfo } = await userStore.loginOne(
toRaw({
password: encipher(formData.password) as string,
// password: formData.password,
username: formData.username,
captcha: formData.inputCode,
checkKey: randCodeData.checkKey,
mode: 'none', //不要默认的错误提示
})
);
if (userInfo) {
notification.success({
message: t('sys.login.loginSuccessTitle'),
description: `${t('sys.login.loginSuccessDesc')}: ${userInfo.realname}`,
duration: 3,
});
}
} catch (error) {
notification.error({
message: t('sys.api.errorTip'),
description: error.message || t('sys.login.networkExceptionMsg'),
duration: 3,
});
handleChangeCheckCode();
} finally {
loginLoading.value = false;
}
}
onMounted(() => {
//加载验证码
handleChangeCheckCode();
+6
View File
@@ -0,0 +1,6 @@
import { defHttp } from '/@/utils/http/axios';
export enum Api {
loginAnYan = '/sys/loginAnYan',
}
export const loginAnYanApi = (params: any) => defHttp.post({ url: Api.loginAnYan, params });