| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/components/main/components/side-menu/side-menu.vue?vue&type=style&index=0&lang=less&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/components/main/components/side-menu/side-menu.vue","mtime":1618306924000},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/css-loader/index.js","mtime":1665684004023},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1665684006115},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/less-loader/dist/cjs.js","mtime":1665684007621},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":1665684022107},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/vue-loader/lib/index.js","mtime":1665684006084}],"contextDependencies":[],"result":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n@import './side-menu.less';\n",{"version":3,"sources":["side-menu.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgHA","file":"side-menu.vue","sourceRoot":"src/components/main/components/side-menu","sourcesContent":["<template>\n <div class=\"side-menu-wrapper\">\n <slot></slot>\n <Menu ref=\"menu\" v-show=\"!collapsed\" :active-name=\"activeName\" :open-names=\"openedNames\" :accordion=\"accordion\" :theme=\"theme\" width=\"auto\" @on-select=\"handleSelect\">\n <template v-for=\"item in menuList\">\n <template v-if=\"item.children && item.children.length === 1\">\n <side-menu-item v-if=\"showChildren(item)\" :key=\"`menu-${item.name}`\" :parent-item=\"item\"></side-menu-item>\n <menu-item v-else :name=\"getNameOrHref(item, true)\" :key=\"`menu-${item.children[0].name}`\"><common-icon :type=\"item.children[0].icon || ''\"/><span>{{ showTitle(item.children[0]) }}</span></menu-item>\n </template>\n <template v-else>\n <side-menu-item v-if=\"showChildren(item)\" :key=\"`menu-${item.name}`\" :parent-item=\"item\"></side-menu-item>\n <menu-item v-else :name=\"getNameOrHref(item)\" :key=\"`menu-${item.name}`\"><common-icon :type=\"item.icon || ''\"/><span>{{ showTitle(item) }}</span></menu-item>\n </template>\n </template>\n </Menu>\n <div class=\"menu-collapsed\" v-show=\"collapsed\" :list=\"menuList\">\n <template v-for=\"item in menuList\">\n <collapsed-menu v-if=\"item.children && item.children.length > 1\" @on-click=\"handleSelect\" hide-title :root-icon-size=\"rootIconSize\" :icon-size=\"iconSize\" :theme=\"theme\" :parent-item=\"item\" :key=\"`drop-menu-${item.name}`\"></collapsed-menu>\n <Tooltip transfer v-else :content=\"(item.meta && item.meta.title) || (item.children && item.children[0] && item.children[0].meta.title)\" placement=\"right\" :key=\"`drop-menu-${item.name}`\">\n <a @click=\"handleSelect(getNameOrHref(item, true))\" class=\"drop-menu-a\" :style=\"{textAlign: 'center'}\"><common-icon :size=\"rootIconSize\" :color=\"textColor\" :type=\"item.icon || (item.children && item.children[0].icon)\"/></a>\n </Tooltip>\n </template>\n </div>\n </div>\n</template>\n<script>\nimport SideMenuItem from './side-menu-item.vue'\nimport CollapsedMenu from './collapsed-menu.vue'\nimport { getUnion } from '@/libs/tools'\nimport mixin from './mixin'\n\nexport default {\n name: 'SideMenu',\n mixins: [ mixin ],\n components: {\n SideMenuItem,\n CollapsedMenu\n },\n props: {\n menuList: {\n type: Array,\n default () {\n return []\n }\n },\n collapsed: {\n type: Boolean\n },\n theme: {\n type: String,\n default: 'dark'\n },\n rootIconSize: {\n type: Number,\n default: 20\n },\n iconSize: {\n type: Number,\n default: 16\n },\n accordion: Boolean,\n activeName: {\n type: String,\n default: ''\n },\n openNames: {\n type: Array,\n default: () => []\n }\n },\n data () {\n return {\n openedNames: []\n }\n },\n methods: {\n handleSelect (name) {\n this.$emit('on-select', name)\n },\n getOpenedNamesByActiveName (name) {\n return this.$route.matched.map(item => item.name).filter(item => item !== name)\n },\n updateOpenName (name) {\n if (name === this.$config.homeName) this.openedNames = []\n else this.openedNames = this.getOpenedNamesByActiveName(name)\n }\n },\n computed: {\n textColor () {\n return this.theme === 'dark' ? '#fff' : '#495060'\n }\n },\n watch: {\n activeName (name) {\n if (this.accordion) this.openedNames = this.getOpenedNamesByActiveName(name)\n else this.openedNames = getUnion(this.openedNames, this.getOpenedNamesByActiveName(name))\n },\n openNames (newNames) {\n this.openedNames = newNames\n },\n openedNames () {\n this.$nextTick(() => {\n this.$refs.menu.updateOpened()\n })\n }\n },\n mounted () {\n this.openedNames = getUnion(this.openedNames, this.getOpenedNamesByActiveName(name))\n }\n}\n</script>\n<style lang=\"less\">\n@import './side-menu.less';\n</style>\n"]}]}
|