add 顶部栏租户下拉切换功能 ;

This commit is contained in:
zlyx 2023-02-09 18:37:50 +08:00
parent 4bfeebef0f
commit 23b11ebeea
4 changed files with 67 additions and 4 deletions

View File

@ -5,8 +5,24 @@
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/> <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/>
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/> <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/>
<div class="right-menu"> <div class="right-menu flex align-center">
<template v-if="device!=='mobile' "> <template v-if="device!=='mobile' ">
<el-select v-model="companyName"
clearable
filterable
reserve-keyword
placeholder="请选择租户"
v-if="userId === 1"
@change="dynamicTenantEvent"
@clear="dynamicClearEvent">
<el-option
v-for="item in tenantList"
:key="item.tenantId"
:label="item.companyName"
:value="item.tenantId">
</el-option>
</el-select>
<search id="header-search" class="right-menu-item" /> <search id="header-search" class="right-menu-item" />
<el-tooltip content="源码地址" effect="dark" placement="bottom"> <el-tooltip content="源码地址" effect="dark" placement="bottom">
@ -56,8 +72,18 @@ import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch' import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git' import RuoYiGit from '@/components/RuoYi/Git'
import RuoYiDoc from '@/components/RuoYi/Doc' import RuoYiDoc from '@/components/RuoYi/Doc'
import { tenantList } from "@/api/login";
import { dynamicClear, dynamicTenant } from "@/api/system/tenant";
export default { export default {
data() {
return {
userId: this.$store.getters.userId,
tenantId: undefined,
companyName: undefined,
tenantList: []
}
},
components: { components: {
Breadcrumb, Breadcrumb,
TopNav, TopNav,
@ -92,6 +118,23 @@ export default {
} }
}, },
methods: { methods: {
//
dynamicTenantEvent(tenantId) {
dynamicTenant(tenantId).then(res => {
this.$router.push("/index");
});
},
dynamicClearEvent(tenantId) {
dynamicClear(tenantId).then(res => {
this.$router.push("/index");
});
},
//
getTenantList() {
tenantList().then(res => {
this.tenantList = res.data;
});
},
toggleSideBar() { toggleSideBar() {
this.$store.dispatch('app/toggleSideBar') this.$store.dispatch('app/toggleSideBar')
}, },
@ -111,6 +154,15 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.flex {
display: flex;
}
.align-center {
align-items: center;
}
.navbar { .navbar {
height: 50px; height: 50px;
overflow: hidden; overflow: hidden;

View File

@ -4,7 +4,7 @@
<sidebar v-if="!sidebar.hide" class="sidebar-container" /> <sidebar v-if="!sidebar.hide" class="sidebar-container" />
<div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container"> <div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
<div :class="{'fixed-header':fixedHeader}"> <div :class="{'fixed-header':fixedHeader}">
<navbar /> <navbar ref="navbar"/>
<tags-view v-if="needTagsView" /> <tags-view v-if="needTagsView" />
</div> </div>
<app-main /> <app-main />
@ -54,6 +54,11 @@ export default {
return variables; return variables;
} }
}, },
created() {
this.$nextTick(() => {
this.$refs.navbar.getTenantList();
});
},
methods: { methods: {
handleClickOutside() { handleClickOutside() {
this.$store.dispatch('app/closeSideBar', { withoutAnimation: false }) this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })

View File

@ -7,6 +7,7 @@ const getters = {
cachedViews: state => state.tagsView.cachedViews, cachedViews: state => state.tagsView.cachedViews,
token: state => state.user.token, token: state => state.user.token,
avatar: state => state.user.avatar, avatar: state => state.user.avatar,
userId: state => state.user.userId,
name: state => state.user.name, name: state => state.user.name,
introduction: state => state.user.introduction, introduction: state => state.user.introduction,
roles: state => state.user.roles, roles: state => state.user.roles,

View File

@ -7,10 +7,14 @@ const user = {
name: '', name: '',
avatar: '', avatar: '',
roles: [], roles: [],
permissions: [] permissions: [],
userId: null
}, },
mutations: { mutations: {
SET_USERID: (state, userId) => {
state.userId = userId
},
SET_TOKEN: (state, token) => { SET_TOKEN: (state, token) => {
state.token = token state.token = token
}, },
@ -61,6 +65,7 @@ const user = {
} }
commit('SET_NAME', user.userName) commit('SET_NAME', user.userName)
commit('SET_AVATAR', avatar) commit('SET_AVATAR', avatar)
commit('SET_USERID', user.userId)
resolve(res) resolve(res)
}).catch(error => { }).catch(error => {
reject(error) reject(error)