|
@@ -5,7 +5,9 @@
|
|
|
<nuxt-link tag="a" class="l_logo" :to="'/'">
|
|
|
<img
|
|
|
class="img"
|
|
|
- :src="filtersStore.getSiteLogo ? filtersStore.getSiteLogo : defaultImg "
|
|
|
+ :src="
|
|
|
+ filtersStore.getSiteLogo ? filtersStore.getSiteLogo : defaultImg
|
|
|
+ "
|
|
|
:onerror="defaultImg"
|
|
|
alt
|
|
|
/>
|
|
@@ -83,9 +85,12 @@
|
|
|
></span>
|
|
|
{{ errorMsg }}
|
|
|
</div>
|
|
|
- <a href="javascript:void(0)" @click="login" :class=" isLoading ? 'login_btn isLoading' : 'login_btn'">{{
|
|
|
- L["登录"]
|
|
|
- }}</a>
|
|
|
+ <a
|
|
|
+ href="javascript:void(0)"
|
|
|
+ @click="login"
|
|
|
+ :class="isLoading ? 'login_btn isLoading' : 'login_btn'"
|
|
|
+ >{{ L["登录"] }}</a
|
|
|
+ >
|
|
|
</div>
|
|
|
<div
|
|
|
:class="{
|
|
@@ -110,15 +115,15 @@
|
|
|
<script setup>
|
|
|
import { ElMessage } from "element-plus";
|
|
|
// import { lang_zn } from "@/assets/language/zh";
|
|
|
-import { getCurLanguage } from '@/composables/common.js';
|
|
|
+import { getCurLanguage } from "@/composables/common.js";
|
|
|
import { useUserInfo } from "@/store/user.js";
|
|
|
import { useFiltersStore } from "@/store/filter.js";
|
|
|
const configInfo = useUserInfo();
|
|
|
const filtersStore = useFiltersStore();
|
|
|
-const isLoading = ref(false)
|
|
|
+const isLoading = ref(false);
|
|
|
|
|
|
// const L = lang_zn;
|
|
|
-const L = getCurLanguage()
|
|
|
+const L = getCurLanguage();
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
const { proxy } = getCurrentInstance();
|
|
@@ -132,18 +137,18 @@ const defaultBgImg = ref("/login_bg.png");
|
|
|
const fromurl = ref("");
|
|
|
const wxEnable = ref("");
|
|
|
const pwdCalc = ref();
|
|
|
-const ImgBG = ref('')
|
|
|
+const ImgBG = ref("");
|
|
|
|
|
|
useHead({
|
|
|
- title: 'Login',
|
|
|
+ title: "Login",
|
|
|
meta: [
|
|
|
{
|
|
|
name: "description",
|
|
|
- content: 'Login',
|
|
|
+ content: "Login",
|
|
|
},
|
|
|
{
|
|
|
name: "keywords",
|
|
|
- content: 'Login',
|
|
|
+ content: "Login",
|
|
|
},
|
|
|
],
|
|
|
});
|
|
@@ -160,11 +165,13 @@ if (process.client) {
|
|
|
|
|
|
//获取背景图
|
|
|
const getBg = () => {
|
|
|
- get('v3/system/front/setting/getSettings?names=main_user_logon_bg').then(res=>{
|
|
|
- ImgBG.value = res.data[0]
|
|
|
- })
|
|
|
-}
|
|
|
-getBg()
|
|
|
+ get("v3/system/front/setting/getSettings?names=main_user_logon_bg").then(
|
|
|
+ (res) => {
|
|
|
+ ImgBG.value = res.data[0];
|
|
|
+ }
|
|
|
+ );
|
|
|
+};
|
|
|
+getBg();
|
|
|
|
|
|
const login = () => {
|
|
|
let param = {};
|
|
@@ -172,8 +179,8 @@ const login = () => {
|
|
|
param.password = password.value;
|
|
|
param.loginType = loginType.value;
|
|
|
//防止重复提交
|
|
|
- if(isLoading.value){
|
|
|
- return
|
|
|
+ if (isLoading.value) {
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
//账号验证
|
|
@@ -194,25 +201,24 @@ const login = () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- isLoading.value = true
|
|
|
+ isLoading.value = true;
|
|
|
|
|
|
post("v3/frontLogin/oauth/token", param).then((res) => {
|
|
|
- isLoading.value = false
|
|
|
+ isLoading.value = false;
|
|
|
if (res.state == 200) {
|
|
|
//将用户信息存缓存,并跳转到首页
|
|
|
filtersStore.setLoginStatus(true);
|
|
|
filtersStore.setToken(res.data.access_token);
|
|
|
- filtersStore.setRefreshToken(res.data.refresh_token)
|
|
|
- filtersStore.setTime(new Date().getTime().toString())//存储refresh_token更新时间
|
|
|
+ filtersStore.setRefreshToken(res.data.refresh_token);
|
|
|
+ filtersStore.setTime(new Date().getTime().toString()); //存储refresh_token更新时间
|
|
|
//获取用户信息,并同步信息到pinia
|
|
|
|
|
|
-
|
|
|
get("v3/member/front/member/getInfo").then((res) => {
|
|
|
if (res.state == 200) {
|
|
|
- filtersStore.setMemberInfo(res.data)
|
|
|
+ filtersStore.setMemberInfo(res.data);
|
|
|
if (window.history.state.back) {
|
|
|
// if(window.history.state.back == '/register' || window.history.state.back == '/member/login/forget' || window.history.state.back == '/member/login/forget' || window.history.state.back == '/member/login/forget'){
|
|
|
- window.location.href = '/'
|
|
|
+ window.location.href = "/";
|
|
|
// }else{
|
|
|
// window.location.href = window.history.state.back;
|
|
|
// }
|
|
@@ -283,4 +289,81 @@ onMounted(() => {
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
@import "@/assets/style/register.scss";
|
|
|
+.center {
|
|
|
+ padding: 30px 30px 40px;
|
|
|
+
|
|
|
+ .item {
|
|
|
+ position: relative;
|
|
|
+ margin-top: 15px;
|
|
|
+ border-radius: 2px;
|
|
|
+
|
|
|
+ &:first-child {
|
|
|
+ margin-top: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon {
|
|
|
+ position: absolute;
|
|
|
+ left: 1px;
|
|
|
+ top: 1px;
|
|
|
+ width: 50px;
|
|
|
+ text-align: center;
|
|
|
+ height: 38px;
|
|
|
+ background: #f8f8f8;
|
|
|
+
|
|
|
+ .input {
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
+ height: 40px;
|
|
|
+ padding: 0 44px 0 60px;
|
|
|
+ width: 326px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .input {
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
+ height: 40px;
|
|
|
+ padding: 0 44px 0 60px;
|
|
|
+ width: 326px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .cancel {
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ top: 1px;
|
|
|
+ width: 44px;
|
|
|
+ height: 38px;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ :before {
|
|
|
+ position: absolute;
|
|
|
+ top: 9px;
|
|
|
+ left: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .error {
|
|
|
+ margin-top: 10px;
|
|
|
+ position: relative;
|
|
|
+ color: $colorMain;
|
|
|
+ height: 16px;
|
|
|
+ line-height: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login_btn {
|
|
|
+ display: block;
|
|
|
+ margin-top: 35px;
|
|
|
+ background: $colorMain;
|
|
|
+ color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ border-radius: 2px;
|
|
|
+ height: 45px;
|
|
|
+ line-height: 45px;
|
|
|
+ font-size: 18px;
|
|
|
+ letter-spacing: 0px;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ opacity: 0.9;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|