vft 0.0.383 → 0.0.384
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/es/components/upload/index.d.ts +6 -0
- package/es/components/upload/upload-content.vue.d.ts +3 -0
- package/es/components/upload/upload-content.vue2.js +1 -1
- package/es/components/upload/upload.vue.d.ts +3 -0
- package/es/components/upload/upload.vue2.js +18 -18
- package/es/package.json.d.ts +1 -1
- package/es/package.json.js +1 -1
- package/lib/components/upload/index.d.ts +6 -0
- package/lib/components/upload/upload-content.vue.d.ts +3 -0
- package/lib/components/upload/upload-content.vue2.cjs +1 -1
- package/lib/components/upload/upload.vue.d.ts +3 -0
- package/lib/components/upload/upload.vue2.cjs +1 -1
- package/lib/package.json.cjs +1 -1
- package/lib/package.json.d.ts +1 -1
- package/package.json +3 -3
- package/web-types.json +1 -1
|
@@ -56,6 +56,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
56
56
|
};
|
|
57
57
|
fileList: {
|
|
58
58
|
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
59
|
+
default: never[];
|
|
59
60
|
};
|
|
60
61
|
withCredentials: {
|
|
61
62
|
type: import("vue").PropType<boolean>;
|
|
@@ -175,6 +176,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
175
176
|
sizeHeight: number;
|
|
176
177
|
action: string;
|
|
177
178
|
accept: string;
|
|
179
|
+
fileList: import("./types").UploadUserFile[];
|
|
178
180
|
showFileList: boolean;
|
|
179
181
|
autoUpload: boolean;
|
|
180
182
|
listType: import("./types").ListType;
|
|
@@ -247,6 +249,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
247
249
|
};
|
|
248
250
|
fileList: {
|
|
249
251
|
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
252
|
+
default: never[];
|
|
250
253
|
};
|
|
251
254
|
withCredentials: {
|
|
252
255
|
type: import("vue").PropType<boolean>;
|
|
@@ -366,6 +369,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
366
369
|
sizeHeight: number;
|
|
367
370
|
action: string;
|
|
368
371
|
accept: string;
|
|
372
|
+
fileList: import("./types").UploadUserFile[];
|
|
369
373
|
showFileList: boolean;
|
|
370
374
|
autoUpload: boolean;
|
|
371
375
|
listType: import("./types").ListType;
|
|
@@ -435,6 +439,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
435
439
|
};
|
|
436
440
|
fileList: {
|
|
437
441
|
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
442
|
+
default: never[];
|
|
438
443
|
};
|
|
439
444
|
withCredentials: {
|
|
440
445
|
type: import("vue").PropType<boolean>;
|
|
@@ -554,6 +559,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
554
559
|
sizeHeight: number;
|
|
555
560
|
action: string;
|
|
556
561
|
accept: string;
|
|
562
|
+
fileList: import("./types").UploadUserFile[];
|
|
557
563
|
showFileList: boolean;
|
|
558
564
|
autoUpload: boolean;
|
|
559
565
|
listType: import("./types").ListType;
|
|
@@ -14,6 +14,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
14
14
|
autoUpload: boolean;
|
|
15
15
|
listType: string;
|
|
16
16
|
httpRequest: import("./types").UploadRequestHandler;
|
|
17
|
+
fileList: never[];
|
|
17
18
|
replaceOnLimit: boolean;
|
|
18
19
|
maxSize: undefined;
|
|
19
20
|
sizeExceedMessage: string;
|
|
@@ -34,6 +35,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
34
35
|
autoUpload: boolean;
|
|
35
36
|
listType: string;
|
|
36
37
|
httpRequest: import("./types").UploadRequestHandler;
|
|
38
|
+
fileList: never[];
|
|
37
39
|
replaceOnLimit: boolean;
|
|
38
40
|
maxSize: undefined;
|
|
39
41
|
sizeExceedMessage: string;
|
|
@@ -49,6 +51,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
49
51
|
sizeHeight: number;
|
|
50
52
|
action: string;
|
|
51
53
|
accept: string;
|
|
54
|
+
fileList: import("./types").UploadUserFile[];
|
|
52
55
|
showFileList: boolean;
|
|
53
56
|
autoUpload: boolean;
|
|
54
57
|
listType: import("./types").ListType;
|
|
@@ -21,7 +21,7 @@ const ne = ["onKeydown"], ie = ["name", "multiple", "accept"], se = O({
|
|
|
21
21
|
}), Ce = /* @__PURE__ */ O({
|
|
22
22
|
...se,
|
|
23
23
|
props: {
|
|
24
|
-
fileList: {},
|
|
24
|
+
fileList: { default: [] },
|
|
25
25
|
replaceOnLimit: { type: Boolean, default: !1 },
|
|
26
26
|
action: { default: "#" },
|
|
27
27
|
headers: {},
|
|
@@ -19,6 +19,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
19
19
|
autoUpload: boolean;
|
|
20
20
|
listType: string;
|
|
21
21
|
httpRequest: import("./types").UploadRequestHandler;
|
|
22
|
+
fileList: never[];
|
|
22
23
|
replaceOnLimit: boolean;
|
|
23
24
|
maxSize: undefined;
|
|
24
25
|
sizeExceedMessage: string;
|
|
@@ -86,6 +87,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
86
87
|
autoUpload: boolean;
|
|
87
88
|
listType: string;
|
|
88
89
|
httpRequest: import("./types").UploadRequestHandler;
|
|
90
|
+
fileList: never[];
|
|
89
91
|
replaceOnLimit: boolean;
|
|
90
92
|
maxSize: undefined;
|
|
91
93
|
sizeExceedMessage: string;
|
|
@@ -102,6 +104,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
102
104
|
sizeHeight: number;
|
|
103
105
|
action: string;
|
|
104
106
|
accept: string;
|
|
107
|
+
fileList: import("./types").UploadUserFile[];
|
|
105
108
|
showFileList: boolean;
|
|
106
109
|
autoUpload: boolean;
|
|
107
110
|
listType: import("./types").ListType;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { defineComponent as L, useSlots as j, shallowRef as N, computed as b, onBeforeUnmount as O, provide as q,
|
|
1
|
+
import { defineComponent as L, useSlots as j, shallowRef as N, computed as b, onBeforeUnmount as O, provide as q, toRef as D, createElementBlock as H, openBlock as c, normalizeClass as K, unref as o, createBlock as y, createCommentVNode as a, renderSlot as s, createSlots as z, withCtx as f, createVNode as W, mergeProps as B } from "vue";
|
|
2
2
|
import "../form/index.js";
|
|
3
3
|
import { VftMessage as C } from "../message/index.js";
|
|
4
|
-
import { ajaxUpload as
|
|
5
|
-
import { uploadContextKey as
|
|
4
|
+
import { ajaxUpload as A } from "./ajax.js";
|
|
5
|
+
import { uploadContextKey as G } from "./constants.js";
|
|
6
6
|
import E from "./upload-content.vue2.js";
|
|
7
7
|
import F from "./upload-list.vue2.js";
|
|
8
|
-
import { useHandlers as
|
|
9
|
-
import { useFormDisabled as
|
|
10
|
-
const
|
|
8
|
+
import { useHandlers as J } from "./use-handlers.js";
|
|
9
|
+
import { useFormDisabled as Q } from "../form/hooks/use-form-common-props.js";
|
|
10
|
+
const X = L({
|
|
11
11
|
name: "vft-upload"
|
|
12
|
-
}),
|
|
13
|
-
...
|
|
12
|
+
}), se = /* @__PURE__ */ L({
|
|
13
|
+
...X,
|
|
14
14
|
props: {
|
|
15
15
|
action: { default: "#" },
|
|
16
16
|
headers: {},
|
|
@@ -23,10 +23,10 @@ const Q = L({
|
|
|
23
23
|
showFileList: { type: Boolean, default: !0 },
|
|
24
24
|
accept: { default: "" },
|
|
25
25
|
type: { default: "select" },
|
|
26
|
-
fileList: {},
|
|
26
|
+
fileList: { default: [] },
|
|
27
27
|
autoUpload: { type: Boolean, default: !1 },
|
|
28
28
|
listType: { default: "text" },
|
|
29
|
-
httpRequest: { type: Function, default:
|
|
29
|
+
httpRequest: { type: Function, default: A },
|
|
30
30
|
disabled: { type: Boolean },
|
|
31
31
|
limit: {},
|
|
32
32
|
replaceOnLimit: { type: Boolean, default: !1 },
|
|
@@ -48,7 +48,7 @@ const Q = L({
|
|
|
48
48
|
onSizeExceed: {}
|
|
49
49
|
},
|
|
50
50
|
setup(P, { expose: M }) {
|
|
51
|
-
const t = P, r = j(), v =
|
|
51
|
+
const t = P, r = j(), v = Q(), u = N(), {
|
|
52
52
|
abort: g,
|
|
53
53
|
submit: h,
|
|
54
54
|
clearFiles: w,
|
|
@@ -58,7 +58,7 @@ const Q = L({
|
|
|
58
58
|
handleRemove: p,
|
|
59
59
|
handleSuccess: I,
|
|
60
60
|
handleProgress: T
|
|
61
|
-
} =
|
|
61
|
+
} = J(t, u), m = b(() => t.listType === "picture-card"), V = {
|
|
62
62
|
abort: g,
|
|
63
63
|
submit: h,
|
|
64
64
|
clearFiles: w,
|
|
@@ -96,8 +96,8 @@ const Q = L({
|
|
|
96
96
|
n.value.forEach(({ url: e }) => {
|
|
97
97
|
e?.startsWith("blob:") && URL.revokeObjectURL(e);
|
|
98
98
|
});
|
|
99
|
-
}), q(
|
|
100
|
-
accept:
|
|
99
|
+
}), q(G, {
|
|
100
|
+
accept: D(t, "accept")
|
|
101
101
|
}), M({
|
|
102
102
|
abort: g,
|
|
103
103
|
submit: h,
|
|
@@ -105,8 +105,8 @@ const Q = L({
|
|
|
105
105
|
handleStart: S,
|
|
106
106
|
handleRemove: p,
|
|
107
107
|
fileList: n
|
|
108
|
-
}), (e, l) => (c(),
|
|
109
|
-
class:
|
|
108
|
+
}), (e, l) => (c(), H("div", {
|
|
109
|
+
class: K(["vft-upload-wrapper", { disabled: o(v) }])
|
|
110
110
|
}, [
|
|
111
111
|
m.value && e.showFileList ? (c(), y(F, {
|
|
112
112
|
key: 0,
|
|
@@ -117,7 +117,7 @@ const Q = L({
|
|
|
117
117
|
onRemove: o(p)
|
|
118
118
|
}, z({
|
|
119
119
|
append: f(() => [
|
|
120
|
-
|
|
120
|
+
W(E, B({
|
|
121
121
|
ref_key: "uploadRef",
|
|
122
122
|
ref: u
|
|
123
123
|
}, $.value), {
|
|
@@ -171,5 +171,5 @@ const Q = L({
|
|
|
171
171
|
}
|
|
172
172
|
});
|
|
173
173
|
export {
|
|
174
|
-
|
|
174
|
+
se as default
|
|
175
175
|
};
|
package/es/package.json.d.ts
CHANGED
package/es/package.json.js
CHANGED
|
@@ -56,6 +56,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
56
56
|
};
|
|
57
57
|
fileList: {
|
|
58
58
|
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
59
|
+
default: never[];
|
|
59
60
|
};
|
|
60
61
|
withCredentials: {
|
|
61
62
|
type: import("vue").PropType<boolean>;
|
|
@@ -175,6 +176,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
175
176
|
sizeHeight: number;
|
|
176
177
|
action: string;
|
|
177
178
|
accept: string;
|
|
179
|
+
fileList: import("./types").UploadUserFile[];
|
|
178
180
|
showFileList: boolean;
|
|
179
181
|
autoUpload: boolean;
|
|
180
182
|
listType: import("./types").ListType;
|
|
@@ -247,6 +249,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
247
249
|
};
|
|
248
250
|
fileList: {
|
|
249
251
|
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
252
|
+
default: never[];
|
|
250
253
|
};
|
|
251
254
|
withCredentials: {
|
|
252
255
|
type: import("vue").PropType<boolean>;
|
|
@@ -366,6 +369,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
366
369
|
sizeHeight: number;
|
|
367
370
|
action: string;
|
|
368
371
|
accept: string;
|
|
372
|
+
fileList: import("./types").UploadUserFile[];
|
|
369
373
|
showFileList: boolean;
|
|
370
374
|
autoUpload: boolean;
|
|
371
375
|
listType: import("./types").ListType;
|
|
@@ -435,6 +439,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
435
439
|
};
|
|
436
440
|
fileList: {
|
|
437
441
|
type: import("vue").PropType<import("./types").UploadUserFile[]>;
|
|
442
|
+
default: never[];
|
|
438
443
|
};
|
|
439
444
|
withCredentials: {
|
|
440
445
|
type: import("vue").PropType<boolean>;
|
|
@@ -554,6 +559,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
|
|
|
554
559
|
sizeHeight: number;
|
|
555
560
|
action: string;
|
|
556
561
|
accept: string;
|
|
562
|
+
fileList: import("./types").UploadUserFile[];
|
|
557
563
|
showFileList: boolean;
|
|
558
564
|
autoUpload: boolean;
|
|
559
565
|
listType: import("./types").ListType;
|
|
@@ -14,6 +14,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
14
14
|
autoUpload: boolean;
|
|
15
15
|
listType: string;
|
|
16
16
|
httpRequest: import("./types").UploadRequestHandler;
|
|
17
|
+
fileList: never[];
|
|
17
18
|
replaceOnLimit: boolean;
|
|
18
19
|
maxSize: undefined;
|
|
19
20
|
sizeExceedMessage: string;
|
|
@@ -34,6 +35,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
34
35
|
autoUpload: boolean;
|
|
35
36
|
listType: string;
|
|
36
37
|
httpRequest: import("./types").UploadRequestHandler;
|
|
38
|
+
fileList: never[];
|
|
37
39
|
replaceOnLimit: boolean;
|
|
38
40
|
maxSize: undefined;
|
|
39
41
|
sizeExceedMessage: string;
|
|
@@ -49,6 +51,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
49
51
|
sizeHeight: number;
|
|
50
52
|
action: string;
|
|
51
53
|
accept: string;
|
|
54
|
+
fileList: import("./types").UploadUserFile[];
|
|
52
55
|
showFileList: boolean;
|
|
53
56
|
autoUpload: boolean;
|
|
54
57
|
listType: import("./types").ListType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("../form/index.cjs");require("@vueuse/core");const S=require("@vft/utils"),D=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const z=require("lodash-es"),L=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const M=require("./ajax.cjs"),F=require("./constants.cjs"),K=require("./upload-dragger.vue2.cjs"),R=require("./utils.cjs"),T=require("../form/hooks/use-form-common-props.cjs"),V=require("../form/hooks/use-form-item.cjs"),H=["onKeydown"],W=["name","multiple","accept"],$=t.defineComponent({name:"VftUploadContent",inheritAttrs:!1}),A=t.defineComponent({...$,props:{fileList:{},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:M.ajaxUpload},disabled:{type:Boolean},limit:{},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},beforeUpload:{},onRemove:{},onStart:{},onSuccess:{},onProgress:{},onError:{},onExceed:{},onSizeExceed:{}},setup(U,{expose:w}){const r=U,g=L.useNamespace("upload"),E=T.useFormDisabled(),{formItem:x}=V.useFormItem(),c=t.shallowRef({}),y=t.shallowRef(),C=async e=>{if(e.length===0)return;const{autoUpload:o,limit:a,fileList:s,multiple:f,onStart:p,onExceed:q,replaceOnLimit:b,maxSize:u,onSizeExceed:v,sizeWidth:m,sizeHeight:h,onSizeInvalid:d}=r;if(u){const i=e.filter(n=>n.size>u);if(i.length>0&&(i.forEach(n=>{v&&v(n,u)}),e=e.filter(n=>n.size<=u),e.length===0))return}if(m&&h){const i=[];for(const n of e)if(R.isImageOrVideo(n))try{const{isValid:l,width:P,height:j}=await R.validateFileSize(n,m,h);l?i.push(n):d&&d(n,P,j,m,h)}catch(l){console.error("尺寸校验失败:",l)}else i.push(n);if(e=i,e.length===0)return}if(a&&s&&s.length+e.length>a&&!(a===1&&b)){q?.(e,s);return}f||(e=e.slice(0,1));for(const i of e){const n=i;n.uid=F.genFileId(),p?.(n),o&&k(n)}},k=async e=>{if(y.value.value="",!r.beforeUpload)return _(e);let o,a={};try{const f=r.data,p=r.beforeUpload(e);a=S.isObject(r.data)?z.cloneDeep(r.data):r.data,o=await p,S.isObject(r.data)&&z.isEqual(f,a)&&(a=z.cloneDeep(r.data))}catch{o=!1}if(o===!1){r.onRemove?.(e);return}let s=e;o instanceof Blob&&(o instanceof File?s=o:s=new File([o],e.name,{type:e.type})),_(Object.assign(s,{uid:e.uid}),a)},_=(e,o)=>{const{headers:a,data:s,method:f,withCredentials:p,name:q,action:b,onProgress:u,onSuccess:v,onError:m,httpRequest:h}=r,{uid:d}=e,i={headers:a||{},withCredentials:p,file:e,data:o??(s||{}),method:f,filename:q,action:b,onProgress:l=>{u?.(l,e)},onSuccess:l=>{v?.(l,e),delete c.value[d]},onError:l=>{m?.(l,e),delete c.value[d]}},n=h(i);c.value[d]=n,n instanceof Promise&&n.then(i.onSuccess,i.onError)},O=async e=>{const o=e.target.files;o&&(await C(Array.from(o)),t.nextTick(()=>{x?.validate("change").catch(a=>D.debugWarn(a))}))},B=()=>{E.value||(y.value.value="",y.value.click())},I=()=>{B()};return w({abort:e=>{S.entriesOf(c.value).filter(e?([a])=>String(e.uid)===a:()=>!0).forEach(([a,s])=>{s instanceof XMLHttpRequest&&s.abort(),delete c.value[a]})},upload:k}),(e,o)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([t.unref(g).b(),t.unref(g).m(e.listType),t.unref(g).is("drag",e.drag)]),tabindex:"0",onClick:B,onKeydown:t.withKeys(t.withModifiers(I,["self"]),["enter","space"])},[e.drag?(t.openBlock(),t.createBlock(K.default,{key:0,disabled:t.unref(E),onFile:o[0]||(o[0]=a=>C(a.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:y,class:t.normalizeClass(t.unref(g).e("input")),name:e.name,multiple:e.multiple,accept:e.accept,type:"file",onChange:O,onClick:o[1]||(o[1]=t.withModifiers(()=>{},["stop"]))},null,42,W)],42,H))}});exports.default=A;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("../form/index.cjs");require("@vueuse/core");const S=require("@vft/utils"),D=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const z=require("lodash-es"),L=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const M=require("./ajax.cjs"),F=require("./constants.cjs"),K=require("./upload-dragger.vue2.cjs"),R=require("./utils.cjs"),T=require("../form/hooks/use-form-common-props.cjs"),V=require("../form/hooks/use-form-item.cjs"),H=["onKeydown"],W=["name","multiple","accept"],$=t.defineComponent({name:"VftUploadContent",inheritAttrs:!1}),A=t.defineComponent({...$,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:M.ajaxUpload},disabled:{type:Boolean},limit:{},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},beforeUpload:{},onRemove:{},onStart:{},onSuccess:{},onProgress:{},onError:{},onExceed:{},onSizeExceed:{}},setup(U,{expose:w}){const r=U,g=L.useNamespace("upload"),E=T.useFormDisabled(),{formItem:x}=V.useFormItem(),c=t.shallowRef({}),y=t.shallowRef(),C=async e=>{if(e.length===0)return;const{autoUpload:o,limit:a,fileList:s,multiple:f,onStart:p,onExceed:q,replaceOnLimit:b,maxSize:u,onSizeExceed:v,sizeWidth:m,sizeHeight:h,onSizeInvalid:d}=r;if(u){const i=e.filter(n=>n.size>u);if(i.length>0&&(i.forEach(n=>{v&&v(n,u)}),e=e.filter(n=>n.size<=u),e.length===0))return}if(m&&h){const i=[];for(const n of e)if(R.isImageOrVideo(n))try{const{isValid:l,width:P,height:j}=await R.validateFileSize(n,m,h);l?i.push(n):d&&d(n,P,j,m,h)}catch(l){console.error("尺寸校验失败:",l)}else i.push(n);if(e=i,e.length===0)return}if(a&&s&&s.length+e.length>a&&!(a===1&&b)){q?.(e,s);return}f||(e=e.slice(0,1));for(const i of e){const n=i;n.uid=F.genFileId(),p?.(n),o&&k(n)}},k=async e=>{if(y.value.value="",!r.beforeUpload)return _(e);let o,a={};try{const f=r.data,p=r.beforeUpload(e);a=S.isObject(r.data)?z.cloneDeep(r.data):r.data,o=await p,S.isObject(r.data)&&z.isEqual(f,a)&&(a=z.cloneDeep(r.data))}catch{o=!1}if(o===!1){r.onRemove?.(e);return}let s=e;o instanceof Blob&&(o instanceof File?s=o:s=new File([o],e.name,{type:e.type})),_(Object.assign(s,{uid:e.uid}),a)},_=(e,o)=>{const{headers:a,data:s,method:f,withCredentials:p,name:q,action:b,onProgress:u,onSuccess:v,onError:m,httpRequest:h}=r,{uid:d}=e,i={headers:a||{},withCredentials:p,file:e,data:o??(s||{}),method:f,filename:q,action:b,onProgress:l=>{u?.(l,e)},onSuccess:l=>{v?.(l,e),delete c.value[d]},onError:l=>{m?.(l,e),delete c.value[d]}},n=h(i);c.value[d]=n,n instanceof Promise&&n.then(i.onSuccess,i.onError)},O=async e=>{const o=e.target.files;o&&(await C(Array.from(o)),t.nextTick(()=>{x?.validate("change").catch(a=>D.debugWarn(a))}))},B=()=>{E.value||(y.value.value="",y.value.click())},I=()=>{B()};return w({abort:e=>{S.entriesOf(c.value).filter(e?([a])=>String(e.uid)===a:()=>!0).forEach(([a,s])=>{s instanceof XMLHttpRequest&&s.abort(),delete c.value[a]})},upload:k}),(e,o)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([t.unref(g).b(),t.unref(g).m(e.listType),t.unref(g).is("drag",e.drag)]),tabindex:"0",onClick:B,onKeydown:t.withKeys(t.withModifiers(I,["self"]),["enter","space"])},[e.drag?(t.openBlock(),t.createBlock(K.default,{key:0,disabled:t.unref(E),onFile:o[0]||(o[0]=a=>C(a.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:y,class:t.normalizeClass(t.unref(g).e("input")),name:e.name,multiple:e.multiple,accept:e.accept,type:"file",onChange:O,onClick:o[1]||(o[1]=t.withModifiers(()=>{},["stop"]))},null,42,W)],42,H))}});exports.default=A;
|
|
@@ -19,6 +19,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
19
19
|
autoUpload: boolean;
|
|
20
20
|
listType: string;
|
|
21
21
|
httpRequest: import("./types").UploadRequestHandler;
|
|
22
|
+
fileList: never[];
|
|
22
23
|
replaceOnLimit: boolean;
|
|
23
24
|
maxSize: undefined;
|
|
24
25
|
sizeExceedMessage: string;
|
|
@@ -86,6 +87,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
86
87
|
autoUpload: boolean;
|
|
87
88
|
listType: string;
|
|
88
89
|
httpRequest: import("./types").UploadRequestHandler;
|
|
90
|
+
fileList: never[];
|
|
89
91
|
replaceOnLimit: boolean;
|
|
90
92
|
maxSize: undefined;
|
|
91
93
|
sizeExceedMessage: string;
|
|
@@ -102,6 +104,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
102
104
|
sizeHeight: number;
|
|
103
105
|
action: string;
|
|
104
106
|
accept: string;
|
|
107
|
+
fileList: import("./types").UploadUserFile[];
|
|
105
108
|
showFileList: boolean;
|
|
106
109
|
autoUpload: boolean;
|
|
107
110
|
listType: import("./types").ListType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const h=require("../message/index.cjs"),P=require("./ajax.cjs"),_=require("./constants.cjs"),C=require("./upload-content.vue2.cjs"),w=require("./upload-list.vue2.cjs"),E=require("./use-handlers.cjs"),F=require("../form/hooks/use-form-common-props.cjs"),L=e.defineComponent({name:"vft-upload"}),V=e.defineComponent({...L,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:{},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:P.ajaxUpload},disabled:{type:Boolean},limit:{},replaceOnLimit:{type:Boolean,default:!1},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},beforeUpload:{},beforeRemove:{},onRemove:{},onChange:{},onPreview:{},onSuccess:{},onProgress:{},onError:{},onExceed:{type:Function,default:()=>{}},onSizeExceed:{}},setup(k,{expose:B}){const o=k,r=e.useSlots(),f=F.useFormDisabled(),i=e.shallowRef(),{abort:p,submit:c,clearFiles:m,uploadFiles:n,handleStart:v,handleError:b,handleRemove:d,handleSuccess:R,handleProgress:$}=E.useHandlers(o,i),u=e.computed(()=>o.listType==="picture-card"),z={abort:p,submit:c,clearFiles:m,uploadFiles:n,uploadRef:i},y=e.computed(()=>({...o,fileList:n.value,onStart:v,onProgress:$,onSuccess:R,onError:b,onRemove:d,onChange:(t,l)=>{o.onChange?.(t,l,z)},onSizeExceed:(t,l)=>{if(o.onSizeExceed)o.onSizeExceed?.(t,l);else{const s=`文件大小不能超过 ${(l/1048576).toFixed(2)}MB`;console.warn("默认文件大小超出提示:",s),h.VftMessage.warning(s)}},onSizeInvalid:(t,l,a,s,g)=>{if(o.onSizeInvalid)o.onSizeInvalid(t,l,a,s,g);else{const S=`文件尺寸不符合要求,当前尺寸:${l}x${a},期望尺寸:${s}x${g}`;console.warn("默认尺寸校验提示:",S),h.VftMessage.warning(S)}}}));return e.onBeforeUnmount(()=>{n.value.forEach(({url:t})=>{t?.startsWith("blob:")&&URL.revokeObjectURL(t)})}),e.provide(_.uploadContextKey,{accept:toRef(o,"accept")}),B({abort:p,submit:c,clearFiles:m,handleStart:v,handleRemove:d,fileList:n}),(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vft-upload-wrapper",{disabled:e.unref(f)}])},[u.value&&t.showFileList?(e.openBlock(),e.createBlock(w.default,{key:0,disabled:e.unref(f),"list-type":t.listType,files:e.unref(n),"handle-preview":t.onPreview,onRemove:e.unref(d)},e.createSlots({append:e.withCtx(()=>[e.createVNode(C.default,e.mergeProps({ref_key:"uploadRef",ref:i},y.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)]),_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:a})=>[e.renderSlot(t.$slots,"file",{file:a})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0),!u.value||u.value&&!t.showFileList?(e.openBlock(),e.createBlock(C.default,e.mergeProps({key:1,ref_key:"uploadRef",ref:i},y.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)):e.createCommentVNode("",!0),t.$slots.trigger?e.renderSlot(t.$slots,"default",{key:2}):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"tip"),!u.value&&t.showFileList?(e.openBlock(),e.createBlock(w.default,{key:3,disabled:e.unref(f),"list-type":t.listType,files:e.unref(n),"handle-preview":t.onPreview,onRemove:e.unref(d)},e.createSlots({_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:a})=>[e.renderSlot(t.$slots,"file",{file:a})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0)],2))}});exports.default=V;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const h=require("../message/index.cjs"),P=require("./ajax.cjs"),_=require("./constants.cjs"),C=require("./upload-content.vue2.cjs"),w=require("./upload-list.vue2.cjs"),E=require("./use-handlers.cjs"),F=require("../form/hooks/use-form-common-props.cjs"),L=e.defineComponent({name:"vft-upload"}),V=e.defineComponent({...L,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:P.ajaxUpload},disabled:{type:Boolean},limit:{},replaceOnLimit:{type:Boolean,default:!1},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},beforeUpload:{},beforeRemove:{},onRemove:{},onChange:{},onPreview:{},onSuccess:{},onProgress:{},onError:{},onExceed:{type:Function,default:()=>{}},onSizeExceed:{}},setup(k,{expose:B}){const o=k,r=e.useSlots(),f=F.useFormDisabled(),i=e.shallowRef(),{abort:p,submit:c,clearFiles:m,uploadFiles:n,handleStart:v,handleError:b,handleRemove:d,handleSuccess:R,handleProgress:$}=E.useHandlers(o,i),u=e.computed(()=>o.listType==="picture-card"),z={abort:p,submit:c,clearFiles:m,uploadFiles:n,uploadRef:i},y=e.computed(()=>({...o,fileList:n.value,onStart:v,onProgress:$,onSuccess:R,onError:b,onRemove:d,onChange:(t,l)=>{o.onChange?.(t,l,z)},onSizeExceed:(t,l)=>{if(o.onSizeExceed)o.onSizeExceed?.(t,l);else{const s=`文件大小不能超过 ${(l/1048576).toFixed(2)}MB`;console.warn("默认文件大小超出提示:",s),h.VftMessage.warning(s)}},onSizeInvalid:(t,l,a,s,g)=>{if(o.onSizeInvalid)o.onSizeInvalid(t,l,a,s,g);else{const S=`文件尺寸不符合要求,当前尺寸:${l}x${a},期望尺寸:${s}x${g}`;console.warn("默认尺寸校验提示:",S),h.VftMessage.warning(S)}}}));return e.onBeforeUnmount(()=>{n.value.forEach(({url:t})=>{t?.startsWith("blob:")&&URL.revokeObjectURL(t)})}),e.provide(_.uploadContextKey,{accept:e.toRef(o,"accept")}),B({abort:p,submit:c,clearFiles:m,handleStart:v,handleRemove:d,fileList:n}),(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vft-upload-wrapper",{disabled:e.unref(f)}])},[u.value&&t.showFileList?(e.openBlock(),e.createBlock(w.default,{key:0,disabled:e.unref(f),"list-type":t.listType,files:e.unref(n),"handle-preview":t.onPreview,onRemove:e.unref(d)},e.createSlots({append:e.withCtx(()=>[e.createVNode(C.default,e.mergeProps({ref_key:"uploadRef",ref:i},y.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)]),_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:a})=>[e.renderSlot(t.$slots,"file",{file:a})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0),!u.value||u.value&&!t.showFileList?(e.openBlock(),e.createBlock(C.default,e.mergeProps({key:1,ref_key:"uploadRef",ref:i},y.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)):e.createCommentVNode("",!0),t.$slots.trigger?e.renderSlot(t.$slots,"default",{key:2}):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"tip"),!u.value&&t.showFileList?(e.openBlock(),e.createBlock(w.default,{key:3,disabled:e.unref(f),"list-type":t.listType,files:e.unref(n),"handle-preview":t.onPreview,onRemove:e.unref(d)},e.createSlots({_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:a})=>[e.renderSlot(t.$slots,"file",{file:a})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0)],2))}});exports.default=V;
|
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.384";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.384",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -55,11 +55,11 @@
|
|
|
55
55
|
"resize-detector": "0.3.0",
|
|
56
56
|
"sortablejs": "1.15.0",
|
|
57
57
|
"photoswipe": "5.4.4",
|
|
58
|
-
"@vft/
|
|
58
|
+
"@vft/store": "0.0.54",
|
|
59
59
|
"@vft/router": "0.0.67",
|
|
60
|
+
"@vft/constants": "0.0.72",
|
|
60
61
|
"@vft/use": "0.0.77",
|
|
61
62
|
"@vft/directives": "0.0.34",
|
|
62
|
-
"@vft/store": "0.0.54",
|
|
63
63
|
"@vft/utils": "0.0.136"
|
|
64
64
|
},
|
|
65
65
|
"vetur": {
|
package/web-types.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"http://json.schemastore.org/web-types","framework":"vue","name":"vft","version":"0.0.
|
|
1
|
+
{"$schema":"http://json.schemastore.org/web-types","framework":"vue","name":"vft","version":"0.0.384","js-types-syntax":"typescript","description-markup":"markdown","contributions":{"html":{}}}
|