menu.js 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. export default {
  2. state: {
  3. navTree: [], // 导航菜单树
  4. leftTree: [], //左侧菜单树
  5. filterList: [
  6. "agreementManage/carInsurance/agreementHistoryRecord",
  7. "agreementManage/carInsurance/agreementProductFee",
  8. "agreementManage/carInsurance/agreementUnderwritingRule",
  9. "agreementManage/carInsurance/agreementNonVehicleConfig",
  10. "letter/wallet/amountManagement",
  11. "agreementManage/insuranceCompany/passengerBus/businessOperation/fuel/attrConfig",
  12. "agreementManage/insuranceCompany/passengerBus/businessOperation/fuel/solutionConfig",
  13. "agreementManage/insuranceCompany/passengerBus/businessOperation/fuel/optionalsolutionConfig",
  14. "agreementManage/insuranceCompany/passengerBus/businessOperation/newEnergy/attrConfig",
  15. "agreementManage/insuranceCompany/passengerBus/businessOperation/newEnergy/solutionConfig",
  16. "agreementManage/insuranceCompany/passengerBus/businessOperation/newEnergy/optionalsolutionConfig",
  17. "agreementManage/insuranceCompany/passengerBus/nonBusiness/fuel/attrConfig",
  18. "agreementManage/insuranceCompany/passengerBus/nonBusiness/fuel/solutionConfig",
  19. "agreementManage/insuranceCompany/passengerBus/nonBusiness/fuel/optionalsolutionConfig",
  20. "agreementManage/insuranceCompany/passengerBus/nonBusiness/newEnergy/attrConfig",
  21. "agreementManage/insuranceCompany/passengerBus/nonBusiness/newEnergy/solutionConfig",
  22. "agreementManage/insuranceCompany/passengerBus/nonBusiness/newEnergy/optionalsolutionConfig",
  23. "agreementManage/insuranceCompany/cargoTruck/businessOperation/fuel/attrConfig",
  24. "agreementManage/insuranceCompany/cargoTruck/businessOperation/fuel/solutionConfig",
  25. "agreementManage/insuranceCompany/cargoTruck/businessOperation/fuel/optionalsolutionConfig",
  26. "agreementManage/insuranceCompany/cargoTruck/businessOperation/newEnergy/attrConfig",
  27. "agreementManage/insuranceCompany/cargoTruck/businessOperation/newEnergy/solutionConfig",
  28. "agreementManage/insuranceCompany/cargoTruck/businessOperation/newEnergy/optionalsolutionConfig",
  29. "agreementManage/insuranceCompany/cargoTruck/nonBusiness/fuel/attrConfig",
  30. "agreementManage/insuranceCompany/cargoTruck/nonBusiness/fuel/solutionConfig",
  31. "agreementManage/insuranceCompany/cargoTruck/nonBusiness/fuel/optionalsolutionConfig",
  32. "agreementManage/insuranceCompany/cargoTruck/nonBusiness/newEnergy/attrConfig",
  33. "agreementManage/insuranceCompany/cargoTruck/nonBusiness/newEnergy/solutionConfig",
  34. "agreementManage/insuranceCompany/cargoTruck/nonBusiness/newEnergy/optionalsolutionConfig",
  35. "orderMsg/attrConfig",
  36. ]
  37. },
  38. getters: {
  39. },
  40. mutations: {
  41. //清空导航菜单
  42. clearMenuTree(state) {
  43. state.navTree = []
  44. state.leftTree = []
  45. },
  46. setNavTree(state, navTree) { // 设置导航菜单树
  47. function filterTree(tree, filterList) {
  48. return tree
  49. .filter(item => !filterList.includes(item.url))
  50. .map(item => {
  51. // 如果项目有子项目,则递归过滤子树
  52. if (item.children && item.children.length) {
  53. return { ...item, children: filterTree(item.children, filterList) };
  54. }
  55. return item;
  56. });
  57. };
  58. const filteredNavTree = filterTree(navTree, state.filterList);
  59. state.navTree = filteredNavTree;
  60. if (Array.isArray(filteredNavTree) && filteredNavTree.length > 0) {
  61. state.leftTree = filteredNavTree[0].children;
  62. }
  63. },
  64. changeLeftTree(state, id) {
  65. for (let i = 0; i < state.navTree.length; i++) {
  66. if (state.navTree[i].id === id) {
  67. state.leftTree = state.navTree[i].children;
  68. break;
  69. }
  70. }
  71. }
  72. },
  73. actions: {
  74. }
  75. }