tree.js 900 B

1234567891011121314151617181920212223242526
  1. // 树状结构构建插件
  2. const tree = {
  3. install (Vue) {
  4. Vue.prototype.$tree = function(options) {
  5. // 子级菜单构建函数
  6. const children = items => {
  7. /*
  8. * 根据items.code与所有菜单parentCode比较
  9. * 如果相等所有菜单当前项就是子级菜单
  10. * 同时调用当前函数创建多级菜单
  11. */
  12. const childrenList = options.filter(j => items.code == j.parentCode).map(e => children(e));
  13. // 如果当前子菜单项存在 就添加children属性
  14. if (childrenList.length > 0) {
  15. return { ...items, children: childrenList };
  16. }
  17. // 不存在就不添加
  18. return { ...items };
  19. };
  20. // 过滤一级菜单并添加子级菜单
  21. const list = options.filter(e => e.parentCode == 'null').map(e => children(e));
  22. return list;
  23. };
  24. }
  25. };
  26. export default tree;