vant 4.3.2 → 4.4.0
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/address-edit/AddressEdit.mjs +1 -0
- package/es/area/Area.d.ts +6 -8
- package/es/area/Area.mjs +1 -1
- package/es/area/index.d.ts +4 -6
- package/es/back-top/BackTop.d.ts +1 -1
- package/es/back-top/BackTop.mjs +6 -3
- package/es/back-top/index.css +1 -1
- package/es/back-top/index.d.ts +1 -1
- package/es/barrage/Barrage.d.ts +93 -0
- package/es/barrage/Barrage.mjs +134 -0
- package/es/barrage/index.css +1 -0
- package/es/barrage/index.d.ts +69 -0
- package/es/barrage/index.mjs +10 -0
- package/es/barrage/style/index.d.ts +1 -0
- package/es/barrage/style/index.mjs +2 -0
- package/es/barrage/types.d.ts +7 -0
- package/es/barrage/types.mjs +0 -0
- package/es/cascader/Cascader.mjs +14 -0
- package/es/contact-list/ContactList.mjs +1 -1
- package/es/contact-list/index.css +1 -1
- package/es/date-picker/DatePicker.mjs +5 -2
- package/es/dialog/index.css +1 -1
- package/es/divider/Divider.d.ts +4 -0
- package/es/divider/Divider.mjs +4 -2
- package/es/divider/index.css +1 -1
- package/es/divider/index.d.ts +3 -0
- package/es/image-preview/ImagePreviewItem.mjs +28 -15
- package/es/index.d.ts +2 -1
- package/es/index.mjs +4 -1
- package/es/notice-bar/NoticeBar.d.ts +1 -1
- package/es/notice-bar/index.d.ts +1 -1
- package/es/signature/Signature.d.ts +13 -0
- package/es/signature/Signature.mjs +24 -8
- package/es/signature/index.css +1 -1
- package/es/signature/index.d.ts +9 -0
- package/es/uploader/Uploader.d.ts +6 -1
- package/es/uploader/Uploader.mjs +25 -10
- package/es/uploader/UploaderPreviewItem.d.ts +5 -1
- package/es/uploader/UploaderPreviewItem.mjs +6 -3
- package/es/uploader/index.d.ts +5 -1
- package/es/uploader/types.d.ts +1 -0
- package/lib/address-edit/AddressEdit.js +1 -0
- package/lib/area/Area.d.ts +6 -8
- package/lib/area/Area.js +1 -1
- package/lib/area/index.d.ts +4 -6
- package/lib/back-top/BackTop.d.ts +1 -1
- package/lib/back-top/BackTop.js +6 -3
- package/lib/back-top/index.css +1 -1
- package/lib/back-top/index.d.ts +1 -1
- package/lib/barrage/Barrage.d.ts +93 -0
- package/lib/barrage/Barrage.js +153 -0
- package/lib/barrage/index.css +1 -0
- package/lib/barrage/index.d.ts +69 -0
- package/lib/barrage/index.js +39 -0
- package/lib/barrage/style/index.d.ts +1 -0
- package/lib/barrage/style/index.js +2 -0
- package/lib/barrage/types.d.ts +7 -0
- package/lib/barrage/types.js +15 -0
- package/lib/cascader/Cascader.js +14 -0
- package/lib/contact-list/ContactList.js +1 -1
- package/lib/contact-list/index.css +1 -1
- package/lib/date-picker/DatePicker.js +5 -2
- package/lib/dialog/index.css +1 -1
- package/lib/divider/Divider.d.ts +4 -0
- package/lib/divider/Divider.js +4 -2
- package/lib/divider/index.css +1 -1
- package/lib/divider/index.d.ts +3 -0
- package/lib/image-preview/ImagePreviewItem.js +28 -15
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +4 -1
- package/lib/notice-bar/NoticeBar.d.ts +1 -1
- package/lib/notice-bar/index.d.ts +1 -1
- package/lib/signature/Signature.d.ts +13 -0
- package/lib/signature/Signature.js +23 -7
- package/lib/signature/index.css +1 -1
- package/lib/signature/index.d.ts +9 -0
- package/lib/uploader/Uploader.d.ts +6 -1
- package/lib/uploader/Uploader.js +25 -10
- package/lib/uploader/UploaderPreviewItem.d.ts +5 -1
- package/lib/uploader/UploaderPreviewItem.js +6 -3
- package/lib/uploader/index.d.ts +5 -1
- package/lib/uploader/types.d.ts +1 -0
- package/lib/vant.cjs.js +523 -324
- package/lib/vant.es.js +523 -324
- package/lib/vant.js +523 -324
- package/lib/vant.min.js +1 -1
- package/lib/web-types.json +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
@@ -7,6 +7,7 @@ export * from "./address-list";
|
|
7
7
|
export * from "./area";
|
8
8
|
export * from "./back-top";
|
9
9
|
export * from "./badge";
|
10
|
+
export * from "./barrage";
|
10
11
|
export * from "./button";
|
11
12
|
export * from "./calendar";
|
12
13
|
export * from "./card";
|
@@ -101,4 +102,4 @@ declare namespace _default {
|
|
101
102
|
}
|
102
103
|
export default _default;
|
103
104
|
export function install(app: any): void;
|
104
|
-
export const version: "4.
|
105
|
+
export const version: "4.4.0";
|
package/lib/index.js
CHANGED
@@ -32,6 +32,7 @@ var import_address_list = require("./address-list");
|
|
32
32
|
var import_area = require("./area");
|
33
33
|
var import_back_top = require("./back-top");
|
34
34
|
var import_badge = require("./badge");
|
35
|
+
var import_barrage = require("./barrage");
|
35
36
|
var import_button = require("./button");
|
36
37
|
var import_calendar = require("./calendar");
|
37
38
|
var import_card = require("./card");
|
@@ -128,6 +129,7 @@ __reExport(stdin_exports, require("./address-list"), module.exports);
|
|
128
129
|
__reExport(stdin_exports, require("./area"), module.exports);
|
129
130
|
__reExport(stdin_exports, require("./back-top"), module.exports);
|
130
131
|
__reExport(stdin_exports, require("./badge"), module.exports);
|
132
|
+
__reExport(stdin_exports, require("./barrage"), module.exports);
|
131
133
|
__reExport(stdin_exports, require("./button"), module.exports);
|
132
134
|
__reExport(stdin_exports, require("./calendar"), module.exports);
|
133
135
|
__reExport(stdin_exports, require("./card"), module.exports);
|
@@ -216,7 +218,7 @@ __reExport(stdin_exports, require("./toast"), module.exports);
|
|
216
218
|
__reExport(stdin_exports, require("./tree-select"), module.exports);
|
217
219
|
__reExport(stdin_exports, require("./uploader"), module.exports);
|
218
220
|
__reExport(stdin_exports, require("./watermark"), module.exports);
|
219
|
-
const version = "4.
|
221
|
+
const version = "4.4.0";
|
220
222
|
function install(app) {
|
221
223
|
const components = [
|
222
224
|
import_action_bar.ActionBar,
|
@@ -228,6 +230,7 @@ function install(app) {
|
|
228
230
|
import_area.Area,
|
229
231
|
import_back_top.BackTop,
|
230
232
|
import_badge.Badge,
|
233
|
+
import_barrage.Barrage,
|
231
234
|
import_button.Button,
|
232
235
|
import_calendar.Calendar,
|
233
236
|
import_card.Card,
|
@@ -64,8 +64,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
64
64
|
onReplay?: ((...args: any[]) => any) | undefined;
|
65
65
|
}, {
|
66
66
|
scrollable: boolean | null;
|
67
|
-
speed: string | number;
|
68
67
|
delay: string | number;
|
68
|
+
speed: string | number;
|
69
69
|
wrapable: boolean;
|
70
70
|
}>;
|
71
71
|
export default _default;
|
@@ -42,8 +42,8 @@ export declare const NoticeBar: import("../utils").WithInstall<import("vue").Def
|
|
42
42
|
onReplay?: ((...args: any[]) => any) | undefined;
|
43
43
|
}, {
|
44
44
|
scrollable: boolean | null;
|
45
|
-
speed: string | number;
|
46
45
|
delay: string | number;
|
46
|
+
speed: string | number;
|
47
47
|
wrapable: boolean;
|
48
48
|
}>>;
|
49
49
|
export default NoticeBar;
|
@@ -14,6 +14,10 @@ export declare const signatureProps: {
|
|
14
14
|
default: number;
|
15
15
|
};
|
16
16
|
clearButtonText: StringConstructor;
|
17
|
+
backgroundColor: {
|
18
|
+
type: import("vue").PropType<string>;
|
19
|
+
default: string;
|
20
|
+
};
|
17
21
|
confirmButtonText: StringConstructor;
|
18
22
|
};
|
19
23
|
export type SignatureProps = ExtractPropTypes<typeof signatureProps>;
|
@@ -32,6 +36,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
32
36
|
default: number;
|
33
37
|
};
|
34
38
|
clearButtonText: StringConstructor;
|
39
|
+
backgroundColor: {
|
40
|
+
type: import("vue").PropType<string>;
|
41
|
+
default: string;
|
42
|
+
};
|
35
43
|
confirmButtonText: StringConstructor;
|
36
44
|
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "start" | "clear" | "end" | "signing")[], "submit" | "start" | "clear" | "end" | "signing", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
37
45
|
tips: StringConstructor;
|
@@ -48,6 +56,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
48
56
|
default: number;
|
49
57
|
};
|
50
58
|
clearButtonText: StringConstructor;
|
59
|
+
backgroundColor: {
|
60
|
+
type: import("vue").PropType<string>;
|
61
|
+
default: string;
|
62
|
+
};
|
51
63
|
confirmButtonText: StringConstructor;
|
52
64
|
}>> & {
|
53
65
|
onSubmit?: ((...args: any[]) => any) | undefined;
|
@@ -57,6 +69,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
57
69
|
onSigning?: ((...args: any[]) => any) | undefined;
|
58
70
|
}, {
|
59
71
|
type: string;
|
72
|
+
backgroundColor: string;
|
60
73
|
lineWidth: number;
|
61
74
|
penColor: string;
|
62
75
|
}>;
|
@@ -33,6 +33,7 @@ const signatureProps = {
|
|
33
33
|
penColor: (0, import_utils.makeStringProp)("#000"),
|
34
34
|
lineWidth: (0, import_utils.makeNumberProp)(3),
|
35
35
|
clearButtonText: String,
|
36
|
+
backgroundColor: (0, import_utils.makeStringProp)(""),
|
36
37
|
confirmButtonText: String
|
37
38
|
};
|
38
39
|
const hasCanvasSupport = () => {
|
@@ -52,7 +53,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
52
53
|
const state = (0, import_vue2.reactive)({
|
53
54
|
width: 0,
|
54
55
|
height: 0,
|
55
|
-
ctx: null
|
56
|
+
ctx: null,
|
57
|
+
ratio: import_utils.inBrowser ? window.devicePixelRatio : 1
|
56
58
|
});
|
57
59
|
let canvasRect;
|
58
60
|
const isRenderCanvas = import_utils.inBrowser ? hasCanvasSupport() : true;
|
@@ -61,7 +63,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
61
63
|
return false;
|
62
64
|
}
|
63
65
|
state.ctx.beginPath();
|
64
|
-
state.ctx.lineWidth = props.lineWidth;
|
66
|
+
state.ctx.lineWidth = props.lineWidth * state.ratio;
|
65
67
|
state.ctx.strokeStyle = props.penColor;
|
66
68
|
canvasRect = (0, import_use.useRect)(canvasRef);
|
67
69
|
emit("start");
|
@@ -73,8 +75,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
73
75
|
}
|
74
76
|
(0, import_utils.preventDefault)(event);
|
75
77
|
const touch = event.touches[0];
|
76
|
-
const mouseX = touch.clientX - ((canvasRect == null ? void 0 : canvasRect.left) || 0);
|
77
|
-
const mouseY = touch.clientY - ((canvasRect == null ? void 0 : canvasRect.top) || 0);
|
78
|
+
const mouseX = (touch.clientX - ((canvasRect == null ? void 0 : canvasRect.left) || 0)) * state.ratio;
|
79
|
+
const mouseY = (touch.clientY - ((canvasRect == null ? void 0 : canvasRect.top) || 0)) * state.ratio;
|
78
80
|
state.ctx.lineCap = "round";
|
79
81
|
state.ctx.lineJoin = "round";
|
80
82
|
(_a = state.ctx) == null ? void 0 : _a.lineTo(mouseX, mouseY);
|
@@ -91,13 +93,23 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
91
93
|
empty.height = canvas.height;
|
92
94
|
return canvas.toDataURL() === empty.toDataURL();
|
93
95
|
};
|
96
|
+
const setCanvasBgColor = () => {
|
97
|
+
if (state.ctx && props.backgroundColor) {
|
98
|
+
state.ctx.fillStyle = props.backgroundColor;
|
99
|
+
state.ctx.fillRect(0, 0, state.width, state.height);
|
100
|
+
}
|
101
|
+
};
|
94
102
|
const submit = () => {
|
103
|
+
var _a, _b;
|
95
104
|
const canvas = canvasRef.value;
|
96
105
|
if (!canvas) {
|
97
106
|
return;
|
98
107
|
}
|
99
108
|
const isEmpty = isCanvasEmpty(canvas);
|
100
|
-
const image = isEmpty ? "" :
|
109
|
+
const image = isEmpty ? "" : ((_b = (_a = {
|
110
|
+
jpg: () => canvas.toDataURL("image/jpeg", 0.8),
|
111
|
+
jpeg: () => canvas.toDataURL("image/jpeg", 0.8)
|
112
|
+
})[props.type]) == null ? void 0 : _b.call(_a)) || canvas.toDataURL(`image/${props.type}`);
|
101
113
|
emit("submit", {
|
102
114
|
image,
|
103
115
|
canvas
|
@@ -107,6 +119,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
107
119
|
if (state.ctx) {
|
108
120
|
state.ctx.clearRect(0, 0, state.width, state.height);
|
109
121
|
state.ctx.closePath();
|
122
|
+
setCanvasBgColor();
|
110
123
|
}
|
111
124
|
emit("clear");
|
112
125
|
};
|
@@ -114,8 +127,11 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
114
127
|
var _a, _b, _c;
|
115
128
|
if (isRenderCanvas) {
|
116
129
|
state.ctx = (_a = canvasRef.value) == null ? void 0 : _a.getContext("2d");
|
117
|
-
state.width = ((_b = wrapRef.value) == null ? void 0 : _b.offsetWidth) || 0;
|
118
|
-
state.height = ((_c = wrapRef.value) == null ? void 0 : _c.offsetHeight) || 0;
|
130
|
+
state.width = (((_b = wrapRef.value) == null ? void 0 : _b.offsetWidth) || 0) * state.ratio;
|
131
|
+
state.height = (((_c = wrapRef.value) == null ? void 0 : _c.offsetHeight) || 0) * state.ratio;
|
132
|
+
(0, import_vue2.nextTick)(() => {
|
133
|
+
setCanvasBgColor();
|
134
|
+
});
|
119
135
|
}
|
120
136
|
});
|
121
137
|
return () => (0, import_vue.createVNode)("div", {
|
package/lib/signature/index.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:root{--van-signature-padding: var(--van-padding-xs);--van-signature-content-height: 200px;--van-signature-content-background: var(--van-background-2);--van-signature-content-border: 1px dotted #dadada}.van-signature{padding:var(--van-signature-padding)}.van-signature__content{display:flex;justify-content:center;align-items:center;height:var(--van-signature-content-height);background-color:var(--van-signature-content-background);border:var(--van-signature-content-border);border-radius:var(--van-radius-lg);overflow:hidden}.van-signature__footer{display:flex;justify-content:flex-end}.van-signature__footer .van-button{padding:0 var(--van-padding-md);margin-top:var(--van-padding-xs);margin-left:var(--van-padding-xs)}
|
1
|
+
:root{--van-signature-padding: var(--van-padding-xs);--van-signature-content-height: 200px;--van-signature-content-background: var(--van-background-2);--van-signature-content-border: 1px dotted #dadada}.van-signature{padding:var(--van-signature-padding)}.van-signature__content{display:flex;justify-content:center;align-items:center;height:var(--van-signature-content-height);background-color:var(--van-signature-content-background);border:var(--van-signature-content-border);border-radius:var(--van-radius-lg);overflow:hidden}.van-signature__content canvas{width:100%;height:100%}.van-signature__footer{display:flex;justify-content:flex-end}.van-signature__footer .van-button{padding:0 var(--van-padding-md);margin-top:var(--van-padding-xs);margin-left:var(--van-padding-xs)}
|
package/lib/signature/index.d.ts
CHANGED
@@ -13,6 +13,10 @@ export declare const Signature: import("../utils").WithInstall<import("vue").Def
|
|
13
13
|
default: number;
|
14
14
|
};
|
15
15
|
clearButtonText: StringConstructor;
|
16
|
+
backgroundColor: {
|
17
|
+
type: import("vue").PropType<string>;
|
18
|
+
default: string;
|
19
|
+
};
|
16
20
|
confirmButtonText: StringConstructor;
|
17
21
|
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "start" | "clear" | "end" | "signing")[], "submit" | "start" | "clear" | "end" | "signing", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
18
22
|
tips: StringConstructor;
|
@@ -29,6 +33,10 @@ export declare const Signature: import("../utils").WithInstall<import("vue").Def
|
|
29
33
|
default: number;
|
30
34
|
};
|
31
35
|
clearButtonText: StringConstructor;
|
36
|
+
backgroundColor: {
|
37
|
+
type: import("vue").PropType<string>;
|
38
|
+
default: string;
|
39
|
+
};
|
32
40
|
confirmButtonText: StringConstructor;
|
33
41
|
}>> & {
|
34
42
|
onSubmit?: ((...args: any[]) => any) | undefined;
|
@@ -38,6 +46,7 @@ export declare const Signature: import("../utils").WithInstall<import("vue").Def
|
|
38
46
|
onSigning?: ((...args: any[]) => any) | undefined;
|
39
47
|
}, {
|
40
48
|
type: string;
|
49
|
+
backgroundColor: string;
|
41
50
|
lineWidth: number;
|
42
51
|
penColor: string;
|
43
52
|
}>>;
|
@@ -38,6 +38,7 @@ export declare const uploaderProps: {
|
|
38
38
|
type: BooleanConstructor;
|
39
39
|
default: true;
|
40
40
|
};
|
41
|
+
reupload: BooleanConstructor;
|
41
42
|
afterRead: PropType<UploaderAfterRead>;
|
42
43
|
showUpload: {
|
43
44
|
type: BooleanConstructor;
|
@@ -100,6 +101,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
100
101
|
type: BooleanConstructor;
|
101
102
|
default: true;
|
102
103
|
};
|
104
|
+
reupload: BooleanConstructor;
|
103
105
|
afterRead: PropType<UploaderAfterRead>;
|
104
106
|
showUpload: {
|
105
107
|
type: BooleanConstructor;
|
@@ -125,7 +127,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
125
127
|
type: PropType<UploaderMaxSize>;
|
126
128
|
default: number;
|
127
129
|
};
|
128
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview")[], "update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
130
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview" | "clickReupload")[], "update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview" | "clickReupload", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
129
131
|
name: {
|
130
132
|
type: (NumberConstructor | StringConstructor)[];
|
131
133
|
default: string;
|
@@ -160,6 +162,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
160
162
|
type: BooleanConstructor;
|
161
163
|
default: true;
|
162
164
|
};
|
165
|
+
reupload: BooleanConstructor;
|
163
166
|
afterRead: PropType<UploaderAfterRead>;
|
164
167
|
showUpload: {
|
165
168
|
type: BooleanConstructor;
|
@@ -192,6 +195,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
192
195
|
onClickUpload?: ((...args: any[]) => any) | undefined;
|
193
196
|
onClosePreview?: ((...args: any[]) => any) | undefined;
|
194
197
|
onClickPreview?: ((...args: any[]) => any) | undefined;
|
198
|
+
onClickReupload?: ((...args: any[]) => any) | undefined;
|
195
199
|
}, {
|
196
200
|
name: string | number;
|
197
201
|
accept: string;
|
@@ -205,6 +209,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
205
209
|
resultType: UploaderResultType;
|
206
210
|
uploadIcon: string;
|
207
211
|
deletable: boolean;
|
212
|
+
reupload: boolean;
|
208
213
|
showUpload: boolean;
|
209
214
|
previewImage: boolean;
|
210
215
|
previewFullImage: boolean;
|
package/lib/uploader/Uploader.js
CHANGED
@@ -54,6 +54,7 @@ const uploaderProps = {
|
|
54
54
|
uploadIcon: (0, import_utils.makeStringProp)("photograph"),
|
55
55
|
uploadText: String,
|
56
56
|
deletable: import_utils.truthProp,
|
57
|
+
reupload: Boolean,
|
57
58
|
afterRead: Function,
|
58
59
|
showUpload: import_utils.truthProp,
|
59
60
|
modelValue: (0, import_utils.makeArrayProp)(),
|
@@ -71,13 +72,14 @@ const uploaderProps = {
|
|
71
72
|
var stdin_default = (0, import_vue2.defineComponent)({
|
72
73
|
name: import_utils2.name,
|
73
74
|
props: uploaderProps,
|
74
|
-
emits: ["delete", "oversize", "clickUpload", "closePreview", "clickPreview", "update:modelValue"],
|
75
|
+
emits: ["delete", "oversize", "clickUpload", "closePreview", "clickPreview", "clickReupload", "update:modelValue"],
|
75
76
|
setup(props, {
|
76
77
|
emit,
|
77
78
|
slots
|
78
79
|
}) {
|
79
80
|
const inputRef = (0, import_vue2.ref)();
|
80
81
|
const urls = [];
|
82
|
+
const reuploadIndex = (0, import_vue2.ref)(-1);
|
81
83
|
const getDetail = (index = props.modelValue.length) => ({
|
82
84
|
name: props.name,
|
83
85
|
index
|
@@ -103,7 +105,14 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
103
105
|
}
|
104
106
|
}
|
105
107
|
items = (0, import_vue2.reactive)(items);
|
106
|
-
|
108
|
+
if (reuploadIndex.value > -1) {
|
109
|
+
const arr = [...props.modelValue];
|
110
|
+
arr.splice(reuploadIndex.value, 1, items);
|
111
|
+
emit("update:modelValue", arr);
|
112
|
+
reuploadIndex.value = -1;
|
113
|
+
} else {
|
114
|
+
emit("update:modelValue", [...props.modelValue, ...(0, import_utils.toArray)(items)]);
|
115
|
+
}
|
107
116
|
if (props.afterRead) {
|
108
117
|
props.afterRead(items, getDetail());
|
109
118
|
}
|
@@ -204,15 +213,20 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
204
213
|
emit("update:modelValue", fileList);
|
205
214
|
emit("delete", item, getDetail(index));
|
206
215
|
};
|
216
|
+
const reuploadImage = (index) => {
|
217
|
+
chooseFile();
|
218
|
+
reuploadIndex.value = index;
|
219
|
+
};
|
207
220
|
const renderPreviewItem = (item, index) => {
|
208
|
-
const needPickData = ["imageFit", "deletable", "previewSize", "beforeDelete"];
|
221
|
+
const needPickData = ["imageFit", "deletable", "reupload", "previewSize", "beforeDelete"];
|
209
222
|
const previewData = (0, import_utils.extend)((0, import_utils.pick)(props, needPickData), (0, import_utils.pick)(item, needPickData, true));
|
210
223
|
return (0, import_vue.createVNode)(import_UploaderPreviewItem.default, (0, import_vue.mergeProps)({
|
211
224
|
"item": item,
|
212
225
|
"index": index,
|
213
|
-
"onClick": () => emit("clickPreview", item, getDetail(index)),
|
226
|
+
"onClick": () => emit(props.reupload ? "clickReupload" : "clickPreview", item, getDetail(index)),
|
214
227
|
"onDelete": () => deleteFile(item, index),
|
215
|
-
"onPreview": () => previewImage(item)
|
228
|
+
"onPreview": () => previewImage(item),
|
229
|
+
"onReupload": () => reuploadImage(index)
|
216
230
|
}, (0, import_utils.pick)(props, ["name", "lazyLoad"]), previewData), (0, import_utils.pick)(slots, ["preview-cover", "preview-delete"]));
|
217
231
|
};
|
218
232
|
const renderPreviewList = () => {
|
@@ -222,24 +236,25 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
222
236
|
};
|
223
237
|
const onClickUpload = (event) => emit("clickUpload", event);
|
224
238
|
const renderUpload = () => {
|
225
|
-
if (props.modelValue.length >= +props.maxCount) {
|
239
|
+
if (props.modelValue.length >= +props.maxCount && !props.reupload) {
|
226
240
|
return;
|
227
241
|
}
|
242
|
+
const hideUploader = props.modelValue.length >= +props.maxCount && props.reupload;
|
228
243
|
const Input = props.readonly ? null : (0, import_vue.createVNode)("input", {
|
229
244
|
"ref": inputRef,
|
230
245
|
"type": "file",
|
231
246
|
"class": (0, import_utils2.bem)("input"),
|
232
247
|
"accept": props.accept,
|
233
248
|
"capture": props.capture,
|
234
|
-
"multiple": props.multiple,
|
249
|
+
"multiple": props.multiple && reuploadIndex.value === -1,
|
235
250
|
"disabled": props.disabled,
|
236
251
|
"onChange": onChange
|
237
252
|
}, null);
|
238
253
|
if (slots.default) {
|
239
|
-
return (0, import_vue.createVNode)("div", {
|
254
|
+
return (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", {
|
240
255
|
"class": (0, import_utils2.bem)("input-wrapper"),
|
241
256
|
"onClick": onClickUpload
|
242
|
-
}, [slots.default(), Input]);
|
257
|
+
}, [slots.default(), Input]), [[import_vue.vShow, !hideUploader]]);
|
243
258
|
}
|
244
259
|
return (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", {
|
245
260
|
"class": (0, import_utils2.bem)("upload", {
|
@@ -252,7 +267,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
252
267
|
"class": (0, import_utils2.bem)("upload-icon")
|
253
268
|
}, null), props.uploadText && (0, import_vue.createVNode)("span", {
|
254
269
|
"class": (0, import_utils2.bem)("upload-text")
|
255
|
-
}, [props.uploadText]), Input]), [[import_vue.vShow, props.showUpload]]);
|
270
|
+
}, [props.uploadText]), Input]), [[import_vue.vShow, props.showUpload && !hideUploader]]);
|
256
271
|
};
|
257
272
|
const chooseFile = () => {
|
258
273
|
if (inputRef.value && !props.disabled) {
|
@@ -12,9 +12,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
12
12
|
imageFit: PropType<ImageFit>;
|
13
13
|
lazyLoad: BooleanConstructor;
|
14
14
|
deletable: BooleanConstructor;
|
15
|
+
reupload: BooleanConstructor;
|
15
16
|
previewSize: PropType<Numeric | [Numeric, Numeric]>;
|
16
17
|
beforeDelete: PropType<Interceptor>;
|
17
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "preview")[], "delete" | "preview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
18
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "reupload" | "preview")[], "delete" | "reupload" | "preview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
18
19
|
name: (NumberConstructor | StringConstructor)[];
|
19
20
|
item: {
|
20
21
|
type: PropType<UploaderFileListItem>;
|
@@ -24,13 +25,16 @@ declare const _default: import("vue").DefineComponent<{
|
|
24
25
|
imageFit: PropType<ImageFit>;
|
25
26
|
lazyLoad: BooleanConstructor;
|
26
27
|
deletable: BooleanConstructor;
|
28
|
+
reupload: BooleanConstructor;
|
27
29
|
previewSize: PropType<Numeric | [Numeric, Numeric]>;
|
28
30
|
beforeDelete: PropType<Interceptor>;
|
29
31
|
}>> & {
|
30
32
|
onDelete?: ((...args: any[]) => any) | undefined;
|
33
|
+
onReupload?: ((...args: any[]) => any) | undefined;
|
31
34
|
onPreview?: ((...args: any[]) => any) | undefined;
|
32
35
|
}, {
|
33
36
|
lazyLoad: boolean;
|
34
37
|
deletable: boolean;
|
38
|
+
reupload: boolean;
|
35
39
|
}>;
|
36
40
|
export default _default;
|
@@ -35,10 +35,11 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
35
35
|
imageFit: String,
|
36
36
|
lazyLoad: Boolean,
|
37
37
|
deletable: Boolean,
|
38
|
+
reupload: Boolean,
|
38
39
|
previewSize: [Number, String, Array],
|
39
40
|
beforeDelete: Function
|
40
41
|
},
|
41
|
-
emits: ["delete", "preview"],
|
42
|
+
emits: ["delete", "preview", "reupload"],
|
42
43
|
setup(props, {
|
43
44
|
emit,
|
44
45
|
slots
|
@@ -80,6 +81,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
80
81
|
});
|
81
82
|
};
|
82
83
|
const onPreview = () => emit("preview");
|
84
|
+
const onReupload = () => emit("reupload");
|
83
85
|
const renderDeleteIcon = () => {
|
84
86
|
if (props.deletable && props.item.status !== "uploading") {
|
85
87
|
const slot = slots["preview-delete"];
|
@@ -115,7 +117,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
115
117
|
item,
|
116
118
|
lazyLoad,
|
117
119
|
imageFit,
|
118
|
-
previewSize
|
120
|
+
previewSize,
|
121
|
+
reupload
|
119
122
|
} = props;
|
120
123
|
if ((0, import_utils.isImageFile)(item)) {
|
121
124
|
return (0, import_vue.createVNode)(import_image.Image, {
|
@@ -125,7 +128,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
125
128
|
"width": Array.isArray(previewSize) ? previewSize[0] : previewSize,
|
126
129
|
"height": Array.isArray(previewSize) ? previewSize[1] : previewSize,
|
127
130
|
"lazyLoad": lazyLoad,
|
128
|
-
"onClick": onPreview
|
131
|
+
"onClick": reupload ? onReupload : onPreview
|
129
132
|
}, {
|
130
133
|
default: renderCover
|
131
134
|
});
|
package/lib/uploader/index.d.ts
CHANGED
@@ -34,6 +34,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
|
|
34
34
|
type: BooleanConstructor;
|
35
35
|
default: true;
|
36
36
|
};
|
37
|
+
reupload: BooleanConstructor;
|
37
38
|
afterRead: import("vue").PropType<import("./types").UploaderAfterRead>;
|
38
39
|
showUpload: {
|
39
40
|
type: BooleanConstructor;
|
@@ -59,7 +60,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
|
|
59
60
|
type: import("vue").PropType<import("./types").UploaderMaxSize>;
|
60
61
|
default: number;
|
61
62
|
};
|
62
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview")[], "update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
63
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview" | "clickReupload")[], "update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview" | "clickReupload", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
63
64
|
name: {
|
64
65
|
type: (NumberConstructor | StringConstructor)[];
|
65
66
|
default: string;
|
@@ -94,6 +95,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
|
|
94
95
|
type: BooleanConstructor;
|
95
96
|
default: true;
|
96
97
|
};
|
98
|
+
reupload: BooleanConstructor;
|
97
99
|
afterRead: import("vue").PropType<import("./types").UploaderAfterRead>;
|
98
100
|
showUpload: {
|
99
101
|
type: BooleanConstructor;
|
@@ -126,6 +128,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
|
|
126
128
|
onClickUpload?: ((...args: any[]) => any) | undefined;
|
127
129
|
onClosePreview?: ((...args: any[]) => any) | undefined;
|
128
130
|
onClickPreview?: ((...args: any[]) => any) | undefined;
|
131
|
+
onClickReupload?: ((...args: any[]) => any) | undefined;
|
129
132
|
}, {
|
130
133
|
name: string | number;
|
131
134
|
accept: string;
|
@@ -139,6 +142,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
|
|
139
142
|
resultType: import("./types").UploaderResultType;
|
140
143
|
uploadIcon: string;
|
141
144
|
deletable: boolean;
|
145
|
+
reupload: boolean;
|
142
146
|
showUpload: boolean;
|
143
147
|
previewImage: boolean;
|
144
148
|
previewFullImage: boolean;
|