vft 0.0.333 → 0.0.335
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 +1 -1
- package/es/components/input-tag/input-tag.vue2.js +24 -24
- package/es/components/upload/index.d.ts +72 -18
- package/es/components/upload/types.d.ts +17 -2
- package/es/components/upload/upload-content.vue.d.ts +10 -1
- package/es/components/upload/upload-content.vue2.js +103 -80
- package/es/components/upload/upload.vue.d.ts +22 -13
- package/es/components/upload/upload.vue2.js +201 -73
- package/es/components/upload/use-handlers.js +69 -61
- package/es/package.json.d.ts +1 -1
- package/es/package.json.js +1 -1
- package/lib/components/input-tag/input-tag.vue2.cjs +1 -1
- package/lib/components/upload/index.d.ts +72 -18
- package/lib/components/upload/types.d.ts +17 -2
- package/lib/components/upload/upload-content.vue.d.ts +10 -1
- package/lib/components/upload/upload-content.vue2.cjs +1 -1
- package/lib/components/upload/upload.vue.d.ts +22 -13
- package/lib/components/upload/upload.vue2.cjs +1 -1
- package/lib/components/upload/use-handlers.cjs +1 -1
- package/lib/package.json.cjs +1 -1
- package/lib/package.json.d.ts +1 -1
- package/package.json +5 -5
- package/theme-style/index.css +1 -1
- package/theme-style/src/input-tag.scss +4 -0
- package/theme-style/vft-input-tag.css +1 -1
- package/web-types.json +1 -1
|
@@ -14,7 +14,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
14
14
|
type: import("vue").PropType<(evt: import("./types").UploadProgressEvent, uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
15
15
|
};
|
|
16
16
|
onChange: {
|
|
17
|
-
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
17
|
+
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles, uploadInstance?: any) => void>;
|
|
18
18
|
};
|
|
19
19
|
onError: {
|
|
20
20
|
type: import("vue").PropType<(error: Error, uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
@@ -42,6 +42,10 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
42
42
|
type: import("vue").PropType<string>;
|
|
43
43
|
default: string;
|
|
44
44
|
};
|
|
45
|
+
fileList: {
|
|
46
|
+
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
47
|
+
default: never[];
|
|
48
|
+
};
|
|
45
49
|
withCredentials: {
|
|
46
50
|
type: import("vue").PropType<boolean>;
|
|
47
51
|
};
|
|
@@ -53,10 +57,6 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
53
57
|
type: import("vue").PropType<string>;
|
|
54
58
|
default: string;
|
|
55
59
|
};
|
|
56
|
-
fileList: {
|
|
57
|
-
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
58
|
-
default: never[];
|
|
59
|
-
};
|
|
60
60
|
autoUpload: {
|
|
61
61
|
type: import("vue").PropType<boolean>;
|
|
62
62
|
default: boolean;
|
|
@@ -72,6 +72,18 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
72
72
|
limit: {
|
|
73
73
|
type: import("vue").PropType<number>;
|
|
74
74
|
};
|
|
75
|
+
replaceOnLimit: {
|
|
76
|
+
type: import("vue").PropType<boolean>;
|
|
77
|
+
default: boolean;
|
|
78
|
+
};
|
|
79
|
+
maxSize: {
|
|
80
|
+
type: import("vue").PropType<number>;
|
|
81
|
+
default: undefined;
|
|
82
|
+
};
|
|
83
|
+
sizeExceedMessage: {
|
|
84
|
+
type: import("vue").PropType<string>;
|
|
85
|
+
default: string;
|
|
86
|
+
};
|
|
75
87
|
beforeUpload: {
|
|
76
88
|
type: import("vue").PropType<(rawFile: import("./types").UploadRawFile) => import("../types").Awaitable<void | undefined | null | boolean | File | Blob>>;
|
|
77
89
|
};
|
|
@@ -85,6 +97,9 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
85
97
|
type: import("vue").PropType<(files: File[], uploadFiles: import("./types").UploadUserFile[]) => void>;
|
|
86
98
|
default: () => void;
|
|
87
99
|
};
|
|
100
|
+
onSizeExceed: {
|
|
101
|
+
type: import("vue").PropType<(file: File, maxSize: number) => void>;
|
|
102
|
+
};
|
|
88
103
|
beforeRemove: {
|
|
89
104
|
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => import("../types").Awaitable<boolean>>;
|
|
90
105
|
};
|
|
@@ -147,12 +162,15 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
147
162
|
method: string;
|
|
148
163
|
multiple: boolean;
|
|
149
164
|
action: string;
|
|
165
|
+
fileList: import("./types").UploadUserFile[];
|
|
150
166
|
showFileList: boolean;
|
|
151
167
|
accept: string;
|
|
152
|
-
fileList: import("./types").UploadUserFile[];
|
|
153
168
|
autoUpload: boolean;
|
|
154
169
|
listType: import("./types").ListType;
|
|
155
170
|
httpRequest: import("./types").UploadRequestHandler;
|
|
171
|
+
replaceOnLimit: boolean;
|
|
172
|
+
maxSize: number;
|
|
173
|
+
sizeExceedMessage: string;
|
|
156
174
|
onExceed: import("./types").UploadHooks["onExceed"];
|
|
157
175
|
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
158
176
|
P: {};
|
|
@@ -176,7 +194,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
176
194
|
type: import("vue").PropType<(evt: import("./types").UploadProgressEvent, uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
177
195
|
};
|
|
178
196
|
onChange: {
|
|
179
|
-
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
197
|
+
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles, uploadInstance?: any) => void>;
|
|
180
198
|
};
|
|
181
199
|
onError: {
|
|
182
200
|
type: import("vue").PropType<(error: Error, uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
@@ -204,6 +222,10 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
204
222
|
type: import("vue").PropType<string>;
|
|
205
223
|
default: string;
|
|
206
224
|
};
|
|
225
|
+
fileList: {
|
|
226
|
+
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
227
|
+
default: never[];
|
|
228
|
+
};
|
|
207
229
|
withCredentials: {
|
|
208
230
|
type: import("vue").PropType<boolean>;
|
|
209
231
|
};
|
|
@@ -215,10 +237,6 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
215
237
|
type: import("vue").PropType<string>;
|
|
216
238
|
default: string;
|
|
217
239
|
};
|
|
218
|
-
fileList: {
|
|
219
|
-
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
220
|
-
default: never[];
|
|
221
|
-
};
|
|
222
240
|
autoUpload: {
|
|
223
241
|
type: import("vue").PropType<boolean>;
|
|
224
242
|
default: boolean;
|
|
@@ -234,6 +252,18 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
234
252
|
limit: {
|
|
235
253
|
type: import("vue").PropType<number>;
|
|
236
254
|
};
|
|
255
|
+
replaceOnLimit: {
|
|
256
|
+
type: import("vue").PropType<boolean>;
|
|
257
|
+
default: boolean;
|
|
258
|
+
};
|
|
259
|
+
maxSize: {
|
|
260
|
+
type: import("vue").PropType<number>;
|
|
261
|
+
default: undefined;
|
|
262
|
+
};
|
|
263
|
+
sizeExceedMessage: {
|
|
264
|
+
type: import("vue").PropType<string>;
|
|
265
|
+
default: string;
|
|
266
|
+
};
|
|
237
267
|
beforeUpload: {
|
|
238
268
|
type: import("vue").PropType<(rawFile: import("./types").UploadRawFile) => import("../types").Awaitable<void | undefined | null | boolean | File | Blob>>;
|
|
239
269
|
};
|
|
@@ -247,6 +277,9 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
247
277
|
type: import("vue").PropType<(files: File[], uploadFiles: import("./types").UploadUserFile[]) => void>;
|
|
248
278
|
default: () => void;
|
|
249
279
|
};
|
|
280
|
+
onSizeExceed: {
|
|
281
|
+
type: import("vue").PropType<(file: File, maxSize: number) => void>;
|
|
282
|
+
};
|
|
250
283
|
beforeRemove: {
|
|
251
284
|
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => import("../types").Awaitable<boolean>>;
|
|
252
285
|
};
|
|
@@ -309,12 +342,15 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
309
342
|
method: string;
|
|
310
343
|
multiple: boolean;
|
|
311
344
|
action: string;
|
|
345
|
+
fileList: import("./types").UploadUserFile[];
|
|
312
346
|
showFileList: boolean;
|
|
313
347
|
accept: string;
|
|
314
|
-
fileList: import("./types").UploadUserFile[];
|
|
315
348
|
autoUpload: boolean;
|
|
316
349
|
listType: import("./types").ListType;
|
|
317
350
|
httpRequest: import("./types").UploadRequestHandler;
|
|
351
|
+
replaceOnLimit: boolean;
|
|
352
|
+
maxSize: number;
|
|
353
|
+
sizeExceedMessage: string;
|
|
318
354
|
onExceed: import("./types").UploadHooks["onExceed"];
|
|
319
355
|
}>;
|
|
320
356
|
__isFragment?: never;
|
|
@@ -335,7 +371,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
335
371
|
type: import("vue").PropType<(evt: import("./types").UploadProgressEvent, uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
336
372
|
};
|
|
337
373
|
onChange: {
|
|
338
|
-
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
374
|
+
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles, uploadInstance?: any) => void>;
|
|
339
375
|
};
|
|
340
376
|
onError: {
|
|
341
377
|
type: import("vue").PropType<(error: Error, uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => void>;
|
|
@@ -363,6 +399,10 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
363
399
|
type: import("vue").PropType<string>;
|
|
364
400
|
default: string;
|
|
365
401
|
};
|
|
402
|
+
fileList: {
|
|
403
|
+
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
404
|
+
default: never[];
|
|
405
|
+
};
|
|
366
406
|
withCredentials: {
|
|
367
407
|
type: import("vue").PropType<boolean>;
|
|
368
408
|
};
|
|
@@ -374,10 +414,6 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
374
414
|
type: import("vue").PropType<string>;
|
|
375
415
|
default: string;
|
|
376
416
|
};
|
|
377
|
-
fileList: {
|
|
378
|
-
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
379
|
-
default: never[];
|
|
380
|
-
};
|
|
381
417
|
autoUpload: {
|
|
382
418
|
type: import("vue").PropType<boolean>;
|
|
383
419
|
default: boolean;
|
|
@@ -393,6 +429,18 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
393
429
|
limit: {
|
|
394
430
|
type: import("vue").PropType<number>;
|
|
395
431
|
};
|
|
432
|
+
replaceOnLimit: {
|
|
433
|
+
type: import("vue").PropType<boolean>;
|
|
434
|
+
default: boolean;
|
|
435
|
+
};
|
|
436
|
+
maxSize: {
|
|
437
|
+
type: import("vue").PropType<number>;
|
|
438
|
+
default: undefined;
|
|
439
|
+
};
|
|
440
|
+
sizeExceedMessage: {
|
|
441
|
+
type: import("vue").PropType<string>;
|
|
442
|
+
default: string;
|
|
443
|
+
};
|
|
396
444
|
beforeUpload: {
|
|
397
445
|
type: import("vue").PropType<(rawFile: import("./types").UploadRawFile) => import("../types").Awaitable<void | undefined | null | boolean | File | Blob>>;
|
|
398
446
|
};
|
|
@@ -406,6 +454,9 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
406
454
|
type: import("vue").PropType<(files: File[], uploadFiles: import("./types").UploadUserFile[]) => void>;
|
|
407
455
|
default: () => void;
|
|
408
456
|
};
|
|
457
|
+
onSizeExceed: {
|
|
458
|
+
type: import("vue").PropType<(file: File, maxSize: number) => void>;
|
|
459
|
+
};
|
|
409
460
|
beforeRemove: {
|
|
410
461
|
type: import("vue").PropType<(uploadFile: import("./types").UploadFile, uploadFiles: import("./types").UploadFiles) => import("../types").Awaitable<boolean>>;
|
|
411
462
|
};
|
|
@@ -468,12 +519,15 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
468
519
|
method: string;
|
|
469
520
|
multiple: boolean;
|
|
470
521
|
action: string;
|
|
522
|
+
fileList: import("./types").UploadUserFile[];
|
|
471
523
|
showFileList: boolean;
|
|
472
524
|
accept: string;
|
|
473
|
-
fileList: import("./types").UploadUserFile[];
|
|
474
525
|
autoUpload: boolean;
|
|
475
526
|
listType: import("./types").ListType;
|
|
476
527
|
httpRequest: import("./types").UploadRequestHandler;
|
|
528
|
+
replaceOnLimit: boolean;
|
|
529
|
+
maxSize: number;
|
|
530
|
+
sizeExceedMessage: string;
|
|
477
531
|
onExceed: import("./types").UploadHooks["onExceed"];
|
|
478
532
|
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
479
533
|
$slots: {
|
|
@@ -38,12 +38,14 @@ export interface UploadHooks {
|
|
|
38
38
|
beforeUpload: (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
|
|
39
39
|
beforeRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>;
|
|
40
40
|
onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
|
|
41
|
-
onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
|
|
41
|
+
onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles, uploadInstance?: any) => void;
|
|
42
42
|
onPreview: (uploadFile: UploadFile) => void;
|
|
43
43
|
onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
|
|
44
44
|
onProgress: (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
|
|
45
45
|
onError: (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
|
|
46
46
|
onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
|
|
47
|
+
/** 文件大小超出限制时的回调 */
|
|
48
|
+
onSizeExceed?: (file: File, maxSize: number) => void;
|
|
47
49
|
}
|
|
48
50
|
export interface UploadBasicProps {
|
|
49
51
|
action?: string;
|
|
@@ -63,6 +65,12 @@ export interface UploadBasicProps {
|
|
|
63
65
|
httpRequest?: UploadRequestHandler;
|
|
64
66
|
disabled?: boolean;
|
|
65
67
|
limit?: number;
|
|
68
|
+
/** 当 limit 为 1 时,是否覆盖之前的文件 */
|
|
69
|
+
replaceOnLimit?: boolean;
|
|
70
|
+
/** 文件大小限制(字节) */
|
|
71
|
+
maxSize?: number;
|
|
72
|
+
/** 超出文件大小时的提示信息 */
|
|
73
|
+
sizeExceedMessage?: string;
|
|
66
74
|
}
|
|
67
75
|
export interface UploadEventProps {
|
|
68
76
|
beforeUpload?: UploadHooks['beforeUpload'];
|
|
@@ -74,6 +82,7 @@ export interface UploadEventProps {
|
|
|
74
82
|
onProgress?: UploadHooks['onProgress'];
|
|
75
83
|
onError?: UploadHooks['onError'];
|
|
76
84
|
onExceed?: UploadHooks['onExceed'];
|
|
85
|
+
onSizeExceed?: UploadHooks['onSizeExceed'];
|
|
77
86
|
}
|
|
78
87
|
export interface UploadContentEventProps {
|
|
79
88
|
beforeUpload?: UploadHooks['beforeUpload'];
|
|
@@ -83,9 +92,15 @@ export interface UploadContentEventProps {
|
|
|
83
92
|
onProgress?: (evt: UploadProgressEvent, rawFile: UploadRawFile) => void;
|
|
84
93
|
onError?: (err: UploadAjaxError, rawFile: UploadRawFile) => void;
|
|
85
94
|
onExceed?: UploadHooks['onExceed'];
|
|
95
|
+
onSizeExceed?: UploadHooks['onSizeExceed'];
|
|
96
|
+
}
|
|
97
|
+
export interface UploadContentBasicProps extends Omit<UploadBasicProps, 'fileList'> {
|
|
98
|
+
fileList?: UploadUserFile[];
|
|
99
|
+
/** 当 limit 为 1 时,是否覆盖之前的文件 */
|
|
100
|
+
replaceOnLimit?: boolean;
|
|
86
101
|
}
|
|
87
102
|
export type UploadProps = UploadBasicProps & UploadEventProps;
|
|
88
|
-
export type UploadContentProps =
|
|
103
|
+
export type UploadContentProps = UploadContentBasicProps & UploadContentEventProps;
|
|
89
104
|
export type UploadContentInstance = InstanceType<typeof UploadContent>;
|
|
90
105
|
export interface UploadDraggerProps {
|
|
91
106
|
disabled?: boolean;
|
|
@@ -15,6 +15,9 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
15
15
|
listType: string;
|
|
16
16
|
httpRequest: import("./types").UploadRequestHandler;
|
|
17
17
|
fileList: never[];
|
|
18
|
+
replaceOnLimit: boolean;
|
|
19
|
+
maxSize: undefined;
|
|
20
|
+
sizeExceedMessage: string;
|
|
18
21
|
}>>, {
|
|
19
22
|
abort: (file?: UploadFile) => void;
|
|
20
23
|
upload: (rawFile: UploadRawFile) => Promise<void>;
|
|
@@ -31,6 +34,9 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
31
34
|
listType: string;
|
|
32
35
|
httpRequest: import("./types").UploadRequestHandler;
|
|
33
36
|
fileList: never[];
|
|
37
|
+
replaceOnLimit: boolean;
|
|
38
|
+
maxSize: undefined;
|
|
39
|
+
sizeExceedMessage: string;
|
|
34
40
|
}>>> & Readonly<{}>, {
|
|
35
41
|
drag: boolean;
|
|
36
42
|
name: string;
|
|
@@ -38,12 +44,15 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
38
44
|
method: string;
|
|
39
45
|
multiple: boolean;
|
|
40
46
|
action: string;
|
|
47
|
+
fileList: import("./types").UploadUserFile[];
|
|
41
48
|
showFileList: boolean;
|
|
42
49
|
accept: string;
|
|
43
|
-
fileList: import("./types").UploadUserFile[];
|
|
44
50
|
autoUpload: boolean;
|
|
45
51
|
listType: import("./types").ListType;
|
|
46
52
|
httpRequest: import("./types").UploadRequestHandler;
|
|
53
|
+
replaceOnLimit: boolean;
|
|
54
|
+
maxSize: number;
|
|
55
|
+
sizeExceedMessage: string;
|
|
47
56
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
48
57
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
49
58
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("@vueuse/core");const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("../form/index.cjs");require("../message/index.cjs");require("@vueuse/core");const v=require("@vft/utils"),P=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const E=require("lodash-es"),j=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const D=require("./ajax.cjs"),L=require("./constants.cjs"),w=require("./upload-dragger.vue2.cjs"),I=require("../form/hooks/use-form-common-props.cjs"),K=require("../form/hooks/use-form-item.cjs"),T=["onKeydown"],F=["name","multiple","accept"],A=t.defineComponent({name:"VftUploadContent",inheritAttrs:!1}),N=t.defineComponent({...A,props:{fileList:{default:[]},replaceOnLimit:{type:Boolean,default:!1},action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:D.ajaxUpload},disabled:{type:Boolean},limit:{},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},beforeUpload:{},onRemove:{},onStart:{},onSuccess:{},onProgress:{},onError:{},onExceed:{},onSizeExceed:{}},setup(R,{expose:x}){const s=R,p=j.useNamespace("upload"),S=I.useFormDisabled(),{formItem:U}=K.useFormItem(),u=t.shallowRef({}),m=t.shallowRef(),C=e=>{if(e.length===0)return;const{autoUpload:o,limit:n,fileList:r,multiple:d,onStart:c,onExceed:g,replaceOnLimit:y,maxSize:l,sizeExceedMessage:z,onSizeExceed:h}=s;if(l){const i=e.filter(a=>a.size>l);if(i.length>0&&(i.forEach(a=>{h&&h(a,l)}),e=e.filter(a=>a.size<=l),e.length===0))return}if(n&&r.length+e.length>n&&!(n===1&&y)){g(e,r);return}d||(e=e.slice(0,1));for(const i of e){const a=i;a.uid=L.genFileId(),c(a),o&&k(a)}},k=async e=>{if(m.value.value="",!s.beforeUpload)return _(e);let o,n={};try{const d=s.data,c=s.beforeUpload(e);n=v.isObject(s.data)?E.cloneDeep(s.data):s.data,o=await c,v.isObject(s.data)&&E.isEqual(d,n)&&(n=E.cloneDeep(s.data))}catch{o=!1}if(o===!1){s.onRemove(e);return}let r=e;o instanceof Blob&&(o instanceof File?r=o:r=new File([o],e.name,{type:e.type})),_(Object.assign(r,{uid:e.uid}),n)},_=(e,o)=>{const{headers:n,data:r,method:d,withCredentials:c,name:g,action:y,onProgress:l,onSuccess:z,onError:h,httpRequest:i}=s,{uid:a}=e,q={headers:n||{},withCredentials:c,file:e,data:o??r,method:d,filename:g,action:y,onProgress:f=>{l(f,e)},onSuccess:f=>{z(f,e),delete u.value[a]},onError:f=>{h(f,e),delete u.value[a]}},b=i(q);u.value[a]=b,b instanceof Promise&&b.then(q.onSuccess,q.onError)},M=e=>{const o=e.target.files;o&&(C(Array.from(o)),t.nextTick(()=>{U?.validate("change").catch(n=>P.debugWarn(n))}))},B=()=>{S.value||(m.value.value="",m.value.click())},O=()=>{B()};return x({abort:e=>{v.entriesOf(u.value).filter(e?([n])=>String(e.uid)===n:()=>!0).forEach(([n,r])=>{r instanceof XMLHttpRequest&&r.abort(),delete u.value[n]})},upload:k}),(e,o)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([t.unref(p).b(),t.unref(p).m(e.listType),t.unref(p).is("drag",e.drag)]),tabindex:"0",onClick:B,onKeydown:t.withKeys(t.withModifiers(O,["self"]),["enter","space"])},[e.drag?(t.openBlock(),t.createBlock(w.default,{key:0,disabled:t.unref(S),onFile:o[0]||(o[0]=n=>C(n.file))},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["disabled"])):t.renderSlot(e.$slots,"default",{key:1}),t.createElementVNode("input",{ref_key:"inputRef",ref:m,class:t.normalizeClass(t.unref(p).e("input")),name:e.name,multiple:e.multiple,accept:e.accept,type:"file",onChange:M,onClick:o[1]||(o[1]=t.withModifiers(()=>{},["stop"]))},null,42,F)],42,T))}});exports.default=N;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { UploadProps } from './types';
|
|
2
2
|
declare function __VLS_template(): {
|
|
3
3
|
file?(_: {
|
|
4
|
-
file: import("
|
|
4
|
+
file: import("vft/es/components").UploadFile;
|
|
5
5
|
}): any;
|
|
6
6
|
trigger?(_: {}): any;
|
|
7
7
|
default?(_: {}): any;
|
|
@@ -18,19 +18,22 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
18
18
|
type: string;
|
|
19
19
|
autoUpload: boolean;
|
|
20
20
|
listType: string;
|
|
21
|
-
httpRequest: import("
|
|
21
|
+
httpRequest: import("vft/es/components").UploadRequestHandler;
|
|
22
22
|
fileList: never[];
|
|
23
|
+
replaceOnLimit: boolean;
|
|
24
|
+
maxSize: undefined;
|
|
25
|
+
sizeExceedMessage: string;
|
|
23
26
|
onExceed: () => void;
|
|
24
27
|
}>>, {
|
|
25
|
-
abort: (file: import("
|
|
28
|
+
abort: (file: import("vft/es/components").UploadFile) => void;
|
|
26
29
|
submit: () => void;
|
|
27
|
-
clearFiles: (states?: import("
|
|
28
|
-
handleStart: (rawFile: import("
|
|
29
|
-
handleRemove: (file: import("
|
|
30
|
+
clearFiles: (states?: import("vft/es/components").UploadStatus[]) => void;
|
|
31
|
+
handleStart: (rawFile: import("vft/es/components").UploadRawFile) => void;
|
|
32
|
+
handleRemove: (file: import("vft/es/components").UploadFile | import("vft/es/components").UploadRawFile, rawFile?: import("vft/es/components").UploadRawFile) => void;
|
|
30
33
|
fileList: import("vue").Ref<{
|
|
31
34
|
name: string;
|
|
32
35
|
percentage?: number | undefined;
|
|
33
|
-
status: import("
|
|
36
|
+
status: import("vft/es/components").UploadStatus;
|
|
34
37
|
size?: number | undefined;
|
|
35
38
|
response?: unknown;
|
|
36
39
|
uid: number;
|
|
@@ -51,7 +54,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
51
54
|
}[], {
|
|
52
55
|
name: string;
|
|
53
56
|
percentage?: number | undefined;
|
|
54
|
-
status: import("
|
|
57
|
+
status: import("vft/es/components").UploadStatus;
|
|
55
58
|
size?: number | undefined;
|
|
56
59
|
response?: unknown;
|
|
57
60
|
uid: number;
|
|
@@ -81,8 +84,11 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
81
84
|
type: string;
|
|
82
85
|
autoUpload: boolean;
|
|
83
86
|
listType: string;
|
|
84
|
-
httpRequest: import("
|
|
87
|
+
httpRequest: import("vft/es/components").UploadRequestHandler;
|
|
85
88
|
fileList: never[];
|
|
89
|
+
replaceOnLimit: boolean;
|
|
90
|
+
maxSize: undefined;
|
|
91
|
+
sizeExceedMessage: string;
|
|
86
92
|
onExceed: () => void;
|
|
87
93
|
}>>> & Readonly<{}>, {
|
|
88
94
|
drag: boolean;
|
|
@@ -91,13 +97,16 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
91
97
|
method: string;
|
|
92
98
|
multiple: boolean;
|
|
93
99
|
action: string;
|
|
100
|
+
fileList: import("vft/es/components").UploadUserFile[];
|
|
94
101
|
showFileList: boolean;
|
|
95
102
|
accept: string;
|
|
96
|
-
fileList: import("./types").UploadUserFile[];
|
|
97
103
|
autoUpload: boolean;
|
|
98
|
-
listType: import("
|
|
99
|
-
httpRequest: import("
|
|
100
|
-
|
|
104
|
+
listType: import("vft/es/components").ListType;
|
|
105
|
+
httpRequest: import("vft/es/components").UploadRequestHandler;
|
|
106
|
+
replaceOnLimit: boolean;
|
|
107
|
+
maxSize: number;
|
|
108
|
+
sizeExceedMessage: string;
|
|
109
|
+
onExceed: import("vft/es/components").UploadHooks["onExceed"];
|
|
101
110
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
102
111
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
103
112
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../alert/index.cjs");require("../avatar/index.cjs");require("../avatar-stack/index.cjs");require("../backtop/index.cjs");require("../button/index.cjs");require("../card/index.cjs");require("../cascader/index.cjs");require("../cascader-panel/index.cjs");require("../check-tag/index.cjs");require("../checkbox/index.cjs");require("../clamp/index.cjs");require("../clamp-toggle/index.cjs");require("../clamp-tooltip/index.cjs");require("../col/index.cjs");require("../collapse-transition/index.cjs");require("../color-picker/index.cjs");require("../config-provider/index.cjs");require("../container/index.cjs");require("@vft/utils");require("../context-menu/context-menu.vue2.cjs");require("../icon/index.cjs");require("../date-picker/index.cjs");require("../date-time-select/index.cjs");require("../descriptions/index.cjs");require("../dialog/index.cjs");require("../divider/index.cjs");require("../drawer/index.cjs");require("../dropdown/index.cjs");require("../empty/index.cjs");require("../footer-layout/index.cjs");require("../form/index.cjs");require("../full-screen/index.cjs");require("../header-layout/index.cjs");require("../horizontal-menu/index.cjs");require("../icon-text/index.cjs");require("../iframe-layout/index.cjs");require("../image/index.cjs");require("../image-viewer/index.cjs");require("../input/index.cjs");require("../input-number/index.cjs");require("../link/index.cjs");require("../list-cell/index.cjs");require("../logo/index.cjs");require("../menu/index.cjs");require("../multiple-tabs/index.cjs");require("../notification/index.cjs");require("../overlay/index.cjs");require("../page-wrapper/index.cjs");require("../pagination/index.cjs");require("../popconfirm/index.cjs");require("../popover/index.cjs");require("../popper/index.cjs");require("../qrcode/index.cjs");require("../radio/index.cjs");require("../result/index.cjs");require("../router-view-content/index.cjs");require("../row/index.cjs");require("../scrollbar/index.cjs");require("../search/index.cjs");require("../select/index.cjs");require("../side-menu/index.cjs");require("../skeleton/index.cjs");require("../slider/index.cjs");require("../space/index.cjs");require("../steps/index.cjs");require("../switch/index.cjs");require("../table/index.cjs");require("../tabs/index.cjs");require("../tag/index.cjs");require("../time-picker/index.cjs");require("../tooltip/index.cjs");require("../tree/index.cjs");require("../verify-code/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../autocomplete/index.cjs");require("../breadcrumb/index.cjs");require("../carousel/index.cjs");require("../collapse/index.cjs");require("../countdown/index.cjs");require("../input-tag/index.cjs");require("../modal/index.cjs");require("../progress/index.cjs");require("../segmented/index.cjs");require("../statistic/index.cjs");require("../super-form/index.cjs");require("../timeline/index.cjs");require("../transfer/index.cjs");require("./index.cjs");require("../watermark/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../md-comment/index.cjs");require("../md-container/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../infinite-scroll/index.cjs");require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const b=require("../message/index.cjs");require("../progress-i/index.cjs");const R=require("./ajax.cjs"),P=require("./constants.cjs"),y=require("./upload-content.vue2.cjs"),g=require("./upload-list.vue2.cjs"),_=require("./use-handlers.cjs"),$=require("../form/hooks/use-form-common-props.cjs"),E=e.defineComponent({name:"vft-upload"}),F=e.defineComponent({...E,props:{action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},fileList:{default:[]},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:R.ajaxUpload},disabled:{type:Boolean},limit:{},replaceOnLimit:{type:Boolean,default:!1},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},beforeUpload:{},beforeRemove:{},onRemove:{},onChange:{},onPreview:{},onSuccess:{},onProgress:{},onError:{},onExceed:{type:Function,default:()=>{}},onSizeExceed:{}},setup(h,{expose:C}){const u=h,i=e.useSlots(),d=$.useFormDisabled(),l=e.shallowRef(),{abort:q,submit:f,clearFiles:p,uploadFiles:t,handleStart:c,handleError:S,handleRemove:a,handleSuccess:k,handleProgress:w}=_.useHandlers(u,l),s=e.computed(()=>u.listType==="picture-card"),B={abort:q,submit:f,clearFiles:p,uploadFiles:t,uploadRef:l},m=e.computed(()=>({...u,fileList:t.value,onStart:c,onProgress:w,onSuccess:k,onError:S,onRemove:a,onChange:(r,o)=>{u.onChange?.(r,o,B)},onSizeExceed:(r,o)=>{if(u.onSizeExceed)u.onSizeExceed?.(r,o);else{const v=`文件大小不能超过 ${(o/1048576).toFixed(2)}MB`;console.warn("默认文件大小超出提示:",v),b.VftMessage.warning(v)}}}));return e.onBeforeUnmount(()=>{t.value.forEach(({url:r})=>{r?.startsWith("blob:")&&URL.revokeObjectURL(r)})}),e.provide(P.uploadContextKey,{accept:e.toRef(u,"accept")}),C({abort:q,submit:f,clearFiles:p,handleStart:c,handleRemove:a,fileList:t}),(r,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vft-upload-wrapper",{disabled:e.unref(d)}])},[s.value&&r.showFileList?(e.openBlock(),e.createBlock(g.default,{key:0,disabled:e.unref(d),"list-type":r.listType,files:e.unref(t),"handle-preview":r.onPreview,onRemove:e.unref(a)},e.createSlots({append:e.withCtx(()=>[e.createVNode(y.default,e.mergeProps({ref_key:"uploadRef",ref:l},m.value),{default:e.withCtx(()=>[e.unref(i).trigger?e.renderSlot(r.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(i).trigger&&e.unref(i).default?e.renderSlot(r.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)]),_:2},[r.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(r.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0),!s.value||s.value&&!r.showFileList?(e.openBlock(),e.createBlock(y.default,e.mergeProps({key:1,ref_key:"uploadRef",ref:l},m.value),{default:e.withCtx(()=>[e.unref(i).trigger?e.renderSlot(r.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(i).trigger&&e.unref(i).default?e.renderSlot(r.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)):e.createCommentVNode("",!0),r.$slots.trigger?e.renderSlot(r.$slots,"default",{key:2}):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"tip"),!s.value&&r.showFileList?(e.openBlock(),e.createBlock(g.default,{key:3,disabled:e.unref(d),"list-type":r.listType,files:e.unref(t),"handle-preview":r.onPreview,onRemove:e.unref(a)},e.createSlots({_:2},[r.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(r.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0)],2))}});exports.default=F;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("@vueuse/core");require("@vft/utils");const f=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const h=require("vue"),U=require("lodash-es"),b=require("./constants.cjs"),g="VftUpload",m=u=>{u.url?.startsWith("blob:")&&URL.revokeObjectURL(u.url)},q=(u,o)=>{const a=F.useVModel(u,"fileList",void 0,{passive:!0}),s=e=>a.value.find(t=>t.uid===e.uid),i={abort:l,submit:v,clearFiles:d,uploadFiles:a,uploadRef:o};function l(e){o.value?.abort(e)}function d(e=["ready","uploading","success","fail"]){a.value=a.value.filter(t=>!e.includes(t.status))}const y=(e,t)=>{const r=s(t);r&&(console.error(e),r.status="fail",a.value.splice(a.value.indexOf(r),1),u.onError?.(e,r,a.value),u.onChange?.(r,a.value,i))},L=(e,t)=>{const r=s(t);r&&(u.onProgress?.(e,r,a.value),r.status="uploading",r.percentage=Math.round(e.percent))},R=(e,t)=>{const r=s(t);r&&(r.status="success",r.response=e,u.onSuccess?.(e,r,a.value),u.onChange?.(r,a.value,i))},E=e=>{U.isNil(e.uid)&&(e.uid=b.genFileId());const t={name:e.name,percentage:0,status:"ready",size:e.size,raw:e,uid:e.uid};if(u.listType==="picture-card"||u.listType==="picture")try{t.url=URL.createObjectURL(e)}catch(r){f.debugWarn(g,r.message),u.onError?.(r,t,a.value)}u.limit===1&&u.replaceOnLimit&&a.value.length>0&&(a.value.forEach(r=>{m(r)}),a.value=[]),a.value=[...a.value,t],u.onChange?.(t,a.value,i)},O=async e=>{const t=e instanceof File?s(e):e;t||f.throwError(g,"file to be removed not found");const r=n=>{l(n);const c=a.value;c.splice(c.indexOf(n),1),u.onRemove?.(n,c),m(n)};u.beforeRemove?await u.beforeRemove(t,a.value)!==!1&&r(t):r(t)};function v(){a.value.filter(({status:e})=>e==="ready").forEach(({raw:e})=>e&&o.value?.upload(e))}return h.watch(()=>u.listType,e=>{e!=="picture-card"&&e!=="picture"||(a.value=a.value.map(t=>{const{raw:r,url:n}=t;if(!n&&r)try{t.url=URL.createObjectURL(r)}catch(c){u.onError?.(c,t,a.value)}return t}))}),h.watch(a,e=>{if(e)for(const t of e)t.uid||=b.genFileId(),t.status||="success"},{immediate:!0,deep:!0}),{uploadFiles:a,abort:l,clearFiles:d,handleError:y,handleProgress:L,handleStart:E,handleSuccess:R,handleRemove:O,submit:v}};exports.useHandlers=q;
|
package/lib/package.json.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.335";exports.version=e;
|
package/lib/package.json.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vft",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.335",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -55,12 +55,12 @@
|
|
|
55
55
|
"resize-detector": "0.3.0",
|
|
56
56
|
"sortablejs": "1.15.0",
|
|
57
57
|
"photoswipe": "5.4.4",
|
|
58
|
+
"@vft/use": "0.0.76",
|
|
59
|
+
"@vft/directives": "0.0.33",
|
|
60
|
+
"@vft/utils": "0.0.128",
|
|
58
61
|
"@vft/constants": "0.0.72",
|
|
59
|
-
"@vft/router": "0.0.65",
|
|
60
62
|
"@vft/store": "0.0.54",
|
|
61
|
-
"@vft/
|
|
62
|
-
"@vft/use": "0.0.76",
|
|
63
|
-
"@vft/directives": "0.0.33"
|
|
63
|
+
"@vft/router": "0.0.65"
|
|
64
64
|
},
|
|
65
65
|
"vetur": {
|
|
66
66
|
"tags": "tags.json",
|