From 45ac0f23e12ac2a45c6affe9e39d0897e4fad618 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 16 二月 2023 17:06:10 +0800 Subject: [PATCH] !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 方法 优化业务代码 --- ruoyi-ui/src/layout/components/AppMain.vue | 123 ++++------------------------------------- 1 files changed, 12 insertions(+), 111 deletions(-) diff --git a/ruoyi-ui/src/layout/components/AppMain.vue b/ruoyi-ui/src/layout/components/AppMain.vue index f172fc2..f4e74db 100644 --- a/ruoyi-ui/src/layout/components/AppMain.vue +++ b/ruoyi-ui/src/layout/components/AppMain.vue @@ -1,128 +1,29 @@ -<!-- @author ruoyi 20201128 鏀寔涓夌骇浠ヤ笂鑿滃崟缂撳瓨 --> <template> <section class="app-main"> <transition name="fade-transform" mode="out-in"> - <keep-alive :max="20" :exclude="notCacheName"> - <router-view :key="key" /> + <keep-alive :include="cachedViews"> + <router-view v-if="!$route.meta.link" :key="key" /> </keep-alive> </transition> + <iframe-toggle /> </section> </template> <script> -import Global from "@/layout/components/global.js"; +import iframeToggle from "./IframeToggle/index" export default { name: 'AppMain', + components: { iframeToggle }, computed: { - notCacheName() { - var visitedViews = this.$store.state.tagsView.visitedViews; - var noCacheViews = []; - Object.keys(visitedViews).some((index) => { - if (visitedViews[index].meta.noCache) { - noCacheViews.push(visitedViews[index].name); - } - }); - return noCacheViews; + cachedViews() { + return this.$store.state.tagsView.cachedViews }, key() { - return this.$route.path; - }, - }, - mounted() { - // 鍏抽棴鏍囩瑙﹀彂 - Global.$on("removeCache", (name, view) => { - this.removeCache(name, view); - }); - }, - methods: { - // 鑾峰彇鏈塳eep-alive瀛愯妭鐐圭殑Vnode - getVnode() { - // 鍒ゆ柇瀛愰泦闈炵┖ - if (this.$children.length == 0) return false; - let vnode; - for (let item of this.$children) { - // 濡傛灉data涓湁key鍒欎唬琛ㄦ壘鍒颁簡keep-alive涓嬮潰鐨勫瓙闆嗭紝杩欎釜key灏辨槸router-view涓婄殑key - if (item.$vnode.data.key) { - vnode = item.$vnode; - break; - } - } - return vnode ? vnode : false; - }, - // 绉婚櫎keep-alive缂撳瓨 - removeCache(name, view = {}) { - let vnode = this.getVnode(); - if (!vnode) return false; - let componentInstance = vnode.parent.componentInstance; - // 杩欎釜key鏄敤鏉ヨ幏鍙栧墠缂�鐢ㄦ潵鍚庨潰姝e垯鍖归厤鐢ㄧ殑 - let keyStart = vnode.key.split("/")[0]; - let thisKey = `${keyStart}${view.fullPath}`; - let regKey = `${keyStart}${view.path}`; - - this[name]({ componentInstance, thisKey, regKey }); - }, - // 绉婚櫎鍏朵粬 - closeOthersTags({ componentInstance, thisKey }) { - Object.keys(componentInstance.cache).forEach((key, index) => { - if (key != thisKey) { - // 閿�姣佸疄渚�(杩欓噷瀛樺湪澶氫釜key鎸囧悜涓�涓紦瀛樼殑鎯呭喌鍙兘鍓嶉潰涓�涓凡缁忔竻闄ゆ帀浜嗘墍鏈夎鍔犲垽鏂�) - if (componentInstance.cache[key]) { - componentInstance.cache[key].componentInstance.$destroy(); - } - // 鍒犻櫎缂撳瓨 - delete componentInstance.cache[key]; - // 绉婚櫎key涓搴旂殑key - componentInstance.keys.splice(index, 1); - } - }); - }, - // 绉婚櫎鎵�鏈夌紦瀛� - closeAllTags({ componentInstance }) { - // 閿�姣佸疄渚� - Object.keys(componentInstance.cache).forEach((key) => { - if (componentInstance.cache[key]) { - componentInstance.cache[key].componentInstance.$destroy(); - } - }); - // 鍒犻櫎缂撳瓨 - componentInstance.cache = {}; - // 绉婚櫎key涓搴旂殑key - componentInstance.keys = []; - }, - // 绉婚櫎鍗曚釜缂撳瓨 - closeSelectedTag({ componentInstance, regKey }) { - let reg = new RegExp(`^${regKey}`); - Object.keys(componentInstance.cache).forEach((key, i) => { - if (reg.test(key)) { - // 閿�姣佸疄渚� - if (componentInstance.cache[key]) { - componentInstance.cache[key].componentInstance.$destroy(); - } - // 鍒犻櫎缂撳瓨 - delete componentInstance.cache[key]; - // 绉婚櫎key涓搴旂殑key - componentInstance.keys.splice(i, 1); - } - }); - }, - // 鍒锋柊鍗曚釜缂撳瓨 - refreshSelectedTag({ componentInstance, thisKey }) { - Object.keys(componentInstance.cache).forEach((key, index) => { - if (null != thisKey && key.replace("/redirect", "") == thisKey) { - // 1 閿�姣佸疄渚�(杩欓噷瀛樺湪澶氫釜key鎸囧悜涓�涓紦瀛樼殑鎯呭喌鍙兘鍓嶉潰涓�涓凡缁忔竻闄ゆ帀浜嗘墍鏈夎鍔犲垽鏂�) - if (componentInstance.cache[key]) { - componentInstance.cache[key].componentInstance.$destroy(); - } - // 2 鍒犻櫎缂撳瓨 - delete componentInstance.cache[key]; - // 3 绉婚櫎key涓搴旂殑key - componentInstance.keys.splice(index, 1); - } - }); - }, - }, -}; + return this.$route.path + } + } +} </script> <style lang="scss" scoped> @@ -154,7 +55,7 @@ // fix css style bug in open el-dialog .el-popup-parent--hidden { .fixed-header { - padding-right: 15px; + padding-right: 17px; } } </style> -- Gitblit v1.9.3