@ditari/store 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/modules/Menu.cjs +35 -1
- package/dist/cjs/modules/Menu.cjs.map +1 -1
- package/dist/cjs/modules/NavTab.cjs +1 -1
- package/dist/cjs/modules/NavTab.cjs.map +1 -1
- package/dist/esm/modules/Menu.mjs +35 -1
- package/dist/esm/modules/Menu.mjs.map +1 -1
- package/dist/esm/modules/NavTab.mjs +1 -1
- package/dist/esm/modules/NavTab.mjs.map +1 -1
- package/package.json +1 -1
- package/src/modules/Menu.ts +22 -2
- package/src/modules/NavTab.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
var pinia = require('pinia');
|
|
4
4
|
var types = require('../types.cjs');
|
|
5
5
|
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defProps = Object.defineProperties;
|
|
8
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
9
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
6
25
|
const useMenuStore = pinia.defineStore(types.MENU_ID, {
|
|
7
26
|
state: () => {
|
|
8
27
|
return {
|
|
@@ -21,11 +40,26 @@ const useMenuStore = pinia.defineStore(types.MENU_ID, {
|
|
|
21
40
|
},
|
|
22
41
|
actions: {
|
|
23
42
|
save(data) {
|
|
24
|
-
this.list = data;
|
|
43
|
+
this.list = _addMenuIds(data);
|
|
25
44
|
}
|
|
26
45
|
},
|
|
27
46
|
persist: true
|
|
28
47
|
});
|
|
48
|
+
function _addMenuIds(menuData, parentId = null, idPrefix = "") {
|
|
49
|
+
let counter = 0;
|
|
50
|
+
return menuData.map((menuItem) => {
|
|
51
|
+
const id = `${idPrefix}${counter++}`;
|
|
52
|
+
const newItem = __spreadProps(__spreadValues({}, menuItem), {
|
|
53
|
+
id,
|
|
54
|
+
key: id,
|
|
55
|
+
parentId
|
|
56
|
+
});
|
|
57
|
+
if (menuItem.children) {
|
|
58
|
+
newItem.children = _addMenuIds(menuItem.children, id, `${id}-`);
|
|
59
|
+
}
|
|
60
|
+
return newItem;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
29
63
|
|
|
30
64
|
exports.useMenuStore = useMenuStore;
|
|
31
65
|
//# sourceMappingURL=Menu.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.cjs","sources":["../../../src/modules/Menu.ts"],"sourcesContent":["/**\n * 菜单数据\n */\nimport { defineStore } from \"pinia\";\nimport { MENU_ID } from \"../types\";\n\nexport const useMenuStore =
|
|
1
|
+
{"version":3,"file":"Menu.cjs","sources":["../../../src/modules/Menu.ts"],"sourcesContent":["/**\n * 菜单数据\n */\nimport { defineStore } from \"pinia\";\nimport { MENU_ID } from \"../types\";\n\nexport const useMenuStore = defineStore(MENU_ID, {\n state: () => {\n return {\n // 菜单数据\n list: [],\n // 展开的菜单数据\n openMenusKeys: [] as any,\n // 当前激活的菜单\n selectedMenuKeys: [] as any\n };\n },\n getters: {\n getMenu: (state) => {\n return state.list;\n }\n },\n actions: {\n save(data: any) {\n this.list = _addMenuIds(data);\n }\n },\n persist: true\n});\n\nfunction _addMenuIds(menuData: any, parentId: any = null, idPrefix = \"\") {\n let counter = 0;\n\n return menuData.map((menuItem: any) => {\n const id = `${idPrefix}${counter++}`;\n const newItem = {\n ...menuItem,\n id,\n key: id,\n parentId\n };\n\n if (menuItem.children) {\n newItem.children = _addMenuIds(menuItem.children, id, `${id}-`);\n }\n\n return newItem;\n });\n}\n"],"names":["defineStore","MENU_ID"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMa,MAAA,YAAA,GAAeA,kBAAYC,aAAS,EAAA;AAAA,EAC/C,OAAO,MAAM;AACX,IAAO,OAAA;AAAA;AAAA,MAEL,MAAM,EAAC;AAAA;AAAA,MAEP,eAAe,EAAC;AAAA;AAAA,MAEhB,kBAAkB,EAAC;AAAA,KACrB,CAAA;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,OAAA,EAAS,CAAC,KAAU,KAAA;AAClB,MAAA,OAAO,KAAM,CAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,KAAK,IAAW,EAAA;AACd,MAAK,IAAA,CAAA,IAAA,GAAO,YAAY,IAAI,CAAA,CAAA;AAAA,KAC9B;AAAA,GACF;AAAA,EACA,OAAS,EAAA,IAAA;AACX,CAAC,EAAA;AAED,SAAS,WAAY,CAAA,QAAA,EAAe,QAAgB,GAAA,IAAA,EAAM,WAAW,EAAI,EAAA;AACvE,EAAA,IAAI,OAAU,GAAA,CAAA,CAAA;AAEd,EAAO,OAAA,QAAA,CAAS,GAAI,CAAA,CAAC,QAAkB,KAAA;AACrC,IAAA,MAAM,EAAK,GAAA,CAAA,EAAG,QAAQ,CAAA,EAAG,OAAS,EAAA,CAAA,CAAA,CAAA;AAClC,IAAM,MAAA,OAAA,GAAU,iCACX,QADW,CAAA,EAAA;AAAA,MAEd,EAAA;AAAA,MACA,GAAK,EAAA,EAAA;AAAA,MACL,QAAA;AAAA,KACF,CAAA,CAAA;AAEA,IAAA,IAAI,SAAS,QAAU,EAAA;AACrB,MAAA,OAAA,CAAQ,WAAW,WAAY,CAAA,QAAA,CAAS,UAAU,EAAI,EAAA,CAAA,EAAG,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,KAChE;AAEA,IAAO,OAAA,OAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTab.cjs","sources":["../../../src/modules/NavTab.ts"],"sourcesContent":["/**\n * 多标签数据\n */\nimport { defineStore } from \"pinia\";\nimport {\n LocationQuery,\n RouteLocationNormalized,\n RouteMeta,\n RouteParams\n} from \"vue-router\";\nimport { useKeepAliveStore } from \"./KeepAlive\";\nimport { NAV_TAB_ID } from \"../types\";\n\nexport interface NavTabsState {\n path: string;\n fullPath: string;\n query: LocationQuery;\n params: RouteParams;\n meta: RouteMeta | any;\n name: string;\n}\n\n\nexport const useNavTabsStore = defineStore(NAV_TAB_ID, {\n state: () => {\n return {\n // 多标签列表\n list: [] as NavTabsState[],\n // 当前激活的地址\n activeKey: \"\" as string\n };\n },\n getters: {\n getList: (state): NavTabsState[] => {\n return state.list;\n },\n getActiveKey: (state): string => {\n return state.activeKey;\n }\n },\n actions: {\n /**\n * 设置激活的标签\n * @param key\n */\n setActiveKey(key: string) {\n this.activeKey = key;\n },\n /**\n * 保存标签信息\n * @param route\n */\n save(route: RouteLocationNormalized) {\n if (!route.meta?.title) {\n // 没有设置title,则不进入缓存\n return;\n }\n const flag = this.list.some(\n (item: NavTabsState) => item.path === route.path\n );\n if (flag) {\n // 如果有相同的路由变化,更新对应的参数信息\n this.list.forEach((item: NavTabsState) => {\n if (item.path === route.path) {\n item.query = route.query;\n item.fullPath = route.fullPath;\n item.params = route.params;\n item.meta = route.meta;\n item.name = <string>route.name || \"\";\n }\n });\n return;\n }\n const data: NavTabsState = {\n path: route.path,\n fullPath: route.fullPath,\n query: route.query,\n params: route.params,\n meta: route.meta,\n name: <string>route.name || \"\"\n };\n this.list.push(data);\n },\n /**\n * 删除标签\n * @param key url路径\n */\n deleteTabs(key: string) {\n const { deleteKeepAlive } = useKeepAliveStore();\n const curRoute: any = this.list.find((v) => v.fullPath === key);\n this.list.splice(\n this.list.findIndex((v) => v.fullPath === key),\n 1\n );\n // 根据name 删除缓存的组件\n if (curRoute
|
|
1
|
+
{"version":3,"file":"NavTab.cjs","sources":["../../../src/modules/NavTab.ts"],"sourcesContent":["/**\n * 多标签数据\n */\nimport { defineStore } from \"pinia\";\nimport {\n LocationQuery,\n RouteLocationNormalized,\n RouteMeta,\n RouteParams\n} from \"vue-router\";\nimport { useKeepAliveStore } from \"./KeepAlive\";\nimport { NAV_TAB_ID } from \"../types\";\n\nexport interface NavTabsState {\n path: string;\n fullPath: string;\n query: LocationQuery;\n params: RouteParams;\n meta: RouteMeta | any;\n name: string;\n}\n\n\nexport const useNavTabsStore = defineStore(NAV_TAB_ID, {\n state: () => {\n return {\n // 多标签列表\n list: [] as NavTabsState[],\n // 当前激活的地址\n activeKey: \"\" as string\n };\n },\n getters: {\n getList: (state): NavTabsState[] => {\n return state.list;\n },\n getActiveKey: (state): string => {\n return state.activeKey;\n }\n },\n actions: {\n /**\n * 设置激活的标签\n * @param key\n */\n setActiveKey(key: string) {\n this.activeKey = key;\n },\n /**\n * 保存标签信息\n * @param route\n */\n save(route: RouteLocationNormalized) {\n if (!route.meta?.title) {\n // 没有设置title,则不进入缓存\n return;\n }\n const flag = this.list.some(\n (item: NavTabsState) => item.path === route.path\n );\n if (flag) {\n // 如果有相同的路由变化,更新对应的参数信息\n this.list.forEach((item: NavTabsState) => {\n if (item.path === route.path) {\n item.query = route.query;\n item.fullPath = route.fullPath;\n item.params = route.params;\n item.meta = route.meta;\n item.name = <string>route.name || \"\";\n }\n });\n return;\n }\n const data: NavTabsState = {\n path: route.path,\n fullPath: route.fullPath,\n query: route.query,\n params: route.params,\n meta: route.meta,\n name: <string>route.name || \"\"\n };\n this.list.push(data);\n },\n /**\n * 删除标签\n * @param key url路径\n */\n deleteTabs(key: string) {\n const { deleteKeepAlive } = useKeepAliveStore();\n const curRoute: any = this.list.find((v) => v.fullPath === key);\n this.list.splice(\n this.list.findIndex((v) => v.fullPath === key),\n 1\n );\n // 根据name 删除缓存的组件\n if (curRoute?.name) {\n deleteKeepAlive(curRoute.name);\n }\n },\n /**\n * 设置标题\n * @param title 标题\n * @param path url\n */\n setNavTitle(title: string, path: string) {\n for (let i = 0; i < this.list.length; i++) {\n if (this.list[i].fullPath === path) {\n this.list[i].meta.title = title;\n break;\n }\n }\n }\n },\n persist: true\n});\n"],"names":["defineStore","NAV_TAB_ID","useKeepAliveStore"],"mappings":"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"}
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { defineStore } from 'pinia';
|
|
2
2
|
import { MENU_ID } from '../types.mjs';
|
|
3
3
|
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defProps = Object.defineProperties;
|
|
6
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __spreadValues = (a, b) => {
|
|
12
|
+
for (var prop in b || (b = {}))
|
|
13
|
+
if (__hasOwnProp.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
if (__getOwnPropSymbols)
|
|
16
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
+
if (__propIsEnum.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
}
|
|
20
|
+
return a;
|
|
21
|
+
};
|
|
22
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
4
23
|
const useMenuStore = defineStore(MENU_ID, {
|
|
5
24
|
state: () => {
|
|
6
25
|
return {
|
|
@@ -19,11 +38,26 @@ const useMenuStore = defineStore(MENU_ID, {
|
|
|
19
38
|
},
|
|
20
39
|
actions: {
|
|
21
40
|
save(data) {
|
|
22
|
-
this.list = data;
|
|
41
|
+
this.list = _addMenuIds(data);
|
|
23
42
|
}
|
|
24
43
|
},
|
|
25
44
|
persist: true
|
|
26
45
|
});
|
|
46
|
+
function _addMenuIds(menuData, parentId = null, idPrefix = "") {
|
|
47
|
+
let counter = 0;
|
|
48
|
+
return menuData.map((menuItem) => {
|
|
49
|
+
const id = `${idPrefix}${counter++}`;
|
|
50
|
+
const newItem = __spreadProps(__spreadValues({}, menuItem), {
|
|
51
|
+
id,
|
|
52
|
+
key: id,
|
|
53
|
+
parentId
|
|
54
|
+
});
|
|
55
|
+
if (menuItem.children) {
|
|
56
|
+
newItem.children = _addMenuIds(menuItem.children, id, `${id}-`);
|
|
57
|
+
}
|
|
58
|
+
return newItem;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
27
61
|
|
|
28
62
|
export { useMenuStore };
|
|
29
63
|
//# sourceMappingURL=Menu.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.mjs","sources":["../../../src/modules/Menu.ts"],"sourcesContent":["/**\n * 菜单数据\n */\nimport { defineStore } from \"pinia\";\nimport { MENU_ID } from \"../types\";\n\nexport const useMenuStore =
|
|
1
|
+
{"version":3,"file":"Menu.mjs","sources":["../../../src/modules/Menu.ts"],"sourcesContent":["/**\n * 菜单数据\n */\nimport { defineStore } from \"pinia\";\nimport { MENU_ID } from \"../types\";\n\nexport const useMenuStore = defineStore(MENU_ID, {\n state: () => {\n return {\n // 菜单数据\n list: [],\n // 展开的菜单数据\n openMenusKeys: [] as any,\n // 当前激活的菜单\n selectedMenuKeys: [] as any\n };\n },\n getters: {\n getMenu: (state) => {\n return state.list;\n }\n },\n actions: {\n save(data: any) {\n this.list = _addMenuIds(data);\n }\n },\n persist: true\n});\n\nfunction _addMenuIds(menuData: any, parentId: any = null, idPrefix = \"\") {\n let counter = 0;\n\n return menuData.map((menuItem: any) => {\n const id = `${idPrefix}${counter++}`;\n const newItem = {\n ...menuItem,\n id,\n key: id,\n parentId\n };\n\n if (menuItem.children) {\n newItem.children = _addMenuIds(menuItem.children, id, `${id}-`);\n }\n\n return newItem;\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAMa,MAAA,YAAA,GAAe,YAAY,OAAS,EAAA;AAAA,EAC/C,OAAO,MAAM;AACX,IAAO,OAAA;AAAA;AAAA,MAEL,MAAM,EAAC;AAAA;AAAA,MAEP,eAAe,EAAC;AAAA;AAAA,MAEhB,kBAAkB,EAAC;AAAA,KACrB,CAAA;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,OAAA,EAAS,CAAC,KAAU,KAAA;AAClB,MAAA,OAAO,KAAM,CAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,KAAK,IAAW,EAAA;AACd,MAAK,IAAA,CAAA,IAAA,GAAO,YAAY,IAAI,CAAA,CAAA;AAAA,KAC9B;AAAA,GACF;AAAA,EACA,OAAS,EAAA,IAAA;AACX,CAAC,EAAA;AAED,SAAS,WAAY,CAAA,QAAA,EAAe,QAAgB,GAAA,IAAA,EAAM,WAAW,EAAI,EAAA;AACvE,EAAA,IAAI,OAAU,GAAA,CAAA,CAAA;AAEd,EAAO,OAAA,QAAA,CAAS,GAAI,CAAA,CAAC,QAAkB,KAAA;AACrC,IAAA,MAAM,EAAK,GAAA,CAAA,EAAG,QAAQ,CAAA,EAAG,OAAS,EAAA,CAAA,CAAA,CAAA;AAClC,IAAM,MAAA,OAAA,GAAU,iCACX,QADW,CAAA,EAAA;AAAA,MAEd,EAAA;AAAA,MACA,GAAK,EAAA,EAAA;AAAA,MACL,QAAA;AAAA,KACF,CAAA,CAAA;AAEA,IAAA,IAAI,SAAS,QAAU,EAAA;AACrB,MAAA,OAAA,CAAQ,WAAW,WAAY,CAAA,QAAA,CAAS,UAAU,EAAI,EAAA,CAAA,EAAG,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,KAChE;AAEA,IAAO,OAAA,OAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTab.mjs","sources":["../../../src/modules/NavTab.ts"],"sourcesContent":["/**\n * 多标签数据\n */\nimport { defineStore } from \"pinia\";\nimport {\n LocationQuery,\n RouteLocationNormalized,\n RouteMeta,\n RouteParams\n} from \"vue-router\";\nimport { useKeepAliveStore } from \"./KeepAlive\";\nimport { NAV_TAB_ID } from \"../types\";\n\nexport interface NavTabsState {\n path: string;\n fullPath: string;\n query: LocationQuery;\n params: RouteParams;\n meta: RouteMeta | any;\n name: string;\n}\n\n\nexport const useNavTabsStore = defineStore(NAV_TAB_ID, {\n state: () => {\n return {\n // 多标签列表\n list: [] as NavTabsState[],\n // 当前激活的地址\n activeKey: \"\" as string\n };\n },\n getters: {\n getList: (state): NavTabsState[] => {\n return state.list;\n },\n getActiveKey: (state): string => {\n return state.activeKey;\n }\n },\n actions: {\n /**\n * 设置激活的标签\n * @param key\n */\n setActiveKey(key: string) {\n this.activeKey = key;\n },\n /**\n * 保存标签信息\n * @param route\n */\n save(route: RouteLocationNormalized) {\n if (!route.meta?.title) {\n // 没有设置title,则不进入缓存\n return;\n }\n const flag = this.list.some(\n (item: NavTabsState) => item.path === route.path\n );\n if (flag) {\n // 如果有相同的路由变化,更新对应的参数信息\n this.list.forEach((item: NavTabsState) => {\n if (item.path === route.path) {\n item.query = route.query;\n item.fullPath = route.fullPath;\n item.params = route.params;\n item.meta = route.meta;\n item.name = <string>route.name || \"\";\n }\n });\n return;\n }\n const data: NavTabsState = {\n path: route.path,\n fullPath: route.fullPath,\n query: route.query,\n params: route.params,\n meta: route.meta,\n name: <string>route.name || \"\"\n };\n this.list.push(data);\n },\n /**\n * 删除标签\n * @param key url路径\n */\n deleteTabs(key: string) {\n const { deleteKeepAlive } = useKeepAliveStore();\n const curRoute: any = this.list.find((v) => v.fullPath === key);\n this.list.splice(\n this.list.findIndex((v) => v.fullPath === key),\n 1\n );\n // 根据name 删除缓存的组件\n if (curRoute
|
|
1
|
+
{"version":3,"file":"NavTab.mjs","sources":["../../../src/modules/NavTab.ts"],"sourcesContent":["/**\n * 多标签数据\n */\nimport { defineStore } from \"pinia\";\nimport {\n LocationQuery,\n RouteLocationNormalized,\n RouteMeta,\n RouteParams\n} from \"vue-router\";\nimport { useKeepAliveStore } from \"./KeepAlive\";\nimport { NAV_TAB_ID } from \"../types\";\n\nexport interface NavTabsState {\n path: string;\n fullPath: string;\n query: LocationQuery;\n params: RouteParams;\n meta: RouteMeta | any;\n name: string;\n}\n\n\nexport const useNavTabsStore = defineStore(NAV_TAB_ID, {\n state: () => {\n return {\n // 多标签列表\n list: [] as NavTabsState[],\n // 当前激活的地址\n activeKey: \"\" as string\n };\n },\n getters: {\n getList: (state): NavTabsState[] => {\n return state.list;\n },\n getActiveKey: (state): string => {\n return state.activeKey;\n }\n },\n actions: {\n /**\n * 设置激活的标签\n * @param key\n */\n setActiveKey(key: string) {\n this.activeKey = key;\n },\n /**\n * 保存标签信息\n * @param route\n */\n save(route: RouteLocationNormalized) {\n if (!route.meta?.title) {\n // 没有设置title,则不进入缓存\n return;\n }\n const flag = this.list.some(\n (item: NavTabsState) => item.path === route.path\n );\n if (flag) {\n // 如果有相同的路由变化,更新对应的参数信息\n this.list.forEach((item: NavTabsState) => {\n if (item.path === route.path) {\n item.query = route.query;\n item.fullPath = route.fullPath;\n item.params = route.params;\n item.meta = route.meta;\n item.name = <string>route.name || \"\";\n }\n });\n return;\n }\n const data: NavTabsState = {\n path: route.path,\n fullPath: route.fullPath,\n query: route.query,\n params: route.params,\n meta: route.meta,\n name: <string>route.name || \"\"\n };\n this.list.push(data);\n },\n /**\n * 删除标签\n * @param key url路径\n */\n deleteTabs(key: string) {\n const { deleteKeepAlive } = useKeepAliveStore();\n const curRoute: any = this.list.find((v) => v.fullPath === key);\n this.list.splice(\n this.list.findIndex((v) => v.fullPath === key),\n 1\n );\n // 根据name 删除缓存的组件\n if (curRoute?.name) {\n deleteKeepAlive(curRoute.name);\n }\n },\n /**\n * 设置标题\n * @param title 标题\n * @param path url\n */\n setNavTitle(title: string, path: string) {\n for (let i = 0; i < this.list.length; i++) {\n if (this.list[i].fullPath === path) {\n this.list[i].meta.title = title;\n break;\n }\n }\n }\n },\n persist: true\n});\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/modules/Menu.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { defineStore } from "pinia";
|
|
5
5
|
import { MENU_ID } from "../types";
|
|
6
6
|
|
|
7
|
-
export const useMenuStore =
|
|
7
|
+
export const useMenuStore = defineStore(MENU_ID, {
|
|
8
8
|
state: () => {
|
|
9
9
|
return {
|
|
10
10
|
// 菜单数据
|
|
@@ -22,8 +22,28 @@ export const useMenuStore = defineStore(MENU_ID, {
|
|
|
22
22
|
},
|
|
23
23
|
actions: {
|
|
24
24
|
save(data: any) {
|
|
25
|
-
this.list = data;
|
|
25
|
+
this.list = _addMenuIds(data);
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
persist: true
|
|
29
29
|
});
|
|
30
|
+
|
|
31
|
+
function _addMenuIds(menuData: any, parentId: any = null, idPrefix = "") {
|
|
32
|
+
let counter = 0;
|
|
33
|
+
|
|
34
|
+
return menuData.map((menuItem: any) => {
|
|
35
|
+
const id = `${idPrefix}${counter++}`;
|
|
36
|
+
const newItem = {
|
|
37
|
+
...menuItem,
|
|
38
|
+
id,
|
|
39
|
+
key: id,
|
|
40
|
+
parentId
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
if (menuItem.children) {
|
|
44
|
+
newItem.children = _addMenuIds(menuItem.children, id, `${id}-`);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return newItem;
|
|
48
|
+
});
|
|
49
|
+
}
|