This commit is contained in:
sakuya 2021-06-06 22:54:59 +08:00
parent d82d5ebe7f
commit b4c2d0d79c
8 changed files with 53 additions and 10 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "SCUI-Admin", "name": "SCUI-Admin",
"version": "1.1.4", "version": "1.1.5",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",

View File

@ -3,7 +3,7 @@ const DEFAULT_CONFIG = {
APP_NAME: "SCUI", APP_NAME: "SCUI",
//版本号 //版本号
APP_VER: "1.1.4", APP_VER: "1.1.5",
//接口地址 //接口地址
API_URL: "", API_URL: "",

View File

@ -3,14 +3,14 @@
<el-alert title="无子集菜单" center type="info" :closable="false"></el-alert> <el-alert title="无子集菜单" center type="info" :closable="false"></el-alert>
</div> </div>
<template v-for="navMenu in navMenus" v-bind:key="navMenu"> <template v-for="navMenu in navMenus" v-bind:key="navMenu">
<el-menu-item v-if="!navMenu.children" :index="navMenu.path"> <el-menu-item v-if="!hasChildren(navMenu)" :index="navMenu.path">
<a v-if="navMenu.meta&&navMenu.meta.type=='link'" :href="navMenu.path" target="_blank" @click.stop='a'></a> <a v-if="navMenu.meta&&navMenu.meta.type=='link'" :href="navMenu.path" target="_blank" @click.stop='a'></a>
<i v-if="navMenu.meta&&navMenu.meta.icon" :class="navMenu.meta.icon || 'el-icon-menu'"></i> <i v-if="navMenu.meta&&navMenu.meta.icon" :class="navMenu.meta.icon || 'el-icon-menu'"></i>
<template #title> <template #title>
<span>{{navMenu.meta.title}}</span> <span>{{navMenu.meta.title}}</span>
</template> </template>
</el-menu-item> </el-menu-item>
<el-submenu v-if="navMenu.children" :index="navMenu.path"> <el-submenu v-else :index="navMenu.path">
<template #title> <template #title>
<i v-if="navMenu.meta&&navMenu.meta.icon" :class="navMenu.meta.icon || 'el-icon-menu'"></i> <i v-if="navMenu.meta&&navMenu.meta.icon" :class="navMenu.meta.icon || 'el-icon-menu'"></i>
<span>{{navMenu.meta.title}}</span> <span>{{navMenu.meta.title}}</span>
@ -28,7 +28,18 @@
return {} return {}
}, },
methods: { methods: {
a(){} a(){},
hasChildren(item){
var flag = true
if (item.children) {
if (item.children.every(item => item.meta.hidden)){
flag = false
}
}else{
flag = false
}
return flag;
}
} }
} }
</script> </script>

View File

@ -5,9 +5,11 @@
<i class="el-icon-s-fold"></i> <i class="el-icon-s-fold"></i>
</div> </div>
<el-breadcrumb separator-class="el-icon-arrow-right" class="hidden-sm-and-down"> <el-breadcrumb separator-class="el-icon-arrow-right" class="hidden-sm-and-down">
<template v-for="(item) in breadList" v-bind:key="item" > <transition-group name="breadcrumb" mode="out-in">
<el-breadcrumb-item v-if="item.path !='/'">{{item.meta.title}}</el-breadcrumb-item> <template v-for="item in breadList" :key="item.meta.title" >
</template> <el-breadcrumb-item v-if="item.path!='/' && !item.meta.hiddenBreadcrumb" :key="item.meta.title">{{item.meta.title}}</el-breadcrumb-item>
</template>
</transition-group>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<div class="center-panel"></div> <div class="center-panel"></div>
@ -40,3 +42,9 @@
} }
} }
</script> </script>
<style scoped>
.breadcrumb-enter-active,.breadcrumb-leave-active {transition: all 0.3s;}
.breadcrumb-enter-from,.breadcrumb-leave-active {opacity: 0;transform: translateX(20px);}
.breadcrumb-leave-active {position: absolute;}
</style>

View File

