1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
| <template>
| <div style="display: inline-block">
| <Menu
| :theme="theme"
| mode="horizontal"
| :active-name="currNav"
| @on-select="selectNav"
| >
| <MenuItem
| v-for="(item, i) in navList.slice(0, sliceNum)"
| :key="i"
| :name="item.name"
| >
| <Badge :dot="item.component == 'hot'" :offset="[20, 0]">
| <XIcon :type="item.icon" v-if="showIcon" />
| {{ item.title }}
| </Badge>
| </MenuItem>
| <Submenu name="sub" v-if="navList.length > sliceNum">
| <template slot="title">更多</template>
| <MenuItem
| v-for="(item, i) in navList.slice(sliceNum, navList.length)"
| :key="i"
| :name="item.name"
| >
| <Badge :dot="item.component == 'hot'">
| <XIcon :type="item.icon" v-if="showIcon" />
| {{ item.title }}
| </Badge>
| </MenuItem>
| </Submenu>
| </Menu>
| </div>
| </template>
|
| <script>
| import apps from "./apps";
| export default {
| name: "nav-app",
| components: {
| apps,
| },
| props: {
| navList: Array,
| currNav: String,
| showIcon: {
| type: Boolean,
| default: true,
| },
| sliceNum: {
| type: Number,
| default: 3,
| },
| theme: {
| type: String,
| default: "light",
| },
| },
| data() {
| return {};
| },
| methods: {
| init() {},
| selectNav(v) {
| this.$emit("on-click", v);
| },
| },
| mounted() {
| this.init();
| },
| watch: {},
| };
| </script>
|
| <style lang="less">
| </style>
|
|