giime 0.7.2 → 0.7.4
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 +539 -539
- package/es/components/src/business/uploadPro/UploadPro.vue.d.ts +0 -3
- package/es/components/src/business/uploadPro/index.d.ts +0 -7
- package/es/components/src/business/uploadPro/uploadPro.d.ts +0 -1
- package/es/components/src/business/uploadPro/uploadPro.mjs +1 -2
- package/es/components/src/business/uploadPro/uploadPro.mjs.map +1 -1
- package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +99 -45
- package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +1 -1
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +33 -29
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -1
- package/es/components/src/composite/uploadFile/index.d.ts +203 -90
- package/es/components/src/composite/uploadFile/uploadFile.d.ts +48 -25
- package/es/components/src/composite/uploadFile/uploadFile.mjs +3 -0
- package/es/components/src/composite/uploadFile/uploadFile.mjs.map +1 -1
- package/es/constants/key.d.ts +2 -0
- package/es/constants/key.mjs.map +1 -1
- 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/hooks/base/useUploadFile/index.mjs +3 -1
- package/es/hooks/base/useUploadFile/index.mjs.map +1 -1
- package/es/hooks/store/useUploadTask/index.d.ts +28 -0
- package/es/hooks/store/useUploadTask/index.mjs +32 -0
- package/es/hooks/store/useUploadTask/index.mjs.map +1 -0
- package/es/index.css +539 -539
- package/es/utils/src/alioss/aliossPutHook.d.ts +1 -1
- package/lib/components/src/business/uploadPro/UploadPro.vue.d.ts +0 -3
- package/lib/components/src/business/uploadPro/index.d.ts +0 -7
- package/lib/components/src/business/uploadPro/uploadPro.d.ts +0 -1
- package/lib/components/src/business/uploadPro/uploadPro.js +1 -2
- package/lib/components/src/business/uploadPro/uploadPro.js.map +1 -1
- package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +99 -45
- package/lib/components/src/composite/uploadFile/UploadFile.vue.js +1 -1
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +41 -37
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -1
- package/lib/components/src/composite/uploadFile/index.d.ts +203 -90
- package/lib/components/src/composite/uploadFile/uploadFile.d.ts +48 -25
- package/lib/components/src/composite/uploadFile/uploadFile.js +3 -0
- package/lib/components/src/composite/uploadFile/uploadFile.js.map +1 -1
- package/lib/constants/key.d.ts +2 -0
- package/lib/constants/key.js.map +1 -1
- 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/hooks/base/useUploadFile/index.js +3 -1
- package/lib/hooks/base/useUploadFile/index.js.map +1 -1
- package/lib/hooks/store/useUploadTask/index.d.ts +28 -0
- package/lib/hooks/store/useUploadTask/index.js +34 -0
- package/lib/hooks/store/useUploadTask/index.js.map +1 -0
- package/lib/index.css +539 -539
- package/lib/utils/src/alioss/aliossPutHook.d.ts +1 -1
- package/package.json +1 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +0 -521
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.mjs +0 -6
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.mjs.map +0 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs +0 -71
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs.map +0 -1
- package/es/components/src/business/uploadMaterial/index.d.ts +0 -1110
- package/es/components/src/business/uploadMaterial/index.mjs +0 -10
- package/es/components/src/business/uploadMaterial/index.mjs.map +0 -1
- package/es/components/src/business/uploadMaterial/uploadMaterial.d.ts +0 -230
- package/es/components/src/business/uploadMaterial/uploadMaterial.mjs +0 -23
- package/es/components/src/business/uploadMaterial/uploadMaterial.mjs.map +0 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +0 -521
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.js +0 -10
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.js.map +0 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js +0 -75
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js.map +0 -1
- package/lib/components/src/business/uploadMaterial/index.d.ts +0 -1110
- package/lib/components/src/business/uploadMaterial/index.js +0 -16
- package/lib/components/src/business/uploadMaterial/index.js.map +0 -1
- package/lib/components/src/business/uploadMaterial/uploadMaterial.d.ts +0 -230
- package/lib/components/src/business/uploadMaterial/uploadMaterial.js +0 -25
- package/lib/components/src/business/uploadMaterial/uploadMaterial.js.map +0 -1
|
@@ -18,7 +18,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
18
18
|
};
|
|
19
19
|
sceneCode: {
|
|
20
20
|
type: StringConstructor;
|
|
21
|
-
default: string;
|
|
22
21
|
};
|
|
23
22
|
acl: {
|
|
24
23
|
type: StringConstructor;
|
|
@@ -678,7 +677,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
678
677
|
};
|
|
679
678
|
sceneCode: {
|
|
680
679
|
type: StringConstructor;
|
|
681
|
-
default: string;
|
|
682
680
|
};
|
|
683
681
|
acl: {
|
|
684
682
|
type: StringConstructor;
|
|
@@ -862,7 +860,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
862
860
|
autoUpload: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
863
861
|
listType: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>;
|
|
864
862
|
httpRequest: import("element-plus").UploadRequestHandler;
|
|
865
|
-
sceneCode: string;
|
|
866
863
|
acl: string;
|
|
867
864
|
showLoading: boolean;
|
|
868
865
|
showDelete: boolean;
|
|
@@ -19,7 +19,6 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
|
|
|
19
19
|
};
|
|
20
20
|
sceneCode: {
|
|
21
21
|
type: StringConstructor;
|
|
22
|
-
default: string;
|
|
23
22
|
};
|
|
24
23
|
acl: {
|
|
25
24
|
type: StringConstructor;
|
|
@@ -686,7 +685,6 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
|
|
|
686
685
|
};
|
|
687
686
|
sceneCode: {
|
|
688
687
|
type: StringConstructor;
|
|
689
|
-
default: string;
|
|
690
688
|
};
|
|
691
689
|
acl: {
|
|
692
690
|
type: StringConstructor;
|
|
@@ -870,7 +868,6 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
|
|
|
870
868
|
autoUpload: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
871
869
|
listType: import("element-plus/es/utils/index.js").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>;
|
|
872
870
|
httpRequest: import("element-plus").UploadRequestHandler;
|
|
873
|
-
sceneCode: string;
|
|
874
871
|
acl: string;
|
|
875
872
|
showLoading: boolean;
|
|
876
873
|
showDelete: boolean;
|
|
@@ -904,7 +901,6 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
|
|
|
904
901
|
};
|
|
905
902
|
sceneCode: {
|
|
906
903
|
type: StringConstructor;
|
|
907
|
-
default: string;
|
|
908
904
|
};
|
|
909
905
|
acl: {
|
|
910
906
|
type: StringConstructor;
|
|
@@ -1570,7 +1566,6 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
|
|
|
1570
1566
|
autoUpload: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
1571
1567
|
listType: import("element-plus/es/utils/index.js").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>;
|
|
1572
1568
|
httpRequest: import("element-plus").UploadRequestHandler;
|
|
1573
|
-
sceneCode: string;
|
|
1574
1569
|
acl: string;
|
|
1575
1570
|
showLoading: boolean;
|
|
1576
1571
|
showDelete: boolean;
|
|
@@ -1601,7 +1596,6 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
|
|
|
1601
1596
|
};
|
|
1602
1597
|
sceneCode: {
|
|
1603
1598
|
type: StringConstructor;
|
|
1604
|
-
default: string;
|
|
1605
1599
|
};
|
|
1606
1600
|
acl: {
|
|
1607
1601
|
type: StringConstructor;
|
|
@@ -2274,7 +2268,6 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
|
|
|
2274
2268
|
autoUpload: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
2275
2269
|
listType: import("element-plus/es/utils/index.js").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>;
|
|
2276
2270
|
httpRequest: import("element-plus").UploadRequestHandler;
|
|
2277
|
-
sceneCode: string;
|
|
2278
2271
|
acl: string;
|
|
2279
2272
|
showLoading: boolean;
|
|
2280
2273
|
showDelete: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadPro.mjs","sources":["../../../../../../../packages/components/src/business/uploadPro/uploadPro.ts"],"sourcesContent":["import { type PropType } from 'vue';\nimport { type UploadFile, type UploadProps, uploadProps, type UploadUserFile } from 'element-plus';\nimport type { ResourceUrlResponse } from '@giime/api/resource/interface';\n// import { previewFileProps } from '../../composite/previewFile/previewFile';\n\nexport const uploadFileProps = {\n ...uploadProps,\n // ...previewFileProps,\n listType: {\n type: String as PropType<UploadProps['listType']>,\n default: 'picture-card',\n },\n drag: {\n type: Boolean,\n default: true,\n },\n /**领域编码 */\n domainCode: {\n type: String,\n },\n /**场景编码 */\n sceneCode: {\n type: String,\n
|
|
1
|
+
{"version":3,"file":"uploadPro.mjs","sources":["../../../../../../../packages/components/src/business/uploadPro/uploadPro.ts"],"sourcesContent":["import { type PropType } from 'vue';\nimport { type UploadFile, type UploadProps, uploadProps, type UploadUserFile } from 'element-plus';\nimport type { ResourceUrlResponse } from '@giime/api/resource/interface';\n// import { previewFileProps } from '../../composite/previewFile/previewFile';\n\nexport const uploadFileProps = {\n ...uploadProps,\n // ...previewFileProps,\n listType: {\n type: String as PropType<UploadProps['listType']>,\n default: 'picture-card',\n },\n drag: {\n type: Boolean,\n default: true,\n },\n /**领域编码 */\n domainCode: {\n type: String,\n },\n /**场景编码 */\n sceneCode: {\n type: String,\n },\n /** 文件权限,默认继承桶 */\n acl: {\n type: String,\n default: 'default',\n },\n /**上传中是否loading */\n showLoading: {\n type: Boolean,\n default: false,\n },\n /** 是否展示删除按钮 */\n showDelete: {\n type: Boolean,\n default: true,\n },\n /**禁用删除按钮的uid列表 */\n disabledDeleteUids: {\n type: Array as PropType<number[]>,\n default: () => [],\n },\n /** 删除时提示 */\n deleteTip: {\n type: Boolean,\n default: false,\n },\n /** 是否开启文件多选 */\n checkbox: {\n type: Boolean,\n default: false,\n },\n /**禁用多选按钮的uid列表 */\n disabledCheckboxUids: {\n type: Array as PropType<number[]>,\n default: () => [],\n },\n /** 缩略图宽度 */\n width: {\n type: Number,\n default: 120,\n },\n /** 缩略图高度 */\n height: {\n type: Number,\n default: 120,\n },\n /**全部文件上传完成事件 */\n onAllComplete: {\n type: Function as PropType<() => void>,\n default: () => {},\n },\n};\n\nexport type GmUploadProUserFileResponse = ResourceUrlResponse;\n\nexport type GmUploadProUserFile = Omit<UploadUserFile, 'response'> & { response?: GmUploadProUserFileResponse };\n"],"names":[],"mappings":";;AAKO,MAAM,eAAkB,GAAA;AAAA,EAC7B,GAAG,WAAA;AAAA;AAAA,EAEH,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,cAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA;AAAA,EAEA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,GACR;AAAA;AAAA,EAEA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,GACR;AAAA;AAAA,EAEA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,SAAA;AAAA,GACX;AAAA;AAAA,EAEA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA,EAEA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA;AAAA,EAEA,kBAAoB,EAAA;AAAA,IAClB,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA;AAAA,EAEA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA,EAEA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA;AAAA,EAEA,oBAAsB,EAAA;AAAA,IACpB,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA;AAAA,EAEA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACX;AAAA;AAAA,EAEA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACX;AAAA;AAAA,EAEA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,QAAA;AAAA,IACN,SAAS,MAAM;AAAA,KAAC;AAAA,GAClB;AACF;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { UploadFile, UploadFiles, UploadRawFile, UploadStatus } from 'element-plus';
|
|
2
|
-
import type { AliOssResponse } from '../../../../utils/src/alioss/aliossPutHook';
|
|
3
2
|
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
4
3
|
fileList: {
|
|
5
4
|
required: true;
|
|
@@ -86,37 +85,31 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
86
85
|
type: NumberConstructor;
|
|
87
86
|
default: number;
|
|
88
87
|
};
|
|
89
|
-
|
|
90
|
-
type: import("vue").PropType<Partial<UploadFile>>;
|
|
91
|
-
default: () => {};
|
|
92
|
-
};
|
|
93
|
-
url: {
|
|
88
|
+
domainCode: {
|
|
94
89
|
type: StringConstructor;
|
|
95
|
-
default: string;
|
|
96
90
|
};
|
|
97
|
-
|
|
98
|
-
type:
|
|
99
|
-
default: number;
|
|
91
|
+
sceneCode: {
|
|
92
|
+
type: StringConstructor;
|
|
100
93
|
};
|
|
101
|
-
|
|
102
|
-
type:
|
|
94
|
+
acl: {
|
|
95
|
+
type: StringConstructor;
|
|
103
96
|
default: string;
|
|
104
97
|
};
|
|
105
|
-
|
|
98
|
+
showLoading: {
|
|
106
99
|
type: BooleanConstructor;
|
|
107
100
|
default: boolean;
|
|
108
101
|
};
|
|
109
|
-
|
|
110
|
-
type:
|
|
111
|
-
default:
|
|
102
|
+
disabledDeleteUids: {
|
|
103
|
+
type: import("vue").PropType<number[]>;
|
|
104
|
+
default: () => never[];
|
|
112
105
|
};
|
|
113
|
-
|
|
114
|
-
type:
|
|
115
|
-
default:
|
|
106
|
+
disabledCheckboxUids: {
|
|
107
|
+
type: import("vue").PropType<number[]>;
|
|
108
|
+
default: () => never[];
|
|
116
109
|
};
|
|
117
|
-
|
|
118
|
-
type:
|
|
119
|
-
default:
|
|
110
|
+
onAllComplete: {
|
|
111
|
+
type: import("vue").PropType<() => void>;
|
|
112
|
+
default: () => void;
|
|
120
113
|
};
|
|
121
114
|
beforeUpload: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>) | (() => (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>) | {
|
|
122
115
|
(): (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>;
|
|
@@ -225,6 +218,38 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
225
218
|
})[], unknown, unknown, import("element-plus").UploadRequestHandler, boolean>;
|
|
226
219
|
disabled: BooleanConstructor;
|
|
227
220
|
limit: NumberConstructor;
|
|
221
|
+
file: {
|
|
222
|
+
type: import("vue").PropType<Partial<UploadFile>>;
|
|
223
|
+
default: () => {};
|
|
224
|
+
};
|
|
225
|
+
url: {
|
|
226
|
+
type: StringConstructor;
|
|
227
|
+
default: string;
|
|
228
|
+
};
|
|
229
|
+
size: {
|
|
230
|
+
type: NumberConstructor;
|
|
231
|
+
default: number;
|
|
232
|
+
};
|
|
233
|
+
field: {
|
|
234
|
+
type: import("vue").PropType<keyof UploadFile>;
|
|
235
|
+
default: string;
|
|
236
|
+
};
|
|
237
|
+
controls: {
|
|
238
|
+
type: BooleanConstructor;
|
|
239
|
+
default: boolean;
|
|
240
|
+
};
|
|
241
|
+
controlslist: {
|
|
242
|
+
type: StringConstructor;
|
|
243
|
+
default: string;
|
|
244
|
+
};
|
|
245
|
+
oncontextmenu: {
|
|
246
|
+
type: BooleanConstructor;
|
|
247
|
+
default: boolean;
|
|
248
|
+
};
|
|
249
|
+
showIcon: {
|
|
250
|
+
type: BooleanConstructor;
|
|
251
|
+
default: boolean;
|
|
252
|
+
};
|
|
228
253
|
}, {
|
|
229
254
|
submit: () => void;
|
|
230
255
|
abort: (file: UploadFile) => void;
|
|
@@ -712,7 +737,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
712
737
|
file: UploadFile;
|
|
713
738
|
index: number;
|
|
714
739
|
}) => void;
|
|
715
|
-
handleSaveFileSuccess: (file: AliOssResponse) => void;
|
|
716
740
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
717
741
|
fileList: {
|
|
718
742
|
required: true;
|
|
@@ -799,37 +823,31 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
799
823
|
type: NumberConstructor;
|
|
800
824
|
default: number;
|
|
801
825
|
};
|
|
802
|
-
|
|
803
|
-
type: import("vue").PropType<Partial<UploadFile>>;
|
|
804
|
-
default: () => {};
|
|
805
|
-
};
|
|
806
|
-
url: {
|
|
826
|
+
domainCode: {
|
|
807
827
|
type: StringConstructor;
|
|
808
|
-
default: string;
|
|
809
828
|
};
|
|
810
|
-
|
|
811
|
-
type:
|
|
812
|
-
default: number;
|
|
829
|
+
sceneCode: {
|
|
830
|
+
type: StringConstructor;
|
|
813
831
|
};
|
|
814
|
-
|
|
815
|
-
type:
|
|
832
|
+
acl: {
|
|
833
|
+
type: StringConstructor;
|
|
816
834
|
default: string;
|
|
817
835
|
};
|
|
818
|
-
|
|
836
|
+
showLoading: {
|
|
819
837
|
type: BooleanConstructor;
|
|
820
838
|
default: boolean;
|
|
821
839
|
};
|
|
822
|
-
|
|
823
|
-
type:
|
|
824
|
-
default:
|
|
840
|
+
disabledDeleteUids: {
|
|
841
|
+
type: import("vue").PropType<number[]>;
|
|
842
|
+
default: () => never[];
|
|
825
843
|
};
|
|
826
|
-
|
|
827
|
-
type:
|
|
828
|
-
default:
|
|
844
|
+
disabledCheckboxUids: {
|
|
845
|
+
type: import("vue").PropType<number[]>;
|
|
846
|
+
default: () => never[];
|
|
829
847
|
};
|
|
830
|
-
|
|
831
|
-
type:
|
|
832
|
-
default:
|
|
848
|
+
onAllComplete: {
|
|
849
|
+
type: import("vue").PropType<() => void>;
|
|
850
|
+
default: () => void;
|
|
833
851
|
};
|
|
834
852
|
beforeUpload: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>) | (() => (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>) | {
|
|
835
853
|
(): (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>;
|
|
@@ -938,6 +956,38 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
938
956
|
})[], unknown, unknown, import("element-plus").UploadRequestHandler, boolean>;
|
|
939
957
|
disabled: BooleanConstructor;
|
|
940
958
|
limit: NumberConstructor;
|
|
959
|
+
file: {
|
|
960
|
+
type: import("vue").PropType<Partial<UploadFile>>;
|
|
961
|
+
default: () => {};
|
|
962
|
+
};
|
|
963
|
+
url: {
|
|
964
|
+
type: StringConstructor;
|
|
965
|
+
default: string;
|
|
966
|
+
};
|
|
967
|
+
size: {
|
|
968
|
+
type: NumberConstructor;
|
|
969
|
+
default: number;
|
|
970
|
+
};
|
|
971
|
+
field: {
|
|
972
|
+
type: import("vue").PropType<keyof UploadFile>;
|
|
973
|
+
default: string;
|
|
974
|
+
};
|
|
975
|
+
controls: {
|
|
976
|
+
type: BooleanConstructor;
|
|
977
|
+
default: boolean;
|
|
978
|
+
};
|
|
979
|
+
controlslist: {
|
|
980
|
+
type: StringConstructor;
|
|
981
|
+
default: string;
|
|
982
|
+
};
|
|
983
|
+
oncontextmenu: {
|
|
984
|
+
type: BooleanConstructor;
|
|
985
|
+
default: boolean;
|
|
986
|
+
};
|
|
987
|
+
showIcon: {
|
|
988
|
+
type: BooleanConstructor;
|
|
989
|
+
default: boolean;
|
|
990
|
+
};
|
|
941
991
|
}>> & {
|
|
942
992
|
"onUpdate:fileList"?: ((fileList: UploadFile[]) => any) | undefined;
|
|
943
993
|
onHandleRemove?: ((file: {
|
|
@@ -945,7 +995,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
945
995
|
index: number;
|
|
946
996
|
}) => any) | undefined;
|
|
947
997
|
"onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
|
|
948
|
-
onHandleSaveFileSuccess?: ((file: AliOssResponse) => any) | undefined;
|
|
949
998
|
}, {
|
|
950
999
|
size: number;
|
|
951
1000
|
options: Record<string, any>;
|
|
@@ -977,8 +1026,13 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
977
1026
|
autoUpload: boolean;
|
|
978
1027
|
listType: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>;
|
|
979
1028
|
httpRequest: import("element-plus").UploadRequestHandler;
|
|
1029
|
+
acl: string;
|
|
1030
|
+
showLoading: boolean;
|
|
980
1031
|
showDelete: boolean;
|
|
1032
|
+
disabledDeleteUids: number[];
|
|
981
1033
|
deleteTip: boolean;
|
|
1034
|
+
disabledCheckboxUids: number[];
|
|
1035
|
+
onAllComplete: () => void;
|
|
982
1036
|
field: keyof UploadFile;
|
|
983
1037
|
controlslist: string;
|
|
984
1038
|
oncontextmenu: boolean;
|
|
@@ -3,7 +3,7 @@ import './UploadFile.vue3.mjs';
|
|
|
3
3
|
import './UploadFile.vue4.mjs';
|
|
4
4
|
import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
|
|
5
5
|
|
|
6
|
-
var UploadFile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
6
|
+
var UploadFile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2eb85f3b"]]);
|
|
7
7
|
|
|
8
8
|
export { UploadFile as default };
|
|
9
9
|
//# sourceMappingURL=UploadFile.vue.mjs.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { pushScopeId, popScopeId, createElementVNode, createTextVNode, defineComponent, mergeModels, useModel, ref, resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, withCtx, mergeProps, createSlots, renderSlot, normalizeStyle, unref, createBlock, createCommentVNode } from 'vue';
|
|
2
2
|
import { ElMessageBox } from 'element-plus';
|
|
3
|
-
import {
|
|
4
|
-
import { fileValidType } from '../../../../utils/src/file.mjs';
|
|
3
|
+
import { useUploadTaskStore } from '../../../../hooks/store/useUploadTask/index.mjs';
|
|
5
4
|
import { usePasteFile } from '../../../../hooks/base/usePasteFile/index.mjs';
|
|
6
5
|
import { GmConfirmBox } from '../../plugins/confirmBox/index.mjs';
|
|
7
6
|
import { UploadFilled, View, Delete } from '@element-plus/icons-vue';
|
|
@@ -9,7 +8,7 @@ import { GmFileComponent } from '../fileComponent/index.mjs';
|
|
|
9
8
|
import { GmPreviewFile } from '../previewFile/index.mjs';
|
|
10
9
|
import { uploadFileProps } from './uploadFile.mjs';
|
|
11
10
|
|
|
12
|
-
const _withScopeId = (n) => (pushScopeId("data-v-
|
|
11
|
+
const _withScopeId = (n) => (pushScopeId("data-v-2eb85f3b"), n = n(), popScopeId(), n);
|
|
13
12
|
const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode(
|
|
14
13
|
"div",
|
|
15
14
|
{ class: "el-upload__text gm-text-center !gm-text-xs gm-text-gray-500" },
|
|
@@ -34,39 +33,42 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
34
33
|
"checkoutFiles": { default: () => [] },
|
|
35
34
|
"checkoutFilesModifiers": {}
|
|
36
35
|
}),
|
|
37
|
-
emits: /* @__PURE__ */ mergeModels(["handleRemove"
|
|
36
|
+
emits: /* @__PURE__ */ mergeModels(["handleRemove"], ["update:fileList", "update:checkoutFiles"]),
|
|
38
37
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
39
38
|
const props = __props;
|
|
40
39
|
const emit = __emit;
|
|
41
|
-
const {
|
|
42
|
-
saveFileResult((res) => {
|
|
43
|
-
emit("handleSaveFileSuccess", res);
|
|
44
|
-
});
|
|
40
|
+
const { uploadFileTask } = useUploadTaskStore();
|
|
45
41
|
const fileList = useModel(__props, "fileList");
|
|
46
42
|
const checkoutFiles = useModel(__props, "checkoutFiles");
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
fileName: props.fileName,
|
|
58
|
-
folder: props.folder,
|
|
59
|
-
seat: props.seat,
|
|
60
|
-
partSize: props.partSize,
|
|
61
|
-
parallel: props.parallel,
|
|
62
|
-
options: props.options,
|
|
63
|
-
bucket: props.bucket,
|
|
64
|
-
saveStore: props.saveStore,
|
|
65
|
-
platform: props.platform,
|
|
66
|
-
cdn: props.cdn
|
|
43
|
+
const loadingUids = ref(/* @__PURE__ */ new Set());
|
|
44
|
+
const httpRequest = async (options) => {
|
|
45
|
+
loadingUids.value.add(options.file.uid);
|
|
46
|
+
const { file } = options;
|
|
47
|
+
const res = await uploadFileTask(file, {
|
|
48
|
+
domainCode: props.domainCode,
|
|
49
|
+
sceneCode: props.sceneCode,
|
|
50
|
+
accept: props.accept,
|
|
51
|
+
acl: props.acl,
|
|
52
|
+
elOptions: options
|
|
67
53
|
});
|
|
68
54
|
return res;
|
|
69
55
|
};
|
|
56
|
+
const checkAllUploadComplete = () => {
|
|
57
|
+
if (loadingUids.value.size === 0) {
|
|
58
|
+
props.onAllComplete?.();
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const coverFileSuccess = (response, uploadFile, uploadFiles) => {
|
|
62
|
+
loadingUids.value.delete(uploadFile.uid);
|
|
63
|
+
uploadFile.url = response.url;
|
|
64
|
+
props.onSuccess?.(response, uploadFile, uploadFiles);
|
|
65
|
+
checkAllUploadComplete();
|
|
66
|
+
};
|
|
67
|
+
const coverFileError = (error, uploadFile, uploadFiles) => {
|
|
68
|
+
loadingUids.value.delete(uploadFile.uid);
|
|
69
|
+
props.onError?.(error, uploadFile, uploadFiles);
|
|
70
|
+
checkAllUploadComplete();
|
|
71
|
+
};
|
|
70
72
|
const beforeRemove = (file, files) => {
|
|
71
73
|
if (props.disabled) {
|
|
72
74
|
return false;
|
|
@@ -163,7 +165,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
163
165
|
"onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
|
|
164
166
|
"before-remove": beforeRemove,
|
|
165
167
|
action: "",
|
|
166
|
-
"http-request": httpRequest
|
|
168
|
+
"http-request": httpRequest,
|
|
169
|
+
"on-success": coverFileSuccess,
|
|
170
|
+
"on-error": coverFileError
|
|
167
171
|
}), createSlots({
|
|
168
172
|
default: withCtx(() => [
|
|
169
173
|
!_ctx.disabled ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\n <div>\n <div\n ref=\"pasteFileRef\"\n :class=\"{ 'gm-upload-file-picture-card': listType === 'picture-card', 'gm-upload-file-disabled': disabled }\"\n class=\"gm-upload-file\"\n >\n <el-checkbox-group v-model=\"checkoutFiles\">\n <el-upload\n ref=\"uploadFileRef\"\n v-bind=\"props\"\n v-model:file-list=\"fileList\"\n :before-remove=\"beforeRemove\"\n action=\"\"\n :http-request=\"httpRequest\"\n >\n <slot v-if=\"!disabled\">\n <template v-if=\"listType === 'picture-card'\">\n <div\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-border gm-border-dashed gm-p-1\"\n style=\"flex-direction: column\"\n :style=\"{ width: width + 'px', height: height + 'px' }\"\n >\n <el-icon :size=\"30\" color=\"#999\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\n 将文件拖到此处,复制粘贴,或 <em class=\"gm-text-blue-700\">点击上传</em>\n </div>\n </div>\n </template>\n <template v-else>\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\n </template>\n </slot>\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\n <slot name=\"file\" :file=\"file\">\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" :show-icon=\"true\" :field=\"field\" />\n </div>\n <div class=\"el-upload-list__item-actions\">\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\n <el-icon><View /></el-icon>\n </span>\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file, fileList)\">\n <el-icon><Delete /></el-icon>\n </span>\n </div>\n </slot>\n </template>\n </el-upload>\n </el-checkbox-group>\n\n <GmPreviewFile\n v-model:dialogVisible=\"dialogVisible\"\n v-model:file-index=\"fileIndex\"\n :file-list=\"fileList\"\n :controls=\"controls\"\n :oncontextmenu=\"oncontextmenu\"\n :controlslist=\"controlslist\"\n :field=\"field\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElMessageBox } from 'element-plus';\nimport { useAliossHookStore } from '@giime/utils/src/alioss/aliossPutHook';\nimport { fileValidType } from '@giime/utils/src/file';\n// import { pasteFile } from '@giime/utils/src/pasteFile';\nimport { usePasteFile } from '@giime/hooks/base/usePasteFile';\nimport { GmConfirmBox } from '@giime/components/src/plugins/confirmBox';\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\nimport GmFileComponent from '../fileComponent';\nimport GmPreviewFile from '../previewFile';\nimport { uploadFileProps } from './uploadFile';\nimport type { UploadFile, UploadFiles, UploadInstance, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\nimport type { AliOssResponse } from '@giime/utils/src/alioss/aliossPutHook';\n\ndefineOptions({\n name: 'GmUploadFile',\n});\n\nconst props = defineProps(uploadFileProps);\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\n\nconst { uploadFile, saveFileResult } = useAliossHookStore();\n\nsaveFileResult((res: AliOssResponse) => {\n emit('handleSaveFileSuccess', res);\n});\n\n/** 上传文件 */\nconst fileList = defineModel<UploadFile[]>('fileList', { required: true, default: () => [] });\n/** 多选数据 */\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: () => [] });\n\n/* 上传 */\nconst httpRequest = async (params: UploadRequestOptions) => {\n const { file } = params;\n\n // 验证文件类型\n if (props.accept && props.accept !== '*') {\n const isValidType = fileValidType(file, props.accept);\n if (!isValidType) {\n throw new Error(`文件类型不支持,请上传 ${props.accept} 格式的文件`);\n }\n }\n\n const res = await uploadFile({\n file,\n fileName: props.fileName,\n folder: props.folder,\n seat: props.seat,\n partSize: props.partSize,\n parallel: props.parallel,\n options: props.options,\n bucket: props.bucket,\n saveStore: props.saveStore,\n platform: props.platform,\n cdn: props.cdn,\n });\n return res;\n};\n\n/* 删除文件前 */\nconst beforeRemove = (file: UploadFile, files: UploadFiles) => {\n if (props.disabled) {\n return false;\n }\n return props.beforeRemove ? props.beforeRemove(file, files) : true;\n};\n\n/* 删除文件 */\nconst removeFile = (file: UploadFile, uploadFiles: UploadFiles) => {\n const index = fileList.value.indexOf(file);\n if (index > -1) {\n fileList.value.splice(index, 1);\n emit('handleRemove', { file, index });\n return props.onRemove?.(file, uploadFiles);\n }\n};\nconst handleRemove = async (file: UploadFile, uploadFiles: UploadFiles) => {\n if (props.deleteTip) {\n await GmConfirmBox({ message: '确定删除该文件吗?' }, async () => {});\n }\n\n removeFile(file, uploadFiles);\n};\n\nconst uploadFileRef = ref<UploadInstance>();\nconst pasteFileRef = ref<HTMLElement>();\n/* 手动上传 */\nconst submit = () => {\n uploadFileRef.value!.submit();\n};\n\n/** 取消上传 */\nconst abort = (file: UploadFile) => {\n uploadFileRef.value!.abort(file);\n};\n\n/** 清空已上传的文件列表 */\nconst clearFiles = (status?: UploadStatus[]) => {\n uploadFileRef.value!.clearFiles(status);\n};\n\n/** 手动选择文件 */\nconst handleStart = (rawFile: UploadRawFile) => {\n uploadFileRef.value!.handleStart(rawFile);\n};\n\n/** 预览 */\nconst dialogVisible = ref(false);\nconst fileIndex = ref(0);\nconst handlePreview = (file: UploadFile) => {\n fileIndex.value = fileList.value.indexOf(file);\n dialogVisible.value = true;\n};\n\n//** 复制粘贴 */\nconst { onSuccess, onError } = usePasteFile(pasteFileRef, { accept: props.accept, disabled: props.disabled });\nonSuccess((files: File[]) => {\n if (Array.isArray(files) && files.length > 0) {\n files.forEach(file => {\n if (file instanceof File) {\n const rawFile = file as UploadRawFile;\n handleStart(rawFile);\n\n // 粘贴成功自动上传\n if (props.autoUpload) {\n submit();\n }\n }\n });\n }\n});\n\nonError((error: Error) => {\n console.error('粘贴错误:', error);\n ElMessageBox.alert(error.message, '提示', {\n type: 'error',\n });\n});\n\ndefineExpose({\n submit,\n abort,\n clearFiles,\n handleStart,\n uploadFileRef,\n});\n</script>\n\n<style scoped lang=\"scss\">\n.gm-upload-preview-dialog {\n :deep(.el-dialog__body) {\n padding: 0;\n }\n}\n.gm-upload-file-picture-card {\n :deep(.el-upload-list__item),\n :deep(.el-upload--picture-card) {\n width: auto;\n height: auto;\n }\n}\n</style>\n<style lang=\"scss\">\n.gm-upload-file {\n line-height: normal;\n .el-checkbox {\n position: absolute;\n left: 10px;\n top: 0;\n z-index: 9;\n }\n .el-upload-list--picture-card {\n gap: 10px;\n }\n .el-upload-list__item {\n margin: 0;\n }\n .el-upload-list__item-file-name {\n line-height: normal;\n }\n .el-upload-dragger {\n padding: 0;\n border: none;\n width: 100%;\n height: 100%;\n display: flex;\n }\n .el-upload--picture-card {\n border: none;\n }\n}\n.gm-upload-file-disabled {\n .el-upload--picture-card {\n display: none;\n }\n .el-upload-list__item-status-label {\n display: none;\n }\n}\n</style>\n"],"names":["_useModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UploadFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\n <div>\n <div\n ref=\"pasteFileRef\"\n :class=\"{ 'gm-upload-file-picture-card': listType === 'picture-card', 'gm-upload-file-disabled': disabled }\"\n class=\"gm-upload-file\"\n >\n <el-checkbox-group v-model=\"checkoutFiles\">\n <el-upload\n ref=\"uploadFileRef\"\n v-bind=\"props\"\n v-model:file-list=\"fileList\"\n :before-remove=\"beforeRemove\"\n action=\"\"\n :http-request=\"httpRequest\"\n :on-success=\"coverFileSuccess\"\n :on-error=\"coverFileError\"\n >\n <slot v-if=\"!disabled\">\n <template v-if=\"listType === 'picture-card'\">\n <div\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-border gm-border-dashed gm-p-1\"\n style=\"flex-direction: column\"\n :style=\"{ width: width + 'px', height: height + 'px' }\"\n >\n <el-icon :size=\"30\" color=\"#999\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\n 将文件拖到此处,复制粘贴,或 <em class=\"gm-text-blue-700\">点击上传</em>\n </div>\n </div>\n </template>\n <template v-else>\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\n </template>\n </slot>\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\n <slot name=\"file\" :file=\"file\">\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" :show-icon=\"true\" :field=\"field\" />\n </div>\n <div class=\"el-upload-list__item-actions\">\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\n <el-icon><View /></el-icon>\n </span>\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file, fileList)\">\n <el-icon><Delete /></el-icon>\n </span>\n </div>\n </slot>\n </template>\n </el-upload>\n </el-checkbox-group>\n\n <GmPreviewFile\n v-model:dialogVisible=\"dialogVisible\"\n v-model:file-index=\"fileIndex\"\n :file-list=\"fileList\"\n :controls=\"controls\"\n :oncontextmenu=\"oncontextmenu\"\n :controlslist=\"controlslist\"\n :field=\"field\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElMessageBox } from 'element-plus';\nimport { useUploadTaskStore } from '@giime/hooks/store/useUploadTask';\nimport { usePasteFile } from '@giime/hooks/base/usePasteFile';\nimport { GmConfirmBox } from '@giime/components/src/plugins/confirmBox';\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\nimport GmFileComponent from '../fileComponent';\nimport GmPreviewFile from '../previewFile';\nimport { uploadFileProps } from './uploadFile';\nimport type { GmUploadProUserFileResponse } from '../../business/uploadPro';\nimport type { UploadFile, UploadFiles, UploadInstance, UploadProps, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\n\ndefineOptions({\n name: 'GmUploadFile',\n});\n\nconst props = defineProps(uploadFileProps);\nconst emit = defineEmits([\"handleRemove\"]);\n\nconst { uploadFileTask } = useUploadTaskStore();\n\n/** 上传文件 */\nconst fileList = defineModel<UploadFile[]>('fileList', { required: true, default: () => [] });\n/** 多选数据 */\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: () => [] });\n\nconst loadingUids = ref<Set<number>>(new Set());\n\n/* 上传 */\nconst httpRequest = async (options: UploadRequestOptions) => {\n loadingUids.value.add(options.file.uid);\n const { file } = options;\n\n const res = await uploadFileTask(file, {\n domainCode: props.domainCode,\n sceneCode: props.sceneCode,\n accept: props.accept,\n acl: props.acl,\n elOptions: options,\n });\n\n return res;\n};\n\n/**判断是否全部上传完成 并触发事件 */\nconst checkAllUploadComplete = () => {\n if (loadingUids.value.size === 0) {\n // 全部文件上传完成\n props.onAllComplete?.();\n }\n};\n// 上传成功\nconst coverFileSuccess: UploadProps['onSuccess'] = (response: GmUploadProUserFileResponse, uploadFile, uploadFiles) => {\n loadingUids.value.delete(uploadFile.uid);\n uploadFile.url = response.url;\n props.onSuccess?.(response, uploadFile, uploadFiles);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n};\n// 上传失败\nconst coverFileError: UploadProps['onError'] = (error, uploadFile, uploadFiles) => {\n loadingUids.value.delete(uploadFile.uid);\n props.onError?.(error, uploadFile, uploadFiles);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n};\n\n/* 删除文件前 */\nconst beforeRemove = (file: UploadFile, files: UploadFiles) => {\n if (props.disabled) {\n return false;\n }\n return props.beforeRemove ? props.beforeRemove(file, files) : true;\n};\n\n/* 删除文件 */\nconst removeFile = (file: UploadFile, uploadFiles: UploadFiles) => {\n const index = fileList.value.indexOf(file);\n if (index > -1) {\n fileList.value.splice(index, 1);\n emit('handleRemove', { file, index });\n return props.onRemove?.(file, uploadFiles);\n }\n};\nconst handleRemove = async (file: UploadFile, uploadFiles: UploadFiles) => {\n if (props.deleteTip) {\n await GmConfirmBox({ message: '确定删除该文件吗?' }, async () => {});\n }\n\n removeFile(file, uploadFiles);\n};\n\nconst uploadFileRef = ref<UploadInstance>();\nconst pasteFileRef = ref<HTMLElement>();\n/* 手动上传 */\nconst submit = () => {\n uploadFileRef.value!.submit();\n};\n\n/** 取消上传 */\nconst abort = (file: UploadFile) => {\n uploadFileRef.value!.abort(file);\n};\n\n/** 清空已上传的文件列表 */\nconst clearFiles = (status?: UploadStatus[]) => {\n uploadFileRef.value!.clearFiles(status);\n};\n\n/** 手动选择文件 */\nconst handleStart = (rawFile: UploadRawFile) => {\n uploadFileRef.value!.handleStart(rawFile);\n};\n\n/** 预览 */\nconst dialogVisible = ref(false);\nconst fileIndex = ref(0);\nconst handlePreview = (file: UploadFile) => {\n fileIndex.value = fileList.value.indexOf(file);\n dialogVisible.value = true;\n};\n\n//** 复制粘贴 */\nconst { onSuccess, onError } = usePasteFile(pasteFileRef, { accept: props.accept, disabled: props.disabled });\nonSuccess((files: File[]) => {\n if (Array.isArray(files) && files.length > 0) {\n files.forEach(file => {\n if (file instanceof File) {\n const rawFile = file as UploadRawFile;\n handleStart(rawFile);\n\n // 粘贴成功自动上传\n if (props.autoUpload) {\n submit();\n }\n }\n });\n }\n});\n\nonError((error: Error) => {\n console.error('粘贴错误:', error);\n ElMessageBox.alert(error.message, '提示', {\n type: 'error',\n });\n});\n\ndefineExpose({\n submit,\n abort,\n clearFiles,\n handleStart,\n uploadFileRef,\n});\n</script>\n\n<style scoped lang=\"scss\">\n.gm-upload-preview-dialog {\n :deep(.el-dialog__body) {\n padding: 0;\n }\n}\n.gm-upload-file-picture-card {\n :deep(.el-upload-list__item),\n :deep(.el-upload--picture-card) {\n width: auto;\n height: auto;\n }\n}\n</style>\n<style lang=\"scss\">\n.gm-upload-file {\n line-height: normal;\n .el-checkbox {\n position: absolute;\n left: 10px;\n top: 0;\n z-index: 9;\n }\n .el-upload-list--picture-card {\n gap: 10px;\n }\n .el-upload-list__item {\n margin: 0;\n }\n .el-upload-list__item-file-name {\n line-height: normal;\n }\n .el-upload-dragger {\n padding: 0;\n border: none;\n width: 100%;\n height: 100%;\n display: flex;\n }\n .el-upload--picture-card {\n border: none;\n }\n}\n.gm-upload-file-disabled {\n .el-upload--picture-card {\n display: none;\n }\n .el-upload-list__item-status-label {\n display: none;\n }\n}\n</style>\n"],"names":["_useModel"],"mappings":"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"}
|