From 7043590a8a1d24a4c86472051c103a8e4dc2ddb4 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 09 Aug 2025 17:34:01 +0800
Subject: [PATCH] 1
---
src/page/login/login.vue | 172 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 117 insertions(+), 55 deletions(-)
diff --git a/src/page/login/login.vue b/src/page/login/login.vue
index 7a36fea..6c7816a 100644
--- a/src/page/login/login.vue
+++ b/src/page/login/login.vue
@@ -1,38 +1,40 @@
<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">
- <el-input
- :placeholder="$t('hj9')"
- :size="medium"
- v-model="userName"
- clearable
- >
+ <div class="forms_title">{{ $t('hj27') }}</div>
+ <el-input :placeholder="$t('hj9')" :size="medium" v-model="userName" clearable>
</el-input>
- <el-input
- style="margin-top: 0.46rem"
- show-password
- :placeholder="$t('hj10')"
- :size="medium"
- v-model="userPassword"
- @input="handleInput()"
- >
+ <div class="forms_title">{{ $t('Password') }}</div>
+ <el-input show-password :placeholder="$t('hj10')" :size="medium" v-model="userPassword"
+ @input="handleInput()">
</el-input>
</div>
<div class="bottom_btns">
- <van-button
- type="info"
- :disabled="!btnClass"
- class="butn"
- @click="loginIN"
- >{{ $t("立即登录") }}</van-button
- >
- <div class="password-operate" data-v-8cc76a7b="">
+ <van-button type="info" :disabled="!btnClass" class="butn" @click="loginIN">
+ {{ $t("立即登录") }}
+ </van-button>
+ <van-button type="info" plain class="butn_2" @click="$router.push('/register')">
+ {{ $t("免費註冊") }}
+ </van-button>
+ <!-- <div class="password-operate" data-v-8cc76a7b="">
<div class="forget" data-v-8cc76a7b="" @click="getApp()">
{{ $t("hj12") }}
</div>
@@ -41,24 +43,20 @@
$t("記住帳戶密碼")
}}</van-checkbox>
</div>
- </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 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";
@@ -75,10 +73,20 @@
userName: "",
btnClass: false,
medium: "medium",
+ languageShow: false, // 语言选择
+ // 多语言配置
+ actions: [
+ {
+ text: "English",
+ lang: "en"
+ },
+ { text: "español", lang: "es" }
+ ],
};
},
components: {
- headers,
+ // headers,
+ tabHead,
},
mounted() {
const ret = window.localStorage.getItem("login_admin");
@@ -111,7 +119,7 @@
async loginIN() {
let opts = {
phone: this.userName,
- userPwd: this.userPassword,
+ userPwd: this.userPassword
};
let data = await api.login(opts);
@@ -122,7 +130,7 @@
"login_admin",
JSON.stringify({
phone: this.userName,
- userPassword: this.userPassword,
+ userPassword: this.userPassword
})
);
} else {
@@ -132,7 +140,7 @@
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");
@@ -146,17 +154,25 @@
navigator.vibrate([55]);
}
},
+ // 选择语言
+ onSelect(e) {
+ window.localStorage.setItem("language", e.lang);
+ this.$i18n.locale = e.lang;
+ },
},
- beforeDestroy() {},
- created() {},
+ beforeDestroy() { },
+ created() { }
};
</script>
<style scoped lang="less">
+@green: #c4d600;
+
.password-operate {
display: flex;
justify-content: space-between;
margin-top: 0.53333rem;
+
.forget {
font-style: normal;
font-weight: 400;
@@ -166,9 +182,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;
@@ -176,34 +197,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: .8em;
+ height: .8em;
+ margin-left: 0.25em;
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+}
+
+.logo {
+ width: 50vw;
+ margin: 10vw auto 15vw;
}
.logins_content {
@@ -233,15 +275,21 @@
align-items: center;
flex-wrap: wrap;
+ .forms_title {
+ font-size: .4rem;
+ margin-top: .5rem;
+ margin-bottom: .2rem;
+ }
+
.user_name,
.password {
width: 100%;
height: 50px;
- background: rgb(246, 246, 247);
+ background: #fff;
// background: #1e1e1e;
border-radius: 0.3564rem;
- > input {
+ >input {
width: 100%;
height: 100%;
padding-left: 0.3564rem;
@@ -253,29 +301,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: .4rem;
+ }
+
.top_btn {
border: none;
width: 100%;
height: 1.25rem;
border-radius: 8px;
- background: #0066ed;
+ background: @green;
color: #fff;
display: flex;
align-items: center;
@@ -283,7 +345,7 @@
font-size: 0.5128rem;
margin-top: 0.75rem;
- > span {
+ >span {
font-weight: 530 !important;
}
}
@@ -332,7 +394,7 @@
align-items: center;
justify-content: center;
- > span {
+ >span {
font-size: 0.3046rem;
color: #000;
background-color: #fff;
@@ -395,7 +457,7 @@
width: 3rem;
height: 3.5769rem;
- > img {
+ >img {
width: 100%;
height: 100%;
}
@@ -423,7 +485,7 @@
}
.on .top_btn {
- background: #2d8cf0 !important;
+ background: @green !important;
}
/deep/.el-icon-circle-close::before {
--
Gitblit v1.9.3