emis-frontend/src/views/login.vue
2025-05-10 16:21:40 +08:00

941 lines
32 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="main-bg">
<div class="header-container narrow-screen">
<div class="banner-box">
<div>
<div class="header default-transition-fast">
<div class="header-wrapper auto clearfix">
<div class="header-left">
<div class="header-logo">
<div style="text-align: center; height:80px; line-height:80px;display: inline-flex;">
<div>
<!-- src="@/assets/logo/tnlogo.png -->
<img style="display: inline-block; vertical-align: middle;height: 55px;" :src="logoImg">
</div>
<div style="display: inline-flex;">
<div><img style="display: inline-block; vertical-align: middle;height: 18px;" src="@/assets/images/hotphone.png"></div>
<div style="font-size: 18px; font-weight: 500;width: 120px;text-align: left;color: #b12e29;margin-left: 5px;" v-if="isTanex">400-025-7080</div>
<div style="font-size: 18px; font-weight: 500;width: 120px;text-align: left;color: #b12e29;margin-left: 5px;" v-if="!isTanex">400-025-1756</div>
</div>
</div>
</div>
</div>
<div style="float: right;padding: 3px;display: inline-flex">
<div style="text-align: center;line-height: 80px;margin-right: 20px;">
<div class="nav-title nav-title-active">
<div style="padding: 0px 3px;"><img style="display: inline-block; vertical-align: middle;height: 10px;" src="@/assets/images/fhxz_icon.png"></div>
<div>发货须知</div>
</div>
</div>
<div style="text-align: center;line-height: 80px;margin-right: 20px;">
<div class="nav-title">
<div style="padding: 0px 3px;"><img style="display: inline-block; vertical-align: middle;height: 10px;" src="@/assets/images/help_icon.png"></div>
<div>系统帮助</div>
</div>
</div>
<div style="text-align: center;line-height: 80px;margin-right: 20px;">
<div class="nav-title">
<div style="padding: 0px 3px;"><img style="display: inline-block; vertical-align: middle;height: 10px;" src="@/assets/images/zxkf_icon.png"></div>
<div>在线客服</div>
</div>
</div>
<!-- <div v-for="(navItem,navId) in zoneConfig.navList" :key="navId">
<div style="text-align: center;line-height: 80px;margin-right: 20px;">
<a :href="navItem.url">{{ navItem.navName }}</a>
</div>
</div> -->
<div>
<!-- <div style="text-align: center;position: relative;line-height: 80px" >
<input type="hidden" id="kfQrImage" :value="zoneConfig.kfQrImage">
<el-popover
placement="left"
width="284"
trigger="click"
ref="popoverRef"
effect="light"
:offset="120"
:popper-options="{
// modifiers: [{
// name: 'offset',
// options: {
// offset: [0, 0]
// }
// }],
// boundariesElement: 'viewport',
// removeOnDestroy: true
}"
:show-arrow="false"
popper-class="table-field-operation-popover"
>
<img :src="zoneConfig.kfQrImage" width="260px"/>
<div style="text-align: center;">请添加微信联系</div>
<div style="text-align: center" slot="reference">联系客服</div>
</el-popover>
</div> -->
<!-- <div style="text-align: center;line-height: 80px;margin-right: 20px;" @click="showKfView" >联系客服</div> -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- header end-->
<div class="login-main-area">
<div class="auto login-inner" >
<div class="clearfix">
<div class="login-desc">
<h2 v-if="isTanex">探路物流 速运全球-关境通物流管理系统</h2>
<h2 v-if="!isTanex">陆陆达-关境通物流管理系统</h2>
<p>专业物流服务,端对端客户优势,垂直化的跟踪解答</p>
<p>
<img style="display: inline-block; vertical-align: middle;width:50%;" src="@/assets/images/spic.png">
</p>
</div>
<div class="login-main pie-for-element">
<el-row>
<div>
<div style="display:none">
<h3 class="title">系统登录</h3>
</div>
<p class="login_title">
<span :class="isActiveIndex === 0 ? 'isActiveTitle' : ''" @click="switchAccountLogin">{{ $t('loginForm.accountLogin') }}</span>
<!-- <span :class="isActiveIndex === 1 ? 'isActiveTitle' : ''" @click="switchSmsLogin">验证码登录</span> -->
</p>
</div>
<el-form v-if="isActive" ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
type="text"
clearable
maxlength="20"
:placeholder="$t('loginForm.username')"
>
<!-- auto-complete="new-password" -->
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="password" >
<el-input
v-model="loginForm.password"
type="password"
maxlength="20"
show-password
clearable
:placeholder="$t('loginForm.password')"
@keyup.enter.native="handleLogin"
>
<!-- auto-complete="new-password" -->
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="code" style="" >
<el-input
v-model="loginForm.code"
auto-complete="off"
:placeholder="$t('loginForm.vcode')"
style="width: 60%"
maxlength="4"
oninput="if(value.length>4)value=value.slice(0,4)"
clearable
@keyup.enter.native="handleLogin"
>
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
</el-input>
<div class="login-code" style="width: 40%">
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div>
</el-form-item>
<el-form-item prop="rememberMe" style="width:100%;margin-top: 0px;margin-bottom: 0px;" >
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 0px 0px;font-size:400">{{ $t('loginForm.rememberMe') }}</el-checkbox>
</el-form-item>
<el-form-item style="width:100%;margin-top: 5px;">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width:100%;"
@click.native.prevent="handleLogin"
>
<!-- 登 录 -->
<span v-if="!loading">{{ $t('loginForm.btnLogin') }}</span>
<span v-else>{{ $t('loginForm.logingMsg') }}</span>
</el-button>
</el-form-item>
<el-form-item style="width:100%;margin-top: 5px;">
<el-dropdown class="right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper" >
<div style="display: inline-flex;line-height: 20px;padding: 5px;text-align: center; min-width: 35px; border-radius: 30px;" slot="reference">
<div>
<svg-icon icon-class="lang" style="width:20px" />
<!-- <img v-if="i18nLang=='zh-CN'" style="width:20px" src="@/assets/lang_logo/zh-cn.png" /> -->
<!-- <img v-if="i18nLang=='en'" style="width:20px" src="@/assets/lang_logo/en.png" /> -->
</div>
<div v-if="i18nLang=='zh-CN'">{{ $t('locale.zh-CN') }}</div>
<div v-if="i18nLang=='en'">{{ $t('locale.en') }}</div>
<div>
<i class="el-icon-caret-bottom" />
</div>
</div>
</div>
<el-dropdown-menu slot="dropdown" >
<el-dropdown-item @click.native="changeLanguage('zh-CN')">
<span v-if="i18nLang=='zh-CN'" style="display:block;color: red;">{{ $t('locale.zh-CN') }}</span>
<span v-else style="display:block;">{{ $t('locale.zh-CN') }}</span>
</el-dropdown-item>
<el-dropdown-item @click.native="changeLanguage('en')">
<span v-if="i18nLang=='en'" style="display:block;color: red;">{{ $t('locale.en') }}</span>
<span v-else style="display:block;">{{ $t('locale.en') }}</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-form-item>
</el-form>
<el-form v-else ref="loginForm2" :model="loginForm2" :rules="loginRules2" class="login-form2">
<el-form-item prop="mobile">
<el-input
v-model="loginForm2.mobile"
type="text"
auto-complete="off"
placeholder="手机号"
maxlength="11"
clearable
@keyup.enter.native="getSmsCode"
>
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="smscode" >
<el-input
v-model="loginForm2.smscode"
auto-complete="new-password"
placeholder="短信验证码"
clearable
maxlength="4"
style="width: 100%"
@keyup.enter.native="handleLoginByMobile"
>
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
</el-input>
<div class="sms-send-panel" >
<div
:disabled="smsSendDisabledFlag"
class="sms-send-btn"
@click="getSmsCode"
>
<span>{{smsSendBtnMsg}}</span>
</div>
</div>
</el-form-item>
<el-form-item style="width:100%;margin-top: 10px;">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width:100%;"
@click.native.prevent="handleLoginByMobile"
>
<span v-if="!loading">登 录</span>
<span v-else>登 录 中...</span>
</el-button>
</el-form-item>
</el-form>
<div style="clearfix: both;padding: 0px 15px;">
<!-- <div style="float: left;" >
<router-link class="link-type" :to="'/register'" style="color: gray;font-weight: 400;font-size: 14px;">免费试用</router-link>
</div>
<div style="float: right;" >
<router-link class="link-type" :to="'/resetpwd'" style="color: gray;font-weight: 400;font-size: 14px;">忘记密码?</router-link>
</div> -->
</div>
</el-row>
</div>
</div>
</div>
</div>
<div class="signfooter">
<div class="auto clearfix">
<div class="footer-signfooter">
<p v-if="isTanex">Powered by © 2024 探路速运 All Rights Reserved 技术支持:南京睿达通商务咨询有限公司 </p>
<p v-if="!isTanex">Powered by © 2024 陆陆达 All Rights Reserved 技术支持:南京睿达通商务咨询有限公司 </p>
<p></p>
</div>
</div>
</div>
<div class="cmn-fixbtns" style="display:none;">
<div class="ims">
<a >
<el-popover
placement="left"
width="284"
trigger="click"
ref="popoverRef"
effect="light"
:offset="120"
:popper-options="{
// modifiers: [{
// name: 'offset',
// options: {
// offset: [0, 0]
// }
// }],
// boundariesElement: 'viewport',
// removeOnDestroy: true
}"
:show-arrow="false"
popper-class="table-field-operation-popover"
>
<img :src="zoneConfig.kfQrImage" width="260px"/>
<img src="../assets/images/kefu.png" slot="reference" style="width: 40px;"/>
</el-popover>
</a>
<div class="clearfix" style="position: relative;display:none">
<div id="showPhoneDiv" style="display:none;position: absolute;width: 150px;right: 42px;background: white;padding: 10px;">
<span style="color: #FFA200;">17898809070</span>
</div>
<img src="../assets/images/dianhua.png" onmouseover="showPhone()" onmouseout="hidePhone()" style=" width: 40px;"/>
</div>
</div>
</div>
<div class="kf_dialog_center">
<el-dialog title="" :visible.sync="openKfView" width="400px" append-to-body>
<div style="padding:30px">
<img :src="zoneConfig.kfQrImage" width="100%" draggable="false"/>
<div style="text-align: center;">打开微信扫一扫 添加专属客服</div>
<div style="text-align: center" >帮助您更全面的了解系统功能</div>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import luludaLogo from '@/assets/logo/luluda_logo.png';
import tanexLogo from '@/assets/logo/tnlogo.png';
import { getCodeImg } from "@/api/login";
import { getLoginSmsVCode } from "@/api/common";
import { getLocalIp } from "@/utils/custom";
import Cookies from "js-cookie";
import { encrypt, decrypt } from '@/utils/jsencrypt'
import FingerprintJS from '@fingerprintjs/fingerprintjs' // 引入
// const uuidv4 = require("uuid/v4"); // 导入uuid生成插件
import { v4 as uuidv4 } from 'uuid';
export default {
name: "Login",
data() {
return {
zoneConfig:{},
pdomain:null,
codeUrl: "",
localIp:null,
logoImg: null,
isTanex:true,
loginForm: {
username: "",
password: "",
rememberMe: false,
code: "",
uuid: "",
macCode:"",
pdomain:""
},
loginRules: {
username: [
{ required: true, trigger: "blur", message: "请输入您的账号" }
],
password: [
{ required: true, trigger: "blur", message: "请输入您的密码" }
],
code: [
{ required: true, trigger: "blur", message: "请输入验证码" }
]
},
loginForm2: {
mobile: "",
smscode: "",
pdomain:""
},
loginRules2: {
mobile: [
{ required: true, trigger: "blur", message: "请输入手机号" },
{ trigger: "blur", message: "手机号不正确",pattern:/^1\d{10}$/ },
],
smscode: [
{ required: true, trigger: "change", message: "请输入短信验证码" }
],
},
loading: false,
// 验证码开关
captchaOnOff: true,
// 注册开关
register: false,
redirect: undefined,
capsTooltip: false,
loading: false,
showDialog: false,
redirect: undefined,
otherQuery: {},
dialogVisible: false, // 验证码弹框
isActive: true, // 用于实现切换登录,作为判断
isActiveIndex: 0,
smsSendBtnMsg:"获取验证码",
smsSendDisabledFlag:false,
openKfView:false
};
},
computed: {
i18nLang:{
get() {
return this.$i18n.locale;
}
}
},
watch: {
$route: {
handler: function(route) {
this.redirect = route.query && route.query.redirect;
},
immediate: true
}
},
created() {
document.title="系统登录";
this.zoneConfig=this.$store.state.zoneConfig;
const domain = this.zoneConfig.zoneDomain;
let domainPrefix = null;
if(domain === undefined){
this.zoneConfig.zoneDomain=process.env.VUE_APP_PDOMAIN;
}
else{
domainPrefix = domain.substring(0, domain.indexOf('.'))
this.zoneConfig.zoneDomain=domainPrefix;
this.loginForm.pdomain = domainPrefix
this.loginForm2.pdomain = domainPrefix
}
this.getCode();
this.getCookie();
this.initMacId();
let hostName=window.location.hostname;
if(hostName.indexOf('truckline56')!=-1 || hostName.indexOf("43.136.13.105")!=-1){
this.logoImg=luludaLogo;
this.isTanex=false;
}else{
this.logoImg=tanexLogo;
this.isTanex=true;
}
},
methods: {
async initMacId(){
// const fp = await FingerprintJS.load()
// const result = await fp.get()
// const macCode = result.visitorId
let macCode=localStorage.getItem('EMIS_TnMacCode')||'';
if(!macCode){
macCode=uuidv4().replaceAll('-','');
localStorage.setItem('EMIS_TnMacCode',macCode);
}
// console.log("==>macCode==>",macCode);
let submitMacCode="202408###"+macCode;
// console.log("==>==>",submitMacCode);
this.loginForm.macCode=submitMacCode;
},
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;
}
});
},
getSmsCode() {
const _this =this;//!!坑!setInterval中的this指向问题
this.loginForm2.smscode="";
const MAX_WAIT_TIME = 60;
this.$refs.loginForm2.validateField(['mobile'],valid => {
if (valid=="") {
_this.smsSendBtnMsg=MAX_WAIT_TIME+"s";
this.smsSendDisabledFlag = true; //!按钮不可重复点击
var time = 60;//定义时间变量
var timer = null;//定义定时器
timer = setInterval(function(){
if(time==0){
_this.smsSendBtnMsg="重新获取验证码";
_this.smsSendDisabledFlag=false;
clearInterval(timer);//清除定时器
}else{
_this.smsSendBtnMsg=time+"s";
time--;
}
},1000)
getLoginSmsVCode(this.loginForm2.mobile).then(res => {
// 发送验证码成功
}).catch(error => {
// 发送失败
console.log(error)
time =0;
_this.smsSendDisabledFlag=false;
clearInterval(timer);//清除定时器
})
}
});
},
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("pdomain", this.zoneConfig.zoneDomain, { expires: 30 });
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
} else {
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove('rememberMe');
Cookies.remove('pdomain');
}
this.$store.dispatch("Login", this.loginForm).then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
}).catch(() => {
this.loading = false;
this.getCode();
});
}
});
},
handleLoginByMobile(){
let pdomain = process.env.VUE_APP_PDOMAIN
if (!pdomain) {
pdomain = this.loginForm.pdomain
}
this.$refs.loginForm2.validate(valid => {
if (valid) {
this.loading = true;
this.$store.dispatch("LoginByMobile", this.loginForm2).then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
}).catch(() => {
this.loading = false;
});
}
});
},
switchAccountLogin() { // 账号登录
this.isActive = true
this.isActiveIndex = 0
//根据需求二选一
// this.$refs[refElement].resetFields(); //移除校验结果并重置字段值
this.$refs.loginForm2.clearValidate(); //移除校验结果
},
switchSmsLogin() { // 短信登录
this.isActive = false
this.isActiveIndex = 1
this.$refs.loginForm.clearValidate(); //移除校验结果
},
showKfView(){
this.openKfView=true;
},
changeLanguage(locale) {
// Cookies.set("language",locale);
localStorage.setItem('locale', locale)
this.$i18n.locale = locale
},
}
};
</script>
<style lang="scss" scoped>
.login {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
background: url("../assets/images/loginbg2.jpg") no-repeat 50% fixed;
// background-color: rgb(24, 144, 255);
// background-image: linear-gradient(#2196F3, #03A9F4);
background-size: cover;
}
.title {
margin: 0px auto 16px auto;
text-align: left;
color: #000000;
padding: 10px 0px;
border-bottom: 1px solid #f6f6f6;
font-size: 16px;
font-weight: 400;
}
.login-form {
border-radius: 6px;
background: #ffffff;
width: 330px;
padding: 0px 15px;
.el-input {
height: 38px;
input {
height: 38px;
};
}
.el-form-item{
margin-bottom: 20px;
}
.input-icon {
height: 39px;
width: 14px;
margin-left: 2px;
}
}
.nav-title{
padding: 5px;
display: inline-flex;
line-height: 15px;
font-size: 12px;
background: #f0c0bf92;
color: #b12e29;
}
.nav-title-active{
background: #b12e29!important;
color: white!important;
}
.login-form2 {
border-radius: 6px;
background: #ffffff;
width: 330px;
padding: 0px 15px;
.el-input {
height: 38px;
input {
height: 38px;
};
}
.el-form-item{
margin-bottom: 20px;
}
.input-icon {
height: 39px;
width: 14px;
margin-left: 2px;
}
}
.login-tip {
font-size: 13px;
text-align: center;
color: #bfbfbf;
}
.login-code {
width: 33%;
height: 38px;
float: right;
img {
cursor: pointer;
vertical-align: middle;
}
}
.el-login-footer {
height: 40px;
line-height: 40px;
position: fixed;
bottom: 0;
width: 100%;
text-align: center;
color: #fff;
font-family: Arial;
font-size: 12px;
letter-spacing: 1px;
}
.login-code-img {
height: 38px;
}
img { border: none; }
li { list-style: none; }
pre { white-space: pre-wrap; overflow-wrap: break-word; }
body {
font: 14px "Microsoft Yahei","Helvetica Neue", Helvetica, "PingFang SC", Tahoma, Arial, sans-serif;
background-color: rgb(24, 144, 255);
}
hr { height: 1px; margin: 10px 0px; border: 0px; clear: both; }
a {
font-size: 15px;
font-weight: 500;
color: rgb(51, 51, 51); text-decoration: none;outline: 0px; }
a:hover { color: rgb(119, 119, 119); }
a:active, a:hover { outline: 0px; }
a:visited {color: rgb(51, 51, 51); }
* { margin: 0px; box-sizing: border-box; list-style: none; }
strong { font-weight: 400; }
::selection { background: rgb(30, 172, 223); color: rgb(255, 255, 255); }
img { border: 0px; }
::-webkit-selection { background: rgb(30, 172, 223); color: rgb(255, 255, 255); }
.auto, .autoWidth { margin: 0px auto; max-width: 1900px; }
.clearfix::after, .clearfix::before { display: table; line-height: 0; content: ""; }
.clearfix::after { clear: both; }
.header-left, .page_no a, .pull-left { float: left; }
.header { height: 80px; }
.banner-engine .header { background-color: transparent; }
.header, .header-main:hover .header { background-color:#FFF8F8; }
.header-main:hover .header { border-bottom: none; }
.header-logo { display: inline-block; position: relative; width: 130px; height: 80px; float: left; }
.logo, .slogan-gif { position: absolute; }
// .logo { top: 0px; left: 0px; width: 900px; height: 100%; background: url("") left center no-repeat; }
.logo { top: 0px; left: 0px; width: 900px; height: 100%;}
.header .auto { overflow: visible; }
.banner-engine .header-container { width: 100%; height: 0px; }
.banner-box { height: 80px; }
.banner-engine .banner-box { height: 720px; position: relative; }
.transparent-header .banner-box, .transparent-header .header-container { width: 100%; height: 0px; }
.signfooter { text-align: center; background-color: transparent; padding: 10px 0px; position: fixed; left: 0px; bottom: 0px; width: 100%; max-height: 98px; }
.footer-signfooter { width: 100%; padding: 5px 0px; }
.footer-signfooter a, .footer-signfooter p { margin-top: 8px; font-size: 12px; color: #757575; }
.login-desc { padding-left: 20px; padding-top: 10px; color:#B12D29; font-size: 16px; }
.login-desc h2 { margin-bottom: 10px; padding-left: 100px; font-size: 28px;font-weight: 900; }
.login-desc p { height: 22px; line-height: 22px; margin-bottom: 24px; text-indent: 38px;font-weight: 900; }
.login-main-area { position: relative;
// background-image: url("../assets/images/loginbg3.jpg");
/*background-position: center 0px; */
/*background-repeat: no-repeat; */
/*background-size: 100%; */
min-height: 510px; text-align: left; padding-top: 20px; padding-bottom: 28px;
// background-color: rgb(24, 144, 255);
/*background-image: linear-gradient(#2196F3, #03A9F4);*/
}
.main-bg{
//background-position: center 0px;
//background-repeat: no-repeat;
//@at-rootbackground-size: 100%;
// background-color: rgb(24, 144, 255);
background-color:#FFF8F8;
height:100%
}
.login-inner { position: relative; z-index: 20; }
.login-main {
position: absolute;
right: 80px;
top: 10%; z-index: 50;
padding: 10px 30px 18px;
min-height: 404px;
background-color: rgb(255, 255, 255);
// box-shadow: rgba(0, 0, 0, 0.1) 0px 5px 5px;
box-shadow: #b12d294f 0px 2px 3px;
border-radius: 5px;
}
.login-main :deep .el-button--primary {
color: #FFFFFF;
background-color: #B12D29;
border-color: #B12D29;
}
.login-form .el-input {
height: 40px;
}
:deep .login-form .el-input__inner {
height: 40px;
line-height: 40px;
}
.login-form2 .el-input {
height: 40px;
}
:deep .login-form2 .el-input__inner {
height: 40px;
line-height: 40px;
}
.login_box{
width: 450px;
height: 490px;
background-color: #fff;
border-radius: 18px;
padding: 30px 50px 30px 30px;
}
.login_title{
text-align: left;
margin: 10px;
font-size: 16px;
color: #666;
border-bottom: 1px solid #f6f6f6;
padding: 10px 0px;
}
.login_title span{
margin: 0 20px 0 20px;
cursor: pointer;
}
.login_title span:hover{
color: #333;
font-weight: bolder;
}
.isActiveTitle{
color: #333;
font-weight: bolder;
border-bottom: 2px solid #B12D29;
}
.login_agree{
margin-left: 30px;
}
.login_btn{
width: 100%;
height: 50px;
margin: 0 0 0 10px;
background-color: #0cb95f;
color: #fff;
}
.cmn-fixbtns {
position: fixed;
z-index: 999;
right: 5%;
top: 150px;
}
.cmn-fixbtns .ims {
width: 40px;
}
.el-checkbox__label {
font-weight: 400;
}
.sms-send-panel{
width: 40%;
position: absolute;
right: 5px;
top: 0px;
line-height: 36px;
height: 36px;
}
.sms-send-btn {
width: 100%;
font-size: 14px;
border-radius: 100px;
padding: 0px;
background: transparent;
color: #565656;
border: none;
text-align: center;
cursor: pointer;
:hover{
color: #565656;
font-weight: bold;
}
}
.kf_dialog_center {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
// .el-dialog__wrapper {
// margin-top: 0 !important;
// top: 50%;
// transform: translateY(-50%)
// }
.el-dialog{
display: flex;
display: -ms-flex; /* 兼容IE */
flex-direction: column;
-ms-flex-direction: column; /* 兼容IE */
margin:0 !important;
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
max-height:calc(100% - 30px);
max-width:calc(100% - 30px);
}
.el-dialog .el-dialog__body{
max-height: 100%;
flex: 1;
-ms-flex: 1 1 auto; /* 兼容IE */
overflow-y: auto;
overflow-x: hidden;
}
.el-dialog__wrapper {
/*隐藏ie和edge中遮罩的滚动条*/
overflow: hidden;
}
</style>