| | |
| | | <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"; |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /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; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .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> |