Слияние кода завершено, страница обновится автоматически
<template>
<div class="menu-list">
<vol-item-menu :onOpenChange="onOpenChange" :onSelect="onSelect" :trees="arrayToTree()" :theme="theme"></vol-item-menu>
</div>
</template>
<script>
import VolItemMenu from "@/components/basic/VolItemMenu.vue";
export default {
components: {
VolItemMenu
},
props: {
options: {
type: Array,
default: []
},
onSelect: {
type: Function,
default: x => {
console.log(x);
}
},
onOpenChange: {
type: Function,
default: x => {
console.log(x);
}
},
theme: { type: String, default: "light" /*light,dark */ }
},
methods: {
convertTree(root, source) {
var subItems = source.filter(x => {
return x.parentId == root.id;
});
if (subItems.length > 0) {
root.children = [];
root.children.push(...subItems);
root.children.forEach(element => {
this.convertTree(element, source);
});
}
},
arrayToTree() {
// var menuData = [
// { id: 1, name: "iview组件", parentId: 0,icon:'ios-aperture' }
// ];
var basicRoot = this.options.filter(x => {
return x.parentId == 0;
});
basicRoot.forEach(x => {
return this.convertTree(x, this.options);
});
return basicRoot;
}
},
data() {
return {};
}
};
</script>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )