UNPKG

m2-webui

Version:

The package is provided web components and utilities based on vue and element-ui.

70 lines (62 loc) 1.9 kB
'use strict'; exports.__esModule = true; var _main = require('../utils/main'); exports.default = { data: function data() { return { menuList: [], collapseClass: '', activeIndex: '' }; }, watch: { menus: { handler: function handler(val) { this.handleMenus(); }, deep: true } }, mounted: function mounted() { this.handleMenus(); }, methods: { handleMenus: function handleMenus() { var _menus = this.menus, active = _menus.active, _menus$map = _menus.map, map = _menus$map === undefined ? {} : _menus$map, _menus$data = _menus.data, data = _menus$data === undefined ? [] : _menus$data; this.activeIndex = active; this.menuList = this.getMenuList(map, data, 1); }, getMenuList: function getMenuList(map, data, level) { var _this = this; return data.map(function (item) { var menuItem = (0, _main.getMapItem)(item, map, 'key', 'text', 'icon', 'url', 'target', 'click', 'badge', 'badgeMax'); var children = item[map.children] || item.children; menuItem.level = level; if (level === 1) { // 第一级目录 menuItem.icon = menuItem.icon || 'el-icon-menu'; menuItem.title = item.alias || menuItem.text; } if (menuItem.level) { menuItem.className = 'm2-menu-item-' + menuItem.level; } if (!!children && children.length > 0) { menuItem.slotName = 'title'; menuItem.children = _this.getMenuList(map, children, level + 1); } else { menuItem.slotName = 'default'; } return menuItem; }); }, handleToggleMenu: function handleToggleMenu(collapse) { this.collapseClass = collapse ? 'nav-collapse' : ''; this.$emit('toggleCollapse', collapse); } } };