From a1fb6cd3c3b8a48da4f9393e09718da04f51a373 Mon Sep 17 00:00:00 2001
From: DESKTOP-CVS3R96\我恁爹 <11>
Date: Tue, 15 Nov 2022 09:58:00 +0800
Subject: [PATCH] 11111

---
 src/page/login/login.vue |  304 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 260 insertions(+), 44 deletions(-)

diff --git a/src/page/login/login.vue b/src/page/login/login.vue
index e0cfe8b..c5f74ac 100644
--- a/src/page/login/login.vue
+++ b/src/page/login/login.vue
@@ -1,38 +1,59 @@
 <template>
   <div class="login_page">
     <headers :mess="loginWay" />
-    <div class="img_mess">
+    <!-- <div class="img_mess">
       <div class="logo_content animated fadeInRight">
         <img :src="Logo" alt />
       </div>
-    </div>
+    </div> -->
     <div class="logins_content">
       <div class="login_title animated slideInDown">
-        <span>{{ '邮箱登录' }}</span>
+        <span>{{ $t('hj8') }}</span>
       </div>
       <div class="login_forms">
         <div class="top_forms">
-          <div class="user_name">
+          <!-- <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()" />
-          </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">
-          <div class="top_btn" @click="loginIN" :class="btnClass ? 'on' : 'off'">
-            <span>{{ '安全登录' }}</span>
+        <div class="bottom_btns" :class="btnClass ? 'on' : 'off'">
+          <div class="top_btn " @click="loginIN" :class="dengl ? 'animated pulse' : ''">
+            <span>{{ $t('hj11') }}</span>
           </div>
-          <div class="mes">
-            <span>{{ '没有账户?' }}</span>
-            <span @click="$router.push('/NewRegister')" style="color: rgb(54,124,248);">{{ '注册>' }}</span>
+          <div class="mes" @click="getApp()">
+            <span>{{ $t('hj12') }}</span>
           </div>
         </div>
       </div>
     </div>
+    <div class="login_bom">
+
+      <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>
+      <div class="myzh"><span class="mes">{{ $t('hj14') }}?</span><span @click="$router.push('/register')" class="mes"
+          style="color: rgb(54,124,248);">{{ $t('hj15') }}</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";
@@ -43,88 +64,147 @@
   name: "newLogin",
   data() {
     return {
-      loginWay: "手机号登录",
+      loginWay: this.$t('hj8'),
       currentLoginMode: "email",
-      placeholder: "电子邮箱",
+      placeholder: this.$t('hj16'),
       Logo,
       userPassword: "",
       userName: "",
-      btnClass: false
+      btnClass: false,
+      medium: "medium",
+      alertShow: false,
+      closable: false,
+      eltype: 'warning',
+      texts: "",
+      dengl: false,
+      loginBtn: false,
     };
   },
   components: {
     headers
   },
   methods: {
+    getApp() {
+      // Toast('您所在的地区暂未开通此服务')
+      //Toast 弹窗大小
+      this.texts = this.$t('hj17')
+      this.alertShow = true
+      setTimeout(() => {
+        this.alertShow = false
+      }, 2000)
+    },
     handleInput() {
+      console.log(this.userPassword !== "" && this.userName !== '');
       if (this.userPassword !== "" && this.userName !== '') {
         this.btnClass = true;
       } else {
         this.btnClass = false;
       }
     },
-    async loginIN () {
+    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)
       if (data.status === 0) {
         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()
-        window.localStorage.setItem("USERTOKEN",data.data.token);
-        this.$router.push('/home')
-      } else {
-        Toast(data.msg)
-      }
+        window.localStorage.setItem("USERTOKEN", data.data.token);
 
+
+      } else {
+        this.texts = data.msg
+        this.alertShow = true
+        this.loginBtn = false;
+        setTimeout(() => {
+          this.alertShow = false
+        }, 2000)
+        //Toast(data.msg)
+      }
+      if (navigator.vibrate) {
+        // 支持
+        navigator.vibrate([55]);
+      }
     },
   },
-  beforeDestroy() {},
-  created() {}
+  beforeDestroy() { },
+  created() { }
 };
 </script>
 
 <style scoped lang="less">
 .login_page {
+  position: relative;
+  background-color: #fff !important;
   width: 100%;
   height: 100%;
   overflow: hidden;
   overflow-y: auto;
 }
