giime 0.5.9 → 0.5.11

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 (78) hide show
  1. package/dist/index.css +56 -57
  2. package/es/api/materialApi/cross/getOssAccessToken.d.ts +1 -1
  3. package/es/api/materialApi/cross/getOssAccessToken.mjs.map +1 -1
  4. package/es/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +4 -0
  5. package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs +11 -6
  6. package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs.map +1 -1
  7. package/es/components/src/business/uploadMaterial/index.d.ts +4 -0
  8. package/es/components/src/composite/fileComponent/FileComponent.vue2.mjs +18 -16
  9. package/es/components/src/composite/fileComponent/FileComponent.vue2.mjs.map +1 -1
  10. package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +0 -8
  11. package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +1 -1
  12. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +6 -18
  13. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -1
  14. package/es/components/src/composite/uploadFile/index.d.ts +0 -20
  15. package/es/giime/version.d.ts +1 -1
  16. package/es/giime/version.mjs +1 -1
  17. package/es/giime/version.mjs.map +1 -1
  18. package/es/index.css +56 -57
  19. package/es/utils/src/alioss/aliossPutHook.mjs +1 -1
  20. package/es/utils/src/alioss/aliossPutHook.mjs.map +1 -1
  21. package/es/utils/src/alioss/aliossToken.d.ts +9 -3
  22. package/es/utils/src/alioss/aliossToken.mjs +4 -4
  23. package/es/utils/src/alioss/aliossToken.mjs.map +1 -1
  24. package/lib/api/materialApi/cross/getOssAccessToken.d.ts +1 -1
  25. package/lib/api/materialApi/cross/getOssAccessToken.js.map +1 -1
  26. package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +4 -0
  27. package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js +11 -6
  28. package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js.map +1 -1
  29. package/lib/components/src/business/uploadMaterial/index.d.ts +4 -0
  30. package/lib/components/src/composite/fileComponent/FileComponent.vue2.js +18 -16
  31. package/lib/components/src/composite/fileComponent/FileComponent.vue2.js.map +1 -1
  32. package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +0 -8
  33. package/lib/components/src/composite/uploadFile/UploadFile.vue.js +1 -1
  34. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +6 -18
  35. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -1
  36. package/lib/components/src/composite/uploadFile/index.d.ts +0 -20
  37. package/lib/giime/version.d.ts +1 -1
  38. package/lib/giime/version.js +1 -1
  39. package/lib/giime/version.js.map +1 -1
  40. package/lib/index.css +56 -57
  41. package/lib/utils/src/alioss/aliossPutHook.js +1 -1
  42. package/lib/utils/src/alioss/aliossPutHook.js.map +1 -1
  43. package/lib/utils/src/alioss/aliossToken.d.ts +9 -3
  44. package/lib/utils/src/alioss/aliossToken.js +4 -4
  45. package/lib/utils/src/alioss/aliossToken.js.map +1 -1
  46. package/package.json +1 -1
  47. package/es/components/src/composite/fileComponent/assets/image/excel.svg.mjs +0 -4
  48. package/es/components/src/composite/fileComponent/assets/image/excel.svg.mjs.map +0 -1
  49. package/es/components/src/composite/fileComponent/assets/image/pdf.svg.mjs +0 -4
  50. package/es/components/src/composite/fileComponent/assets/image/pdf.svg.mjs.map +0 -1
  51. package/es/components/src/composite/fileComponent/assets/image/ppt.svg.mjs +0 -4
  52. package/es/components/src/composite/fileComponent/assets/image/ppt.svg.mjs.map +0 -1
  53. package/es/components/src/composite/fileComponent/assets/image/psd.svg.mjs +0 -4
  54. package/es/components/src/composite/fileComponent/assets/image/psd.svg.mjs.map +0 -1
  55. package/es/components/src/composite/fileComponent/assets/image/text.svg.mjs +0 -4
  56. package/es/components/src/composite/fileComponent/assets/image/text.svg.mjs.map +0 -1
  57. package/es/components/src/composite/fileComponent/assets/image/unknown.svg.mjs +0 -4
  58. package/es/components/src/composite/fileComponent/assets/image/unknown.svg.mjs.map +0 -1
  59. package/es/components/src/composite/fileComponent/assets/image/word.svg.mjs +0 -4
  60. package/es/components/src/composite/fileComponent/assets/image/word.svg.mjs.map +0 -1
  61. package/es/components/src/composite/fileComponent/assets/image/zip.svg.mjs +0 -4
  62. package/es/components/src/composite/fileComponent/assets/image/zip.svg.mjs.map +0 -1
  63. package/lib/components/src/composite/fileComponent/assets/image/excel.svg.js +0 -8
  64. package/lib/components/src/composite/fileComponent/assets/image/excel.svg.js.map +0 -1
  65. package/lib/components/src/composite/fileComponent/assets/image/pdf.svg.js +0 -8
  66. package/lib/components/src/composite/fileComponent/assets/image/pdf.svg.js.map +0 -1
  67. package/lib/components/src/composite/fileComponent/assets/image/ppt.svg.js +0 -8
  68. package/lib/components/src/composite/fileComponent/assets/image/ppt.svg.js.map +0 -1
  69. package/lib/components/src/composite/fileComponent/assets/image/psd.svg.js +0 -8
  70. package/lib/components/src/composite/fileComponent/assets/image/psd.svg.js.map +0 -1
  71. package/lib/components/src/composite/fileComponent/assets/image/text.svg.js +0 -8
  72. package/lib/components/src/composite/fileComponent/assets/image/text.svg.js.map +0 -1
  73. package/lib/components/src/composite/fileComponent/assets/image/unknown.svg.js +0 -8
  74. package/lib/components/src/composite/fileComponent/assets/image/unknown.svg.js.map +0 -1
  75. package/lib/components/src/composite/fileComponent/assets/image/word.svg.js +0 -8
  76. package/lib/components/src/composite/fileComponent/assets/image/word.svg.js.map +0 -1
  77. package/lib/components/src/composite/fileComponent/assets/image/zip.svg.js +0 -8
  78. package/lib/components/src/composite/fileComponent/assets/image/zip.svg.js.map +0 -1
package/es/index.css CHANGED
@@ -801,50 +801,22 @@ video {
801
801
  .gm-group:hover .group-hover\:gm-block {
802
802
  display: block;
803
803
  }
804
- .gm-flex-center[data-v-2a79bac9] {
805
- align-items: center;
806
- }
807
804
 
808
- .gm-flex-justify-between[data-v-2a79bac9] {
809
- justify-content: space-between;
810
- }
811
- .gm-upload-preview-dialog[data-v-7aea5ade] [data-v-7aea5ade] .el-dialog__body {
805
+ .gm-range-number .el-form-item[data-v-11c39847] {
806
+ margin: 0;
807
+ }
808
+
809
+ .gm-upload-preview-dialog[data-v-e28fc09f] [data-v-e28fc09f] .el-dialog__body {
812
810
  padding: 0;
813
811
  }
814
812
 
815
- .gm-upload-file-picture-card[data-v-7aea5ade] [data-v-7aea5ade] .el-upload-list__item, .gm-upload-file-picture-card[data-v-7aea5ade] [data-v-7aea5ade] .el-upload--picture-card {
813
+ .gm-upload-file-picture-card[data-v-e28fc09f] [data-v-e28fc09f] .el-upload-list__item, .gm-upload-file-picture-card[data-v-e28fc09f] [data-v-e28fc09f] .el-upload--picture-card {
816
814
  width: 120px;
817
815
  height: 120px;
818
816
  display: flex;
819
817
  align-items: center;
820
818
  justify-content: center;
821
819
  }
822
- .gm-upload-file {
823
- line-height: normal;
824
- }
825
- .gm-upload-file .el-checkbox {
826
- position: absolute;
827
- left: 10px;
828
- top: 0;
829
- z-index: 9;
830
- }
831
- .gm-upload-file .el-upload-list__item-file-name {
832
- line-height: normal;
833
- }
834
- .gm-upload-file .el-upload-dragger {
835
- padding: 0;
836
- border: none;
837
- width: 100%;
838
- height: 100%;
839
- display: flex;
840
- }
841
-
842
- .gm-upload-file-disabled .is-disabled {
843
- display: none;
844
- }
845
- .gm-upload-file-disabled .el-upload-list__item-status-label {
846
- display: none;
847
- }
848
820
  .circular[data-v-b391445c] {
849
821
  animation: loading-rotate-b391445c 2s linear infinite;
850
822
  }
@@ -876,15 +848,61 @@ video {
876
848
  stroke-dashoffset: -120px;
877
849
  }
878
850
  }
851
+ .gm-flex-center[data-v-2a79bac9] {
852
+ align-items: center;
853
+ }
879
854
 
880
- .gm-range-number .el-form-item[data-v-11c39847] {
881
- margin: 0;
882
- }
883
-
855
+ .gm-flex-justify-between[data-v-2a79bac9] {
856
+ justify-content: space-between;
857
+ }
884
858
  [data-v-7b6755e2] .gmSearchForm .el-form-item {
885
859
  margin-right: 0;
886
860
  margin-bottom: 4px;
887
861
  }
862
+ .gm-upload-file {
863
+ line-height: normal;
864
+ }
865
+ .gm-upload-file .el-checkbox {
866
+ position: absolute;
867
+ left: 10px;
868
+ top: 0;
869
+ z-index: 9;
870
+ }
871
+ .gm-upload-file .el-upload-list__item-file-name {
872
+ line-height: normal;
873
+ }
874
+ .gm-upload-file .el-upload-dragger {
875
+ padding: 0;
876
+ border: none;
877
+ width: 100%;
878
+ height: 100%;
879
+ display: flex;
880
+ }
881
+
882
+ .gm-upload-file-disabled .el-upload--picture-card {
883
+ display: none;
884
+ }
885
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
886
+ display: none;
887
+ }
888
+ .gm-number-interval-single[data-v-47a13fd0] {
889
+ border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
890
+ box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
891
+ background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
892
+ }
893
+ .gm-number-interval-single[data-v-47a13fd0] [data-v-47a13fd0] .el-input__wrapper {
894
+ box-shadow: none;
895
+ background: none;
896
+ }
897
+
898
+ .gm-number-interval-close[data-v-47a13fd0] {
899
+ display: none;
900
+ color: var(--el-input-icon-color, var(--el-text-color-placeholder));
901
+ }
902
+
903
+ .gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
904
+ display: flex;
905
+ }
888
906
  [data-v-668dc408] .gmTableNoBorder .el-table__body .el-table__cell {
889
907
  border-right: none;
890
908
  }
