giime 0.0.18 → 0.0.20

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.
Files changed (124) hide show
  1. package/README.md +7 -0
  2. package/es/api/basic/controller/default/postBasicV1AreaList.mjs.map +1 -1
  3. package/es/api/basic/controller/default/postBasicV1CategoryList.mjs.map +1 -1
  4. package/es/api/basic/controller/default/postBasicV1CountryList.mjs.map +1 -1
  5. package/es/api/basic/controller/default/postBasicV1CurrencyList.mjs.map +1 -1
  6. package/es/api/basic/controller/default/postBasicV1EmployeeList.mjs.map +1 -1
  7. package/es/api/basic/controller/default/postBasicV1ExchangeRateList.mjs.map +1 -1
  8. package/es/api/basic/controller/default/postBasicV1MenuList.mjs.map +1 -1
  9. package/es/api/basic/controller/default/postBasicV1OrgList.mjs.map +1 -1
  10. package/es/api/basic/controller/default/postBasicV1OrgTreeList.mjs.map +1 -1
  11. package/es/api/basic/controller/default/postBasicV1ProductList.mjs.map +1 -1
  12. package/es/api/basic/controller/default/postBasicV1RoleList.mjs.map +1 -1
  13. package/es/api/basic/controller/default/postBasicV1SalesList.mjs.map +1 -1
  14. package/es/api/basic/controller/default/postBasicV1SystemList.mjs.map +1 -1
  15. package/es/api/basic/controller/default/usePostBasicV1AreaList.mjs.map +1 -1
  16. package/es/api/basic/controller/default/usePostBasicV1CategoryList.mjs.map +1 -1
  17. package/es/api/basic/controller/default/usePostBasicV1CountryList.mjs.map +1 -1
  18. package/es/api/basic/controller/default/usePostBasicV1CurrencyList.mjs.map +1 -1
  19. package/es/api/basic/controller/default/usePostBasicV1EmployeeList.mjs.map +1 -1
  20. package/es/api/basic/controller/default/usePostBasicV1ExchangeRateList.mjs.map +1 -1
  21. package/es/api/basic/controller/default/usePostBasicV1MenuList.mjs.map +1 -1
  22. package/es/api/basic/controller/default/usePostBasicV1OrgList.mjs.map +1 -1
  23. package/es/api/basic/controller/default/usePostBasicV1OrgTreeList.mjs.map +1 -1
  24. package/es/api/basic/controller/default/usePostBasicV1ProductList.mjs.map +1 -1
  25. package/es/api/basic/controller/default/usePostBasicV1RoleList.mjs.map +1 -1
  26. package/es/api/basic/controller/default/usePostBasicV1SalesList.mjs.map +1 -1
  27. package/es/api/basic/controller/default/usePostBasicV1SystemList.mjs.map +1 -1
  28. package/es/api/shopAdmin/index.mjs +1 -0
  29. package/es/api/shopAdmin/index.mjs.map +1 -1
  30. package/es/api/shopAdmin/store/index.d.ts +1 -0
  31. package/es/api/shopAdmin/store/index.mjs +1 -0
  32. package/es/api/shopAdmin/store/index.mjs.map +1 -1
  33. package/es/api/shopAdmin/store/postPlatfirmList.d.ts +19 -0
  34. package/es/api/shopAdmin/store/postPlatfirmList.mjs +11 -0
  35. package/es/api/shopAdmin/store/postPlatfirmList.mjs.map +1 -0
  36. package/es/components/src/base/cascaderPanel/cascaderPanel.d.ts +0 -3
  37. package/es/components/src/base/cascaderPanel/cascaderPanel.mjs.map +1 -1
  38. package/es/components/src/base/popover/Popover.vue2.mjs.map +1 -1
  39. package/es/components/src/base/tour/Tour.vue.d.ts +2 -2
  40. package/es/components/src/base/tour/index.d.ts +6 -6
  41. package/es/components/src/composite/tablePro/tableColumnPro/index.mjs.map +1 -1
  42. package/es/giime/index.mjs +2 -0
  43. package/es/giime/index.mjs.map +1 -1
  44. package/es/giime/version.d.ts +1 -1
  45. package/es/giime/version.mjs +1 -1
  46. package/es/giime/version.mjs.map +1 -1
  47. package/es/hooks/base/index.d.ts +1 -0
  48. package/es/hooks/base/index.mjs +1 -0
  49. package/es/hooks/base/index.mjs.map +1 -1
  50. package/es/hooks/base/useDownload/index.d.ts +9 -0
  51. package/es/hooks/base/useDownload/index.mjs +143 -0
  52. package/es/hooks/base/useDownload/index.mjs.map +1 -0
  53. package/es/hooks/index.mjs +2 -0
  54. package/es/hooks/index.mjs.map +1 -1
  55. package/es/hooks/store/index.d.ts +1 -0
  56. package/es/hooks/store/index.mjs +1 -0
  57. package/es/hooks/store/index.mjs.map +1 -1
  58. package/es/hooks/store/usePlatformList/index.d.ts +16 -0
  59. package/es/hooks/store/usePlatformList/index.mjs +42 -0
  60. package/es/hooks/store/usePlatformList/index.mjs.map +1 -0
  61. package/es/utils/src/objects.mjs.map +1 -1
  62. package/es/utils/src/types.d.ts +14 -0
  63. package/lib/api/basic/controller/default/postBasicV1AreaList.js.map +1 -1
  64. package/lib/api/basic/controller/default/postBasicV1CategoryList.js.map +1 -1
  65. package/lib/api/basic/controller/default/postBasicV1CountryList.js.map +1 -1
  66. package/lib/api/basic/controller/default/postBasicV1CurrencyList.js.map +1 -1
  67. package/lib/api/basic/controller/default/postBasicV1EmployeeList.js.map +1 -1
  68. package/lib/api/basic/controller/default/postBasicV1ExchangeRateList.js.map +1 -1
  69. package/lib/api/basic/controller/default/postBasicV1MenuList.js.map +1 -1
  70. package/lib/api/basic/controller/default/postBasicV1OrgList.js.map +1 -1
  71. package/lib/api/basic/controller/default/postBasicV1OrgTreeList.js.map +1 -1
  72. package/lib/api/basic/controller/default/postBasicV1ProductList.js.map +1 -1
  73. package/lib/api/basic/controller/default/postBasicV1RoleList.js.map +1 -1
  74. package/lib/api/basic/controller/default/postBasicV1SalesList.js.map +1 -1
  75. package/lib/api/basic/controller/default/postBasicV1SystemList.js.map +1 -1
  76. package/lib/api/basic/controller/default/usePostBasicV1AreaList.js.map +1 -1
  77. package/lib/api/basic/controller/default/usePostBasicV1CategoryList.js.map +1 -1
  78. package/lib/api/basic/controller/default/usePostBasicV1CountryList.js.map +1 -1
  79. package/lib/api/basic/controller/default/usePostBasicV1CurrencyList.js.map +1 -1
  80. package/lib/api/basic/controller/default/usePostBasicV1EmployeeList.js.map +1 -1
  81. package/lib/api/basic/controller/default/usePostBasicV1ExchangeRateList.js.map +1 -1
  82. package/lib/api/basic/controller/default/usePostBasicV1MenuList.js.map +1 -1
  83. package/lib/api/basic/controller/default/usePostBasicV1OrgList.js.map +1 -1
  84. package/lib/api/basic/controller/default/usePostBasicV1OrgTreeList.js.map +1 -1
  85. package/lib/api/basic/controller/default/usePostBasicV1ProductList.js.map +1 -1
  86. package/lib/api/basic/controller/default/usePostBasicV1RoleList.js.map +1 -1
  87. package/lib/api/basic/controller/default/usePostBasicV1SalesList.js.map +1 -1
  88. package/lib/api/basic/controller/default/usePostBasicV1SystemList.js.map +1 -1
  89. package/lib/api/shopAdmin/index.js +2 -0
  90. package/lib/api/shopAdmin/index.js.map +1 -1
  91. package/lib/api/shopAdmin/store/index.d.ts +1 -0
  92. package/lib/api/shopAdmin/store/index.js +2 -0
  93. package/lib/api/shopAdmin/store/index.js.map +1 -1
  94. package/lib/api/shopAdmin/store/postPlatfirmList.d.ts +19 -0
  95. package/lib/api/shopAdmin/store/postPlatfirmList.js +13 -0
  96. package/lib/api/shopAdmin/store/postPlatfirmList.js.map +1 -0
  97. package/lib/components/src/base/cascaderPanel/cascaderPanel.d.ts +0 -3
  98. package/lib/components/src/base/cascaderPanel/cascaderPanel.js.map +1 -1
  99. package/lib/components/src/base/popover/Popover.vue2.js.map +1 -1
  100. package/lib/components/src/base/tour/Tour.vue.d.ts +2 -2
  101. package/lib/components/src/base/tour/index.d.ts +6 -6
  102. package/lib/components/src/composite/tablePro/tableColumnPro/index.js.map +1 -1
  103. package/lib/giime/index.js +24 -20
  104. package/lib/giime/index.js.map +1 -1
  105. package/lib/giime/version.d.ts +1 -1
  106. package/lib/giime/version.js +1 -1
  107. package/lib/giime/version.js.map +1 -1
  108. package/lib/hooks/base/index.d.ts +1 -0
  109. package/lib/hooks/base/index.js +2 -0
  110. package/lib/hooks/base/index.js.map +1 -1
  111. package/lib/hooks/base/useDownload/index.d.ts +9 -0
  112. package/lib/hooks/base/useDownload/index.js +145 -0
  113. package/lib/hooks/base/useDownload/index.js.map +1 -0
  114. package/lib/hooks/index.js +24 -20
  115. package/lib/hooks/index.js.map +1 -1
  116. package/lib/hooks/store/index.d.ts +1 -0
  117. package/lib/hooks/store/index.js +2 -0
  118. package/lib/hooks/store/index.js.map +1 -1
  119. package/lib/hooks/store/usePlatformList/index.d.ts +16 -0
  120. package/lib/hooks/store/usePlatformList/index.js +44 -0
  121. package/lib/hooks/store/usePlatformList/index.js.map +1 -0
  122. package/lib/utils/src/objects.js.map +1 -1
  123. package/lib/utils/src/types.d.ts +14 -0
  124. package/package.json +2 -1
