登录增加选择公司

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_API_BASE_URL=http://zxx4.f3322.net:46000
VUE_APP_USER_MODEL=AdminUser VUE_APP_USER_MODEL2=AdminUser
VUE_APP_USER_MODEL2=BaseAdmin VUE_APP_USER_MODEL=BaseAdmin

View File

@ -29,7 +29,7 @@
</a-input> </a-input>
</a-form-item> </a-form-item>
<a-form-item v-if="!isMiddleAdmin()"> <a-form-item v-if="false">
<a-input-search placeholder="选择公司" enter-button @search="onCompanySearch" /> <a-input-search placeholder="选择公司" enter-button @search="onCompanySearch" />
</a-form-item> </a-form-item>
@ -74,12 +74,12 @@
</div> </div>
</a-form> </a-form>
<vxe-modal v-model="companyShow" width="600" show-footer> <vxe-modal v-model="companyShow" @confirm="confirmEvent" width="600" show-footer>
<template #title> <template #title>
<span>选择公司</span> <span>选择公司</span>
</template> </template>
<template #default> <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"> :data="companyData">
<vxe-column type="seq" width="60"></vxe-column> <vxe-column type="seq" width="60"></vxe-column>
<vxe-column field="title" title="公司名"></vxe-column> <vxe-column field="title" title="公司名"></vxe-column>
@ -100,7 +100,7 @@
<script> <script>
import CommonLayout from '@/layouts/CommonLayout' 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 { setAuthorization, setCompany } from '@/utils/request'
import { loadRoutes } from '@/utils/routerUtil' import { loadRoutes } from '@/utils/routerUtil'
import { mapMutations } from 'vuex' import { mapMutations } from 'vuex'
@ -108,9 +108,6 @@ import Cookie from 'js-cookie'
import { USER_MODEL } from '@/services/base/api.js'; import { USER_MODEL } from '@/services/base/api.js';
var axios = require('axios');
export default { export default {
@ -129,7 +126,7 @@ export default {
companyShow: false, companyShow: false,
companyData: [], companyData: [],
company: Cookie.get('company'), company: Cookie.get('company'),
loginResult: null
} }
}, },
computed: { computed: {
@ -141,9 +138,7 @@ export default {
const project = result.data.data const project = result.data.data
this.setProject(project) // vuex 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_LAYOUT_KEY, 'side')
Cookie.set(process.env.VUE_APP_THEME_MODE_KEY, 'dark') Cookie.set(process.env.VUE_APP_THEME_MODE_KEY, 'dark')
@ -163,42 +158,47 @@ export default {
}, 1000) }, 1000)
}) // loadshpick }) // loadshpick
setTimeout(() => {
this.testLogin();
}, 2000);
}, },
methods: { methods: {
...mapMutations('account', ['setUid', 'setUser', 'setPermissions', 'setRoutesConfig', 'setSettings', 'setCompany', 'setProject']), ...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() { onCompanySearch() {
this.companyShow = true; 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() { isMiddleAdmin() {
console.log(USER_MODEL) console.log(USER_MODEL)
@ -220,55 +220,19 @@ export default {
this.logging = false this.logging = false
const loginRes = res.data const loginRes = res.data
if (loginRes.code == 200) { if (loginRes.code == 200) {
const uid = loginRes.data.uid if (!this.isMiddleAdmin()) {
if(!this.isMiddleAdmin()){
this.companyShow = true; this.companyShow = true;
this.companyData = loginRes.data.company_switch;
this.loginResult = loginRes;
return;
} }
this.companyData = res.data.company_switch; this.afterLoginSuccess({
token: loginRes.data.access_token,
setAuthorization({ token: loginRes.data.access_token, expireAt: new Date(loginRes.data.access_expire * 1000) }) // token access_expire: loginRes.data.access_expire,
this.setUid(uid) // id uid: loginRes.data.uid,
loginResMsg: loginRes.msg
});
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
}
})
} else { } else {
@ -276,6 +240,54 @@ export default {
this.error = loginRes.message 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> </script>

View File

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

View File

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