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.
- package/dist/index.css +56 -57
- package/es/api/materialApi/cross/getOssAccessToken.d.ts +1 -1
- package/es/api/materialApi/cross/getOssAccessToken.mjs.map +1 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +4 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs +11 -6
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs.map +1 -1
- package/es/components/src/business/uploadMaterial/index.d.ts +4 -0
- package/es/components/src/composite/fileComponent/FileComponent.vue2.mjs +18 -16
- package/es/components/src/composite/fileComponent/FileComponent.vue2.mjs.map +1 -1
- package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +0 -8
- package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +1 -1
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +6 -18
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -1
- package/es/components/src/composite/uploadFile/index.d.ts +0 -20
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/es/index.css +56 -57
- package/es/utils/src/alioss/aliossPutHook.mjs +1 -1
- package/es/utils/src/alioss/aliossPutHook.mjs.map +1 -1
- package/es/utils/src/alioss/aliossToken.d.ts +9 -3
- package/es/utils/src/alioss/aliossToken.mjs +4 -4
- package/es/utils/src/alioss/aliossToken.mjs.map +1 -1
- package/lib/api/materialApi/cross/getOssAccessToken.d.ts +1 -1
- package/lib/api/materialApi/cross/getOssAccessToken.js.map +1 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +4 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js +11 -6
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js.map +1 -1
- package/lib/components/src/business/uploadMaterial/index.d.ts +4 -0
- package/lib/components/src/composite/fileComponent/FileComponent.vue2.js +18 -16
- package/lib/components/src/composite/fileComponent/FileComponent.vue2.js.map +1 -1
- package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +0 -8
- package/lib/components/src/composite/uploadFile/UploadFile.vue.js +1 -1
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +6 -18
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -1
- package/lib/components/src/composite/uploadFile/index.d.ts +0 -20
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/index.css +56 -57
- package/lib/utils/src/alioss/aliossPutHook.js +1 -1
- package/lib/utils/src/alioss/aliossPutHook.js.map +1 -1
- package/lib/utils/src/alioss/aliossToken.d.ts +9 -3
- package/lib/utils/src/alioss/aliossToken.js +4 -4
- package/lib/utils/src/alioss/aliossToken.js.map +1 -1
- package/package.json +1 -1
- package/es/components/src/composite/fileComponent/assets/image/excel.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/excel.svg.mjs.map +0 -1
- package/es/components/src/composite/fileComponent/assets/image/pdf.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/pdf.svg.mjs.map +0 -1
- package/es/components/src/composite/fileComponent/assets/image/ppt.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/ppt.svg.mjs.map +0 -1
- package/es/components/src/composite/fileComponent/assets/image/psd.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/psd.svg.mjs.map +0 -1
- package/es/components/src/composite/fileComponent/assets/image/text.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/text.svg.mjs.map +0 -1
- package/es/components/src/composite/fileComponent/assets/image/unknown.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/unknown.svg.mjs.map +0 -1
- package/es/components/src/composite/fileComponent/assets/image/word.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/word.svg.mjs.map +0 -1
- package/es/components/src/composite/fileComponent/assets/image/zip.svg.mjs +0 -4
- package/es/components/src/composite/fileComponent/assets/image/zip.svg.mjs.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/excel.svg.js +0 -8
- package/lib/components/src/composite/fileComponent/assets/image/excel.svg.js.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/pdf.svg.js +0 -8
- package/lib/components/src/composite/fileComponent/assets/image/pdf.svg.js.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/ppt.svg.js +0 -8
- package/lib/components/src/composite/fileComponent/assets/image/ppt.svg.js.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/psd.svg.js +0 -8
- package/lib/components/src/composite/fileComponent/assets/image/psd.svg.js.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/text.svg.js +0 -8
- package/lib/components/src/composite/fileComponent/assets/image/text.svg.js.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/unknown.svg.js +0 -8
- package/lib/components/src/composite/fileComponent/assets/image/unknown.svg.js.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/word.svg.js +0 -8
- package/lib/components/src/composite/fileComponent/assets/image/word.svg.js.map +0 -1
- package/lib/components/src/composite/fileComponent/assets/image/zip.svg.js +0 -8
- 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-
|
|
809
|
-
|
|
810
|
-
}
|
|
811
|
-
|
|
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-
|
|
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-
|
|
881
|
-
|
|
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: (
|
|
9
|
+
getAliossTokenAsync: (params: {
|
|
10
|
+
config_id: string | null;
|
|
11
|
+
}) => Promise<GetOssAccessTokenResponseData>;
|
|
10
12
|
}, "isLoading">>, Pick<{
|
|
11
13
|
isLoading: import("vue").Ref<boolean>;
|
|
12
|
-
getAliossTokenAsync: (
|
|
14
|
+
getAliossTokenAsync: (params: {
|
|
15
|
+
config_id: string | null;
|
|
16
|
+
}) => Promise<GetOssAccessTokenResponseData>;
|
|
13
17
|
}, never>, Pick<{
|
|
14
18
|
isLoading: import("vue").Ref<boolean>;
|
|
15
|
-
getAliossTokenAsync: (
|
|
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 (
|
|
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(
|
|
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
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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":"
|
|
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
|
|
46
|
+
result = iconList.pdf;
|
|
45
47
|
} else if (is.isWord(verifyFile2)) {
|
|
46
|
-
result = word
|
|
48
|
+
result = iconList.word;
|
|
47
49
|
} else if (is.isExcel(verifyFile2)) {
|
|
48
|
-
result = excel
|
|
50
|
+
result = iconList.excel;
|
|
49
51
|
} else if (is.isText(verifyFile2)) {
|
|
50
|
-
result =
|
|
52
|
+
result = iconList.txt;
|
|
51
53
|
} else if (is.isPPT(verifyFile2)) {
|
|
52
|
-
result = ppt
|
|
54
|
+
result = iconList.ppt;
|
|
53
55
|
} else if (is.isZip(verifyFile2)) {
|
|
54
|
-
result = zip
|
|
56
|
+
result = iconList.zip;
|
|
55
57
|
} else if (is.isPSD(verifyFile2)) {
|
|
56
|
-
result = psd
|
|
58
|
+
result = iconList.psd;
|
|
57
59
|
} else {
|
|
58
|
-
result = unknown
|
|
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\
|
|
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-
|
|
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-
|
|
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"
|
|
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({
|