提交 b144a8f6 authored 作者: jinrb's avatar jinrb

新增粤政易账号登录

上级 a9bfd966
......@@ -12,6 +12,7 @@ import { PageEnum } from '/@/enums/pageEnum';
const { createErrorModal } = useMessage();
enum Api {
Login = '/sys/login',
yzyLogin = '/sys/yzyLogin',
phoneLogin = '/sys/phoneLogin',
Logout = '/sys/logout',
GetUserInfo = '/sys/user/getUserInfo',
......@@ -62,6 +63,17 @@ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal')
}
);
}
export function yzyLoginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
return defHttp.post<LoginResultModel>(
{
url: Api.yzyLogin,
params,
},
{
errorMessageMode: mode,
}
);
}
/**
* @description: user phoneLogin api
......
......@@ -7,7 +7,7 @@ import { PageEnum } from '/@/enums/pageEnum';
import { ROLES_KEY, TOKEN_KEY, USER_INFO_KEY, LOGIN_INFO_KEY, DB_DICT_DATA_KEY, TENANT_ID } from '/@/enums/cacheEnum';
import { getAuthCache, setAuthCache, removeAuthCache } from '/@/utils/auth';
import { GetUserInfoModel, LoginParams, ThirdLoginParams } from '/@/api/sys/model/userModel';
import { doLogout, getUserInfo, loginApi, phoneLoginApi, thirdLogin, codeLogin, bindYzy } from '/@/api/sys/user';
import { doLogout, getUserInfo, loginApi, yzyLoginApi, phoneLoginApi, thirdLogin, codeLogin, bindYzy } from '/@/api/sys/user';
import { useI18n } from '/@/hooks/web/useI18n';
import { useMessage } from '/@/hooks/web/useMessage';
import { router } from '/@/router';
......@@ -132,6 +132,27 @@ export const useUserStore = defineStore({
return Promise.reject(error);
}
},
/**
* 粤政易登录事件
*/
async yzylogin(
params: LoginParams & {
goHome?: boolean;
mode?: ErrorMessageMode;
}
): Promise<GetUserInfoModel | null> {
try {
const { goHome = true, mode, ...loginParams } = params;
const data = await yzyLoginApi(loginParams, mode);
const { token, userInfo } = data;
// save token
this.setToken(token);
// this.setTenant(userInfo.loginTenantId);
return this.afterLoginAction(goHome, data);
} catch (error) {
return Promise.reject(error);
}
},
/**
* 扫码登录事件
*/
......
......@@ -9,10 +9,13 @@
</div>
<div class="aui-form">
<div class="aui-formBox">
<div class="aui-formWell">
<div class="aui-flex aui-form-nav investment_title">
<a-tabs v-model:activeKey="activeKey" @change="changeTab">
<a-tab-pane key="1" tab="建设用地账号登录">
<!-- <div class="aui-flex aui-form-nav investment_title">
<div class="aui-flex-box">{{ t('sys.login.signInFormTitle') }} </div>
</div>
</div> -->
<div class="aui-form-box" style="height: 260px">
<a-form ref="loginRef" :model="formData" v-if="activeIndex === 'accountLogin'" @keyup.enter.native="loginHandleClick">
<div class="aui-account">
......@@ -40,6 +43,32 @@
</div>
</a-form>
</div>
</a-tab-pane>
<a-tab-pane key="2" tab="粤政易账号登录">
<!-- <div class="aui-flex aui-form-nav investment_title">
<div class="aui-flex-box">{{ t('sys.login.signInFormTitle') }} </div>
</div> -->
<div class="aui-form-box" style="height: 260px">
<a-form ref="loginRef" :model="formData" v-if="activeIndex === 'accountLogin'" @keyup.enter.native="loginHandleClick">
<div class="aui-account">
<div class="aui-inputClear">
<i class="icon icon-code"></i>
<a-form-item>
<a-input class="fix-auto-fill" :placeholder="t('sys.login.userName')" v-model:value="formData.username" />
</a-form-item>
</div>
<div class="aui-inputClear">
<i class="icon icon-password"></i>
<a-form-item>
<a-input-password class="fix-auto-fill" :placeholder="t('sys.login.password')" v-model:value="formData.password" />
</a-form-item>
</div>
</div>
</a-form>
</div>
</a-tab-pane>
</a-tabs>
<!-- 登录按钮 -->
<div class="aui-formButton">
<div class="aui-flex">
......@@ -87,6 +116,7 @@
url:'',
});
//手机登录表单字段
const activeKey = ref('1');
const loginRef = ref();
......@@ -98,6 +128,15 @@
},
});
function changeTab() {
formData.value = {
inputCode: '',
username: '',
password: '',
url:'',
}
}
/**
* 获取验证码
*/
......@@ -128,24 +167,44 @@
}
try {
loginLoading.value = true;
const { userInfo }: any = await userStore.login(
toRaw({
password: RsaParams(formData.password),
username: RsaParams(formData.username),
url: RsaParams(formData.url),
captcha: formData.inputCode,
checkKey: randCodeData.checkKey,
mode: 'none', //不要默认的错误提示
})
);
if (userInfo) {
userStore.setUserInfo(userInfo);
notification.success({
message: t('sys.login.loginSuccessTitle'),
description: `${t('sys.login.loginSuccessDesc')}: ${userInfo.realname}`,
duration: 3,
});
if (activeKey.value == '1') {
const { userInfo }: any = await userStore.login(
toRaw({
password: RsaParams(formData.password),
username: RsaParams(formData.username),
url: RsaParams(formData.url),
captcha: formData.inputCode,
checkKey: randCodeData.checkKey,
mode: 'none', //不要默认的错误提示
})
);
if (userInfo) {
userStore.setUserInfo(userInfo);
notification.success({
message: t('sys.login.loginSuccessTitle'),
description: `${t('sys.login.loginSuccessDesc')}: ${userInfo.realname}`,
duration: 3,
});
}
} else {
const { userInfo }: any = await userStore.yzylogin(
toRaw({
password: RsaParams(formData.password),
username: RsaParams(formData.username),
mode: 'none', //不要默认的错误提示
})
);
if (userInfo) {
userStore.setUserInfo(userInfo);
notification.success({
message: t('sys.login.loginSuccessTitle'),
description: `${t('sys.login.loginSuccessDesc')}: ${userInfo.realname}`,
duration: 3,
});
}
}
} catch (error: any) {
notification.error({
message: t('sys.api.errorTip'),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论