@ditari/store 5.0.11 → 5.1.0

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.
@@ -6,7 +6,6 @@ var useDicStore = require('./modules/useDicStore.cjs');
6
6
  var useKeepAliveStore = require('./modules/useKeepAliveStore.cjs');
7
7
  var useMenuStore = require('./modules/useMenuStore.cjs');
8
8
  var useNavTabStore = require('./modules/useNavTabStore.cjs');
9
- var useNoStore = require('./modules/useNoStore.cjs');
10
9
  var useUserStore = require('./modules/useUserStore.cjs');
11
10
 
12
11
  "use strict";
@@ -17,6 +16,5 @@ exports.useDicStore = useDicStore.default;
17
16
  exports.useKeepAliveStore = useKeepAliveStore.default;
18
17
  exports.useMenuStore = useMenuStore.default;
19
18
  exports.useNavTabStore = useNavTabStore.useNavTabStore;
20
- exports.useNoStore = useNoStore.default;
21
19
  exports.useUserStore = useUserStore.default;
22
20
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAppStore.cjs","sources":["../../../src/modules/useAppStore.ts"],"sourcesContent":["import { theme } from \"ant-design-vue\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { APP_ID } from \"../types\";\r\nimport type { ThemeConfig } from \"ant-design-vue/es/config-provider/context\";\r\n\r\nexport interface App {\r\n theme: ThemeConfig;\r\n // 模式:亮色和深色\r\n modeConfig: Mode;\r\n layout: {\r\n // 侧边栏宽度\r\n sideWidth: number;\r\n // 头高度\r\n headerHeight: number;\r\n // 左侧菜单收缩时候的宽度\r\n collapsedWidth: number;\r\n // 左侧菜单收缩状态\r\n collapsed: boolean;\r\n };\r\n // 紧凑模式\r\n isCompact: boolean;\r\n // 头部导航背样式配置\r\n headerTokenStyle: Record<string, string>;\r\n sideTokenStyle: Record<string, string>;\r\n // 刷新状态,当从添加页跳转到列表页时使用\r\n refresh: boolean;\r\n}\r\n\r\nexport interface Mode {\r\n mode: string;\r\n list: {\r\n value: string;\r\n label: string;\r\n }[];\r\n}\r\n\r\nconst useAppStore = defineStore(APP_ID, {\r\n state: (): App => {\r\n return {\r\n theme: {\r\n // 算法\r\n algorithm: theme.defaultAlgorithm,\r\n token: {}\r\n },\r\n modeConfig: {\r\n mode: \"light\",\r\n list: [\r\n { value: \"light\", label: \"亮色\" },\r\n { value: \"dark\", label: \"深色\" },\r\n { value: \"os\", label: \"跟随系统\" }\r\n ]\r\n },\r\n isCompact: true,\r\n layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\r\n },\r\n headerTokenStyle: {\r\n bgColor: \"#1677ff\",\r\n txtColor: \"#fff\"\r\n },\r\n sideTokenStyle: {\r\n bgColor: \" #0F6BD9\"\r\n },\r\n refresh: false\r\n };\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useAppStore;\r\n"],"names":["defineStore","APP_ID","theme"],"mappings":";;;;;;;;;AAqCM,MAAA,WAAA,GAAcA,kBAAYC,YAAQ,EAAA;AAAA,EACtC,OAAO,MAAW;AAChB,IAAO,OAAA;AAAA,MACL,KAAO,EAAA;AAAA;AAAA,QAEL,WAAWC,kBAAM,CAAA,gBAAA;AAAA,QACjB,OAAO;AAAC,OACV;AAAA,MACA,UAAY,EAAA;AAAA,QACV,IAAM,EAAA,OAAA;AAAA,QACN,IAAM,EAAA;AAAA,UACJ,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,cAAK,EAAA;AAAA,UAC9B,EAAE,KAAA,EAAO,MAAQ,EAAA,KAAA,EAAO,cAAK,EAAA;AAAA,UAC7B,EAAE,KAAA,EAAO,IAAM,EAAA,KAAA,EAAO,0BAAO;AAAA;AAC/B,OACF;AAAA,MACA,SAAW,EAAA,IAAA;AAAA,MACX,MAAQ,EAAA;AAAA,QACN,SAAW,EAAA,GAAA;AAAA,QACX,YAAc,EAAA,EAAA;AAAA,QACd,cAAgB,EAAA,EAAA;AAAA,QAChB,SAAW,EAAA;AAAA,OACb;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,OAAS,EAAA,SAAA;AAAA,QACT,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,OAAS,EAAA;AAAA,OACX;AAAA,MACA,OAAS,EAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useAppStore.cjs","sources":["../../../src/modules/useAppStore.ts"],"sourcesContent":["import { theme } from \"ant-design-vue\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { APP_ID } from \"../types\";\r\nimport type { ThemeConfig } from \"ant-design-vue/es/config-provider/context\";\r\n\r\nexport interface App {\r\n theme: ThemeConfig;\r\n // 模式:亮色和深色\r\n modeConfig: Mode;\r\n layout: {\r\n // 侧边栏宽度\r\n sideWidth: number;\r\n // 头高度\r\n headerHeight: number;\r\n // 左侧菜单收缩时候的宽度\r\n collapsedWidth: number;\r\n // 左侧菜单收缩状态\r\n collapsed: boolean;\r\n };\r\n // 紧凑模式\r\n isCompact: boolean;\r\n // 头部导航背样式配置\r\n headerTokenStyle: Record<string, string>;\r\n sideTokenStyle: Record<string, string>;\r\n // 刷新状态,当从添加页跳转到列表页时使用\r\n refresh: boolean;\r\n}\r\n\r\nexport interface Mode {\r\n mode: string;\r\n list: {\r\n value: string;\r\n label: string;\r\n }[];\r\n}\r\n\r\nconst useAppStore = defineStore(APP_ID, {\r\n state: (): App => {\r\n return {\r\n theme: {\r\n // 算法\r\n algorithm: theme.defaultAlgorithm,\r\n token: {}\r\n },\r\n modeConfig: {\r\n mode: \"light\",\r\n list: [\r\n { value: \"light\", label: \"亮色\" },\r\n { value: \"dark\", label: \"深色\" },\r\n { value: \"os\", label: \"跟随系统\" }\r\n ]\r\n },\r\n isCompact: true,\r\n layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\r\n },\r\n headerTokenStyle: {\r\n bgColor: \"#1677ff\",\r\n txtColor: \"#fff\"\r\n },\r\n sideTokenStyle: {\r\n bgColor: \" #0F6BD9\"\r\n },\r\n refresh: false\r\n };\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useAppStore;\r\n"],"names":["defineStore","APP_ID","theme"],"mappings":";;;;;;;;;AAqCA,MAAM,WAAA,GAAcA,kBAAYC,YAAA,EAAQ;AAAA,EACtC,OAAO,MAAW;AAChB,IAAA,OAAO;AAAA,MACL,KAAA,EAAO;AAAA;AAAA,QAEL,WAAWC,kBAAA,CAAM,gBAAA;AAAA,QACjB,OAAO;AAAC,OACV;AAAA,MACA,UAAA,EAAY;AAAA,QACV,IAAA,EAAM,OAAA;AAAA,QACN,IAAA,EAAM;AAAA,UACJ,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,cAAA,EAAK;AAAA,UAC9B,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,cAAA,EAAK;AAAA,UAC7B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,0BAAA;AAAO;AAC/B,OACF;AAAA,MACA,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA,QACN,SAAA,EAAW,GAAA;AAAA,QACX,YAAA,EAAc,EAAA;AAAA,QACd,cAAA,EAAgB,EAAA;AAAA,QAChB,SAAA,EAAW;AAAA,OACb;AAAA,MACA,gBAAA,EAAkB;AAAA,QAChB,OAAA,EAAS,SAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,cAAA,EAAgB;AAAA,QACd,OAAA,EAAS;AAAA,OACX;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBreadStore.cjs","sources":["../../../src/modules/useBreadStore.ts"],"sourcesContent":["/**\r\n * 面包屑\r\n * @author 余春林\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { BREADCRUMB_ID } from \"../types\";\r\n\r\nexport interface BreadcrumbState {\r\n breadcrumbs: [];\r\n}\r\n\r\nexport const useBreadStore = defineStore(BREADCRUMB_ID, {\r\n state: (): BreadcrumbState => ({\r\n breadcrumbs: []\r\n }),\r\n getters: {\r\n getBreadcrumb: state => state.breadcrumbs\r\n },\r\n actions: {\r\n saveBreadcrumb(data: never) {\r\n this.breadcrumbs = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n"],"names":["defineStore","BREADCRUMB_ID"],"mappings":";;;;;;AAYa,MAAA,aAAA,GAAgBA,kBAAYC,mBAAe,EAAA;AAAA,EACtD,OAAO,OAAwB;AAAA,IAC7B,aAAa;AAAC,GAChB,CAAA;AAAA,EACA,OAAS,EAAA;AAAA,IACP,aAAA,EAAe,WAAS,KAAM,CAAA;AAAA,GAChC;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAe,IAAa,EAAA;AAC1B,MAAA,IAAA,CAAK,WAAc,GAAA,IAAA;AAAA;AACrB,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useBreadStore.cjs","sources":["../../../src/modules/useBreadStore.ts"],"sourcesContent":["/**\r\n * 面包屑\r\n * @author 余春林\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { BREADCRUMB_ID } from \"../types\";\r\n\r\nexport interface BreadcrumbState {\r\n breadcrumbs: [];\r\n}\r\n\r\nexport const useBreadStore = defineStore(BREADCRUMB_ID, {\r\n state: (): BreadcrumbState => ({\r\n breadcrumbs: []\r\n }),\r\n getters: {\r\n getBreadcrumb: state => state.breadcrumbs\r\n },\r\n actions: {\r\n saveBreadcrumb(data: never) {\r\n this.breadcrumbs = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n"],"names":["defineStore","BREADCRUMB_ID"],"mappings":";;;;;;AAYO,MAAM,aAAA,GAAgBA,kBAAYC,mBAAA,EAAe;AAAA,EACtD,OAAO,OAAwB;AAAA,IAC7B,aAAa;AAAC,GAChB,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,aAAA,EAAe,WAAS,KAAA,CAAM;AAAA,GAChC;AAAA,EACA,OAAA,EAAS;AAAA,IACP,eAAe,IAAA,EAAa;AAC1B,MAAA,IAAA,CAAK,WAAA,GAAc,IAAA;AAAA,IACrB;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -9,60 +9,17 @@ var types = require('../types.cjs');
9
9
  const useDicStore = pinia.defineStore(types.DATA_DICTIONARY_ID, {
10
10
  state: () => ({
11
11
  dataDic: {},
12
- // 初始化为空对象
13
12
  cacheDuration: 5 * 60 * 1e3
14
13
  // 缓存有效期:5分钟(单位:毫秒)
15
14
  }),
15
+ // 💡 优化:Getters 仅保留无参数的计算属性,如果不需要则保持为空。
16
16
  getters: {
17
- /**
18
- * 根据 key 获取字典列表
19
- * @param state
20
- */
21
- getDicByKey: (state) => {
22
- return (key) => {
23
- var _a;
24
- return ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
25
- };
26
- },
27
- /**
28
- * 返回value匹配到的整个对象
29
- * @param state
30
- */
31
- getDicObjByValue: (state) => {
32
- return (key, value) => {
33
- var _a;
34
- const rs = ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
35
- return rs.find((item) => item.value === value) || {};
36
- };
37
- },
38
- /**
39
- * 根据字典名称和字典的 value 获取对应的中文
40
- * @param state
41
- */
42
- getDicTextByValue: (state) => {
43
- return (key, value) => {
44
- var _a;
45
- const rs = ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
46
- return rs.filter(
47
- (item) => item.value === value
48
- ).map((item) => item.label).join("");
49
- };
50
- },
51
- /**
52
- * 根据文字匹配对应的 value
53
- * @param state
54
- */
55
- getDicValueByText: (state) => {
56
- return (key, text) => {
57
- var _a;
58
- const rs = ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
59
- return rs.filter(
60
- (item) => item.label === text
61
- ).map((item) => item.value).join("");
62
- };
63
- }
17
+ // 示例:如果需要获取所有字典的 Key 列表,可以放在这里
18
+ // getAllKeys: state => Object.keys(state.dataDic),
64
19
  },
20
+ // 💡 优化:Actions 包含所有数据操作和有参数的查询方法。
65
21
  actions: {
22
+ // --- 缓存/数据操作 Actions (保持不变) ---
66
23
  // 检查缓存是否过期
67
24
  isCacheExpired(name) {
68
25
  if (this.cacheDuration === 0) return false;
@@ -71,30 +28,66 @@ const useDicStore = pinia.defineStore(types.DATA_DICTIONARY_ID, {
71
28
  const now = Date.now();
72
29
  return now - cache.timestamp > this.cacheDuration;
73
30
  },
74
- /**
75
- * 动态读取下拉字典的时候使用
76
- * 根据key保存字典数据
77
- * @param key key
78
- * @param data 字典数据
79
- */
31
+ // 根据 key 保存字典数据
80
32
  saveDicByKey(key, data) {
81
33
  this.dataDic[key] = {
82
34
  value: data,
83
35
  timestamp: Date.now()
84
36
  };
85
37
  },
86
- /**
87
- * 一次性存入数据字典的时候使用
88
- * 数据格式: {key1:[{value:'',label:''}],key2:[{value:'',label:''}]}
89
- *
90
- */
38
+ // 一次性存入数据字典
91
39
  saveAll(data) {
92
40
  Object.entries(data).forEach(([key, value]) => {
93
41
  this.dataDic[key] = {
94
42
  value,
95
- timestamp: 1314521
43
+ timestamp: Date.now()
44
+ // 统一使用当前时间戳
96
45
  };
97
46
  });
47
+ },
48
+ // --- 查询 Actions (原 Getters 优化) ---
49
+ /**
50
+ * 1. 根据 key 获取字典列表 (原 getDicByKey)
51
+ * @param key 字典的 key
52
+ */
53
+ getDicByKey(key) {
54
+ var _a;
55
+ return ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
56
+ },
57
+ /**
58
+ * 2. 返回 value 匹配到的整个对象 (原 getDicObjByValue)
59
+ * @param key 字典的 key
60
+ * @param value 字典项的值
61
+ */
62
+ getDicObjByValue(key, value) {
63
+ var _a;
64
+ const rs = ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
65
+ const result = rs.find(
66
+ (item) => item.value === String(value)
67
+ );
68
+ return result || null;
69
+ },
70
+ /**
71
+ * 3. 根据字典名称和字典的 value 获取对应的中文 (原 getDicTextByValue)
72
+ */
73
+ getDicTextByValue(key, value) {
74
+ var _a;
75
+ const rs = ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
76
+ const item = rs.find(
77
+ (item2) => item2.value === value
78
+ );
79
+ return (item == null ? void 0 : item.label) || "";
80
+ },
81
+ /**
82
+ * 4. 根据文字匹配对应的 value (原 getDicValueByText)
83
+ */
84
+ getDicValueByText(key, text) {
85
+ var _a;
86
+ const rs = ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
87
+ const item = rs.find(
88
+ (item2) => item2.label === text
89
+ );
90
+ return (item == null ? void 0 : item.value) || "";
98
91
  }
99
92
  },
100
93
  persist: true
@@ -1 +1 @@
1
- {"version":3,"file":"useDicStore.cjs","sources":["../../../src/modules/useDicStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { DATA_DICTIONARY_ID } from \"../types\";\r\n\r\n// 定义字典项的类型\r\nexport interface DictionaryItem {\r\n value: string; // 字典项的值\r\n label: string; // 字典项的显示文本\r\n}\r\n\r\n// 定义字典列表的类型\r\nexport interface Dictionary {\r\n [key: string]: {\r\n value: DictionaryItem[]; // 数组字典\r\n timestamp: number; // 数据缓存时间戳\r\n };\r\n}\r\n\r\n/**\r\n * {key:[]}\r\n */\r\nexport interface DictionaryList {\r\n [key: string]: DictionaryItem[]; // 数组字典\r\n}\r\n\r\n// 定义 Store 的状态类型\r\nexport interface DataDictionaryState {\r\n dataDic: Dictionary; // 使用 DictionaryList 替换 any\r\n cacheDuration: number; //如果 cacheDuration等于0,不用发送请求更新数据\r\n}\r\n\r\nconst useDicStore = defineStore(DATA_DICTIONARY_ID, {\r\n state: (): DataDictionaryState => ({\r\n dataDic: {}, // 初始化为空对象\r\n cacheDuration: 5 * 60 * 1000 // 缓存有效期:5分钟(单位:毫秒)\r\n }),\r\n getters: {\r\n /**\r\n * 根据 key 获取字典列表\r\n * @param state\r\n */\r\n getDicByKey: state => {\r\n return (key: string): DictionaryItem[] => {\r\n return state.dataDic[key]?.value || [];\r\n };\r\n },\r\n \r\n /**\r\n * 返回value匹配到的整个对象\r\n * @param state\r\n */\r\n getDicObjByValue: state => {\r\n return (\r\n key: string,\r\n value: never\r\n ): DictionaryItem => {\r\n const rs = state.dataDic[key]?.value || [];\r\n return (\r\n rs.find(item => item.value === value) ||\r\n ({} as DictionaryItem)\r\n );\r\n };\r\n },\r\n\r\n /**\r\n * 根据字典名称和字典的 value 获取对应的中文\r\n * @param state\r\n */\r\n getDicTextByValue: state => {\r\n return (key: string, value: string): string => {\r\n const rs = state.dataDic[key]?.value || [];\r\n return rs\r\n .filter(\r\n (item: DictionaryItem) => item.value === value\r\n )\r\n .map((item: DictionaryItem) => item.label)\r\n .join(\"\");\r\n };\r\n },\r\n\r\n /**\r\n * 根据文字匹配对应的 value\r\n * @param state\r\n */\r\n getDicValueByText: state => {\r\n return (key: string, text: string): string => {\r\n const rs = state.dataDic[key]?.value || [];\r\n return rs\r\n .filter(\r\n (item: DictionaryItem) => item.label === text\r\n )\r\n .map((item: DictionaryItem) => item.value)\r\n .join(\"\");\r\n };\r\n }\r\n },\r\n actions: {\r\n // 检查缓存是否过期\r\n isCacheExpired(name: string): boolean {\r\n // 缓存时间为0,说明不用检查时间来进行触发请求\r\n if (this.cacheDuration === 0) return false;\r\n const cache = this.dataDic[name];\r\n if (!cache) return true; // 视为过期\r\n const now = Date.now();\r\n return now - cache.timestamp > this.cacheDuration; // 超过有效期\r\n },\r\n /**\r\n * 动态读取下拉字典的时候使用\r\n * 根据key保存字典数据\r\n * @param key key\r\n * @param data 字典数据\r\n */\r\n saveDicByKey(key: string, data: never) {\r\n this.dataDic[key] = {\r\n value: data,\r\n timestamp: Date.now()\r\n };\r\n },\r\n /**\r\n * 一次性存入数据字典的时候使用\r\n * 数据格式: {key1:[{value:'',label:''}],key2:[{value:'',label:''}]}\r\n *\r\n */\r\n saveAll(data: DictionaryList) {\r\n Object.entries(data).forEach(([key, value]) => {\r\n this.dataDic[key] = {\r\n value,\r\n timestamp: 1314521\r\n };\r\n });\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useDicStore;\r\n"],"names":["defineStore","DATA_DICTIONARY_ID"],"mappings":"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"}
1
+ {"version":3,"file":"useDicStore.cjs","sources":["../../../src/modules/useDicStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { DATA_DICTIONARY_ID } from \"../types\";\r\n\r\n// 定义字典项的类型\r\nexport interface DictionaryItem {\r\n value: string; // 字典项的值\r\n label: string; // 字典项的显示文本\r\n}\r\n\r\n// 定义字典列表的类型\r\nexport interface Dictionary {\r\n [key: string]: {\r\n value: DictionaryItem[]; // 数组字典\r\n timestamp: number; // 数据缓存时间戳\r\n };\r\n}\r\n\r\n/**\r\n * {key:[]}\r\n */\r\nexport interface DictionaryList {\r\n [key: string]: DictionaryItem[]; // 数组字典\r\n}\r\n\r\n// 定义 Store 的状态类型\r\nexport interface DataDictionaryState {\r\n dataDic: Dictionary;\r\n cacheDuration: number;\r\n}\r\n\r\nconst useDicStore = defineStore(DATA_DICTIONARY_ID, {\r\n state: (): DataDictionaryState => ({\r\n dataDic: {},\r\n cacheDuration: 5 * 60 * 1000 // 缓存有效期:5分钟(单位:毫秒)\r\n }),\r\n\r\n // 💡 优化:Getters 仅保留无参数的计算属性,如果不需要则保持为空。\r\n getters: {\r\n // 示例:如果需要获取所有字典的 Key 列表,可以放在这里\r\n // getAllKeys: state => Object.keys(state.dataDic),\r\n },\r\n\r\n // 💡 优化:Actions 包含所有数据操作和有参数的查询方法。\r\n actions: {\r\n // --- 缓存/数据操作 Actions (保持不变) ---\r\n\r\n // 检查缓存是否过期\r\n isCacheExpired(name: string): boolean {\r\n // 使用 this 访问 state\r\n if (this.cacheDuration === 0) return false;\r\n const cache = this.dataDic[name];\r\n if (!cache) return true;\r\n const now = Date.now();\r\n return now - cache.timestamp > this.cacheDuration;\r\n },\r\n\r\n // 根据 key 保存字典数据\r\n saveDicByKey(key: string, data: DictionaryItem[]) {\r\n // 修正 data 类型\r\n this.dataDic[key] = {\r\n value: data,\r\n timestamp: Date.now()\r\n };\r\n },\r\n\r\n // 一次性存入数据字典\r\n saveAll(data: DictionaryList) {\r\n Object.entries(data).forEach(([key, value]) => {\r\n this.dataDic[key] = {\r\n value,\r\n timestamp: Date.now() // 统一使用当前时间戳\r\n };\r\n });\r\n },\r\n\r\n // --- 查询 Actions (原 Getters 优化) ---\r\n\r\n /**\r\n * 1. 根据 key 获取字典列表 (原 getDicByKey)\r\n * @param key 字典的 key\r\n */\r\n getDicByKey(key: string): DictionaryItem[] {\r\n // 直接使用 this 访问 state\r\n return this.dataDic[key]?.value || [];\r\n },\r\n\r\n /**\r\n * 2. 返回 value 匹配到的整个对象 (原 getDicObjByValue)\r\n * @param key 字典的 key\r\n * @param value 字典项的值\r\n */\r\n getDicObjByValue(\r\n key: string,\r\n value: string | number\r\n ): DictionaryItem | null {\r\n // 修正 value 类型为 string | number,返回类型为 DictionaryItem | null\r\n const rs = this.dataDic[key]?.value || [];\r\n const result = rs.find(\r\n item => item.value === String(value)\r\n );\r\n // 返回 null 更安全,避免返回空对象 {} as DictionaryItem\r\n return result || null;\r\n },\r\n\r\n /**\r\n * 3. 根据字典名称和字典的 value 获取对应的中文 (原 getDicTextByValue)\r\n */\r\n getDicTextByValue(key: string, value: string): string {\r\n const rs = this.dataDic[key]?.value || [];\r\n const item = rs.find(\r\n (item: DictionaryItem) => item.value === value\r\n );\r\n // 优化:使用 find 比 filter/map/join 效率更高,且只会有一个结果\r\n return item?.label || \"\";\r\n },\r\n\r\n /**\r\n * 4. 根据文字匹配对应的 value (原 getDicValueByText)\r\n */\r\n getDicValueByText(key: string, text: string): string {\r\n const rs = this.dataDic[key]?.value || [];\r\n const item = rs.find(\r\n (item: DictionaryItem) => item.label === text\r\n );\r\n // 优化:使用 find 比 filter/map/join 效率更高,且只会有一个结果\r\n return item?.value || \"\";\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useDicStore;\r\n"],"names":["defineStore","DATA_DICTIONARY_ID","item"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useKeepAliveStore.cjs","sources":["../../../src/modules/useKeepAliveStore.ts"],"sourcesContent":["/**\r\n * 缓存组件name数据\r\n */\r\nimport { type RouteLocationNormalized } from \"vue-router\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { KEEP_ALIVE_ID } from \"../types\";\r\n\r\nconst useKeepAliveStore = defineStore(KEEP_ALIVE_ID, {\r\n state: () => {\r\n return {\r\n list: [] as string[]\r\n };\r\n },\r\n getters: {\r\n get: (state): string[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 删除已经缓存的组件\r\n * @param name 组件名称(必须唯一)\r\n */\r\n deleteKeepAlive(name: string) {\r\n this.list.splice(\r\n this.list.findIndex((key: string) => key === name),\r\n 1\r\n );\r\n },\r\n /**\r\n * 保存要缓存的组件名称\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n const name = <string>route.name;\r\n if (!name) {\r\n return;\r\n }\r\n const flag = this.list.some((key: string) => key === name);\r\n if (!flag) {\r\n this.list.push(name);\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useKeepAliveStore;\r\n"],"names":["defineStore","KEEP_ALIVE_ID"],"mappings":";;;;;;;;AAQM,MAAA,iBAAA,GAAoBA,kBAAYC,mBAAe,EAAA;AAAA,EACnD,OAAO,MAAM;AACX,IAAO,OAAA;AAAA,MACL,MAAM;AAAC,KACT;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,GAAA,EAAK,CAAC,KAAoB,KAAA;AACxB,MAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AACf,GACF;AAAA,EACA,OAAS,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,gBAAgB,IAAc,EAAA;AAC5B,MAAA,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,QACR,KAAK,IAAK,CAAA,SAAA,CAAU,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,KACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAK,KAAgC,EAAA;AACnC,MAAA,MAAM,OAAe,KAAM,CAAA,IAAA;AAC3B,MAAA,IAAI,CAAC,IAAM,EAAA;AACT,QAAA;AAAA;AAEF,MAAA,MAAM,OAAO,IAAK,CAAA,IAAA,CAAK,KAAK,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AACzD,MAAA,IAAI,CAAC,IAAM,EAAA;AACT,QAAK,IAAA,CAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA;AACrB;AACF,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useKeepAliveStore.cjs","sources":["../../../src/modules/useKeepAliveStore.ts"],"sourcesContent":["/**\r\n * 缓存组件name数据\r\n */\r\nimport { type RouteLocationNormalized } from \"vue-router\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { KEEP_ALIVE_ID } from \"../types\";\r\n\r\nconst useKeepAliveStore = defineStore(KEEP_ALIVE_ID, {\r\n state: () => {\r\n return {\r\n list: [] as string[]\r\n };\r\n },\r\n getters: {\r\n get: (state): string[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 删除已经缓存的组件\r\n * @param name 组件名称(必须唯一)\r\n */\r\n deleteKeepAlive(name: string) {\r\n this.list.splice(\r\n this.list.findIndex((key: string) => key === name),\r\n 1\r\n );\r\n },\r\n /**\r\n * 保存要缓存的组件名称\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n const name = <string>route.name;\r\n if (!name) {\r\n return;\r\n }\r\n const flag = this.list.some((key: string) => key === name);\r\n if (!flag) {\r\n this.list.push(name);\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useKeepAliveStore;\r\n"],"names":["defineStore","KEEP_ALIVE_ID"],"mappings":";;;;;;;;AAQA,MAAM,iBAAA,GAAoBA,kBAAYC,mBAAA,EAAe;AAAA,EACnD,OAAO,MAAM;AACX,IAAA,OAAO;AAAA,MACL,MAAM;AAAC,KACT;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,GAAA,EAAK,CAAC,KAAA,KAAoB;AACxB,MAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IACf;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,gBAAgB,IAAA,EAAc;AAC5B,MAAA,IAAA,CAAK,IAAA,CAAK,MAAA;AAAA,QACR,KAAK,IAAA,CAAK,SAAA,CAAU,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAK,KAAA,EAAgC;AACnC,MAAA,MAAM,OAAe,KAAA,CAAM,IAAA;AAC3B,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA;AAAA,MACF;AACA,MAAA,MAAM,OAAO,IAAA,CAAK,IAAA,CAAK,KAAK,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AACzD,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAA,CAAK,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,MACrB;AAAA,IACF;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuStore.cjs","sources":["../../../src/modules/useMenuStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { MENU_ID } from \"../types\";\r\nimport type { ItemType } from \"ant-design-vue\";\r\n\r\nexport type ExtendedItemType = ItemType & {\r\n id?: string;\r\n parentId?: string;\r\n};\r\n\r\nexport interface Menu {\r\n openKeys: string[];\r\n selectedKeys: string[];\r\n data: ExtendedItemType[];\r\n}\r\n\r\nconst useMenuStore = defineStore(MENU_ID, {\r\n state: (): Menu => {\r\n return {\r\n openKeys: [],\r\n selectedKeys: [],\r\n data: []\r\n };\r\n },\r\n actions: {\r\n save(data: ExtendedItemType[]) {\r\n this.data = _addMenuIds(data);\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nfunction _addMenuIds(\r\n menuData: any,\r\n parentId: any = null,\r\n idPrefix = \"\"\r\n) {\r\n let counter = 0;\r\n\r\n return menuData.map((menuItem: any) => {\r\n const id = `${idPrefix}${counter++}`;\r\n const newItem = {\r\n ...menuItem,\r\n id,\r\n key: id,\r\n parentId\r\n };\r\n\r\n if (menuItem.children) {\r\n newItem.children = _addMenuIds(\r\n menuItem.children,\r\n id,\r\n `${id}-`\r\n );\r\n }\r\n\r\n return newItem;\r\n });\r\n}\r\n\r\nexport default useMenuStore;\r\n"],"names":["defineStore","MENU_ID"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBM,MAAA,YAAA,GAAeA,kBAAYC,aAAS,EAAA;AAAA,EACxC,OAAO,MAAY;AACjB,IAAO,OAAA;AAAA,MACL,UAAU,EAAC;AAAA,MACX,cAAc,EAAC;AAAA,MACf,MAAM;AAAC,KACT;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,KAAK,IAA0B,EAAA;AAC7B,MAAK,IAAA,CAAA,IAAA,GAAO,YAAY,IAAI,CAAA;AAAA;AAC9B,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;AAED,SAAS,WACP,CAAA,QAAA,EACA,QAAgB,GAAA,IAAA,EAChB,WAAW,EACX,EAAA;AACA,EAAA,IAAI,OAAU,GAAA,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;AAClC,IAAM,MAAA,OAAA,GAAU,iCACX,QADW,CAAA,EAAA;AAAA,MAEd,EAAA;AAAA,MACA,GAAK,EAAA,EAAA;AAAA,MACL;AAAA,KACF,CAAA;AAEA,IAAA,IAAI,SAAS,QAAU,EAAA;AACrB,MAAA,OAAA,CAAQ,QAAW,GAAA,WAAA;AAAA,QACjB,QAAS,CAAA,QAAA;AAAA,QACT,EAAA;AAAA,QACA,GAAG,EAAE,CAAA,CAAA;AAAA,OACP;AAAA;AAGF,IAAO,OAAA,OAAA;AAAA,GACR,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useMenuStore.cjs","sources":["../../../src/modules/useMenuStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { MENU_ID } from \"../types\";\r\nimport type { ItemType } from \"ant-design-vue\";\r\n\r\nexport type ExtendedItemType = ItemType & {\r\n id?: string;\r\n parentId?: string;\r\n};\r\n\r\nexport interface Menu {\r\n openKeys: string[];\r\n selectedKeys: string[];\r\n data: ExtendedItemType[];\r\n}\r\n\r\nconst useMenuStore = defineStore(MENU_ID, {\r\n state: (): Menu => {\r\n return {\r\n openKeys: [],\r\n selectedKeys: [],\r\n data: []\r\n };\r\n },\r\n actions: {\r\n save(data: ExtendedItemType[]) {\r\n this.data = _addMenuIds(data);\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nfunction _addMenuIds(\r\n menuData: any,\r\n parentId: any = null,\r\n idPrefix = \"\"\r\n) {\r\n let counter = 0;\r\n\r\n return menuData.map((menuItem: any) => {\r\n const id = `${idPrefix}${counter++}`;\r\n const newItem = {\r\n ...menuItem,\r\n id,\r\n key: id,\r\n parentId\r\n };\r\n\r\n if (menuItem.children) {\r\n newItem.children = _addMenuIds(\r\n menuItem.children,\r\n id,\r\n `${id}-`\r\n );\r\n }\r\n\r\n return newItem;\r\n });\r\n}\r\n\r\nexport default useMenuStore;\r\n"],"names":["defineStore","MENU_ID"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,YAAA,GAAeA,kBAAYC,aAAA,EAAS;AAAA,EACxC,OAAO,MAAY;AACjB,IAAA,OAAO;AAAA,MACL,UAAU,EAAC;AAAA,MACX,cAAc,EAAC;AAAA,MACf,MAAM;AAAC,KACT;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAK,IAAA,EAA0B;AAC7B,MAAA,IAAA,CAAK,IAAA,GAAO,YAAY,IAAI,CAAA;AAAA,IAC9B;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;AAED,SAAS,WAAA,CACP,QAAA,EACA,QAAA,GAAgB,IAAA,EAChB,WAAW,EAAA,EACX;AACA,EAAA,IAAI,OAAA,GAAU,CAAA;AAEd,EAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,QAAA,KAAkB;AACrC,IAAA,MAAM,EAAA,GAAK,CAAA,EAAG,QAAQ,CAAA,EAAG,OAAA,EAAS,CAAA,CAAA;AAClC,IAAA,MAAM,OAAA,GAAU,iCACX,QAAA,CAAA,EADW;AAAA,MAEd,EAAA;AAAA,MACA,GAAA,EAAK,EAAA;AAAA,MACL;AAAA,KACF,CAAA;AAEA,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,OAAA,CAAQ,QAAA,GAAW,WAAA;AAAA,QACjB,QAAA,CAAS,QAAA;AAAA,QACT,EAAA;AAAA,QACA,GAAG,EAAE,CAAA,CAAA;AAAA,OACP;AAAA,IACF;AAEA,IAAA,OAAO,OAAA;AAAA,EACT,CAAC,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNavTabStore.cjs","sources":["../../../src/modules/useNavTabStore.ts"],"sourcesContent":["/**\r\n * 多标签数据\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { NAV_TAB_ID } from \"../types\";\r\nimport useKeepAliveStore from \"./useKeepAliveStore\";\r\nimport type {\r\n LocationQuery,\r\n RouteLocationNormalized,\r\n RouteMeta,\r\n RouteParams\r\n} from \"vue-router\";\r\n\r\nexport interface NavTabsState {\r\n path?: string;\r\n fullPath?: string;\r\n query?: LocationQuery;\r\n params?: RouteParams;\r\n meta?: RouteMeta;\r\n name?: string;\r\n openTime?: number | undefined;\r\n}\r\n\r\nexport const useNavTabStore = defineStore(NAV_TAB_ID, {\r\n state: () => {\r\n return {\r\n // 多标签列表\r\n list: [] as NavTabsState[],\r\n // 当前激活的地址\r\n activeKey: \"\" as string\r\n };\r\n },\r\n getters: {\r\n getList: (state): NavTabsState[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 保存标签信息\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n if (!route.meta?.title) {\r\n // 没有设置title,则不进入缓存\r\n return;\r\n }\r\n const flag = this.list.some(\r\n (item: NavTabsState) => item.path === route.path\r\n );\r\n if (flag) {\r\n // 如果有相同的路由变化,更新对应的参数信息\r\n this.list.forEach((item: NavTabsState) => {\r\n if (item.path === route.path) {\r\n item.query = route.query;\r\n item.fullPath = route.fullPath;\r\n item.params = route.params;\r\n item.meta = route.meta;\r\n item.name = <string>route.name || \"\";\r\n }\r\n });\r\n return;\r\n }\r\n const data: NavTabsState = {\r\n path: route.path,\r\n fullPath: route.fullPath,\r\n query: route.query,\r\n params: route.params,\r\n meta: route.meta,\r\n name: <string>route.name || \"\",\r\n openTime: new Date().getTime()\r\n };\r\n this.list.push(data);\r\n },\r\n /**\r\n * 删除标签\r\n * @param key url路径\r\n */\r\n deleteTabs(key: string) {\r\n const { deleteKeepAlive } = useKeepAliveStore();\r\n const curRoute: NavTabsState =\r\n this.list.find(v => v.fullPath === key) || {};\r\n this.list.splice(\r\n this.list.findIndex(v => v.fullPath === key),\r\n 1\r\n );\r\n // 根据name 删除缓存的组件\r\n if (curRoute?.name) {\r\n deleteKeepAlive(curRoute.name);\r\n }\r\n },\r\n /**\r\n * 设置标题\r\n * @param title 标题\r\n * @param path url\r\n */\r\n setNavTitle(title: string, path: string) {\r\n for (let i = 0; i < this.list.length; i++) {\r\n if (this.list[i].fullPath === path) {\r\n this.list[i].meta!.title = title;\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useNavTabStore;\r\n"],"names":["defineStore","NAV_TAB_ID","useKeepAliveStore"],"mappings":"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"}
1
+ {"version":3,"file":"useNavTabStore.cjs","sources":["../../../src/modules/useNavTabStore.ts"],"sourcesContent":["/**\r\n * 多标签数据\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { NAV_TAB_ID } from \"../types\";\r\nimport useKeepAliveStore from \"./useKeepAliveStore\";\r\nimport type {\r\n LocationQuery,\r\n RouteLocationNormalized,\r\n RouteMeta,\r\n RouteParams\r\n} from \"vue-router\";\r\n\r\nexport interface NavTabsState {\r\n path?: string;\r\n fullPath?: string;\r\n query?: LocationQuery;\r\n params?: RouteParams;\r\n meta?: RouteMeta;\r\n name?: string;\r\n openTime?: number | undefined;\r\n}\r\n\r\nexport const useNavTabStore = defineStore(NAV_TAB_ID, {\r\n state: () => {\r\n return {\r\n // 多标签列表\r\n list: [] as NavTabsState[],\r\n // 当前激活的地址\r\n activeKey: \"\" as string\r\n };\r\n },\r\n getters: {\r\n getList: (state): NavTabsState[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 保存标签信息\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n if (!route.meta?.title) {\r\n // 没有设置title,则不进入缓存\r\n return;\r\n }\r\n const flag = this.list.some(\r\n (item: NavTabsState) => item.path === route.path\r\n );\r\n if (flag) {\r\n // 如果有相同的路由变化,更新对应的参数信息\r\n this.list.forEach((item: NavTabsState) => {\r\n if (item.path === route.path) {\r\n item.query = route.query;\r\n item.fullPath = route.fullPath;\r\n item.params = route.params;\r\n item.meta = route.meta;\r\n item.name = <string>route.name || \"\";\r\n }\r\n });\r\n return;\r\n }\r\n const data: NavTabsState = {\r\n path: route.path,\r\n fullPath: route.fullPath,\r\n query: route.query,\r\n params: route.params,\r\n meta: route.meta,\r\n name: <string>route.name || \"\",\r\n openTime: new Date().getTime()\r\n };\r\n this.list.push(data);\r\n },\r\n /**\r\n * 删除标签\r\n * @param key url路径\r\n */\r\n deleteTabs(key: string) {\r\n const { deleteKeepAlive } = useKeepAliveStore();\r\n const curRoute: NavTabsState =\r\n this.list.find(v => v.fullPath === key) || {};\r\n this.list.splice(\r\n this.list.findIndex(v => v.fullPath === key),\r\n 1\r\n );\r\n // 根据name 删除缓存的组件\r\n if (curRoute?.name) {\r\n deleteKeepAlive(curRoute.name);\r\n }\r\n },\r\n /**\r\n * 设置标题\r\n * @param title 标题\r\n * @param path url\r\n */\r\n setNavTitle(title: string, path: string) {\r\n for (let i = 0; i < this.list.length; i++) {\r\n if (this.list[i].fullPath === path) {\r\n this.list[i].meta!.title = title;\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useNavTabStore;\r\n"],"names":["defineStore","NAV_TAB_ID","useKeepAliveStore"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNoStore.cjs","sources":["../../../src/modules/useNoStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport type { ItemType } from \"ant-design-vue\";\r\n\r\ninterface NoStore {\r\n // 菜单列表 从后台读取的菜单存入到MenuStore,但是渲染的时候菜单图标需要动态执行\r\n // 如果h函数存入json字符串,下次取出来无法识别\r\n menuList: ItemType[];\r\n}\r\n\r\n/**\r\n * 这个store不会进入缓存\r\n */\r\nconst useNoStore = defineStore(\"NoStore\", {\r\n state: (): NoStore => {\r\n return {\r\n menuList: []\r\n };\r\n },\r\n actions: {\r\n save(data: ItemType[]) {\r\n this.menuList = data;\r\n }\r\n }\r\n});\r\n\r\nexport default useNoStore;\r\n"],"names":["defineStore"],"mappings":";;;;;;;AAaM,MAAA,UAAA,GAAaA,kBAAY,SAAW,EAAA;AAAA,EACxC,OAAO,MAAe;AACpB,IAAO,OAAA;AAAA,MACL,UAAU;AAAC,KACb;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,KAAK,IAAkB,EAAA;AACrB,MAAA,IAAA,CAAK,QAAW,GAAA,IAAA;AAAA;AAClB;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"useNoStore.cjs","sources":["../../../src/modules/useNoStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nexport interface NoStore {\r\n menuList: any[];\r\n}\r\n\r\n/**\r\n * 这个store不会进入缓存\r\n */\r\nconst useNoStore = defineStore(\"NoStore\", {\r\n state: (): NoStore => {\r\n return {\r\n menuList: []\r\n };\r\n },\r\n actions: {\r\n save(data: any[]) {\r\n this.menuList = data;\r\n }\r\n }\r\n});\r\n\r\nexport default useNoStore;\r\n"],"names":["defineStore"],"mappings":";;;;;;;AASA,MAAM,UAAA,GAAaA,kBAAY,SAAA,EAAW;AAAA,EACxC,OAAO,MAAe;AACpB,IAAA,OAAO;AAAA,MACL,UAAU;AAAC,KACb;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAK,IAAA,EAAa;AAChB,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,IAClB;AAAA;AAEJ,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useUserStore.cjs","sources":["../../../src/modules/useUserStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { USER_ID } from \"../types\";\r\n\r\nexport interface UserState {\r\n token: string | undefined;\r\n userInfo: unknown;\r\n}\r\n\r\nconst useUserStore = defineStore(USER_ID, {\r\n state: (): UserState => ({\r\n token: undefined,\r\n userInfo: undefined\r\n }),\r\n getters: {\r\n getToken: state => state.token,\r\n getUserInfo: state => state.userInfo\r\n },\r\n actions: {\r\n /**\r\n * 保存token\r\n * @param token\r\n */\r\n saveToken(token: string) {\r\n this.token = token;\r\n },\r\n saveUserInfo(data: unknown) {\r\n this.userInfo = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useUserStore;\r\n"],"names":["defineStore","USER_ID"],"mappings":";;;;;;;;AASM,MAAA,YAAA,GAAeA,kBAAYC,aAAS,EAAA;AAAA,EACxC,OAAO,OAAkB;AAAA,IACvB,KAAO,EAAA,KAAA,CAAA;AAAA,IACP,QAAU,EAAA,KAAA;AAAA,GACZ,CAAA;AAAA,EACA,OAAS,EAAA;AAAA,IACP,QAAA,EAAU,WAAS,KAAM,CAAA,KAAA;AAAA,IACzB,WAAA,EAAa,WAAS,KAAM,CAAA;AAAA,GAC9B;AAAA,EACA,OAAS,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,UAAU,KAAe,EAAA;AACvB,MAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,KACf;AAAA,IACA,aAAa,IAAe,EAAA;AAC1B,MAAA,IAAA,CAAK,QAAW,GAAA,IAAA;AAAA;AAClB,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useUserStore.cjs","sources":["../../../src/modules/useUserStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { USER_ID } from \"../types\";\r\n\r\nexport interface UserState {\r\n token: string | undefined;\r\n userInfo: unknown;\r\n}\r\n\r\nconst useUserStore = defineStore(USER_ID, {\r\n state: (): UserState => ({\r\n token: undefined,\r\n userInfo: undefined\r\n }),\r\n getters: {\r\n getToken: state => state.token,\r\n getUserInfo: state => state.userInfo\r\n },\r\n actions: {\r\n /**\r\n * 保存token\r\n * @param token\r\n */\r\n saveToken(token: string) {\r\n this.token = token;\r\n },\r\n saveUserInfo(data: unknown) {\r\n this.userInfo = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useUserStore;\r\n"],"names":["defineStore","USER_ID"],"mappings":";;;;;;;;AASA,MAAM,YAAA,GAAeA,kBAAYC,aAAA,EAAS;AAAA,EACxC,OAAO,OAAkB;AAAA,IACvB,KAAA,EAAO,KAAA,CAAA;AAAA,IACP,QAAA,EAAU,KAAA;AAAA,GACZ,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,WAAS,KAAA,CAAM,KAAA;AAAA,IACzB,WAAA,EAAa,WAAS,KAAA,CAAM;AAAA,GAC9B;AAAA,EACA,OAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,UAAU,KAAA,EAAe;AACvB,MAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,IACf,CAAA;AAAA,IACA,aAAa,IAAA,EAAe;AAC1B,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,IAClB;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["const id_prefix = \"_STORE_\";\n//面包屑\nexport const BREADCRUMB_ID = `${id_prefix}BREADCRUMB_ID`;\n//字典ID\nexport const DATA_DICTIONARY_ID = `${id_prefix}DATA_DICTIONARY_ID`;\n//缓存组件ID\nexport const KEEP_ALIVE_ID = `${id_prefix}KEEP_ALIVE_ID`;\n//菜单ID\nexport const MENU_ID = `${id_prefix}MENU_ID`;\n//多标签ID\nexport const NAV_TAB_ID = `${id_prefix}NAV_TABS_ID`;\n//用户信息ID\nexport const SETTINGS_ID = `${id_prefix}SETTINGS_ID`;\n//用户信息ID\nexport const USER_ID = `${id_prefix}USER_ID`;\n//存储APP配置信息\nexport const APP_ID = `${id_prefix}APP_ID`;\n"],"names":[],"mappings":";;;AAAA,MAAM,SAAY,GAAA,SAAA;AAEL,MAAA,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAE5B,MAAA,kBAAA,GAAqB,GAAG,SAAS,CAAA,kBAAA;AAEjC,MAAA,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAE5B,MAAA,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAEtB,MAAA,UAAA,GAAa,GAAG,SAAS,CAAA,WAAA;AAEzB,MAAA,WAAA,GAAc,GAAG,SAAS,CAAA,WAAA;AAE1B,MAAA,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAEtB,MAAA,MAAA,GAAS,GAAG,SAAS,CAAA,MAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["const id_prefix = \"_STORE_\";\n//面包屑\nexport const BREADCRUMB_ID = `${id_prefix}BREADCRUMB_ID`;\n//字典ID\nexport const DATA_DICTIONARY_ID = `${id_prefix}DATA_DICTIONARY_ID`;\n//缓存组件ID\nexport const KEEP_ALIVE_ID = `${id_prefix}KEEP_ALIVE_ID`;\n//菜单ID\nexport const MENU_ID = `${id_prefix}MENU_ID`;\n//多标签ID\nexport const NAV_TAB_ID = `${id_prefix}NAV_TABS_ID`;\n//用户信息ID\nexport const SETTINGS_ID = `${id_prefix}SETTINGS_ID`;\n//用户信息ID\nexport const USER_ID = `${id_prefix}USER_ID`;\n//存储APP配置信息\nexport const APP_ID = `${id_prefix}APP_ID`;\n"],"names":[],"mappings":";;;AAAA,MAAM,SAAA,GAAY,SAAA;AAEX,MAAM,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAElC,MAAM,kBAAA,GAAqB,GAAG,SAAS,CAAA,kBAAA;AAEvC,MAAM,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAElC,MAAM,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAE5B,MAAM,UAAA,GAAa,GAAG,SAAS,CAAA,WAAA;AAE/B,MAAM,WAAA,GAAc,GAAG,SAAS,CAAA,WAAA;AAEhC,MAAM,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAE5B,MAAM,MAAA,GAAS,GAAG,SAAS,CAAA,MAAA;;;;;;;;;;;"}
@@ -4,7 +4,6 @@ export { default as useDicStore } from './modules/useDicStore.mjs';
4
4
  export { default as useKeepAliveStore } from './modules/useKeepAliveStore.mjs';
5
5
  export { default as useMenuStore } from './modules/useMenuStore.mjs';
6
6
  export { useNavTabStore } from './modules/useNavTabStore.mjs';
7
- export { default as useNoStore } from './modules/useNoStore.mjs';
8
7
  export { default as useUserStore } from './modules/useUserStore.mjs';
9
8
 
10
9
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAppStore.mjs","sources":["../../../src/modules/useAppStore.ts"],"sourcesContent":["import { theme } from \"ant-design-vue\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { APP_ID } from \"../types\";\r\nimport type { ThemeConfig } from \"ant-design-vue/es/config-provider/context\";\r\n\r\nexport interface App {\r\n theme: ThemeConfig;\r\n // 模式:亮色和深色\r\n modeConfig: Mode;\r\n layout: {\r\n // 侧边栏宽度\r\n sideWidth: number;\r\n // 头高度\r\n headerHeight: number;\r\n // 左侧菜单收缩时候的宽度\r\n collapsedWidth: number;\r\n // 左侧菜单收缩状态\r\n collapsed: boolean;\r\n };\r\n // 紧凑模式\r\n isCompact: boolean;\r\n // 头部导航背样式配置\r\n headerTokenStyle: Record<string, string>;\r\n sideTokenStyle: Record<string, string>;\r\n // 刷新状态,当从添加页跳转到列表页时使用\r\n refresh: boolean;\r\n}\r\n\r\nexport interface Mode {\r\n mode: string;\r\n list: {\r\n value: string;\r\n label: string;\r\n }[];\r\n}\r\n\r\nconst useAppStore = defineStore(APP_ID, {\r\n state: (): App => {\r\n return {\r\n theme: {\r\n // 算法\r\n algorithm: theme.defaultAlgorithm,\r\n token: {}\r\n },\r\n modeConfig: {\r\n mode: \"light\",\r\n list: [\r\n { value: \"light\", label: \"亮色\" },\r\n { value: \"dark\", label: \"深色\" },\r\n { value: \"os\", label: \"跟随系统\" }\r\n ]\r\n },\r\n isCompact: true,\r\n layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\r\n },\r\n headerTokenStyle: {\r\n bgColor: \"#1677ff\",\r\n txtColor: \"#fff\"\r\n },\r\n sideTokenStyle: {\r\n bgColor: \" #0F6BD9\"\r\n },\r\n refresh: false\r\n };\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useAppStore;\r\n"],"names":[],"mappings":";;;;;AAqCM,MAAA,WAAA,GAAc,YAAY,MAAQ,EAAA;AAAA,EACtC,OAAO,MAAW;AAChB,IAAO,OAAA;AAAA,MACL,KAAO,EAAA;AAAA;AAAA,QAEL,WAAW,KAAM,CAAA,gBAAA;AAAA,QACjB,OAAO;AAAC,OACV;AAAA,MACA,UAAY,EAAA;AAAA,QACV,IAAM,EAAA,OAAA;AAAA,QACN,IAAM,EAAA;AAAA,UACJ,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,cAAK,EAAA;AAAA,UAC9B,EAAE,KAAA,EAAO,MAAQ,EAAA,KAAA,EAAO,cAAK,EAAA;AAAA,UAC7B,EAAE,KAAA,EAAO,IAAM,EAAA,KAAA,EAAO,0BAAO;AAAA;AAC/B,OACF;AAAA,MACA,SAAW,EAAA,IAAA;AAAA,MACX,MAAQ,EAAA;AAAA,QACN,SAAW,EAAA,GAAA;AAAA,QACX,YAAc,EAAA,EAAA;AAAA,QACd,cAAgB,EAAA,EAAA;AAAA,QAChB,SAAW,EAAA;AAAA,OACb;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,OAAS,EAAA,SAAA;AAAA,QACT,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,OAAS,EAAA;AAAA,OACX;AAAA,MACA,OAAS,EAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useAppStore.mjs","sources":["../../../src/modules/useAppStore.ts"],"sourcesContent":["import { theme } from \"ant-design-vue\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { APP_ID } from \"../types\";\r\nimport type { ThemeConfig } from \"ant-design-vue/es/config-provider/context\";\r\n\r\nexport interface App {\r\n theme: ThemeConfig;\r\n // 模式:亮色和深色\r\n modeConfig: Mode;\r\n layout: {\r\n // 侧边栏宽度\r\n sideWidth: number;\r\n // 头高度\r\n headerHeight: number;\r\n // 左侧菜单收缩时候的宽度\r\n collapsedWidth: number;\r\n // 左侧菜单收缩状态\r\n collapsed: boolean;\r\n };\r\n // 紧凑模式\r\n isCompact: boolean;\r\n // 头部导航背样式配置\r\n headerTokenStyle: Record<string, string>;\r\n sideTokenStyle: Record<string, string>;\r\n // 刷新状态,当从添加页跳转到列表页时使用\r\n refresh: boolean;\r\n}\r\n\r\nexport interface Mode {\r\n mode: string;\r\n list: {\r\n value: string;\r\n label: string;\r\n }[];\r\n}\r\n\r\nconst useAppStore = defineStore(APP_ID, {\r\n state: (): App => {\r\n return {\r\n theme: {\r\n // 算法\r\n algorithm: theme.defaultAlgorithm,\r\n token: {}\r\n },\r\n modeConfig: {\r\n mode: \"light\",\r\n list: [\r\n { value: \"light\", label: \"亮色\" },\r\n { value: \"dark\", label: \"深色\" },\r\n { value: \"os\", label: \"跟随系统\" }\r\n ]\r\n },\r\n isCompact: true,\r\n layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\r\n },\r\n headerTokenStyle: {\r\n bgColor: \"#1677ff\",\r\n txtColor: \"#fff\"\r\n },\r\n sideTokenStyle: {\r\n bgColor: \" #0F6BD9\"\r\n },\r\n refresh: false\r\n };\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useAppStore;\r\n"],"names":[],"mappings":";;;;;AAqCA,MAAM,WAAA,GAAc,YAAY,MAAA,EAAQ;AAAA,EACtC,OAAO,MAAW;AAChB,IAAA,OAAO;AAAA,MACL,KAAA,EAAO;AAAA;AAAA,QAEL,WAAW,KAAA,CAAM,gBAAA;AAAA,QACjB,OAAO;AAAC,OACV;AAAA,MACA,UAAA,EAAY;AAAA,QACV,IAAA,EAAM,OAAA;AAAA,QACN,IAAA,EAAM;AAAA,UACJ,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,cAAA,EAAK;AAAA,UAC9B,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,cAAA,EAAK;AAAA,UAC7B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,0BAAA;AAAO;AAC/B,OACF;AAAA,MACA,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA,QACN,SAAA,EAAW,GAAA;AAAA,QACX,YAAA,EAAc,EAAA;AAAA,QACd,cAAA,EAAgB,EAAA;AAAA,QAChB,SAAA,EAAW;AAAA,OACb;AAAA,MACA,gBAAA,EAAkB;AAAA,QAChB,OAAA,EAAS,SAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,cAAA,EAAgB;AAAA,QACd,OAAA,EAAS;AAAA,OACX;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBreadStore.mjs","sources":["../../../src/modules/useBreadStore.ts"],"sourcesContent":["/**\r\n * 面包屑\r\n * @author 余春林\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { BREADCRUMB_ID } from \"../types\";\r\n\r\nexport interface BreadcrumbState {\r\n breadcrumbs: [];\r\n}\r\n\r\nexport const useBreadStore = defineStore(BREADCRUMB_ID, {\r\n state: (): BreadcrumbState => ({\r\n breadcrumbs: []\r\n }),\r\n getters: {\r\n getBreadcrumb: state => state.breadcrumbs\r\n },\r\n actions: {\r\n saveBreadcrumb(data: never) {\r\n this.breadcrumbs = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n"],"names":[],"mappings":";;;;AAYa,MAAA,aAAA,GAAgB,YAAY,aAAe,EAAA;AAAA,EACtD,OAAO,OAAwB;AAAA,IAC7B,aAAa;AAAC,GAChB,CAAA;AAAA,EACA,OAAS,EAAA;AAAA,IACP,aAAA,EAAe,WAAS,KAAM,CAAA;AAAA,GAChC;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAe,IAAa,EAAA;AAC1B,MAAA,IAAA,CAAK,WAAc,GAAA,IAAA;AAAA;AACrB,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useBreadStore.mjs","sources":["../../../src/modules/useBreadStore.ts"],"sourcesContent":["/**\r\n * 面包屑\r\n * @author 余春林\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { BREADCRUMB_ID } from \"../types\";\r\n\r\nexport interface BreadcrumbState {\r\n breadcrumbs: [];\r\n}\r\n\r\nexport const useBreadStore = defineStore(BREADCRUMB_ID, {\r\n state: (): BreadcrumbState => ({\r\n breadcrumbs: []\r\n }),\r\n getters: {\r\n getBreadcrumb: state => state.breadcrumbs\r\n },\r\n actions: {\r\n saveBreadcrumb(data: never) {\r\n this.breadcrumbs = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n"],"names":[],"mappings":";;;;AAYO,MAAM,aAAA,GAAgB,YAAY,aAAA,EAAe;AAAA,EACtD,OAAO,OAAwB;AAAA,IAC7B,aAAa;AAAC,GAChB,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,aAAA,EAAe,WAAS,KAAA,CAAM;AAAA,GAChC;AAAA,EACA,OAAA,EAAS;AAAA,IACP,eAAe,IAAA,EAAa;AAC1B,MAAA,IAAA,CAAK,WAAA,GAAc,IAAA;AAAA,IACrB;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -5,60 +5,17 @@ import { DATA_DICTIONARY_ID } from '../types.mjs';
5
5
  const useDicStore = defineStore(DATA_DICTIONARY_ID, {
6
6
  state: () => ({
7
7
  dataDic: {},
8
- // 初始化为空对象
9
8
  cacheDuration: 5 * 60 * 1e3
10
9
  // 缓存有效期:5分钟(单位:毫秒)
11
10
  }),
11
+ // 💡 优化:Getters 仅保留无参数的计算属性,如果不需要则保持为空。
12
12
  getters: {
13
- /**
14
- * 根据 key 获取字典列表
15
- * @param state
16
- */
17
- getDicByKey: (state) => {
18
- return (key) => {
19
- var _a;
20
- return ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
21
- };
22
- },
23
- /**
24
- * 返回value匹配到的整个对象
25
- * @param state
26
- */
27
- getDicObjByValue: (state) => {
28
- return (key, value) => {
29
- var _a;
30
- const rs = ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
31
- return rs.find((item) => item.value === value) || {};
32
- };
33
- },
34
- /**
35
- * 根据字典名称和字典的 value 获取对应的中文
36
- * @param state
37
- */
38
- getDicTextByValue: (state) => {
39
- return (key, value) => {
40
- var _a;
41
- const rs = ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
42
- return rs.filter(
43
- (item) => item.value === value
44
- ).map((item) => item.label).join("");
45
- };
46
- },
47
- /**
48
- * 根据文字匹配对应的 value
49
- * @param state
50
- */
51
- getDicValueByText: (state) => {
52
- return (key, text) => {
53
- var _a;
54
- const rs = ((_a = state.dataDic[key]) == null ? void 0 : _a.value) || [];
55
- return rs.filter(
56
- (item) => item.label === text
57
- ).map((item) => item.value).join("");
58
- };
59
- }
13
+ // 示例:如果需要获取所有字典的 Key 列表,可以放在这里
14
+ // getAllKeys: state => Object.keys(state.dataDic),
60
15
  },
16
+ // 💡 优化:Actions 包含所有数据操作和有参数的查询方法。
61
17
  actions: {
18
+ // --- 缓存/数据操作 Actions (保持不变) ---
62
19
  // 检查缓存是否过期
63
20
  isCacheExpired(name) {
64
21
  if (this.cacheDuration === 0) return false;
@@ -67,30 +24,66 @@ const useDicStore = defineStore(DATA_DICTIONARY_ID, {
67
24
  const now = Date.now();
68
25
  return now - cache.timestamp > this.cacheDuration;
69
26
  },
70
- /**
71
- * 动态读取下拉字典的时候使用
72
- * 根据key保存字典数据
73
- * @param key key
74
- * @param data 字典数据
75
- */
27
+ // 根据 key 保存字典数据
76
28
  saveDicByKey(key, data) {
77
29
  this.dataDic[key] = {
78
30
  value: data,
79
31
  timestamp: Date.now()
80
32
  };
81
33
  },
82
- /**
83
- * 一次性存入数据字典的时候使用
84
- * 数据格式: {key1:[{value:'',label:''}],key2:[{value:'',label:''}]}
85
- *
86
- */
34
+ // 一次性存入数据字典
87
35
  saveAll(data) {
88
36
  Object.entries(data).forEach(([key, value]) => {
89
37
  this.dataDic[key] = {
90
38
  value,
91
- timestamp: 1314521
39
+ timestamp: Date.now()
40
+ // 统一使用当前时间戳
92
41
  };
93
42
  });
43
+ },
44
+ // --- 查询 Actions (原 Getters 优化) ---
45
+ /**
46
+ * 1. 根据 key 获取字典列表 (原 getDicByKey)
47
+ * @param key 字典的 key
48
+ */
49
+ getDicByKey(key) {
50
+ var _a;
51
+ return ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
52
+ },
53
+ /**
54
+ * 2. 返回 value 匹配到的整个对象 (原 getDicObjByValue)
55
+ * @param key 字典的 key
56
+ * @param value 字典项的值
57
+ */
58
+ getDicObjByValue(key, value) {
59
+ var _a;
60
+ const rs = ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
61
+ const result = rs.find(
62
+ (item) => item.value === String(value)
63
+ );
64
+ return result || null;
65
+ },
66
+ /**
67
+ * 3. 根据字典名称和字典的 value 获取对应的中文 (原 getDicTextByValue)
68
+ */
69
+ getDicTextByValue(key, value) {
70
+ var _a;
71
+ const rs = ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
72
+ const item = rs.find(
73
+ (item2) => item2.value === value
74
+ );
75
+ return (item == null ? void 0 : item.label) || "";
76
+ },
77
+ /**
78
+ * 4. 根据文字匹配对应的 value (原 getDicValueByText)
79
+ */
80
+ getDicValueByText(key, text) {
81
+ var _a;
82
+ const rs = ((_a = this.dataDic[key]) == null ? void 0 : _a.value) || [];
83
+ const item = rs.find(
84
+ (item2) => item2.label === text
85
+ );
86
+ return (item == null ? void 0 : item.value) || "";
94
87
  }
95
88
  },
96
89
  persist: true
@@ -1 +1 @@
1
- {"version":3,"file":"useDicStore.mjs","sources":["../../../src/modules/useDicStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { DATA_DICTIONARY_ID } from \"../types\";\r\n\r\n// 定义字典项的类型\r\nexport interface DictionaryItem {\r\n value: string; // 字典项的值\r\n label: string; // 字典项的显示文本\r\n}\r\n\r\n// 定义字典列表的类型\r\nexport interface Dictionary {\r\n [key: string]: {\r\n value: DictionaryItem[]; // 数组字典\r\n timestamp: number; // 数据缓存时间戳\r\n };\r\n}\r\n\r\n/**\r\n * {key:[]}\r\n */\r\nexport interface DictionaryList {\r\n [key: string]: DictionaryItem[]; // 数组字典\r\n}\r\n\r\n// 定义 Store 的状态类型\r\nexport interface DataDictionaryState {\r\n dataDic: Dictionary; // 使用 DictionaryList 替换 any\r\n cacheDuration: number; //如果 cacheDuration等于0,不用发送请求更新数据\r\n}\r\n\r\nconst useDicStore = defineStore(DATA_DICTIONARY_ID, {\r\n state: (): DataDictionaryState => ({\r\n dataDic: {}, // 初始化为空对象\r\n cacheDuration: 5 * 60 * 1000 // 缓存有效期:5分钟(单位:毫秒)\r\n }),\r\n getters: {\r\n /**\r\n * 根据 key 获取字典列表\r\n * @param state\r\n */\r\n getDicByKey: state => {\r\n return (key: string): DictionaryItem[] => {\r\n return state.dataDic[key]?.value || [];\r\n };\r\n },\r\n \r\n /**\r\n * 返回value匹配到的整个对象\r\n * @param state\r\n */\r\n getDicObjByValue: state => {\r\n return (\r\n key: string,\r\n value: never\r\n ): DictionaryItem => {\r\n const rs = state.dataDic[key]?.value || [];\r\n return (\r\n rs.find(item => item.value === value) ||\r\n ({} as DictionaryItem)\r\n );\r\n };\r\n },\r\n\r\n /**\r\n * 根据字典名称和字典的 value 获取对应的中文\r\n * @param state\r\n */\r\n getDicTextByValue: state => {\r\n return (key: string, value: string): string => {\r\n const rs = state.dataDic[key]?.value || [];\r\n return rs\r\n .filter(\r\n (item: DictionaryItem) => item.value === value\r\n )\r\n .map((item: DictionaryItem) => item.label)\r\n .join(\"\");\r\n };\r\n },\r\n\r\n /**\r\n * 根据文字匹配对应的 value\r\n * @param state\r\n */\r\n getDicValueByText: state => {\r\n return (key: string, text: string): string => {\r\n const rs = state.dataDic[key]?.value || [];\r\n return rs\r\n .filter(\r\n (item: DictionaryItem) => item.label === text\r\n )\r\n .map((item: DictionaryItem) => item.value)\r\n .join(\"\");\r\n };\r\n }\r\n },\r\n actions: {\r\n // 检查缓存是否过期\r\n isCacheExpired(name: string): boolean {\r\n // 缓存时间为0,说明不用检查时间来进行触发请求\r\n if (this.cacheDuration === 0) return false;\r\n const cache = this.dataDic[name];\r\n if (!cache) return true; // 视为过期\r\n const now = Date.now();\r\n return now - cache.timestamp > this.cacheDuration; // 超过有效期\r\n },\r\n /**\r\n * 动态读取下拉字典的时候使用\r\n * 根据key保存字典数据\r\n * @param key key\r\n * @param data 字典数据\r\n */\r\n saveDicByKey(key: string, data: never) {\r\n this.dataDic[key] = {\r\n value: data,\r\n timestamp: Date.now()\r\n };\r\n },\r\n /**\r\n * 一次性存入数据字典的时候使用\r\n * 数据格式: {key1:[{value:'',label:''}],key2:[{value:'',label:''}]}\r\n *\r\n */\r\n saveAll(data: DictionaryList) {\r\n Object.entries(data).forEach(([key, value]) => {\r\n this.dataDic[key] = {\r\n value,\r\n timestamp: 1314521\r\n };\r\n });\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useDicStore;\r\n"],"names":[],"mappings":";;;;AA+BM,MAAA,WAAA,GAAc,YAAY,kBAAoB,EAAA;AAAA,EAClD,OAAO,OAA4B;AAAA,IACjC,SAAS,EAAC;AAAA;AAAA,IACV,aAAA,EAAe,IAAI,EAAK,GAAA;AAAA;AAAA,GAC1B,CAAA;AAAA,EACA,OAAS,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,aAAa,CAAS,KAAA,KAAA;AACpB,MAAA,OAAO,CAAC,GAAkC,KAAA;AA1ChD,QAAA,IAAA,EAAA;AA2CQ,QAAA,OAAA,CAAA,CAAO,WAAM,OAAQ,CAAA,GAAG,CAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoB,UAAS,EAAC;AAAA,OACvC;AAAA,KACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,kBAAkB,CAAS,KAAA,KAAA;AACzB,MAAO,OAAA,CACL,KACA,KACmB,KAAA;AAvD3B,QAAA,IAAA,EAAA;AAwDQ,QAAA,MAAM,OAAK,EAAM,GAAA,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoB,UAAS,EAAC;AACzC,QAAA,OACE,GAAG,IAAK,CAAA,CAAA,IAAA,KAAQ,KAAK,KAAU,KAAA,KAAK,KACnC,EAAC;AAAA,OAEN;AAAA,KACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,mBAAmB,CAAS,KAAA,KAAA;AAC1B,MAAO,OAAA,CAAC,KAAa,KAA0B,KAAA;AArErD,QAAA,IAAA,EAAA;AAsEQ,QAAA,MAAM,OAAK,EAAM,GAAA,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoB,UAAS,EAAC;AACzC,QAAA,OAAO,EACJ,CAAA,MAAA;AAAA,UACC,CAAC,IAAyB,KAAA,IAAA,CAAK,KAAU,KAAA;AAAA,SAC3C,CACC,IAAI,CAAC,IAAA,KAAyB,KAAK,KAAK,CAAA,CACxC,KAAK,EAAE,CAAA;AAAA,OACZ;AAAA,KACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,mBAAmB,CAAS,KAAA,KAAA;AAC1B,MAAO,OAAA,CAAC,KAAa,IAAyB,KAAA;AArFpD,QAAA,IAAA,EAAA;AAsFQ,QAAA,MAAM,OAAK,EAAM,GAAA,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoB,UAAS,EAAC;AACzC,QAAA,OAAO,EACJ,CAAA,MAAA;AAAA,UACC,CAAC,IAAyB,KAAA,IAAA,CAAK,KAAU,KAAA;AAAA,SAC3C,CACC,IAAI,CAAC,IAAA,KAAyB,KAAK,KAAK,CAAA,CACxC,KAAK,EAAE,CAAA;AAAA,OACZ;AAAA;AACF,GACF;AAAA,EACA,OAAS,EAAA;AAAA;AAAA,IAEP,eAAe,IAAuB,EAAA;AAEpC,MAAI,IAAA,IAAA,CAAK,aAAkB,KAAA,CAAA,EAAU,OAAA,KAAA;AACrC,MAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,OAAA,CAAQ,IAAI,CAAA;AAC/B,MAAI,IAAA,CAAC,OAAc,OAAA,IAAA;AACnB,MAAM,MAAA,GAAA,GAAM,KAAK,GAAI,EAAA;AACrB,MAAO,OAAA,GAAA,GAAM,KAAM,CAAA,SAAA,GAAY,IAAK,CAAA,aAAA;AAAA,KACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA,CAAa,KAAa,IAAa,EAAA;AACrC,MAAK,IAAA,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA;AAAA,QAClB,KAAO,EAAA,IAAA;AAAA,QACP,SAAA,EAAW,KAAK,GAAI;AAAA,OACtB;AAAA,KACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAQ,IAAsB,EAAA;AAC5B,MAAO,MAAA,CAAA,OAAA,CAAQ,IAAI,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,KAAK,CAAM,KAAA;AAC7C,QAAK,IAAA,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA;AAAA,UAClB,KAAA;AAAA,UACA,SAAW,EAAA;AAAA,SACb;AAAA,OACD,CAAA;AAAA;AACH,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useDicStore.mjs","sources":["../../../src/modules/useDicStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { DATA_DICTIONARY_ID } from \"../types\";\r\n\r\n// 定义字典项的类型\r\nexport interface DictionaryItem {\r\n value: string; // 字典项的值\r\n label: string; // 字典项的显示文本\r\n}\r\n\r\n// 定义字典列表的类型\r\nexport interface Dictionary {\r\n [key: string]: {\r\n value: DictionaryItem[]; // 数组字典\r\n timestamp: number; // 数据缓存时间戳\r\n };\r\n}\r\n\r\n/**\r\n * {key:[]}\r\n */\r\nexport interface DictionaryList {\r\n [key: string]: DictionaryItem[]; // 数组字典\r\n}\r\n\r\n// 定义 Store 的状态类型\r\nexport interface DataDictionaryState {\r\n dataDic: Dictionary;\r\n cacheDuration: number;\r\n}\r\n\r\nconst useDicStore = defineStore(DATA_DICTIONARY_ID, {\r\n state: (): DataDictionaryState => ({\r\n dataDic: {},\r\n cacheDuration: 5 * 60 * 1000 // 缓存有效期:5分钟(单位:毫秒)\r\n }),\r\n\r\n // 💡 优化:Getters 仅保留无参数的计算属性,如果不需要则保持为空。\r\n getters: {\r\n // 示例:如果需要获取所有字典的 Key 列表,可以放在这里\r\n // getAllKeys: state => Object.keys(state.dataDic),\r\n },\r\n\r\n // 💡 优化:Actions 包含所有数据操作和有参数的查询方法。\r\n actions: {\r\n // --- 缓存/数据操作 Actions (保持不变) ---\r\n\r\n // 检查缓存是否过期\r\n isCacheExpired(name: string): boolean {\r\n // 使用 this 访问 state\r\n if (this.cacheDuration === 0) return false;\r\n const cache = this.dataDic[name];\r\n if (!cache) return true;\r\n const now = Date.now();\r\n return now - cache.timestamp > this.cacheDuration;\r\n },\r\n\r\n // 根据 key 保存字典数据\r\n saveDicByKey(key: string, data: DictionaryItem[]) {\r\n // 修正 data 类型\r\n this.dataDic[key] = {\r\n value: data,\r\n timestamp: Date.now()\r\n };\r\n },\r\n\r\n // 一次性存入数据字典\r\n saveAll(data: DictionaryList) {\r\n Object.entries(data).forEach(([key, value]) => {\r\n this.dataDic[key] = {\r\n value,\r\n timestamp: Date.now() // 统一使用当前时间戳\r\n };\r\n });\r\n },\r\n\r\n // --- 查询 Actions (原 Getters 优化) ---\r\n\r\n /**\r\n * 1. 根据 key 获取字典列表 (原 getDicByKey)\r\n * @param key 字典的 key\r\n */\r\n getDicByKey(key: string): DictionaryItem[] {\r\n // 直接使用 this 访问 state\r\n return this.dataDic[key]?.value || [];\r\n },\r\n\r\n /**\r\n * 2. 返回 value 匹配到的整个对象 (原 getDicObjByValue)\r\n * @param key 字典的 key\r\n * @param value 字典项的值\r\n */\r\n getDicObjByValue(\r\n key: string,\r\n value: string | number\r\n ): DictionaryItem | null {\r\n // 修正 value 类型为 string | number,返回类型为 DictionaryItem | null\r\n const rs = this.dataDic[key]?.value || [];\r\n const result = rs.find(\r\n item => item.value === String(value)\r\n );\r\n // 返回 null 更安全,避免返回空对象 {} as DictionaryItem\r\n return result || null;\r\n },\r\n\r\n /**\r\n * 3. 根据字典名称和字典的 value 获取对应的中文 (原 getDicTextByValue)\r\n */\r\n getDicTextByValue(key: string, value: string): string {\r\n const rs = this.dataDic[key]?.value || [];\r\n const item = rs.find(\r\n (item: DictionaryItem) => item.value === value\r\n );\r\n // 优化:使用 find 比 filter/map/join 效率更高,且只会有一个结果\r\n return item?.label || \"\";\r\n },\r\n\r\n /**\r\n * 4. 根据文字匹配对应的 value (原 getDicValueByText)\r\n */\r\n getDicValueByText(key: string, text: string): string {\r\n const rs = this.dataDic[key]?.value || [];\r\n const item = rs.find(\r\n (item: DictionaryItem) => item.label === text\r\n );\r\n // 优化:使用 find 比 filter/map/join 效率更高,且只会有一个结果\r\n return item?.value || \"\";\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useDicStore;\r\n"],"names":["item"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useKeepAliveStore.mjs","sources":["../../../src/modules/useKeepAliveStore.ts"],"sourcesContent":["/**\r\n * 缓存组件name数据\r\n */\r\nimport { type RouteLocationNormalized } from \"vue-router\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { KEEP_ALIVE_ID } from \"../types\";\r\n\r\nconst useKeepAliveStore = defineStore(KEEP_ALIVE_ID, {\r\n state: () => {\r\n return {\r\n list: [] as string[]\r\n };\r\n },\r\n getters: {\r\n get: (state): string[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 删除已经缓存的组件\r\n * @param name 组件名称(必须唯一)\r\n */\r\n deleteKeepAlive(name: string) {\r\n this.list.splice(\r\n this.list.findIndex((key: string) => key === name),\r\n 1\r\n );\r\n },\r\n /**\r\n * 保存要缓存的组件名称\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n const name = <string>route.name;\r\n if (!name) {\r\n return;\r\n }\r\n const flag = this.list.some((key: string) => key === name);\r\n if (!flag) {\r\n this.list.push(name);\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useKeepAliveStore;\r\n"],"names":[],"mappings":";;;;AAQM,MAAA,iBAAA,GAAoB,YAAY,aAAe,EAAA;AAAA,EACnD,OAAO,MAAM;AACX,IAAO,OAAA;AAAA,MACL,MAAM;AAAC,KACT;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,GAAA,EAAK,CAAC,KAAoB,KAAA;AACxB,MAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AACf,GACF;AAAA,EACA,OAAS,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,gBAAgB,IAAc,EAAA;AAC5B,MAAA,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,QACR,KAAK,IAAK,CAAA,SAAA,CAAU,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,KACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAK,KAAgC,EAAA;AACnC,MAAA,MAAM,OAAe,KAAM,CAAA,IAAA;AAC3B,MAAA,IAAI,CAAC,IAAM,EAAA;AACT,QAAA;AAAA;AAEF,MAAA,MAAM,OAAO,IAAK,CAAA,IAAA,CAAK,KAAK,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AACzD,MAAA,IAAI,CAAC,IAAM,EAAA;AACT,QAAK,IAAA,CAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA;AACrB;AACF,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useKeepAliveStore.mjs","sources":["../../../src/modules/useKeepAliveStore.ts"],"sourcesContent":["/**\r\n * 缓存组件name数据\r\n */\r\nimport { type RouteLocationNormalized } from \"vue-router\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { KEEP_ALIVE_ID } from \"../types\";\r\n\r\nconst useKeepAliveStore = defineStore(KEEP_ALIVE_ID, {\r\n state: () => {\r\n return {\r\n list: [] as string[]\r\n };\r\n },\r\n getters: {\r\n get: (state): string[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 删除已经缓存的组件\r\n * @param name 组件名称(必须唯一)\r\n */\r\n deleteKeepAlive(name: string) {\r\n this.list.splice(\r\n this.list.findIndex((key: string) => key === name),\r\n 1\r\n );\r\n },\r\n /**\r\n * 保存要缓存的组件名称\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n const name = <string>route.name;\r\n if (!name) {\r\n return;\r\n }\r\n const flag = this.list.some((key: string) => key === name);\r\n if (!flag) {\r\n this.list.push(name);\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useKeepAliveStore;\r\n"],"names":[],"mappings":";;;;AAQA,MAAM,iBAAA,GAAoB,YAAY,aAAA,EAAe;AAAA,EACnD,OAAO,MAAM;AACX,IAAA,OAAO;AAAA,MACL,MAAM;AAAC,KACT;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,GAAA,EAAK,CAAC,KAAA,KAAoB;AACxB,MAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IACf;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,gBAAgB,IAAA,EAAc;AAC5B,MAAA,IAAA,CAAK,IAAA,CAAK,MAAA;AAAA,QACR,KAAK,IAAA,CAAK,SAAA,CAAU,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAK,KAAA,EAAgC;AACnC,MAAA,MAAM,OAAe,KAAA,CAAM,IAAA;AAC3B,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA;AAAA,MACF;AACA,MAAA,MAAM,OAAO,IAAA,CAAK,IAAA,CAAK,KAAK,CAAC,GAAA,KAAgB,QAAQ,IAAI,CAAA;AACzD,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,IAAA,CAAK,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,MACrB;AAAA,IACF;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuStore.mjs","sources":["../../../src/modules/useMenuStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { MENU_ID } from \"../types\";\r\nimport type { ItemType } from \"ant-design-vue\";\r\n\r\nexport type ExtendedItemType = ItemType & {\r\n id?: string;\r\n parentId?: string;\r\n};\r\n\r\nexport interface Menu {\r\n openKeys: string[];\r\n selectedKeys: string[];\r\n data: ExtendedItemType[];\r\n}\r\n\r\nconst useMenuStore = defineStore(MENU_ID, {\r\n state: (): Menu => {\r\n return {\r\n openKeys: [],\r\n selectedKeys: [],\r\n data: []\r\n };\r\n },\r\n actions: {\r\n save(data: ExtendedItemType[]) {\r\n this.data = _addMenuIds(data);\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nfunction _addMenuIds(\r\n menuData: any,\r\n parentId: any = null,\r\n idPrefix = \"\"\r\n) {\r\n let counter = 0;\r\n\r\n return menuData.map((menuItem: any) => {\r\n const id = `${idPrefix}${counter++}`;\r\n const newItem = {\r\n ...menuItem,\r\n id,\r\n key: id,\r\n parentId\r\n };\r\n\r\n if (menuItem.children) {\r\n newItem.children = _addMenuIds(\r\n menuItem.children,\r\n id,\r\n `${id}-`\r\n );\r\n }\r\n\r\n return newItem;\r\n });\r\n}\r\n\r\nexport default useMenuStore;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBM,MAAA,YAAA,GAAe,YAAY,OAAS,EAAA;AAAA,EACxC,OAAO,MAAY;AACjB,IAAO,OAAA;AAAA,MACL,UAAU,EAAC;AAAA,MACX,cAAc,EAAC;AAAA,MACf,MAAM;AAAC,KACT;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,KAAK,IAA0B,EAAA;AAC7B,MAAK,IAAA,CAAA,IAAA,GAAO,YAAY,IAAI,CAAA;AAAA;AAC9B,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;AAED,SAAS,WACP,CAAA,QAAA,EACA,QAAgB,GAAA,IAAA,EAChB,WAAW,EACX,EAAA;AACA,EAAA,IAAI,OAAU,GAAA,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;AAClC,IAAM,MAAA,OAAA,GAAU,iCACX,QADW,CAAA,EAAA;AAAA,MAEd,EAAA;AAAA,MACA,GAAK,EAAA,EAAA;AAAA,MACL;AAAA,KACF,CAAA;AAEA,IAAA,IAAI,SAAS,QAAU,EAAA;AACrB,MAAA,OAAA,CAAQ,QAAW,GAAA,WAAA;AAAA,QACjB,QAAS,CAAA,QAAA;AAAA,QACT,EAAA;AAAA,QACA,GAAG,EAAE,CAAA,CAAA;AAAA,OACP;AAAA;AAGF,IAAO,OAAA,OAAA;AAAA,GACR,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useMenuStore.mjs","sources":["../../../src/modules/useMenuStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { MENU_ID } from \"../types\";\r\nimport type { ItemType } from \"ant-design-vue\";\r\n\r\nexport type ExtendedItemType = ItemType & {\r\n id?: string;\r\n parentId?: string;\r\n};\r\n\r\nexport interface Menu {\r\n openKeys: string[];\r\n selectedKeys: string[];\r\n data: ExtendedItemType[];\r\n}\r\n\r\nconst useMenuStore = defineStore(MENU_ID, {\r\n state: (): Menu => {\r\n return {\r\n openKeys: [],\r\n selectedKeys: [],\r\n data: []\r\n };\r\n },\r\n actions: {\r\n save(data: ExtendedItemType[]) {\r\n this.data = _addMenuIds(data);\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nfunction _addMenuIds(\r\n menuData: any,\r\n parentId: any = null,\r\n idPrefix = \"\"\r\n) {\r\n let counter = 0;\r\n\r\n return menuData.map((menuItem: any) => {\r\n const id = `${idPrefix}${counter++}`;\r\n const newItem = {\r\n ...menuItem,\r\n id,\r\n key: id,\r\n parentId\r\n };\r\n\r\n if (menuItem.children) {\r\n newItem.children = _addMenuIds(\r\n menuItem.children,\r\n id,\r\n `${id}-`\r\n );\r\n }\r\n\r\n return newItem;\r\n });\r\n}\r\n\r\nexport default useMenuStore;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,YAAA,GAAe,YAAY,OAAA,EAAS;AAAA,EACxC,OAAO,MAAY;AACjB,IAAA,OAAO;AAAA,MACL,UAAU,EAAC;AAAA,MACX,cAAc,EAAC;AAAA,MACf,MAAM;AAAC,KACT;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAK,IAAA,EAA0B;AAC7B,MAAA,IAAA,CAAK,IAAA,GAAO,YAAY,IAAI,CAAA;AAAA,IAC9B;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;AAED,SAAS,WAAA,CACP,QAAA,EACA,QAAA,GAAgB,IAAA,EAChB,WAAW,EAAA,EACX;AACA,EAAA,IAAI,OAAA,GAAU,CAAA;AAEd,EAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,QAAA,KAAkB;AACrC,IAAA,MAAM,EAAA,GAAK,CAAA,EAAG,QAAQ,CAAA,EAAG,OAAA,EAAS,CAAA,CAAA;AAClC,IAAA,MAAM,OAAA,GAAU,iCACX,QAAA,CAAA,EADW;AAAA,MAEd,EAAA;AAAA,MACA,GAAA,EAAK,EAAA;AAAA,MACL;AAAA,KACF,CAAA;AAEA,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,OAAA,CAAQ,QAAA,GAAW,WAAA;AAAA,QACjB,QAAA,CAAS,QAAA;AAAA,QACT,EAAA;AAAA,QACA,GAAG,EAAE,CAAA,CAAA;AAAA,OACP;AAAA,IACF;AAEA,IAAA,OAAO,OAAA;AAAA,EACT,CAAC,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNavTabStore.mjs","sources":["../../../src/modules/useNavTabStore.ts"],"sourcesContent":["/**\r\n * 多标签数据\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { NAV_TAB_ID } from \"../types\";\r\nimport useKeepAliveStore from \"./useKeepAliveStore\";\r\nimport type {\r\n LocationQuery,\r\n RouteLocationNormalized,\r\n RouteMeta,\r\n RouteParams\r\n} from \"vue-router\";\r\n\r\nexport interface NavTabsState {\r\n path?: string;\r\n fullPath?: string;\r\n query?: LocationQuery;\r\n params?: RouteParams;\r\n meta?: RouteMeta;\r\n name?: string;\r\n openTime?: number | undefined;\r\n}\r\n\r\nexport const useNavTabStore = defineStore(NAV_TAB_ID, {\r\n state: () => {\r\n return {\r\n // 多标签列表\r\n list: [] as NavTabsState[],\r\n // 当前激活的地址\r\n activeKey: \"\" as string\r\n };\r\n },\r\n getters: {\r\n getList: (state): NavTabsState[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 保存标签信息\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n if (!route.meta?.title) {\r\n // 没有设置title,则不进入缓存\r\n return;\r\n }\r\n const flag = this.list.some(\r\n (item: NavTabsState) => item.path === route.path\r\n );\r\n if (flag) {\r\n // 如果有相同的路由变化,更新对应的参数信息\r\n this.list.forEach((item: NavTabsState) => {\r\n if (item.path === route.path) {\r\n item.query = route.query;\r\n item.fullPath = route.fullPath;\r\n item.params = route.params;\r\n item.meta = route.meta;\r\n item.name = <string>route.name || \"\";\r\n }\r\n });\r\n return;\r\n }\r\n const data: NavTabsState = {\r\n path: route.path,\r\n fullPath: route.fullPath,\r\n query: route.query,\r\n params: route.params,\r\n meta: route.meta,\r\n name: <string>route.name || \"\",\r\n openTime: new Date().getTime()\r\n };\r\n this.list.push(data);\r\n },\r\n /**\r\n * 删除标签\r\n * @param key url路径\r\n */\r\n deleteTabs(key: string) {\r\n const { deleteKeepAlive } = useKeepAliveStore();\r\n const curRoute: NavTabsState =\r\n this.list.find(v => v.fullPath === key) || {};\r\n this.list.splice(\r\n this.list.findIndex(v => v.fullPath === key),\r\n 1\r\n );\r\n // 根据name 删除缓存的组件\r\n if (curRoute?.name) {\r\n deleteKeepAlive(curRoute.name);\r\n }\r\n },\r\n /**\r\n * 设置标题\r\n * @param title 标题\r\n * @param path url\r\n */\r\n setNavTitle(title: string, path: string) {\r\n for (let i = 0; i < this.list.length; i++) {\r\n if (this.list[i].fullPath === path) {\r\n this.list[i].meta!.title = title;\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useNavTabStore;\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useNavTabStore.mjs","sources":["../../../src/modules/useNavTabStore.ts"],"sourcesContent":["/**\r\n * 多标签数据\r\n */\r\nimport { defineStore } from \"pinia\";\r\n\r\nimport { NAV_TAB_ID } from \"../types\";\r\nimport useKeepAliveStore from \"./useKeepAliveStore\";\r\nimport type {\r\n LocationQuery,\r\n RouteLocationNormalized,\r\n RouteMeta,\r\n RouteParams\r\n} from \"vue-router\";\r\n\r\nexport interface NavTabsState {\r\n path?: string;\r\n fullPath?: string;\r\n query?: LocationQuery;\r\n params?: RouteParams;\r\n meta?: RouteMeta;\r\n name?: string;\r\n openTime?: number | undefined;\r\n}\r\n\r\nexport const useNavTabStore = defineStore(NAV_TAB_ID, {\r\n state: () => {\r\n return {\r\n // 多标签列表\r\n list: [] as NavTabsState[],\r\n // 当前激活的地址\r\n activeKey: \"\" as string\r\n };\r\n },\r\n getters: {\r\n getList: (state): NavTabsState[] => {\r\n return state.list;\r\n }\r\n },\r\n actions: {\r\n /**\r\n * 保存标签信息\r\n * @param route\r\n */\r\n save(route: RouteLocationNormalized) {\r\n if (!route.meta?.title) {\r\n // 没有设置title,则不进入缓存\r\n return;\r\n }\r\n const flag = this.list.some(\r\n (item: NavTabsState) => item.path === route.path\r\n );\r\n if (flag) {\r\n // 如果有相同的路由变化,更新对应的参数信息\r\n this.list.forEach((item: NavTabsState) => {\r\n if (item.path === route.path) {\r\n item.query = route.query;\r\n item.fullPath = route.fullPath;\r\n item.params = route.params;\r\n item.meta = route.meta;\r\n item.name = <string>route.name || \"\";\r\n }\r\n });\r\n return;\r\n }\r\n const data: NavTabsState = {\r\n path: route.path,\r\n fullPath: route.fullPath,\r\n query: route.query,\r\n params: route.params,\r\n meta: route.meta,\r\n name: <string>route.name || \"\",\r\n openTime: new Date().getTime()\r\n };\r\n this.list.push(data);\r\n },\r\n /**\r\n * 删除标签\r\n * @param key url路径\r\n */\r\n deleteTabs(key: string) {\r\n const { deleteKeepAlive } = useKeepAliveStore();\r\n const curRoute: NavTabsState =\r\n this.list.find(v => v.fullPath === key) || {};\r\n this.list.splice(\r\n this.list.findIndex(v => v.fullPath === key),\r\n 1\r\n );\r\n // 根据name 删除缓存的组件\r\n if (curRoute?.name) {\r\n deleteKeepAlive(curRoute.name);\r\n }\r\n },\r\n /**\r\n * 设置标题\r\n * @param title 标题\r\n * @param path url\r\n */\r\n setNavTitle(title: string, path: string) {\r\n for (let i = 0; i < this.list.length; i++) {\r\n if (this.list[i].fullPath === path) {\r\n this.list[i].meta!.title = title;\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useNavTabStore;\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNoStore.mjs","sources":["../../../src/modules/useNoStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport type { ItemType } from \"ant-design-vue\";\r\n\r\ninterface NoStore {\r\n // 菜单列表 从后台读取的菜单存入到MenuStore,但是渲染的时候菜单图标需要动态执行\r\n // 如果h函数存入json字符串,下次取出来无法识别\r\n menuList: ItemType[];\r\n}\r\n\r\n/**\r\n * 这个store不会进入缓存\r\n */\r\nconst useNoStore = defineStore(\"NoStore\", {\r\n state: (): NoStore => {\r\n return {\r\n menuList: []\r\n };\r\n },\r\n actions: {\r\n save(data: ItemType[]) {\r\n this.menuList = data;\r\n }\r\n }\r\n});\r\n\r\nexport default useNoStore;\r\n"],"names":[],"mappings":";;;AAaM,MAAA,UAAA,GAAa,YAAY,SAAW,EAAA;AAAA,EACxC,OAAO,MAAe;AACpB,IAAO,OAAA;AAAA,MACL,UAAU;AAAC,KACb;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,KAAK,IAAkB,EAAA;AACrB,MAAA,IAAA,CAAK,QAAW,GAAA,IAAA;AAAA;AAClB;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"useNoStore.mjs","sources":["../../../src/modules/useNoStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nexport interface NoStore {\r\n menuList: any[];\r\n}\r\n\r\n/**\r\n * 这个store不会进入缓存\r\n */\r\nconst useNoStore = defineStore(\"NoStore\", {\r\n state: (): NoStore => {\r\n return {\r\n menuList: []\r\n };\r\n },\r\n actions: {\r\n save(data: any[]) {\r\n this.menuList = data;\r\n }\r\n }\r\n});\r\n\r\nexport default useNoStore;\r\n"],"names":[],"mappings":";;;AASA,MAAM,UAAA,GAAa,YAAY,SAAA,EAAW;AAAA,EACxC,OAAO,MAAe;AACpB,IAAA,OAAO;AAAA,MACL,UAAU;AAAC,KACb;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAK,IAAA,EAAa;AAChB,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,IAClB;AAAA;AAEJ,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useUserStore.mjs","sources":["../../../src/modules/useUserStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { USER_ID } from \"../types\";\r\n\r\nexport interface UserState {\r\n token: string | undefined;\r\n userInfo: unknown;\r\n}\r\n\r\nconst useUserStore = defineStore(USER_ID, {\r\n state: (): UserState => ({\r\n token: undefined,\r\n userInfo: undefined\r\n }),\r\n getters: {\r\n getToken: state => state.token,\r\n getUserInfo: state => state.userInfo\r\n },\r\n actions: {\r\n /**\r\n * 保存token\r\n * @param token\r\n */\r\n saveToken(token: string) {\r\n this.token = token;\r\n },\r\n saveUserInfo(data: unknown) {\r\n this.userInfo = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useUserStore;\r\n"],"names":[],"mappings":";;;;AASM,MAAA,YAAA,GAAe,YAAY,OAAS,EAAA;AAAA,EACxC,OAAO,OAAkB;AAAA,IACvB,KAAO,EAAA,KAAA,CAAA;AAAA,IACP,QAAU,EAAA,KAAA;AAAA,GACZ,CAAA;AAAA,EACA,OAAS,EAAA;AAAA,IACP,QAAA,EAAU,WAAS,KAAM,CAAA,KAAA;AAAA,IACzB,WAAA,EAAa,WAAS,KAAM,CAAA;AAAA,GAC9B;AAAA,EACA,OAAS,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,UAAU,KAAe,EAAA;AACvB,MAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,KACf;AAAA,IACA,aAAa,IAAe,EAAA;AAC1B,MAAA,IAAA,CAAK,QAAW,GAAA,IAAA;AAAA;AAClB,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"useUserStore.mjs","sources":["../../../src/modules/useUserStore.ts"],"sourcesContent":["import { defineStore } from \"pinia\";\r\n\r\nimport { USER_ID } from \"../types\";\r\n\r\nexport interface UserState {\r\n token: string | undefined;\r\n userInfo: unknown;\r\n}\r\n\r\nconst useUserStore = defineStore(USER_ID, {\r\n state: (): UserState => ({\r\n token: undefined,\r\n userInfo: undefined\r\n }),\r\n getters: {\r\n getToken: state => state.token,\r\n getUserInfo: state => state.userInfo\r\n },\r\n actions: {\r\n /**\r\n * 保存token\r\n * @param token\r\n */\r\n saveToken(token: string) {\r\n this.token = token;\r\n },\r\n saveUserInfo(data: unknown) {\r\n this.userInfo = data;\r\n }\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useUserStore;\r\n"],"names":[],"mappings":";;;;AASA,MAAM,YAAA,GAAe,YAAY,OAAA,EAAS;AAAA,EACxC,OAAO,OAAkB;AAAA,IACvB,KAAA,EAAO,KAAA,CAAA;AAAA,IACP,QAAA,EAAU,KAAA;AAAA,GACZ,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,WAAS,KAAA,CAAM,KAAA;AAAA,IACzB,WAAA,EAAa,WAAS,KAAA,CAAM;AAAA,GAC9B;AAAA,EACA,OAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,UAAU,KAAA,EAAe;AACvB,MAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,IACf,CAAA;AAAA,IACA,aAAa,IAAA,EAAe;AAC1B,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,IAClB;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../../src/types.ts"],"sourcesContent":["const id_prefix = \"_STORE_\";\n//面包屑\nexport const BREADCRUMB_ID = `${id_prefix}BREADCRUMB_ID`;\n//字典ID\nexport const DATA_DICTIONARY_ID = `${id_prefix}DATA_DICTIONARY_ID`;\n//缓存组件ID\nexport const KEEP_ALIVE_ID = `${id_prefix}KEEP_ALIVE_ID`;\n//菜单ID\nexport const MENU_ID = `${id_prefix}MENU_ID`;\n//多标签ID\nexport const NAV_TAB_ID = `${id_prefix}NAV_TABS_ID`;\n//用户信息ID\nexport const SETTINGS_ID = `${id_prefix}SETTINGS_ID`;\n//用户信息ID\nexport const USER_ID = `${id_prefix}USER_ID`;\n//存储APP配置信息\nexport const APP_ID = `${id_prefix}APP_ID`;\n"],"names":[],"mappings":";AAAA,MAAM,SAAY,GAAA,SAAA;AAEL,MAAA,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAE5B,MAAA,kBAAA,GAAqB,GAAG,SAAS,CAAA,kBAAA;AAEjC,MAAA,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAE5B,MAAA,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAEtB,MAAA,UAAA,GAAa,GAAG,SAAS,CAAA,WAAA;AAEzB,MAAA,WAAA,GAAc,GAAG,SAAS,CAAA,WAAA;AAE1B,MAAA,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAEtB,MAAA,MAAA,GAAS,GAAG,SAAS,CAAA,MAAA;;;;"}
1
+ {"version":3,"file":"types.mjs","sources":["../../src/types.ts"],"sourcesContent":["const id_prefix = \"_STORE_\";\n//面包屑\nexport const BREADCRUMB_ID = `${id_prefix}BREADCRUMB_ID`;\n//字典ID\nexport const DATA_DICTIONARY_ID = `${id_prefix}DATA_DICTIONARY_ID`;\n//缓存组件ID\nexport const KEEP_ALIVE_ID = `${id_prefix}KEEP_ALIVE_ID`;\n//菜单ID\nexport const MENU_ID = `${id_prefix}MENU_ID`;\n//多标签ID\nexport const NAV_TAB_ID = `${id_prefix}NAV_TABS_ID`;\n//用户信息ID\nexport const SETTINGS_ID = `${id_prefix}SETTINGS_ID`;\n//用户信息ID\nexport const USER_ID = `${id_prefix}USER_ID`;\n//存储APP配置信息\nexport const APP_ID = `${id_prefix}APP_ID`;\n"],"names":[],"mappings":";AAAA,MAAM,SAAA,GAAY,SAAA;AAEX,MAAM,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAElC,MAAM,kBAAA,GAAqB,GAAG,SAAS,CAAA,kBAAA;AAEvC,MAAM,aAAA,GAAgB,GAAG,SAAS,CAAA,aAAA;AAElC,MAAM,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAE5B,MAAM,UAAA,GAAa,GAAG,SAAS,CAAA,WAAA;AAE/B,MAAM,WAAA,GAAc,GAAG,SAAS,CAAA,WAAA;AAEhC,MAAM,OAAA,GAAU,GAAG,SAAS,CAAA,OAAA;AAE5B,MAAM,MAAA,GAAS,GAAG,SAAS,CAAA,MAAA;;;;"}
@@ -6,6 +6,5 @@ export { default as useKeepAliveStore } from "./modules/useKeepAliveStore";
6
6
  export { default as useMenuStore } from "./modules/useMenuStore";
7
7
  export type { NavTabsState } from "./modules/useNavTabStore";
8
8
  export { default as useNavTabStore } from "./modules/useNavTabStore";
9
- export { default as useNoStore } from "./modules/useNoStore";
10
9
  export { default as useUserStore } from "./modules/useUserStore";
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -18,54 +18,29 @@ export interface DataDictionaryState {
18
18
  dataDic: Dictionary;
19
19
  cacheDuration: number;
20
20
  }
21
- declare const useDicStore: import("pinia").StoreDefinition<"_STORE_DATA_DICTIONARY_ID", DataDictionaryState, {
22
- /**
23
- * 根据 key 获取字典列表
24
- * @param state
25
- */
26
- getDicByKey: (state: {
27
- dataDic: Dictionary;
28
- cacheDuration: number;
29
- } & import("pinia").PiniaCustomStateProperties<DataDictionaryState>) => (key: string) => DictionaryItem[];
30
- /**
31
- * 返回value匹配到的整个对象
32
- * @param state
33
- */
34
- getDicObjByValue: (state: {
35
- dataDic: Dictionary;
36
- cacheDuration: number;
37
- } & import("pinia").PiniaCustomStateProperties<DataDictionaryState>) => (key: string, value: never) => DictionaryItem;
21
+ declare const useDicStore: import("pinia").StoreDefinition<"_STORE_DATA_DICTIONARY_ID", DataDictionaryState, {}, {
22
+ isCacheExpired(name: string): boolean;
23
+ saveDicByKey(key: string, data: DictionaryItem[]): void;
24
+ saveAll(data: DictionaryList): void;
38
25
  /**
39
- * 根据字典名称和字典的 value 获取对应的中文
40
- * @param state
26
+ * 1. 根据 key 获取字典列表 (原 getDicByKey)
27
+ * @param key 字典的 key
41
28
  */
42
- getDicTextByValue: (state: {
43
- dataDic: Dictionary;
44
- cacheDuration: number;
45
- } & import("pinia").PiniaCustomStateProperties<DataDictionaryState>) => (key: string, value: string) => string;
29
+ getDicByKey(key: string): DictionaryItem[];
46
30
  /**
47
- * 根据文字匹配对应的 value
48
- * @param state
31
+ * 2. 返回 value 匹配到的整个对象 (原 getDicObjByValue)
32
+ * @param key 字典的 key
33
+ * @param value 字典项的值
49
34
  */
50
- getDicValueByText: (state: {
51
- dataDic: Dictionary;
52
- cacheDuration: number;
53
- } & import("pinia").PiniaCustomStateProperties<DataDictionaryState>) => (key: string, text: string) => string;
54
- }, {
55
- isCacheExpired(name: string): boolean;
35
+ getDicObjByValue(key: string, value: string | number): DictionaryItem | null;
56
36
  /**
57
- * 动态读取下拉字典的时候使用
58
- * 根据key保存字典数据
59
- * @param key key
60
- * @param data 字典数据
37
+ * 3. 根据字典名称和字典的 value 获取对应的中文 (原 getDicTextByValue)
61
38
  */
62
- saveDicByKey(key: string, data: never): void;
39
+ getDicTextByValue(key: string, value: string): string;
63
40
  /**
64
- * 一次性存入数据字典的时候使用
65
- * 数据格式: {key1:[{value:'',label:''}],key2:[{value:'',label:''}]}
66
- *
41
+ * 4. 根据文字匹配对应的 value (原 getDicValueByText)
67
42
  */
68
- saveAll(data: DictionaryList): void;
43
+ getDicValueByText(key: string, text: string): string;
69
44
  }>;
70
45
  export default useDicStore;
71
46
  //# sourceMappingURL=useDicStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDicStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useDicStore.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACjC;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,QAAA,MAAM,WAAW;IAMb;;;OAGG;;iBAbI,UAAU;uBACJ,MAAM;kFAcJ,MAAM,KAAG,cAAc,EAAE;IAKxC;;;OAGG;;iBAvBI,UAAU;uBACJ,MAAM;kFAyBV,MAAM,SACJ,KAAK,KACX,cAAc;IASnB;;;OAGG;;iBAxCI,UAAU;uBACJ,MAAM;kFAyCJ,MAAM,SAAS,MAAM,KAAG,MAAM;IAW7C;;;OAGG;;iBAxDI,UAAU;uBACJ,MAAM;kFAyDJ,MAAM,QAAQ,MAAM,KAAG,MAAM;;yBAavB,MAAM,GAAG,OAAO;IAQrC;;;;;OAKG;sBACe,MAAM,QAAQ,KAAK;IAMrC;;;;OAIG;kBACW,cAAc;EAU9B,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"useDicStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useDicStore.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACjC;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,QAAA,MAAM,WAAW;yBAiBQ,MAAM,GAAG,OAAO;sBAUnB,MAAM,QAAQ,cAAc,EAAE;kBASlC,cAAc;IAW5B;;;OAGG;qBACc,MAAM,GAAG,cAAc,EAAE;IAK1C;;;;OAIG;0BAEI,MAAM,SACJ,MAAM,GAAG,MAAM,GACrB,cAAc,GAAG,IAAI;IAUxB;;OAEG;2BACoB,MAAM,SAAS,MAAM,GAAG,MAAM;IASrD;;OAEG;2BACoB,MAAM,QAAQ,MAAM,GAAG,MAAM;EAUtD,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -1,12 +1,11 @@
1
- import type { ItemType } from "ant-design-vue";
2
- interface NoStore {
3
- menuList: ItemType[];
1
+ export interface NoStore {
2
+ menuList: any[];
4
3
  }
5
4
  /**
6
5
  * 这个store不会进入缓存
7
6
  */
8
7
  declare const useNoStore: import("pinia").StoreDefinition<"NoStore", NoStore, {}, {
9
- save(data: ItemType[]): void;
8
+ save(data: any[]): void;
10
9
  }>;
11
10
  export default useNoStore;
12
11
  //# sourceMappingURL=useNoStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNoStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useNoStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,UAAU,OAAO;IAGf,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,QAAA,MAAM,UAAU;eAOD,QAAQ,EAAE;EAIvB,CAAC;AAEH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"useNoStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useNoStore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,QAAA,MAAM,UAAU;eAOD,GAAG,EAAE;EAIlB,CAAC;AAEH,eAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ditari/store",
3
- "version": "5.0.11",
3
+ "version": "5.1.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -25,12 +25,5 @@
25
25
  "require": "./dist/cjs/*/index.cjs",
26
26
  "types": "./dist/types/index.d.ts"
27
27
  }
28
- },
29
- "peerDependencies": {
30
- "@vueuse/core": "^9.13.0",
31
- "vue": "^3.3.4",
32
- "vue-request": "2.0.0-rc.4",
33
- "pinia": "^2.1.4",
34
- "pinia-plugin-persistedstate": "^3.1.0"
35
28
  }
36
29
  }