@@ -0,0 +1,145 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var index = require('../../../components/src/plugins/notification/index.js');
5
+ var JSZip = require('jszip');
6
+
7
+ const useDownload = () => {
8
+ let xhrInstance;
9
+ let downloading = false;
10
+ const progress = vue.ref(0);
11
+ const currentClass = `class${Date.now()}`;
12
+ vue.onBeforeUnmount(() => {
13
+ if (xhrInstance) {
14
+ xhrInstance.abort();
15
+ xhrInstance = null;
16
+ }
17
+ });
18
+ const downloadBlob = (url, fileName, fileType, isZip) => {
19
+ return new Promise((resolve, reject) => {
20
+ xhrInstance = new XMLHttpRequest();
21
+ xhrInstance.responseType = "blob";
22
+ xhrInstance.open("get", url, true);
23
+ xhrInstance.onprogress = (e) => {
24
+ progress.value = Math.floor(e.loaded / e.total * 100);
25
+ editElementContent(currentClass, `\u5F53\u524D\u4E0B\u8F7D\u8FDB\u5EA6 ${progress.value}%`);
26
+ if (progress.value == 100) {
27
+ progress.value = 0;
28
+ downloading = false;
29
+ }
30
+ };
31
+ xhrInstance.onloadend = (e) => {
32
+ const eventTarget = e.target;
33
+ if ([200, 304].includes(eventTarget.status)) {
34
+ const blob = eventTarget.response;
35
+ if (!isZip) {
36
+ createDownload(blob, fileName, fileType);
37
+ index.GmNotification({
38
+ type: "success",
39
+ title: "\u6E29\u99A8\u63D0\u793A",
40
+ message: "\u4E0B\u8F7D\u5B8C\u6210",
41
+ duration: 3e3
42
+ });
43
+ }
44
+ xhrInstance = null;
45
+ resolve(blob);
46
+ }
47
+ };
48
+ xhrInstance.onerror = function(e) {
49
+ downloading = false;
50
+ index.GmNotification({
51
+ type: "error",
52
+ title: "\u6E29\u99A8\u63D0\u793A",
53
+ message: "\u4E0B\u8F7D\u5F02\u5E38\uFF0C\u8BF7\u91CD\u8BD5",
54
+ duration: 1500
55
+ });
56
+ reject(e);
57
+ };
58
+ xhrInstance.send();
59
+ });
60
+ };
61
+ const downloadFile = async (options) => {
62
+ try {
63
+ if (downloading || !options.url || !options.fileName)
64
+ return;
65
+ downloading = true;
66
+ const fileType = options.fileType || options.url.split(".").pop();
67
+ const modalInfo = index.GmNotification({
68
+ title: "\u4E0B\u8F7D\u4E2D",
69
+ message: vue.h("div", { className: currentClass }, [`\u5F53\u524D\u4E0B\u8F7D\u8FDB\u5EA6 ${progress.value}%`]),
70
+ duration: 0
71
+ });
72
+ await downloadBlob(options.url, options.fileName, fileType, false);
73
+ modalInfo.close();
74
+ } catch (error) {
75
+ console.error(error);
76
+ }
77
+ };
78
+ const downloadZip = async (fileList, fileName) => {
79
+ try {
80
+ const currentContentClass = `message${Date.now()}`;
81
+ const downloadCount = vue.ref(0);
82
+ const currentDownloadFileName = vue.ref();
83
+ const len = fileList.length;
84
+ const modalInfo = index.GmNotification({
85
+ title: "\u4E0B\u8F7D\u4E2D",
86
+ message: vue.h("div", [
87
+ vue.h("div", { className: currentContentClass }, [`\u603B\u4E0B\u8F7D\u6587\u4EF6\u6570\uFF1A${len}\uFF0C\u5DF2\u4E0B\u8F7D\u6587\u4EF6\u6570\uFF1A${downloadCount.value}`]),
88
+ vue.h("div", { className: currentClass }, [`\u5F53\u524D\u4E0B\u8F7D\u8FDB\u5EA6 ${progress.value}%`])
89
+ ]),
90
+ duration: 0
91
+ });
92
+ const zipInstance = new JSZip();
93
+ for (let i = 0; i < len; i++) {
94
+ const currentItem = fileList[i];
95
+ const currentFileType = currentItem.fileType || currentItem.url.split(".").pop();
96
+ currentDownloadFileName.value = currentItem.fileName;
97
+ const fileBlob = await downloadBlob(currentItem.url, currentItem.fileName, currentFileType, true);
98
+ zipInstance.file(`${currentItem.fileName}.${currentFileType}`, fileBlob);
99
+ downloadCount.value++;
100
+ editElementContent(currentContentClass, `\u603B\u4E0B\u8F7D\u6587\u4EF6\u6570\uFF1A${len}\uFF0C\u5DF2\u4E0B\u8F7D\u6587\u4EF6\u6570\uFF1A${downloadCount.value}`);
101
+ }
102
+ downloading = false;
103
+ modalInfo.close();
104
+ index.GmNotification({
105
+ type: "success",
106
+ title: "\u6E29\u99A8\u63D0\u793A",
107
+ message: "\u4E0B\u8F7D\u5B8C\u6210",
108
+ duration: 3e3
109
+ });
110
+ zipInstance.generateAsync({ type: "blob" }).then((res) => {
111
+ createDownload(res, fileName, "zip");
112
+ }).catch((error) => {
113
+ console.error(error);
114
+ });
115
+ } catch (error) {
116
+ console.error(error);
117
+ }
118
+ };
119
+ return {
120
+ downloadFile,
121
+ downloadZip
122
+ };
123
+ };
124
+ const createDownload = (blob, fileName, fileType) => {
125
+ if (!blob || !fileName || !fileType)
126
+ return;
127
+ const ele = document.createElement("a");
128
+ const url = window.URL.createObjectURL(blob);
129
+ ele.style.display = "none";
130
+ ele.href = url;
131
+ ele.download = `${fileName}.${fileType}`;
132
+ document.body.appendChild(ele);
133
+ ele.click();
134
+ window.URL.revokeObjectURL(url);
135
+ document.body.removeChild(ele);
136
+ };
137
+ const editElementContent = (className, content) => {
138
+ const currentEle = document.getElementsByClassName(className)[0];
139
+ if (currentEle) {
140
+ currentEle.innerHTML = content;
141
+ }
142
+ };
143
+
144
+ exports.useDownload = useDownload;
145
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/base/useDownload/index.ts"],"sourcesContent":["import { h, onBeforeUnmount, ref } from 'vue';\r\nimport GmNotification from '@giime/components/src/plugins/notification';\r\nimport JSZip from 'jszip';\r\n\r\n// 参数类型\r\nexport interface OptionsType {\r\n url: string;\r\n fileName: string;\r\n fileType?: string;\r\n}\r\n\r\nexport const useDownload = () => {\r\n let xhrInstance: XMLHttpRequest | null;\r\n // 是否正在下载\r\n let downloading = false;\r\n // 单文件下载进度\r\n const progress = ref(0);\r\n // 动态生成唯一的 class\r\n const currentClass = `class${Date.now()}`;\r\n onBeforeUnmount(() => {\r\n if (xhrInstance) {\r\n xhrInstance.abort();\r\n xhrInstance = null;\r\n }\r\n });\r\n // 将 url 下载为 blob 文件\r\n const downloadBlob = (url: string, fileName: string, fileType: string, isZip: boolean) => {\r\n return new Promise<Blob>((resolve, reject) => {\r\n xhrInstance = new XMLHttpRequest();\r\n xhrInstance.responseType = 'blob';\r\n xhrInstance.open('get', url, true);\r\n xhrInstance.onprogress = e => {\r\n progress.value = Math.floor((e.loaded / e.total) * 100);\r\n editElementContent(currentClass, `当前下载进度 ${progress.value}%`);\r\n if (progress.value == 100) {\r\n progress.value = 0;\r\n downloading = false;\r\n }\r\n };\r\n xhrInstance.onloadend = e => {\r\n const eventTarget = e.target as XMLHttpRequest;\r\n if ([200, 304].includes(eventTarget.status)) {\r\n const blob = eventTarget.response;\r\n if (!isZip) {\r\n createDownload(blob, fileName, fileType);\r\n GmNotification({\r\n type: 'success',\r\n title: '温馨提示',\r\n message: '下载完成',\r\n duration: 3000,\r\n });\r\n }\r\n xhrInstance = null;\r\n resolve(blob);\r\n }\r\n };\r\n xhrInstance.onerror = function (e) {\r\n downloading = false;\r\n GmNotification({\r\n type: 'error',\r\n title: '温馨提示',\r\n message: '下载异常,请重试',\r\n duration: 1500,\r\n });\r\n reject(e);\r\n };\r\n xhrInstance.send();\r\n });\r\n };\r\n // 下载单文件\r\n const downloadFile = async (options: OptionsType) => {\r\n try {\r\n if (downloading || !options.url || !options.fileName) return;\r\n downloading = true;\r\n const fileType = options.fileType || options.url.split('.').pop()!;\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: currentClass }, [`当前下载进度 ${progress.value}%`]),\r\n duration: 0,\r\n });\r\n await downloadBlob(options.url, options.fileName, fileType, false);\r\n modalInfo.close();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n // 下载多文件 转为zip\r\n const downloadZip = async (fileList: OptionsType[], fileName: string) => {\r\n try {\r\n const currentContentClass = `message${Date.now()}`;\r\n const downloadCount = ref(0);\r\n const currentDownloadFileName = ref<string>();\r\n const len = fileList.length;\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', [\r\n h('div', { className: currentContentClass }, [`总下载文件数:${len},已下载文件数:${downloadCount.value}`]),\r\n h('div', { className: currentClass }, [`当前下载进度 ${progress.value}%`]),\r\n ]),\r\n duration: 0,\r\n });\r\n const zipInstance = new JSZip();\r\n for (let i = 0; i < len; i++) {\r\n const currentItem = fileList[i];\r\n const currentFileType = currentItem.fileType || currentItem.url.split('.').pop()!;\r\n currentDownloadFileName.value = currentItem.fileName;\r\n const fileBlob = await downloadBlob(currentItem.url, currentItem.fileName, currentFileType, true);\r\n zipInstance.file(`${currentItem.fileName}.${currentFileType}`, fileBlob);\r\n downloadCount.value++;\r\n editElementContent(currentContentClass, `总下载文件数:${len},已下载文件数:${downloadCount.value}`);\r\n }\r\n downloading = false;\r\n modalInfo.close();\r\n GmNotification({\r\n type: 'success',\r\n title: '温馨提示',\r\n message: '下载完成',\r\n duration: 3000,\r\n });\r\n zipInstance\r\n .generateAsync({ type: 'blob' })\r\n .then(res => {\r\n createDownload(res, fileName, 'zip');\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n return {\r\n downloadFile,\r\n downloadZip,\r\n };\r\n};\r\n// 创建下载链接 并下载\r\nconst createDownload = (blob: Blob, fileName: string, fileType: string) => {\r\n if (!blob || !fileName || !fileType) return;\r\n const ele = document.createElement('a');\r\n const url = window.URL.createObjectURL(blob);\r\n ele.style.display = 'none';\r\n ele.href = url;\r\n ele.download = `${fileName}.${fileType}`;\r\n document.body.appendChild(ele);\r\n ele.click();\r\n window.URL.revokeObjectURL(url);\r\n document.body.removeChild(ele);\r\n};\r\n\r\n// 动态更新 notify 中的message 信息\r\nconst editElementContent = (className: string, content: string) => {\r\n // eslint-disable-next-line unicorn/prefer-query-selector\r\n const currentEle = document.getElementsByClassName(className)[0];\r\n if (currentEle) {\r\n currentEle.innerHTML = content;\r\n }\r\n};\r\n"],"names":["ref","onBeforeUnmount","GmNotification","h"],"mappings":"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"}
@@ -4,29 +4,33 @@ require('./base/index.js');
4
4
  require('./store/index.js');
