|
@@ -3,13 +3,14 @@
|
|
|
<div slot="header" align="center">
|
|
|
<span>登入内业管理系统</span>
|
|
|
</div>
|
|
|
- <el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-width="0">
|
|
|
- <el-form-item prop="email">
|
|
|
+ <el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-width="0" class="rpm-sign-in-login">
|
|
|
+ <el-form-item prop="username">
|
|
|
<el-input
|
|
|
ref="username"
|
|
|
placeholder="输入账号"
|
|
|
type="text"
|
|
|
tabindex="1"
|
|
|
+ autocomplete="off"
|
|
|
v-model="loginForm.username"
|
|
|
/>
|
|
|
<div class="rpm-sign__tip cprimary" >
|
|
@@ -23,6 +24,7 @@
|
|
|
type="password"
|
|
|
tabindex="2"
|
|
|
:key="passwordType"
|
|
|
+ autocomplete="new-password"
|
|
|
v-model="loginForm.password"
|
|
|
@keyup.native="checkCapslock"
|
|
|
@blur="capsTooltip = false"
|
|
@@ -32,6 +34,11 @@
|
|
|
忘记密码
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
+
|
|
|
+ <el-form-item prop="remember">
|
|
|
+ <input type="checkbox" v-model="loginForm.remember" />
|
|
|
+ <label class="ml10">记住密码</label>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click.native.prevent="handleLogin">
|
|
|
登入
|
|
@@ -60,7 +67,7 @@ import { validateLoginname, validatePassword } from '@/utils/validate'
|
|
|
import md5 from '@/utils/md5'
|
|
|
import { mapActions } from "vuex";
|
|
|
|
|
|
-
|
|
|
+const Base64 = require("js-base64").Base64;
|
|
|
|
|
|
export default {
|
|
|
name: 'Login',
|
|
@@ -69,7 +76,8 @@ export default {
|
|
|
visibleForm: 'signIn',
|
|
|
loginForm: {
|
|
|
username: '',
|
|
|
- password: ''
|
|
|
+ password: '',
|
|
|
+ remember: false,
|
|
|
},
|
|
|
loginRules: {
|
|
|
username: [{ required: true, trigger: 'blur', validator: validateLoginname }],
|
|
@@ -92,8 +100,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
created(){
|
|
|
- console.log( this.$route.query )
|
|
|
- this.redirect = this.$route.query.redirect
|
|
|
+ this.redirect = this.$route.query.redirect
|
|
|
+ let username = this.getCookie("username");
|
|
|
+ if (username) {
|
|
|
+ this.loginForm.username = username;
|
|
|
+ this.loginForm.password = Base64.decode(this.getCookie("password"));
|
|
|
+ this.loginForm.remember = true;
|
|
|
+ }
|
|
|
+ console.log( this.loginForm )
|
|
|
},
|
|
|
methods: {
|
|
|
...mapActions("user", ["login", "loadDepartment"]),
|
|
@@ -101,6 +115,27 @@ export default {
|
|
|
const { key } = e
|
|
|
this.capsTooltip = key && key.length === 1 && (key >= 'A' && key <= 'Z')
|
|
|
},
|
|
|
+ getCookie: function (key) {
|
|
|
+ if (document.cookie.length > 0) {
|
|
|
+ var start = document.cookie.indexOf(key + "=");
|
|
|
+ if (start !== -1) {
|
|
|
+ start = start + key.length + 1;
|
|
|
+ var end = document.cookie.indexOf(";", start);
|
|
|
+ if (end === -1) end = document.cookie.length;
|
|
|
+ return unescape(document.cookie.substring(start, end));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ },
|
|
|
+ setCookie: function (cName, value, expiredays) {
|
|
|
+ var exdate = new Date();
|
|
|
+ exdate.setDate(exdate.getDate() + expiredays);
|
|
|
+ document.cookie =
|
|
|
+ cName +
|
|
|
+ "=" +
|
|
|
+ decodeURIComponent(value) +
|
|
|
+ (expiredays == null ? "" : ";expires=" + exdate.toGMTString());
|
|
|
+ },
|
|
|
showPwd() {
|
|
|
if (this.passwordType === 'password') {
|
|
|
this.passwordType = ''
|
|
@@ -112,6 +147,7 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
handleLogin() {
|
|
|
+ let remember = this.loginForm.remember
|
|
|
this.$refs.loginForm.validate(valid => {
|
|
|
if (!valid) return;
|
|
|
this.loading = true
|
|
@@ -119,6 +155,14 @@ export default {
|
|
|
let path = this.redirect || '/';
|
|
|
this.login( param).then(() => {
|
|
|
this.$router.push({ path, query: this.otherQuery })
|
|
|
+ if( remember ){
|
|
|
+ let passWord = Base64.encode(this.loginForm.password);
|
|
|
+ this.setCookie("password", passWord, 7);
|
|
|
+ this.setCookie("username", this.loginForm.username, 7);
|
|
|
+ }else{
|
|
|
+ this.setCookie("password", "", 7);
|
|
|
+ this.setCookie("username", "", 7);
|
|
|
+ }
|
|
|
this.loadDepartment()
|
|
|
this.loading = false
|
|
|
}).catch((err) => {
|
|
@@ -136,6 +180,9 @@ export default {
|
|
|
.el-button {
|
|
|
width: 100% !important;
|
|
|
}
|
|
|
+.login-form{
|
|
|
+ width: 450px;
|
|
|
+}
|
|
|
.rpm-sign-in {
|
|
|
position: absolute;
|
|
|
top: 20px;
|