张恒

更新路由参数

...@@ -37,7 +37,8 @@ npm test ...@@ -37,7 +37,8 @@ npm test
37 这是花裤衩大大原本的[地址](https://github.com/PanJiaChen/electron-vue-admin) 37 这是花裤衩大大原本的[地址](https://github.com/PanJiaChen/electron-vue-admin)
38 38
39 # 更新日志 39 # 更新日志
40 -- 2019年8月12日更新:添加一个新分支,该新分支后续将会持续保持ELECTRON(包括其对应的辅助组件)的版本处于最新状态,去除了单元测试和一些无用的文件。 40 +- 2019年8月12日更新:添加一个新分支,该新分支后续将会持续保持ELECTRON(包括其对应的辅助组件)的版本处于最新状态,去除了单元测试和一些无用的文件。master分支中则是为路由添加新参数具体
41 +用途,详看路由中的注释
41 - 2019年8月10日更新:添加各个平台的build脚本,当您直接使用build时,则会打包您当前操作系统对应的安装包,mac需要在macos上才能进行打包,而linux打包win的话,需要wine的支持,否则会失败 42 - 2019年8月10日更新:添加各个平台的build脚本,当您直接使用build时,则会打包您当前操作系统对应的安装包,mac需要在macos上才能进行打包,而linux打包win的话,需要wine的支持,否则会失败
42 - 2019年8月4日更新:修正原webpack配置中没有将config注入的小问题,添加了拦截实例,修改了侧栏,侧栏需要底色的请勿更新,此更新可能会导致侧栏底色无法完全覆盖(待修正),添加axios接口示例,待测。 43 - 2019年8月4日更新:修正原webpack配置中没有将config注入的小问题,添加了拦截实例,修改了侧栏,侧栏需要底色的请勿更新,此更新可能会导致侧栏底色无法完全覆盖(待修正),添加axios接口示例,待测。
43 - 2019年8月1日更新:将node-sass版本更新至最新版本,尝试修正由于nodejs环境是12版导致失败(注意!此次更新可能会导致32位系统或者nodejs版本低于10的用户安装依赖报错)去除路由表中重复路由,解决控制台无端报错问题。 44 - 2019年8月1日更新:将node-sass版本更新至最新版本,尝试修正由于nodejs环境是12版导致失败(注意!此次更新可能会导致32位系统或者nodejs版本低于10的用户安装依赖报错)去除路由表中重复路由,解决控制台无端报错问题。
...\ No newline at end of file ...\ No newline at end of file
......
1 <template> 1 <template>
2 <div v-if="!item.hidden&&item.children" class="menu-wrapper"> 2 <div v-if="!item.hidden&&item.children" class="menu-wrapper">
3 - <router-link 3 +
4 - v-if="hasOneShowingChild(item.children) && !onlyOneChild.children&&!item.alwaysShow" 4 + <div v-if="item.onlyShowfirst">
5 - :to="resolvePath(onlyOneChild.path)" 5 + <router-link
6 - > 6 + v-if="OneShowingChild(item.children[0]) && !onlyOneChild.children&&!item.alwaysShow"
7 - <el-menu-item 7 + :to="resolvePath(onlyOneChild.path)"
8 - :index="resolvePath(onlyOneChild.path)"
9 - :class="{'submenu-title-noDropdown':!isNest}"
10 > 8 >
11 - <svg-icon 9 + <el-menu-item
12 - v-if="onlyOneChild.meta&&onlyOneChild.meta.icon" 10 + :index="resolvePath(onlyOneChild.path)"
13 - :icon-class="onlyOneChild.meta.icon" 11 + :class="{'submenu-title-noDropdown':!isNest}"
14 - ></svg-icon> 12 + >
15 - <span 13 + <svg-icon
16 - v-if="onlyOneChild.meta&&onlyOneChild.meta.title" 14 + v-if="onlyOneChild.meta&&onlyOneChild.meta.icon"
17 - slot="title" 15 + :icon-class="onlyOneChild.meta.icon"
18 - >{{onlyOneChild.meta.title}}</span> 16 + ></svg-icon>
19 - </el-menu-item> 17 + <span
20 - </router-link> 18 + v-if="onlyOneChild.meta&&onlyOneChild.meta.title"
19 + slot="title"
20 + >{{onlyOneChild.meta.title}}</span>
21 + </el-menu-item>
22 + </router-link>
23 + </div>
21 24
22 - <el-submenu v-else :index="item.name||item.path"> 25 + <div v-else>
23 - <template slot="title"> 26 + <router-link
24 - <svg-icon v-if="item.meta&&item.meta.icon" :icon-class="item.meta.icon"></svg-icon> 27 + v-if="hasOneShowingChild(item.children) && !onlyOneChild.children&&!item.alwaysShow"
25 - <span v-if="item.meta&&item.meta.title" slot="title">{{item.meta.title}}</span> 28 + :to="resolvePath(onlyOneChild.path)"
26 - </template> 29 + >
30 + <el-menu-item
31 + :index="resolvePath(onlyOneChild.path)"
32 + :class="{'submenu-title-noDropdown':!isNest}"
33 + >
34 + <svg-icon
35 + v-if="onlyOneChild.meta&&onlyOneChild.meta.icon"
36 + :icon-class="onlyOneChild.meta.icon"
37 + ></svg-icon>
38 + <span
39 + v-if="onlyOneChild.meta&&onlyOneChild.meta.title"
40 + slot="title"
41 + >{{onlyOneChild.meta.title}}</span>
42 + </el-menu-item>
43 + </router-link>
44 +
45 + <el-submenu v-else :index="item.name||item.path">
46 + <template slot="title">
47 + <svg-icon v-if="item.meta&&item.meta.icon" :icon-class="item.meta.icon"></svg-icon>
48 + <span v-if="item.meta&&item.meta.title" slot="title">{{item.meta.title}}</span>
49 + </template>
27 50
28 - <template v-for="child in item.children" v-if="!child.hidden"> 51 + <template v-for="child in item.children" v-if="!child.hidden">
29 - <sidebar-item 52 + <sidebar-item
30 - :is-nest="true" 53 + :is-nest="true"
31 - class="nest-menu" 54 + class="nest-menu"
32 - v-if="child.children&&child.children.length>0" 55 + v-if="child.children&&child.children.length>0"
33 - :item="child" 56 + :item="child"
34 - :key="child.path" 57 + :key="child.path"
35 - :base-path="resolvePath(child.path)" 58 + :base-path="resolvePath(child.path)"
36 - ></sidebar-item> 59 + ></sidebar-item>
37 60
38 - <router-link v-else :to="resolvePath(child.path)" :key="child.name"> 61 + <router-link v-else :to="resolvePath(child.path)" :key="child.name">
39 - <el-menu-item :index="resolvePath(child.path)"> 62 + <el-menu-item :index="resolvePath(child.path)">
40 - <svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"></svg-icon> 63 + <svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"></svg-icon>
41 - <span v-if="child.meta&&child.meta.title" slot="title">{{child.meta.title}}</span> 64 + <span v-if="child.meta&&child.meta.title" slot="title">{{child.meta.title}}</span>
42 - </el-menu-item> 65 + </el-menu-item>
43 - </router-link> 66 + </router-link>
44 - </template> 67 + </template>
45 - </el-submenu> 68 + </el-submenu>
69 + </div>
46 </div> 70 </div>
47 </template> 71 </template>
48 72
...@@ -88,6 +112,10 @@ export default { ...@@ -88,6 +112,10 @@ export default {
88 }, 112 },
89 resolvePath(...paths) { 113 resolvePath(...paths) {
90 return path.resolve(this.basePath, ...paths); 114 return path.resolve(this.basePath, ...paths);
115 + },
116 + OneShowingChild(children) {
117 + this.onlyOneChild = children;
118 + return true;
91 } 119 }
92 } 120 }
93 }; 121 };
......
...@@ -18,6 +18,7 @@ const Notfound = () => import('@/views/404') ...@@ -18,6 +18,7 @@ const Notfound = () => import('@/views/404')
18 * hidden: true 如果在模板中使用该选项,则不会在侧栏显示该路由(例如:Dashboard),如果是在第一个子路由中使用,侧栏则只显示第一个子路由的名字和图标(例如: Form) 18 * hidden: true 如果在模板中使用该选项,则不会在侧栏显示该路由(例如:Dashboard),如果是在第一个子路由中使用,侧栏则只显示第一个子路由的名字和图标(例如: Form)
19 * alwaysShow: true 如果设置为true它则会始终显示根菜单,无视自路由长度,没有设置的话,就会折叠起来(不清楚为什么没有作用,可能是我写错位置了?) 19 * alwaysShow: true 如果设置为true它则会始终显示根菜单,无视自路由长度,没有设置的话,就会折叠起来(不清楚为什么没有作用,可能是我写错位置了?)
20 * redirect: noredirect 若设置为noredirect则顶部面包屑不能够为其重定向. 20 * redirect: noredirect 若设置为noredirect则顶部面包屑不能够为其重定向.
21 + * onlyShowfirst: false 若该设置为true时,将会无视其有多少个孩子路由,只会显示第一个子路由并将其设置为根菜单
21 * name:'router-name' 路由名称,此项为必须填写项 22 * name:'router-name' 路由名称,此项为必须填写项
22 * meta : { 23 * meta : {
23 title: 'title' 这里的名字决定了面包屑和侧栏的名字 24 title: 'title' 这里的名字决定了面包屑和侧栏的名字
......