From 38d11c5d99a78a7c65ccb2b24d6f49b97f9c0fdd Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期五, 17 六月 2022 17:27:15 +0800
Subject: [PATCH] 1..完成基础设置:用户清单列表查询、新增、编辑、删除 功能开发
---
src/layout/components/Sidebar/index.vue | 121 ++++++++++++++++++++++++++++++----------
1 files changed, 91 insertions(+), 30 deletions(-)
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
index 027d1b2..6674620 100644
--- a/src/layout/components/Sidebar/index.vue
+++ b/src/layout/components/Sidebar/index.vue
@@ -2,7 +2,7 @@
<div :class="{'has-logo':showLogo}">
<logo v-if="showLogo" :collapse="isCollapse" />
- <el-scrollbar wrap-class="scrollbar-wrapper" style="margin-top:56px">
+ <el-scrollbar wrap-class="scrollbar-wrapper" style="margin-top:56px;height: 85%">
<el-menu
:default-active="activeMenu"
:collapse="isCollapse"
@@ -13,19 +13,21 @@
:collapse-transition="false"
mode="vertical"
>
- <!-- <sidebar-item-->
- <!-- v-for="route in routes"-->
- <!-- :key="route.path"-->
- <!-- class="el-scrollbar-menu"-->
- <!-- :item="route"-->
- <!-- :base-path="route.path"-->
- <!-- />-->
- <sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path" />
+ <sidebar-item
+ v-for="route in routes"
+ :key="route.path"
+ class="el-scrollbar-menu"
+ :item="route"
+ :base-path="route.path"
+ />
+ <!-- <sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path" />-->
</el-menu>
</el-scrollbar>
- <div style="position: absolute;bottom: 10px;left: 30px;">
- <div><el-button type="text">鏂板嚡杩埗閫燰1.0.01</el-button></div>
+ <div style="position: absolute;bottom: 20px;left: 30px;">
+ <div>
+ <el-button type="text">鏂板嚡杩埗閫燰1.0.01</el-button>
+ </div>
</div>
</div>
@@ -36,16 +38,69 @@
import Logo from './Logo'
import SidebarItem from './SidebarItem'
import variables from '@/styles/variables.scss'
+import { LoginMenu } from '@/api/user'
export default {
components: { SidebarItem, Logo },
+ data() {
+ return {
+ routers: []
+ }
+ },
+ async created() {
+ const { data: res } = await LoginMenu()
+ this.routers = res
+ this.routers.unshift({ code: '1000', name: '绯荤粺璁剧疆' })
+ },
computed: {
...mapGetters([
'permission_routes',
'sidebar'
]),
routes() {
- return this.$router.options.routes
+ const newCodeArr = []
+ const newCodeNameArr = []
+ this.routers.forEach(item => {
+ if (item.code) {
+ newCodeArr.push(item.code)
+ newCodeNameArr.push({ code: item.code, title: item.name })
+ if (item.children) {
+ item.children.forEach(it => {
+ if (it.code) {
+ newCodeArr.push(it.code)
+ newCodeNameArr.push({ code: it.code, title: it.name })
+ }
+ })
+ }
+ }
+ })
+ const arr = this.$router.options.routes
+ const arr2 = []
+ arr.forEach((item, index) => {
+ if (newCodeArr.includes(item.code) && item.children.length === 1) {
+ arr2.push(item)
+ } else if (newCodeArr.includes(item.code) && item.children.length > 1) {
+ newCodeNameArr.forEach(it1 => { // 鏇挎崲鎺ュ彛涓殑name涓鸿彍鍗曞悕绉�
+ if (it1.code === item.code) {
+ item.meta.title = it1.title
+ }
+ })
+ const a = []
+ item.children.forEach((it2, ind) => { // 閬嶅巻
+ if (newCodeArr.includes(it2.code)) {
+ newCodeNameArr.forEach(it1 => { // 鏇挎崲鎺ュ彛涓殑name涓鸿彍鍗曞悕绉�
+ if (it2.code === it1.code) {
+ it2.meta.title = it1.title
+ }
+ })
+ a.push(it2)
+ }
+ })
+ item.children = a
+ arr2.push(item)
+ }
+ })
+ return arr2
},
activeMenu() {
const route = this.$route
@@ -69,45 +124,51 @@
}
</script>
<style lang="scss">
-.el-button--text, .el-button--text.is-disabled, .el-button--text.is-disabled:focus, .el-button--text.is-disabled:hover, .el-button--text:active{
- color: white ;
- font-size: 18px ;
+$main_color: #42b983;
+.el-button--text, .el-button--text.is-disabled, .el-button--text.is-disabled:focus, .el-button--text.is-disabled:hover, .el-button--text:active {
+ color: white;
+ font-size: 18px;
}
+
#app .sidebar-container .el-submenu .el-menu-item {
background-color: transparent !important;
}
-#app .sidebar-container .el-submenu .el-menu-item.is-active{
- background: #42b983 !important;
+#app .sidebar-container .el-submenu .el-menu-item.is-active {
+ background: $main_color !important;
color: #fff !important;
}
-#app .sidebar-container .el-submenu .el-menu-item:hover{
- background: #42b983 !important;
+
+#app .sidebar-container .el-submenu .el-menu-item:hover {
+ background: $main_color !important;
//color: #fff !important;
}
-.el-submenu__title{
+.el-submenu__title {
font-weight: bolder;
}
-.sub-el-icon::before{
- color: #42b983;
+.sub-el-icon::before {
+ color: $main_color;
}
-.svg-icon{
- color: #42b983;
+
+.svg-icon {
+ color: $main_color;
}
-.submenu-title-noDropdown{
+
+.submenu-title-noDropdown {
font-weight: bolder;
}
-.router-link-exact-active>.submenu-title-noDropdown{
- color: #42b983 !important;
+
+.router-link-exact-active > .submenu-title-noDropdown {
+ color: $main_color !important;
}
-.el-menu-item.is-active{
- color: #42b983 !important;
+.el-menu-item.is-active {
+ color: $main_color !important;
}
-.el-button--text:hover{
+.el-button--text:hover {
color: #ffffff;
cursor: default;
}
--
Gitblit v1.9.3