@ditari/store 5.0.1 → 5.0.2

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.
@@ -15,13 +15,21 @@ const useAppStore = pinia.defineStore(types.APP_ID, {
15
15
  algorithm: antDesignVue.theme.defaultAlgorithm,
16
16
  token: {}
17
17
  },
18
- mode: "dark",
18
+ modeConfig: {
19
+ mode: "light",
20
+ list: [
21
+ { value: "light", label: "\u4EAE\u8272" },
22
+ { value: "dark", label: "\u6DF1\u8272" },
23
+ { value: "os", label: "\u8DDF\u968F\u7CFB\u7EDF" }
24
+ ]
25
+ },
19
26
  layout: {
20
27
  sideWidth: 200,
21
28
  headerHeight: 44,
22
29
  collapsedWidth: 80,
23
30
  collapsed: false
24
- }
31
+ },
32
+ refresh: false
25
33
  };
26
34
  },
27
35
  persist: true
@@ -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\ninterface App {\r\n theme: ThemeConfig;\r\n // 模式:亮色和深色\r\n mode: \"light\" | \"dark\";\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\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 mode: \"dark\",\r\n layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\r\n }\r\n };\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useAppStore;\r\n"],"names":["defineStore","APP_ID","theme"],"mappings":";;;;;;;;;AAsBM,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,IAAM,EAAA,MAAA;AAAA,MACN,MAAQ,EAAA;AAAA,QACN,SAAW,EAAA,GAAA;AAAA,QACX,YAAc,EAAA,EAAA;AAAA,QACd,cAAgB,EAAA,EAAA;AAAA,QAChB,SAAW,EAAA;AAAA;AACb,KACF;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 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 layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\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":";;;;;;;;;AAgCM,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,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,OAAS,EAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
@@ -52,7 +52,8 @@ const useNavTabStore = pinia.defineStore(types.NAV_TAB_ID, {
52
52
  query: route.query,
53
53
  params: route.params,
54
54
  meta: route.meta,
55
- name: route.name || ""
55
+ name: route.name || "",
56
+ openTime: (/* @__PURE__ */ new Date()).getTime()
56
57
  };
57
58
  this.list.push(data);
58
59
  },
@@ -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}\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 };\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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"}
@@ -11,13 +11,21 @@ const useAppStore = defineStore(APP_ID, {
11
11
  algorithm: theme.defaultAlgorithm,
12
12
  token: {}
13
13
  },
14
- mode: "dark",
14
+ modeConfig: {
15
+ mode: "light",
16
+ list: [
17
+ { value: "light", label: "\u4EAE\u8272" },
18
+ { value: "dark", label: "\u6DF1\u8272" },
19
+ { value: "os", label: "\u8DDF\u968F\u7CFB\u7EDF" }
20
+ ]
21
+ },
15
22
  layout: {
16
23
  sideWidth: 200,
17
24
  headerHeight: 44,
18
25
  collapsedWidth: 80,
19
26
  collapsed: false
20
- }
27
+ },
28
+ refresh: false
21
29
  };
22
30
  },
23
31
  persist: true