@@ -916,22 +934,3 @@ video {
916
934
  .pagination-container.hidden[data-v-19230954] {
917
935
  display: none;
918
936
  }
919
-
920
- .gm-number-interval-single[data-v-47a13fd0] {
921
- border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
922
- box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
923
- background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
924
- }
925
- .gm-number-interval-single[data-v-47a13fd0] [data-v-47a13fd0] .el-input__wrapper {
926
- box-shadow: none;
927
- background: none;
928
- }
929
-
930
- .gm-number-interval-close[data-v-47a13fd0] {
931
- display: none;
932
- color: var(--el-input-icon-color, var(--el-text-color-placeholder));
933
- }
934
-
935
- .gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
936
- display: flex;
937
- }
@@ -103,7 +103,7 @@ const useAliossHookStore = defineStore("aliossHook", () => {
103
103
  ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`,
104
104
  ...options
105
105
  };
106
- const { AccessKeyId, AccessKeySecret, SecurityToken } = await useAliossTokenStore().getAliossTokenAsync();
106
+ const { AccessKeyId, AccessKeySecret, SecurityToken } = await useAliossTokenStore().getAliossTokenAsync({ config_id: null });
107
107
  const client = new AliOss({
108
108
  // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
109
109
  region: "oss-cn-shenzhen",
@@ -1 +1 @@
1
- {"version":3,"file":"aliossPutHook.mjs","sources":["../../../../../../packages/utils/src/alioss/aliossPutHook.ts"],"sourcesContent":["import { defineStore } from 'pinia';\r\nimport { createEventHook } from '@vueuse/core';\r\nimport { md5 } from 'js-md5';\r\nimport AliOss from 'ali-oss';\r\nimport { type PostSaveFileResourcesData, getAdFileExist, postSaveFileResources } from '@giime/api/materialApi';\r\nimport useAliossTokenStore from './aliossToken';\r\n\r\nexport type PostSaveFileResponse = PostSaveFileResourcesData;\r\nexport type UploadAliOssFile = File & { uid: number };\r\n\r\n/** 上传文件到阿里云 */\r\nexport type AliOssParams = {\r\n /** 资源文件 */\r\n file: UploadAliOssFile;\r\n /** 文件名 */\r\n fileName?: string;\r\n /** 文件存储路径 */\r\n folder?: string;\r\n /** 文件存储位置 */\r\n seat?: string;\r\n /** 并行上传数量 */\r\n parallel?: number;\r\n /** 并行分片大小 */\r\n partSize?: number;\r\n /** 阿里上传配置 */\r\n options?: { [key: string]: any };\r\n /** 阿里服务器 Bucket 名称 */\r\n bucket?: string;\r\n /** cdn */\r\n cdn?: string;\r\n /** 文件是否保存入库 */\r\n saveStore?: boolean;\r\n};\r\n\r\n/** 返回数据 */\r\nexport type AliOssResponse = {\r\n /** 文件地址 */\r\n url: string;\r\n /** 文件名 */\r\n name: string;\r\n /** 文件唯一标识 */\r\n uid: number;\r\n /** 文件最后修改时间 */\r\n lastModified: number;\r\n /** 文件md5 */\r\n md5: string;\r\n /** 文件大小 */\r\n size: number;\r\n /** 文件后缀 */\r\n type: string;\r\n /** 文件库是否存在 */\r\n isExist: boolean;\r\n};\r\n\r\nexport const ts_md5_file = (file: File) => {\r\n return new Promise<string>(resolve => {\r\n const reader = new FileReader();\r\n reader.onload = async function (e) {\r\n const binary = (e.target as any).result;\r\n resolve(md5(binary));\r\n };\r\n reader.readAsArrayBuffer(file);\r\n });\r\n};\r\n\r\n/** 文件分片 */\r\nexport const getParallelPartSize = (size: number) => {\r\n const thresholds = [\r\n {\r\n max: 5,\r\n parallel: 1,\r\n multiplier: 5,\r\n },\r\n {\r\n max: 10,\r\n parallel: 2,\r\n multiplier: 4,\r\n },\r\n {\r\n max: 30,\r\n parallel: 4,\r\n multiplier: 5,\r\n },\r\n {\r\n max: 50,\r\n parallel: 6,\r\n multiplier: 6,\r\n },\r\n {\r\n max: Number.POSITIVE_INFINITY,\r\n parallel: 8,\r\n multiplier: 8,\r\n },\r\n ];\r\n const { parallel, multiplier } = thresholds.find(({ max }) => size <= max) || thresholds[thresholds.length - 1];\r\n\r\n return {\r\n parallel,\r\n partSize: multiplier * 1024 * 1024,\r\n };\r\n};\r\n\r\n/** 上传 Hook */\r\nexport const useAliossHookStore = defineStore('aliossHook', () => {\r\n const aliossResult = createEventHook<AliOssResponse>();\r\n const aliossError = createEventHook<any>();\r\n const saveFileResult = createEventHook<PostSaveFileResponse>();\r\n const saveFileError = createEventHook<any>();\r\n\r\n /** 检测广告素材是否已存在 */\r\n const getFileExist = async ({\r\n md5Code,\r\n ext,\r\n name,\r\n size,\r\n uid,\r\n lastModified,\r\n }: {\r\n md5Code: string;\r\n ext: string;\r\n name: string;\r\n size: number;\r\n uid: number;\r\n lastModified: number;\r\n }) => {\r\n // eslint-disable-next-line no-async-promise-executor\r\n return new Promise<AliOssResponse | false>(async resolve => {\r\n const { data } = await getAdFileExist({ md5Code, ext });\r\n if (data.code !== 0 || data.data.count === 0) {\r\n return resolve(false);\r\n }\r\n const result = {\r\n name,\r\n uid,\r\n lastModified,\r\n size,\r\n url: data.data.url,\r\n md5: md5Code,\r\n type: ext,\r\n isExist: true,\r\n };\r\n resolve(result);\r\n aliossResult.trigger(result);\r\n });\r\n };\r\n\r\n /** 上传文件 */\r\n const uploadFile = async ({ file, fileName, folder, seat, parallel, partSize, options, bucket, cdn, saveStore }: AliOssParams) => {\r\n let { name, uid, lastModified, size } = file;\r\n const ext = name.match(/\\.(\\w+)$/)?.[0] || '';\r\n name = (fileName || name).slice(0, name.lastIndexOf('.'));\r\n const md5Code = await ts_md5_file(file);\r\n const FileName = name + ext;\r\n const type = ext.replaceAll('.', '');\r\n\r\n try {\r\n let result = await getFileExist({ md5Code, ext: type, name: FileName, size, uid, lastModified });\r\n if (result) return result;\r\n\r\n // 文件存储路径\r\n const timestr = Date.now();\r\n const path = `${folder ?? 'material'}/${seat ?? 'default'}/file-${timestr}-${md5Code}${ext}`;\r\n\r\n const P = getParallelPartSize(size);\r\n options = {\r\n ...P,\r\n ...{ parallel, partSize },\r\n ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`,\r\n ...options,\r\n };\r\n\r\n // 阿里云临时上传权限\r\n const { AccessKeyId, AccessKeySecret, SecurityToken } = await useAliossTokenStore().getAliossTokenAsync();\r\n\r\n const client = new AliOss({\r\n // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。\r\n region: 'oss-cn-shenzhen',\r\n // 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。\r\n accessKeyId: AccessKeyId,\r\n accessKeySecret: AccessKeySecret,\r\n stsToken: SecurityToken,\r\n // 刷新临时访问凭证的时间间隔,单位为毫秒。\r\n refreshSTSTokenInterval: 300000,\r\n // 填写Bucket名称。\r\n bucket: bucket ?? 'giikin-material',\r\n });\r\n\r\n const upload = options.parallel === 1 ? 'put' : 'multipartUpload';\r\n const { res } = await client[upload](path, file, options);\r\n if (res.status !== 200) {\r\n aliossError.trigger(res);\r\n return res;\r\n }\r\n cdn = cdn ?? 'https://sucai.giikin.cn/';\r\n const resultUrl = cdn + path;\r\n result = {\r\n url: resultUrl,\r\n name: name + ext,\r\n md5: md5Code,\r\n type: ext.replaceAll('.', ''),\r\n uid,\r\n lastModified,\r\n size,\r\n isExist: false,\r\n };\r\n if (saveStore) {\r\n postSaveFile({ url: resultUrl, md5_code: md5Code, file_size: size });\r\n }\r\n aliossResult.trigger(result);\r\n return result;\r\n } catch (error) {\r\n aliossError.trigger(error);\r\n return error;\r\n }\r\n };\r\n\r\n /** 文件入库 */\r\n const postSaveFile = async ({ url, md5_code, file_size }: PostSaveFileResourcesData) => {\r\n try {\r\n const { data } = await postSaveFileResources({ fileData: { url, md5_code, file_size } });\r\n if (data?.code !== 0) {\r\n saveFileError.trigger(data);\r\n return data;\r\n }\r\n const result = {\r\n url,\r\n md5_code,\r\n file_size,\r\n };\r\n saveFileResult.trigger(result);\r\n return result;\r\n } catch (error) {\r\n saveFileError.trigger(error);\r\n return error;\r\n }\r\n };\r\n return {\r\n aliossResult: aliossResult.on,\r\n aliossError: aliossError.on,\r\n saveFileResult: saveFileResult.on,\r\n saveFileError: saveFileError.on,\r\n uploadFile,\r\n postSaveFile,\r\n };\r\n});\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aliossPutHook.mjs","sources":["../../../../../../packages/utils/src/alioss/aliossPutHook.ts"],"sourcesContent":["import { defineStore } from 'pinia';\r\nimport { createEventHook } from '@vueuse/core';\r\nimport { md5 } from 'js-md5';\r\nimport AliOss from 'ali-oss';\r\nimport { type PostSaveFileResourcesData, getAdFileExist, postSaveFileResources } from '@giime/api/materialApi';\r\nimport useAliossTokenStore from './aliossToken';\r\n\r\nexport type PostSaveFileResponse = PostSaveFileResourcesData;\r\nexport type UploadAliOssFile = File & { uid: number };\r\n\r\n/** 上传文件到阿里云 */\r\nexport type AliOssParams = {\r\n /** 资源文件 */\r\n file: UploadAliOssFile;\r\n /** 文件名 */\r\n fileName?: string;\r\n /** 文件存储路径 */\r\n folder?: string;\r\n /** 文件存储位置 */\r\n seat?: string;\r\n /** 并行上传数量 */\r\n parallel?: number;\r\n /** 并行分片大小 */\r\n partSize?: number;\r\n /** 阿里上传配置 */\r\n options?: { [key: string]: any };\r\n /** 阿里服务器 Bucket 名称 */\r\n bucket?: string;\r\n /** cdn */\r\n cdn?: string;\r\n /** 文件是否保存入库 */\r\n saveStore?: boolean;\r\n};\r\n\r\n/** 返回数据 */\r\nexport type AliOssResponse = {\r\n /** 文件地址 */\r\n url: string;\r\n /** 文件名 */\r\n name: string;\r\n /** 文件唯一标识 */\r\n uid: number;\r\n /** 文件最后修改时间 */\r\n lastModified: number;\r\n /** 文件md5 */\r\n md5: string;\r\n /** 文件大小 */\r\n size: number;\r\n /** 文件后缀 */\r\n type: string;\r\n /** 文件库是否存在 */\r\n isExist: boolean;\r\n};\r\n\r\nexport const ts_md5_file = (file: File) => {\r\n return new Promise<string>(resolve => {\r\n const reader = new FileReader();\r\n reader.onload = async function (e) {\r\n const binary = (e.target as any).result;\r\n resolve(md5(binary));\r\n };\r\n reader.readAsArrayBuffer(file);\r\n });\r\n};\r\n\r\n/** 文件分片 */\r\nexport const getParallelPartSize = (size: number) => {\r\n const thresholds = [\r\n {\r\n max: 5,\r\n parallel: 1,\r\n multiplier: 5,\r\n },\r\n {\r\n max: 10,\r\n parallel: 2,\r\n multiplier: 4,\r\n },\r\n {\r\n max: 30,\r\n parallel: 4,\r\n multiplier: 5,\r\n },\r\n {\r\n max: 50,\r\n parallel: 6,\r\n multiplier: 6,\r\n },\r\n {\r\n max: Number.POSITIVE_INFINITY,\r\n parallel: 8,\r\n multiplier: 8,\r\n },\r\n ];\r\n const { parallel, multiplier } = thresholds.find(({ max }) => size <= max) || thresholds[thresholds.length - 1];\r\n\r\n return {\r\n parallel,\r\n partSize: multiplier * 1024 * 1024,\r\n };\r\n};\r\n\r\n/** 上传 Hook */\r\nexport const useAliossHookStore = defineStore('aliossHook', () => {\r\n const aliossResult = createEventHook<AliOssResponse>();\r\n const aliossError = createEventHook<any>();\r\n const saveFileResult = createEventHook<PostSaveFileResponse>();\r\n const saveFileError = createEventHook<any>();\r\n\r\n /** 检测广告素材是否已存在 */\r\n const getFileExist = async ({\r\n md5Code,\r\n ext,\r\n name,\r\n size,\r\n uid,\r\n lastModified,\r\n }: {\r\n md5Code: string;\r\n ext: string;\r\n name: string;\r\n size: number;\r\n uid: number;\r\n lastModified: number;\r\n }) => {\r\n // eslint-disable-next-line no-async-promise-executor\r\n return new Promise<AliOssResponse | false>(async resolve => {\r\n const { data } = await getAdFileExist({ md5Code, ext });\r\n if (data.code !== 0 || data.data.count === 0) {\r\n return resolve(false);\r\n }\r\n const result = {\r\n name,\r\n uid,\r\n lastModified,\r\n size,\r\n url: data.data.url,\r\n md5: md5Code,\r\n type: ext,\r\n isExist: true,\r\n };\r\n resolve(result);\r\n aliossResult.trigger(result);\r\n });\r\n };\r\n\r\n /** 上传文件 */\r\n const uploadFile = async ({ file, fileName, folder, seat, parallel, partSize, options, bucket, cdn, saveStore }: AliOssParams) => {\r\n let { name, uid, lastModified, size } = file;\r\n const ext = name.match(/\\.(\\w+)$/)?.[0] || '';\r\n name = (fileName || name).slice(0, name.lastIndexOf('.'));\r\n const md5Code = await ts_md5_file(file);\r\n const FileName = name + ext;\r\n const type = ext.replaceAll('.', '');\r\n\r\n try {\r\n let result = await getFileExist({ md5Code, ext: type, name: FileName, size, uid, lastModified });\r\n if (result) return result;\r\n\r\n // 文件存储路径\r\n const timestr = Date.now();\r\n const path = `${folder ?? 'material'}/${seat ?? 'default'}/file-${timestr}-${md5Code}${ext}`;\r\n\r\n const P = getParallelPartSize(size);\r\n options = {\r\n ...P,\r\n ...{ parallel, partSize },\r\n ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`,\r\n ...options,\r\n };\r\n\r\n // 阿里云临时上传权限\r\n const { AccessKeyId, AccessKeySecret, SecurityToken } = await useAliossTokenStore().getAliossTokenAsync({ config_id: null });\r\n\r\n const client = new AliOss({\r\n // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。\r\n region: 'oss-cn-shenzhen',\r\n // 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。\r\n accessKeyId: AccessKeyId,\r\n accessKeySecret: AccessKeySecret,\r\n stsToken: SecurityToken,\r\n // 刷新临时访问凭证的时间间隔,单位为毫秒。\r\n refreshSTSTokenInterval: 300000,\r\n // 填写Bucket名称。\r\n bucket: bucket ?? 'giikin-material',\r\n });\r\n\r\n const upload = options.parallel === 1 ? 'put' : 'multipartUpload';\r\n const { res } = await client[upload](path, file, options);\r\n if (res.status !== 200) {\r\n aliossError.trigger(res);\r\n return res;\r\n }\r\n cdn = cdn ?? 'https://sucai.giikin.cn/';\r\n const resultUrl = cdn + path;\r\n result = {\r\n url: resultUrl,\r\n name: name + ext,\r\n md5: md5Code,\r\n type: ext.replaceAll('.', ''),\r\n uid,\r\n lastModified,\r\n size,\r\n isExist: false,\r\n };\r\n if (saveStore) {\r\n postSaveFile({ url: resultUrl, md5_code: md5Code, file_size: size });\r\n }\r\n aliossResult.trigger(result);\r\n return result;\r\n } catch (error) {\r\n aliossError.trigger(error);\r\n return error;\r\n }\r\n };\r\n\r\n /** 文件入库 */\r\n const postSaveFile = async ({ url, md5_code, file_size }: PostSaveFileResourcesData) => {\r\n try {\r\n const { data } = await postSaveFileResources({ fileData: { url, md5_code, file_size } });\r\n if (data?.code !== 0) {\r\n saveFileError.trigger(data);\r\n return data;\r\n }\r\n const result = {\r\n url,\r\n md5_code,\r\n file_size,\r\n };\r\n saveFileResult.trigger(result);\r\n return result;\r\n } catch (error) {\r\n saveFileError.trigger(error);\r\n return error;\r\n }\r\n };\r\n return {\r\n aliossResult: aliossResult.on,\r\n aliossError: aliossError.on,\r\n saveFileResult: saveFileResult.on,\r\n saveFileError: saveFileError.on,\r\n uploadFile,\r\n postSaveFile,\r\n };\r\n});\r\n"],"names":[],"mappings":"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"}
@@ -6,12 +6,18 @@ import { type GetOssAccessTokenResponseData } from '../../../api/materialApi';
6
6
  **/
7
7
  declare const useAliossTokenStore: import("pinia").StoreDefinition<"aliossToken", import("pinia")._UnwrapAll<Pick<{
8
8
  isLoading: import("vue").Ref<boolean>;
9
- getAliossTokenAsync: () => Promise<GetOssAccessTokenResponseData>;
9
+ getAliossTokenAsync: (params: {
10
+ config_id: string | null;
11
+ }) => Promise<GetOssAccessTokenResponseData>;
10
12
  }, "isLoading">>, Pick<{
11
13
  isLoading: import("vue").Ref<boolean>;
12
- getAliossTokenAsync: () => Promise<GetOssAccessTokenResponseData>;
14
+ getAliossTokenAsync: (params: {
15
+ config_id: string | null;
16
+ }) => Promise<GetOssAccessTokenResponseData>;
13
17
  }, never>, Pick<{
14
18
  isLoading: import("vue").Ref<boolean>;
15
- getAliossTokenAsync: () => Promise<GetOssAccessTokenResponseData>;
19
+ getAliossTokenAsync: (params: {
20
+ config_id: string | null;
21
+ }) => Promise<GetOssAccessTokenResponseData>;
16
22
  }, "getAliossTokenAsync">>;
17
23
  export default useAliossTokenStore;
@@ -15,14 +15,14 @@ const useAliossTokenStore = defineStore("aliossToken", () => {
15
15
  const time = new Date(new Date(Expiration ?? 0).getTime() - 1e4);
16
16
  Cookies.set("aliossStsToken", JSON.stringify(data), { expires: time });
17
17
  };
18
- const getAliossToken = async (config_id = "default") => {
18
+ const getAliossToken = async (params) => {
19
19
  const aliossStsToken = Cookies.get("aliossStsToken");
20
20
  if (aliossStsToken) {
21
21
  return JSON.parse(aliossStsToken);
22
22
  }
23
23
  isLoading.value = true;
24
24
  try {
25
- const { data } = await getOssAccessToken({ config_id });
25
+ const { data } = await getOssAccessToken(params);
26
26
  if (data.code === 0) {
27
27
  setCookie(data.data);
28
28
  aliossTokenResult.trigger(data.data);
@@ -32,12 +32,12 @@ const useAliossTokenStore = defineStore("aliossToken", () => {
32
32
  isLoading.value = false;
33
33
  }
34
34
  };
35
- const getAliossTokenAsync = () => {
35
+ const getAliossTokenAsync = (params) => {
36
36
  return new Promise((resolve) => {
37
37
  if (isLoading.value) {
38
38
  aliossTokenResult.on((value) => resolve(value));
39
39
  } else {
40
- resolve(getAliossToken());
40
+ resolve(getAliossToken(params));
41
41
  }
42
42
  });
43
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"aliossToken.mjs","sources":["../../../../../../packages/utils/src/alioss/aliossToken.ts"],"sourcesContent":["import { ref } from 'vue';\r\nimport { defineStore } from 'pinia';\r\nimport { type GetOssAccessTokenResponseData, getOssAccessToken } from '@giime/api/materialApi';\r\nimport { createEventHook } from '@vueuse/core';\r\nimport Cookies from 'js-cookie';\r\n\r\n/**\r\n * @description 素材上传权限\r\n * @param {*}\r\n * @return {*}\r\n **/\r\n\r\nconst useAliossTokenStore = defineStore('aliossToken', () => {\r\n const isLoading = ref(false);\r\n const aliossTokenResult = createEventHook<GetOssAccessTokenResponseData>();\r\n\r\n const setCookie = (data: GetOssAccessTokenResponseData) => {\r\n if (!data) return;\r\n const { Expiration } = data;\r\n const time = new Date(new Date(Expiration ?? 0).getTime() - 10000); //-10秒作为缓冲\r\n Cookies.set('aliossStsToken', JSON.stringify(data), { expires: time });\r\n };\r\n\r\n /* 请求临时上传权限 */\r\n const getAliossToken = async (config_id: string = 'default') => {\r\n const aliossStsToken = Cookies.get('aliossStsToken');\r\n if (aliossStsToken) {\r\n return JSON.parse(aliossStsToken) as GetOssAccessTokenResponseData;\r\n }\r\n isLoading.value = true;\r\n try {\r\n const { data } = await getOssAccessToken({ config_id });\r\n if (data.code === 0) {\r\n setCookie(data.data);\r\n aliossTokenResult.trigger(data.data);\r\n }\r\n return data.data;\r\n } finally {\r\n isLoading.value = false;\r\n }\r\n };\r\n\r\n /* 获取 alioss 临时上传 token*/\r\n const getAliossTokenAsync = () => {\r\n /* 若正在请求请求临时token接口 则其他后进来的等待 */\r\n return new Promise<GetOssAccessTokenResponseData>(resolve => {\r\n if (isLoading.value) {\r\n aliossTokenResult.on(value => resolve(value));\r\n } else {\r\n resolve(getAliossToken());\r\n }\r\n });\r\n };\r\n\r\n return {\r\n isLoading,\r\n getAliossTokenAsync,\r\n };\r\n});\r\n\r\nexport default useAliossTokenStore;\r\n"],"names":[],"mappings":";;;;;;;AAYM,MAAA,mBAAA,GAAsB,WAAY,CAAA,aAAA,EAAe,MAAM;AAC3D,EAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA,CAAA;AAC3B,EAAA,MAAM,oBAAoB,eAA+C,EAAA,CAAA;AAEzE,EAAM,MAAA,SAAA,GAAY,CAAC,IAAwC,KAAA;AACzD,IAAA,IAAI,CAAC,IAAA;AAAM,MAAA,OAAA;AACX,IAAM,MAAA,EAAE,YAAe,GAAA,IAAA,CAAA;AACvB,IAAM,MAAA,IAAA,GAAO,IAAI,IAAA,CAAK,IAAI,IAAA,CAAK,cAAc,CAAC,CAAA,CAAE,OAAQ,EAAA,GAAI,GAAK,CAAA,CAAA;AACjE,IAAQ,OAAA,CAAA,GAAA,CAAI,kBAAkB,IAAK,CAAA,SAAA,CAAU,IAAI,CAAG,EAAA,EAAE,OAAS,EAAA,IAAA,EAAM,CAAA,CAAA;AAAA,GACvE,CAAA;AAGA,EAAM,MAAA,cAAA,GAAiB,OAAO,SAAA,GAAoB,SAAc,KAAA;AAC9D,IAAM,MAAA,cAAA,GAAiB,OAAQ,CAAA,GAAA,CAAI,gBAAgB,CAAA,CAAA;AACnD,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAO,OAAA,IAAA,CAAK,MAAM,cAAc,CAAA,CAAA;AAAA,KAClC;AACA,IAAA,SAAA,CAAU,KAAQ,GAAA,IAAA,CAAA;AAClB,IAAI,IAAA;AACF,MAAA,MAAM,EAAE,IAAK,EAAA,GAAI,MAAM,iBAAkB,CAAA,EAAE,WAAW,CAAA,CAAA;AACtD,MAAI,IAAA,IAAA,CAAK,SAAS,CAAG,EAAA;AACnB,QAAA,SAAA,CAAU,KAAK,IAAI,CAAA,CAAA;AACnB,QAAkB,iBAAA,CAAA,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAAA,OACrC;AACA,MAAA,OAAO,IAAK,CAAA,IAAA,CAAA;AAAA,KACZ,SAAA;AACA,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAAA,KACpB;AAAA,GACF,CAAA;AAGA,EAAA,MAAM,sBAAsB,MAAM;AAEhC,IAAO,OAAA,IAAI,QAAuC,CAAW,OAAA,KAAA;AAC3D,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,iBAAA,CAAkB,EAAG,CAAA,CAAA,KAAA,KAAS,OAAQ,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,OACvC,MAAA;AACL,QAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAA;AAAA,OAC1B;AAAA,KACD,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,mBAAA;AAAA,GACF,CAAA;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"aliossToken.mjs","sources":["../../../../../../packages/utils/src/alioss/aliossToken.ts"],"sourcesContent":["import { ref } from 'vue';\r\nimport { defineStore } from 'pinia';\r\nimport { type GetOssAccessTokenResponseData, getOssAccessToken } from '@giime/api/materialApi';\r\nimport { createEventHook } from '@vueuse/core';\r\nimport Cookies from 'js-cookie';\r\n\r\n/**\r\n * @description 素材上传权限\r\n * @param {*}\r\n * @return {*}\r\n **/\r\n\r\nconst useAliossTokenStore = defineStore('aliossToken', () => {\r\n const isLoading = ref(false);\r\n const aliossTokenResult = createEventHook<GetOssAccessTokenResponseData>();\r\n\r\n const setCookie = (data: GetOssAccessTokenResponseData) => {\r\n if (!data) return;\r\n const { Expiration } = data;\r\n const time = new Date(new Date(Expiration ?? 0).getTime() - 10000); //-10秒作为缓冲\r\n Cookies.set('aliossStsToken', JSON.stringify(data), { expires: time });\r\n };\r\n\r\n /* 请求临时上传权限 */\r\n const getAliossToken = async (params: { config_id: string | null }) => {\r\n const aliossStsToken = Cookies.get('aliossStsToken');\r\n if (aliossStsToken) {\r\n return JSON.parse(aliossStsToken) as GetOssAccessTokenResponseData;\r\n }\r\n isLoading.value = true;\r\n try {\r\n const { data } = await getOssAccessToken(params);\r\n if (data.code === 0) {\r\n setCookie(data.data);\r\n aliossTokenResult.trigger(data.data);\r\n }\r\n return data.data;\r\n } finally {\r\n isLoading.value = false;\r\n }\r\n };\r\n\r\n /* 获取 alioss 临时上传 token*/\r\n const getAliossTokenAsync = (params: { config_id: string | null }) => {\r\n /* 若正在请求请求临时token接口 则其他后进来的等待 */\r\n return new Promise<GetOssAccessTokenResponseData>(resolve => {\r\n if (isLoading.value) {\r\n aliossTokenResult.on(value => resolve(value));\r\n } else {\r\n resolve(getAliossToken(params));\r\n }\r\n });\r\n };\r\n\r\n return {\r\n isLoading,\r\n getAliossTokenAsync,\r\n };\r\n});\r\n\r\nexport default useAliossTokenStore;\r\n"],"names":[],"mappings":";;;;;;;AAYM,MAAA,mBAAA,GAAsB,WAAY,CAAA,aAAA,EAAe,MAAM;AAC3D,EAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA,CAAA;AAC3B,EAAA,MAAM,oBAAoB,eAA+C,EAAA,CAAA;AAEzE,EAAM,MAAA,SAAA,GAAY,CAAC,IAAwC,KAAA;AACzD,IAAA,IAAI,CAAC,IAAA;AAAM,MAAA,OAAA;AACX,IAAM,MAAA,EAAE,YAAe,GAAA,IAAA,CAAA;AACvB,IAAM,MAAA,IAAA,GAAO,IAAI,IAAA,CAAK,IAAI,IAAA,CAAK,cAAc,CAAC,CAAA,CAAE,OAAQ,EAAA,GAAI,GAAK,CAAA,CAAA;AACjE,IAAQ,OAAA,CAAA,GAAA,CAAI,kBAAkB,IAAK,CAAA,SAAA,CAAU,IAAI,CAAG,EAAA,EAAE,OAAS,EAAA,IAAA,EAAM,CAAA,CAAA;AAAA,GACvE,CAAA;AAGA,EAAM,MAAA,cAAA,GAAiB,OAAO,MAAyC,KAAA;AACrE,IAAM,MAAA,cAAA,GAAiB,OAAQ,CAAA,GAAA,CAAI,gBAAgB,CAAA,CAAA;AACnD,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAO,OAAA,IAAA,CAAK,MAAM,cAAc,CAAA,CAAA;AAAA,KAClC;AACA,IAAA,SAAA,CAAU,KAAQ,GAAA,IAAA,CAAA;AAClB,IAAI,IAAA;AACF,MAAA,MAAM,EAAE,IAAA,EAAS,GAAA,MAAM,kBAAkB,MAAM,CAAA,CAAA;AAC/C,MAAI,IAAA,IAAA,CAAK,SAAS,CAAG,EAAA;AACnB,QAAA,SAAA,CAAU,KAAK,IAAI,CAAA,CAAA;AACnB,QAAkB,iBAAA,CAAA,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAAA,OACrC;AACA,MAAA,OAAO,IAAK,CAAA,IAAA,CAAA;AAAA,KACZ,SAAA;AACA,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAAA,KACpB;AAAA,GACF,CAAA;AAGA,EAAM,MAAA,mBAAA,GAAsB,CAAC,MAAyC,KAAA;AAEpE,IAAO,OAAA,IAAI,QAAuC,CAAW,OAAA,KAAA;AAC3D,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,iBAAA,CAAkB,EAAG,CAAA,CAAA,KAAA,KAAS,OAAQ,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,OACvC,MAAA;AACL,QAAQ,OAAA,CAAA,cAAA,CAAe,MAAM,CAAC,CAAA,CAAA;AAAA,OAChC;AAAA,KACD,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,mBAAA;AAAA,GACF,CAAA;AACF,CAAC;;;;"}
@@ -16,5 +16,5 @@ export interface GetOssAccessTokenResponseData {
16
16
  */
17
17
  export declare function getOssAccessToken(params: GetMaterialCrossMakeOssAccessTokenParams, config?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<GetOssAccessTokenResponse, any>>;
18
18
  export interface GetMaterialCrossMakeOssAccessTokenParams {
19
- config_id: string;
19
+ config_id: string | null;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getOssAccessToken.js","sources":["../../../../../../packages/api/materialApi/cross/getOssAccessToken.ts"],"sourcesContent":["import { type AxiosRequestConfig } from 'axios';\r\nimport request from '../request';\r\n\r\nexport interface GetOssAccessTokenResponse {\r\n code: number;\r\n data: GetOssAccessTokenResponseData;\r\n comment: string;\r\n}\r\n\r\nexport interface GetOssAccessTokenResponseData {\r\n AccessKeyId: string;\r\n AccessKeySecret: string;\r\n Expiration: string;\r\n SecurityToken: string;\r\n}\r\n\r\n/**\r\n * 生成sts token数据\r\n * /material/cross/makeOssAccessToken\r\n */\r\nexport function getOssAccessToken(params: GetMaterialCrossMakeOssAccessTokenParams, config?: AxiosRequestConfig) {\r\n return request.get<GetOssAccessTokenResponse>(`/material/cross/makeOssAccessToken`, { params, ...config });\r\n}\r\n\r\nexport interface GetMaterialCrossMakeOssAccessTokenParams {\r\n config_id: string;\r\n}\r\n"],"names":["request"],"mappings":";;;;AAoBgB,SAAA,iBAAA,CAAkB,QAAkD,MAA6B,EAAA;AAC/G,EAAA,OAAOA,gBAAQ,GAA+B,CAAA,CAAA,kCAAA,CAAA,EAAsC,EAAE,MAAQ,EAAA,GAAG,QAAQ,CAAA,CAAA;AAC3G;;;;"}
1
+ {"version":3,"file":"getOssAccessToken.js","sources":["../../../../../../packages/api/materialApi/cross/getOssAccessToken.ts"],"sourcesContent":["import { type AxiosRequestConfig } from 'axios';\r\nimport request from '../request';\r\n\r\nexport interface GetOssAccessTokenResponse {\r\n code: number;\r\n data: GetOssAccessTokenResponseData;\r\n comment: string;\r\n}\r\n\r\nexport interface GetOssAccessTokenResponseData {\r\n AccessKeyId: string;\r\n AccessKeySecret: string;\r\n Expiration: string;\r\n SecurityToken: string;\r\n}\r\n\r\n/**\r\n * 生成sts token数据\r\n * /material/cross/makeOssAccessToken\r\n */\r\nexport function getOssAccessToken(params: GetMaterialCrossMakeOssAccessTokenParams, config?: AxiosRequestConfig) {\r\n return request.get<GetOssAccessTokenResponse>(`/material/cross/makeOssAccessToken`, { params, ...config });\r\n}\r\n\r\nexport interface GetMaterialCrossMakeOssAccessTokenParams {\r\n config_id: string | null;\r\n}\r\n"],"names":["request"],"mappings":";;;;AAoBgB,SAAA,iBAAA,CAAkB,QAAkD,MAA6B,EAAA;AAC/G,EAAA,OAAOA,gBAAQ,GAA+B,CAAA,CAAA,kCAAA,CAAA,EAAsC,EAAE,MAAQ,EAAA,GAAG,QAAQ,CAAA,CAAA;AAC3G;;;;"}
@@ -1,6 +1,7 @@
1
1
  import type { UploadFile, UploadRawFile, UploadStatus } from 'element-plus';
2
2
  declare const _default: import("vue").DefineComponent<{
3
3
  fileList: import("vue").PropType<UploadFile[]>;
4
+ checkoutFiles: import("vue").PropType<any[]>;
4
5
  accept: {
5
6
  type: StringConstructor;
6
7
  default: string;
@@ -216,6 +217,7 @@ declare const _default: import("vue").DefineComponent<{
216
217
  handleStart: (rawFile: UploadRawFile) => void;
217
218
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
218
219
  "update:fileList": (fileList: UploadFile[]) => void;
220
+ "update:checkoutFiles": (checkoutFiles: any[]) => void;
219
221
  handleRemove: (args_0: {
220
222
  file: UploadFile;
221
223
  index: number;
@@ -223,6 +225,7 @@ declare const _default: import("vue").DefineComponent<{
223
225
  handleSaveFileSuccess: (file: import("../../../../api/materialApi").PostSaveFileResourcesData) => void;
224
226
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
225
227
  fileList: import("vue").PropType<UploadFile[]>;
228
+ checkoutFiles: import("vue").PropType<any[]>;
226
229
  accept: {
227
230
  type: StringConstructor;
228
231
  default: string;
@@ -436,6 +439,7 @@ declare const _default: import("vue").DefineComponent<{
436
439
  file: UploadFile;
437
440
  index: number;
438
441
  }) => any) | undefined;
442
+ "onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
439
443
  onHandleSaveFileSuccess?: ((file: import("../../../../api/materialApi").PostSaveFileResourcesData) => any) | undefined;
440
444
  }, {
441
445
  name: string;
@@ -13,14 +13,17 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
13
13
  },
14
14
  __name: "UploadMaterial",
15
15
  props: /* @__PURE__ */ vue.mergeModels(uploadMaterial.uploadMaterialProps, {
16
- "fileList": { default: [] },
17
- "fileListModifiers": {}
16
+ "fileList": { default: () => [] },
17
+ "fileListModifiers": {},
18
+ "checkoutFiles": { default: () => [] },
19
+ "checkoutFilesModifiers": {}
18
20
  }),
19
- emits: /* @__PURE__ */ vue.mergeModels(["handleRemove", "handleSaveFileSuccess"], ["update:fileList"]),
21
+ emits: /* @__PURE__ */ vue.mergeModels(["handleRemove", "handleSaveFileSuccess"], ["update:fileList", "update:checkoutFiles"]),
20
22
  setup(__props, { expose: __expose, emit: __emit }) {
21
23
  const props = __props;
22
24
  const emit = __emit;
23
25
  const fileList = vue.useModel(__props, "fileList");
26
+ const checkoutFiles = vue.useModel(__props, "checkoutFiles");
24
27
  const uploadMaterialRef = vue.ref();
25
28
  const onSubmit = () => {
26
29
  uploadMaterialRef.value.submit();
@@ -52,9 +55,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
52
55
  }, props, {
53
56
  "file-list": fileList.value,
54
57
  "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
55
- onHandleRemove: _cache[1] || (_cache[1] = (data) => emit("handleRemove", data)),
56
- onHandleSaveFileSuccess: _cache[2] || (_cache[2] = (data) => emit("handleSaveFileSuccess", data))
57
- }), null, 16, ["file-list"])
58
+ "checkout-files": checkoutFiles.value,
59
+ "onUpdate:checkoutFiles": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event),
60
+ onHandleRemove: _cache[2] || (_cache[2] = (data) => emit("handleRemove", data)),
61
+ onHandleSaveFileSuccess: _cache[3] || (_cache[3] = (data) => emit("handleSaveFileSuccess", data))
62
+ }), null, 16, ["file-list", "checkout-files"])
58
63
  ]);
59
64
  };
60
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UploadMaterial.vue2.js","sources":["../../../../../../../packages/components/src/business/uploadMaterial/UploadMaterial.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-upload-material\">\r\n <GmUploadFile\r\n ref=\"uploadMaterialRef\"\r\n v-bind=\"props\"\r\n v-model:file-list=\"fileList\"\r\n @handleRemove=\"data => emit('handleRemove', data)\"\r\n @handleSaveFileSuccess=\"data => emit('handleSaveFileSuccess', data)\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport GmUploadFile from '../../composite/uploadFile';\r\nimport { type SaveFileResourcesFile, uploadMaterialProps } from './uploadMaterial';\r\nimport type { UploadFile, UploadInstance, UploadRawFile, UploadStatus } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmUploadMaterial',\r\n});\r\n\r\nconst props = defineProps(uploadMaterialProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\n/* 上传文件 */\r\nconst fileList = defineModel<UploadFile[]>('fileList', { default: [] });\r\n\r\nconst uploadMaterialRef = ref<UploadInstance>();\r\n/* 手动上传 */\r\nconst onSubmit = () => {\r\n uploadMaterialRef.value!.submit();\r\n};\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadMaterialRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadMaterialRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadMaterialRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadMaterialRef.value!.handleStart(rawFile);\r\n};\r\n\r\ndefineExpose({\r\n onSubmit,\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n});\r\n</script>\r\n"],"names":["_useModel","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAM,MAAA,QAAA,GAAWA,sBAA0B,UAA2B,CAAA,CAAA;AAEtE,IAAA,MAAM,oBAAoBC,OAAoB,EAAA,CAAA;AAE9C,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,iBAAA,CAAkB,MAAO,MAAO,EAAA,CAAA;AAAA,KAClC,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,iBAAA,CAAkB,MAAO,MAAO,EAAA,CAAA;AAAA,KAClC,CAAA;AAGA,IAAM,MAAA,KAAA,GAAQ,CAAC,IAAqB,KAAA;AAClC,MAAkB,iBAAA,CAAA,KAAA,CAAO,MAAM,IAAI,CAAA,CAAA;AAAA,KACrC,CAAA;AAGA,IAAM,MAAA,UAAA,GAAa,CAAC,MAA4B,KAAA;AAC9C,MAAkB,iBAAA,CAAA,KAAA,CAAO,WAAW,MAAM,CAAA,CAAA;AAAA,KAC5C,CAAA;AAGA,IAAM,MAAA,WAAA,GAAc,CAAC,OAA2B,KAAA;AAC9C,MAAkB,iBAAA,CAAA,KAAA,CAAO,YAAY,OAAO,CAAA,CAAA;AAAA,KAC9C,CAAA;AAEA,IAAa,QAAA,CAAA;AAAA,MACX,QAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UploadMaterial.vue2.js","sources":["../../../../../../../packages/components/src/business/uploadMaterial/UploadMaterial.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-upload-material\">\r\n <GmUploadFile\r\n ref=\"uploadMaterialRef\"\r\n v-bind=\"props\"\r\n v-model:file-list=\"fileList\"\r\n v-model:checkout-files=\"checkoutFiles\"\r\n @handleRemove=\"data => emit('handleRemove', data)\"\r\n @handleSaveFileSuccess=\"data => emit('handleSaveFileSuccess', data)\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport GmUploadFile from '../../composite/uploadFile';\r\nimport { type SaveFileResourcesFile, uploadMaterialProps } from './uploadMaterial';\r\nimport type { UploadFile, UploadInstance, UploadRawFile, UploadStatus } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmUploadMaterial',\r\n});\r\n\r\nconst props = defineProps(uploadMaterialProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\n/* 上传文件 */\r\nconst fileList = defineModel<UploadFile[]>('fileList', { default: () => [] });\r\n/** 多选数据 */\r\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: () => [] });\r\n\r\nconst uploadMaterialRef = ref<UploadInstance>();\r\n/* 手动上传 */\r\nconst onSubmit = () => {\r\n uploadMaterialRef.value!.submit();\r\n};\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadMaterialRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadMaterialRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadMaterialRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadMaterialRef.value!.handleStart(rawFile);\r\n};\r\n\r\ndefineExpose({\r\n onSubmit,\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n});\r\n</script>\r\n"],"names":["_useModel","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAM,MAAA,QAAA,GAAWA,sBAA0B,UAAiC,CAAA,CAAA;AAE5E,IAAM,MAAA,aAAA,GAAgBA,sBAAmB,eAAsC,CAAA,CAAA;AAE/E,IAAA,MAAM,oBAAoBC,OAAoB,EAAA,CAAA;AAE9C,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,iBAAA,CAAkB,MAAO,MAAO,EAAA,CAAA;AAAA,KAClC,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACnB,MAAA,iBAAA,CAAkB,MAAO,MAAO,EAAA,CAAA;AAAA,KAClC,CAAA;AAGA,IAAM,MAAA,KAAA,GAAQ,CAAC,IAAqB,KAAA;AAClC,MAAkB,iBAAA,CAAA,KAAA,CAAO,MAAM,IAAI,CAAA,CAAA;AAAA,KACrC,CAAA;AAGA,IAAM,MAAA,UAAA,GAAa,CAAC,MAA4B,KAAA;AAC9C,MAAkB,iBAAA,CAAA,KAAA,CAAO,WAAW,MAAM,CAAA,CAAA;AAAA,KAC5C,CAAA;AAGA,IAAM,MAAA,WAAA,GAAc,CAAC,OAA2B,KAAA;AAC9C,MAAkB,iBAAA,CAAA,KAAA,CAAO,YAAY,OAAO,CAAA,CAAA;AAAA,KAC9C,CAAA;AAEA,IAAa,QAAA,CAAA;AAAA,MACX,QAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  import UploadMaterial from './UploadMaterial.vue';
2
2
  export declare const GmUploadMaterial: import("../../../../utils").SFCWithInstall<import("vue").DefineComponent<{
3
3
  fileList: import("vue").PropType<import("element-plus").UploadFile[]>;
4
+ checkoutFiles: import("vue").PropType<any[]>;
4
5
  accept: {
5
6
  type: StringConstructor;
6
7
  default: string;
@@ -216,6 +217,7 @@ export declare const GmUploadMaterial: import("../../../../utils").SFCWithInstal
216
217
  handleStart: (rawFile: import("element-plus").UploadRawFile) => void;
217
218
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
218
219
  "update:fileList": (fileList: import("element-plus").UploadFile[]) => void;
220
+ "update:checkoutFiles": (checkoutFiles: any[]) => void;
219
221
  handleRemove: (args_0: {
220
222
  file: import("element-plus").UploadFile;
221
223
  index: number;
@@ -223,6 +225,7 @@ export declare const GmUploadMaterial: import("../../../../utils").SFCWithInstal
223
225
  handleSaveFileSuccess: (file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => void;
224
226
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
225
227
  fileList: import("vue").PropType<import("element-plus").UploadFile[]>;
228
+ checkoutFiles: import("vue").PropType<any[]>;
226
229
  accept: {
227
230
  type: StringConstructor;
228
231
  default: string;
@@ -436,6 +439,7 @@ export declare const GmUploadMaterial: import("../../../../utils").SFCWithInstal
436
439
  file: import("element-plus").UploadFile;
437
440
  index: number;
438
441
  }) => any) | undefined;
442
+ "onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
439
443
  onHandleSaveFileSuccess?: ((file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => any) | undefined;
440
444
  }, {
441
445
  name: string;
@@ -5,14 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var vue = require('vue');
6
6
  var is = require('../../../../utils/src/is.js');
7
7
  var fileComponent = require('./fileComponent.js');
8
- var pdf = require('./assets/image/pdf.svg.js');
9
- var word = require('./assets/image/word.svg.js');
10
- var excel = require('./assets/image/excel.svg.js');
11
- var ppt = require('./assets/image/ppt.svg.js');
12
- var psd = require('./assets/image/psd.svg.js');
13
- var text = require('./assets/image/text.svg.js');
14
- var zip = require('./assets/image/zip.svg.js');
15
- var unknown = require('./assets/image/unknown.svg.js');
16
8
 
17
9
  const _hoisted_1 = { class: "gm-flex gm-h-full gm-items-center gm-justify-center" };
18
10
  const _hoisted_2 = ["src"];
@@ -37,25 +29,35 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
37
29
  const verifyFile = vue.computed(() => {
38
30
  return props.file[props.field];
39
31
  });
32
+ const iconList = {
33
+ excel: "https://sucai.giikin.cn/workflow/material-refer-1739947054012-1213-335.svg",
34
+ pdf: "https://sucai.giikin.cn/workflow/material-refer-1739947288698-5462-586.svg",
35
+ word: "https://sucai.giikin.cn/workflow/material-refer-1739947288698-1540-625.svg",
36
+ txt: "https://sucai.giikin.cn/workflow/material-refer-1739947288698-1700-90.svg",
37
+ zip: "https://sucai.giikin.cn/workflow/material-refer-1739947288698-2639-507.svg",
38
+ psd: "https://sucai.giikin.cn/workflow/material-refer-1739947288698-5026-760.svg",
39
+ ppt: "https://sucai.giikin.cn/workflow/material-refer-1739947288698-2867-970.svg",
40
+ unknown: "https://sucai.giikin.cn/workflow/material-refer-1739947288698-1448-736.svg"
41
+ };
40
42
  const iconURL = vue.computed(() => {
41
43
  const verifyFile2 = props.file[props.field];
42
44
  let result = null;
43
45
  if (is.isPDF(verifyFile2)) {
44
- result = pdf.default;
46
+ result = iconList.pdf;
45
47
  } else if (is.isWord(verifyFile2)) {
46
- result = word.default;
48
+ result = iconList.word;
47
49
  } else if (is.isExcel(verifyFile2)) {
48
- result = excel.default;
50
+ result = iconList.excel;
49
51
  } else if (is.isText(verifyFile2)) {
50
- result = text.default;
52
+ result = iconList.txt;
51
53
  } else if (is.isPPT(verifyFile2)) {
52
- result = ppt.default;
54
+ result = iconList.ppt;
53
55
  } else if (is.isZip(verifyFile2)) {
54
- result = zip.default;
56
+ result = iconList.zip;
55
57
  } else if (is.isPSD(verifyFile2)) {
56
- result = psd.default;
58
+ result = iconList.psd;
57
59
  } else {
58
- result = unknown.default;
60
+ result = iconList.unknown;
59
61
  }
60
62
  return result;
61
63
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FileComponent.vue2.js","sources":["../../../../../../../packages/components/src/composite/fileComponent/FileComponent.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-flex gm-h-full gm-items-center gm-justify-center\">\r\n <img v-if=\"isImageUrl(verifyFile)\" :src=\"fileURL\" fit=\"contain\" style=\"max-width: 100%; max-height: 100%\" />\r\n <video\r\n v-else-if=\"isVideoUrl(verifyFile)\"\r\n :src=\"fileURL\"\r\n :controls=\"controls\"\r\n :controlslist=\"controlslist\"\r\n :oncontextmenu=\"() => oncontextmenu\"\r\n style=\"width: 100%; height: 100%\"\r\n />\r\n <el-image v-else :style=\"iconStyle\" :src=\"iconURL\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport { isExcel, isImageUrl, isPDF, isPPT, isPSD, isText, isVideoUrl, isWord, isZip } from '@giime/utils/src/is';\r\nimport { fileComponentProps } from './fileComponent';\r\nimport PDF from './assets/image/pdf.svg';\r\nimport WORD from './assets/image/word.svg';\r\nimport EXCEL from './assets/image/excel.svg';\r\nimport PPT from './assets/image/ppt.svg';\r\nimport PSD from './assets/image/psd.svg';\r\nimport TEXT from './assets/image/text.svg';\r\nimport ZIP from './assets/image/zip.svg';\r\nimport UNKNOWN from './assets/image/unknown.svg';\r\nimport type { UploadFile } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmFileComponent',\r\n});\r\n\r\nconst props = defineProps(fileComponentProps);\r\n\r\nconst iconStyle = computed(() => {\r\n return {\r\n width: `${props.size}px`,\r\n height: `${props.size}px`,\r\n };\r\n});\r\n\r\nconst fileURL = computed(() => {\r\n return props.file[props.url as keyof UploadFile] as string;\r\n});\r\n\r\nconst verifyFile = computed(() => {\r\n return props.file[props.field as keyof UploadFile] as string;\r\n});\r\n\r\nconst iconURL = computed(() => {\r\n const verifyFile = props.file[props.field as keyof UploadFile] as string;\r\n let result: any = null;\r\n if (isPDF(verifyFile)) {\r\n result = PDF;\r\n } else if (isWord(verifyFile)) {\r\n result = WORD;\r\n } else if (isExcel(verifyFile)) {\r\n result = EXCEL;\r\n } else if (isText(verifyFile)) {\r\n result = TEXT;\r\n } else if (isPPT(verifyFile)) {\r\n result = PPT;\r\n } else if (isZip(verifyFile)) {\r\n result = ZIP;\r\n } else if (isPSD(verifyFile)) {\r\n result = PSD;\r\n } else {\r\n result = UNKNOWN;\r\n }\r\n return result;\r\n});\r\n</script>\r\n"],"names":["computed","verifyFile","isPDF","PDF","isWord","WORD","isExcel","EXCEL","isText","TEXT","isPPT","PPT","isZip","ZIP","isPSD","PSD","UNKNOWN"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,SAAA,GAAYA,aAAS,MAAM;AAC/B,MAAO,OAAA;AAAA,QACL,KAAA,EAAO,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,QACpB,MAAA,EAAQ,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,OACvB,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,GAAuB,CAAA,CAAA;AAAA,KAChD,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAaA,aAAS,MAAM;AAChC,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAAA,KAClD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAA,MAAMC,WAAa,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAC7D,MAAA,IAAI,MAAc,GAAA,IAAA,CAAA;AAClB,MAAI,IAAAC,QAAA,CAAMD,WAAU,CAAG,EAAA;AACrB,QAAS,MAAA,GAAAE,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,SAAOH,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAAI,YAAA,CAAA;AAAA,OACX,MAAA,IAAWC,UAAQL,CAAAA,WAAU,CAAG,EAAA;AAC9B,QAAS,MAAA,GAAAM,aAAA,CAAA;AAAA,OACX,MAAA,IAAWC,SAAOP,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAS,MAAA,GAAAQ,YAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMT,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAU,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMX,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAY,WAAA,CAAA;AAAA,OACX,MAAA,IAAWC,QAAMb,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAS,MAAA,GAAAc,WAAA,CAAA;AAAA,OACJ,MAAA;AACL,QAAS,MAAA,GAAAC,eAAA,CAAA;AAAA,OACX;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FileComponent.vue2.js","sources":["../../../../../../../packages/components/src/composite/fileComponent/FileComponent.vue"],"sourcesContent":["<template>\r\n <div class=\"gm-flex gm-h-full gm-items-center gm-justify-center\">\r\n <img v-if=\"isImageUrl(verifyFile)\" :src=\"fileURL\" fit=\"contain\" style=\"max-width: 100%; max-height: 100%\" />\r\n <video\r\n v-else-if=\"isVideoUrl(verifyFile)\"\r\n :src=\"fileURL\"\r\n :controls=\"controls\"\r\n :controlslist=\"controlslist\"\r\n :oncontextmenu=\"() => oncontextmenu\"\r\n style=\"width: 100%; height: 100%\"\r\n />\r\n <el-image v-else :style=\"iconStyle\" :src=\"iconURL\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport { isExcel, isImageUrl, isPDF, isPPT, isPSD, isText, isVideoUrl, isWord, isZip } from '@giime/utils/src/is';\r\nimport { fileComponentProps } from './fileComponent';\r\n// import PDF from './assets/image/pdf.svg';\r\n// import WORD from './assets/image/word.svg';\r\n// import EXCEL from './assets/image/excel.svg';\r\n// import PPT from './assets/image/ppt.svg';\r\n// import PSD from './assets/image/psd.svg';\r\n// import TEXT from './assets/image/text.svg';\r\n// import ZIP from './assets/image/zip.svg';\r\n// import UNKNOWN from './assets/image/unknown.svg';\r\nimport type { UploadFile } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmFileComponent',\r\n});\r\n\r\nconst props = defineProps(fileComponentProps);\r\n\r\nconst iconStyle = computed(() => {\r\n return {\r\n width: `${props.size}px`,\r\n height: `${props.size}px`,\r\n };\r\n});\r\n\r\nconst fileURL = computed(() => {\r\n return props.file[props.url as keyof UploadFile] as string;\r\n});\r\n\r\nconst verifyFile = computed(() => {\r\n return props.file[props.field as keyof UploadFile] as string;\r\n});\r\n\r\nconst iconList = {\r\n excel: 'https://sucai.giikin.cn/workflow/material-refer-1739947054012-1213-335.svg',\r\n pdf: 'https://sucai.giikin.cn/workflow/material-refer-1739947288698-5462-586.svg',\r\n word: 'https://sucai.giikin.cn/workflow/material-refer-1739947288698-1540-625.svg',\r\n txt: 'https://sucai.giikin.cn/workflow/material-refer-1739947288698-1700-90.svg',\r\n zip: 'https://sucai.giikin.cn/workflow/material-refer-1739947288698-2639-507.svg',\r\n psd: 'https://sucai.giikin.cn/workflow/material-refer-1739947288698-5026-760.svg',\r\n ppt: 'https://sucai.giikin.cn/workflow/material-refer-1739947288698-2867-970.svg',\r\n unknown: 'https://sucai.giikin.cn/workflow/material-refer-1739947288698-1448-736.svg',\r\n};\r\n\r\nconst iconURL = computed(() => {\r\n const verifyFile = props.file[props.field as keyof UploadFile] as string;\r\n let result: any = null;\r\n if (isPDF(verifyFile)) {\r\n result = iconList.pdf;\r\n } else if (isWord(verifyFile)) {\r\n result = iconList.word;\r\n } else if (isExcel(verifyFile)) {\r\n result = iconList.excel;\r\n } else if (isText(verifyFile)) {\r\n result = iconList.txt;\r\n } else if (isPPT(verifyFile)) {\r\n result = iconList.ppt;\r\n } else if (isZip(verifyFile)) {\r\n result = iconList.zip;\r\n } else if (isPSD(verifyFile)) {\r\n result = iconList.psd;\r\n } else {\r\n result = iconList.unknown;\r\n }\r\n return result;\r\n});\r\n</script>\r\n"],"names":["computed","verifyFile","isPDF","isWord","isExcel","isText","isPPT","isZip","isPSD"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,SAAA,GAAYA,aAAS,MAAM;AAC/B,MAAO,OAAA;AAAA,QACL,KAAA,EAAO,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,QACpB,MAAA,EAAQ,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,EAAA,CAAA;AAAA,OACvB,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,GAAuB,CAAA,CAAA;AAAA,KAChD,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAaA,aAAS,MAAM;AAChC,MAAO,OAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAAA,KAClD,CAAA,CAAA;AAED,IAAA,MAAM,QAAW,GAAA;AAAA,MACf,KAAO,EAAA,4EAAA;AAAA,MACP,GAAK,EAAA,4EAAA;AAAA,MACL,IAAM,EAAA,4EAAA;AAAA,MACN,GAAK,EAAA,2EAAA;AAAA,MACL,GAAK,EAAA,4EAAA;AAAA,MACL,GAAK,EAAA,4EAAA;AAAA,MACL,GAAK,EAAA,4EAAA;AAAA,MACL,OAAS,EAAA,4EAAA;AAAA,KACX,CAAA;AAEA,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAM;AAC7B,MAAA,MAAMC,WAAa,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,KAAyB,CAAA,CAAA;AAC7D,MAAA,IAAI,MAAc,GAAA,IAAA,CAAA;AAClB,MAAI,IAAAC,QAAA,CAAMD,WAAU,CAAG,EAAA;AACrB,QAAA,MAAA,GAAS,QAAS,CAAA,GAAA,CAAA;AAAA,OACpB,MAAA,IAAWE,SAAOF,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAA,MAAA,GAAS,QAAS,CAAA,IAAA,CAAA;AAAA,OACpB,MAAA,IAAWG,UAAQH,CAAAA,WAAU,CAAG,EAAA;AAC9B,QAAA,MAAA,GAAS,QAAS,CAAA,KAAA,CAAA;AAAA,OACpB,MAAA,IAAWI,SAAOJ,CAAAA,WAAU,CAAG,EAAA;AAC7B,QAAA,MAAA,GAAS,QAAS,CAAA,GAAA,CAAA;AAAA,OACpB,MAAA,IAAWK,QAAML,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAA,MAAA,GAAS,QAAS,CAAA,GAAA,CAAA;AAAA,OACpB,MAAA,IAAWM,QAAMN,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAA,MAAA,GAAS,QAAS,CAAA,GAAA,CAAA;AAAA,OACpB,MAAA,IAAWO,QAAMP,CAAAA,WAAU,CAAG,EAAA;AAC5B,QAAA,MAAA,GAAS,QAAS,CAAA,GAAA,CAAA;AAAA,OACb,MAAA;AACL,QAAA,MAAA,GAAS,QAAS,CAAA,OAAA,CAAA;AAAA,OACpB;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,8 +2,6 @@ import type { UploadFile, UploadFiles, UploadRawFile, UploadStatus } from 'eleme
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
3
3
  fileList: import("vue").PropType<UploadFiles>;
4
4
  checkoutFiles: import("vue").PropType<any[]>;
5
- isIndeterminate: import("vue").PropType<boolean>;
6
- checkedAll: import("vue").PropType<boolean>;
7
5
  listType: {
8
6
  type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>>;
9
7
  default: string;
@@ -694,8 +692,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
694
692
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
695
693
  "update:fileList": (fileList: UploadFiles) => void;
696
694
  "update:checkoutFiles": (checkoutFiles: any[]) => void;
697
- "update:isIndeterminate": (isIndeterminate: boolean) => void;
698
- "update:checkedAll": (checkedAll: boolean) => void;
699
695
  handleRemove: (file: {
700
696
  file: UploadFile;
701
697
  index: number;
@@ -704,8 +700,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
704
700
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
705
701
  fileList: import("vue").PropType<UploadFiles>;
706
702
  checkoutFiles: import("vue").PropType<any[]>;
707
- isIndeterminate: import("vue").PropType<boolean>;
708
- checkedAll: import("vue").PropType<boolean>;
709
703
  listType: {
710
704
  type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>>;
711
705
  default: string;
@@ -920,8 +914,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
920
914
  index: number;
921
915
  }) => any) | undefined;
922
916
  "onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
923
- "onUpdate:isIndeterminate"?: ((isIndeterminate: boolean) => any) | undefined;
924
- "onUpdate:checkedAll"?: ((checkedAll: boolean) => any) | undefined;
925
917
  onHandleSaveFileSuccess?: ((file: import("../../../../api/materialApi").PostSaveFileResourcesData) => any) | undefined;
926
918
  }, {
927
919
  name: string;
@@ -7,7 +7,7 @@ require('./UploadFile.vue3.js');
7
7
  require('./UploadFile.vue4.js');
8
8
  var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
9
9
 
10
- var UploadFile = /* @__PURE__ */ _pluginVue_exportHelper.default(UploadFile_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-7aea5ade"]]);
10
+ var UploadFile = /* @__PURE__ */ _pluginVue_exportHelper.default(UploadFile_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-e28fc09f"]]);
11
11
 
12
12
  exports.default = UploadFile;
13
13
  //# sourceMappingURL=UploadFile.vue.js.map
@@ -10,7 +10,7 @@ var index = require('../fileComponent/index.js');
10
10
  var index$1 = require('../previewFile/index.js');
11
11
  var uploadFile = require('./uploadFile.js');
12
12
 
13
- const _withScopeId = (n) => (vue.pushScopeId("data-v-7aea5ade"), n = n(), vue.popScopeId(), n);
13
+ const _withScopeId = (n) => (vue.pushScopeId("data-v-e28fc09f"), n = n(), vue.popScopeId(), n);
14
14
  const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode(
15
15
  "div",
16
16
  { class: "el-upload__text gm-text-center !gm-text-xs gm-text-gray-500" },
@@ -30,16 +30,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
30
30
  },
31
31
  __name: "UploadFile",
32
32
  props: /* @__PURE__ */ vue.mergeModels(uploadFile.uploadFileProps, {
33
- "fileList": { default: [] },
33
+ "fileList": { default: () => [] },
34
34
  "fileListModifiers": {},
35
- "checkoutFiles": { default: [] },
36
- "checkoutFilesModifiers": {},
37
- "isIndeterminate": { type: Boolean, ...{ default: false } },
38
- "isIndeterminateModifiers": {},
39
- "checkedAll": { type: Boolean, ...{ default: false } },
40
- "checkedAllModifiers": {}
35
+ "checkoutFiles": { default: () => [] },
36
+ "checkoutFilesModifiers": {}
41
37
  }),
42
- emits: /* @__PURE__ */ vue.mergeModels(["handleRemove", "handleSaveFileSuccess"], ["update:fileList", "update:checkoutFiles", "update:isIndeterminate", "update:checkedAll"]),
38
+ emits: /* @__PURE__ */ vue.mergeModels(["handleRemove", "handleSaveFileSuccess"], ["update:fileList", "update:checkoutFiles"]),
43
39
  setup(__props, { expose: __expose, emit: __emit }) {
44
40
  const props = __props;
45
41
  const emit = __emit;
@@ -50,13 +46,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
50
46
  });
51
47
  const fileList = vue.useModel(__props, "fileList");
52
48
  const checkoutFiles = vue.useModel(__props, "checkoutFiles");
53
- const isIndeterminate = vue.useModel(__props, "isIndeterminate");
54
- const checkedAll = vue.useModel(__props, "checkedAll");
55
- const handleCheckedChange = (value) => {
56
- const { length } = value;
57
- checkedAll.value = length === fileList.value.length;
58
- isIndeterminate.value = length > 0 && length < fileList.value.length;
59
- };
60
49
  const httpRequest = async (params) => {
61
50
  const { file } = params;
62
51
  const res = await uploadFile({
@@ -131,8 +120,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
131
120
  [
132
121
  vue.createVNode(_component_el_checkbox_group, {
133
122
  modelValue: checkoutFiles.value,
134
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event),
135
- onChange: handleCheckedChange
123
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event)
136
124
  }, {
137
125
  default: vue.withCtx(() => [
138
126
  vue.createVNode(_component_el_upload, vue.mergeProps({