giime 0.1.1 → 0.1.3

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 (65) hide show
  1. package/dist/index.css +42 -34
  2. package/es/components/index.mjs +2 -0
  3. package/es/components/index.mjs.map +1 -1
  4. package/es/components/src/composite/importDialog/ImportDialog.vue.d.ts +75 -0
  5. package/es/components/src/composite/importDialog/ImportDialog.vue.mjs +7 -0
  6. package/es/components/src/composite/importDialog/ImportDialog.vue.mjs.map +1 -0
  7. package/es/components/src/composite/importDialog/ImportDialog.vue2.mjs +166 -0
  8. package/es/components/src/composite/importDialog/ImportDialog.vue2.mjs.map +1 -0
  9. package/es/components/src/composite/importDialog/importDialog.d.ts +35 -0
  10. package/es/components/src/composite/importDialog/importDialog.mjs +17 -0
  11. package/es/components/src/composite/importDialog/importDialog.mjs.map +1 -0
  12. package/es/components/src/composite/importDialog/index.d.ts +73 -0
  13. package/es/components/src/composite/importDialog/index.mjs +9 -0
  14. package/es/components/src/composite/importDialog/index.mjs.map +1 -0
  15. package/es/components/src/composite/index.d.ts +1 -0
  16. package/es/components/src/composite/index.mjs +2 -0
  17. package/es/components/src/composite/index.mjs.map +1 -1
  18. package/es/giime/component.mjs +2 -0
  19. package/es/giime/component.mjs.map +1 -1
  20. package/es/giime/index.mjs +2 -0
  21. package/es/giime/index.mjs.map +1 -1
  22. package/es/giime/version.d.ts +1 -1
  23. package/es/giime/version.mjs +1 -1
  24. package/es/giime/version.mjs.map +1 -1
  25. package/es/hooks/base/useDownload/index.mjs +1 -1
  26. package/es/hooks/base/useDownload/index.mjs.map +1 -1
  27. package/es/index.css +42 -34
  28. package/es/utils/src/http/createAxios.d.ts +4 -2
  29. package/es/utils/src/http/createAxios.mjs +4 -5
  30. package/es/utils/src/http/createAxios.mjs.map +1 -1
  31. package/es/utils/src/http/devProxy.mjs +5 -0
  32. package/es/utils/src/http/devProxy.mjs.map +1 -1
  33. package/global.d.ts +1 -0
  34. package/lib/components/index.js +15 -10
  35. package/lib/components/index.js.map +1 -1
  36. package/lib/components/src/composite/importDialog/ImportDialog.vue.d.ts +75 -0
  37. package/lib/components/src/composite/importDialog/ImportDialog.vue.js +11 -0
  38. package/lib/components/src/composite/importDialog/ImportDialog.vue.js.map +1 -0
  39. package/lib/components/src/composite/importDialog/ImportDialog.vue2.js +170 -0
  40. package/lib/components/src/composite/importDialog/ImportDialog.vue2.js.map +1 -0
  41. package/lib/components/src/composite/importDialog/importDialog.d.ts +35 -0
  42. package/lib/components/src/composite/importDialog/importDialog.js +20 -0
  43. package/lib/components/src/composite/importDialog/importDialog.js.map +1 -0
  44. package/lib/components/src/composite/importDialog/index.d.ts +73 -0
  45. package/lib/components/src/composite/importDialog/index.js +16 -0
  46. package/lib/components/src/composite/importDialog/index.js.map +1 -0
  47. package/lib/components/src/composite/index.d.ts +1 -0
  48. package/lib/components/src/composite/index.js +5 -0
  49. package/lib/components/src/composite/index.js.map +1 -1
  50. package/lib/giime/component.js +20 -18
  51. package/lib/giime/component.js.map +1 -1
  52. package/lib/giime/index.js +43 -38
  53. package/lib/giime/index.js.map +1 -1
  54. package/lib/giime/version.d.ts +1 -1
  55. package/lib/giime/version.js +1 -1
  56. package/lib/giime/version.js.map +1 -1
  57. package/lib/hooks/base/useDownload/index.js +1 -1
  58. package/lib/hooks/base/useDownload/index.js.map +1 -1
  59. package/lib/index.css +42 -34
  60. package/lib/utils/src/http/createAxios.d.ts +4 -2
  61. package/lib/utils/src/http/createAxios.js +4 -5
  62. package/lib/utils/src/http/createAxios.js.map +1 -1
  63. package/lib/utils/src/http/devProxy.js +5 -0
  64. package/lib/utils/src/http/devProxy.js.map +1 -1
  65. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- const version = "0.1.0";
1
+ const version = "0.1.3";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.1.0';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.1.3';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
@@ -25,7 +25,7 @@ const useDownload = () => {
25
25
  modalInfo.close();
26
26
  };
