zhangxiaoxu123
2023-05-05 f51896f6358a60ab83456358446ac48085b48298
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>