var subMenu = Vue.extend({
  template:
    '<el-submenu' +
    '  v-if="menu.children && menu.children.length >= 1"' +
    '  :index="menu.id">' +
    '  <template slot="title">' +
    '    <i class="iconfont" :class="menu.icon"></i>' +
    '    <span>{{ menu.name }}</span>' +
    '  </template>' +
    '  <sub-menu @current-menu="currentMenu"' +
    '    v-for="subMenu in menu.children"' +
    '    :key="subMenu.id"' +
    '    :menu="subMenu">' +
    '  </sub-menu>' +
    '</el-submenu>' +
    '<el-menu-item v-else :index="menu.id" @click="gotoRouteHandle(menu)">' +
    '  <i class="iconfont" :class="menu.icon"></i>' +
    '  <span>{{ menu.name }}</span>' +
    '</el-menu-item>',

  props: {
    menu: {
      type: Object
    }
  },
  data () {
    return {
    }
  },
  methods: {
    // 菜单切换
    gotoRouteHandle (menu) {
      var name = menu.name
      var path = menu.path
      var id = menu.id
      if (isArray(tabList)) {
        if (tabList.length > 0) {
          if (this.hasTab(id)) {
            this.$emit('current-menu', tabList, id, true)
          } else {
            tabList.push(menu)
            this.$emit('current-menu', tabList, id)
          }
        } else {
          this.$emit('current-menu', [menu], id)
        }
      }
    },
    hasTab (id) {
      var isTab = false
      for (var i = 0, len = tabList.length; i < len; i++) {
        if (tabList[i].id === id) {
          isTab = true
          break
        }
      }
      return isTab
    },
    currentMenu (tabList, id, status) {
      this.$emit('current-menu', tabList, id, status)
    }
  }
})

Vue.component('subMenu', subMenu)