create dashboard layout

This commit is contained in:
Geriano
2022-07-16 04:29:30 +07:00
parent 2ca55419f7
commit cff8ab1b72
11 changed files with 276 additions and 16 deletions

View File

@@ -0,0 +1,30 @@
<script>
import { defineComponent, h } from "vue"
import Link from "./Link.vue"
import Links from "./Links.vue"
export default defineComponent({
props: {
menus: Array,
},
setup(props, { attrs }) {
return props => {
const { menus } = props
const generate = (menu, attrs = {}) => {
if (menu.childs?.length > 0) {
return h(Links, {
...attrs,
menu,
childs: menu.childs,
}, menu.childs.map(child => generate(child, { class: 'pl-8' })))
}
return h(Link, { ...attrs, menu })
}
return h('div', { class: 'flex flex-col' }, menus.map(menu => generate(menu)))
}
},
})
</script>