From f6a628cf6632f89995b1366fd9aa07bb96f3e030 Mon Sep 17 00:00:00 2001 From: toesbieya <1647775459@126.com> Date: Fri, 25 Sep 2020 12:24:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E9=A1=B5=E7=AD=BE=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96=E5=8A=9F=E8=83=BD=20=E5=A4=9A?= =?UTF-8?q?=E9=A1=B5=E7=AD=BE=E7=9A=84=E5=BF=AB=E6=8D=B7=E9=94=AE=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=8A=9F=E8=83=BD=E5=8F=AF=E8=87=AA=E8=A1=8C=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E5=81=9C=E7=94=A8=20=E8=AE=BE=E7=BD=AE=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E4=B8=AD=E7=9A=84=E5=A4=9A=E9=A1=B5=E7=AD=BE=E9=A1=B9?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E5=8C=96=20config=E5=A2=9E=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E5=AD=98=E5=82=A8=E9=85=8D=E7=BD=AE=20?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue/src/config/index.js | 11 +- vue/src/layout/component/Aside/index.vue | 11 +- .../Navbar/component/SettingDrawer.vue | 71 +++++++---- .../Header/component/TagsView/index.vue | 28 ++--- .../layout/mixin/decideRouterTransition.js | 6 + vue/src/layout/mixin/tagsViewPersistent.js | 56 +++++++++ .../{shortcut.js => tagsViewShortcut.js} | 29 ++++- vue/src/layout/store/tagsView.js | 10 +- vue/src/router/guardian/security.js | 2 +- vue/src/store/module/resource.js | 23 ++-- vue/src/util/auth.js | 6 +- vue/src/util/storage.js | 117 +++++++++++++----- 12 files changed, 276 insertions(+), 94 deletions(-) create mode 100644 vue/src/layout/mixin/tagsViewPersistent.js rename vue/src/layout/mixin/{shortcut.js => tagsViewShortcut.js} (69%) diff --git a/vue/src/config/index.js b/vue/src/config/index.js index acb3cd4..f77b020 100644 --- a/vue/src/config/index.js +++ b/vue/src/config/index.js @@ -48,7 +48,7 @@ module.exports = { //文件配置 file: { //上传地址 - uploadUrl:'https://upload.qiniup.com', + uploadUrl: 'https://upload.qiniup.com', //上传后的存储地址前缀 storePrefix: 'https://static.toesbieya.cn/', @@ -57,6 +57,15 @@ module.exports = { previewPrefix: isDev ? 'http://localhost:8012' : 'https://preview.toesbieya.cn', }, + //本地存储配置 + storage: { + //键名前缀 + keyPrefix: 'GCC-', + + //读写时是否进行压缩的默认值 + zip: !isDev + }, + //省市地区json数据请求地址 regionDataUrl: `${contextPath}static/json/region-pca.json` } diff --git a/vue/src/layout/component/Aside/index.vue b/vue/src/layout/component/Aside/index.vue index 7c33c51..e33d7c9 100644 --- a/vue/src/layout/component/Aside/index.vue +++ b/vue/src/layout/component/Aside/index.vue @@ -115,11 +115,14 @@ export default { }, //添加或移除鼠标移动事件 - shouldBindMouseMoveEvent(v) { - //尝试移除之前可能添加的事件 - window.removeEventListener('mousemove', this.moveEvent) + shouldBindMouseMoveEvent: { + immediate: true, + handler(v) { + //尝试移除之前可能添加的事件 + window.removeEventListener('mousemove', this.moveEvent) - v && window.addEventListener('mousemove', this.moveEvent) + v && window.addEventListener('mousemove', this.moveEvent) + } } }, diff --git a/vue/src/layout/component/Header/component/Navbar/component/SettingDrawer.vue b/vue/src/layout/component/Header/component/Navbar/component/SettingDrawer.vue index 990b921..649c7b5 100644 --- a/vue/src/layout/component/Header/component/Navbar/component/SettingDrawer.vue +++ b/vue/src/layout/component/Header/component/Navbar/component/SettingDrawer.vue @@ -26,10 +26,6 @@ 显示页头 -
- 使用多页签 - -
显示返回顶部按钮 @@ -56,6 +52,20 @@ 自动隐藏
+ + 多页签设置 +
+ 启用 + +
+
+ 启用快捷键切换 + +
+
+ 持久化 + +
@@ -111,7 +121,6 @@ export default { }, page: { showPageHeader: true, - useTagsView: true, showBackToTop: true }, aside: { @@ -120,6 +129,11 @@ export default { collapse: false, showParentOnCollapse: false, autoHide: false + }, + tagsView: { + enabled: true, + shortcut: true, + persistent: true } } } @@ -128,13 +142,12 @@ export default { methods: { //按照此处的设置项修改layout中的store updateLayoutStore() { - const {app, page, aside} = this.setting + const {app, page, aside, tagsView} = this.setting appMutations.color(app.color) appMutations.navMode(app.navMode) pageMutations.showPageHeader(page.showPageHeader) - tagsViewMutations.enabled(page.useTagsView) pageMutations.showBackToTop(page.showBackToTop) asideMutations.showLogo(aside.showLogo) @@ -142,15 +155,18 @@ export default { asideMutations.collapse(aside.collapse) asideMutations.showParentOnCollapse(aside.showParentOnCollapse) asideMutations.autoHide(aside.autoHide) + + tagsViewMutations.enabled(tagsView.enabled) + tagsViewMutations.shortcut(tagsView.shortcut) + tagsViewMutations.persistent(tagsView.persistent) }, //将layout中的store数据同步到此处的设置项 syncLayoutStore() { - const {app, page, aside} = this.setting + const {app, page, aside, tagsView} = this.setting app.color = appGetters.color app.navMode = appGetters.navMode page.showPageHeader = pageGetters.showPageHeader - page.useTagsView = tagsViewGetters.enabled page.showBackToTop = pageGetters.showBackToTop aside.showLogo = asideGetters.showLogo @@ -158,6 +174,10 @@ export default { aside.collapse = asideGetters.collapse aside.showParentOnCollapse = asideGetters.showParentOnCollapse aside.autoHide = asideGetters.autoHide + + tagsView.enabled = tagsViewGetters.enabled + tagsView.shortcut = tagsViewGetters.shortcut + tagsView.persistent = tagsViewGetters.persistent }, //将此处的设置项保存到本地 saveSetting() { @@ -168,49 +188,56 @@ export default { changeThemeColor(v) { isDev && client.changer.changeColor({newColors: forElementUI.getElementUISeries(v)}) appMutations.color(v) - this.saveSetting() }, changeNavMode(v) { appMutations.navMode(v) - this.saveSetting() }, changePageShowHeader(v) { pageMutations.showPageHeader(v) - this.saveSetting() - }, - changeTagsViewEnabled(v) { - tagsViewMutations.enabled(v) - this.saveSetting() }, changePageBackToTop(v) { pageMutations.showBackToTop(v) - this.saveSetting() }, changeAsideShowLogo(v) { asideMutations.showLogo(v) - this.saveSetting() }, changeAsideUniqueOpen(v) { asideMutations.uniqueOpen(v) - this.saveSetting() }, changeAsideCollapse(v) { asideMutations.collapse(v) - this.saveSetting() }, changeAsideCollapseParent(v) { asideMutations.showParentOnCollapse(v) - this.saveSetting() }, changeAsideAutoHide(v) { asideMutations.autoHide(v) - this.saveSetting() + }, + + changeTagsViewEnabled(v) { + tagsViewMutations.enabled(v) + }, + changeTagsViewShortcut(v) { + tagsViewMutations.shortcut(v) + }, + changeTagsViewPersistent(v) { + tagsViewMutations.persistent(v) } }, created() { + //增强所有以change开头的方法 + for (const key of Object.keys(this)) { + if (!key.startsWith('change')) continue + const originMethod = this[key] + this[key] = (...arg) => { + originMethod.apply(this, arg) + this.saveSetting() + } + } + mergeObj(this.setting, getLocalPersonalSettings()) //由于数据结构可能发生变化,所以在合并后覆盖本地数据 diff --git a/vue/src/layout/component/Header/component/TagsView/index.vue b/vue/src/layout/component/Header/component/TagsView/index.vue index 5d18ef8..eadfb56 100644 --- a/vue/src/layout/component/Header/component/TagsView/index.vue +++ b/vue/src/layout/component/Header/component/TagsView/index.vue @@ -1,6 +1,7 @@