5
5
  var index = require('./base/useCheckAll/index.js');
6
6
  var index$1 = require('./base/useIDBKeyval/index.js');
7
- var index$2 = require('./store/useLangList/index.js');
8
- var index$3 = require('./store/useLogin/index.js');
9
- var index$4 = require('./store/useCustomSettings/index.js');
10
- var index$5 = require('./store/useCurrencyList/index.js');
11
- var index$6 = require('./store/useLineList/index.js');
12
- var index$7 = require('./store/usePlatformLineList/index.js');
13
- var index$8 = require('./store/useOrgUserList/index.js');
14
- var index$9 = require('./store/useAliCategoryList/index.js');
15
- var index$a = require('./store/useCompanyCategoryList/index.js');
16
- var index$b = require('./store/useRepiteFilter/index.js');
7
+ var index$2 = require('./base/useDownload/index.js');
8
+ var index$3 = require('./store/useLangList/index.js');
9
+ var index$4 = require('./store/useLogin/index.js');
10
+ var index$5 = require('./store/useCustomSettings/index.js');
11
+ var index$6 = require('./store/useCurrencyList/index.js');
12
+ var index$7 = require('./store/useLineList/index.js');
13
+ var index$8 = require('./store/usePlatformLineList/index.js');
14
+ var index$9 = require('./store/useOrgUserList/index.js');
15
+ var index$a = require('./store/useAliCategoryList/index.js');
16
+ var index$b = require('./store/useCompanyCategoryList/index.js');
17
+ var index$c = require('./store/useRepiteFilter/index.js');
18
+ var index$d = require('./store/usePlatformList/index.js');
17
19
 
