Skip to content

Commit 6f1cb76

Browse files
committed
读取菜单
1 parent a81eb3a commit 6f1cb76

File tree

5 files changed

+66
-30
lines changed

5 files changed

+66
-30
lines changed

build/webpack.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const webpackConfig = {
1919
vue$: 'vue/dist/vue.esm.js',
2020
components: path.join(__dirname, '../src/components'),
2121
pages: path.join(__dirname, '../src/pages'),
22+
localData: path.join(__dirname, '../src/testdata/localdata'),
2223
jquery: path.join(__dirname, '../node_modules/jquery/dist/jquery.min.js')
2324
}
2425
},

build/webpack.dist.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const webpackConfig = {
2323
vue$: 'vue/dist/vue.esm.js',
2424
components: path.join(__dirname, '../src/components'),
2525
pages: path.join(__dirname, '../src/pages'),
26+
localData: path.join(__dirname, '../src/testdata/localdata'),
2627
jquery: path.join(__dirname, '../node_modules/jquery/dist/jquery.min.js')
2728
}
2829
},

src/components/layout.vue

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,37 @@
88
<el-aside width="200px">
99
<el-row class="tac">
1010
<el-col :span="24">
11-
<el-menu
12-
:default-active="defaultActive"
13-
class="el-menu-vertical-demo"
14-
@open="handleOpen"
15-
@close="handleClose"
16-
background-color="#383a4b"
17-
text-color="#fff"
18-
active-text-color="#ffd04b"
19-
:router="true">
20-
<el-menu-item index="item1">
21-
<i class="el-icon-menu"></i>
22-
<span slot="title">导航一</span>
23-
</el-menu-item>
24-
<el-menu-item index="item2">
25-
<i class="el-icon-setting"></i>
26-
<span slot="title">导航二</span>
27-
</el-menu-item>
28-
<el-submenu index="item3">
29-
<template slot="title">
30-
<i class="el-icon-location"></i>
31-
<span>导航三</span>
11+
<template v-if="menuList.length">
12+
<el-menu
13+
:default-active="defaultActive"
14+
class="el-menu-vertical-demo"
15+
@open="handleOpen"
16+
@close="handleClose"
17+
background-color="#383a4b"
18+
text-color="#fff"
19+
active-text-color="#ffd04b"
20+
:router="true">
21+
<template v-for="item in menuList">
22+
<template v-if="item.sub">
23+
<el-submenu :index="item.key" :key="item.key">
24+
<template slot="title">
25+
<i class="el-icon-location"></i>
26+
<span>{{ item.name }}</span>
27+
</template>
28+
<el-menu-item v-for="subItem in item.sub" :index="subItem.key" :key="subItem.key">
29+
{{ subItem.name }}
30+
</el-menu-item>
31+
</el-submenu>
32+
</template>
33+
<template v-else>
34+
<el-menu-item :index="item.key" :key="item.key">
35+
<i class="el-icon-menu"></i>
36+
<span slot="title">{{ item.name }}</span>
37+
</el-menu-item>
38+
</template>
3239
</template>
33-
<el-menu-item index="item3-1">选项1</el-menu-item>
34-
<el-menu-item index="item3-2">选项2</el-menu-item>
35-
</el-submenu>
36-
</el-menu>
40+
</el-menu>
41+
</template>
3742
</el-col>
3843
</el-row>
3944
</el-aside>
@@ -49,16 +54,19 @@
4954
</template>
5055

5156
<script>
57+
import menus from 'localData/menulist.json';
58+
5259
export default {
5360
name: 'layout',
5461
data() {
5562
return {
56-
defaultActive: 'item1'
63+
defaultActive: 'item1',
64+
menuList: menus.list
5765
};
5866
},
5967
6068
created() {
61-
this.defaultActive = this.$route.path.split('/')[1];
69+
this.defaultActive = this.$route.path.split('/')[1] ? this.$route.path.split('/')[1] : 'item1';
6270
},
6371
mounted() {
6472
const layoutMain = $('.el-main');

src/pages/item1/item1.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
</template>
88

99
<script>
10-
import Layout from 'components/layout'
10+
import Layout from 'components/layout';
1111
1212
export default {
1313
components: {
1414
Layout
1515
}
16-
}
17-
</script>
16+
};
17+
</script>

src/testdata/localdata/menulist.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"result": 0,
3+
"list": [
4+
{
5+
"key": "item1",
6+
"name": "导航一"
7+
},
8+
{
9+
"key": "item2",
10+
"name": "导航二"
11+
},
12+
{
13+
"key": "item3",
14+
"name": "导航三",
15+
"sub": [
16+
{
17+
"key": "item3-1",
18+
"name": "选项1"
19+
}, {
20+
"key": "item3-2",
21+
"name": "选项2"
22+
}
23+
]
24+
}
25+
]
26+
}

0 commit comments

Comments
 (0)