@@ -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\ninterface App {\r\n theme: ThemeConfig;\r\n // 模式:亮色和深色\r\n mode: \"light\" | \"dark\";\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\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 mode: \"dark\",\r\n layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\r\n }\r\n };\r\n },\r\n persist: true\r\n});\r\n\r\nexport default useAppStore;\r\n"],"names":[],"mappings":";;;;;AAsBM,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,IAAM,EAAA,MAAA;AAAA,MACN,MAAQ,EAAA;AAAA,QACN,SAAW,EAAA,GAAA;AAAA,QACX,YAAc,EAAA,EAAA;AAAA,QACd,cAAgB,EAAA,EAAA;AAAA,QAChB,SAAW,EAAA;AAAA;AACb,KACF;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 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 layout: {\r\n sideWidth: 200,\r\n headerHeight: 44,\r\n collapsedWidth: 80,\r\n collapsed: false\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":";;;;;AAgCM,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,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,OAAS,EAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
@@ -48,7 +48,8 @@ const useNavTabStore = defineStore(NAV_TAB_ID, {
48
48
  query: route.query,
49
49
  params: route.params,
50
50
  meta: route.meta,
51
- name: route.name || ""
51
+ name: route.name || "",
52
+ openTime: (/* @__PURE__ */ new Date()).getTime()
52
53
  };
53
54
  this.list.push(data);
54
55
  },
@@ -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}\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 };\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":";;;;;AAuBa,MAAA,cAAA,GAAiB,YAAY,UAAY,EAAA;AAAA,EACpD,OAAO,MAAM;AACX,IAAO,OAAA;AAAA;AAAA,MAEL,MAAM,EAAC;AAAA;AAAA,MAEP,SAAW,EAAA;AAAA,KACb;AAAA,GACF;AAAA,EACA,OAAS,EAAA;AAAA,IACP,OAAA,EAAS,CAAC,KAA0B,KAAA;AAClC,MAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AACf,GACF;AAAA,EACA,OAAS,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,KAAK,KAAgC,EAAA;AA1CzC,MAAA,IAAA,EAAA;AA2CM,MAAA,IAAI,EAAC,CAAA,EAAA,GAAA,KAAA,CAAM,IAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAY,KAAO,CAAA,EAAA;AAEtB,QAAA;AAAA;AAEF,MAAM,MAAA,IAAA,GAAO,KAAK,IAAK,CAAA,IAAA;AAAA,QACrB,CAAC,IAAA,KAAuB,IAAK,CAAA,IAAA,KAAS,KAAM,CAAA;AAAA,OAC9C;AACA,MAAA,IAAI,IAAM,EAAA;AAER,QAAK,IAAA,CAAA,IAAA,CAAK,OAAQ,CAAA,CAAC,IAAuB,KAAA;AACxC,UAAI,IAAA,IAAA,CAAK,IAAS,KAAA,KAAA,CAAM,IAAM,EAAA;AAC5B,YAAA,IAAA,CAAK,QAAQ,KAAM,CAAA,KAAA;AACnB,YAAA,IAAA,CAAK,WAAW,KAAM,CAAA,QAAA;AACtB,YAAA,IAAA,CAAK,SAAS,KAAM,CAAA,MAAA;AACpB,YAAA,IAAA,CAAK,OAAO,KAAM,CAAA,IAAA;AAClB,YAAK,IAAA,CAAA,IAAA,GAAe,MAAM,IAAQ,IAAA,EAAA;AAAA;AACpC,SACD,CAAA;AACD,QAAA;AAAA;AAEF,MAAA,MAAM,IAAqB,GAAA;AAAA,QACzB,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,OAAO,KAAM,CAAA,KAAA;AAAA,QACb,QAAQ,KAAM,CAAA,MAAA;AAAA,QACd,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,IAAA,EAAc,MAAM,IAAQ,IAAA;AAAA,OAC9B;AACA,MAAK,IAAA,CAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,KACrB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAW,GAAa,EAAA;AACtB,MAAM,MAAA,EAAE,eAAgB,EAAA,GAAI,iBAAkB,EAAA;AAC9C,MAAM,MAAA,QAAA,GACJ,KAAK,IAAK,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,QAAA,KAAa,GAAG,CAAA,IAAK,EAAC;AAC9C,MAAA,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,QACR,KAAK,IAAK,CAAA,SAAA,CAAU,CAAK,CAAA,KAAA,CAAA,CAAE,aAAa,GAAG,CAAA;AAAA,QAC3C;AAAA,OACF;AAEA,MAAA,IAAI,qCAAU,IAAM,EAAA;AAClB,QAAA,eAAA,CAAgB,SAAS,IAAI,CAAA;AAAA;AAC/B,KACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA,CAAY,OAAe,IAAc,EAAA;AACvC,MAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,IAAK,CAAA,IAAA,CAAK,QAAQ,CAAK,EAAA,EAAA;AACzC,QAAA,IAAI,IAAK,CAAA,IAAA,CAAK,CAAC,CAAA,CAAE,aAAa,IAAM,EAAA;AAClC,UAAA,IAAA,CAAK,IAAK,CAAA,CAAC,CAAE,CAAA,IAAA,CAAM,KAAQ,GAAA,KAAA;AAC3B,UAAA;AAAA;AACF;AACF;AACF,GACF;AAAA,EACA,OAAS,EAAA;AACX,CAAC;;;;"}
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,13 +1,21 @@
1
1
  import type { ThemeConfig } from "ant-design-vue/es/config-provider/context";