18
20
 
19
21
 
20
22
  exports.useCheckAll = index.useCheckAll;
21
23
  exports.useIDBKeyval = index$1.useIDBKeyval;
22
- exports.useLangListStore = index$2.useLangListStore;
23
- exports.useLoginStore = index$3.useLoginStore;
24
- exports.useCustomSettingsStore = index$4.useCustomSettingsStore;
25
- exports.useCurrencyListStore = index$5.useCurrencyListStore;
26
- exports.useLineListStore = index$6.useLineListStore;
27
- exports.usePlatformLineListStore = index$7.usePlatformLineListStore;
28
- exports.useOrgUserListStore = index$8.useOrgUserListStore;
29
- exports.useAliCategoryListStore = index$9.useAliCategoryListStore;
30
- exports.useCompanyCategoryListStore = index$a.useCompanyCategoryListStore;
31
- exports.useRepiteFilterStore = index$b.useRepiteFilterStore;
24
+ exports.useDownload = index$2.useDownload;
25
+ exports.useLangListStore = index$3.useLangListStore;
26
+ exports.useLoginStore = index$4.useLoginStore;
27
+ exports.useCustomSettingsStore = index$5.useCustomSettingsStore;
28
+ exports.useCurrencyListStore = index$6.useCurrencyListStore;
29
+ exports.useLineListStore = index$7.useLineListStore;
30
+ exports.usePlatformLineListStore = index$8.usePlatformLineListStore;
31
+ exports.useOrgUserListStore = index$9.useOrgUserListStore;
32
+ exports.useAliCategoryListStore = index$a.useAliCategoryListStore;
33
+ exports.useCompanyCategoryListStore = index$b.useCompanyCategoryListStore;
34
+ exports.useRepiteFilterStore = index$c.useRepiteFilterStore;
35
+ exports.usePlatformListStore = index$d.usePlatformListStore;
32
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,3 +9,4 @@ export * from './useOrgUserList';
9
9
  export * from './useAliCategoryList';
