From 1bd03f5c2e7b9fa9cc80c4e673e18132da411333 Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Wed, 12 Nov 2025 16:21:06 +0800
Subject: [PATCH] 1
---
src/page/login/login.vue | 220 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 171 insertions(+), 49 deletions(-)
diff --git a/src/page/login/login.vue b/src/page/login/login.vue
index cb0a528..c4c3c74 100644
--- a/src/page/login/login.vue
+++ b/src/page/login/login.vue
@@ -1,21 +1,41 @@
<template>
<div class="login_page">
- <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_b.png" alt="" />
+ </div>
+ </template>
+ </van-popover>
+
+ <template #left>
+ <img src="@/assets/img/logo_1.png" class="left_icon" />
+ </template>
+ </tab-head>
+
<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("hj16") }}</div>
<el-input
- :placeholder="$t('hj9')"
+ :placeholder="$t('请输入电子邮箱')"
:size="medium"
v-model="userName"
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,35 +50,34 @@
: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("hj12") }}
- </div>
- <div class="remember" data-v-8cc76a7b="">
- <van-checkbox @change="checkboxChange" v-model="checked">{{
- $t("記住帳戶密碼")
- }}</van-checkbox>
- </div>
+ {{ $t("立即登录") }}
+ </van-button>
+ <!-- <van-button
+ type="info"
+ plain
+ class="butn_2"
+ @click="$router.push('/register')"
+ >
+ {{ $t("免費註冊") }}
+ </van-button> -->
+ </div>
+
+ <div class="login_footer">
+ <div class="tui-first">
+ <div @click="$router.push('/register')">{{ $t("立即注册") }}</div>
+ <!-- <div class="symbol"></div> -->
+ <!-- <div @click="$store.dispatch('CustomerService')">
+ {{ $t("kf") }}
+ </div> -->
</div>
</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>
</div>
</template>
<script>
-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";
@@ -75,10 +94,31 @@
userName: "",
btnClass: false,
medium: "medium",
+ languageShow: false, // 语言选择
+ // 多语言配置
+ actions: [
+ {
+ text: "English",
+ lang: "en"
+ },
+ {
+ text: "中文(繁体)",
+ lang: "zh-Hant"
+ },
+ {
+ text: "中文",
+ lang: "zh-CN"
+ }
+ // {
+ // text: "हिंदी",
+ // lang: "hi"
+ // }
+ ]
};
},
components: {
- headers,
+ // headers,
+ tabHead
},
mounted() {
const ret = window.localStorage.getItem("login_admin");
@@ -111,7 +151,7 @@
async loginIN() {
let opts = {
phone: this.userName,
- userPwd: this.userPassword,
+ userPwd: this.userPassword
};
let data = await api.login(opts);
@@ -122,7 +162,7 @@
"login_admin",
JSON.stringify({
phone: this.userName,
- userPassword: this.userPassword,
+ userPassword: this.userPassword
})
);
} else {
@@ -132,10 +172,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("/");
}, 1000);
} else {
Notify({ type: "warning", message: data.msg });
@@ -145,17 +186,47 @@
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: #0e7ddd;
+@Black1: #13161e;
+
+.login_footer {
+ margin-top: 3rem;
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+
+ .tui-first {
+ display: flex;
+ align-items: center;
+ color: @green;
+ font-size: 0.4rem;
+ }
+ .symbol {
+ background-color: #ccc;
+ width: 1px;
+ height: 0.275rem;
+ margin: 0 0.225rem;
+ }
+}
+
.password-operate {
display: flex;
justify-content: space-between;
margin-top: 0.53333rem;
+
.forget {
font-style: normal;
font-weight: 400;
@@ -165,9 +236,14 @@
}
}
+/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 +251,61 @@
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;
+ padding: 0.6rem 0.6rem 0;
}
+
/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;
+
+ .left_icon {
+ // width: 112px;
+ width: 50px;
+ height: 52px;
+ border-radius: 52px;
+ }
+
+ .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 {
@@ -212,15 +315,13 @@
width: 100%;
height: 9.7436rem;
margin-top: 0.4359rem;
- background: #fff;
- // padding: 0 0.4564rem;
.login_forms {
width: 100%;
border-top-left-radius: 0.26667rem;
border-top-right-radius: 0.26667rem;
- padding: 0.34667rem 0.4rem;
+ padding: 0.2rem 0.6rem;
flex: 1;
display: flex;
flex-direction: column;
@@ -232,12 +333,19 @@
align-items: center;
flex-wrap: wrap;
+ .forms_title {
+ font-size: 0.3rem;
+ margin-top: 0.5rem;
+ margin-bottom: 0.2rem;
+ font-weight: 300;
+ opacity: 0.7;
+ }
+
.user_name,
.password {
width: 100%;
height: 50px;
- background: rgb(246, 246, 247);
- // background: #1e1e1e;
+ background: #fff;
border-radius: 0.3564rem;
> input {
@@ -252,29 +360,43 @@
/deep/.el-input__inner {
width: 100%;
height: 70px;
- background-color: rgb(246, 246, 247) !important;
- // background: #1e1e1e;
- border-radius: 8px;
- font-size: 0.45rem !important;
- border: none;
+ background-color: @Black1 !important;
+ font-size: 0.3rem !important;
+ border: @Black1 solid 1px;
+ color: #fff;
+ border-bottom: rgba(#fff, 0.7) 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: #1f4583;
+ 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 +544,7 @@
}
.on .top_btn {
- background: #2d8cf0 !important;
+ background: @green !important;
}
/deep/.el-icon-circle-close::before {
--
Gitblit v1.9.3