zoukankan      html  css  js  c++  java
  • 基于iView的无限级菜单

    <template>
        <Submenu :name="parentItem.name">
            <template slot="title">
                <Icon :type="parentItem.icon" :size="15"/>
                <span>{{ parentItem.title }}</span>
            </template>
            <template v-for="item in parentItem.children">
                <side-menu-item 
                    v-if="item.children&&item.children.length!==0" 
                    :parent-item="item" 
                    :key="'menu-'+item.name"
                >
                </side-menu-item>
                <menu-item v-else :name="item.name" :key="'menu-'+item.name">
                    <Icon :type="item.icon" :size="15" />
                    <span>{{ item.title }}</span>
                </menu-item>
            </template>
        </Submenu>
    </template>
    
    <script>
    export default {
        name: 'sideMenuItem',
        props: {
            parentItem: {
                type: Object,
                  default: () => {}
            }
        }
    }
    </script>
    
    <style lang="scss" scoped>
    
    </style>
    <template>
        <Menu width="auto" 
            :active-name="activeName" 
            :open-names="openNames" 
            @on-select="handleSelect"
        >
          <template v-for="item in items">
            <side-menu-item 
                v-if="item.children&&item.children.length!==0" 
                :parent-item="item"
                :key="'menu-'+item.name" 
            >
            </side-menu-item>
            <menu-item v-else 
                :name="item.name" 
                :key="'menu-'+item.name"
            >
                <Icon :type="item.icon" :size="15"/>
                <span>{{ item.title }}</span>
            </menu-item>
          </template>
        </Menu>
    </template>
    
    <script>
    import sideMenuItem from '@/views/main/components/side-menu/side-menu-item.vue'
    export default {
        name: 'sideMenu',
        props: {
            activeName: {
                type: String,
                default: 'auth'
            },
            openNames: {
                type: Array,
                default: () => [
                    'other',
                    'role',
                    'auth'
                ]
            },
            items: {
                type: Array,
                default: () => [
                    { 
                        name : 'system', 
                        title : '系统管理', 
                        icon : 'outlet', 
                        children: [
                            { name : 'user', title : '用户管理', icon : 'outlet' }
                        ] 
                    },
                    { 
                        name : 'other', 
                        title: '其他管理', 
                        icon : 'outlet',
                        children : [
                            { 
                                name : 'role', 
                                title : '角色管理', 
                                icon : 'outlet',
                                children : [
                                    { name : 'auth', title : '权限管理', icon : 'outlet' }
                                ] 
                            }
                        ] 
                    }
                ]
            }
        },
        components: {
            sideMenuItem
        },
        methods: {
            handleSelect(name) {
                this.$emit('on-select', name)
            }
        }
    }
    </script>
    
    <style lang="scss" scoped>
    
    </style>
  • 相关阅读:
    java web环境搭建
    java动手动脑异常处理
    java动手动脑多态
    python全栈开发day67--字段类型、字段属性、ORM回顾
    python全栈开发day66-视图系统、路由系统
    python全栈开发day65-templates:tags、母版和继承、组件、静态文件相关、simple_tag和inclusion_tag
    python全栈开发day64-模板-变量和(.)的使用,filters和自定义filter
    Django Models的数据类型汇总
    nginx反向代理uwsgi django服务器搭建总结
    Centos更新yum源
  • 原文地址:https://www.cnblogs.com/xiaowangzhi/p/9142971.html
Copyright © 2011-2022 走看看