This commit is contained in:
liux 2025-02-19 17:16:13 +08:00
parent 1c55e565b4
commit 188876e18f
1 changed files with 223 additions and 140 deletions

View File

@ -1,144 +1,227 @@
<template> <template>
<div class="site-wrapper site-page--login">
<div class="site-content__wrapper" >
<div class="site-content">
<div class="brand-info">
<h2 class="brand-info__text">智慧后勤服务平台1</h2>
<p class="brand-info__intro"></p>
</div>
<div class="login-main" :element-loading-text="loadingMsg" v-loading="loading">
<h3 class="login-title">登录</h3>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon>
<el-form-item prop="userName">
<el-input v-model="dataForm.userName" placeholder="帐号"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input>
</el-form-item>
<el-form-item prop="verCode">
<el-input style="width:60%!important;float:left" v-model="dataForm.verCode" placeholder="验证码"></el-input>
<img @click="getVerCode()" :src="codeImg" width="100" height="40" class="head_pic" style="float:right" />
</el-form-item>
<el-form-item>
<el-button class="login-btn-submit" type="primary" @click="dataFormSubmit()">登录</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</template>
</template> <script>
import { userLogin,getVerCode } from "@/api/getdata";
<script> import { setToken } from '@/utils/auth'
import { userLogin, getVerCode } from "@/api/getdata"; import CryptoJS from 'crypto-js'
import { setToken } from '@/utils/auth' var KEY = CryptoJS.enc.Utf8.parse("greenh5java12345");
import CryptoJS from 'crypto-js' var IV = CryptoJS.enc.Utf8.parse("greenh5java12345");
var KEY = CryptoJS.enc.Utf8.parse("greenh5java12345"); export default {
var IV = CryptoJS.enc.Utf8.parse("greenh5java12345"); data() {
export default { return {
data() { dataForm: {
return { userName: '',
dataForm: { password: '',
userName: '', uuid: '',
password: '', captcha: '',
uuid: '', verCode:"",
captcha: '', codeId:""
verCode: "", },
codeId: "" dataRule: {
}, userName: [
dataRule: { { required: true, message: '帐号不能为空', trigger: 'blur' }
userName: [ ],
{ required: true, message: '帐号不能为空', trigger: 'blur' } password: [
], { required: true, message: '密码不能为空', trigger: 'blur' }
password: [ ],
{ required: true, message: '密码不能为空', trigger: 'blur' } verCode: [
], { required: true, message: '验证码不能为空', trigger: 'blur' }
verCode: [ ]
{ required: true, message: '验证码不能为空', trigger: 'blur' } },
] captchaPath: '',
}, loading: false, //loading
captchaPath: '', loadingMsg: "",
loading: false, //loading codeImg:"",
loadingMsg: "", codeId:""
codeImg: "", }
codeId: ""
}
},
created() {
this.getVerCode();
},
methods: {
getVerCode() {
let logUrl = "http://10.224.64.4:27000/greenH5/greenWebmodul/dist/index.html?#/ywgllogin";
let isc_login = "http://iscsso.cc.sgcc.com.cn:17011/isc_sso/login?service=";
window.location.href = isc_login + logUrl;
}, },
} created(){
} this.getVerCode();
</script> },
methods: {
createLoad() {
this.loading = true;
this.loadingMsg = "登录中...";
},
clearLoad() {
this.loading = false;
this.loadingMsg = "";
},
getVerCode(){
getVerCode({})
.then(res => {
if (res.returnCode == "1") {
this.clearLoad();
console.log(res);
this.codeImg ="data:image/jpeg;base64,"+ res.returnData.imgBase64;
this.dataForm.codeId = res.returnData.imgUUID
} else {
setTimeout(() => {
this.clearLoad();
}, 300);
}
})
.catch(err => {
console.log(err);
setTimeout(() => {
this.clearLoad();
}, 300);
});
},
<style lang="scss"> //
.site-wrapper.site-page--login { dataFormSubmit () {
position: absolute; this.$refs['dataForm'].validate((valid) => {
top: 0; if (valid) {
right: 0; this.createLoad();
bottom: 0; var userPossword = CryptoJS.AES.encrypt(this.dataForm.password, KEY, {
left: 0; iv: IV, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding
background-color: rgba(38, 50, 56, .6); }).toString();
overflow: hidden;
&:before { let Content = {
position: fixed; 'loginName': this.dataForm.userName,
top: 0; 'userPossword': userPossword,
left: 0; 'verCode' :this.dataForm.verCode,
z-index: -1; 'codeId' :this.dataForm.codeId
width: 100%;
height: 100%;
content: "";
background-image: url(~@/assets/images/login_bg.jpg);
background-size: cover;
}
.site-content__wrapper { };
position: absolute; userLogin(Content)
top: 0; .then(res => {
right: 0; if (res.returnCode == "1") {
bottom: 0; this.clearLoad();
left: 0; setToken(res.returnData.token);
padding: 0; this.$router.replace({ name: 'home' })
margin: 0; } else {
overflow-x: hidden; this.getVerCode();
overflow-y: auto; this.$message({
background-color: transparent; message: res.returnMsg,
} type: "warning"
});
.site-content { setTimeout(() => {
min-height: 100%; this.clearLoad();
padding: 30px 500px 30px 30px; }, 300);
} }
})
.brand-info { .catch(err => {
margin: 220px 100px 0 90px; console.log(err);
color: #fff; setTimeout(() => {
} this.clearLoad();
}, 300);
.brand-info__text { });
margin: 0 0 22px 0; }
font-size: 48px; })
font-weight: 400; }
/*text-transform : uppercase;*/
}
.brand-info__intro {
margin: 10px 0;
font-size: 16px;
line-height: 1.58;
opacity: .6;
}
.login-main {
position: absolute;
top: 0;
right: 0;
padding: 150px 60px 180px;
width: 470px;
min-height: 100%;
background-color: #fff;
}
.login-title {
font-size: 16px;
}
.login-captcha {
overflow: hidden;
>img {
width: 100%;
cursor: pointer;
} }
} }
</script>
.login-btn-submit { <style lang="scss">
width: 100%; .site-wrapper.site-page--login {
margin-top: 38px; position: absolute;
} top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(38, 50, 56, .6);
overflow: hidden;
&:before {
position: fixed;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
content: "";
background-image: url(~@/assets/images/login_bg.jpg);
background-size: cover;
}
.site-content__wrapper {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: 0;
margin: 0;
overflow-x: hidden;
overflow-y: auto;
background-color: transparent;
}
.site-content {
min-height: 100%;
padding: 30px 500px 30px 30px;
}
.brand-info {
margin: 220px 100px 0 90px;
color: #fff;
}
.brand-info__text {
margin: 0 0 22px 0;
font-size: 48px;
font-weight: 400;
/*text-transform : uppercase;*/
}
.brand-info__intro {
margin: 10px 0;
font-size: 16px;
line-height: 1.58;
opacity: .6;
}
.login-main {
position: absolute;
top: 0;
right: 0;
padding: 150px 60px 180px;
width: 470px;
min-height: 100%;
background-color: #fff;
}
.login-title {
font-size: 16px;
}
.login-captcha {
overflow: hidden;
> img {
width: 100%;
cursor: pointer;
}
}
.login-btn-submit {
width: 100%;
margin-top: 38px;
}
.el-input {
width: 100% !important;
}
}
</style>
.el-input {
width: 100% !important;
}
}
</style>