@ -24,7 +24,7 @@
<h2>{{ pmenu.meta.title }}</h2> <h2>{{ pmenu.meta.title }}</h2>
</div> </div>
<div class="adminui-side-scroll"> <div class="adminui-side-scroll">
<el-menu :default-active="$route.fullPath" router :collapse="menuIsCollapse"> <el-menu :default-active="$route.meta.active || $route.fullPath" router :collapse="menuIsCollapse">
<NavMenu :navMenus="nextMenu"></NavMenu> <NavMenu :navMenus="nextMenu"></NavMenu>
</el-menu> </el-menu>
</div> </div>
@ -59,7 +59,7 @@
<h2>{{ pmenu.meta.title }}</h2> <h2>{{ pmenu.meta.title }}</h2>
</div> </div>
<div class="adminui-side-scroll"> <div class="adminui-side-scroll">
<el-menu :default-active="$route.fullPath" router :collapse="menuIsCollapse"> <el-menu :default-active="$route.meta.active || $route.fullPath" router :collapse="menuIsCollapse">
<NavMenu :navMenus="nextMenu"></NavMenu> <NavMenu :navMenus="nextMenu"></NavMenu>
</el-menu> </el-menu>
</div> </div>

View File

@ -140,6 +140,7 @@ function filterAsyncRouter(routerMap) {
path: item.path, path: item.path,
name: item.name, name: item.name,
meta: item.meta, meta: item.meta,
redirect: item.redirect,
children: item.children ? filterAsyncRouter(item.children) : null, children: item.children ? filterAsyncRouter(item.children) : null,
component: loadComponent(item.component) component: loadComponent(item.component)
} }

View File

@ -22,6 +22,19 @@
data() { data() {
return { return {
activities: [ activities: [
{
content: [
"[新增] 统计列表、日历计划模板",
"[新增] 表单表格组件",
"[新增] 面包屑动画",
"[新增] 路由meta.active属性",
"[新增] 路由meta.hiddenBreadcrumb属性",
"[新增] 路由redirect属性",
"[优化] 子菜单隐藏无效",
"[修复] scEcharts动画失效"
],
timestamp: '2021-06-06'
},
{ {
content: [ content: [
"[优化] 代码生成器重构移位" "[优化] 代码生成器重构移位"

View File

@ -29,12 +29,20 @@
<el-form-item label="路由地址" prop="path"> <el-form-item label="路由地址" prop="path">
<el-input v-model="form.path" clearable placeholder=""></el-input> <el-input v-model="form.path" clearable placeholder=""></el-input>
</el-form-item> </el-form-item>
<el-form-item label="重定向" prop="redirect">
<el-input v-model="form.redirect" clearable placeholder=""></el-input>
</el-form-item>
<el-form-item label="菜单高亮" prop="active">
<el-input v-model="form.active" clearable placeholder=""></el-input>
<div class="el-form-item-msg">子节点或详情页需要高亮的上级菜单路由地址</div>
</el-form-item>
<el-form-item label="视图" prop="component"> <el-form-item label="视图" prop="component">
<el-autocomplete v-model="form.component" :fetch-suggestions="querySearch" :debounce="10" clearable placeholder=""></el-autocomplete> <el-autocomplete v-model="form.component" :fetch-suggestions="querySearch" :debounce="10" clearable placeholder=""></el-autocomplete>
<div class="el-form-item-msg">如父节点链接或Iframe等没有视图的菜单不需要填写</div> <div class="el-form-item-msg">如父节点链接或Iframe等没有视图的菜单不需要填写</div>
</el-form-item> </el-form-item>
<el-form-item label="是否隐藏" prop="meta.hidden"> <el-form-item label="是否隐藏" prop="meta.hidden">
<el-checkbox v-model="form.meta.hidden">隐藏菜单</el-checkbox> <el-checkbox v-model="form.meta.hidden">隐藏菜单</el-checkbox>
<el-checkbox v-model="form.meta.hiddenBreadcrumb">隐藏面包屑</el-checkbox>
<div class="el-form-item-msg">菜单不显示在导航中但用户依然可以访问例如详情页</div> <div class="el-form-item-msg">菜单不显示在导航中但用户依然可以访问例如详情页</div>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -59,9 +67,11 @@
name: "", name: "",
path: "", path: "",
component: "", component: "",
redirect: "",
meta:{ meta:{
title: "", title: "",
icon: "", icon: "",
active: "",
type: "menu" type: "menu"
} }
}, },