From b03c3b154ad64cfb60257fe8233e5c6e15a191cd Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 30 六月 2025 09:57:37 +0800
Subject: [PATCH] 最新版本541200007
---
admin/src/components/common/Menu.vue | 162 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 99 insertions(+), 63 deletions(-)
diff --git a/admin/src/components/common/Menu.vue b/admin/src/components/common/Menu.vue
index d11fb80..02d55e2 100644
--- a/admin/src/components/common/Menu.vue
+++ b/admin/src/components/common/Menu.vue
@@ -1,22 +1,23 @@
<template>
- <div class="menu" :class="{collapse: menuData.collapse}">
- <div class="logo">
- <div><img src="@/assets/logo.png"></div>
- <h1 :class="{hidden: menuData.collapse}">璞嗙背璺宠烦</h1>
- </div>
+ <div class="menu" :class="{ collapse: menuData.collapse }">
<scrollbar>
-<!-- :default-openeds="defaultOpeneds"-->
<el-menu
ref="menu"
- :unique-opened="true"
:default-active="activeIndex"
- text-color="#fff"
- active-text-color="#fff"
+ text-color="#333333"
+ active-text-color="#207FF7"
:collapse="menuData.collapse"
+ :default-openeds="defaultOpeneds"
:collapse-transition="false"
+ unique-opened
@select="handleSelect"
>
- <MenuItems v-for="menu in menuData.list" :key="menu.index" :menu="menu" :is-root-menu="true"/>
+ <MenuItems
+ v-for="menu in menuData.list"
+ :key="menu.index"
+ :menu="menu"
+ :is-root-menu="true"
+ />
</el-menu>
</scrollbar>
</div>
@@ -32,43 +33,63 @@
computed: {
...mapState(['menuData']),
// 閫変腑鐨勮彍鍗昳ndex
- activeIndex () {
+ activeIndex() {
let path = this.$route.path
if (path.endsWith('/')) {
path = path.substring(0, path.length - 1)
}
- const menuConfig = this.__getMenuConfig(path, 'url', this.menuData.list)
+ const menuConfig = this.__getMenuConfig(path, 'index', this.menuData.list)
if (menuConfig == null) {
return null
+ } else {
+ this.$store.commit('pushtags', menuConfig)
}
+ // console.log(menuConfig.index);
return menuConfig.index
},
// 榛樿灞曞紑鐨勮彍鍗昳ndex
- defaultOpeneds () {
- return this.menuData.list.map(menu => menu.index)
+ defaultOpeneds() {
+ // return this.menuData.list.map(menu => menu.index)
+ return [this.menuData.list[0].index]
}
+ },
+ watch: {
+ /* $route (to, from) {
+ var that =this
+ this.$nextTick(() => {
+ setTimeout(function(){ that.computeTableHeight()},1000)
+ })
+ }*/
},
methods: {
// 澶勭悊鑿滃崟閫変腑
- handleSelect (menuIndex) {
+ handleSelect(menuIndex) {
const menuConfig = this.__getMenuConfig(menuIndex, 'index', this.menuData.list)
// 鎵句笉鍒伴〉闈�
try {
require('@/views' + menuConfig.url)
} catch (e) {
this.$tip.error('鏈壘鍒伴〉闈㈡枃浠禓/views' + menuConfig.url + '.vue锛岃妫�鏌ヨ彍鍗曡矾寰勬槸鍚︽纭�')
+ return
}
// 鐐瑰嚮褰撳墠鑿滃崟涓嶅仛澶勭悊
- if (menuConfig.url === this.$route.path) {
+ if (menuConfig.url === this.$route.path && (menuConfig.params == null || menuConfig.params == undefined || menuConfig.params == '' || menuConfig.params === this.$route.query.param)) {
return
}
if (menuConfig.url == null || menuConfig.url.trim().length === 0) {
return
}
- this.$router.push(menuConfig.url)
+ if (menuConfig.params != null && menuConfig.params != '') {
+ // this.$router.push({ path: menuConfig.url, query: { index: menuConfig.index, param: menuConfig.params } })
+ } else {
+ // this.$router.push(menuConfig.url)
+ }
+
+ this.$router.push({ path: menuConfig.url, query: { index: menuConfig.index, param: menuConfig.params, time: (Math.random().toString()) } })
+ this.$store.commit('pushtags', menuConfig)
},
// 鑾峰彇鑿滃崟閰嶇疆
- __getMenuConfig (value, key, menus) {
+ __getMenuConfig(value, key, menus) {
for (const menu of menus) {
if (menu[key] === value) {
return menu
@@ -81,6 +102,49 @@
}
}
return null
+ },
+ computeTableHeight () {
+ this.$nextTick(() => {
+ const height = window.innerHeight
+ // console.log('main_app========================锛�'+height)
+ const height13 = this.getEleHeghtByClassName('common-header',0)
+ const height5 = document.getElementsByTagName('thead') && document.getElementsByTagName('thead')[0] ? document.getElementsByTagName('thead')[0].clientHeight : 0
+ if (document.getElementsByClassName('main_app') && document.getElementsByClassName('main_app')[0]) {
+ // console.log('main_app========================')
+ // alert(height)
+ const height3 = this.getEleHeghtByClassName('main-header',0)
+ const height4 = this.getEleHeghtByClassName('table-pagination',0)
+ const height2 = this.getEleHeghtByClassName('toolbar',0)
+ const height6 = this.getEleHeghtByClassName('doumee-filter',0,16)
+ const height7 = this.getEleHeghtByClassName('pt16',0,0)
+ const height9 = this.getEleHeghtByClassName('static_wrap',0)
+ const height10 = this.getEleHeghtByClassName('query_btns',0)
+ const height11 = this.getEleHeghtByClassName('el-tabs-ele',0)
+ const height12 = this.getEleHeghtByClassName('platgroup_tabs',0)
+ this.$router.app.$store.commit('setTableHeightNew', height - height13- height3 - height5 - height6 - height2 - height7 - height4 - height9 - height10 - height11 - height12)
+ // console.log('gableHeightNew', this.$router.app.$store.state.tableHeightNew)
+ } else {
+ // console.log('tableLayout========================')
+ const height1 = this.getEleHeghtByClassName('table-search-form', 40,16)
+ const height3 = this.getEleHeghtByClassName('main-header', 0)
+ const height4 = this.getEleHeghtByClassName('table-pagination', 0)
+ const height2 = this.getEleHeghtByClassName('toolbar', 0)
+ // console.log('defualtlength', document.getElementsByClassName('table-search-form').length)
+ this.$router.app.$store.commit('setTableHeightNew', height - height4 - height3 - height2 - height1 - height5 - height13)
+ // console.log('gableHeightNew', this.$router.app.$store.state.tableHeightNew)
+ }
+ })
+ },
+ getEleHeghtByClassName (name, dv,margin) {
+ if ((document.getElementsByClassName(name) && document.getElementsByClassName(name)[0])) {
+ let t = 0
+ document.getElementsByClassName(name).forEach(e => {
+ // console.log(name+'========================' + t + ':' + e.clientHeight)
+ t++
+ })
+ return document.getElementsByClassName(name)[document.getElementsByClassName(name).length - 1].clientHeight+(margin||0)
+ }
+ return dv || 0
}
}
}
@@ -92,37 +156,6 @@
height: 100%;
display: flex;
flex-direction: column;
- // LOGO
- .logo {
- height: 60px;
- flex-shrink: 0;
- line-height: 60px;
- overflow: hidden;
- display: flex;
- background: $primary-color - 20;
- padding: 0 16px;
- & > div {
- width: 32px;
- flex-shrink: 0;
- margin-right: 12px;
- img {
- width: 100%;
- flex-shrink: 0;
- vertical-align: middle;
- position: relative;
- top: -2px;
- }
- }
- h1 {
- font-size: 16px;
- font-weight: 500;
- transition: opacity ease .3s;
- overflow: hidden;
- &.hidden {
- opacity: 0;
- }
- }
- }
}
</style>
<style lang="scss">
@@ -131,46 +164,49 @@
.el-menu {
border-right: 0 !important;
user-select: none;
- background: $primary-color !important;
+ background: #fff !important;
.el-menu-item {
- background: $primary-color;
+ background: #fff;
+ height: 48px;
+ line-height: 48px;
// 閫変腑鐘舵��
&.is-active {
- background: $primary-color - 40 !important;
+ background: #eff5fe !important;
}
// 鎮诞
&:hover {
- background-color: $primary-color - 12;
+ background-color: #eff5fe;
}
&:focus {
- background: $primary-color;
+ background: #eff5fe;
}
}
// 瀛愯彍鍗�
.el-submenu {
- .el-submenu__title{
- background-color: $primary-color;
+ .el-submenu__title {
+ background-color: #fff;
}
&.is-active {
- .el-submenu__title{
- background-color: $primary-color - 20;
+ .el-submenu__title {
+ background-color: #fff;
}
- .el-menu .el-menu-item{
- background-color: $primary-color - 20;
+ .el-menu .el-menu-item {
+ background-color: #fff;
// 鎮诞
&:hover {
- background-color: $primary-color - 30;
+ background-color: #eff5fe;
}
}
}
// 鑿滃崟涓婁笅绠ご
.el-submenu__title i {
- color: #f7f7f7;
+ color: #979797;
+ font-size: 14px;
}
}
// 鑿滃崟鍥炬爣
i:not(.el-submenu__icon-arrow) {
- color: #f7f7f7 !important;
+ color: #333333 !important;
position: relative;
top: -1px;
// 鑷畾涔夊浘鏍�
--
Gitblit v1.9.3