+
 .logins_content {
+
   width: 100%;
   height: 9.7436rem;
   margin-top: 0.4359rem;
-  padding: 0 0.2564rem;
+  padding: 0 0.4564rem;
+
   .login_title {
     width: 100%;
     height: 2.0513rem;
     display: flex;
-    justify-content: center;
+
     align-items: center;
-    font-size: 0.6923rem;
-    color: #fff;
+    font-size: 0.7023rem;
+    color: #000;
+    font-weight: 600 !important;
+
+    >span {
+      font-weight: 600 !important;
+    }
   }
+
   .login_forms {
     width: 100%;
-    height: 7.9231rem;
+    height: auto;
+    margin-top: 0.35rem;
+
     .top_forms {
       width: 100%;
-      height: 4.5128rem;
+      height: auto;
       display: flex;
       align-items: center;
       flex-wrap: wrap;
+
       .user_name,
       .password {
         width: 100%;
         height: 35%;
-        background: #1e1e1e;
+        background: rgb(246, 246, 247);
+        // background: #1e1e1e;
         border-radius: 0.3564rem;
-        > input {
+
+        >input {
           width: 100%;
           height: 100%;
           padding-left: 0.3564rem;
@@ -132,29 +212,44 @@
         }
       }
     }
+
+    /deep/.el-input__inner {
+      width: 100%;
+      height: 1.45rem !important;
+      background-color: rgb(246, 246, 247) !important;
+      // background: #1e1e1e;
+      border-radius: 0.3564rem;
+      font-size: 0.45rem !important;
+    }
+
     .bottom_btns {
       width: 100%;
       height: 3.3333rem;
-      display: flex;
-      flex-wrap: wrap;
-      align-items: center;
-      margin-top: 0.5128rem;
+      margin-top: 0.8528rem;
+
       .top_btn {
         width: 100%;
-        height: 40%;
+        height: 1.25rem;
         border-radius: 0.3564rem;
-        background: rgb(131, 174, 243);
+        background: rgb(154, 197, 250);
+        color: #fff;
         display: flex;
         align-items: center;
         justify-content: center;
         font-size: 0.5128rem;
+        margin-top: 0.75rem;
+
+        >span {
+          font-weight: 530 !important;
+        }
       }
-      .top_btn.on {
-        background: rgb(0, 71, 187);
-      }
+
+
+
       .mes {
         width: 100%;
-        height: 40%;
+        height: 20%;
+        margin-top: 0.4rem;
         display: flex;
         justify-content: flex-end;
         align-items: center;
@@ -163,19 +258,140 @@
     }
   }
 }
+
+.login_bom {
+  position: absolute;
+  bottom: 2.6rem;
+  width: 100%;
+  height: 4rem;
+  padding: 0 2rem;
+}
+
+.line {
+  //分割线
+  width: 100%;
+  height: 0.3846rem;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-top: 0.3846rem;
+
+  .left_line {
+    width: 20%;
+    height: 0.01rem;
+    background: #e5e5e5;
+  }
+
+  .center_line {
+    width: 50%;
+    height: 0.01rem;
+    background: #fff;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+
+    >span {
+      font-size: 0.3046rem;
+      color: #000;
+      background-color: #fff;
+
+    }
+  }
+
+  .right_line {
+    width: 20%;
+    height: 0.01rem;
+    background: #e5e5e5;
+  }
+
+}
+
+.myzh {
+  width: calc(100% - 4rem);
+  position: absolute;
+  bottom: 0.01rem;
+  text-align: center;
+
+  .mes {
+    width: 100%;
+    height: 40%;
+
+    font-size: 0.3846rem;
+  }
+}
+
+.imgDemo {
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+  transform: translateY(50%);
+}
+
+.appImg {
+  width: 1.4rem;
+  height: 1.4rem;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  background-color: rgb(246, 246, 247);
+  border-radius: 100%;
+}
+
+.appImg img {
+  width: 0.8rem;
+  height: 0.8rem;
+}
+
 .img_mess {
   width: 100%;
   height: 4.0513rem;
   display: flex;
   justify-content: center;
   align-items: center;
+
   .logo_content {
     width: 3rem;
     height: 3.5769rem;
-    > img {
+
+    >img {
       width: 100%;
       height: 100%;
     }
   }
 }
+
+/deep/.el-input__suffix {
+  width: 1rem !important;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+/deep/.el-input__suffix-inner {
+
+  display: flex;
+  justify-content: center;
+  align-items: center;
+
+}
+
+/deep/.el-input__icon {
+  width: 1rem !important;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.on .top_btn {
+  background: #2d8cf0 !important;
+}
+
+/deep/.el-icon-circle-close::before {
+  font-size: 0.5rem !important;
+
+}
+
+/deep/.el-input__clear {
+  font-size: 0.5rem !important;
+}
 </style>

--
Gitblit v1.9.3