SSideMenu.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { ref as u, reactive as g, watch as O, onMounted as M, resolveComponent as y, openBlock as d, createElementBlock as S, createElementVNode as m, createVNode as E, normalizeStyle as C, createBlock as K } from "vue";
  2. import { l as $, aE as x, aF as _, aG as D } from "./index2.js";
  3. import "./index20.js";
  4. const U = { class: "s-menu-slide-common" }, B = { class: "menu-wrap" }, N = {
  5. __name: "SSideMenu",
  6. emits: ["collapsed"],
  7. setup(R, { emit: h }) {
  8. const f = x(), v = h, p = u([]), c = u(""), e = g({
  9. collapsed: !1,
  10. selectedKeys: [],
  11. openKeys: [],
  12. preOpenKeys: []
  13. });
  14. O(
  15. () => e.openKeys,
  16. (t, o) => {
  17. e.preOpenKeys = o;
  18. }
  19. );
  20. const r = (t) => t.map((s) => {
  21. var n;
  22. const l = {
  23. key: s.path,
  24. // icon: item.icon ? () => h(item.icon) : null,
  25. icon: null,
  26. label: s.name || ((n = s.meta) == null ? void 0 : n.title),
  27. title: s.name || s,
  28. path: s.path
  29. };
  30. return s.children && (l.children = r(s.children)), l;
  31. }), k = () => {
  32. e.collapsed = !e.collapsed, e.openKeys = e.collapsed ? [] : e.preOpenKeys, v("collapsed", e.collapsed);
  33. }, b = (t) => {
  34. f.push(t.key), e.selectedKeys = [t.key], window.$utils.ls.set("selectedKeys", e.selectedKeys);
  35. }, w = (t) => {
  36. e.openKeys = t, _().setMenuOpenKeys(e.openKeys);
  37. };
  38. return M(() => {
  39. var n;
  40. c.value = window.$utils.env.VITE_APP_MENU_THEME || "dark";
  41. const t = _(), o = ((n = t.dynamics[0]) == null ? void 0 : n.children) || [];
  42. p.value = r([...o].filter((a) => {
  43. var i;
  44. return !((i = a.meta) != null && i.hidden);
  45. }));
  46. const s = location.pathname;
  47. window.$utils.ls.set("selectedKeys", [s]), e.selectedKeys = window.$utils.ls.get("selectedKeys") || [];
  48. const l = t.openKeys || [];
  49. e.openKeys = l;
  50. }), (t, o) => {
  51. const s = D, l = y("DoubleRightOutlined"), n = y("DoubleLeftOutlined");
  52. return d(), S("div", U, [
  53. m("div", B, [
  54. E(s, {
  55. openKeys: e.openKeys,
  56. "onUpdate:openKeys": o[0] || (o[0] = (a) => e.openKeys = a),
  57. selectedKeys: e.selectedKeys,
  58. "onUpdate:selectedKeys": o[1] || (o[1] = (a) => e.selectedKeys = a),
  59. mode: "inline",
  60. items: p.value,
  61. theme: c.value,
  62. onSelect: b,
  63. onOpenChange: w
  64. }, null, 8, ["openKeys", "selectedKeys", "items", "theme"])
  65. ]),
  66. m("div", {
  67. class: "right-border-btn",
  68. style: C({
  69. backgroundColor: c.value === "dark" ? "#001529" : "#fff",
  70. color: c.value === "dark" ? "#fff" : "#000000A6",
  71. border: `1px solid ${c.value === "dark" ? "#001529" : "#ececec"}`
  72. }),
  73. onClick: k
  74. }, [
  75. e.collapsed ? (d(), K(l, { key: 0 })) : (d(), K(n, { key: 1 }))
  76. ], 4)
  77. ]);
  78. };
  79. }
  80. }, I = /* @__PURE__ */ $(N, [["__scopeId", "data-v-c1f2ab13"]]);
  81. export {
  82. I as default
  83. };