This commit is contained in:
parent
cbff5e3641
commit
e549c92b1d
2 changed files with 77 additions and 11 deletions
|
@ -50,8 +50,53 @@
|
||||||
<menu-item v-else :name="`${item.name}`" :key="`menu-${item.name}`">{{ item.name }}</menu-item>
|
<menu-item v-else :name="`${item.name}`" :key="`menu-${item.name}`">{{ item.name }}</menu-item>
|
||||||
</template>
|
</template>
|
||||||
</Menu>
|
</Menu>
|
||||||
<Button @click="setOpenNames">修改展开数组</Button>
|
|
||||||
<Button @click="addNewItem">添加菜单项</Button> -->
|
<Button @click="addNewItem">添加菜单项</Button> -->
|
||||||
|
<Button @click="changeActive">修改激活项</Button>
|
||||||
|
<Button @click="setOpenNames">修改展开数组</Button>
|
||||||
|
<Menu mode="horizontal" theme="light" :active-name="activeName" @on-open-change="hc">
|
||||||
|
<MenuItem name="1">
|
||||||
|
<Icon type="ios-paper"></Icon>
|
||||||
|
内容管理
|
||||||
|
</MenuItem>
|
||||||
|
<MenuItem name="2">
|
||||||
|
<Icon type="ios-people"></Icon>
|
||||||
|
用户管理
|
||||||
|
</MenuItem>
|
||||||
|
<Submenu name="3">
|
||||||
|
<template slot="title">
|
||||||
|
<Icon type="stats-bars"></Icon>
|
||||||
|
统计分析
|
||||||
|
</template>
|
||||||
|
<MenuGroup title="使用">
|
||||||
|
<MenuItem name="3-1">新增和启动</MenuItem>
|
||||||
|
<MenuItem name="3-2">活跃分析</MenuItem>
|
||||||
|
<MenuItem name="3-3">时段分析</MenuItem>
|
||||||
|
</MenuGroup>
|
||||||
|
<MenuGroup title="留存">
|
||||||
|
<MenuItem name="3-4">用户留存</MenuItem>
|
||||||
|
<MenuItem name="3-5">流失用户</MenuItem>
|
||||||
|
</MenuGroup>
|
||||||
|
</Submenu>
|
||||||
|
<Submenu name="4">
|
||||||
|
<template slot="title">
|
||||||
|
<Icon type="stats-bars"></Icon>
|
||||||
|
统计分析2
|
||||||
|
</template>
|
||||||
|
<MenuGroup title="使用2">
|
||||||
|
<MenuItem name="4-1">新增和启动2</MenuItem>
|
||||||
|
<MenuItem name="4-2">活跃分析2</MenuItem>
|
||||||
|
<MenuItem name="4-3">时段分析2</MenuItem>
|
||||||
|
</MenuGroup>
|
||||||
|
<MenuGroup title="留存2">
|
||||||
|
<MenuItem name="4-4">用户留存2</MenuItem>
|
||||||
|
<MenuItem name="4-5">流失用户2</MenuItem>
|
||||||
|
</MenuGroup>
|
||||||
|
</Submenu>
|
||||||
|
<MenuItem name="5">
|
||||||
|
<Icon type="settings"></Icon>
|
||||||
|
综合设置
|
||||||
|
</MenuItem>
|
||||||
|
</Menu>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -129,7 +174,8 @@ import custemMenuItem from './custem-menu-item.vue'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
activeName: '1'
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -151,6 +197,12 @@ import custemMenuItem from './custem-menu-item.vue'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
changeActive () {
|
||||||
|
this.activeName = String(Number(this.activeName) + 1)
|
||||||
|
},
|
||||||
|
hc (data) {
|
||||||
|
console.log(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,23 +80,37 @@
|
||||||
let names = [...this.openedNames];
|
let names = [...this.openedNames];
|
||||||
const index = names.indexOf(name);
|
const index = names.indexOf(name);
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
names.splice(index, 1);
|
let currentSubmenu = null;
|
||||||
|
findComponentsDownward(this, 'Submenu').forEach(item => {
|
||||||
|
if (item.name === name) {
|
||||||
|
currentSubmenu = item;
|
||||||
|
item.opened = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
findComponentsDownward(currentSubmenu, 'Submenu').forEach(item => {
|
||||||
|
item.opened = false;
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
if (this.accordion) {
|
if (this.mode === 'horizontal' && this.accordion) {
|
||||||
let currentSubmenu = null;
|
let currentSubmenu = null;
|
||||||
names = [];
|
|
||||||
findComponentsDownward(this, 'Submenu').forEach(item => {
|
findComponentsDownward(this, 'Submenu').forEach(item => {
|
||||||
if (item.name === name) currentSubmenu = item;
|
if (item.name === name) {
|
||||||
|
currentSubmenu = item;
|
||||||
|
item.opened = true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
findComponentsUpward(currentSubmenu, 'Submenu').forEach(item => {
|
findComponentsUpward(currentSubmenu, 'Submenu').forEach(item => {
|
||||||
names.push(item.name);
|
item.opened = true;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
findComponentsDownward(this, 'Submenu').forEach(item => {
|
||||||
|
if (item.name === name) item.opened = true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
names.push(name);
|
|
||||||
}
|
}
|
||||||
this.openedNames = names;
|
let openedNames = findComponentsDownward(this, 'Submenu').filter(item => item.opened).map(item => item.name);
|
||||||
this.updateOpened();
|
this.openedNames = [...openedNames];
|
||||||
this.$emit('on-open-change', this.openedNames);
|
this.$emit('on-open-change', openedNames);
|
||||||
},
|
},
|
||||||
updateOpened () {
|
updateOpened () {
|
||||||
const items = findComponentsDownward(this, 'Submenu');
|
const items = findComponentsDownward(this, 'Submenu');
|
||||||
|
|
Loading…
Add table
Reference in a new issue