From df43dbd4f80baedb88764ca9545e4b5ec7e1ac73 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sun, 27 Jul 2025 16:26:34 +0800
Subject: [PATCH] 1
---
src/page/login/login.vue | 352 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 178 insertions(+), 174 deletions(-)
diff --git a/src/page/login/login.vue b/src/page/login/login.vue
index 2972e75..b852d92 100644
--- a/src/page/login/login.vue
+++ b/src/page/login/login.vue
@@ -1,149 +1,90 @@
<template>
<div class="login_page">
- <headers :mess="loginWay" />
- <!-- <div class="img_mess">
- <div class="logo_content animated fadeInRight">
- <img :src="Logo" alt />
- </div>
- </div> -->
+ <headers />
+ <div class="login_title animated slideInDown">
+ <span>{{ $t("登錄賬號") }}</span>
+ </div>
<div class="logins_content">
- <div class="login_title animated slideInDown">
- <span>{{ $t("hj8") }}</span>
- </div>
<div class="login_forms">
<div class="top_forms">
- <!-- <div class="user_name">
- <input type="text" :placeholder="placeholder" v-model="userName" />
- </div>
- <div class="password">
- <input type="password" placeholder="登录密码" v-model="userPassword" @input="handleInput()" />
+ <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()">
+ </el-input>
+ </div>
+ <div class="bottom_btns">
+ <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>
+ <div class="remember" data-v-8cc76a7b="">
+ <van-checkbox @change="checkboxChange" v-model="checked">{{
+ $t("記住帳戶密碼")
+ }}</van-checkbox>
+ </div>
</div> -->
- <el-input
- :placeholder="$t('hj9')"
- :size="medium"
- maxlength="11"
- 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()"
- >
- </el-input>
- </div>
- <div class="bottom_btns" :class="btnClass ? 'on' : 'off'">
- <button
- class="top_btn "
- v-on:touchstart="loginIN"
- :class="dengl ? 'animated pulse' : ''"
- >
- <span>{{ $t("hj11") }}</span>
- </button>
- <div style="display:flex;align-items:center;justify-content: space-between;">
- <div class="myzh">
- <span class="mes" style="margin: right 0.2rem;">{{ $t("hj14") }}?</span
- ><span
- @click="$router.push('/register')"
- class="mes"
- style="color: rgb(54,124,248);"
- >{{ $t("hj15") }}</span
- >
- </div>
- <div class="mes" @click="getApp()">
- <span>{{ $t("hj12") }}</span>
- </div>
- </div>
</div>
</div>
- </div>
- <div class="login_bom" v-if="hideshow">
- <!-- <div class="line">
- <div class="left_line"></div>
- <div class="center_line">
- <span>{{ $t('hj13') }}</span>
- </div>
- <div class="right_line"></div>
- </div>
- <div class="imgDemo">
- <div class="appImg" @click="getApp()"><img src="@/assets/img/apple.png" /></div>
- <div class="appImg" @click="getApp()"><img src="@/assets/img/google.png" /></div>
- <div class="appImg" @click="getApp()"><img src="@/assets/img/facebook.png" /></div>
+
+ <!-- <div class="register" data-v-8cc76a7b="">
+ {{ $t("還沒賬號?") }}
+ <span @click="$router.push('/register')" data-v-8cc76a7b="" style="color:#c4d600">{{ $t("免費註冊") }}</span>
</div> -->
</div>
- <el-alert
- v-show="alertShow"
- :closable="closable"
- :title="texts"
- :type="eltype"
- center
- ></el-alert>
</div>
</template>
<script>
-import { Toast } from "mint-ui";
import headers from "./components/header.vue";
-import Logo from "@/assets/img/LOGO2.png";
import * as api from "@/axios/api";
+import { Notify } from "vant";
+import { mapActions, mapMutations } from "vuex";
export default {
name: "newLogin",
data() {
return {
+ checked: false,
loginWay: this.$t("hj8"),
currentLoginMode: "email",
placeholder: this.$t("hj16"),
- Logo,
userPassword: "",
userName: "",
btnClass: false,
- medium: "medium",
- alertShow: false,
- closable: false,
- eltype: "warning",
- texts: "",
- dengl: false,
- loginBtn: false,
- docmHeight: document.documentElement.clientHeight, //默认屏幕高度
- showHeight: document.documentElement.clientHeight, //实时屏幕高度
- hideshow: true //显示或者隐藏footer
+ medium: "medium"
};
},
components: {
headers
},
mounted() {
- window.onresize = () => {
- return (() => {
- this.showHeight = document.body.clientHeight;
- })();
- };
- },
- watch: {
- showHeight: function() {
- if (this.docmHeight > this.showHeight) {
- this.hideshow = false;
- } else {
- this.hideshow = true;
- }
+ const ret = window.localStorage.getItem("login_admin");
+ this.checked = window.localStorage.getItem("login_checked") === "true";
+ if (ret && this.checked) {
+ this.userPassword = JSON.parse(ret).userPassword;
+ this.userName = JSON.parse(ret).phone;
+ this.btnClass = true;
}
},
+
methods: {
+ ...mapActions(["setUseInfo"]),
+ ...mapMutations(["undataToken"]),
+ checkboxChange(e) {
+ window.localStorage.setItem("login_checked", e);
+ },
getApp() {
// Toast('您所在的地区暂未开通此服务')
//Toast 弹窗大小
- this.texts = this.$t("hj17");
- this.alertShow = true;
- setTimeout(() => {
- this.alertShow = false;
- }, 2000);
+ Notify({ type: "warning", message: this.$t("hj17") });
},
handleInput() {
- console.log(this.userPassword !== "" && this.userName !== "");
if (this.userPassword !== "" && this.userName !== "") {
this.btnClass = true;
} else {
@@ -151,45 +92,37 @@
}
},
async loginIN() {
- this.dengl = true;
- setTimeout(() => {
- this.dengl = false;
- }, 1000);
- if (this.loginBtn) {
- return;
- }
- this.loginBtn = true;
let opts = {
phone: this.userName,
userPwd: this.userPassword
};
let data = await api.login(opts);
- console.log("data.status",data.status);
-
-
if (data.status === 0) {
+ this.setUseInfo();
+ if (this.checked) {
+ window.localStorage.setItem(
+ "login_admin",
+ JSON.stringify({
+ phone: this.userName,
+ userPassword: this.userPassword
+ })
+ );
+ } else {
+ window.localStorage.setItem("login_admin", "");
+ }
this.$store.state.userInfo.phone = this.userName;
this.$store.state.userInfo.token = data.data.token;
- this.texts = this.$t("hj36");
- this.eltype = "success";
- this.alertShow = true;
- setTimeout(() => {
- this.alertShow = false;
- this.eltype = "warning";
- this.$router.push("/home");
- }, 1000);
- this.loginBtn = false;
- // window.localStorage.clear()
+ this.undataToken(data.data.token);
window.localStorage.setItem("USERTOKEN", data.data.token);
- } else {
- this.texts = data.msg;
- this.alertShow = true;
- this.loginBtn = false;
+ // Notify({ type: "success", message: this.$t("hj36") });
+
setTimeout(() => {
- this.alertShow = false;
- }, 2000);
- //Toast(data.msg)
+ // this.$router.push("/home");
+ this.$router.push("/home_index");
+ }, 1000);
+ } else {
+ Notify({ type: "warning", message: data.msg });
}
if (navigator.vibrate) {
// 支持
@@ -197,46 +130,97 @@
}
}
},
- beforeDestroy() {},
- created() {}
+ beforeDestroy() { },
+ created() { }
};
</script>
<style scoped lang="less">
-.login_page {
- position: relative;
- background-color: #fff !important;
+@green: #c4d600;
+
+.password-operate {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 0.53333rem;
+
+ .forget {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 0.37333rem;
+ line-height: 0.53333rem;
+ color: #8c9fad;
+ }
+}
+
+/deep/ .van-checkbox__icon--checked .van-icon {
+ background: @green;
+ border-color: @green;
+}
+
+.register {
+ font-style: normal;
+ font-weight: 500;
+ font-size: 0.37333rem;
+ color: #8c9fad;
+ margin: 0.4rem auto;
+ padding: 0.34667rem 0.4rem;
width: 100%;
- height: 100%;
- overflow: hidden;
- overflow-y: auto;
+ 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;
+ line-height: 0.66667rem;
+ color: #14181f;
+ margin-left: 0.53333rem;
+}
+
+/deep/ .van-checkbox__label {
+ font-style: normal;
+ 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;
}
.logins_content {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
width: 100%;
height: 9.7436rem;
margin-top: 0.4359rem;
- padding: 0 0.4564rem;
-
- .login_title {
- width: 100%;
- height: 2.0513rem;
- display: flex;
-
- align-items: center;
- font-size: 0.7023rem;
- color: #000;
- font-weight: 600 !important;
-
- > span {
- font-weight: 600 !important;
- }
- }
+ background: #fff;
+ // padding: 0 0.4564rem;
.login_forms {
width: 100%;
- height: auto;
- margin-top: 0.35rem;
+
+ border-top-left-radius: 0.26667rem;
+ border-top-right-radius: 0.26667rem;
+ padding: 0.34667rem 0.4rem;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
.top_forms {
width: 100%;
@@ -248,12 +232,12 @@
.user_name,
.password {
width: 100%;
- height: 35%;
- background: rgb(246, 246, 247);
+ height: 50px;
+ background: #fff;
// background: #1e1e1e;
border-radius: 0.3564rem;
- > input {
+ >input {
width: 100%;
height: 100%;
padding-left: 0.3564rem;
@@ -264,24 +248,44 @@
/deep/.el-input__inner {
width: 100%;
- height: 1.45rem !important;
- background-color: rgb(246, 246, 247) !important;
+ height: 70px;
+ background-color: #fff !important;
// background: #1e1e1e;
- border-radius: 0.3564rem;
+ border-radius: 8px;
font-size: 0.45rem !important;
+ border: #ddd solid 1px;
}
.bottom_btns {
width: 100%;
height: 3.3333rem;
- margin-top: 0.8528rem;
+
+ // 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;
+ border: none;
width: 100%;
height: 1.25rem;
- border-radius: 0.3564rem;
- background: rgb(154, 197, 250);
+ border-radius: 8px;
+ background: @green;
color: #fff;
display: flex;
align-items: center;
@@ -289,7 +293,7 @@
font-size: 0.5128rem;
margin-top: 0.75rem;
- > span {
+ >span {
font-weight: 530 !important;
}
}
@@ -338,7 +342,7 @@
align-items: center;
justify-content: center;
- > span {
+ >span {
font-size: 0.3046rem;
color: #000;
background-color: #fff;
@@ -401,7 +405,7 @@
width: 3rem;
height: 3.5769rem;
- > img {
+ >img {
width: 100%;
height: 100%;
}
@@ -429,7 +433,7 @@
}
.on .top_btn {
- background: #2d8cf0 !important;
+ background: @green !important;
}
/deep/.el-icon-circle-close::before {
--
Gitblit v1.9.3