From b87e45ce32cd0e8e7476773d289dc3ad2601e711 Mon Sep 17 00:00:00 2001
From: 抓蛙师 <770492966@qq.com>
Date: 星期六, 18 十二月 2021 16:07:24 +0800
Subject: [PATCH] 自动生成代码未引入此依赖 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
---
ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue | 193 +++++++++++++++++++++++++-----------------------
1 files changed, 100 insertions(+), 93 deletions(-)
diff --git a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue b/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
index 1ca89d2..4853fbb 100644
--- a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
+++ b/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
@@ -1,93 +1,100 @@
-<template>
- <div v-if="!item.hidden" class="menu-wrapper">
- <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
- <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)">
- <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
- <item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
- </el-menu-item>
- </app-link>
- </template>
-
- <el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
- <template slot="title">
- <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
- </template>
- <sidebar-item
- v-for="child in item.children"
- :key="child.path"
- :is-nest="true"
- :item="child"
- :base-path="resolvePath(child.path)"
- class="nest-menu"
- />
- </el-submenu>
- </div>
-</template>
-
-<script>
-import path from 'path'
-import { isExternal } from '@/utils/validate'
-import Item from './Item'
-import AppLink from './Link'
-import FixiOSBug from './FixiOSBug'
-
-export default {
- name: 'SidebarItem',
- components: { Item, AppLink },
- mixins: [FixiOSBug],
- props: {
- // route object
- item: {
- type: Object,
- required: true
- },
- isNest: {
- type: Boolean,
- default: false
- },
- basePath: {
- type: String,
- default: ''
- }
- },
- data() {
- this.onlyOneChild = null
- return {}
- },
- methods: {
- hasOneShowingChild(children = [], parent) {
- const showingChildren = children.filter(item => {
- if (item.hidden) {
- return false
- } else {
- // Temp set(will be used if only has one showing child)
- this.onlyOneChild = item
- return true
- }
- })
-
- // When there is only one child router, the child router is displayed by default
- if (showingChildren.length === 1) {
- return true
- }
-
- // Show parent if there are no child router to display
- if (showingChildren.length === 0) {
- this.onlyOneChild = { ... parent, path: '', noShowingChildren: true }
- return true
- }
-
- return false
- },
- resolvePath(routePath) {
- if (isExternal(routePath)) {
- return routePath
- }
- if (isExternal(this.basePath)) {
- return this.basePath
- }
- return path.resolve(this.basePath, routePath)
- }
- }
-}
-</script>
+<template>
+ <div v-if="!item.hidden">
+ <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
+ <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
+ <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
+ <item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
+ </el-menu-item>
+ </app-link>
+ </template>
+
+ <el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
+ <template slot="title">
+ <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
+ </template>
+ <sidebar-item
+ v-for="child in item.children"
+ :key="child.path"
+ :is-nest="true"
+ :item="child"
+ :base-path="resolvePath(child.path)"
+ class="nest-menu"
+ />
+ </el-submenu>
+ </div>
+</template>
+
+<script>
+import path from 'path'
+import { isExternal } from '@/utils/validate'
+import Item from './Item'
+import AppLink from './Link'
+import FixiOSBug from './FixiOSBug'
+
+export default {
+ name: 'SidebarItem',
+ components: { Item, AppLink },
+ mixins: [FixiOSBug],
+ props: {
+ // route object
+ item: {
+ type: Object,
+ required: true
+ },
+ isNest: {
+ type: Boolean,
+ default: false
+ },
+ basePath: {
+ type: String,
+ default: ''
+ }
+ },
+ data() {
+ this.onlyOneChild = null
+ return {}
+ },
+ methods: {
+ hasOneShowingChild(children = [], parent) {
+ if (!children) {
+ children = [];
+ }
+ const showingChildren = children.filter(item => {
+ if (item.hidden) {
+ return false
+ } else {
+ // Temp set(will be used if only has one showing child)
+ this.onlyOneChild = item
+ return true
+ }
+ })
+
+ // When there is only one child router, the child router is displayed by default
+ if (showingChildren.length === 1) {
+ return true
+ }
+
+ // Show parent if there are no child router to display
+ if (showingChildren.length === 0) {
+ this.onlyOneChild = { ... parent, path: '', noShowingChildren: true }
+ return true
+ }
+
+ return false
+ },
+ resolvePath(routePath, routeQuery) {
+ if (isExternal(routePath)) {
+ return routePath
+ }
+ if (isExternal(this.basePath)) {
+ return this.basePath
+ }
+ if (routeQuery) {
+ let query = JSON.parse(routeQuery);
+ return { path: path.resolve(this.basePath, routePath), query: query }
+ }
+ return path.resolve(this.basePath, routePath)
+ }
+ }
+}
+</script>
--
Gitblit v1.9.3