27
27
  const downloadByRes = async (res, options) => {
28
- const filename = options?.filename || (res.headers["content-disposition"] || res.headers["Content-Disposition"])?.split("filename=")[1] || "file";
28
+ const filename = options?.filename || (res?.headers?.["content-disposition"] || res?.headers?.["Content-Disposition"])?.split("filename=")[1] || "file";
29
29
  const resBlob = await res.data;
30
30
  const curId = v4();
31
31
  const modalInfo = GmNotification({
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/base/useDownload/index.ts"],"sourcesContent":["import { h, ref } from 'vue';\r\nimport FileSaver from 'file-saver';\r\n\r\nimport GmNotification from '@giime/components/src/plugins/notification';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport JSZip from 'jszip';\r\nimport type { AxiosResponse } from 'axios';\r\n\r\nexport interface DownloadOptions {\r\n filename?: string;\r\n}\r\nexport interface DateownloadZipItem {\r\n url: string;\r\n filename?: string;\r\n}\r\n\r\nexport const useDownload = () => {\r\n const getUrlFilename = (url: string) => {\r\n const filename = url.split('/').pop()?.split('?')[0] || 'file';\r\n return filename;\r\n };\r\n /**\r\n * 通过url下载\r\n * @param url\r\n * @param options\r\n */\r\n const downloadByUrl = async (url: string, options?: DownloadOptions) => {\r\n const filename = options?.filename || getUrlFilename(url);\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n await createDownload({\r\n url,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 通过接口响应结果下载\r\n * @param res\r\n * @param options\r\n */\r\n const downloadByRes = async (res: AxiosResponse<any, any>, options?: DownloadOptions) => {\r\n const filename = options?.filename || (res.headers['content-disposition'] || res.headers['Content-Disposition'])?.split('filename=')[1] || 'file';\r\n const resBlob = await res.data;\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n // 设置type类型\r\n const blob = new Blob([resBlob]);\r\n const fileUrl = window.URL.createObjectURL(blob);\r\n await createDownload({\r\n url: fileUrl,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 下载多文件 转为zip\r\n * @param fileList\r\n * @param filename\r\n */\r\n const downloadToZip = async (fileList: DateownloadZipItem[], filename: string) => {\r\n try {\r\n const currentContentClass = `message${Date.now()}`;\r\n const downloadCount = ref(0);\r\n const len = fileList.length;\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', [h('div', { className: currentContentClass }, [`总下载文件数:${len},已下载文件数:${downloadCount.value}`])]),\r\n duration: 0,\r\n });\r\n // h('div', { className: currentClass }, [`当前下载进度 ${progress.value}%`]),\r\n const zipInstance = new JSZip();\r\n for (let i = 0; i < len; i++) {\r\n const currentItem = fileList[i];\r\n // const fileBlob = await\r\n const downblobOptions = {\r\n url: currentItem.url,\r\n filename: currentItem.filename ?? getUrlFilename(currentItem.url),\r\n isZip: true,\r\n };\r\n createDownload(downblobOptions).then(res => {\r\n zipInstance.file(downblobOptions.filename, res);\r\n downloadCount.value++;\r\n editElementContent(currentContentClass, `总下载文件数:${len},已下载文件数:${downloadCount.value}`);\r\n if (downloadCount.value == len) {\r\n editElementContent(currentContentClass, `正在合并...`);\r\n\r\n zipInstance\r\n .generateAsync({ type: 'blob' })\r\n .then(res => {\r\n modalInfo.close();\r\n\r\n const fileUrl = window.URL.createObjectURL(res);\r\n // FileSaver.saveAs(res, filename);\r\n downloadByUrl(fileUrl, { filename });\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n });\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n const createDownload = (options: { url: string; filename: string; uuid?: string; isZip?: boolean }) => {\r\n return new Promise<Blob>((resolve, reject) => {\r\n // 创建一个新的 XMLHttpRequest 对象\r\n const xhr = new XMLHttpRequest();\r\n // 初始化一个GET请求\r\n xhr.open('GET', options.url, true);\r\n xhr.responseType = 'blob'; // 设置响应类型为blob,以便处理二进制文件\r\n\r\n // 监听 progress 事件\r\n xhr.onprogress = function (event) {\r\n if (event.lengthComputable) {\r\n const percentComplete = Math.floor((event.loaded / event.total) * 100);\r\n if (options.uuid) {\r\n editElementContent(options.uuid, `当前下载进度 ${percentComplete}%`);\r\n }\r\n }\r\n };\r\n\r\n // 监听 load 事件,表示下载完成\r\n xhr.onload = function (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 // const url = window.URL.createObjectURL(blob);\r\n if (!options.isZip) {\r\n FileSaver.saveAs(blob, options.filename);\r\n GmNotification({\r\n type: 'success',\r\n title: '温馨提示',\r\n message: '下载完成',\r\n duration: 3000,\r\n });\r\n }\r\n\r\n resolve(blob);\r\n }\r\n };\r\n\r\n // 监听 error 事件\r\n xhr.onerror = function (e) {\r\n GmMessage.error('下载异常,请重试');\r\n reject(e);\r\n };\r\n\r\n // 发送请求\r\n xhr.send();\r\n });\r\n };\r\n return { downloadByUrl, downloadByRes, downloadToZip };\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":["uuidv4","res"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/base/useDownload/index.ts"],"sourcesContent":["import { h, ref } from 'vue';\r\nimport FileSaver from 'file-saver';\r\n\r\nimport GmNotification from '@giime/components/src/plugins/notification';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport JSZip from 'jszip';\r\nimport type { AxiosResponse } from 'axios';\r\n\r\nexport interface DownloadOptions {\r\n filename?: string;\r\n}\r\nexport interface DateownloadZipItem {\r\n url: string;\r\n filename?: string;\r\n}\r\n\r\nexport const useDownload = () => {\r\n const getUrlFilename = (url: string) => {\r\n const filename = url.split('/').pop()?.split('?')[0] || 'file';\r\n return filename;\r\n };\r\n /**\r\n * 通过url下载\r\n * @param url\r\n * @param options\r\n */\r\n const downloadByUrl = async (url: string, options?: DownloadOptions) => {\r\n const filename = options?.filename || getUrlFilename(url);\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n await createDownload({\r\n url,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 通过接口响应结果下载\r\n * @param res\r\n * @param options\r\n */\r\n const downloadByRes = async (res: AxiosResponse<any, any>, options?: DownloadOptions) => {\r\n const filename =\r\n options?.filename || (res?.headers?.['content-disposition'] || res?.headers?.['Content-Disposition'])?.split('filename=')[1] || 'file';\r\n const resBlob = await res.data;\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n // 设置type类型\r\n const blob = new Blob([resBlob]);\r\n const fileUrl = window.URL.createObjectURL(blob);\r\n await createDownload({\r\n url: fileUrl,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 下载多文件 转为zip\r\n * @param fileList\r\n * @param filename\r\n */\r\n const downloadToZip = async (fileList: DateownloadZipItem[], filename: string) => {\r\n try {\r\n const currentContentClass = `message${Date.now()}`;\r\n const downloadCount = ref(0);\r\n const len = fileList.length;\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', [h('div', { className: currentContentClass }, [`总下载文件数:${len},已下载文件数:${downloadCount.value}`])]),\r\n duration: 0,\r\n });\r\n // h('div', { className: currentClass }, [`当前下载进度 ${progress.value}%`]),\r\n const zipInstance = new JSZip();\r\n for (let i = 0; i < len; i++) {\r\n const currentItem = fileList[i];\r\n // const fileBlob = await\r\n const downblobOptions = {\r\n url: currentItem.url,\r\n filename: currentItem.filename ?? getUrlFilename(currentItem.url),\r\n isZip: true,\r\n };\r\n createDownload(downblobOptions).then(res => {\r\n zipInstance.file(downblobOptions.filename, res);\r\n downloadCount.value++;\r\n editElementContent(currentContentClass, `总下载文件数:${len},已下载文件数:${downloadCount.value}`);\r\n if (downloadCount.value == len) {\r\n editElementContent(currentContentClass, `正在合并...`);\r\n\r\n zipInstance\r\n .generateAsync({ type: 'blob' })\r\n .then(res => {\r\n modalInfo.close();\r\n\r\n const fileUrl = window.URL.createObjectURL(res);\r\n // FileSaver.saveAs(res, filename);\r\n downloadByUrl(fileUrl, { filename });\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n });\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n const createDownload = (options: { url: string; filename: string; uuid?: string; isZip?: boolean }) => {\r\n return new Promise<Blob>((resolve, reject) => {\r\n // 创建一个新的 XMLHttpRequest 对象\r\n const xhr = new XMLHttpRequest();\r\n // 初始化一个GET请求\r\n xhr.open('GET', options.url, true);\r\n xhr.responseType = 'blob'; // 设置响应类型为blob,以便处理二进制文件\r\n\r\n // 监听 progress 事件\r\n xhr.onprogress = function (event) {\r\n if (event.lengthComputable) {\r\n const percentComplete = Math.floor((event.loaded / event.total) * 100);\r\n if (options.uuid) {\r\n editElementContent(options.uuid, `当前下载进度 ${percentComplete}%`);\r\n }\r\n }\r\n };\r\n\r\n // 监听 load 事件,表示下载完成\r\n xhr.onload = function (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 // const url = window.URL.createObjectURL(blob);\r\n if (!options.isZip) {\r\n FileSaver.saveAs(blob, options.filename);\r\n GmNotification({\r\n type: 'success',\r\n title: '温馨提示',\r\n message: '下载完成',\r\n duration: 3000,\r\n });\r\n }\r\n\r\n resolve(blob);\r\n }\r\n };\r\n\r\n // 监听 error 事件\r\n xhr.onerror = function (e) {\r\n GmMessage.error('下载异常,请重试');\r\n reject(e);\r\n };\r\n\r\n // 发送请求\r\n xhr.send();\r\n });\r\n };\r\n return { downloadByUrl, downloadByRes, downloadToZip };\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":["uuidv4","res"],"mappings":"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"}
package/es/index.css CHANGED
@@ -1,37 +1,3 @@
1
- [data-v-512cf874] .gmSearchForm .el-form-item {
2
- margin-right: 8px;
3
- margin-bottom: 8px;
4
- }
5
- .gm-flex-center[data-v-d1c6dac0] {
6
- align-items: center;
7
- }
8
-
9
- .gm-flex-justify-between[data-v-d1c6dac0] {
10
- justify-content: space-between;
11
- }
12
- [data-v-e38c9d81] .gmTableNoBorder .el-table__body .el-table__cell {
13
- border-right: none;
14
- }
15
-
16
- [data-v-e38c9d81] .gmTableNoBorder .el-table__inner-wrapper:before {
17
- height: 0;
18
- }
19
-
20
- [data-v-e38c9d81] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
21
- height: 0;
22
- }
23
-
24
- [data-v-e38c9d81] .gmTableNoBorder.el-table--border:after {
25
- height: 0;
26
- }
27
-
28
- [data-v-e38c9d81] .gmTableNoBorder.el-table--border:before {
29
- height: 0;
30
- }
31
-
32
- [data-v-e38c9d81] .gmTableNoBorder .el-table__border-left-patch {
33
- height: 0;
34
- }
35
1
  /*
36
2
  ! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
37
3
  *//*
@@ -651,6 +617,10 @@ video {
651
617
  padding-left: 1rem;
652
618
  padding-right: 1rem;
653
619
  }
620
+ .gm-px-6 {
621
+ padding-left: 1.5rem;
622
+ padding-right: 1.5rem;
623
+ }
654
624
  .gm-px-\[32px\] {
655
625
  padding-left: 32px;
656
626
  padding-right: 32px;
@@ -702,6 +672,10 @@ video {
702
672
  --tw-text-opacity: 1;
703
673
  color: rgb(251 146 60 / var(--tw-text-opacity));
704
674
  }
675
+ .gm-text-red-500 {
676
+ --tw-text-opacity: 1;
677
+ color: rgb(239 68 68 / var(--tw-text-opacity));
678
+ }
705
679
  .hover\:gm-text-red-500:hover {
706
680
  --tw-text-opacity: 1;
707
681
  color: rgb(239 68 68 / var(--tw-text-opacity));
@@ -713,6 +687,40 @@ video {
713
687
  .gm-group:hover .group-hover\:gm-block {
714
688
  display: block;
715
689
  }
690
+ .gm-flex-center[data-v-d1c6dac0] {
691
+ align-items: center;
692
+ }
693
+
694
+ .gm-flex-justify-between[data-v-d1c6dac0] {
695
+ justify-content: space-between;
696
+ }
697
+ [data-v-512cf874] .gmSearchForm .el-form-item {
698
+ margin-right: 8px;
699
+ margin-bottom: 8px;
700
+ }
701
+ [data-v-e38c9d81] .gmTableNoBorder .el-table__body .el-table__cell {
702
+ border-right: none;
703
+ }
704
+
705
+ [data-v-e38c9d81] .gmTableNoBorder .el-table__inner-wrapper:before {
706
+ height: 0;
707
+ }
708
+
709
+ [data-v-e38c9d81] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
710
+ height: 0;
711
+ }
712
+
713
+ [data-v-e38c9d81] .gmTableNoBorder.el-table--border:after {
714
+ height: 0;
715
+ }
716
+
717
+ [data-v-e38c9d81] .gmTableNoBorder.el-table--border:before {
718
+ height: 0;
719
+ }
720
+
721
+ [data-v-e38c9d81] .gmTableNoBorder .el-table__border-left-patch {
722
+ height: 0;
723
+ }
716
724
 
717
725
  .pagination-container[data-v-8a95ba6d] {
718
726
  background: #fff;
@@ -1,9 +1,11 @@
1
- import type { CreateAxiosDefaults } from 'axios';
1
+ import type { CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios';
2
2
  export interface CreateAxiosConfig extends CreateAxiosDefaults {
3
3
  baseURL: string;
4
4
  /**服务器调用成功的code 一般是 0 或 200 */
5
5
  successCode: number;
6
6
  }
7
- export declare const createAxios: (config: CreateAxiosConfig) => {
7
+ export declare const createAxios: (config: CreateAxiosConfig, options?: {
8
+ requestInterceptors?: ((config: InternalAxiosRequestConfig<any>) => any) | undefined;
9
+ } | undefined) => {
8
10
  service: import("axios").AxiosInstance;
9
11
  };
@@ -4,7 +4,7 @@ import Cookies from 'js-cookie';
4
4
  import { res401Interceptors } from './interceptors.mjs';
5
5
  import { responseErrorMessage } from './errorMessage.mjs';
6
6
 
7
- const createAxios = (config) => {
7
+ const createAxios = (config, options) => {
8
8
  const successCode = config.successCode ?? 0;
9
9
  const service = axios.create({
10
10
  withCredentials: true,
@@ -17,7 +17,7 @@ const createAxios = (config) => {
17
17
  ...config
18
18
  });
19
19
  service.interceptors.request.use(
20
- (config2) => {
20
+ async (config2) => {
21
21
  const _token = Cookies.get("token");
22
22
  const _user = Cookies.get("sso_user_id");
23
23
  if (!config2.params) {
@@ -29,9 +29,8 @@ const createAxios = (config) => {
29
29
  if (!config2.params._user) {
30
30
  config2.params._user = _user;
31
31
  }
32
- if (!config2.headers.Authorization) {
33
- config2.headers.Authorization = `Bearer ${_token}`;
34
- }
32
+ config2.headers.Authorization = `Bearer ${_token}`;
33
+ await options?.requestInterceptors?.(config2);
35
34
  return config2;
36
35
  },
37
36
  (error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"createAxios.mjs","sources":["../../../../../../packages/utils/src/http/createAxios.ts"],"sourcesContent":["import axios from 'axios';\r\nimport { ElMessage } from 'element-plus';\r\nimport Cookies from 'js-cookie';\r\nimport { res401Interceptors } from './interceptors';\r\nimport { responseErrorMessage } from './errorMessage';\r\nimport type { AxiosError, CreateAxiosDefaults } from 'axios';\r\nexport interface CreateAxiosConfig extends CreateAxiosDefaults {\r\n baseURL: string;\r\n /**服务器调用成功的code 一般是 0 或 200 */\r\n successCode: number;\r\n}\r\n\r\nexport const createAxios = (config: CreateAxiosConfig) => {\r\n const successCode = config.successCode ?? 0;\r\n const service = axios.create({\r\n withCredentials: true, // send cookies when cross-domain requests\r\n timeout: 120_000,\r\n headers: {\r\n 'content-type': 'application/json',\r\n Accept: '*/*',\r\n },\r\n ...config,\r\n });\r\n\r\n // 请求拦截器\r\n service.interceptors.request.use(\r\n config => {\r\n const _token = Cookies.get('token');\r\n const _user = Cookies.get('sso_user_id');\r\n if (!config.params) {\r\n config.params = {};\r\n }\r\n if (!config.params._token) {\r\n config.params._token = _token;\r\n }\r\n if (!config.params._user) {\r\n config.params._user = _user;\r\n }\r\n if (!config.headers.Authorization) {\r\n config.headers.Authorization = `Bearer ${_token}`;\r\n }\r\n return config;\r\n },\r\n error => {\r\n console.error('请求错误', error); // for debug\r\n return Promise.reject(error);\r\n },\r\n );\r\n // 添加响应拦截器\r\n service.interceptors.response.use(\r\n async response => {\r\n // 对响应数据做点什么\r\n const res = response.data;\r\n if (!res?.code) {\r\n return response;\r\n }\r\n if (res.code === 401) {\r\n const res = await res401Interceptors(service, response.config);\r\n return res;\r\n } else if (res.code !== successCode && res.errCode !== successCode) {\r\n ElMessage({\r\n message: res.comment ?? res.message ?? res.errMsg ?? res.msg,\r\n type: 'error',\r\n grouping: true,\r\n duration: 5 * 1000,\r\n });\r\n }\r\n return response;\r\n },\r\n async (err: AxiosError) => {\r\n console.error(err.config);\r\n if (err?.response?.status === 401 && !err.message.includes('timeout')) {\r\n const res = await res401Interceptors(service, err.config!);\r\n return res;\r\n } else {\r\n // 对响应错误做点什么\r\n responseErrorMessage(err);\r\n return Promise.reject(err);\r\n }\r\n },\r\n );\r\n\r\n return {\r\n service,\r\n };\r\n};\r\n"],"names":["config","res"],"mappings":"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"}
1
+ {"version":3,"file":"createAxios.mjs","sources":["../../../../../../packages/utils/src/http/createAxios.ts"],"sourcesContent":["import axios from 'axios';\r\nimport { ElMessage } from 'element-plus';\r\nimport Cookies from 'js-cookie';\r\nimport { res401Interceptors } from './interceptors';\r\nimport { responseErrorMessage } from './errorMessage';\r\nimport type { AxiosError, CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios';\r\nexport interface CreateAxiosConfig extends CreateAxiosDefaults {\r\n baseURL: string;\r\n /**服务器调用成功的code 一般是 0 或 200 */\r\n successCode: number;\r\n}\r\n\r\nexport const createAxios = (\r\n config: CreateAxiosConfig,\r\n options?: {\r\n requestInterceptors?: (config: InternalAxiosRequestConfig<any>) => any;\r\n },\r\n) => {\r\n const successCode = config.successCode ?? 0;\r\n const service = axios.create({\r\n withCredentials: true, // send cookies when cross-domain requests\r\n timeout: 120_000,\r\n headers: {\r\n 'content-type': 'application/json',\r\n Accept: '*/*',\r\n },\r\n ...config,\r\n });\r\n\r\n // 请求拦截器\r\n service.interceptors.request.use(\r\n async config => {\r\n const _token = Cookies.get('token');\r\n const _user = Cookies.get('sso_user_id');\r\n if (!config.params) {\r\n config.params = {};\r\n }\r\n if (!config.params._token) {\r\n config.params._token = _token;\r\n }\r\n if (!config.params._user) {\r\n config.params._user = _user;\r\n }\r\n config.headers.Authorization = `Bearer ${_token}`;\r\n await options?.requestInterceptors?.(config);\r\n return config;\r\n },\r\n error => {\r\n console.error('请求错误', error); // for debug\r\n return Promise.reject(error);\r\n },\r\n );\r\n // 添加响应拦截器\r\n service.interceptors.response.use(\r\n async response => {\r\n // 对响应数据做点什么\r\n const res = response.data;\r\n if (!res?.code) {\r\n return response;\r\n }\r\n if (res.code === 401) {\r\n const res = await res401Interceptors(service, response.config);\r\n return res;\r\n } else if (res.code !== successCode && res.errCode !== successCode) {\r\n ElMessage({\r\n message: res.comment ?? res.message ?? res.errMsg ?? res.msg,\r\n type: 'error',\r\n grouping: true,\r\n duration: 5 * 1000,\r\n });\r\n }\r\n return response;\r\n },\r\n async (err: AxiosError) => {\r\n console.error(err.config);\r\n if (err?.response?.status === 401 && !err.message.includes('timeout')) {\r\n const res = await res401Interceptors(service, err.config!);\r\n return res;\r\n } else {\r\n // 对响应错误做点什么\r\n responseErrorMessage(err);\r\n return Promise.reject(err);\r\n }\r\n },\r\n );\r\n\r\n return {\r\n service,\r\n };\r\n};\r\n"],"names":["config","res"],"mappings":"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"}
@@ -29,6 +29,11 @@ const giimeDevProxy = {
29
29
  target: "http://192.168.4.171:9501/",
30
30
  changeOrigin: true,
31
31
  rewrite: (p) => p.replace(/^\/basic-api/, "")
32
+ },
33
+ "/amazon-agent-api": {
34
+ target: "http://192.168.4.125:10086/amazon-agent",
35
+ changeOrigin: true,
36
+ rewrite: (p) => p.replace(/^\/amazon-agent-api/, "")
32
37
  }
33
38
  };
34
39
 
@@ -1 +1 @@
1
- {"version":3,"file":"devProxy.mjs","sources":["../../../../../../packages/utils/src/http/devProxy.ts"],"sourcesContent":["import type { ProxyOptions } from 'vite';\r\n\r\nexport const giimeDevProxy: Record<string, string | ProxyOptions> = {\r\n // https://cn.vitejs.dev/config/#server-proxy\r\n '/gstore-api': {\r\n target: 'http://192.168.4.125:10086/gstore/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/gstore-api/, ''),\r\n },\r\n '/material-api': {\r\n target: 'http://192.168.4.130:8002',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/material-api/, ''),\r\n },\r\n '/shop-admin-api': {\r\n target: 'http://192.168.4.130:8001',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/shop-admin-api/, ''),\r\n },\r\n '/gateway-api': {\r\n target: 'http://192.168.1.115:8082/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/gateway-api/, ''),\r\n },\r\n '/third-api': {\r\n target: 'https://third-gw.giimall.net/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/third-api/, ''),\r\n },\r\n '/basic-api': {\r\n target: 'http://192.168.4.171:9501/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/basic-api/, ''),\r\n },\r\n};\r\n"],"names":[],"mappings":"AAEO,MAAM,aAAuD,GAAA;AAAA;AAAA,EAElE,aAAe,EAAA;AAAA,IACb,MAAQ,EAAA,oCAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,iBAAiB,EAAE,CAAA;AAAA,GAC7C;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,MAAQ,EAAA,2BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,mBAAmB,EAAE,CAAA;AAAA,GAC/C;AAAA,EACA,iBAAmB,EAAA;AAAA,IACjB,MAAQ,EAAA,2BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,qBAAqB,EAAE,CAAA;AAAA,GACjD;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,4BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,kBAAkB,EAAE,CAAA;AAAA,GAC9C;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,+BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,GAC5C;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,4BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,GAC5C;AACF;;;;"}
1
+ {"version":3,"file":"devProxy.mjs","sources":["../../../../../../packages/utils/src/http/devProxy.ts"],"sourcesContent":["import type { ProxyOptions } from 'vite';\r\n\r\nexport const giimeDevProxy: Record<string, string | ProxyOptions> = {\r\n // https://cn.vitejs.dev/config/#server-proxy\r\n '/gstore-api': {\r\n target: 'http://192.168.4.125:10086/gstore/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/gstore-api/, ''),\r\n },\r\n '/material-api': {\r\n target: 'http://192.168.4.130:8002',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/material-api/, ''),\r\n },\r\n '/shop-admin-api': {\r\n target: 'http://192.168.4.130:8001',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/shop-admin-api/, ''),\r\n },\r\n '/gateway-api': {\r\n target: 'http://192.168.1.115:8082/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/gateway-api/, ''),\r\n },\r\n '/third-api': {\r\n target: 'https://third-gw.giimall.net/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/third-api/, ''),\r\n },\r\n '/basic-api': {\r\n target: 'http://192.168.4.171:9501/',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/basic-api/, ''),\r\n },\r\n '/amazon-agent-api': {\r\n target: 'http://192.168.4.125:10086/amazon-agent',\r\n changeOrigin: true,\r\n rewrite: p => p.replace(/^\\/amazon-agent-api/, ''),\r\n },\r\n};\r\n"],"names":[],"mappings":"AAEO,MAAM,aAAuD,GAAA;AAAA;AAAA,EAElE,aAAe,EAAA;AAAA,IACb,MAAQ,EAAA,oCAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,iBAAiB,EAAE,CAAA;AAAA,GAC7C;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,MAAQ,EAAA,2BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,mBAAmB,EAAE,CAAA;AAAA,GAC/C;AAAA,EACA,iBAAmB,EAAA;AAAA,IACjB,MAAQ,EAAA,2BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,qBAAqB,EAAE,CAAA;AAAA,GACjD;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,4BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,kBAAkB,EAAE,CAAA;AAAA,GAC9C;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,+BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,GAC5C;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,4BAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,GAC5C;AAAA,EACA,mBAAqB,EAAA;AAAA,IACnB,MAAQ,EAAA,yCAAA;AAAA,IACR,YAAc,EAAA,IAAA;AAAA,IACd,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,CAAQ,uBAAuB,EAAE,CAAA;AAAA,GACnD;AACF;;;;"}
package/global.d.ts CHANGED
@@ -116,6 +116,7 @@ declare module '@vue/runtime-core' {
116
116
  GmDrawerForm: typeof import('giime')['GmDrawerForm']
117
117
  GmFormItemModule: typeof import('giime')['GmFormItemModule']
118
118
  GmSelectOptions: typeof import('giime')['GmSelectOptions']
119
+ GmImportDialog: typeof import('giime')['GmImportDialog']
119
120
  GmTablePro: typeof import('giime')['GmTablePro']
120
121
  GmTableColumnPro: typeof import('giime')['GmTableColumnPro']
121
122
  GmTableHeaderForm: typeof import('giime')['GmTableHeaderForm']
@@ -253,11 +253,13 @@ var numberInterval = require('./src/composite/numberInterval/numberInterval.js')
253
253
  var index$1X = require('./src/composite/numberInterval/index.js');
254
254
  var selectOptions = require('./src/composite/selectOptions/selectOptions.js');
255
255
  var index$1Y = require('./src/composite/selectOptions/index.js');
256
- var index$1Z = require('./src/plugins/message/index.js');
257
- var index$1_ = require('./src/plugins/loading/index.js');
258
- var index$1$ = require('./src/plugins/messageBox/index.js');
259
- var index$20 = require('./src/plugins/notification/index.js');
260
- var index$21 = require('./src/plugins/copy/index.js');
256
+ var importDialog = require('./src/composite/importDialog/importDialog.js');
257
+ var index$1Z = require('./src/composite/importDialog/index.js');
258
+ var index$1_ = require('./src/plugins/message/index.js');
259
+ var index$1$ = require('./src/plugins/loading/index.js');
260
+ var index$20 = require('./src/plugins/messageBox/index.js');
261
+ var index$21 = require('./src/plugins/notification/index.js');
262
+ var index$22 = require('./src/plugins/copy/index.js');
261
263
 
262
264
 
263
265
 
@@ -622,9 +624,12 @@ exports.GmNumberInterval = index$1X.GmNumberInterval;
622
624
  exports.selectOptionsEmits = selectOptions.selectOptionsEmits;
623
625
  exports.selectOptionsProps = selectOptions.selectOptionsProps;
624
626
  exports.GmSelectOptions = index$1Y.GmSelectOptions;
625
- exports.GmMessage = index$1Z.GmMessage;
626
- exports.GmLoading = index$1_.GmLoading;
627
- exports.GmMessageBox = index$1$.GmMessageBox;
628
- exports.GmNotification = index$20.GmNotification;
629
- exports.GmCopy = index$21.GmCopy;
627
+ exports.importDialogEmits = importDialog.importDialogEmits;
628
+ exports.importDialogProps = importDialog.importDialogProps;
629
+ exports.GmImportDialog = index$1Z.GmImportDialog;
630
+ exports.GmMessage = index$1_.GmMessage;
631
+ exports.GmLoading = index$1$.GmLoading;
632
+ exports.GmMessageBox = index$20.GmMessageBox;
633
+ exports.GmNotification = index$21.GmNotification;
634
+ exports.GmCopy = index$22.GmCopy;
630
635
  //# 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,75 @@
1
+ import type { UploadFile, UploadFiles } from 'element-plus';
2
+ /** 取消按钮 */
3
+ declare function closeDialog(): void;
4
+ /** 表单重置 */
5
+ declare function reset(): void;
6
+ declare const _default: import("vue").DefineComponent<{
7
+ onSuccess: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
8
+ (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
9
+ new (): any;
10
+ readonly prototype: any;
11
+ } | ((new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
12
+ (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
13
+ new (): any;
14
+ readonly prototype: any;
15
+ })[], unknown, unknown, () => void, boolean>;
16
+ onError: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
17
+ (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
18
+ new (): any;
19
+ readonly prototype: any;
20
+ } | ((new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
21
+ (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
22
+ new (): any;
23
+ readonly prototype: any;
24
+ })[], unknown, unknown, () => void, boolean>;
25
+ httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadRequestHandler) | (() => import("element-plus").UploadRequestHandler) | {
26
+ (): import("element-plus").UploadRequestHandler;
27
+ new (): any;
28
+ readonly prototype: any;
29
+ } | ((new (...args: any[]) => import("element-plus").UploadRequestHandler) | (() => import("element-plus").UploadRequestHandler) | {
30
+ (): import("element-plus").UploadRequestHandler;
31
+ new (): any;
32
+ readonly prototype: any;
33
+ })[], unknown, unknown, import("element-plus").UploadRequestHandler, boolean>;
34
+ }, {
35
+ openDialog: () => void;
36
+ closeDialog: typeof closeDialog;
37
+ reset: typeof reset;
38
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
39
+ downloadTemplate: () => void;
40
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
41
+ onSuccess: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
42
+ (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
43
+ new (): any;
44
+ readonly prototype: any;
45
+ } | ((new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
46
+ (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
47
+ new (): any;
48
+ readonly prototype: any;
49
+ })[], unknown, unknown, () => void, boolean>;
50
+ onError: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
51
+ (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
52
+ new (): any;
53
+ readonly prototype: any;
54
+ } | ((new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
55
+ (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
56
+ new (): any;
57
+ readonly prototype: any;
58
+ })[], unknown, unknown, () => void, boolean>;
59
+ httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadRequestHandler) | (() => import("element-plus").UploadRequestHandler) | {
60
+ (): import("element-plus").UploadRequestHandler;
61
+ new (): any;
62
+ readonly prototype: any;
63
+ } | ((new (...args: any[]) => import("element-plus").UploadRequestHandler) | (() => import("element-plus").UploadRequestHandler) | {
64
+ (): import("element-plus").UploadRequestHandler;
65
+ new (): any;
66
+ readonly prototype: any;
67
+ })[], unknown, unknown, import("element-plus").UploadRequestHandler, boolean>;
68
+ }>> & {
69
+ onDownloadTemplate?: (() => any) | undefined;
70
+ }, {
71
+ onError: (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
72
+ onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
73
+ httpRequest: import("element-plus").UploadRequestHandler;
74
+ }, {}>;
75
+ export default _default;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ImportDialog_vue_vue_type_script_setup_true_lang = require('./ImportDialog.vue2.js');
6
+ var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
7
+
8
+ var ImportDialog = /* @__PURE__ */ _pluginVue_exportHelper.default(ImportDialog_vue_vue_type_script_setup_true_lang.default, [["__file", "ImportDialog.vue"]]);
9
+
10
+ exports.default = ImportDialog;
11
+ //# sourceMappingURL=ImportDialog.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportDialog.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,170 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var elementPlus = require('element-plus');
7
+ var iconsVue = require('@element-plus/icons-vue');
8
+ var importDialog = require('./importDialog.js');
9
+
10
+ const _hoisted_1 = { class: "" };
11
+ const _hoisted_2 = { class: "gm-flex gm-items-center" };
12
+ const _hoisted_3 = /* @__PURE__ */ vue.createElementVNode(
13
+ "div",
14
+ { class: "el-upload__tip gm-text-red-500" },
15
+ "\u9650\u52361\u4E2A\u6587\u4EF6\uFF0C\u65B0\u6587\u4EF6\u5C06\u8986\u76D6\u65E7\u6587\u4EF6",
16
+ -1
17
+ /* HOISTED */
18
+ );
19
+ const _hoisted_4 = { class: "dialog-footer" };
20
+ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
21
+ ...{
22
+ name: "GmImportDialog"
23
+ },
24
+ __name: "ImportDialog",
25
+ props: importDialog.importDialogProps,
26
+ emits: importDialog.importDialogEmits,
27
+ setup(__props, { expose: __expose, emit: __emit }) {
28
+ const props = __props;
29
+ const emit = __emit;
30
+ const fileList = vue.ref([]);
31
+ const uploadRef = vue.ref();
32
+ const handleExceed = (files) => {
33
+ uploadRef.value.clearFiles();
34
+ const file = files[0];
35
+ file.uid = elementPlus.genFileId();
36
+ uploadRef.value.handleStart(file);
37
+ };
38
+ const submitUpload = () => {
39
+ uploadRef.value.submit();
40
+ };
41
+ const dialogVisible = vue.ref(false);
42
+ const openDialog = () => {
43
+ dialogVisible.value = true;
44
+ };
45
+ function closeDialog() {
46
+ dialogVisible.value = false;
47
+ reset();
48
+ }
49
+ function reset() {
50
+ fileList.value = [];
51
+ }
52
+ const uploadLoading = vue.ref(false);
53
+ const httpRequest = (options) => {
54
+ uploadLoading.value = true;
55
+ return props.httpRequest(options);
56
+ };
57
+ function handleSuccess(response, uploadFile, uploadFiles) {
58
+ uploadLoading.value = false;
59
+ return props.onSuccess(response, uploadFile, uploadFiles);
60
+ }
61
+ const handleError = (error, uploadFile, uploadFiles) => {
62
+ uploadLoading.value = false;
63
+ return props.onError(error, uploadFile, uploadFiles);
64
+ };
65
+ __expose({
66
+ openDialog,
67
+ closeDialog,
68
+ reset
69
+ });
70
+ return (_ctx, _cache) => {
71
+ const _component_gm_button = vue.resolveComponent("gm-button");
72
+ const _component_gm_upload = vue.resolveComponent("gm-upload");
73
+ const _component_gm_dialog = vue.resolveComponent("gm-dialog");
74
+ return vue.openBlock(), vue.createElementBlock(
75
+ vue.Fragment,
76
+ null,
77
+ [
78
+ vue.createCommentVNode(" \u5BFC\u5165\u5BF9\u8BDD\u6846 "),
79
+ vue.createVNode(_component_gm_dialog, {
80
+ modelValue: dialogVisible.value,
81
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
82
+ title: "\u5BFC\u5165",
83
+ width: "500px",
84
+ "append-to-body": ""
85
+ }, {
86
+ footer: vue.withCtx(() => [
87
+ vue.createElementVNode("div", _hoisted_4, [
88
+ vue.createVNode(_component_gm_button, {
89
+ type: "primary",
90
+ loading: uploadLoading.value,
91
+ onClick: submitUpload
92
+ }, {
93
+ default: vue.withCtx(() => [
94
+ vue.createTextVNode("\u786E \u5B9A")
95
+ ]),
96
+ _: 1
97
+ /* STABLE */
98
+ }, 8, ["loading"]),
99
+ vue.createVNode(_component_gm_button, { onClick: closeDialog }, {
100
+ default: vue.withCtx(() => [
101
+ vue.createTextVNode("\u53D6 \u6D88")
102
+ ]),
103
+ _: 1
104
+ /* STABLE */
105
+ })
106
+ ])
107
+ ]),
108
+ default: vue.withCtx(() => [
109
+ vue.createElementVNode("div", _hoisted_1, [
110
+ vue.createVNode(_component_gm_upload, {
111
+ ref_key: "uploadRef",
112
+ ref: uploadRef,
113
+ "file-list": fileList.value,
114
+ "onUpdate:fileList": _cache[1] || (_cache[1] = ($event) => fileList.value = $event),
115
+ action: "",
116
+ limit: 1,
117
+ "http-request": httpRequest,
118
+ "on-exceed": handleExceed,
119
+ "on-success": handleSuccess,
120
+ "on-error": handleError,
121
+ "auto-upload": false,
122
+ class: "gm-px-6"
123
+ }, {
124
+ tip: vue.withCtx(() => [
125
+ _hoisted_3
126
+ ]),
127
+ default: vue.withCtx(() => [
128
+ vue.createElementVNode("div", _hoisted_2, [
129
+ vue.createVNode(_component_gm_button, {
130
+ type: "primary",
131
+ icon: vue.unref(iconsVue.Download),
132
+ onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event) => emit("downloadTemplate"), ["stop"]))
133
+ }, {
134
+ default: vue.withCtx(() => [
135
+ vue.createTextVNode(" \u4E0B\u8F7D\u5BFC\u5165\u6A21\u677F ")
136
+ ]),
137
+ _: 1
138
+ /* STABLE */
139
+ }, 8, ["icon"]),
140
+ vue.createVNode(_component_gm_button, {
141
+ type: "primary",
142
+ icon: vue.unref(iconsVue.Upload),
143
+ style: { "margin-left": "36px" }
144
+ }, {
145
+ default: vue.withCtx(() => [
146
+ vue.createTextVNode("\u9009\u62E9\u6587\u4EF6\u5BFC\u5165")
147
+ ]),
148
+ _: 1
149
+ /* STABLE */
150
+ }, 8, ["icon"])
151
+ ])
152
+ ]),
153
+ _: 1
154
+ /* STABLE */
155
+ }, 8, ["file-list"])
156
+ ])
157
+ ]),
158
+ _: 1
159
+ /* STABLE */
160
+ }, 8, ["modelValue"])
161
+ ],
162
+ 2112
163
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
164
+ );
165
+ };
166
+ }
167
+ });
168
+
169
+ exports.default = _sfc_main;
170
+ //# sourceMappingURL=ImportDialog.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportDialog.vue2.js","sources":["../../../../../../../packages/components/src/composite/importDialog/ImportDialog.vue"],"sourcesContent":["<template>\r\n <!-- 导入对话框 -->\r\n <gm-dialog v-model=\"dialogVisible\" title=\"导入\" width=\"500px\" append-to-body>\r\n <div class=\" \">\r\n <gm-upload\r\n ref=\"uploadRef\"\r\n v-model:file-list=\"fileList\"\r\n action=\"\"\r\n :limit=\"1\"\r\n :http-request=\"httpRequest\"\r\n :on-exceed=\"handleExceed\"\r\n :on-success=\"handleSuccess\"\r\n :on-error=\"handleError\"\r\n :auto-upload=\"false\"\r\n class=\"gm-px-6\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-button type=\"primary\" :icon=\"Download\" @click.stop=\"emit('downloadTemplate')\"> 下载导入模板 </gm-button>\r\n <gm-button type=\"primary\" :icon=\"Upload\" style=\"margin-left: 36px\">选择文件导入</gm-button>\r\n </div>\r\n\r\n <!-- <el-button class=\"ml-3\" type=\"success\" @click=\"submitUpload\"> upload to server </el-button> -->\r\n <template #tip>\r\n <div class=\"el-upload__tip gm-text-red-500\">限制1个文件,新文件将覆盖旧文件</div>\r\n </template>\r\n </gm-upload>\r\n </div>\r\n\r\n <template #footer>\r\n <div class=\"dialog-footer\">\r\n <gm-button type=\"primary\" :loading=\"uploadLoading\" @click=\"submitUpload\">确 定</gm-button>\r\n <gm-button @click=\"closeDialog\">取 消</gm-button>\r\n </div>\r\n </template>\r\n </gm-dialog>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { ref } from 'vue';\r\nimport { genFileId } from 'element-plus';\r\nimport { Download, Upload } from '@element-plus/icons-vue';\r\nimport { importDialogEmits, importDialogProps } from './importDialog';\r\nimport type { UploadInstance } from '../../base/upload';\r\nimport type { UploadFile, UploadFiles, UploadProps, UploadRawFile, UploadRequestOptions, UploadUserFile } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmImportDialog',\r\n});\r\nconst props = defineProps(importDialogProps);\r\nconst emit = defineEmits(importDialogEmits);\r\n\r\nconst fileList = ref<UploadUserFile[]>([]);\r\nconst uploadRef = ref<UploadInstance>();\r\n\r\nconst handleExceed: UploadProps['onExceed'] = files => {\r\n uploadRef.value!.clearFiles();\r\n const file = files[0] as UploadRawFile;\r\n file.uid = genFileId();\r\n uploadRef.value!.handleStart(file);\r\n};\r\n\r\nconst submitUpload = () => {\r\n uploadRef.value!.submit();\r\n};\r\n/**\r\n * 编辑表单\r\n */\r\n// const dialogVisible = defineModel<boolean>('dialogVisible', { required: true });\r\nconst dialogVisible = ref(false);\r\n\r\n/** 新增按钮操作 */\r\nconst openDialog = () => {\r\n dialogVisible.value = true;\r\n};\r\n/** 取消按钮 */\r\nfunction closeDialog() {\r\n dialogVisible.value = false;\r\n reset();\r\n}\r\n/** 表单重置 */\r\nfunction reset() {\r\n fileList.value = [];\r\n}\r\n\r\nconst uploadLoading = ref(false);\r\nconst httpRequest = (options: UploadRequestOptions) => {\r\n uploadLoading.value = true;\r\n return props.httpRequest(options);\r\n};\r\n// 上传成功\r\nfunction handleSuccess(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) {\r\n uploadLoading.value = false;\r\n return props.onSuccess(response, uploadFile, uploadFiles);\r\n}\r\n// 上传失败\r\nconst handleError = (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => {\r\n uploadLoading.value = false;\r\n return props.onError(error, uploadFile, uploadFiles);\r\n};\r\ndefineExpose({\r\n openDialog,\r\n closeDialog,\r\n reset,\r\n});\r\n</script>\r\n"],"names":["ref","genFileId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,MAAA,QAAA,GAAWA,OAAsB,CAAA,EAAE,CAAA,CAAA;AACzC,IAAA,MAAM,YAAYA,OAAoB,EAAA,CAAA;AAEtC,IAAA,MAAM,eAAwC,CAAS,KAAA,KAAA;AACrD,MAAA,SAAA,CAAU,MAAO,UAAW,EAAA,CAAA;AAC5B,MAAM,MAAA,IAAA,GAAO,MAAM,CAAC,CAAA,CAAA;AACpB,MAAA,IAAA,CAAK,MAAMC,qBAAU,EAAA,CAAA;AACrB,MAAU,SAAA,CAAA,KAAA,CAAO,YAAY,IAAI,CAAA,CAAA;AAAA,KACnC,CAAA;AAEA,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,SAAA,CAAU,MAAO,MAAO,EAAA,CAAA;AAAA,KAC1B,CAAA;AAKA,IAAM,MAAA,aAAA,GAAgBD,QAAI,KAAK,CAAA,CAAA;AAG/B,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AAAA,KACxB,CAAA;AAEA,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AACtB,MAAM,KAAA,EAAA,CAAA;AAAA,KACR;AAEA,IAAA,SAAS,KAAQ,GAAA;AACf,MAAA,QAAA,CAAS,QAAQ,EAAC,CAAA;AAAA,KACpB;AAEA,IAAM,MAAA,aAAA,GAAgBA,QAAI,KAAK,CAAA,CAAA;AAC/B,IAAM,MAAA,WAAA,GAAc,CAAC,OAAkC,KAAA;AACrD,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AACtB,MAAO,OAAA,KAAA,CAAM,YAAY,OAAO,CAAA,CAAA;AAAA,KAClC,CAAA;AAEA,IAAS,SAAA,aAAA,CAAc,QAAe,EAAA,UAAA,EAAwB,WAA0B,EAAA;AACtF,MAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AACtB,MAAA,OAAO,KAAM,CAAA,SAAA,CAAU,QAAU,EAAA,UAAA,EAAY,WAAW,CAAA,CAAA;AAAA,KAC1D;AAEA,IAAA,MAAM,WAAc,GAAA,CAAC,KAAc,EAAA,UAAA,EAAwB,WAA6B,KAAA;AACtF,MAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AACtB,MAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAO,EAAA,UAAA,EAAY,WAAW,CAAA,CAAA;AAAA,KACrD,CAAA;AACA,IAAa,QAAA,CAAA;AAAA,MACX,UAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}