10
10
  export * from './useCompanyCategoryList';
11
11
  export * from './useRepiteFilter';
12
+ export * from './usePlatformList';
@@ -11,6 +11,7 @@ var index$6 = require('./useOrgUserList/index.js');
11
11
  var index$7 = require('./useAliCategoryList/index.js');
12
12
  var index$8 = require('./useCompanyCategoryList/index.js');
13
13
  var index$9 = require('./useRepiteFilter/index.js');
14
+ var index$a = require('./usePlatformList/index.js');
14
15
 
15
16
 
16
17
 
@@ -24,4 +25,5 @@ exports.useOrgUserListStore = index$6.useOrgUserListStore;
24
25
  exports.useAliCategoryListStore = index$7.useAliCategoryListStore;
25
26
  exports.useCompanyCategoryListStore = index$8.useCompanyCategoryListStore;
26
27
  exports.useRepiteFilterStore = index$9.useRepiteFilterStore;
28
+ exports.usePlatformListStore = index$a.usePlatformListStore;
27
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,16 @@
1
+ /// <reference types="@vueuse/shared" />
2
+ import type { PostPlatformListResponseDatum } from '../../../api/shopAdmin';
3
+ /**三方平台列表 */
4
+ export declare const usePlatformListStore: import("pinia").StoreDefinition<"gmPlatformList", import("pinia")._UnwrapAll<Pick<{
5
+ platformList: import("@vueuse/shared").RemovableRef<PostPlatformListResponseDatum[]>;
6
+ isLoading: import("vue").Ref<boolean>;
7
+ getPlatformList: () => Promise<void>;
8
+ }, "isLoading" | "platformList">>, Pick<{
9
+ platformList: import("@vueuse/shared").RemovableRef<PostPlatformListResponseDatum[]>;
10
+ isLoading: import("vue").Ref<boolean>;
11
+ getPlatformList: () => Promise<void>;
12
+ }, never>, Pick<{
13
+ platformList: import("@vueuse/shared").RemovableRef<PostPlatformListResponseDatum[]>;
14
+ isLoading: import("vue").Ref<boolean>;
15
+ getPlatformList: () => Promise<void>;
16
+ }, "getPlatformList">>;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var pinia = require('pinia');
5
+ require('../../../api/shopAdmin/index.js');
6
+ var core = require('@vueuse/core');
7
+ var postPlatfirmList = require('../../../api/shopAdmin/store/postPlatfirmList.js');
8
+
9
+ const usePlatformListStore = pinia.defineStore("gmPlatformList", () => {
10
+ const platformList = core.useSessionStorage("gmPlatformList", [], { listenToStorageChanges: false });
11
+ const isLoading = vue.ref(false);
12
+ const getPlatformList = async () => {
13
+ if (platformList.value.length !== 0) {
14
+ isLoading.value = false;
15
+ return;
16
+ }
17
+ if (isLoading.value) {
18
+ return;
19
+ }
20
+ try {
21
+ isLoading.value = true;
22
+ const { data } = await postPlatfirmList.postPlatListApi();
23
+ isLoading.value = false;
24
+ if (data.code !== 0) {
25
+ return;
26
+ }
27
+ platformList.value = data.data;
28
+ } catch (e) {
29
+ console.error(e);
30
+ isLoading.value = false;
31
+ }
32
+ };
33
+ vue.onMounted(() => {
34
+ getPlatformList();
35
+ });
36
+ return {
37
+ platformList,
38
+ isLoading,
39
+ getPlatformList
40
+ };
41
+ });
42
+
43
+ exports.usePlatformListStore = usePlatformListStore;
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/store/usePlatformList/index.ts"],"sourcesContent":["import { onMounted, ref } from 'vue';\r\nimport { defineStore } from 'pinia';\r\nimport { postPlatListApi } from '@giime/api/shopAdmin';\r\nimport { useSessionStorage } from '@vueuse/core';\r\nimport type { PostPlatformListResponseDatum } from '@giime/api/shopAdmin';\r\n\r\n/**三方平台列表 */\r\nexport const usePlatformListStore = defineStore('gmPlatformList', () => {\r\n const platformList = useSessionStorage<PostPlatformListResponseDatum[]>('gmPlatformList', [], { listenToStorageChanges: false });\r\n\r\n const isLoading = ref(false);\r\n const getPlatformList = async () => {\r\n if (platformList.value.length !== 0) {\r\n isLoading.value = false;\r\n return;\r\n }\r\n if (isLoading.value) {\r\n return;\r\n }\r\n try {\r\n isLoading.value = true;\r\n const { data } = await postPlatListApi();\r\n isLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n platformList.value = data.data;\r\n } catch (e) {\r\n console.error(e);\r\n isLoading.value = false;\r\n }\r\n };\r\n onMounted(() => {\r\n getPlatformList();\r\n });\r\n return {\r\n platformList,\r\n isLoading,\r\n getPlatformList,\r\n };\r\n});\r\n"],"names":["defineStore","useSessionStorage","ref","postPlatListApi","onMounted"],"mappings":";;;;;;;;AAOa,MAAA,oBAAA,GAAuBA,iBAAY,CAAA,gBAAA,EAAkB,MAAM;AACtE,EAAM,MAAA,YAAA,GAAeC,uBAAmD,gBAAkB,EAAA,IAAI,EAAE,sBAAA,EAAwB,OAAO,CAAA,CAAA;AAE/H,EAAM,MAAA,SAAA,GAAYC,QAAI,KAAK,CAAA,CAAA;AAC3B,EAAA,MAAM,kBAAkB,YAAY;AAClC,IAAI,IAAA,YAAA,CAAa,KAAM,CAAA,MAAA,KAAW,CAAG,EAAA;AACnC,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAClB,MAAA,OAAA;AAAA,KACF;AACA,IAAA,IAAI,UAAU,KAAO,EAAA;AACnB,MAAA,OAAA;AAAA,KACF;AACA,IAAI,IAAA;AACF,MAAA,SAAA,CAAU,KAAQ,GAAA,IAAA,CAAA;AAClB,MAAA,MAAM,EAAE,IAAA,EAAS,GAAA,MAAMC,gCAAgB,EAAA,CAAA;AACvC,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAClB,MAAI,IAAA,IAAA,CAAK,SAAS,CAAG,EAAA;AACnB,QAAA,OAAA;AAAA,OACF;AACA,MAAA,YAAA,CAAa,QAAQ,IAAK,CAAA,IAAA,CAAA;AAAA,aACnB,CAAG,EAAA;AACV,MAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AACf,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAAA,KACpB;AAAA,GACF,CAAA;AACA,EAAAC,aAAA,CAAU,MAAM;AACd,IAAgB,eAAA,EAAA,CAAA;AAAA,GACjB,CAAA,CAAA;AACD,EAAO,OAAA;AAAA,IACL,YAAA;AAAA,IACA,SAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AACF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","sources":["../../../../../packages/utils/src/objects.ts"],"sourcesContent":["export const keysOf = <T extends object>(arr: T) => Object.keys(arr) as Array<keyof T>;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val => hasOwnProperty.call(val, key);\n"],"names":[],"mappings":";;AAAO,MAAM,MAAS,GAAA,CAAmB,GAAW,KAAA,MAAA,CAAO,KAAK,GAAG,EAAA;AACnE,MAAM,cAAA,GAAiB,OAAO,SAAU,CAAA,cAAA,CAAA;AACjC,MAAM,SAAS,CAAC,GAAA,EAAa,QAAkD,cAAe,CAAA,IAAA,CAAK,KAAK,GAAG;;;;;"}
1
+ {"version":3,"file":"objects.js","sources":["../../../../../packages/utils/src/objects.ts"],"sourcesContent":["export const keysOf = <T extends object>(arr: T) => Object.keys(arr) as Array<keyof T>;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val => hasOwnProperty.call(val, key);\r\n"],"names":[],"mappings":";;AAAO,MAAM,MAAS,GAAA,CAAmB,GAAW,KAAA,MAAA,CAAO,KAAK,GAAG,EAAA;AACnE,MAAM,cAAA,GAAiB,OAAO,SAAU,CAAA,cAAA,CAAA;AACjC,MAAM,SAAS,CAAC,GAAA,EAAa,QAAkD,cAAe,CAAA,IAAA,CAAK,KAAK,GAAG;;;;;"}
@@ -16,3 +16,17 @@ export type DeepRequired<T> = T extends Primitive ? T : keyof T extends never ?
16
16
  export type DeepWritable<T> = T extends Primitive ? T : keyof T extends never ? T : {
17
17
  -readonly [K in keyof T]: DeepWritable<T[K]>;
18
18
  };
