From 19ebab2fa68a39883d66952b03d878dc60f771f5 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 28 Aug 2018 09:58:31 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=92=8C=E8=BE=93=E5=85=A5=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 373359336f6e97367f7b6a31c09fb4a28915cb07 [formerly 373359336f6e97367f7b6a31c09fb4a28915cb07 [formerly 373359336f6e97367f7b6a31c09fb4a28915cb07 [formerly 373359336f6e97367f7b6a31c09fb4a28915cb07 [formerly f700069d686be8e9ee177e36627eb284b3638ca7 [formerly a23ef90c3256f8bdee11ee6f63c778afa8b0e7d3]]]]] Former-commit-id: cf1abe3e0fdd1078f74e78741bae59315d66aacf Former-commit-id: 8c342c2eaeb9cf04bfbc1fa7b15f34c36445e77d Former-commit-id: 38d7d5273db075c711a5235819cf75f15dfbd1a4 [formerly 054ce7262136015f7dd4dfa1cecd9a2e83a90449] Former-commit-id: e6a1403e2d4426450c70b43a79f9809151df9146 Former-commit-id: b9d31641196ff5ba6cc16a8097ffc6a45582f601 Former-commit-id: e88fe6c0ea4ad041f4a9c44f36ba52222035e7d6 Former-commit-id: 34dbea74181ba5f7bba361921cc46c1750a6aadd Former-commit-id: ffe6a1be153494a4845b800ebcdaf0483bd85ef0 --- .../theme/theme-base.scss.REMOVED.git-id | 2 +- .../components/header-search/index.vue | 15 +++++ .../components/panel-search/index.vue | 41 ++++++++++++++ src/layout/header-aside/layout.vue | 55 +++++++++++++------ src/store/modules/d2admin/index.js | 4 +- src/store/modules/d2admin/modules/search.js | 24 ++++++++ 6 files changed, 123 insertions(+), 18 deletions(-) create mode 100644 src/layout/header-aside/components/header-search/index.vue create mode 100644 src/layout/header-aside/components/panel-search/index.vue create mode 100644 src/store/modules/d2admin/modules/search.js diff --git a/src/assets/style/theme/theme-base.scss.REMOVED.git-id b/src/assets/style/theme/theme-base.scss.REMOVED.git-id index 76786659..0313b944 100644 --- a/src/assets/style/theme/theme-base.scss.REMOVED.git-id +++ b/src/assets/style/theme/theme-base.scss.REMOVED.git-id @@ -1 +1 @@ -27d62e35e945646beaa49ba9850fdbce60ed9e66 \ No newline at end of file +76c08deda5f3f6bd81e91aeb695cae984eab131e \ No newline at end of file diff --git a/src/layout/header-aside/components/header-search/index.vue b/src/layout/header-aside/components/header-search/index.vue new file mode 100644 index 00000000..a2c59425 --- /dev/null +++ b/src/layout/header-aside/components/header-search/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/layout/header-aside/components/panel-search/index.vue b/src/layout/header-aside/components/panel-search/index.vue new file mode 100644 index 00000000..95f890b7 --- /dev/null +++ b/src/layout/header-aside/components/panel-search/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/layout/header-aside/layout.vue b/src/layout/header-aside/layout.vue index 04dce9ce..057750bf 100644 --- a/src/layout/header-aside/layout.vue +++ b/src/layout/header-aside/layout.vue @@ -20,6 +20,7 @@
+ @@ -37,17 +38,26 @@
-
-
- -
-
- - - - - -
+
+ +
+ +
+
+ +
+
+ +
+
+ + + + + +
+
+
@@ -63,9 +73,11 @@ export default { 'd2-menu-header': () => import('./components/menu-header'), 'd2-tabs': () => import('./components/tabs'), 'd2-header-fullscreen': () => import('./components/header-fullscreen'), + 'd2-header-search': () => import('./components/header-search'), 'd2-header-theme': () => import('./components/header-theme'), 'd2-header-user': () => import('./components/header-user'), - 'd2-header-error-log': () => import('./components/header-error-log') + 'd2-header-error-log': () => import('./components/header-error-log'), + 'd2-panel-search': () => import('./components/panel-search') }, data () { return { @@ -78,6 +90,7 @@ export default { computed: { ...mapState('d2admin', { grayActive: state => state.gray.active, + searchActive: state => state.search.active, transitionActive: state => state.transition.active, asideCollapse: state => state.menu.asideCollapse }), @@ -97,14 +110,24 @@ export default { } }, methods: { - ...mapMutations('d2admin/menu', [ - 'asideCollapseToggle' - ]), + ...mapMutations({ + menuAsideCollapseToggle: 'd2admin/menu/asideCollapseToggle', + searchToggle: 'd2admin/search/toggle' + }), /** * 接收点击切换侧边栏的按钮 */ handleToggleAside () { - this.asideCollapseToggle() + this.menuAsideCollapseToggle() + }, + /** + * 接收点击搜索按钮 + */ + handleSearch () { + this.searchToggle() + if (this.searchActive) { + this.$refs.panelSearch.focus() + } } } } diff --git a/src/store/modules/d2admin/index.js b/src/store/modules/d2admin/index.js index 6ad3350b..2cc2fbc3 100644 --- a/src/store/modules/d2admin/index.js +++ b/src/store/modules/d2admin/index.js @@ -10,6 +10,7 @@ import ua from './modules/ua' import gray from './modules/gray' import page from './modules/page' import transition from './modules/transition' +import search from './modules/search' export default { namespaced: true, @@ -25,6 +26,7 @@ export default { ua, gray, page, - transition + transition, + search } } diff --git a/src/store/modules/d2admin/modules/search.js b/src/store/modules/d2admin/modules/search.js new file mode 100644 index 00000000..a4de5849 --- /dev/null +++ b/src/store/modules/d2admin/modules/search.js @@ -0,0 +1,24 @@ +export default { + namespaced: true, + state: { + // 搜索面板激活状态 + active: false + }, + mutations: { + /** + * @description 切换激活状态 + * @param {Object} state vuex state + */ + toggle (state) { + state.active = !state.active + }, + /** + * @description 设置激活模式 + * @param {Object} state vuex state + * @param {Boolean} active active + */ + set (state, active) { + state.active = active + } + } +} From ea1e23fc11ebab3b31043661ffe242bf2694ef05 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 28 Aug 2018 11:12:51 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: f08b7ba521a8338abff254905997bdb3d5f8b051 [formerly f08b7ba521a8338abff254905997bdb3d5f8b051 [formerly f08b7ba521a8338abff254905997bdb3d5f8b051 [formerly f08b7ba521a8338abff254905997bdb3d5f8b051 [formerly 95b51a0e9b3be340f8dc6b285a66317f5899fe71 [formerly 37fe09545b11607d94cdf89ec62429c0a68f1f03]]]]] Former-commit-id: 4d0f8841b17942ec75fc5c6468836c31b26a5981 Former-commit-id: 5a4e3cca1b5e16f0a908af6bd341047963d27805 Former-commit-id: 293aa17f542d733777d05c0023aff252b46bebab [formerly 5ad3d0e6fa7cb27407093ca254e8c9898f31fce1] Former-commit-id: fb90e6ede3a6548cf989404fb648472b17e7fde0 Former-commit-id: 9569f37f5b93fd5e95178a2dbcba878fc91f6c2e Former-commit-id: b0328b0a52e939aef0fb65c3b30b50c9c72ce625 Former-commit-id: 9e3c51f9afb99d8a67d83c44b2e2fd1f9738abde Former-commit-id: a21f8109b4c1ce4233054240b1eeba9248df3955 --- package-lock.json.REMOVED.git-id | 2 +- package.json | 1 + .../components/panel-search/index.vue | 7 +++- src/layout/header-aside/layout.vue | 41 +++++++++++++++++-- src/setting.js | 8 ++++ src/store/modules/d2admin/modules/search.js | 8 +++- 6 files changed, 60 insertions(+), 7 deletions(-) diff --git a/package-lock.json.REMOVED.git-id b/package-lock.json.REMOVED.git-id index e44ada5f..08824f12 100644 --- a/package-lock.json.REMOVED.git-id +++ b/package-lock.json.REMOVED.git-id @@ -1 +1 @@ -937f5369a5d9b43eeb3c7fa2991f76724481721c \ No newline at end of file +3ae82b79660726c08077289a8873ef5ff3ff6471 \ No newline at end of file diff --git a/package.json b/package.json index 0af0e951..5a367124 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "flex.css": "^1.1.7", "github-markdown-css": "^2.10.0", "highlight.js": "^9.12.0", + "hotkeys-js": "^3.3.6", "js-cookie": "^2.2.0", "lodash": "^4.17.10", "lowdb": "^1.0.0", diff --git a/src/layout/header-aside/components/panel-search/index.vue b/src/layout/header-aside/components/panel-search/index.vue index 95f890b7..93f59b60 100644 --- a/src/layout/header-aside/components/panel-search/index.vue +++ b/src/layout/header-aside/components/panel-search/index.vue @@ -6,7 +6,8 @@ ref="input" v-model="input" suffix-icon="el-icon-search" - placeholder="搜索页面"/> + placeholder="搜索页面" + @keydown.esc.native="handleEsc"/> @@ -21,8 +22,12 @@ export default { methods: { focus () { this.$nextTick(() => { + this.input = '' this.$refs.input.focus() }) + }, + handleEsc () { + this.$emit('close') } } } diff --git a/src/layout/header-aside/layout.vue b/src/layout/header-aside/layout.vue index 057750bf..2182f712 100644 --- a/src/layout/header-aside/layout.vue +++ b/src/layout/header-aside/layout.vue @@ -20,7 +20,7 @@
- + @@ -41,7 +41,9 @@
- +
@@ -66,6 +68,7 @@ diff --git a/src/store/modules/d2admin/modules/search.js b/src/store/modules/d2admin/modules/search.js index 40a84c56..edcf038c 100644 --- a/src/store/modules/d2admin/modules/search.js +++ b/src/store/modules/d2admin/modules/search.js @@ -4,7 +4,7 @@ export default { namespaced: true, state: { // 搜索面板激活状态 - active: false, + active: true, hotkey: { open: setting.hotkey.search.open, close: setting.hotkey.search.close From 61cffc8e43b0ff7bbb0102408a9567858a366193 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 28 Aug 2018 17:00:09 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 4d9b039cac8205ae66e7c0189ba6c8ca0ee69068 [formerly 4d9b039cac8205ae66e7c0189ba6c8ca0ee69068 [formerly 4d9b039cac8205ae66e7c0189ba6c8ca0ee69068 [formerly 4d9b039cac8205ae66e7c0189ba6c8ca0ee69068 [formerly ef07da1feaee3062a8b597c01abe8676ec8fee1f [formerly 735ab19a7fa3c151c317952e38198c5803cdacad]]]]] Former-commit-id: 5ad5a87bb45c1a1ed8b63d80cf868339daceb31f Former-commit-id: 02ddcd34082c40f2e09ea08666912f8d6eb3fb65 Former-commit-id: 0b4940b7b5f60f5835f325da20923fb1caea05cf [formerly 47e09c5d46868279df43ca2a3d4fbdb6bbcd38ac] Former-commit-id: 9ac892cf0a29999a8560e45bd7a954f581efe1f8 Former-commit-id: a025b38832a9b326893545b422a7dea653c99f31 Former-commit-id: 4ce579cc6ca5cfd91ad3d1a25b59e74992256a3b Former-commit-id: 01eb489103d67ddabc90d711c42a3ccd39572e40 Former-commit-id: 8840285fb15925b1715f0983bb03119c8c0022d3 --- .../header-aside/components/mixin/menu.js | 2 +- .../components/panel-search-item/index.vue | 85 +++++++++++++++ .../components/panel-search/index.vue | 100 ++++++++++++++++-- src/main.js | 2 + src/router/index.js | 4 + src/store/modules/d2admin/modules/search.js | 27 ++++- 6 files changed, 208 insertions(+), 12 deletions(-) create mode 100644 src/layout/header-aside/components/panel-search/components/panel-search-item/index.vue diff --git a/src/layout/header-aside/components/mixin/menu.js b/src/layout/header-aside/components/mixin/menu.js index 78316f3a..7160b58f 100644 --- a/src/layout/header-aside/components/mixin/menu.js +++ b/src/layout/header-aside/components/mixin/menu.js @@ -3,7 +3,7 @@ import util from '@/libs/util.js' export default { methods: { handleMenuSelect (index, indexPath) { - if (/^d2-menu-empty-\d+$/.test(index)) { + if (/^d2-menu-empty-\d+$/.test(index) || index === undefined) { this.$message.warning('临时菜单') } else if (/^https:\/\/|http:\/\//.test(index)) { util.open(index) diff --git a/src/layout/header-aside/components/panel-search/components/panel-search-item/index.vue b/src/layout/header-aside/components/panel-search/components/panel-search-item/index.vue new file mode 100644 index 00000000..25af577e --- /dev/null +++ b/src/layout/header-aside/components/panel-search/components/panel-search-item/index.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layout/header-aside/components/panel-search/index.vue b/src/layout/header-aside/components/panel-search/index.vue index 63e07308..25016796 100644 --- a/src/layout/header-aside/components/panel-search/index.vue +++ b/src/layout/header-aside/components/panel-search/index.vue @@ -1,13 +1,19 @@