menu.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { log } from "@/utils/base.js"
  2. import api from "@/common/api.js"
  3. import { filterMenu } from "@/menu/menuMap.js"
  4. const menu = {
  5. namespaced: true,
  6. state: {
  7. list: [],
  8. current: 0
  9. },
  10. getters: {
  11. getList(state) {
  12. return state.list;
  13. }
  14. },
  15. mutations: {
  16. setMenus(state, menus) {
  17. state.list = menus;
  18. },
  19. setCurrent(state, cur) {
  20. state.current = cur;
  21. }
  22. },
  23. actions: {
  24. getMenus: async function({ commit, state }) {
  25. return new Promise((resolve, reject) => {
  26. if (state.list.length) {
  27. resolve(state.list)
  28. } else {
  29. const leftMenus = [{
  30. name: "首页",
  31. url: "/home",
  32. icon: "home",
  33. pagePath: "/pages/home/home"
  34. // }, {
  35. // name: "在线地图",
  36. // url: "/m",
  37. // icon: "empty-address",
  38. // pagePath: "/pages_map/map"
  39. }, {
  40. name: "实时监控",
  41. url: "/o",
  42. icon: "camera",
  43. pagePath: "/pages/onlineData/onlineData"
  44. }, ]
  45. const rightMenus = [{
  46. name: "个人中心",
  47. url: "/u",
  48. icon: "account",
  49. pagePath: "/pages/user/user"
  50. }]
  51. //commit("setMenus", newMenus);
  52. //console.log("=========>", newMenus);
  53. resolve(state.list);
  54. api.getMenu().then((res) => {
  55. if (res.code == 0) {
  56. //log(`MENU_LIST====>`, res.restluLis);
  57. if (res.restluLis && res.restluLis.length) {
  58. const newMenus = [...leftMenus, ...
  59. filterMenu(res
  60. .restluLis), ...rightMenus
  61. ]
  62. log(`MENUS====>`, newMenus);
  63. commit("setMenus", newMenus);
  64. resolve(state.list);
  65. }
  66. }
  67. }).catch(e => {
  68. //reject(e);
  69. const newMenus = [...leftMenus, ...rightMenus];
  70. log(`===MENUS====>`, newMenus);
  71. commit("setMenus", newMenus);
  72. resolve(state.list);
  73. })
  74. }
  75. })
  76. }
  77. }
  78. };
  79. export default menu;