19
+ /**
20
+ * 把一堆类型 如:Partial<Pick<User, "name">> & Omit<User, "name"> 合并成简单的 {name?:string;age:number}
21
+ */
22
+ export type MergeType<T> = {
23
+ [K in keyof T]: T[K];
24
+ };
25
+ /**
26
+ * https://github.com/type-challenges/type-challenges/blob/master/questions/02757-medium-partialbykeys/README.md
27
+ */
28
+ export type PartialByKeys<T, K = keyof T, P extends keyof T = Extract<keyof T, K>> = MergeType<Partial<Pick<T, P>> & Omit<T, P>>;
29
+ /**
30
+ * https://github.com/type-challenges/type-challenges/blob/master/questions/02759-medium-requiredbykeys/README.md
31
+ */
32
+ export type RequiredByKeys<T, K = keyof T, P extends keyof T = Extract<keyof T, K>> = MergeType<Required<Pick<T, P>> & Omit<T, P>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "giime",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "A Component Library for Vue 3",
5
5
  "keywords": [
6
6
  "giime",
@@ -61,6 +61,7 @@
61
61
  "lodash-es": "^4.17.21",
62
62
  "idb-keyval": "^6.2.1",
63
63
  "clipboard": "^2.0.11",
64
+ "jszip": "^3.10.1",
64
65
  "@types/lodash": "^4.17.0",
65
66
  "@types/lodash-es": "^4.17.12"
66
67
  },