Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
7fc7299450 |
|
@ -2,7 +2,7 @@ import request from '@/utils/request'
|
|||
|
||||
|
||||
// 登录方法
|
||||
export function login(username, password, code, uuid) {
|
||||
export function login(username, password, code, uuid, saas) {
|
||||
return request({
|
||||
url: '/auth/login',
|
||||
headers: {
|
||||
|
@ -10,7 +10,7 @@ export function login(username, password, code, uuid) {
|
|||
repeatSubmit: false
|
||||
},
|
||||
method: 'post',
|
||||
data: {username, password, code, uuid}
|
||||
data: {username, password, code, uuid, saas}
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -49,4 +49,20 @@ export function delDept(deptId) {
|
|||
url: '/system/dept/' + deptId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 公司下拉框
|
||||
export function selFirmList() {
|
||||
return request({
|
||||
url: '/system/dept/selectFirmDatabaseNameList',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 公司下拉框
|
||||
export function selSonList(id) {
|
||||
return request({
|
||||
url: '/system/dept/sonList/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
|
|
@ -42,8 +42,9 @@ const user = {
|
|||
const password = userInfo.password
|
||||
const code = userInfo.code
|
||||
const uuid = userInfo.uuid
|
||||
const saas = userInfo.saas
|
||||
return new Promise((resolve, reject) => {
|
||||
login(username, password, code, uuid).then(res => {
|
||||
login(username, password, code, uuid, saas).then(res => {
|
||||
let data = res.data
|
||||
setToken(data.access_token)
|
||||
commit('SET_TOKEN', data.access_token)
|
||||
|
|
|
@ -2,6 +2,16 @@
|
|||
<div class="login">
|
||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
||||
<h3 class="title">若依后台管理系统</h3>
|
||||
<el-form-item prop="saas.deptId">
|
||||
<el-select v-model="saas.deptId" clearable placeholder="请选择公司" style="width: 350px;">
|
||||
<el-option
|
||||
v-for="item in firmList"
|
||||
:key="item.deptId"
|
||||
:label="item.deptName"
|
||||
:value="item.deptId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
v-model="loginForm.username"
|
||||
|
@ -62,98 +72,122 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {getCodeImg} from "@/api/login";
|
||||
import Cookies from "js-cookie";
|
||||
import {decrypt, encrypt} from '@/utils/jsencrypt'
|
||||
import { getCodeImg } from '@/api/login'
|
||||
import Cookies from 'js-cookie'
|
||||
import { decrypt, encrypt } from '@/utils/jsencrypt'
|
||||
import { selSonList } from '@/api/system/dept'
|
||||
|
||||
export default {
|
||||
name: "Login",
|
||||
name: 'Login',
|
||||
data() {
|
||||
return {
|
||||
codeUrl: "",
|
||||
codeUrl: '',
|
||||
firmList: [],
|
||||
loginForm: {
|
||||
username: "admin",
|
||||
password: "admin123",
|
||||
username: 'admin',
|
||||
password: 'admin123',
|
||||
rememberMe: false,
|
||||
code: "",
|
||||
uuid: ""
|
||||
code: '',
|
||||
uuid: '',
|
||||
saas: null
|
||||
},
|
||||
saas: {
|
||||
deptId: 101,
|
||||
deptName: '',
|
||||
saasKey: ''
|
||||
},
|
||||
loginRules: {
|
||||
saas: {
|
||||
|
||||
},
|
||||
username: [
|
||||
{required: true, trigger: "blur", message: "请输入您的账号"}
|
||||
{ required: true, trigger: 'blur', message: '请输入您的账号' }
|
||||
],
|
||||
password: [
|
||||
{required: true, trigger: "blur", message: "请输入您的密码"}
|
||||
{ required: true, trigger: 'blur', message: '请输入您的密码' }
|
||||
],
|
||||
code: [{required: true, trigger: "change", message: "请输入验证码"}]
|
||||
code: [{ required: true, trigger: 'change', message: '请输入验证码' }]
|
||||
},
|
||||
loading: false,
|
||||
// 验证码开关
|
||||
captchaEnabled: false,
|
||||
// 注册开关
|
||||
register: false,
|
||||
register: true,
|
||||
redirect: undefined
|
||||
};
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
$route: {
|
||||
handler: function (route) {
|
||||
this.redirect = route.query && route.query.redirect;
|
||||
handler: function(route) {
|
||||
this.redirect = route.query && route.query.redirect
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getCode();
|
||||
this.getCookie();
|
||||
this.getCode()
|
||||
this.selFirmList()
|
||||
this.getCookie()
|
||||
},
|
||||
methods: {
|
||||
selFirmList() {
|
||||
selSonList(100).then(res => {
|
||||
this.firmList = res.data
|
||||
})
|
||||
},
|
||||
getCode() {
|
||||
getCodeImg().then(res => {
|
||||
this.captchaEnabled = res.data.captchaEnabled === undefined ? true : res.data.captchaEnabled;
|
||||
this.captchaEnabled = res.data.captchaEnabled === undefined ? true : res.data.captchaEnabled
|
||||
if (this.captchaEnabled) {
|
||||
this.codeUrl = "data:image/gif;base64," + res.data.img;
|
||||
this.loginForm.uuid = res.data.uuid;
|
||||
this.codeUrl = 'data:image/gif;base64,' + res.data.img
|
||||
this.loginForm.uuid = res.data.uuid
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
getCookie() {
|
||||
const username = Cookies.get("username");
|
||||
const password = Cookies.get("password");
|
||||
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;
|
||||
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});
|
||||
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');
|
||||
Cookies.remove('username')
|
||||
Cookies.remove('password')
|
||||
Cookies.remove('rememberMe')
|
||||
}
|
||||
this.$store.dispatch("Login", this.loginForm).then(() => {
|
||||
this.$router.push({path: this.redirect || "/"}).catch(() => {
|
||||
});
|
||||
let loginForm = this.loginForm
|
||||
const { databaseName, deptName, deptId } = this.firmList.find(dept => dept.deptId === this.saas.deptId)
|
||||
loginForm.saas = {
|
||||
saasKey: databaseName,
|
||||
deptName: deptName,
|
||||
deptId: deptId
|
||||
}
|
||||
this.$store.dispatch('Login', loginForm).then(() => {
|
||||
this.$router.push({ path: this.redirect || '/' }).catch(() => {
|
||||
})
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.loading = false
|
||||
if (this.captchaEnabled) {
|
||||
this.getCode();
|
||||
this.getCode()
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" rel="stylesheet/scss">
|
||||
|
|
Loading…
Reference in New Issue