From 732c30b33f782c2d2ebb62eacda2fb7a453a7ecd Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Sat, 31 Jan 2026 11:01:45 +0800
Subject: [PATCH] 1
---
src/page/login/login.vue | 162 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 127 insertions(+), 35 deletions(-)
diff --git a/src/page/login/login.vue b/src/page/login/login.vue
index cb0a528..9043283 100644
--- a/src/page/login/login.vue
+++ b/src/page/login/login.vue
@@ -1,12 +1,31 @@
<template>
<div class="login_page">
- <headers />
+ <!-- <headers /> -->
+ <tab-head :leftShow="false" :rightShow="false">
+ <van-popover
+ v-model="languageShow"
+ trigger="click"
+ :actions="actions"
+ @select="onSelect"
+ placement="bottom-end"
+ >
+ <template #reference>
+ <div class="multilingual">
+ <img src="../../assets/img/language.svg" alt="" />
+ </div>
+ </template>
+ </van-popover>
+ </tab-head>
+
+ <img src="../../assets/img/logo.png" alt="" class="logo" />
+
<div class="login_title animated slideInDown">
- <span>{{ $t("登錄賬號") }}</span>
+ <span>{{ $t("dlan") }}</span>
</div>
<div class="logins_content">
<div class="login_forms">
<div class="top_forms">
+ <div class="forms_title">{{ $t("hj27") }}</div>
<el-input
:placeholder="$t('hj9')"
:size="medium"
@@ -14,8 +33,8 @@
clearable
>
</el-input>
+ <div class="forms_title">{{ $t("Password") }}</div>
<el-input
- style="margin-top: 0.46rem"
show-password
:placeholder="$t('hj10')"
:size="medium"
@@ -30,13 +49,22 @@
:disabled="!btnClass"
class="butn"
@click="loginIN"
- >{{ $t("立即登录") }}</van-button
>
- <div class="password-operate" data-v-8cc76a7b="">
- <div class="forget" data-v-8cc76a7b="" @click="getApp()">
+ {{ $t("立即登录") }}
+ </van-button>
+ <van-button
+ type="info"
+ plain
+ class="butn_2"
+ @click="$router.push('/register')"
+ >
+ {{ $t("免費註冊") }}
+ </van-button>
+ <div class="password-operate">
+ <div class="forget" @click="getApp()">
{{ $t("hj12") }}
</div>
- <div class="remember" data-v-8cc76a7b="">
+ <div class="remember">
<van-checkbox @change="checkboxChange" v-model="checked">{{
$t("記住帳戶密碼")
}}</van-checkbox>
@@ -45,23 +73,20 @@
</div>
</div>
- <div class="register" data-v-8cc76a7b="">
- {{ $t("還沒賬號?")
- }}<span
- @click="$router.push('/register')"
- data-v-8cc76a7b=""
- style="color: rgb(5, 106, 239)"
- >{{ $t("免費註冊") }}</span
- >
- </div>
+ <!-- <div class="register" data-v-8cc76a7b="">
+ {{ $t("還沒賬號?") }}
+ <span @click="$router.push('/register')" data-v-8cc76a7b="" style="color:#c4d600">{{ $t("免費註冊") }}</span>
+ </div> -->
</div>
</div>
</template>
<script>
-import headers from "./components/header.vue";
+// import headers from "./components/header.vue";
+import tabHead from "../../components/tabHead.vue";
import * as api from "@/axios/api";
import { Notify } from "vant";
import { mapActions, mapMutations } from "vuex";
+import { languageOptions } from "@/config/languageOptions";
export default {
name: "newLogin",
@@ -75,10 +100,14 @@
userName: "",
btnClass: false,
medium: "medium",
+ languageShow: false, // 语言选择
+ // 多语言配置
+ actions: languageOptions
};
},
components: {
- headers,
+ // headers,
+ tabHead
},
mounted() {
const ret = window.localStorage.getItem("login_admin");
@@ -93,8 +122,8 @@
methods: {
...mapActions(["setUseInfo"]),
...mapMutations(["undataToken"]),
- checkboxChange(e) {
- window.localStorage.setItem("login_checked", e);
+ checkboxChange(checked) {
+ window.localStorage.setItem("login_checked", checked.toString());
},
getApp() {
// Toast('您所在的地区暂未开通此服务')
@@ -111,7 +140,7 @@
async loginIN() {
let opts = {
phone: this.userName,
- userPwd: this.userPassword,
+ userPwd: this.userPassword
};
let data = await api.login(opts);
@@ -122,7 +151,7 @@
"login_admin",
JSON.stringify({
phone: this.userName,
- userPassword: this.userPassword,
+ userPassword: this.userPassword
})
);
} else {
@@ -132,10 +161,11 @@
this.$store.state.userInfo.token = data.data.token;
this.undataToken(data.data.token);
window.localStorage.setItem("USERTOKEN", data.data.token);
- Notify({ type: "success", message: this.$t("hj36") });
+ // Notify({ type: "success", message: this.$t("hj36") });
setTimeout(() => {
- this.$router.push("/home");
+ // this.$router.push("/home");
+ this.$router.push("/home_index");
}, 1000);
} else {
Notify({ type: "warning", message: data.msg });
@@ -145,29 +175,50 @@
navigator.vibrate([55]);
}
},
+ // 选择语言
+ onSelect(e) {
+ window.localStorage.setItem("language", e.lang);
+ this.$i18n.locale = e.lang;
+ }
},
beforeDestroy() {},
- created() {},
+ created() {}
};
</script>
<style scoped lang="less">
+@green: #c4d600;
+
.password-operate {
display: flex;
justify-content: space-between;
+ align-items: center;
margin-top: 0.53333rem;
+ padding: 0 0.1rem;
+
.forget {
font-style: normal;
font-weight: 400;
font-size: 0.37333rem;
line-height: 0.53333rem;
color: #8c9fad;
+ cursor: pointer;
}
+
+ .remember {
+ display: flex;
+ align-items: center;
+ }
+}
+
+/deep/ .van-checkbox__icon--checked .van-icon {
+ background: @green;
+ border-color: @green;
}
.register {
font-style: normal;
- font-weight: 400;
+ font-weight: 500;
font-size: 0.37333rem;
color: #8c9fad;
margin: 0.4rem auto;
@@ -175,34 +226,55 @@
width: 100%;
height: 6rem;
text-align: center;
+
span {
color: rgb(5, 106, 239);
}
}
+
.login_title {
font-family: "DINPro", serif;
font-style: normal;
- font-weight: 500;
- font-size: 0.48rem;
+ font-weight: 700;
+ font-size: 0.7rem;
line-height: 0.66667rem;
color: #14181f;
- margin-left: 0.53333rem;
+ text-align: center;
}
+
/deep/ .van-checkbox__label {
font-style: normal;
- font-weight: 400;
+ font-weight: 500;
font-size: 0.37333rem;
line-height: 0.53333rem;
color: #8c9fad;
}
+
/deep/ .van-button__text {
font-size: 24px;
font-family: "DINPro";
}
+
.login_page {
display: flex;
flex-direction: column;
height: 100vh;
+
+ .multilingual {
+ width: 0.8em;
+ height: 0.8em;
+ margin-left: 0.25em;
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+}
+
+.logo {
+ width: 50vw;
+ margin: 10vw auto 15vw;
}
.logins_content {
@@ -232,11 +304,17 @@
align-items: center;
flex-wrap: wrap;
+ .forms_title {
+ font-size: 0.4rem;
+ margin-top: 0.5rem;
+ margin-bottom: 0.2rem;
+ }
+
.user_name,
.password {
width: 100%;
height: 50px;
- background: rgb(246, 246, 247);
+ background: #fff;
// background: #1e1e1e;
border-radius: 0.3564rem;
@@ -252,29 +330,43 @@
/deep/.el-input__inner {
width: 100%;
height: 70px;
- background-color: rgb(246, 246, 247) !important;
+ background-color: #fff !important;
// background: #1e1e1e;
border-radius: 8px;
font-size: 0.45rem !important;
- border: none;
+ border: #ddd solid 1px;
}
.bottom_btns {
width: 100%;
height: 3.3333rem;
+
// margin-top: 0.8528rem;
.butn {
width: 100%;
margin-top: 40px;
height: 60px;
border-radius: 8px;
+ background: @green;
+ border: none;
}
+
+ .butn_2 {
+ width: 100%;
+ margin-top: 40px;
+ height: 60px;
+ border-radius: 8px;
+ color: @green;
+ border-color: @green;
+ margin-top: 0.4rem;
+ }
+
.top_btn {
border: none;
width: 100%;
height: 1.25rem;
border-radius: 8px;
- background: #0066ed;
+ background: @green;
color: #fff;
display: flex;
align-items: center;
@@ -422,7 +514,7 @@
}
.on .top_btn {
- background: #2d8cf0 !important;
+ background: @green !important;
}
/deep/.el-icon-circle-close::before {
--
Gitblit v1.9.3