|
@@ -1,5 +1,6 @@
|
|
|
<template>
|
|
|
- <el-form ref="formRef" size="large" class="login-content-form" :model="state.ruleForm" :rules="rules" @keyup.enter="loginClick">
|
|
|
+ <el-form ref="formRef" size="large" class="login-content-form" :model="state.ruleForm" :rules="rules"
|
|
|
+ @keyup.enter="loginClick">
|
|
|
<el-form-item class="login-animation1" prop="username">
|
|
|
<el-input type="text" :placeholder="$t('message.account.accountPlaceholder1')" v-model="ruleForm.username"
|
|
|
clearable autocomplete="off">
|
|
@@ -9,8 +10,8 @@
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item class="login-animation2" prop="password">
|
|
|
- <el-input :type="isShowPassword ? 'text' : 'password'" :placeholder="$t('message.account.accountPlaceholder2')"
|
|
|
- v-model="ruleForm.password">
|
|
|
+ <el-input :type="isShowPassword ? 'text' : 'password'"
|
|
|
+ :placeholder="$t('message.account.accountPlaceholder2')" v-model="ruleForm.password">
|
|
|
<template #prefix>
|
|
|
<el-icon class="el-input__icon"><ele-Unlock /></el-icon>
|
|
|
</template>
|
|
@@ -39,18 +40,17 @@
|
|
|
</el-col>
|
|
|
</el-form-item>
|
|
|
<el-form-item class="login-animation4">
|
|
|
- <el-button type="primary" class="login-content-submit" round @click="loginClick"
|
|
|
- :loading="loading.signIn">
|
|
|
+ <el-button type="primary" class="login-content-submit" round @click="loginClick" :loading="loading.signIn">
|
|
|
<span>{{ $t('message.account.accountBtnText') }}</span>
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <!-- 申请试用-->
|
|
|
- <div style="text-align: center" v-if="showApply()">
|
|
|
- <el-button class="login-content-apply" link type="primary" plain round @click="applyBtnClick">
|
|
|
- <span>申请试用</span>
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
+ <!-- 申请试用-->
|
|
|
+ <div style="text-align: center" v-if="showApply()">
|
|
|
+ <el-button class="login-content-apply" link type="primary" plain round @click="applyBtnClick">
|
|
|
+ <span>申请试用</span>
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
@@ -73,7 +73,7 @@ import { SystemConfigStore } from '/@/stores/systemConfig';
|
|
|
import { BtnPermissionStore } from '/@/plugin/permission/store.permission';
|
|
|
import { Md5 } from 'ts-md5';
|
|
|
import { errorMessage } from '/@/utils/message';
|
|
|
-import {getBaseURL} from "/@/utils/baseUrl";
|
|
|
+import { getBaseURL } from "/@/utils/baseUrl";
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'loginAccount',
|
|
@@ -135,51 +135,55 @@ export default defineComponent({
|
|
|
const applyBtnClick = async () => {
|
|
|
window.open(getBaseURL('/api/system/apply_for_trial/'));
|
|
|
};
|
|
|
- const refreshCaptcha = async () => {
|
|
|
- state.ruleForm.captcha=''
|
|
|
+ const refreshCaptcha = async () => {
|
|
|
+ state.ruleForm.captcha = ''
|
|
|
loginApi.getCaptcha().then((ret: any) => {
|
|
|
state.ruleForm.captchaImgBase = ret.data.image_base;
|
|
|
state.ruleForm.captchaKey = ret.data.key;
|
|
|
});
|
|
|
};
|
|
|
const loginClick = async () => {
|
|
|
- if (!formRef.value) return
|
|
|
+ if (!formRef.value) return;
|
|
|
await formRef.value.validate((valid: any) => {
|
|
|
if (valid) {
|
|
|
- loginApi.login({ ...state.ruleForm, password: Md5.hashStr(state.ruleForm.password) }).then((res: any) => {
|
|
|
- if (res.code === 2000) {
|
|
|
- const {data} = res
|
|
|
- Cookies.set('username', res.data.username);
|
|
|
- Session.set('token', res.data.access);
|
|
|
- useUserInfo().setPwdChangeCount(data.pwd_change_count)
|
|
|
- if(data.pwd_change_count==0){
|
|
|
- return router.push('/login');
|
|
|
- }
|
|
|
- if (!themeConfig.value.isRequestRoutes) {
|
|
|
- // 前端控制路由,2、请注意执行顺序
|
|
|
- initFrontEndControlRoutes();
|
|
|
- loginSuccess();
|
|
|
- } else {
|
|
|
- // 模拟后端控制路由,isRequestRoutes 为 true,则开启后端控制路由
|
|
|
- // 添加完动态路由,再进行 router 跳转,否则可能报错 No match found for location with path "/"
|
|
|
- initBackEndControlRoutes();
|
|
|
- // 执行完 initBackEndControlRoutes,再执行 signInSuccess
|
|
|
- loginSuccess();
|
|
|
+ loginApi
|
|
|
+ .login({ ...state.ruleForm, password: Md5.hashStr(state.ruleForm.password) })
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res.code === 2000) {
|
|
|
+ const { data } = res;
|
|
|
+ Cookies.set('username', res.data.username);
|
|
|
+ Session.set('token', res.data.access);
|
|
|
+ Session.set('merchant_info', res.data.merchant_info);
|
|
|
+ useUserInfo().setPwdChangeCount(data.pwd_change_count);
|
|
|
+ /* if (data.pwd_change_count == 0) {
|
|
|
+ return router.push('/login');
|
|
|
+ } */
|
|
|
+ if (!themeConfig.value.isRequestRoutes) {
|
|
|
+ // 前端控制路由,2、请注意执行顺序
|
|
|
+ initFrontEndControlRoutes();
|
|
|
+ loginSuccess();
|
|
|
+ } else {
|
|
|
+ // 模拟后端控制路由,isRequestRoutes 为 true,则开启后端控制路由
|
|
|
+ // 添加完动态路由,再进行 router 跳转,否则可能报错 No match found for location with path "/"
|
|
|
+ initBackEndControlRoutes();
|
|
|
+ // 执行完 initBackEndControlRoutes,再执行 signInSuccess
|
|
|
+ loginSuccess();
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- }).catch((err: any) => {
|
|
|
- // 登录错误之后,刷新验证码
|
|
|
- refreshCaptcha();
|
|
|
- });
|
|
|
+ })
|
|
|
+ .catch((err: any) => {
|
|
|
+ // 登录错误之后,刷新验证码
|
|
|
+ refreshCaptcha();
|
|
|
+ });
|
|
|
} else {
|
|
|
- errorMessage("请填写登录信息")
|
|
|
+ errorMessage('请填写登录信息');
|
|
|
}
|
|
|
- })
|
|
|
-
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
// 登录成功后的跳转
|
|
|
const loginSuccess = () => {
|
|
|
//获取所有字典
|
|
@@ -187,23 +191,25 @@ export default defineComponent({
|
|
|
// 初始化登录成功时间问候语
|
|
|
let currentTimeInfo = currentTime.value;
|
|
|
// 登录成功,跳到转首页
|
|
|
- const pwd_change_count = userInfos.value.pwd_change_count
|
|
|
- if(pwd_change_count>0){
|
|
|
- // 如果是复制粘贴的路径,非首页/登录页,那么登录成功后重定向到对应的路径中
|
|
|
- if (route.query?.redirect) {
|
|
|
- router.push({
|
|
|
- path: <string>route.query?.redirect,
|
|
|
- query: Object.keys(<string>route.query?.params).length > 0 ? JSON.parse(<string>route.query?.params) : '',
|
|
|
- });
|
|
|
- } else {
|
|
|
- router.push('/');
|
|
|
- }
|
|
|
- // 登录成功提示
|
|
|
- // 关闭 loading
|
|
|
- state.loading.signIn = true;
|
|
|
- const signInText = t('message.signInText');
|
|
|
- ElMessage.success(`${currentTimeInfo},${signInText}`);
|
|
|
- }
|
|
|
+ const pwd_change_count = userInfos.value.pwd_change_count;
|
|
|
+ router.push('/');
|
|
|
+ state.loading.signIn = true;
|
|
|
+ const signInText = t('message.signInText');
|
|
|
+ ElMessage.success(`${currentTimeInfo},${signInText}`);
|
|
|
+ /* if (pwd_change_count > 0) {
|
|
|
+ // 如果是复制粘贴的路径,非首页/登录页,那么登录成功后重定向到对应的路径中
|
|
|
+ if (route.query?.redirect) {
|
|
|
+ router.push({
|
|
|
+ path: <string>route.query?.redirect,
|
|
|
+ query: Object.keys(<string>route.query?.params).length > 0 ? JSON.parse(<string>route.query?.params) : '',
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ // 登录成功提示
|
|
|
+ // 关闭 loading
|
|
|
+
|
|
|
+ } */
|
|
|
// 添加 loading,防止第一次进入界面时出现短暂空白
|
|
|
NextLoading.start();
|
|
|
};
|
|
@@ -212,10 +218,10 @@ export default defineComponent({
|
|
|
//获取系统配置
|
|
|
SystemConfigStore().getSystemConfigs();
|
|
|
});
|
|
|
- // 是否显示申请试用按钮
|
|
|
- const showApply = () => {
|
|
|
- return window.location.href.indexOf('public') != -1
|
|
|
- }
|
|
|
+ // 是否显示申请试用按钮
|
|
|
+ const showApply = () => {
|
|
|
+ return window.location.href.indexOf('public') != -1
|
|
|
+ }
|
|
|
|
|
|
return {
|
|
|
refreshCaptcha,
|
|
@@ -225,8 +231,8 @@ export default defineComponent({
|
|
|
state,
|
|
|
formRef,
|
|
|
rules,
|
|
|
- applyBtnClick,
|
|
|
- showApply,
|
|
|
+ applyBtnClick,
|
|
|
+ showApply,
|
|
|
...toRefs(state),
|
|
|
};
|
|
|
},
|