登录增加选择公司

This commit is contained in:
xielue 2022-12-13 23:02:16 +08:00
parent acf42d6e9e
commit 2a0c34f7ad
5 changed files with 131 additions and 112 deletions

View File

@ -1,4 +1,4 @@
VUE_APP_API_BASE_URL=http://192.168.31.166:46000
VUE_APP_USER_MODEL=AdminUser
VUE_APP_USER_MODEL2=BaseAdmin
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
VUE_APP_USER_MODEL2=AdminUser
VUE_APP_USER_MODEL=BaseAdmin

View File

@ -29,7 +29,7 @@
</a-input>
</a-form-item>
<a-form-item v-if="!isMiddleAdmin()">
<a-form-item v-if="false">
<a-input-search placeholder="选择公司" enter-button @search="onCompanySearch" />
</a-form-item>
@ -74,12 +74,12 @@
</div>
</a-form>
<vxe-modal v-model="companyShow" width="600" show-footer>
<vxe-modal v-model="companyShow" @confirm="confirmEvent" width="600" show-footer>
<template #title>
<span>选择公司</span>
</template>
<template #default>
<vxe-table show-overflow auto-resize height="300" :rowConfig="{ isCurrent: true, isHover: true }"
<vxe-table ref="xTable" show-overflow auto-resize height="300" :rowConfig="{ isCurrent: true, isHover: true }"
:data="companyData">
<vxe-column type="seq" width="60"></vxe-column>
<vxe-column field="title" title="公司名"></vxe-column>
@ -100,7 +100,7 @@
<script>
import CommonLayout from '@/layouts/CommonLayout'
import { login, getUserInfo, getRoutesConfig, getPermission, getSettings, getCompany, getProject, getProject2 } from '@/services/base/user'
import { login, switchCompany, getUserInfo, getRoutesConfig, getPermission, getSettings, getCompany, getProject } from '@/services/base/user'
import { setAuthorization, setCompany } from '@/utils/request'
import { loadRoutes } from '@/utils/routerUtil'
import { mapMutations } from 'vuex'
@ -108,9 +108,6 @@ import Cookie from 'js-cookie'
import { USER_MODEL } from '@/services/base/api.js';
var axios = require('axios');
export default {
@ -129,7 +126,7 @@ export default {
companyShow: false,
companyData: [],
company: Cookie.get('company'),
loginResult: null
}
},
computed: {
@ -141,9 +138,7 @@ export default {
const project = result.data.data
this.setProject(project) // vuex
})
getProject2().then(result => { //
console.log(result)
})
//
Cookie.set(process.env.VUE_APP_LAYOUT_KEY, 'side')
Cookie.set(process.env.VUE_APP_THEME_MODE_KEY, 'dark')
@ -163,42 +158,47 @@ export default {
}, 1000)
}) // loadshpick
setTimeout(() => {
this.testLogin();
}, 2000);
},
methods: {
...mapMutations('account', ['setUid', 'setUser', 'setPermissions', 'setRoutesConfig', 'setSettings', 'setCompany', 'setProject']),
testLogin() {
var data = JSON.stringify({
"mobile": "18607684660",
"password": "888888"
});
var config = {
method: 'post',
url: 'http://192.168.31.166:46000/BaseAdmin/v1/login',
headers: {
//'Beid': '1',
'Authorization': '',
'Content-Type': 'application/json',
'Accept': '*/*'
},
data: data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
},
onCompanySearch() {
this.companyShow = true;
},
confirmEvent() {
let row = this.$refs.xTable.getCurrentRecord();
//
if (!row || row.id == this.companyData[0].id) {
this.afterLoginSuccess({
token: this.loginResult.data.access_token,
access_expire: this.loginResult.data.access_expire,
uid: this.loginResult.data.uid,
loginResMsg: this.loginResult.msg
});
}
//
else {
setAuthorization({
token: this.loginResult.data.access_token,
expireAt: new Date(this.loginResult.data.access_expire * 1000)
})
switchCompany(row.id).then(result => {
result = result.data;
this.afterLoginSuccess({
token: result.data.access_token,
access_expire: result.data.access_expire,
uid: result.data.uid,
loginResMsg: this.loginResult.msg
});
})
}
},
isMiddleAdmin() {
console.log(USER_MODEL)
@ -220,55 +220,19 @@ export default {
this.logging = false
const loginRes = res.data
if (loginRes.code == 200) {
const uid = loginRes.data.uid
if(!this.isMiddleAdmin()){
if (!this.isMiddleAdmin()) {
this.companyShow = true;
this.companyData = loginRes.data.company_switch;
this.loginResult = loginRes;
return;
}
this.companyData = res.data.company_switch;
setAuthorization({ token: loginRes.data.access_token, expireAt: new Date(loginRes.data.access_expire * 1000) }) // token
this.setUid(uid) // id
getUserInfo().then(result => { //
if (result.data.data != null) {
const UserInfo = result.data.data.user_info
this.setUser(UserInfo)
}
})
getPermission().then(result => { //
if (result.data.data != null) {
const Permission = result.data.data.setPermissions
this.setPermissions(Permission)
}
})
getRoutesConfig().then(result => { //
if (result.data.data != null) {
const routesConfig = result.data.data
this.setRoutesConfig(routesConfig)
loadRoutes([routesConfig])
this.$router.push('/dashboard/workplace')
this.$message.success(loginRes.msg, 3)
}
})
getSettings().then(result => { //
if (result.data.data != null) {
const settings = result.data.data
this.setSettings(settings)
}
})
getCompany().then(result => { //
if (result.data.data != null) {
const company = result.data.data
this.setCompany(company) // vuex
setCompany(company.company_info) // cookies
}
})
this.afterLoginSuccess({
token: loginRes.data.access_token,
access_expire: loginRes.data.access_expire,
uid: loginRes.data.uid,
loginResMsg: loginRes.msg
});
} else {
@ -276,6 +240,54 @@ export default {
this.error = loginRes.message
}
},
afterLoginSuccess({ token, access_expire, uid, loginResMsg }) {
setAuthorization({ token: token, expireAt: new Date(access_expire * 1000) }) // token
this.setUid(uid) // id
getUserInfo().then(result => { //
if (result.data.data != null) {
const UserInfo = result.data.data.user_info
this.setUser(UserInfo)
}
})
getPermission().then(result => { //
if (result.data.data != null) {
const Permission = result.data.data.setPermissions
this.setPermissions(Permission)
}
})
getRoutesConfig().then(result => { //
if (result.data.data != null) {
const routesConfig = result.data.data
this.setRoutesConfig(routesConfig)
loadRoutes([routesConfig])
this.$router.push('/dashboard/workplace')
this.$message.success(loginResMsg, 3)
}
})
getSettings().then(result => { //
if (result.data.data != null) {
const settings = result.data.data
this.setSettings(settings)
}
})
getCompany().then(result => { //
if (result.data.data != null) {
const company = result.data.data
this.setCompany(company) // vuex
setCompany(company.company_info) // cookies
}
})
}
}
}
</script>

View File

@ -15,6 +15,7 @@ module.exports = {
method:METHOD.POST
}, // 获取项目信息
LOGIN: {url:`${BASE_URL}/${USER_MODEL}/v1/login`, method:METHOD.POST}, // 登录
SWITCHCOMPANY: {url:`${BASE_URL}/${USER_MODEL}/v1/switch/company`, method:METHOD.POST}, // 登录
ROUTERS: {url:`${BASE_URL}/${USER_MODEL}/v1/routers`, method:METHOD.POST}, // 获取路由配置
USERINFO: {url:`${BASE_URL}/${USER_MODEL}/v1/userinfo`, method:METHOD.POST}, // 获取用户信息
COMPANY: {url:`${BASE_URL}/${USER_MODEL}/v1/company`, method:METHOD.POST}, // 获取公司信息

View File

@ -1,5 +1,5 @@
import {LOGIN, ROUTERS, USERINFO,PERMISSION,SETTINGS,PROJECT,COMPANY} from '@/services/base/api'
import {request, removeAuthorization} from '@/utils/request'
import { LOGIN, SWITCHCOMPANY , ROUTERS, USERINFO, PERMISSION, SETTINGS, PROJECT, COMPANY } from '@/services/base/api'
import { request, removeAuthorization } from '@/utils/request'
/**
* 登录服务
* @param name 账户名
@ -7,10 +7,15 @@ import {request, removeAuthorization} from '@/utils/request'
* @returns {Promise<AxiosResponse<T>>}
*/
export async function login(name, password) {
return request(LOGIN.url, LOGIN.method, {
let params = {
mobile: name,
password: password
})
}
if (process.env.VUE_APP_USER_MODEL != "AdminUser") {
params.beid = parseInt(process.env.VUE_APP_BEID)
}
return request(LOGIN.url, LOGIN.method, params)
}
/**
@ -24,6 +29,13 @@ export async function getUserInfo() { // 获取用户信息
uid: userId
})
}
export async function switchCompany(company_id) { // 获取用户信息
return request(SWITCHCOMPANY.url, SWITCHCOMPANY.method, {
company_id: company_id
})
}
/**
* 获取路由配置
* @param uid
@ -32,7 +44,7 @@ export async function getUserInfo() { // 获取用户信息
export async function getRoutesConfig() { // 获取路由配置
const userId = parseInt(localStorage.getItem(process.env.VUE_APP_UID_KEY)) // 获取用户id并转换为整数
return request(ROUTERS.url, ROUTERS.method, {
uid:userId
uid: userId
})
}
@ -44,7 +56,7 @@ export async function getRoutesConfig() { // 获取路由配置
export async function getPermission() { // 获取权限配置
const userId = parseInt(localStorage.getItem(process.env.VUE_APP_UID_KEY)) // 获取用户id并转换为整数
return request(PERMISSION.url, PERMISSION.method, {
uid:userId
uid: userId
})
}
@ -56,7 +68,7 @@ export async function getPermission() { // 获取权限配置
export async function getSettings() { // 获取用户设置
const userId = parseInt(localStorage.getItem(process.env.VUE_APP_UID_KEY)) // 获取用户id并转换为整数
return request(SETTINGS.url, SETTINGS.method, {
uid:userId
uid: userId
})
}
@ -67,13 +79,7 @@ export async function getSettings() { // 获取用户设置
*/
export async function getProject() { // 获取项目信息
return request(PROJECT.url, PROJECT.method, {
//beid:parseInt(process.env.VUE_APP_BEID)
})
}
export async function getProject2() { // 获取项目信息
return request(PROJECT.url, PROJECT.method, {
//beid:parseInt(process.env.VUE_APP_BEID)
beid: parseInt(process.env.VUE_APP_BEID)
})
}
@ -86,7 +92,7 @@ export async function getProject2() { // 获取项目信息
export async function getCompany() { // 获取公司信息
const userId = parseInt(localStorage.getItem(process.env.VUE_APP_UID_KEY)) // 获取用户id并转换为整数
return request(COMPANY.url, COMPANY.method, {
uid: userId
uid: userId
})
}
@ -111,6 +117,6 @@ export default {
getUserInfo,
getSettings,
getProject,
getProject2,
getCompany,
switchCompany
}

View File

@ -41,13 +41,13 @@ async function request(url, method, params, config) { // 请求方法
if(USER_MODEL != "AdminUser"){
axios.defaults.headers.common[beidHeaderName] = parseInt(APP_BEID)
}else{
if(beidHeaderName in axios.defaults.headers.common){
delete axios.defaults.headers.common[beidHeaderName];
}
}
//if(USER_MODEL != "AdminUser"){
// axios.defaults.headers.common[beidHeaderName] = parseInt(APP_BEID)
//}else{
// if(beidHeaderName in axios.defaults.headers.common){
// delete axios.defaults.headers.common[beidHeaderName];
// }
//}
if (Cookie.get(xsrfHeaderName)) { // 检查cookie中是否存在认证信息