2
- interface App {
2
+ export interface App {
3
3
  theme: ThemeConfig;
4
- mode: "light" | "dark";
4
+ modeConfig: Mode;
5
5
  layout: {
6
6
  sideWidth: number;
7
7
  headerHeight: number;
8
8
  collapsedWidth: number;
9
9
  collapsed: boolean;
10
10
  };
11
+ refresh: boolean;
12
+ }
13
+ export interface Mode {
14
+ mode: string;
15
+ list: {
16
+ value: string;
17
+ label: string;
18
+ }[];
11
19
  }
12
20
  declare const useAppStore: import("pinia").StoreDefinition<"_STORE_APP_ID", App, {}, {}>;
13
21
  export default useAppStore;
@@ -1 +1 @@
1
- {"version":3,"file":"useAppStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useAppStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAE7E,UAAU,GAAG;IACX,KAAK,EAAE,WAAW,CAAC;IAEnB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE;QAEN,SAAS,EAAE,MAAM,CAAC;QAElB,YAAY,EAAE,MAAM,CAAC;QAErB,cAAc,EAAE,MAAM,CAAC;QAEvB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,QAAA,MAAM,WAAW,+DAkBf,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"useAppStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useAppStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAE7E,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,WAAW,CAAC;IAEnB,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE;QAEN,SAAS,EAAE,MAAM,CAAC;QAElB,YAAY,EAAE,MAAM,CAAC;QAErB,cAAc,EAAE,MAAM,CAAC;QAEvB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;CACL;AAED,QAAA,MAAM,WAAW,+DA0Bf,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -6,6 +6,7 @@ export interface NavTabsState {
6
6
  params?: RouteParams;
7
7
  meta?: RouteMeta;
8
8
  name?: string;
9
+ openTime?: number | undefined;
9
10
  }
10
11
  export declare const useNavTabStore: import("pinia").StoreDefinition<"_STORE_NAV_TABS_ID", {
11
12
  list: NavTabsState[];
@@ -19,6 +20,7 @@ export declare const useNavTabStore: import("pinia").StoreDefinition<"_STORE_NAV
19
20
  params?: RouteParams | undefined;
20
21
  meta?: RouteMeta | undefined;
21
22
  name?: string | undefined;
23
+ openTime?: number | undefined | undefined;
22
24
  }[];
23
25
  activeKey: string;
24
26
  } & import("pinia").PiniaCustomStateProperties<{
@@ -1 +1 @@
1
- {"version":3,"file":"useNavTabStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useNavTabStore.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc;UAIT,YAAY,EAAE;eAET,MAAM;;;;mBAdpB,MAAM;uBACF,MAAM;oBACT,aAAa;qBACZ,WAAW;mBACb,SAAS;mBACT,MAAM;;mBASQ,MAAM;;cAFX,YAAY,EAAE;mBAET,MAAM;WAIP,YAAY,EAAE;;IAKhC;;;OAGG;gBACS,uBAAuB;IA+BnC;;;OAGG;oBACa,MAAM;IAatB;;;;OAIG;uBACgB,MAAM,QAAQ,MAAM;EAUzC,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"useNavTabStore.d.ts","sourceRoot":"","sources":["../../../src/modules/useNavTabStore.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,eAAO,MAAM,cAAc;UAIT,YAAY,EAAE;eAET,MAAM;;;;mBAfpB,MAAM;uBACF,MAAM;oBACT,aAAa;qBACZ,WAAW;mBACb,SAAS;mBACT,MAAM;uBACF,MAAM,GAAG,SAAS;;mBASR,MAAM;;cAFX,YAAY,EAAE;mBAET,MAAM;WAIP,YAAY,EAAE;;IAKhC;;;OAGG;gBACS,uBAAuB;IAgCnC;;;OAGG;oBACa,MAAM;IAatB;;;;OAIG;uBACgB,MAAM,QAAQ,MAAM;EAUzC,CAAC;AAEH,eAAe,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@ditari/store",
3
- "version": "5.0.1",
4
- "description": "store",
5
- "private": false,
3
+ "version": "5.0.2",
4
+ "type": "module",
6
5
  "publishConfig": {
7
6
  "access": "public"
8
7
  },
9
- "author": "yulao",
10
- "license": "ISC",
8
+ "files": [
9
+ "dist"
10
+ ],
11
11
  "module": "dist/esm/index.mjs",
12
12
  "main": "dist/cjs/index.cjs",
13
13
  "types": "dist/types/index.d.ts",
package/CHANGELOG.md DELETED
@@ -1,7 +0,0 @@
1
- # @ditari/store
2
-
3
- ## 5.0.1
4
-
5
- ### Patch Changes
6
-
7
- - 初始发布
package/src/index.ts DELETED
@@ -1,7 +0,0 @@
1
- export { default as useAppStore } from "./modules/useAppStore";
2
- export * from "./modules/useBreadStore";
3
- export { default as useDicStore } from "./modules/useDicStore";
4
- export { default as useKeepAliveStore } from "./modules/useKeepAliveStore";
5
- export { default as useMenuStore } from "./modules/useMenuStore";
6
- export { default as useNavTabStore } from "./modules/useNavTabStore";
7
- export { default as useUserStore } from "./modules/useUserStore";
@@ -1,43 +0,0 @@
1
- import { theme } from "ant-design-vue";
2
- import { defineStore } from "pinia";
3
-
4
- import { APP_ID } from "../types";
5
- import type { ThemeConfig } from "ant-design-vue/es/config-provider/context";
6
-
7
- interface App {
8
- theme: ThemeConfig;
9
- // 模式:亮色和深色
10
- mode: "light" | "dark";
11
- layout: {
12
- // 侧边栏宽度
13
- sideWidth: number;
14
- // 头高度
15
- headerHeight: number;
16
- // 左侧菜单收缩时候的宽度
17
- collapsedWidth: number;
18
- // 左侧菜单收缩状态
19
- collapsed: boolean;
20
- };
21
- }
22
-
23
- const useAppStore = defineStore(APP_ID, {
24
- state: (): App => {
25
- return {
26
- theme: {
27
- // 算法
28
- algorithm: theme.defaultAlgorithm,
29
- token: {}
30
- },
31
- mode: "dark",
32
- layout: {
33
- sideWidth: 200,
34
- headerHeight: 44,
35
- collapsedWidth: 80,
36
- collapsed: false
37
- }
38
- };
39
- },
40
- persist: true
41
- });
42
-
43
- export default useAppStore;
@@ -1,26 +0,0 @@
1
- /**
2
- * 面包屑
3
- * @author 余春林
4
- */
5
- import { defineStore } from "pinia";
6
-
7
- import { BREADCRUMB_ID } from "../types";
8
-
9
- export interface BreadcrumbState {
10
- breadcrumbs: [];
11
- }
12
-
13
- export const useBreadStore = defineStore(BREADCRUMB_ID, {
14
- state: (): BreadcrumbState => ({
15
- breadcrumbs: []
16
- }),
17
- getters: {
18
- getBreadcrumb: state => state.breadcrumbs
19
- },
20
- actions: {
21
- saveBreadcrumb(data: never) {
22
- this.breadcrumbs = data;
23
- }
24
- },
25
- persist: true
26
- });
@@ -1,76 +0,0 @@
1
- import { defineStore } from "pinia";
2
-
3
- import { DATA_DICTIONARY_ID } from "../types";
4
-
5
- // 定义字典项的类型
6
- export interface DictionaryItem {
7
- value: string; // 字典项的值
8
- label: string; // 字典项的显示文本
9
- }
10
-
11
- // 定义字典列表的类型
12
- export interface DictionaryList {
13
- [key: string]: DictionaryItem[]; // 键是字符串,值是 DictionaryItem 数组
14
- }
15
-
16
- // 定义 Store 的状态类型
17
- export interface DataDictionaryState {
18
- list: DictionaryList; // 使用 DictionaryList 替换 any
19
- }
20
-
21
- const useDicStore = defineStore(DATA_DICTIONARY_ID, {
22
- state: (): DataDictionaryState => ({
23
- list: {} // 初始化为空对象
24
- }),
25
- getters: {
26
- /**
27
- * 根据 key 获取字典列表
28
- * @param state
29
- */
30
- getDicByKey: state => {
31
- return (key: string): DictionaryItem[] => {
32
- return state.list[key] || [];
33
- };
34
- },
35
-
36
- /**
37
- * 根据字典名称和字典的 value 获取对应的中文
38
- * @param state
39
- */
40
- getDicTextByValue: state => {
41
- return (key: string, value: string): string => {
42
- const rs = state.list[key] || [];
43
- return rs
44
- .filter((item: DictionaryItem) => item.value === value)
45
- .map((item: DictionaryItem) => item.label)
46
- .join("");
47
- };
48
- },
49
-
50
- /**
51
- * 根据文字匹配对应的 value
52
- * @param state
53
- */
54
- getDicValueByText: state => {
55
- return (key: string, text: string): string => {
56
- const rs = state.list[key] || [];
57
- return rs
58
- .filter((item: DictionaryItem) => item.label === text)
59
- .map((item: DictionaryItem) => item.value)
60
- .join("");
61
- };
62
- }
63
- },
64
- actions: {
65
- /**
66
- * 保存字典数据
67
- * @param data 字典数据
68
- */
69
- save(data: DictionaryList) {
70
- this.list = data;
71
- }
72
- },
73
- persist: true
74
- });
75
-
76
- export default useDicStore;
@@ -1,49 +0,0 @@
1
- /**
2
- * 缓存组件name数据
3
- */
4
- import { type RouteLocationNormalized } from "vue-router";
5
- import { defineStore } from "pinia";
6
-
7
- import { KEEP_ALIVE_ID } from "../types";
8
-
9
- const useKeepAliveStore = defineStore(KEEP_ALIVE_ID, {
10
- state: () => {
11
- return {
12
- list: [] as string[]
13
- };
14
- },
15
- getters: {
16
- get: (state): string[] => {
17
- return state.list;
18
- }
19
- },
20
- actions: {
21
- /**
22
- * 删除已经缓存的组件
23
- * @param name 组件名称(必须唯一)
24
- */
25
- deleteKeepAlive(name: string) {
26
- this.list.splice(
27
- this.list.findIndex((key: string) => key === name),
28
- 1
29
- );
30
- },
31
- /**
32
- * 保存要缓存的组件名称
33
- * @param route
34
- */
35
- save(route: RouteLocationNormalized) {
36
- const name = <string>route.name;
37
- if (!name) {
38
- return;
39
- }
40
- const flag = this.list.some((key: string) => key === name);
41
- if (!flag) {
42
- this.list.push(name);
43
- }
44
- }
45
- },
46
- persist: true
47
- });
48
-
49
- export default useKeepAliveStore;
@@ -1,28 +0,0 @@
1
- import { defineStore } from "pinia";
2
-
3
- import { MENU_ID } from "../types";
4
- import type { ItemType } from "ant-design-vue";
5
-
6
- interface Menu {
7
- openKeys: string[];
8
- selectedKeys: string[];
9
- data: ItemType[];
10
- }
11
-
12
- const useMenuStore = defineStore(MENU_ID, {
13
- state: (): Menu => {
14
- return {
15
- openKeys: [],
16
- selectedKeys: [],
17
- data: []
18
- };
19
- },
20
- actions: {
21
- save(data: ItemType[]) {
22
- this.data = data;
23
- }
24
- },
25
- persist: true
26
- });
27
-
28
- export default useMenuStore;
@@ -1,108 +0,0 @@
1
- /**
2
- * 多标签数据
3
- */
4
- import { defineStore } from "pinia";
5
-
6
- import { NAV_TAB_ID } from "../types";
7
- import useKeepAliveStore from "./useKeepAliveStore";
8
- import type {
9
- LocationQuery,
10
- RouteLocationNormalized,
11
- RouteMeta,
12
- RouteParams
13
- } from "vue-router";
14
-
15
- export interface NavTabsState {
16
- path?: string;
17
- fullPath?: string;
18
- query?: LocationQuery;
19
- params?: RouteParams;
20
- meta?: RouteMeta;
21
- name?: string;
22
- }
23
-
24
- export const useNavTabStore = defineStore(NAV_TAB_ID, {
25
- state: () => {
26
- return {
27
- // 多标签列表
28
- list: [] as NavTabsState[],
29
- // 当前激活的地址
30
- activeKey: "" as string
31
- };
32
- },
33
- getters: {
34
- getList: (state): NavTabsState[] => {
35
- return state.list;
36
- }
37
- },
38
- actions: {
39
- /**
40
- * 保存标签信息
41
- * @param route
42
- */
43
- save(route: RouteLocationNormalized) {
44
- if (!route.meta?.title) {
45
- // 没有设置title,则不进入缓存
46
- return;
47
- }
48
- const flag = this.list.some(
49
- (item: NavTabsState) => item.path === route.path
50
- );
51
- if (flag) {
52
- // 如果有相同的路由变化,更新对应的参数信息
53
- this.list.forEach((item: NavTabsState) => {
54
- if (item.path === route.path) {
55
- item.query = route.query;
56
- item.fullPath = route.fullPath;
57
- item.params = route.params;
58
- item.meta = route.meta;
59
- item.name = <string>route.name || "";
60
- }
61
- });
62
- return;
63
- }
64
- const data: NavTabsState = {
65
- path: route.path,
66
- fullPath: route.fullPath,
67
- query: route.query,
68
- params: route.params,
69
- meta: route.meta,
70
- name: <string>route.name || ""
71
- };
72
- this.list.push(data);
73
- },
74
- /**
75
- * 删除标签
76
- * @param key url路径
77
- */
78
- deleteTabs(key: string) {
79
- const { deleteKeepAlive } = useKeepAliveStore();
80
- const curRoute: NavTabsState =
81
- this.list.find(v => v.fullPath === key) || {};
82
- this.list.splice(
83
- this.list.findIndex(v => v.fullPath === key),
84
- 1
85
- );
86
- // 根据name 删除缓存的组件
87
- if (curRoute?.name) {
88
- deleteKeepAlive(curRoute.name);
89
- }
90
- },
91
- /**
92
- * 设置标题
93
- * @param title 标题
94
- * @param path url
95
- */
96
- setNavTitle(title: string, path: string) {
97
- for (let i = 0; i < this.list.length; i++) {
98
- if (this.list[i].fullPath === path) {
99
- this.list[i].meta!.title = title;
100
- break;
101
- }
102
- }
103
- }
104
- },
105
- persist: true
106
- });
107
-
108
- export default useNavTabStore;
@@ -1,34 +0,0 @@
1
- import { defineStore } from "pinia";
2
-
3
- import { USER_ID } from "../types";
4
-
5
- export interface UserState {
6
- token: string | undefined;
7
- userInfo: unknown;
8
- }
9
-
10
- const useUserStore = defineStore(USER_ID, {
11
- state: (): UserState => ({
12
- token: undefined,
13
- userInfo: undefined
14
- }),
15
- getters: {
16
- getToken: state => state.token,
17
- getUserInfo: state => state.userInfo
18
- },
19
- actions: {
20
- /**
21
- * 保存token
22
- * @param token
23
- */
24
- saveToken(token: string) {
25
- this.token = token;
26
- },
27
- saveUserInfo(data: unknown) {
28
- this.userInfo = data;
29
- }
30
- },
31
- persist: true
32
- });
33
-
34
- export default useUserStore;
package/src/pinia.d.ts DELETED
@@ -1,9 +0,0 @@
1
- // src/types/pinia.d.ts
2
- import "pinia";
3
-
4
- declare module "pinia" {
5
- // 扩展 Pinia 的 DefineStoreOptionsBase 类型,不用使用泛型参数
6
- export interface DefineStoreOptionsBase {
7
- persist?: boolean;
8
- }
9
- }
package/src/types.ts DELETED
@@ -1,17 +0,0 @@
1
- const id_prefix = "_STORE_";
2
- //面包屑
3
- export const BREADCRUMB_ID = `${id_prefix}BREADCRUMB_ID`;
4
- //字典ID
5
- export const DATA_DICTIONARY_ID = `${id_prefix}DATA_DICTIONARY_ID`;
6
- //缓存组件ID
7
- export const KEEP_ALIVE_ID = `${id_prefix}KEEP_ALIVE_ID`;
8
- //菜单ID
9
- export const MENU_ID = `${id_prefix}MENU_ID`;
10
- //多标签ID
11
- export const NAV_TAB_ID = `${id_prefix}NAV_TABS_ID`;
12
- //用户信息ID
13
- export const SETTINGS_ID = `${id_prefix}SETTINGS_ID`;
14
- //用户信息ID
15
- export const USER_ID = `${id_prefix}USER_ID`;
16
- //存储APP配置信息
17
- export const APP_ID = `${id_prefix}APP_ID`;
package/tsconfig.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "extends": [
3
- "../../tsconfig.json"
4
- ],
5
- "compilerOptions": {
6
- "types": [
7
- "pinia-plugin-persistedstate"
8
- ]
9
- },
10
- "include": [
11
- "src/**/*"
12
- ]
13
- }