Commit d7e57d68 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/huaguohao/crm into master

parents ec63a3bd ebc43452
...@@ -6,14 +6,18 @@ export default { ...@@ -6,14 +6,18 @@ export default {
apiurl: '' apiurl: ''
}, },
install(Vue, options) { install(Vue, options) {
Vue.prototype.isOnline = function() { Vue.prototype.isOnline = function () {
return process.env.NODE_ENV !== 'development'; return process.env.NODE_ENV !== 'development';
}, },
//域名管理对象 //域名管理对象
Vue.prototype.domainManager = function() { Vue.prototype.domainManager = function () {
let domainUrl = "http://192.168.10.2:8098" //CRM API
let domainUrl = "";
domainUrl = "http://192.168.10.2:8098";
//domainUrl = "http://localhost:5003";
let locationName = window.location.hostname; let locationName = window.location.hostname;
let domainPostUrl = "http://192.168.10.2:8083" //旅游ERPApi
let domainPostUrl = "http://192.168.10.214"
if (this.isOnline()) { if (this.isOnline()) {
if (window.location.host.indexOf('fcrmyx.oytour.com') != -1) { if (window.location.host.indexOf('fcrmyx.oytour.com') != -1) {
domainUrl = "http://crm.oytour.com" domainUrl = "http://crm.oytour.com"
...@@ -47,7 +51,7 @@ export default { ...@@ -47,7 +51,7 @@ export default {
}; };
return obj; return obj;
}, },
Vue.prototype.GetLocalFile = function(cmd, msg, fileName, successCall) { Vue.prototype.GetLocalFile = function (cmd, msg, fileName, successCall) {
var apiurl = this.domainManager().LocalFileStreamDownLoadUrl; var apiurl = this.domainManager().LocalFileStreamDownLoadUrl;
var timestamp = (new Date()).valueOf(); var timestamp = (new Date()).valueOf();
if (!localStorage.userInfo && localStorage.userInfo != "" && this.$route.path.toLowerCase() != "/login") { if (!localStorage.userInfo && localStorage.userInfo != "" && this.$route.path.toLowerCase() != "/login") {
...@@ -83,10 +87,10 @@ export default { ...@@ -83,10 +87,10 @@ export default {
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
successCall(res); successCall(res);
}).catch(function(res) {}); }).catch(function (res) {});
}, },
//价钱格式化,三位数逗号分隔,保留两位小数 duanjun //价钱格式化,三位数逗号分隔,保留两位小数 duanjun
Vue.prototype.moneyFormat = function(value) { Vue.prototype.moneyFormat = function (value) {
let nStr = Number(value).toFixed(2) let nStr = Number(value).toFixed(2)
nStr += ''; nStr += '';
let x = nStr.split('.'); let x = nStr.split('.');
...@@ -99,7 +103,7 @@ export default { ...@@ -99,7 +103,7 @@ export default {
return x1 + x2; return x1 + x2;
}, },
//消息成功提示 //消息成功提示
Vue.prototype.Success = function(msg) { Vue.prototype.Success = function (msg) {
this.$message({ this.$message({
message: msg, message: msg,
duration: 2000, duration: 2000,
...@@ -107,7 +111,7 @@ export default { ...@@ -107,7 +111,7 @@ export default {
}); });
}, },
//错误提示 //错误提示
Vue.prototype.Error = function(msg) { Vue.prototype.Error = function (msg) {
this.$message({ this.$message({
message: msg, message: msg,
duration: 2000, duration: 2000,
...@@ -116,7 +120,7 @@ export default { ...@@ -116,7 +120,7 @@ export default {
}, },
//一般提示 //一般提示
Vue.prototype.Info = function(msg) { Vue.prototype.Info = function (msg) {
this.$message({ this.$message({
message: msg, message: msg,
duration: 2000, duration: 2000,
...@@ -124,7 +128,7 @@ export default { ...@@ -124,7 +128,7 @@ export default {
}); });
}, },
//警告提示 //警告提示
Vue.prototype.Warning = function(msg) { Vue.prototype.Warning = function (msg) {
this.$message({ this.$message({
message: msg, message: msg,
duration: 2000, duration: 2000,
...@@ -132,7 +136,7 @@ export default { ...@@ -132,7 +136,7 @@ export default {
}); });
}, },
//Confirm //Confirm
Vue.prototype.Confirm = function(msg, callback) { Vue.prototype.Confirm = function (msg, callback) {
this.$confirm(msg, "提示", { this.$confirm(msg, "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
...@@ -152,7 +156,7 @@ export default { ...@@ -152,7 +156,7 @@ export default {
//type : m_filt 填充 m_w 宽度固定 高度不固定 m_h 高度固定 宽度不固定 //type : m_filt 填充 m_w 宽度固定 高度不固定 m_h 高度固定 宽度不固定
// w : 宽 // w : 宽
// h : 高 // h : 高
Vue.prototype.compressImg = function(path, type, w, h) { Vue.prototype.compressImg = function (path, type, w, h) {
let url = this.domainManager().UploadUrl; let url = this.domainManager().UploadUrl;
let poise = 'width='; let poise = 'width=';
w = w ? w : '' w = w ? w : ''
...@@ -164,14 +168,14 @@ export default { ...@@ -164,14 +168,14 @@ export default {
} }
return path.split('?')[0] + '?width=' + w; return path.split('?')[0] + '?width=' + w;
} }
//打开新窗口连接 //打开新窗口连接
Vue.prototype.OpenNewUrl = function(URL) { Vue.prototype.OpenNewUrl = function (URL) {
if (URL != '') { if (URL != '') {
window.open('http://' + URL, '_blank'); window.open('http://' + URL, '_blank');
}
} }
//HTTP提交数据 }
Vue.prototype.apipost2 = function(cmd, msg, successCall, faildCall, isOnline) { //旅游ERP接口
Vue.prototype.apipost2 = function (cmd, msg, successCall, faildCall, isOnline) {
if (msg == null || msg == "") { if (msg == null || msg == "") {
msg = {} msg = {}
} }
...@@ -218,7 +222,7 @@ export default { ...@@ -218,7 +222,7 @@ export default {
} }
}, faildCall) }, faildCall)
} }
Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) { Vue.prototype.apipost = function (cmd, msg, successCall, faildCall) {
if (msg == null || msg == "") { if (msg == null || msg == "") {
msg = {} msg = {}
} }
...@@ -234,13 +238,11 @@ export default { ...@@ -234,13 +238,11 @@ export default {
var md5Str = md5(`cmd=${cmd}&msg=${encodeMsg}&timestamp=${timestamp}&token=${token}&key=${key}`); var md5Str = md5(`cmd=${cmd}&msg=${encodeMsg}&timestamp=${timestamp}&token=${token}&key=${key}`);
var postData = { var postData = {
"msg": msg, "msg": msg,
// "cmd": cmd,
"timestamp": timestamp, "timestamp": timestamp,
"token": token, "token": token,
"sign": md5Str "sign": md5Str
} }
if (localStorage.g && localStorage.g != 'undefined') { if (localStorage.g && localStorage.g != 'undefined') {
// postData.groupId = parseInt(JSON.parse(localStorage.g).i)
postData.groupId = 2; postData.groupId = 2;
} }
this.$http.post(apiurl, postData, { this.$http.post(apiurl, postData, {
...@@ -261,7 +263,7 @@ export default { ...@@ -261,7 +263,7 @@ export default {
} }
}, faildCall) }, faildCall)
}, },
Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) { Vue.prototype.apiJavaPost = function (cmd, msg, successCall, faildCall) {
if (msg == null || msg == "") { if (msg == null || msg == "") {
msg = {} msg = {}
} }
...@@ -270,8 +272,7 @@ export default { ...@@ -270,8 +272,7 @@ export default {
this.apiurl = apiurl; this.apiurl = apiurl;
var token = ""; var token = "";
var key = ""; var key = "";
// let userInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : ''
// let uid = userInfo.accountId ? userInfo.accountId : 0
if (this.getLocalStorage() != null) { if (this.getLocalStorage() != null) {
token = this.getLocalStorage().token; token = this.getLocalStorage().token;
key = this.getLocalStorage().secretKey; key = this.getLocalStorage().secretKey;
...@@ -286,7 +287,7 @@ export default { ...@@ -286,7 +287,7 @@ export default {
"sign": md5Str "sign": md5Str
} }
if (localStorage.g && localStorage.g != 'undefined') { if (localStorage.g && localStorage.g != 'undefined') {
// postData.groupId = parseInt(JSON.parse(localStorage.g).i)
postData.groupId = 2; postData.groupId = 2;
} }
this.$http.post(apiurl, postData, { this.$http.post(apiurl, postData, {
...@@ -297,11 +298,11 @@ export default { ...@@ -297,11 +298,11 @@ export default {
}) })
.then(res => { .then(res => {
if (res.data.resultCode == 10000 || res.data.resultCode == 10001) { if (res.data.resultCode == 10000 || res.data.resultCode == 10001) {
// if (window.location.href.indexOf('IntegralMall') === -1 && window.location.href.indexOf('productDetail') === -1) {
this.$router.push({ this.$router.push({
path: '/login' path: '/login'
}) })
// }
} else if (res.data.resultCode == 10005) { } else if (res.data.resultCode == 10005) {
this.$router.go(-1) this.$router.go(-1)
} else { } else {
...@@ -312,16 +313,8 @@ export default { ...@@ -312,16 +313,8 @@ export default {
} }
}, faildCall) }, faildCall)
}, },
Vue.prototype.getAction = function(actionId, lineId) { Vue.prototype.getAction = function (actionId, lineId) {
// if(actionId==1){
// console.log("浏览签证产品",actionId)
// }
// if(actionId==7){
// console.log("浏览跟团游",actionId)
// }
// if(actionId==9){
// console.log("浏览跟团游下单",actionId)
// }
let msg = {}; let msg = {};
msg.actionId = actionId; msg.actionId = actionId;
if (lineId) { if (lineId) {
...@@ -331,7 +324,6 @@ export default { ...@@ -331,7 +324,6 @@ export default {
this.Travelload = false; this.Travelload = false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
} }
...@@ -339,28 +331,28 @@ export default { ...@@ -339,28 +331,28 @@ export default {
} }
//验证只能输入2位小数 //验证只能输入2位小数
Vue.prototype.checkPrice = function(item, filed) { Vue.prototype.checkPrice = function (item, filed) {
var value = ""; var value = "";
if (typeof item[filed] == "string") { if (typeof item[filed] == "string") {
value = item[filed]; value = item[filed];
} else { } else {
value = item[filed].toString(); value = item[filed].toString();
} }
value = value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 value = value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
value = value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的 value = value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
value = value value = value
.replace(".", "$#$") .replace(".", "$#$")
.replace(/\./g, "") .replace(/\./g, "")
.replace("$#$", "."); .replace("$#$", ".");
value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); //只能输入两个小数 value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); //只能输入两个小数
if (value.indexOf(".") < 0 && value != "") { if (value.indexOf(".") < 0 && value != "") {
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
value = parseFloat(value); value = parseFloat(value);
}
item[filed] = value;
} }
//验证只能输入整数 item[filed] = value;
Vue.prototype.checkInteger = function(item, filed) { }
//验证只能输入整数
Vue.prototype.checkInteger = function (item, filed) {
var value = ""; var value = "";
if (typeof item[filed] == "string") { if (typeof item[filed] == "string") {
value = item[filed]; value = item[filed];
...@@ -370,6 +362,5 @@ export default { ...@@ -370,6 +362,5 @@ export default {
value = value.replace(this.$commonUtils.Regex.isInteger, ""); value = value.replace(this.$commonUtils.Regex.isInteger, "");
item[filed] = value; item[filed] = value;
} }
} }
} }
\ No newline at end of file
...@@ -10,9 +10,8 @@ ...@@ -10,9 +10,8 @@
</div> </div>
<div class="publisher">徐总</div> <div class="publisher">徐总</div>
<div class="job">总经理</div> <div class="job">总经理</div>
<div <div class="content">職場上成功者與失敗者最大的分別就是,前者找機會,後者找藉口,今日的你痛恨每天上班「度日如年」,將來的你會感激經歷過這一切,你練成了更強大的自己,玻璃心不再怕碎。
class="content" </div>
>職場上成功者與失敗者最大的分別就是,前者找機會,後者找藉口,今日的你痛恨每天上班「度日如年」,將來的你會感激經歷過這一切,你練成了更強大的自己,玻璃心不再怕碎。</div>
</div> </div>
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
...@@ -28,13 +27,8 @@ ...@@ -28,13 +27,8 @@
<div class="mu-text-field has-label"> <div class="mu-text-field has-label">
<div class="mu-text-field-content"> <div class="mu-text-field-content">
<div class="mu-text-field-label">账号</div> <div class="mu-text-field-label">账号</div>
<input <input type="text" v-model="account" class="mu-text-field-input" @focus="accountStatus=true"
type="text" @blur="accountStatus=false" />
v-model="account"
class="mu-text-field-input"
@focus="accountStatus=true"
@blur="accountStatus=false"
/>
<div> <div>
<hr class="mu-text-field-line" /> <hr class="mu-text-field-line" />
<hr class="mu-text-field-focus-line" :class="{'focus':accountStatus}" /> <hr class="mu-text-field-focus-line" :class="{'focus':accountStatus}" />
...@@ -48,13 +42,8 @@ ...@@ -48,13 +42,8 @@
<div class="mu-text-field has-label"> <div class="mu-text-field has-label">
<div class="mu-text-field-content"> <div class="mu-text-field-content">
<div class="mu-text-field-label">密码</div> <div class="mu-text-field-label">密码</div>
<input <input type="password" v-model="pwd" class="mu-text-field-input" @focus="pwdStatus=true"
type="password" @blur="pwdStatus=false" />
v-model="pwd"
class="mu-text-field-input"
@focus="pwdStatus=true"
@blur="pwdStatus=false"
/>
<div> <div>
<hr class="mu-text-field-line" /> <hr class="mu-text-field-line" />
<hr class="mu-text-field-focus-line" :class="{'focus':pwdStatus}" /> <hr class="mu-text-field-focus-line" :class="{'focus':pwdStatus}" />
...@@ -64,12 +53,8 @@ ...@@ -64,12 +53,8 @@
</div> </div>
</div> </div>
<div class="field_wrap" style="margin-top:30px;"> <div class="field_wrap" style="margin-top:30px;">
<el-button <el-button type="primary" :loading="isLogining" @click="goLogin()"
type="primary" style="width:100%; font-family:perfectFont;font-size: 16px;">立即登录</el-button>
:loading="isLogining"
@click="goLogin()"
style="width:100%; font-family:perfectFont;font-size: 16px;"
>立即登录</el-button>
</div> </div>
<div class="field_wrap forget"> <div class="field_wrap forget">
<div class="item-forget"> <div class="item-forget">
...@@ -85,306 +70,329 @@ ...@@ -85,306 +70,329 @@
</div> </div>
</div> </div>
<div class="logo-box"> <div class="logo-box">
<el-row :gutter="12"> <el-row :gutter="12">
<el-col :span="10"> <el-col :span="10">
<img src="../assets/img/logo.png" /> <img src="../assets/img/logo.png" />
</el-col> </el-col>
<el-col :span="12">CRM</el-col> <el-col :span="12">CRM</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
accountStatus: false, accountStatus: false,
account: "", account: "",
pwdStatus: false, pwdStatus: false,
pwd: "", pwd: "",
isLogining: false, isLogining: false,
isAutoLogin: false, isAutoLogin: false,
};
},
created() {
let autoLogin = localStorage.autoLogin
? JSON.parse(localStorage.autoLogin)
: null;
this.account = autoLogin ? autoLogin.acc : "";
this.pwd = autoLogin ? autoLogin.pwd : "";
this.isAutoLogin = autoLogin ? true : false;
},
methods: {
goLogin() {
if (this.account == "") {
return this.$message({
message: "请输入账号!",
type: "warning",
});
}
if (this.pwd == "") {
return this.$message({
message: "请输入密码!",
type: "warning",
});
}
var msg = {
EmAccount: this.account,
EmPassword: this.pwd,
// Domain:'testerp.oytour.com'
Domain: "fcrmyx.oytour.com",
}; };
this.apipost("/api/Login/UserLogin", msg, (res) => { },
var jsonData = res.data; created() {
if (jsonData.resultCode == 1) { let autoLogin = localStorage.autoLogin ?
//登录成功 JSON.parse(localStorage.autoLogin) :
let autoLogin = this.isAutoLogin null;
? { this.account = autoLogin ? autoLogin.acc : "";
acc: this.account, this.pwd = autoLogin ? autoLogin.pwd : "";
pwd: this.pwd, this.isAutoLogin = autoLogin ? true : false;
} },
: null; methods: {
localStorage.autoLogin = JSON.stringify(autoLogin); goLogin() {
var userData = jsonData.data; if (this.account == "") {
var userJson = JSON.stringify(userData); return this.$message({
localStorage.userInfo = userJson; message: "请输入账号!",
this.loginState = 0; type: "warning",
this.$router.push({ path: "/Home" }); });
} else { }
this.$message({ if (this.pwd == "") {
message: res.data.message, return this.$message({
type: "error", message: "请输入密码!",
type: "warning",
}); });
this.loginState = 0;
} }
}); var msg = {
EmAccount: this.account,
EmPassword: this.pwd,
Domain: "fcrmyx.oytour.com",
};
if (!this.isOnline()) {
msg.Domain = "www.test.com";
}
this.apipost("/api/Login/UserLogin", msg, (res) => {
var jsonData = res.data;
if (jsonData.resultCode == 1) {
//登录成功
let autoLogin = this.isAutoLogin ?
{
acc: this.account,
pwd: this.pwd,
} :
null;
localStorage.autoLogin = JSON.stringify(autoLogin);
var userData = jsonData.data;
var userJson = JSON.stringify(userData);
localStorage.userInfo = userJson;
this.loginState = 0;
this.$router.push({
path: "/Home"
});
} else {
this.$message({
message: res.data.message,
type: "error",
});
this.loginState = 0;
}
});
},
}, },
}, };
};
</script> </script>
<style scoped> <style scoped>
.login { .login {
background: url("../assets/img/login/bg.jpg") no-repeat 100% 100%; background: url("../assets/img/login/bg.jpg") no-repeat 100% 100%;
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.logo-box {
position: absolute; .logo-box {
top: 30px; position: absolute;
left: 30px; top: 30px;
width: 120px; left: 30px;
font-size: 48px; width: 120px;
font-family: perfectFont; font-size: 48px;
color: #fff; font-family: perfectFont;
} color: #fff;
.login .login-box { }
width: 1000px;
height: 560px; .login .login-box {
box-shadow: 0 6px 20px 5px rgba(40, 120, 255, 0.1), width: 1000px;
0 16px 24px 2px rgba(0, 0, 0, 0.05); height: 560px;
border-radius: 8px; box-shadow: 0 6px 20px 5px rgba(40, 120, 255, 0.1),
background: #fff; 0 16px 24px 2px rgba(0, 0, 0, 0.05);
display: flex; border-radius: 8px;
} background: #fff;
.login .login-box .left-card { display: flex;
width: 440px; }
height: 100%;
} .login .login-box .left-card {
.login .login-box .left-card .item-card { width: 440px;
background: url("../assets/img/login/yinhao.png") right bottom/221px no-repeat, height: 100%;
linear-gradient(180deg, #2878ff, #409efe); }
width: 100%;
height: 100%; .login .login-box .left-card .item-card {
padding-top: 96px; background: url("../assets/img/login/yinhao.png") right bottom/221px no-repeat,
color: white; linear-gradient(180deg, #2878ff, #409efe);
box-sizing: border-box; width: 100%;
} height: 100%;
.login .login-box .left-card .item-card .head-icon { padding-top: 96px;
width: 104px; color: white;
height: 104px; box-sizing: border-box;
margin: 0 auto; }
border-radius: 100%;
background: rgba(40, 120, 255, 0.5); .login .login-box .left-card .item-card .head-icon {
padding: 5px; width: 104px;
} height: 104px;
.login .login-box .left-card .item-card .head-icon img { margin: 0 auto;
width: 100%; border-radius: 100%;
height: 100%; background: rgba(40, 120, 255, 0.5);
border-radius: 100%; padding: 5px;
} }
.login .login-box .left-card .item-card .publisher,
.login .login-box .left-card .item-card .job { .login .login-box .left-card .item-card .head-icon img {
margin-top: 20px; width: 100%;
font-size: 24px; height: 100%;
font-family: perfectFont; border-radius: 100%;
text-align: center; }
}
.login .login-box .left-card .item-card .publisher { .login .login-box .left-card .item-card .publisher,
font-weight: bold; .login .login-box .left-card .item-card .job {
} margin-top: 20px;
.login .login-box .left-card .item-card .job { font-size: 24px;
font-size: 16px; font-family: perfectFont;
margin-top: 10px; text-align: center;
} }
.login .login-box .left-card .item-card .content {
font-size: 13px; .login .login-box .left-card .item-card .publisher {
font-family: perfectFont; font-weight: bold;
margin-top: 20px; }
margin: 20px;
line-height: 24px; .login .login-box .left-card .item-card .job {
text-indent: 28px; font-size: 16px;
} margin-top: 10px;
.login .login-box .right-card { }
flex: 1;
padding-top: 50px; .login .login-box .left-card .item-card .content {
font-family: perfectFont; font-size: 13px;
} font-family: perfectFont;
.login .login-box .right-card .company { margin-top: 20px;
font-size: 20px; margin: 20px;
text-align: center; line-height: 24px;
font-weight: bold; text-indent: 28px;
} }
.login .login-box .right-card .t {
margin-top: 20px; .login .login-box .right-card {
font-size: 34px; flex: 1;
text-align: center; padding-top: 50px;
font-weight: bold; font-family: perfectFont;
margin-bottom: 30px; }
}
.field_wrap { .login .login-box .right-card .company {
width: 330px; font-size: 20px;
margin: 0 auto; text-align: center;
font-family: perfectFont; font-weight: bold;
} }
.field_wrap .pwd_box {
position: relative; .login .login-box .right-card .t {
} margin-top: 20px;
.field_wrap .pwd_box .mu-text-field { font-size: 34px;
width: 100%; text-align: center;
color: rgba(0, 0, 0, 0.54); font-weight: bold;
} margin-bottom: 30px;
.field_wrap .pwd_box .mu-text-field.has-label { }
min-height: 72px;
} .field_wrap {
.field_wrap .pwd_box .mu-text-field .mu-text-field-content { width: 330px;
display: block; margin: 0 auto;
height: 100%; font-family: perfectFont;
padding-bottom: 12px; }
padding-top: 4px;
} .field_wrap .pwd_box {
.field_wrap .pwd_box .mu-text-field.has-label .mu-text-field-content { position: relative;
padding-top: 28px; }
padding-bottom: 12px;
} .field_wrap .pwd_box .mu-text-field {
.field_wrap width: 100%;
.pwd_box color: rgba(0, 0, 0, 0.54);
.mu-text-field.has-label }
.mu-text-field-content
.mu-text-field-label { .field_wrap .pwd_box .mu-text-field.has-label {
line-height: 20px; min-height: 72px;
transition: all 0.45s cubic-bezier(0.23, 1, 0.32, 1); }
z-index: 1;
cursor: text; .field_wrap .pwd_box .mu-text-field .mu-text-field-content {
transform: translateZ(0) scale(0.75); display: block;
transform-origin: left top; height: 100%;
user-select: none; padding-bottom: 12px;
pointer-events: none; padding-top: 4px;
backface-visibility: hidden; }
font-size: 16px;
font-family: perfectFont; .field_wrap .pwd_box .mu-text-field.has-label .mu-text-field-content {
font-weight: bold; padding-top: 28px;
} padding-bottom: 12px;
.field_wrap }
.pwd_box
.mu-text-field.has-label .field_wrap .pwd_box .mu-text-field.has-label .mu-text-field-content .mu-text-field-label {
.mu-text-field-content line-height: 20px;
.mu-text-field.has-label transition: all 0.45s cubic-bezier(0.23, 1, 0.32, 1);
.mu-text-field-label { z-index: 1;
top: 8px; cursor: text;
position: absolute; transform: translateZ(0) scale(0.75);
} transform-origin: left top;
.field_wrap user-select: none;
.pwd_box pointer-events: none;
.mu-text-field.has-label backface-visibility: hidden;
.mu-text-field-content font-size: 16px;
.mu-text-field-input { font-family: perfectFont;
appearance: none; font-weight: bold;
outline: none; }
border: none;
background: none; .field_wrap .pwd_box .mu-text-field.has-label .mu-text-field-content .mu-text-field.has-label .mu-text-field-label {
border-radius: 0 0 0 0; top: 8px;
box-shadow: none; position: absolute;
display: block; }
padding: 0;
margin: 0; .field_wrap .pwd_box .mu-text-field.has-label .mu-text-field-content .mu-text-field-input {
width: 100%; appearance: none;
height: 32px; outline: none;
color: rgba(0, 0, 0, 0.87); border: none;
font-family: inherit; background: none;
position: relative; border-radius: 0 0 0 0;
} box-shadow: none;
.field_wrap .el-button, display: block;
.field_wrap .el-checkbox__inner { padding: 0;
border-radius: 0; margin: 0;
} width: 100%;
.mu-text-field-line { height: 32px;
background-color: rgba(0, 0, 0, 0.4); color: rgba(0, 0, 0, 0.87);
margin: 0; font-family: inherit;
height: 1px; position: relative;
border: none; }
left: 0;
right: 0; .field_wrap .el-button,
position: absolute; .field_wrap .el-checkbox__inner {
box-sizing: content-box; border-radius: 0;
overflow: visible; }
}
.mu-text-field-focus-line { .mu-text-field-line {
margin: 0; background-color: rgba(0, 0, 0, 0.4);
height: 2px; margin: 0;
border: none; height: 1px;
background-color: #409efe; border: none;
position: absolute; left: 0;
left: 0; right: 0;
right: 0; position: absolute;
margin-top: -1px; box-sizing: content-box;
transform: scaleX(0); overflow: visible;
transition: -webkit-transform 0.45s cubic-bezier(0.23, 1, 0.32, 1); }
transition: transform 0.45s cubic-bezier(0.23, 1, 0.32, 1);
transition: transform 0.45s cubic-bezier(0.23, 1, 0.32, 1), .mu-text-field-focus-line {
-webkit-transform 0.45s cubic-bezier(0.23, 1, 0.32, 1); margin: 0;
} height: 2px;
.mu-text-field-focus-line.focus { border: none;
transform: scaleX(1); background-color: #409efe;
} position: absolute;
.el-button--primary, left: 0;
.el-checkbox__input.is-checked .el-checkbox__inner, right: 0;
.el-checkbox__input.is-indeterminate .el-checkbox__inner { margin-top: -1px;
background-color: #409efe !important; transform: scaleX(0);
border-color: #409efe !important; transition: -webkit-transform 0.45s cubic-bezier(0.23, 1, 0.32, 1);
} transition: transform 0.45s cubic-bezier(0.23, 1, 0.32, 1);
.login .login-box .right-card .forget { transition: transform 0.45s cubic-bezier(0.23, 1, 0.32, 1),
margin-top: 12px; -webkit-transform 0.45s cubic-bezier(0.23, 1, 0.32, 1);
display: flex; }
}
.login .login-box .right-card .forget .item-forget { .mu-text-field-focus-line.focus {
flex: 1; transform: scaleX(1);
font-size: 14px; }
font-family: perfectFont;
} .el-button--primary,
.login .login-box .right-card .forget .item-forget:last-child { .el-checkbox__input.is-checked .el-checkbox__inner,
text-align: right; .el-checkbox__input.is-indeterminate .el-checkbox__inner {
} background-color: #409efe !important;
.login .login-box .right-card .forget .item-forget a { border-color: #409efe !important;
color: #000; }
text-decoration: none;
} .login .login-box .right-card .forget {
.login .login-box .right-card .forget .item-forget a:hover { margin-top: 12px;
color: #409efe; display: flex;
} }
</style>
.login .login-box .right-card .forget .item-forget {
flex: 1;
font-size: 14px;
font-family: perfectFont;
}
.login .login-box .right-card .forget .item-forget:last-child {
text-align: right;
}
.login .login-box .right-card .forget .item-forget a {
color: #000;
text-decoration: none;
}
.login .login-box .right-card .forget .item-forget a:hover {
color: #409efe;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment