|
@@ -1,14 +1,49 @@
|
|
|
<template>
|
|
|
<div class="login">
|
|
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
|
|
- <h3 class="title">信用平台</h3>
|
|
|
+ <img src="../assets/images/icon_dl_ewm@2x.png" v-if="stageType==1" @click="dhiwyrei" alt="" class="icon_rw">
|
|
|
+ <img src="../assets/images/icon_dl_madl@2x.png" v-if="stageType==2" alt="" @click="bkue" class="icon_mim">
|
|
|
+ <h3 class="title"> 信用平台</h3>
|
|
|
+ <!-- <div v-if="statusFlag==2">
|
|
|
+ <div class="erw_img">
|
|
|
+ <img src="" alt="" class="imgs">
|
|
|
+ <p>请使用手机扫描上方二维码登录</p>
|
|
|
+ </div>
|
|
|
+ <div class="mim_p">
|
|
|
+ 密码登录
|
|
|
+ </div>
|
|
|
+ </div> -->
|
|
|
+ <!-- 2 -->
|
|
|
+
|
|
|
+ <div v-show="stageType==2" class="login-erw">
|
|
|
+ <h2 v-if="stageType==2" class="logerw_tit">
|
|
|
+ 请使用<span style="color: red;">小程序中扫码登录功能</span>,扫码快速登录
|
|
|
+ </h2>
|
|
|
+ <p>请扫描下方的二维码</p>
|
|
|
+ <p>安全登录,防止盗号</p>
|
|
|
+ <div class="logerw_img" ref="qrCodeUrl">
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="ts_p" v-if="isInvalid">
|
|
|
+ 二维码已过期,请点击<span @click="getQecode">刷新</span>重试
|
|
|
+ </div>
|
|
|
+ <!-- <div class="logerw_fot" @click="two_fn">
|
|
|
+ 账号密码登录
|
|
|
+ </div> -->
|
|
|
+ </div>
|
|
|
+ <div v-show="stageType==3" class="login-erw-thre">
|
|
|
+ <div class="log_erw_thre_img">
|
|
|
+ <img src="../assets/images/pic_dlcg@2x.png" alt="" class="img">
|
|
|
+ </div>
|
|
|
+ <div class="log_erw_thre_rig">
|
|
|
+ <h3>{{ success_status?'页面超时,请重新扫描二维码':'扫描成功,请在手机上确认是否授权登录'}}</h3>
|
|
|
+ <p v-if="!success_status">使用其他方式登录,请<span @click="three_fn">返回</span></p>
|
|
|
+ <div v-if="success_status" class="thre_btn" @click="three_sj_fn">返回上一页</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="stageType==1">
|
|
|
<el-form-item prop="username">
|
|
|
- <el-input
|
|
|
- v-model="loginForm.username"
|
|
|
- type="text"
|
|
|
- auto-complete="off"
|
|
|
- placeholder="账号"
|
|
|
- >
|
|
|
+ <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
|
|
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
@@ -23,7 +58,7 @@
|
|
|
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="code" v-if="captchaOnOff">
|
|
|
+ <el-form-item prop="code">
|
|
|
<el-input
|
|
|
v-model="loginForm.code"
|
|
|
auto-complete="off"
|
|
@@ -38,143 +73,407 @@
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
|
|
|
- <el-form-item style="width:100%;">
|
|
|
+ <el-form-item style="width:100%; margin-bottom: 42px;">
|
|
|
+ <div class="medTitle">
|
|
|
+ 快捷登录
|
|
|
+ </div>
|
|
|
+ <div class="med_icons">
|
|
|
+ <div class="med_icons_item" @click="btns">
|
|
|
+ <img src="@/assets/images/icon_kjdl_wz@2x.png" alt="" class="icon">
|
|
|
+ <p>皖事通</p>
|
|
|
+ </div>
|
|
|
+ <div class="med_icons_item" @click="btns">
|
|
|
+ <img src="@/assets/images/icon_kjdl_dd@2x.png" alt="" class="icon">
|
|
|
+ <p>钉钉</p>
|
|
|
+ </div>
|
|
|
+ <div class="med_icons_item" @click="btns">
|
|
|
+ <img src="@/assets/images/icon_kjdl_wx@2x.png" alt="" class="icon">
|
|
|
+ <p>微信</p>
|
|
|
+ </div>
|
|
|
+ <div class="med_icons_item" @click="btns">
|
|
|
+ <img src="@/assets/images/icon_kjdl_qywx@2x.png" alt="" class="icon">
|
|
|
+ <p>企业微信</p>
|
|
|
+ </div>
|
|
|
+ <div class="med_icons_item" @click="btns">
|
|
|
+ <img src="@/assets/images/icon_kjdl_qq@2x.png" alt="" class="icon">
|
|
|
+ <p>QQ</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width:100%;margin-bottom: 0;">
|
|
|
<el-button
|
|
|
:loading="loading"
|
|
|
size="medium"
|
|
|
type="primary"
|
|
|
- style="width:100%;"
|
|
|
+ style="width: 100%;background-color: #2865E1;height: 45px;"
|
|
|
@click.native.prevent="handleLogin"
|
|
|
>
|
|
|
<span v-if="!loading">登 录</span>
|
|
|
<span v-else>登 录 中...</span>
|
|
|
</el-button>
|
|
|
- <div style="float: right;" v-if="register">
|
|
|
- <router-link class="link-type" :to="'/register'">立即注册</router-link>
|
|
|
- </div>
|
|
|
+ <p class="div_p">
|
|
|
+ * 使用快捷登录,请先绑定第三方账号
|
|
|
+ </p>
|
|
|
</el-form-item>
|
|
|
+ </div>
|
|
|
</el-form>
|
|
|
<!-- 底部 -->
|
|
|
<div class="el-login-footer">
|
|
|
- <!-- <span>Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span> -->
|
|
|
+ <!-- <span>Copyright © 2018-2021 ruoyi.vip All Rights Reserved.</span> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getCodeImg } from "@/api/login";
|
|
|
-import Cookies from "js-cookie";
|
|
|
-import { encrypt, decrypt } from '@/utils/jsencrypt'
|
|
|
-
|
|
|
-export default {
|
|
|
- name: "Login",
|
|
|
- data() {
|
|
|
- return {
|
|
|
- codeUrl: "",
|
|
|
- loginForm: {
|
|
|
- username: "admin",
|
|
|
- password: "admin123",
|
|
|
- rememberMe: false,
|
|
|
- code: "",
|
|
|
- uuid: ""
|
|
|
+ import {
|
|
|
+ getCodeImg,
|
|
|
+ getLoginCode,
|
|
|
+ getScanStatus
|
|
|
+ } from "@/api/login";
|
|
|
+ import Cookies from "js-cookie";
|
|
|
+ import QRCode from 'qrcodejs2'
|
|
|
+ import settings from "@/settings";
|
|
|
+ import {
|
|
|
+ encrypt,
|
|
|
+ decrypt
|
|
|
+ } from '@/utils/jsencrypt'
|
|
|
+ import {setToken} from '@/utils/auth'
|
|
|
+
|
|
|
+ export default {
|
|
|
+ name: "Login",
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ stageType: 1, //1密码登录 2扫码登录 3扫码成功
|
|
|
+ isInvalid: false, // true失效 false有效
|
|
|
+ setInStatus: '', // 校验是否扫码 时间函数
|
|
|
+ codeUrl: "",
|
|
|
+ cookiePassword: "",
|
|
|
+ loginForm: {
|
|
|
+ username: "",
|
|
|
+ password: "",
|
|
|
+ rememberMe: false,
|
|
|
+ code: "",
|
|
|
+ uuid: ""
|
|
|
+ },
|
|
|
+ loginRules: {
|
|
|
+ username: [{
|
|
|
+ required: true,
|
|
|
+ trigger: "blur",
|
|
|
+ message: "用户名不能为空"
|
|
|
+ }],
|
|
|
+ password: [{
|
|
|
+ required: true,
|
|
|
+ trigger: "blur",
|
|
|
+ message: "密码不能为空"
|
|
|
+ }],
|
|
|
+ code: [{
|
|
|
+ required: true,
|
|
|
+ trigger: "change",
|
|
|
+ message: "验证码不能为空"
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ setInStatus_num: 0,
|
|
|
+ loading: false,
|
|
|
+ qecode: '', // code
|
|
|
+ redirect: undefined,
|
|
|
+ success_status: false, // 扫描成功 是否超时
|
|
|
+ setInSuccess_fn: '', // 扫码成功函数
|
|
|
+ setInSuccess_num: 0, // 扫码成功计时
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ $route: {
|
|
|
+ handler: function(route) {
|
|
|
+ this.redirect = route.query && route.query.redirect;
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getCode();
|
|
|
+ this.getCookie();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ btns() {
|
|
|
+ this.msgInfo('暂未开放')
|
|
|
+ },
|
|
|
+ getCode() {
|
|
|
+ getCodeImg().then(res => {
|
|
|
+ this.codeUrl = "data:image/gif;base64," + res.img;
|
|
|
+ this.loginForm.uuid = res.uuid;
|
|
|
+ });
|
|
|
},
|
|
|
- loginRules: {
|
|
|
- username: [
|
|
|
- { required: true, trigger: "blur", message: "请输入您的账号" }
|
|
|
- ],
|
|
|
- password: [
|
|
|
- { required: true, trigger: "blur", message: "请输入您的密码" }
|
|
|
- ],
|
|
|
- code: [{ required: true, trigger: "change", message: "请输入验证码" }]
|
|
|
+ two_fn() {
|
|
|
+ this.stageType = 1
|
|
|
+ this.setInStatus_num = 0
|
|
|
+ this.isInvalid = false
|
|
|
+ if(this.setInStatus){
|
|
|
+ clearInterval(this.setInStatus)
|
|
|
+ }
|
|
|
},
|
|
|
- loading: false,
|
|
|
- // 验证码开关
|
|
|
- captchaOnOff: true,
|
|
|
- // 注册开关
|
|
|
- register: false,
|
|
|
- redirect: undefined
|
|
|
- };
|
|
|
- },
|
|
|
- watch: {
|
|
|
- $route: {
|
|
|
- handler: function(route) {
|
|
|
- this.redirect = route.query && route.query.redirect;
|
|
|
+ three_sj_fn() {
|
|
|
+ this.getQecode()
|
|
|
},
|
|
|
- immediate: true
|
|
|
- }
|
|
|
- },
|
|
|
- created() {
|
|
|
- this.getCode();
|
|
|
- this.getCookie();
|
|
|
- },
|
|
|
- methods: {
|
|
|
- getCode() {
|
|
|
- getCodeImg().then(res => {
|
|
|
- this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff;
|
|
|
- if (this.captchaOnOff) {
|
|
|
- this.codeUrl = "data:image/gif;base64," + res.img;
|
|
|
- this.loginForm.uuid = res.uuid;
|
|
|
+ three_fn() {
|
|
|
+ this.stageType = 1
|
|
|
+ this.setInSuccess_num = 0
|
|
|
+ this.success_status = false
|
|
|
+ if(this.setInSuccess_fn){
|
|
|
+ clearInterval(this.setInSuccess_fn)
|
|
|
}
|
|
|
- });
|
|
|
- },
|
|
|
- getCookie() {
|
|
|
- const username = Cookies.get("username");
|
|
|
- const password = Cookies.get("password");
|
|
|
- const rememberMe = Cookies.get('rememberMe')
|
|
|
- this.loginForm = {
|
|
|
- username: username === undefined ? this.loginForm.username : username,
|
|
|
- password: password === undefined ? this.loginForm.password : decrypt(password),
|
|
|
- rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
|
|
|
- };
|
|
|
- },
|
|
|
- handleLogin() {
|
|
|
- this.$refs.loginForm.validate(valid => {
|
|
|
- if (valid) {
|
|
|
- this.loading = true;
|
|
|
- if (this.loginForm.rememberMe) {
|
|
|
- Cookies.set("username", this.loginForm.username, { expires: 30 });
|
|
|
- Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
|
|
|
- Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
|
|
|
- } else {
|
|
|
- Cookies.remove("username");
|
|
|
- Cookies.remove("password");
|
|
|
- Cookies.remove('rememberMe');
|
|
|
+ },
|
|
|
+ creatQrCode(url) {
|
|
|
+ const _this = this
|
|
|
+ this.$refs.qrCodeUrl.innerHTML="";
|
|
|
+ let qrcode = new QRCode(_this.$refs.qrCodeUrl, {
|
|
|
+ text: url, // 需要转换为二维码的内容
|
|
|
+ width: 200,
|
|
|
+ height: 200,
|
|
|
+ colorDark: '#000000',
|
|
|
+ colorLight: '#ffffff',
|
|
|
+ correctLevel: QRCode.CorrectLevel.H
|
|
|
+ })
|
|
|
+ console.log(qrcode,987)
|
|
|
+ this.setInStatus_fn()
|
|
|
+ },
|
|
|
+ setInStatus_fn() {
|
|
|
+ this.setInStatus = setInterval(red => {
|
|
|
+ this.setInStatus_num ++
|
|
|
+ if(this.setInStatus_num==180){
|
|
|
+ this.setInStatus_num = 0
|
|
|
+ this.isInvalid = true
|
|
|
+ clearInterval(this.setInStatus)
|
|
|
+ }else{
|
|
|
+ getScanStatus(this.qecode).then(res => {
|
|
|
+ if(res.msg == 'has_scan'){
|
|
|
+ clearInterval(this.setInStatus)
|
|
|
+ this.setInStatus_num = 0
|
|
|
+ this.stageType=3
|
|
|
+ this.succes_fn()
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
- this.$store.dispatch("Login", this.loginForm).then(() => {
|
|
|
- this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
|
|
|
- }).catch(() => {
|
|
|
- this.loading = false;
|
|
|
- if (this.captchaOnOff) {
|
|
|
- this.getCode();
|
|
|
+ },1000)
|
|
|
+ },
|
|
|
+ succes_fn() {
|
|
|
+ this.setInSuccess_fn = setInterval(red => {
|
|
|
+ this.setInSuccess_num++
|
|
|
+ if(this.setInSuccess_num==180){
|
|
|
+ this.setInSuccess_num = 0
|
|
|
+ this.success_status = true
|
|
|
+ clearInterval(this.setInSuccess_fn)
|
|
|
+ }else{
|
|
|
+ getScanStatus(this.qecode).then(res => {
|
|
|
+ if(res.msg.includes('login_success:')){
|
|
|
+ clearInterval(this.setInSuccess_fn)
|
|
|
+ let token = res.msg.replace('login_success:','')
|
|
|
+ setToken(token)
|
|
|
+ this.$store.commit('SET_TOKEN', token)
|
|
|
+ this.$router.push({
|
|
|
+ path: this.redirect || "/"
|
|
|
+ }).catch(() => {});
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },1000)
|
|
|
+ },
|
|
|
+ getQecode() {
|
|
|
+ getLoginCode().then(res => {
|
|
|
+ this.qecode = res.data
|
|
|
+ console.log(res.msg,67)
|
|
|
+ let apiurl = settings.urls
|
|
|
+ // if(apiurl.includes('118.178.139.79')){
|
|
|
+ // apiurl = 'https://video.zhongxinyun.com.cn/api'
|
|
|
+ // }
|
|
|
+ // /dev-api
|
|
|
+ let urls = `${apiurl}/prod-api/auth/scanCode/${res.data}`
|
|
|
+ console.log(urls,987)
|
|
|
+ this.creatQrCode(urls)
|
|
|
+ this.isInvalid = false
|
|
|
+ this.stageType = 2
|
|
|
+ })
|
|
|
+ },
|
|
|
+ dhiwyrei(){
|
|
|
+ this.stageType=2
|
|
|
+ this.getQecode()
|
|
|
+ },
|
|
|
+ getCookie() {
|
|
|
+ const username = Cookies.get("username");
|
|
|
+ const password = Cookies.get("password");
|
|
|
+ const rememberMe = Cookies.get('rememberMe')
|
|
|
+ this.loginForm = {
|
|
|
+ username: username === undefined ? this.loginForm.username : username,
|
|
|
+ password: password === undefined ? this.loginForm.password : decrypt(password),
|
|
|
+ rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
|
|
|
+ };
|
|
|
+ },
|
|
|
+ handleLogin() {
|
|
|
+ this.$refs.loginForm.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ this.loading = true;
|
|
|
+ if (this.loginForm.rememberMe) {
|
|
|
+ Cookies.set("username", this.loginForm.username, {
|
|
|
+ expires: 30
|
|
|
+ });
|
|
|
+ Cookies.set("password", encrypt(this.loginForm.password), {
|
|
|
+ expires: 30
|
|
|
+ });
|
|
|
+ Cookies.set('rememberMe', this.loginForm.rememberMe, {
|
|
|
+ expires: 30
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ Cookies.remove("username");
|
|
|
+ Cookies.remove("password");
|
|
|
+ Cookies.remove('rememberMe');
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
+ this.$store.dispatch("Login", this.loginForm).then(() => {
|
|
|
+ this.$router.push({
|
|
|
+ path: this.redirect || "/"
|
|
|
+ }).catch(() => {});
|
|
|
+ }).catch(() => {
|
|
|
+ this.loading = false;
|
|
|
+ this.getCode();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ bkue(){
|
|
|
+ this.stageType =1
|
|
|
+ clearInterval(this.setInStatus)
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- }
|
|
|
-};
|
|
|
+ };
|
|
|
</script>
|
|
|
|
|
|
<style rel="stylesheet/scss" lang="scss">
|
|
|
.login {
|
|
|
display: flex;
|
|
|
- justify-content: center;
|
|
|
+ justify-content: flex-end;
|
|
|
align-items: center;
|
|
|
height: 100%;
|
|
|
background-image: url("../assets/images/login-background.jpg");
|
|
|
background-size: cover;
|
|
|
}
|
|
|
+.div_p{
|
|
|
+ text-align: center;
|
|
|
+ font-size: 11px;
|
|
|
+ color: #AAAAAA;
|
|
|
+ // line-height: 1;
|
|
|
+}
|
|
|
+.medTitle{
|
|
|
+ margin-top: 10px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 50px;
|
|
|
+ position: relative;
|
|
|
+ color: #343434;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ &::before{
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ width: 30px;
|
|
|
+ height: 2px;
|
|
|
+ border-radius: 1px;
|
|
|
+ background-color: #F4AD6B;
|
|
|
+ top: 0;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ }
|
|
|
+}
|
|
|
+.med_icons{
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 365px;
|
|
|
+ position: relative;
|
|
|
+ left: -23px;
|
|
|
+
|
|
|
+ .med_icons_item{
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ cursor: pointer;
|
|
|
+ .icon{
|
|
|
+ width: 34px;
|
|
|
+ height: 34px;
|
|
|
+ margin-bottom: 6px;
|
|
|
+ }
|
|
|
+ p{
|
|
|
+ text-align: center;
|
|
|
+ font-size: 11px;
|
|
|
+ color: #666666;
|
|
|
+ line-height: 24px;
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
.title {
|
|
|
- margin: 0px auto 30px auto;
|
|
|
+ margin: 0px auto 40px auto;
|
|
|
text-align: center;
|
|
|
- color: #707070;
|
|
|
+ color: #343434;
|
|
|
+ padding: 0 15px;
|
|
|
+ position: relative;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 22px;
|
|
|
+ &::before{
|
|
|
+ position: absolute;
|
|
|
+ content: '';
|
|
|
+ width: 145px;
|
|
|
+ height: 15px;
|
|
|
+ background-image: url('../assets/images/pic_dlbt_hx@2x.png');
|
|
|
+ background-size: 100% 100%;
|
|
|
+ bottom: -15px;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.login-form {
|
|
|
border-radius: 6px;
|
|
|
background: #ffffff;
|
|
|
- width: 400px;
|
|
|
- padding: 25px 25px 5px 25px;
|
|
|
+ width: 441px;
|
|
|
+ box-shadow: 0 0 25px #E3E3EA;
|
|
|
+ margin-right: 101px;
|
|
|
+ background-image: urk;
|
|
|
+ padding: 58px 62px 49px;
|
|
|
+ position: relative;
|
|
|
+ .icon_rw{
|
|
|
+ position: absolute;
|
|
|
+ width: 72px;
|
|
|
+ height: 72px;
|
|
|
+ top: 11px;
|
|
|
+ right: 11px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .icon_mim{
|
|
|
+ position: absolute;
|
|
|
+ width: 57px;
|
|
|
+ height: 57px;
|
|
|
+ top: 11px;
|
|
|
+ right: 11px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .erw_img{
|
|
|
+ margin: 69px 0 83px;
|
|
|
+ text-align: center;
|
|
|
+ .img{
|
|
|
+ width: 240px;
|
|
|
+ height: 240px;
|
|
|
+ margin-bottom: 17px;
|
|
|
+ }
|
|
|
+ p{
|
|
|
+ color: #666666;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mim_p{
|
|
|
+ text-align: center;
|
|
|
+ color: #2865E1;
|
|
|
+ font-size: 15px;
|
|
|
+ font-weight: bold;
|
|
|
+ text-decoration: underline;
|
|
|
+ }
|
|
|
.el-input {
|
|
|
height: 38px;
|
|
|
input {
|
|
@@ -216,4 +515,105 @@ export default {
|
|
|
.login-code-img {
|
|
|
height: 38px;
|
|
|
}
|
|
|
+
|
|
|
+ .login-erw-thre {
|
|
|
+ border-radius: 4px;
|
|
|
+ background: #ffffff;
|
|
|
+ padding: 0;
|
|
|
+ text-align: center;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .log_erw_thre_img {
|
|
|
+ width: 181px;
|
|
|
+ height: 270px;
|
|
|
+
|
|
|
+ .img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .log_erw_thre_rig {
|
|
|
+ h3 {
|
|
|
+ font-size: 16px;
|
|
|
+ color: #343434;
|
|
|
+ margin: 0 0 40px;
|
|
|
+ }
|
|
|
+ .thre_btn{
|
|
|
+ width: 120px;
|
|
|
+ height: 36px;
|
|
|
+ color: #24B2FA;
|
|
|
+ border: 1px solid #24B2FA;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-radius: 18px;
|
|
|
+ cursor: pointer;
|
|
|
+ margin: 0 auto;
|
|
|
+ line-height: 36px;
|
|
|
+ }
|
|
|
+ p {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #666666;
|
|
|
+ text-align: left;
|
|
|
+
|
|
|
+ span {
|
|
|
+ color: #24B2FA;
|
|
|
+ margin-left: 4px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-erw {
|
|
|
+ border-radius: 4px;
|
|
|
+ background: #ffffff;
|
|
|
+ width: 335px;
|
|
|
+ padding: 35px 31px 24px;
|
|
|
+ position: relative;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .logerw_tit {
|
|
|
+ color: #343434;
|
|
|
+ font-size: 23px;
|
|
|
+ margin: 0 0 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ p {
|
|
|
+ color: #343434;
|
|
|
+ font-size: 15px;
|
|
|
+ margin: 0;
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .logerw_img {
|
|
|
+ width: 200px;
|
|
|
+ height: 200px;
|
|
|
+ margin: 22px auto 15px;
|
|
|
+ border: 1px solid #E4E4E4;
|
|
|
+ padding: 6px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .ts_p{
|
|
|
+ font-size: 14px;
|
|
|
+ margin-bottom: 25px;
|
|
|
+ color: #343434;
|
|
|
+ span{
|
|
|
+ margin: 0 3px;
|
|
|
+ color: #24B2FA;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .logerw_fot {
|
|
|
+ text-align: right;
|
|
|
+ font-size: 15px;
|
|
|
+ color: #666666;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
</style>
|