From 1c28aec39b26067051a1efb082a67472d51f2572 Mon Sep 17 00:00:00 2001 From: toesbieya <1647775459@qq.com> Date: Sat, 5 Sep 2020 20:12:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=AF=BC=E8=88=AA?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E5=88=87=E6=8D=A2=E7=9A=84=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20=E9=A1=B5=E5=A4=B4=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=BA=86=E8=87=AA=E5=8A=A8=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E5=A4=B4=E9=83=A8=E7=9A=84=E5=8A=9F=E8=83=BD=20=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E7=9A=84=E5=88=A4=E6=96=AD=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=AE=BD=E5=BA=A6=E4=BD=8E=E4=BA=8E500px=20?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E9=A1=B5=E7=9A=84=E5=9B=BE=E7=89=87=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=BD=91=E7=BB=9C=E8=B5=84=E6=BA=90=20=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/Menu/MenuItem.vue | 4 - .../component/Menu/Submenu.vue | 60 +-- vue/public/static/img/403.svg | 508 ------------------ vue/public/static/img/404.svg | 314 ----------- vue/public/static/img/500.svg | 208 ------- vue/src/asset/style/element-ui.scss | 21 +- vue/src/asset/style/index.scss | 2 +- vue/src/asset/style/variables.scss | 31 +- vue/src/component/AbstractForm/FormAnchor.vue | 2 +- vue/src/component/ColorCheckBox/group.vue | 29 - vue/src/component/ColorCheckBox/index.vue | 48 -- vue/src/component/checkbox/ColorCheckbox.vue | 29 + vue/src/component/checkbox/Group.vue | 24 + vue/src/component/checkbox/ImgCheckbox.vue | 38 ++ vue/src/component/checkbox/common.js | 22 + .../index.vue => menu/Contextmenu.vue} | 2 +- .../item.vue => menu/ContextmenuItem.vue} | 2 +- vue/src/component/menu/MenuItem.vue | 119 ++++ vue/src/globalMethod/Guide/utils.js | 4 +- .../component/Aside/component/SidebarItem.vue | 83 --- .../Aside/component/SidebarItemContent.vue | 22 - vue/src/layout/component/Aside/index.vue | 137 ++--- vue/src/layout/component/Aside/style.scss | 25 +- .../component/Navbar/component/Hamburger.vue | 5 +- .../component/Navbar/component/HeadMenu.vue | 205 +++++++ .../component/Navbar/component/RootMenu.vue | 273 ---------- .../Navbar/component/SettingDrawer.vue | 103 +++- .../Header/component/Navbar/index.vue | 153 +++--- .../Header/component/Navbar/style.scss | 49 ++ .../Header/component/TagsView/index.vue | 23 +- vue/src/layout/component/Header/index.vue | 62 +-- .../component/Main/component/BackToTop.vue | 8 +- .../component/Main/component/Breadcrumb.vue | 44 -- .../component/Main/component/PageHeader.vue | 60 +++ vue/src/layout/component/Main/index.vue | 71 +-- vue/src/layout/component/Main/style.scss | 6 +- vue/src/layout/index.vue | 15 +- .../mixin/{actionOnSelectMenu.js => menu.js} | 20 +- vue/src/layout/store/main.js | 8 +- vue/src/layout/store/setting.js | 25 +- vue/src/layout/util.js | 27 + vue/src/router/index.js | 2 +- .../router/module/defaultRoot/child/app.js | 4 +- .../module/defaultRoot/child/purchase.js | 4 +- .../router/module/defaultRoot/child/sell.js | 4 +- vue/src/util/browser.js | 5 +- vue/src/view/app/common/DetailPage/style.scss | 2 +- .../view/app/common/ExceptionPage/index.vue | 7 +- .../view/app/common/ExceptionPage/style.scss | 4 +- vue/src/view/example/cool/fluidPage.vue | 2 +- .../component/PanelGroup/PanelGroupItem.vue | 4 +- .../view/system/category/component/List.vue | 16 +- vue/src/view/system/department/indexPage.vue | 16 +- 53 files changed, 1009 insertions(+), 1952 deletions(-) delete mode 100644 vue/public/static/img/403.svg delete mode 100644 vue/public/static/img/404.svg delete mode 100644 vue/public/static/img/500.svg delete mode 100644 vue/src/component/ColorCheckBox/group.vue delete mode 100644 vue/src/component/ColorCheckBox/index.vue create mode 100644 vue/src/component/checkbox/ColorCheckbox.vue create mode 100644 vue/src/component/checkbox/Group.vue create mode 100644 vue/src/component/checkbox/ImgCheckbox.vue create mode 100644 vue/src/component/checkbox/common.js rename vue/src/component/{ContextMenu/index.vue => menu/Contextmenu.vue} (98%) rename vue/src/component/{ContextMenu/item.vue => menu/ContextmenuItem.vue} (87%) create mode 100644 vue/src/component/menu/MenuItem.vue delete mode 100644 vue/src/layout/component/Aside/component/SidebarItem.vue delete mode 100644 vue/src/layout/component/Aside/component/SidebarItemContent.vue create mode 100644 vue/src/layout/component/Header/component/Navbar/component/HeadMenu.vue delete mode 100644 vue/src/layout/component/Header/component/Navbar/component/RootMenu.vue delete mode 100644 vue/src/layout/component/Main/component/Breadcrumb.vue create mode 100644 vue/src/layout/component/Main/component/PageHeader.vue rename vue/src/layout/mixin/{actionOnSelectMenu.js => menu.js} (63%) create mode 100644 vue/src/layout/util.js diff --git a/vue/element-ui-personal/component/Menu/MenuItem.vue b/vue/element-ui-personal/component/Menu/MenuItem.vue index bb0890e..3670ba6 100644 --- a/vue/element-ui-personal/component/Menu/MenuItem.vue +++ b/vue/element-ui-personal/component/Menu/MenuItem.vue @@ -37,10 +37,6 @@ export default { mixins: [MenuMixin, Emitter], - data() { - return {} - }, - props: { index: String, route: [String, Object], diff --git a/vue/element-ui-personal/component/Menu/Submenu.vue b/vue/element-ui-personal/component/Menu/Submenu.vue index fcef7d1..a02e950 100644 --- a/vue/element-ui-personal/component/Menu/Submenu.vue +++ b/vue/element-ui-personal/component/Menu/Submenu.vue @@ -55,16 +55,8 @@ export default { return this.rootMenu.openedMenus.includes(this.index) }, active() { - const items = this.items - - const isActive = Object.keys(items).some(key => items[key].active) - - if (!isActive) { - const submenus = this.submenus - return Object.keys(submenus).some(key => submenus[key].active) - } - - return isActive + const active = Object.values(this.items).some(v => v.active) + return active || Object.values(this.submenus).some(v => v.active) }, mode() { return this.rootMenu.mode @@ -96,26 +88,18 @@ export default { methods: { handleCollapseToggle(value) { - if (value) { - this.initPopper() - } - else { - this.doDestroy() - } + value ? this.initPopper() : this.doDestroy() }, addItem(item) { this.$set(this.items, item.index, item) }, - removeItem(item) { delete this.items[item.index] }, - addSubmenu(item) { this.$set(this.submenus, item.index, item) }, - removeSubmenu(item) { delete this.submenus[item.index] }, @@ -133,42 +117,34 @@ export default { }, handleMouseenter(event, showTimeout = this.showTimeout) { - if (!('ActiveXObject' in window) && event.type === 'focus' && !event.relatedTarget) { return } + const {rootMenu, disabled} = this - if ( - (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal') || - (!rootMenu.collapse && rootMenu.mode === 'vertical') || - disabled - ) { - return - } + + if (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal' + || !rootMenu.collapse && rootMenu.mode === 'vertical' + || disabled) return + this.dispatch('ElSubmenu', 'mouse-enter-child') + clearTimeout(this.timeout) - this.timeout = setTimeout(() => { - this.rootMenu.openMenu(this.index, this.indexPath) - }, showTimeout) + this.timeout = setTimeout(() => this.rootMenu.openMenu(this.index, this.indexPath), showTimeout) - if (this.appendToBody) { - this.$parent.$el.dispatchEvent(new MouseEvent('mouseenter')) - } + this.appendToBody && this.$parent.$el.dispatchEvent(new MouseEvent('mouseenter')) }, handleMouseleave(deepDispatch = false) { const {rootMenu} = this - if ( - (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal') || - (!rootMenu.collapse && rootMenu.mode === 'vertical') - ) { - return - } + + if (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal' + || !rootMenu.collapse && rootMenu.mode === 'vertical') return + this.dispatch('ElSubmenu', 'mouse-leave-child') + clearTimeout(this.timeout) - this.timeout = setTimeout(() => { - !this.mouseInChild && this.rootMenu.closeMenu(this.index) - }, this.hideTimeout) + this.timeout = setTimeout(() => !this.mouseInChild && this.rootMenu.closeMenu(this.index), this.hideTimeout) if (this.appendToBody && deepDispatch) { if (this.$parent.$options.name === 'ElSubmenu') { diff --git a/vue/public/static/img/403.svg b/vue/public/static/img/403.svg deleted file mode 100644 index 610f136..0000000 --- a/vue/public/static/img/403.svg +++ /dev/null @@ -1,508 +0,0 @@ - - - - Group 9 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vue/public/static/img/404.svg b/vue/public/static/img/404.svg deleted file mode 100644 index 5531d05..0000000 --- a/vue/public/static/img/404.svg +++ /dev/null @@ -1,314 +0,0 @@ - - - - Group 4 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vue/public/static/img/500.svg b/vue/public/static/img/500.svg deleted file mode 100644 index de723b1..0000000 --- a/vue/public/static/img/500.svg +++ /dev/null @@ -1,208 +0,0 @@ - - - - Group 4 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vue/src/asset/style/element-ui.scss b/vue/src/asset/style/element-ui.scss index 61eba47..0c1d826 100644 --- a/vue/src/asset/style/element-ui.scss +++ b/vue/src/asset/style/element-ui.scss @@ -102,8 +102,14 @@ width: 0; } - .icon { - margin-right: 16px; + //文字超出截断 + .el-menu-item > span, + .el-submenu__title > span { + display: inline-block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + word-break: break-all; } //子级菜单激活时,父级同样高亮 @@ -120,14 +126,21 @@ //弹出菜单 &.el-menu--popup { max-height: 88vh; + min-width: 160px; + padding: 0; margin-bottom: 0.5vh; overflow-y: overlay; + + .el-menu-item, + .el-submenu__title { + padding: 0 20px; + } } } .el-message { @include deep-shadow; - @include max-mobile-width; + @include max-width-on-mobile; border-width: 0; .el-message__icon, .el-message__content { @@ -154,7 +167,7 @@ .el-message-box { position: relative; @include deep-shadow; - @include max-mobile-width; + @include max-width-on-mobile; } .el-notification { diff --git a/vue/src/asset/style/index.scss b/vue/src/asset/style/index.scss index 947b032..0523620 100644 --- a/vue/src/asset/style/index.scss +++ b/vue/src/asset/style/index.scss @@ -44,7 +44,7 @@ a:hover { } //非移动端的滚动条样式修改 -@media (min-width: 768px) { +@include pc { .scroll-container { &::-webkit-scrollbar { width: 6px; diff --git a/vue/src/asset/style/variables.scss b/vue/src/asset/style/variables.scss index c83d939..e6df623 100644 --- a/vue/src/asset/style/variables.scss +++ b/vue/src/asset/style/variables.scss @@ -1,3 +1,6 @@ +//设定移动端的最大宽度 +$max-mobile-width: 500px; + //覆盖element颜色 $--color-primary: #1890ff; $--color-success: #21BA45; @@ -26,14 +29,29 @@ $--font-path: '~element-ui/lib/theme-chalk/fonts'; box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); } -@mixin max-mobile-width { - @media (max-width: 768px) { +@mixin mobile { + @media (max-width: $max-mobile-width) { + @content + } +} + +@mixin pc { + @media (min-width: $max-mobile-width) { + @content + } +} + +@mixin max-width-on-mobile { + @include mobile { max-width: 384px; } } +//菜单中icon和文字的距离 +$menu-icon-text-gap: 10px; + //侧边菜单icon的大小 -$aside-icon-size: 16px; +$aside-icon-size: 14px; //侧边栏菜单的背景色 $aside-menu-background: #304156; //侧边栏子菜单的背景色 @@ -43,6 +61,11 @@ $aside-menu-item-color: hsla(0, 0%, 99.6%, .65); //侧边栏菜单文字的hover颜色 $aside-menu-item-hover-color: #fefefe; +//顶部菜单文字的颜色 +$head-menu-item-color: #303133; +//顶部菜单文字的hover颜色 +$head-menu-item-hover-color: $--color-primary; + //侧边栏宽度 $aside-width: 208px; //头部导航栏高度 @@ -51,7 +74,7 @@ $nav-height: 50px; $tags-view-height: 40px; //路由页面的margin -$page-view-margin: 15px; +$page-view-margin: 24px; // the :export directive is the magic sauce for webpack // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass diff --git a/vue/src/component/AbstractForm/FormAnchor.vue b/vue/src/component/AbstractForm/FormAnchor.vue index 21ec1d6..b9c668f 100644 --- a/vue/src/component/AbstractForm/FormAnchor.vue +++ b/vue/src/component/AbstractForm/FormAnchor.vue @@ -26,7 +26,7 @@ export default { bounds: {type: Number, default: 0}, getContainer: { type: Function, - default: () => document.querySelector('#app .app-main>.scroll-container') + default: () => document.querySelector('#app .router-main>.scroll-container') }, }, diff --git a/vue/src/component/ColorCheckBox/group.vue b/vue/src/component/ColorCheckBox/group.vue deleted file mode 100644 index 2e57daf..0000000 --- a/vue/src/component/ColorCheckBox/group.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/vue/src/component/ColorCheckBox/index.vue b/vue/src/component/ColorCheckBox/index.vue deleted file mode 100644 index faf8e10..0000000 --- a/vue/src/component/ColorCheckBox/index.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/vue/src/component/checkbox/ColorCheckbox.vue b/vue/src/component/checkbox/ColorCheckbox.vue new file mode 100644 index 0000000..da03afa --- /dev/null +++ b/vue/src/component/checkbox/ColorCheckbox.vue @@ -0,0 +1,29 @@ + + + diff --git a/vue/src/component/checkbox/Group.vue b/vue/src/component/checkbox/Group.vue new file mode 100644 index 0000000..a74066c --- /dev/null +++ b/vue/src/component/checkbox/Group.vue @@ -0,0 +1,24 @@ + + + diff --git a/vue/src/component/checkbox/ImgCheckbox.vue b/vue/src/component/checkbox/ImgCheckbox.vue new file mode 100644 index 0000000..2a2987f --- /dev/null +++ b/vue/src/component/checkbox/ImgCheckbox.vue @@ -0,0 +1,38 @@ + + + diff --git a/vue/src/component/checkbox/common.js b/vue/src/component/checkbox/common.js new file mode 100644 index 0000000..8971c82 --- /dev/null +++ b/vue/src/component/checkbox/common.js @@ -0,0 +1,22 @@ +export default { + props: ['value'], + + computed: { + checked() { + const group = this.$parent + return group && group.value === this.value + } + }, + + methods: { + click() { + if (this.checked) return + this.$parent.$emit('input', this.value) + } + }, + + created() { + const group = this.$parent + group && group.children.push(this.value) + } +} diff --git a/vue/src/component/ContextMenu/index.vue b/vue/src/component/menu/Contextmenu.vue similarity index 98% rename from vue/src/component/ContextMenu/index.vue rename to vue/src/component/menu/Contextmenu.vue index 888800f..ba9a534 100644 --- a/vue/src/component/ContextMenu/index.vue +++ b/vue/src/component/menu/Contextmenu.vue @@ -6,7 +6,7 @@ diff --git a/vue/src/globalMethod/Guide/utils.js b/vue/src/globalMethod/Guide/utils.js index 044bc72..9efd81f 100644 --- a/vue/src/globalMethod/Guide/utils.js +++ b/vue/src/globalMethod/Guide/utils.js @@ -32,8 +32,8 @@ export function getStyleProperty(element, propertyName, prefixVendor = false) { } export function inAppView(element) { - let appView = document.querySelector('.app-main') - if (!appView) throw new Error('app-main未加载') + let appView = document.querySelector('.router-main') + if (!appView) throw new Error('router-main未加载') return appView.contains(element) } diff --git a/vue/src/layout/component/Aside/component/SidebarItem.vue b/vue/src/layout/component/Aside/component/SidebarItem.vue deleted file mode 100644 index ee61402..0000000 --- a/vue/src/layout/component/Aside/component/SidebarItem.vue +++ /dev/null @@ -1,83 +0,0 @@ - diff --git a/vue/src/layout/component/Aside/component/SidebarItemContent.vue b/vue/src/layout/component/Aside/component/SidebarItemContent.vue deleted file mode 100644 index c0c7e6b..0000000 --- a/vue/src/layout/component/Aside/component/SidebarItemContent.vue +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/vue/src/layout/component/Aside/index.vue b/vue/src/layout/component/Aside/index.vue index ba2081d..e61ba65 100644 --- a/vue/src/layout/component/Aside/index.vue +++ b/vue/src/layout/component/Aside/index.vue @@ -1,67 +1,48 @@ diff --git a/vue/src/layout/component/Header/component/Navbar/component/RootMenu.vue b/vue/src/layout/component/Header/component/Navbar/component/RootMenu.vue deleted file mode 100644 index b3890f8..0000000 --- a/vue/src/layout/component/Header/component/Navbar/component/RootMenu.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - 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 201dbd9..11a5e0e 100644 --- a/vue/src/layout/component/Header/component/Navbar/component/SettingDrawer.vue +++ b/vue/src/layout/component/Header/component/Navbar/component/SettingDrawer.vue @@ -3,16 +3,31 @@
主题色
- - - + + +
- 其他设置 -
- {{ name }} - + 导航模式 +
+ + +
+ +
@@ -21,43 +36,77 @@ import client from 'webpack-theme-color-replacer/client' import forElementUI from 'webpack-theme-color-replacer/forElementUI' import {isDev} from '@/config' -import ColorCheckBox from "@/component/ColorCheckBox" -import ColorCheckboxGroup from "@/component/ColorCheckBox/group" +import CheckboxGroup from "@/component/checkbox/Group" +import ColorCheckbox from "@/component/checkbox/ColorCheckbox" +import ImgCheckbox from "@/component/checkbox/ImgCheckbox" import {getters, mutations} from "@/layout/store/setting" -const settings = [ - {name: '显示logo', key: 'showLogo'}, - {name: '显示面包屑', key: 'showBreadcrumb'}, - {name: '使用多页签', key: 'useTagsView'}, - {name: '侧边栏手风琴效果', key: 'sidebarUniqueOpen'}, - {name: '侧边栏折叠', key: 'sidebarCollapse'}, - {name: '折叠菜单显示上级', key: 'sidebarShowParent'}, - {name: '侧边栏自动隐藏', key: 'sidebarAutoHidden'}, - {name: '头部自动隐藏', key: 'headerAutoHidden'}, - {name: '显示返回顶部按钮', key: 'showBackToTop'} -] -const colors = ['#f5222d', '#fa541c', '#fadb14', '#3eaf7c', '#13c2c2', '#1890ff', '#722ed1', '#eb2f96'] - export default { name: "SettingDrawer", - components: {ColorCheckBox, ColorCheckboxGroup}, + components: {CheckboxGroup, ColorCheckbox, ImgCheckbox}, props: {value: Boolean}, data() { return { - settings, - colors, - color: '#1890ff' + colors: ['#f5222d', '#fa541c', '#fadb14', '#3eaf7c', '#13c2c2', '#1890ff', '#722ed1', '#eb2f96'], + navModes: [ + { + title: '侧边栏导航', + value: 'aside', + img: 'https://gw.alipayobjects.com/zos/antfincdn/XwFOFbLkSM/LCkqqYNmvBEbokSDscrm.svg' + }, + { + title: '顶部导航', + value: 'head', + img: 'https://gw.alipayobjects.com/zos/antfincdn/URETY8%24STp/KDNDBbriJhLwuqMoxcAr.svg' + }, + { + title: '混合导航', + value: 'mix', + img: 'https://gw.alipayobjects.com/zos/antfincdn/x8Ob%26B8cy8/LCkqqYNmvBEbokSDscrm.svg' + }, + ], + settings: [ + { + title: '页面设置', + children: [ + {title: '显示logo', key: 'showLogo'}, + {title: '显示页头', key: 'showPageHeader'}, + {title: '使用多页签', key: 'useTagsView'} + ] + }, + { + title: '侧边栏设置', + children: [ + {title: '手风琴效果', key: 'sidebarUniqueOpen'}, + {title: '折叠', key: 'sidebarCollapse'}, + {title: '折叠状态下显示上级', key: 'sidebarShowParent'}, + {title: '自动隐藏', key: 'sidebarAutoHidden'}, + ] + }, + { + title: '其他设置', + children: [ + {title: '显示返回顶部按钮', key: 'showBackToTop'} + ] + } + ] } }, + computed: { + color: () => getters.themeColor, + navMode: () => getters.navMode, + }, + methods: { changeColor(color) { - this.color = color + this.setValue(color,'themeColor') isDev && client.changer.changeColor({newColors: forElementUI.getElementUISeries(color)}) }, + getValue(key) { return getters[key] }, diff --git a/vue/src/layout/component/Header/component/Navbar/index.vue b/vue/src/layout/component/Header/component/Navbar/index.vue index 9eb8c26..1c9c3f9 100644 --- a/vue/src/layout/component/Header/component/Navbar/index.vue +++ b/vue/src/layout/component/Header/component/Navbar/index.vue @@ -1,59 +1,13 @@ - - - diff --git a/vue/src/layout/component/Header/component/Navbar/style.scss b/vue/src/layout/component/Header/component/Navbar/style.scss index 56b0a6f..42783f8 100644 --- a/vue/src/layout/component/Header/component/Navbar/style.scss +++ b/vue/src/layout/component/Header/component/Navbar/style.scss @@ -15,6 +15,7 @@ > div { display: flex; + flex-wrap: nowrap; height: 100%; } @@ -45,3 +46,51 @@ } } } + +//顶部水平菜单 +.el-menu--horizontal .el-menu, +.el-menu--horizontal.el-menu { + font-size: 14px; + + .icon { + font-size: 14px; + } + + //图标和文字的间隔 + .icon + .menu-item-content { + margin-left: $menu-icon-text-gap; + } + + //菜单的文字以及hover颜色 + .el-menu-item, + .el-submenu__title { + color: $head-menu-item-color; + + &:hover { + color: $head-menu-item-hover-color; + } + + > span { + max-width: 100px; + } + } +} + +//顶部菜单的顶级节点 +.el-menu--horizontal.el-menu { + //不显示折叠展开按钮 + > .el-submenu > .el-submenu__title > .el-submenu__icon-arrow { + display: none; + } + + //顶级节点的高度以及hover颜色 + > .el-menu-item, + > .el-submenu > .el-submenu__title { + height: $nav-height; + line-height: $nav-height; + + &:hover { + border-bottom: 2px solid $head-menu-item-hover-color; + } + } +} diff --git a/vue/src/layout/component/Header/component/TagsView/index.vue b/vue/src/layout/component/Header/component/TagsView/index.vue index d953937..8e45ca9 100644 --- a/vue/src/layout/component/Header/component/TagsView/index.vue +++ b/vue/src/layout/component/Header/component/TagsView/index.vue @@ -4,14 +4,14 @@ import decideRouterTransitionMixin from '@/layout/mixin/decideRouterTransition' import {route as routeConfig} from '@/config' import {getters as mainGetters} from "@/layout/store/main" import {getters as tagsViewGetters, mutations as tagsViewMutations} from "@/layout/store/tagsView" -import ContextMenu from "@/component/ContextMenu" -import ContextMenuItem from "@/component/ContextMenu/item" +import Contextmenu from "@/component/menu/Contextmenu" +import ContextmenuItem from "@/component/menu/ContextmenuItem" import ScrollPane from './ScrollPane' export default { mixins: [shortcutMixin, decideRouterTransitionMixin], - components: {ContextMenu, ContextMenuItem, ScrollPane}, + components: {Contextmenu, ContextmenuItem, ScrollPane}, data() { return { @@ -36,9 +36,6 @@ export default { this.decideRouteTransition && this.decideRouteTransition(to, from) this.addTags(to) this.moveToCurrentTag() - }, - 'contextmenu.show'(v) { - this.$emit('menu-show', v) } }, @@ -172,15 +169,15 @@ export default { renderContextmenu(h) { const menu = this.contextmenu return ( - - 刷新 + + 刷新 {!this.isAffix(this.selectedTag) && - this.closeSelectedTag(this.selectedTag)}> + this.closeSelectedTag(this.selectedTag)}> 关闭 - } - 关闭其他 - 关闭全部 - + } + 关闭其他 + 关闭全部 + ) } }, diff --git a/vue/src/layout/component/Header/index.vue b/vue/src/layout/component/Header/index.vue index 39c529e..e60c76a 100644 --- a/vue/src/layout/component/Header/index.vue +++ b/vue/src/layout/component/Header/index.vue @@ -1,5 +1,4 @@ - - diff --git a/vue/src/layout/component/Main/component/PageHeader.vue b/vue/src/layout/component/Main/component/PageHeader.vue new file mode 100644 index 0000000..42affa9 --- /dev/null +++ b/vue/src/layout/component/Main/component/PageHeader.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/vue/src/layout/component/Main/index.vue b/vue/src/layout/component/Main/index.vue index a2b6299..3bfc09d 100644 --- a/vue/src/layout/component/Main/index.vue +++ b/vue/src/layout/component/Main/index.vue @@ -1,45 +1,21 @@ -