From 2ea5ec4b515110116a6210b2384bdb8e4a88e4a5 Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 6 Dec 2018 16:15:04 +0800 Subject: [PATCH] add sidepanel --- src/components/SidePanel/index.vue | 141 +++++++++++++++++++++++++++++ src/settings.js | 8 +- src/store/modules/app.js | 3 +- src/utils/index.js | 13 +++ src/views/layout/Layout.vue | 23 +++-- 5 files changed, 176 insertions(+), 12 deletions(-) create mode 100644 src/components/SidePanel/index.vue diff --git a/src/components/SidePanel/index.vue b/src/components/SidePanel/index.vue new file mode 100644 index 00000000..57f87811 --- /dev/null +++ b/src/components/SidePanel/index.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/settings.js b/src/settings.js index 3d1e79a0..d3bcfe41 100644 --- a/src/settings.js +++ b/src/settings.js @@ -48,7 +48,13 @@ export default { * @type {boolean} true | false * @description Whether only one sub-menu can be active */ - sidebarUniqueOpened: false + sidebarUniqueOpened: false, + + /** + * @type {boolean} true | false + * @description Whether show the settings side-panel + */ + showSettings: false // permission: true, // i18n: true diff --git a/src/store/modules/app.js b/src/store/modules/app.js index 18a16c6f..ba224ceb 100644 --- a/src/store/modules/app.js +++ b/src/store/modules/app.js @@ -12,7 +12,8 @@ const app = { size: Cookies.get('size') || settings.size, viewsTransition: Cookies.get('viewsTransition') || settings.viewsTransition, needTagsView: Cookies.get('needTagsView') || settings.tagsView, - sidebarUniqueOpened: Cookies.get('sidebarUniqueOpened') || settings.sidebarUniqueOpened + sidebarUniqueOpened: Cookies.get('sidebarUniqueOpened') || settings.sidebarUniqueOpened, + showSettings: settings.showSettings }, mutations: { TOGGLE_SIDEBAR: state => { diff --git a/src/utils/index.js b/src/utils/index.js index f607910c..76011b06 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -296,3 +296,16 @@ export function deepClone(source) { export function uniqueArr(arr) { return Array.from(new Set(arr)) } + +export function hasClass(ele, cls) { + return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) +} +export function addClass(ele, cls) { + if (!hasClass(ele, cls)) ele.className += ' ' + cls +} +export function removeClass(ele, cls) { + if (hasClass(ele, cls)) { + const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') + ele.className = ele.className.replace(reg, ' ') + } +} diff --git a/src/views/layout/Layout.vue b/src/views/layout/Layout.vue index 2415e2f0..c1d10dbe 100644 --- a/src/views/layout/Layout.vue +++ b/src/views/layout/Layout.vue @@ -6,13 +6,18 @@ + + apple +