fix():saas修改
parent
c3899c4f3c
commit
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({
|
return request({
|
||||||
url: '/auth/login',
|
url: '/auth/login',
|
||||||
headers: {
|
headers: {
|
||||||
|
@ -10,7 +10,7 @@ export function login(username, password, code, uuid) {
|
||||||
repeatSubmit: false
|
repeatSubmit: false
|
||||||
},
|
},
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: {username, password, code, uuid}
|
data: {username, password, code, uuid, saas}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,3 +50,19 @@ export function delDept(deptId) {
|
||||||
method: 'delete'
|
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 password = userInfo.password
|
||||||
const code = userInfo.code
|
const code = userInfo.code
|
||||||
const uuid = userInfo.uuid
|
const uuid = userInfo.uuid
|
||||||
|
const saas = userInfo.saas
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
login(username, password, code, uuid).then(res => {
|
login(username, password, code, uuid, saas).then(res => {
|
||||||
let data = res.data
|
let data = res.data
|
||||||
setToken(data.access_token)
|
setToken(data.access_token)
|
||||||
commit('SET_TOKEN', data.access_token)
|
commit('SET_TOKEN', data.access_token)
|
||||||
|
|
|
@ -2,6 +2,16 @@
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
||||||
<h3 class="title">若依后台管理系统</h3>
|
<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-form-item prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="loginForm.username"
|
v-model="loginForm.username"
|
||||||
|
@ -62,98 +72,122 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {getCodeImg} from "@/api/login";
|
import { getCodeImg } from '@/api/login'
|
||||||
import Cookies from "js-cookie";
|
import Cookies from 'js-cookie'
|
||||||
import {decrypt, encrypt} from '@/utils/jsencrypt'
|
import { decrypt, encrypt } from '@/utils/jsencrypt'
|
||||||
|
import { selSonList } from '@/api/system/dept'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Login",
|
name: 'Login',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
codeUrl: "",
|
codeUrl: '',
|
||||||
|
firmList: [],
|
||||||
loginForm: {
|
loginForm: {
|
||||||
username: "admin",
|
username: 'admin',
|
||||||
password: "admin123",
|
password: 'admin123',
|
||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
code: "",
|
code: '',
|
||||||
uuid: ""
|
uuid: '',
|
||||||
|
saas: null
|
||||||
|
},
|
||||||
|
saas: {
|
||||||
|
deptId: 101,
|
||||||
|
deptName: '',
|
||||||
|
saasKey: ''
|
||||||
},
|
},
|
||||||
loginRules: {
|
loginRules: {
|
||||||
|
saas: {
|
||||||
|
|
||||||
|
},
|
||||||
username: [
|
username: [
|
||||||
{required: true, trigger: "blur", message: "请输入您的账号"}
|
{ required: true, trigger: 'blur', message: '请输入您的账号' }
|
||||||
],
|
],
|
||||||
password: [
|
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,
|
loading: false,
|
||||||
// 验证码开关
|
// 验证码开关
|
||||||
captchaEnabled: false,
|
captchaEnabled: false,
|
||||||
// 注册开关
|
// 注册开关
|
||||||
register: false,
|
register: true,
|
||||||
redirect: undefined
|
redirect: undefined
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
$route: {
|
$route: {
|
||||||
handler: function (route) {
|
handler: function(route) {
|
||||||
this.redirect = route.query && route.query.redirect;
|
this.redirect = route.query && route.query.redirect
|
||||||
},
|
},
|
||||||
immediate: true
|
immediate: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getCode();
|
this.getCode()
|
||||||
this.getCookie();
|
this.selFirmList()
|
||||||
|
this.getCookie()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
selFirmList() {
|
||||||
|
selSonList(100).then(res => {
|
||||||
|
this.firmList = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
getCode() {
|
getCode() {
|
||||||
getCodeImg().then(res => {
|
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) {
|
if (this.captchaEnabled) {
|
||||||
this.codeUrl = "data:image/gif;base64," + res.data.img;
|
this.codeUrl = 'data:image/gif;base64,' + res.data.img
|
||||||
this.loginForm.uuid = res.data.uuid;
|
this.loginForm.uuid = res.data.uuid
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
getCookie() {
|
getCookie() {
|
||||||
const username = Cookies.get("username");
|
const username = Cookies.get('username')
|
||||||
const password = Cookies.get("password");
|
const password = Cookies.get('password')
|
||||||
const rememberMe = Cookies.get('rememberMe')
|
const rememberMe = Cookies.get('rememberMe')
|
||||||
this.loginForm = {
|
this.loginForm = {
|
||||||
username: username === undefined ? this.loginForm.username : username,
|
username: username === undefined ? this.loginForm.username : username,
|
||||||
password: password === undefined ? this.loginForm.password : decrypt(password),
|
password: password === undefined ? this.loginForm.password : decrypt(password),
|
||||||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
|
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
this.$refs.loginForm.validate(valid => {
|
this.$refs.loginForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading = true;
|
this.loading = true
|
||||||
if (this.loginForm.rememberMe) {
|
if (this.loginForm.rememberMe) {
|
||||||
Cookies.set("username", this.loginForm.username, {expires: 30});
|
Cookies.set('username', this.loginForm.username, { expires: 30 })
|
||||||
Cookies.set("password", encrypt(this.loginForm.password), {expires: 30});
|
Cookies.set('password', encrypt(this.loginForm.password), { expires: 30 })
|
||||||
Cookies.set('rememberMe', this.loginForm.rememberMe, {expires: 30});
|
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 })
|
||||||
} else {
|
} else {
|
||||||
Cookies.remove("username");
|
Cookies.remove('username')
|
||||||
Cookies.remove("password");
|
Cookies.remove('password')
|
||||||
Cookies.remove('rememberMe');
|
Cookies.remove('rememberMe')
|
||||||
}
|
}
|
||||||
this.$store.dispatch("Login", this.loginForm).then(() => {
|
let loginForm = this.loginForm
|
||||||
this.$router.push({path: this.redirect || "/"}).catch(() => {
|
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(() => {
|
}).catch(() => {
|
||||||
this.loading = false;
|
this.loading = false
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
this.getCode();
|
this.getCode()
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" rel="stylesheet/scss">
|
<style lang="scss" rel="stylesheet/scss">
|
||||||
|
|
Loading…
Reference in New Issue