!286 合并 多租户功能

* add 新增 ruoyi-common-tenant 多租户模块 全框架适配多租户改动
* update 优化 隐藏页面主键
* remove 移除 缓存列表功能(多租户缓存功能繁杂多样 没有办法在页面管理)
* update 重构 全局缓存KEY 与 常用缓存KEY做区分
* update 重构 OssFactory 加载方式 改为每次比对配置做实例更新
* update 优化 SaTokenDao 改为 Bean 注入 便于扩展
* update 重构 项目初始化数据改为懒加载 不提供热加载
* update 重构 验证码开关使用配置文件(经调查少有动态开启需求)
* update 优化 启用 sqlserver 高版本语法 简化sql脚本语法
* update 优化 DataPermissionHelper 增加 开启/关闭 忽略数据权限功能
* update 优化 连接池增加 keepaliveTime 探活参数
* update 优化 调整连接池最长生命周期 防止出现警告
* update 优化 代码生成页面模板 校验不必要的表单数据
* add 新增 StringUtils splitTo 与 splitList 方法 优化业务代码
This commit is contained in:
疯狂的狮子Li
2023-02-16 09:06:10 +00:00
parent a8d5644f2e
commit 45ac0f23e1
187 changed files with 6486 additions and 2372 deletions
+60 -2
View File
@@ -5,8 +5,25 @@
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/>
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/>
<div class="right-menu">
<template v-if="device!=='mobile'">
<div class="right-menu flex align-center">
<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>
<svg-icon slot="prefix" icon-class="company" class="el-input__icon input-icon" />
</el-select>
<search id="header-search" class="right-menu-item" />
<el-tooltip content="源码地址" effect="dark" placement="bottom">
@@ -56,8 +73,19 @@ import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git'
import RuoYiDoc from '@/components/RuoYi/Doc'
import { tenantList } from "@/api/login";
import { dynamicClear, dynamicTenant } from "@/api/system/tenant";
export default {
data() {
return {
userId: this.$store.getters.userId,
tenantId: undefined,
companyName: undefined,
tenantList: [],
userList: []
}
},
components: {
Breadcrumb,
TopNav,
@@ -92,6 +120,27 @@ export default {
}
},
methods: {
// 动态切换
dynamicTenantEvent(tenantId) {
if (this.companyName != null && this.companyName !== '') {
dynamicTenant(tenantId).then(res => {
this.$tab.closeAllPage()
this.$router.push('/')
});
}
},
dynamicClearEvent() {
dynamicClear().then(res => {
this.$tab.closeAllPage()
this.$router.push('/')
});
},
// 租户列表
getTenantList() {
tenantList().then(res => {
this.tenantList = res.data;
});
},
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
},
@@ -111,6 +160,15 @@ export default {
</script>
<style lang="scss" scoped>
.flex {
display: flex;
}
.align-center {
align-items: center;
}
.navbar {
height: 50px;
overflow: hidden;
+6 -1
View File
@@ -4,7 +4,7 @@
<sidebar v-if="!sidebar.hide" class="sidebar-container" />
<div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
<div :class="{'fixed-header':fixedHeader}">
<navbar />
<navbar ref="navbar"/>
<tags-view v-if="needTagsView" />
</div>
<app-main />
@@ -54,6 +54,11 @@ export default {
return variables;
}
},
created() {
this.$nextTick(() => {
this.$refs.navbar.getTenantList();
});
},
methods: {
handleClickOutside() {
this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })