Files
aurora-admin/frameworks/MixedNavigation.vue3.vue
T

52 lines
1.6 KiB
Vue

<template>
<div class="aa-mixed">
<div class="aa-mixed-top">
<div
v-for="(m, i) in menu"
:key="i"
class="aa-mixed-topitem"
:class="{ 'is-active': topIdx === i }"
@click="selectTop(i)"
>{{ m.name }}</div>
</div>
<div class="aa-mixed-body">
<div class="aa-mixed-side">
<div
v-for="(it, i) in menu[topIdx].items"
:key="i"
class="aa-mixed-sideitem"
:class="{ 'is-active': sideIdx === i }"
@click="sideIdx = i"
>{{ it.name }}</div>
</div>
<div class="aa-mixed-content">
<h4>{{ menu[topIdx].name }} / {{ menu[topIdx].items[sideIdx].name }}</h4>
<div>{{ menu[topIdx].items[sideIdx].desc }}</div>
</div>
</div>
</div>
</template>
<script setup>
import { ref } from 'vue';
const props = defineProps({
menu: {
type: Array,
default: () => [
{ name: '工作台', items: [{ name: '概览', desc: '数据看板总览' }, { name: '待办', desc: '我的待处理任务' }, { name: '报表', desc: '统计报表入口' }] },
{ name: '系统管理', items: [{ name: '用户管理', desc: '用户增删改查' }, { name: '角色管理', desc: '角色与权限分配' }, { name: '菜单管理', desc: '导航菜单配置' }] },
{ name: '业务中心', items: [{ name: '订单', desc: '订单列表与详情' }, { name: '商品', desc: '商品上下架' }, { name: '库存', desc: '库存预警' }] }
]
}
});
const topIdx = ref(0);
const sideIdx = ref(0);
function selectTop(i) {
topIdx.value = i;
sideIdx.value = 0;
}
</script>
<style src="./MixedNavigation.css"></style>