vant 4.3.1 → 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/checkbox/Checker.d.ts +2 -0
- package/es/checkbox/Checker.mjs +13 -1
- 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/date-picker/utils.d.ts +1 -1
- 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/field/Field.mjs +4 -0
- package/es/image-preview/ImagePreviewItem.mjs +60 -26
- 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/picker-group/PickerGroup.d.ts +15 -1
- package/es/picker-group/PickerGroup.mjs +8 -6
- package/es/picker-group/index.d.ts +11 -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/step/index.css +1 -1
- package/es/submit-bar/index.css +1 -1
- package/es/tabs/Tabs.mjs +8 -2
- package/es/tabs/utils.d.ts +2 -2
- package/es/tabs/utils.mjs +14 -4
- 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/checkbox/Checker.d.ts +2 -0
- package/lib/checkbox/Checker.js +13 -1
- 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/date-picker/utils.d.ts +1 -1
- 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/field/Field.js +4 -0
- package/lib/image-preview/ImagePreviewItem.js +59 -25
- 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/picker-group/PickerGroup.d.ts +15 -1
- package/lib/picker-group/PickerGroup.js +6 -4
- package/lib/picker-group/index.d.ts +11 -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/step/index.css +1 -1
- package/lib/submit-bar/index.css +1 -1
- package/lib/tabs/Tabs.js +8 -2
- package/lib/tabs/utils.d.ts +2 -2
- package/lib/tabs/utils.js +13 -3
- 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 +611 -358
- package/lib/vant.es.js +612 -359
- package/lib/vant.js +611 -358
- 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;
|
@@ -6,6 +6,10 @@ export declare const pickerGroupProps: {
|
|
6
6
|
type: import("vue").PropType<string[]>;
|
7
7
|
default: () => never[];
|
8
8
|
};
|
9
|
+
activeTab: {
|
10
|
+
type: (NumberConstructor | StringConstructor)[];
|
11
|
+
default: number;
|
12
|
+
};
|
9
13
|
nextStepText: StringConstructor;
|
10
14
|
} & {
|
11
15
|
title: StringConstructor;
|
@@ -18,16 +22,24 @@ declare const _default: import("vue").DefineComponent<{
|
|
18
22
|
type: import("vue").PropType<string[]>;
|
19
23
|
default: () => never[];
|
20
24
|
};
|
25
|
+
activeTab: {
|
26
|
+
type: (NumberConstructor | StringConstructor)[];
|
27
|
+
default: number;
|
28
|
+
};
|
21
29
|
nextStepText: StringConstructor;
|
22
30
|
} & {
|
23
31
|
title: StringConstructor;
|
24
32
|
cancelButtonText: StringConstructor;
|
25
33
|
confirmButtonText: StringConstructor;
|
26
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm")[], "cancel" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
34
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm" | "update:activeTab")[], "cancel" | "confirm" | "update:activeTab", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
27
35
|
tabs: {
|
28
36
|
type: import("vue").PropType<string[]>;
|
29
37
|
default: () => never[];
|
30
38
|
};
|
39
|
+
activeTab: {
|
40
|
+
type: (NumberConstructor | StringConstructor)[];
|
41
|
+
default: number;
|
42
|
+
};
|
31
43
|
nextStepText: StringConstructor;
|
32
44
|
} & {
|
33
45
|
title: StringConstructor;
|
@@ -36,7 +48,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
36
48
|
}>> & {
|
37
49
|
onCancel?: ((...args: any[]) => any) | undefined;
|
38
50
|
onConfirm?: ((...args: any[]) => any) | undefined;
|
51
|
+
"onUpdate:activeTab"?: ((...args: any[]) => any) | undefined;
|
39
52
|
}, {
|
40
53
|
tabs: string[];
|
54
|
+
activeTab: string | number;
|
41
55
|
}>;
|
42
56
|
export default _default;
|
@@ -36,6 +36,7 @@ var import_vue = require("vue");
|
|
36
36
|
var import_vue2 = require("vue");
|
37
37
|
var import_utils = require("../utils");
|
38
38
|
var import_use = require("@vant/use");
|
39
|
+
var import_use_sync_prop_ref = require("../composables/use-sync-prop-ref");
|
39
40
|
var import_tab = require("../tab");
|
40
41
|
var import_tabs = require("../tabs");
|
41
42
|
var import_PickerToolbar = __toESM(require("../picker/PickerToolbar"));
|
@@ -43,26 +44,27 @@ const [name, bem] = (0, import_utils.createNamespace)("picker-group");
|
|
43
44
|
const PICKER_GROUP_KEY = Symbol(name);
|
44
45
|
const pickerGroupProps = (0, import_utils.extend)({
|
45
46
|
tabs: (0, import_utils.makeArrayProp)(),
|
47
|
+
activeTab: (0, import_utils.makeNumericProp)(0),
|
46
48
|
nextStepText: String
|
47
49
|
}, import_PickerToolbar.pickerToolbarProps);
|
48
50
|
var stdin_default = (0, import_vue2.defineComponent)({
|
49
51
|
name,
|
50
52
|
props: pickerGroupProps,
|
51
|
-
emits: ["confirm", "cancel"],
|
53
|
+
emits: ["confirm", "cancel", "update:activeTab"],
|
52
54
|
setup(props, {
|
53
55
|
emit,
|
54
56
|
slots
|
55
57
|
}) {
|
56
|
-
const activeTab = (0,
|
58
|
+
const activeTab = (0, import_use_sync_prop_ref.useSyncPropRef)(() => props.activeTab, (value) => emit("update:activeTab", value));
|
57
59
|
const {
|
58
60
|
children,
|
59
61
|
linkChildren
|
60
62
|
} = (0, import_use.useChildren)(PICKER_GROUP_KEY);
|
61
63
|
linkChildren();
|
62
|
-
const showNextButton = () => activeTab.value < props.tabs.length - 1 && props.nextStepText;
|
64
|
+
const showNextButton = () => +activeTab.value < props.tabs.length - 1 && props.nextStepText;
|
63
65
|
const onConfirm = () => {
|
64
66
|
if (showNextButton()) {
|
65
|
-
activeTab.value
|
67
|
+
activeTab.value = +activeTab.value + 1;
|
66
68
|
} else {
|
67
69
|
emit("confirm", children.map((item) => item.confirm()));
|
68
70
|
}
|
@@ -4,16 +4,24 @@ export declare const PickerGroup: import("../utils").WithInstall<import("vue").D
|
|
4
4
|
type: import("vue").PropType<string[]>;
|
5
5
|
default: () => never[];
|
6
6
|
};
|
7
|
+
activeTab: {
|
8
|
+
type: (NumberConstructor | StringConstructor)[];
|
9
|
+
default: number;
|
10
|
+
};
|
7
11
|
nextStepText: StringConstructor;
|
8
12
|
} & {
|
9
13
|
title: StringConstructor;
|
10
14
|
cancelButtonText: StringConstructor;
|
11
15
|
confirmButtonText: StringConstructor;
|
12
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm")[], "cancel" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
16
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm" | "update:activeTab")[], "cancel" | "confirm" | "update:activeTab", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
13
17
|
tabs: {
|
14
18
|
type: import("vue").PropType<string[]>;
|
15
19
|
default: () => never[];
|
16
20
|
};
|
21
|
+
activeTab: {
|
22
|
+
type: (NumberConstructor | StringConstructor)[];
|
23
|
+
default: number;
|
24
|
+
};
|
17
25
|
nextStepText: StringConstructor;
|
18
26
|
} & {
|
19
27
|
title: StringConstructor;
|
@@ -22,8 +30,10 @@ export declare const PickerGroup: import("../utils").WithInstall<import("vue").D
|
|
22
30
|
}>> & {
|
23
31
|
onCancel?: ((...args: any[]) => any) | undefined;
|
24
32
|
onConfirm?: ((...args: any[]) => any) | undefined;
|
33
|
+
"onUpdate:activeTab"?: ((...args: any[]) => any) | undefined;
|
25
34
|
}, {
|
26
35
|
tabs: string[];
|
36
|
+
activeTab: string | number;
|
27
37
|
}>>;
|
28
38
|
export default PickerGroup;
|
29
39
|
export { pickerGroupProps } from './PickerGroup';
|
@@ -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
|
}>>;
|
package/lib/step/index.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:root{--van-step-text-color: var(--van-text-color-2);--van-step-active-color: var(--van-primary-color);--van-step-process-text-color: var(--van-text-color);--van-step-font-size: var(--van-font-size-md);--van-step-line-color: var(--van-border-color);--van-step-finish-line-color: var(--van-primary-color);--van-step-finish-text-color: var(--van-text-color);--van-step-icon-size: 12px;--van-step-circle-size: 5px;--van-step-circle-color: var(--van-gray-6);--van-step-horizontal-title-font-size: var(--van-font-size-sm)}.van-step{position:relative;flex:1;color:var(--van-step-text-color);font-size:var(--van-step-font-size)}.van-step__circle{display:block;width:var(--van-step-circle-size);height:var(--van-step-circle-size);background-color:var(--van-step-circle-color);border-radius:50%}.van-step__line{position:absolute;background-color:var(--van-step-line-color);transition:background-color var(--van-duration-base)}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child{position:absolute;right:1px;width:auto}.van-step--horizontal:last-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child .van-step__circle-container{right:-9px;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:30px;left:calc(var(--van-padding-xs) * -1);z-index:1;padding:0 var(--van-padding-xs);background-color:var(--van-background-2);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:3px;font-size:var(--van-step-horizontal-title-font-size);transform:translate(-50%)}.van-step--horizontal .van-step__line{top:30px;left:0;width:100%;height:1px}.van-step--horizontal .van-step__icon{display:block;font-size:var(--van-step-icon-size)}.van-step--horizontal .van-step--process{color:var(--van-step-process-text-color)}.van-step--vertical{display:block;float:none;padding:10px 10px 10px 0;line-height:var(--van-line-height-sm)}.van-step--vertical:not(:last-child):after{border-bottom-width:1px}.van-step--vertical .van-step__circle-container{position:absolute;top:19px;left:-15px;z-index:1;font-size:var(--van-step-icon-size);line-height:1;transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:16px;left:-15px;width:1px;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:var(--van-step-finish-text-color)}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:var(--van-step-finish-line-color)}.van-step__icon,.van-step__title{transition:color var(--van-duration-base)}.van-step__icon--active,.van-step__title--active,.van-step__icon--finish,.van-step__title--finish{color:var(--van-step-active-color)}
|
1
|
+
:root{--van-step-text-color: var(--van-text-color-2);--van-step-active-color: var(--van-primary-color);--van-step-process-text-color: var(--van-text-color);--van-step-font-size: var(--van-font-size-md);--van-step-line-color: var(--van-border-color);--van-step-finish-line-color: var(--van-primary-color);--van-step-finish-text-color: var(--van-text-color);--van-step-icon-size: 12px;--van-step-circle-size: 5px;--van-step-circle-color: var(--van-gray-6);--van-step-horizontal-title-font-size: var(--van-font-size-sm)}.van-step{position:relative;flex:1;color:var(--van-step-text-color);font-size:var(--van-step-font-size)}.van-step__circle{display:block;width:var(--van-step-circle-size);height:var(--van-step-circle-size);background-color:var(--van-step-circle-color);border-radius:50%}.van-step__line{position:absolute;background-color:var(--van-step-line-color);transition:background-color var(--van-duration-base)}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child:not(:first-child){position:absolute;right:1px;width:auto}.van-step--horizontal:last-child:not(:first-child) .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child:not(:first-child) .van-step__circle-container{right:-9px;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:30px;left:calc(var(--van-padding-xs) * -1);z-index:1;padding:0 var(--van-padding-xs);background-color:var(--van-background-2);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:3px;font-size:var(--van-step-horizontal-title-font-size);transform:translate(-50%)}.van-step--horizontal .van-step__line{top:30px;left:0;width:100%;height:1px}.van-step--horizontal .van-step__icon{display:block;font-size:var(--van-step-icon-size)}.van-step--horizontal .van-step--process{color:var(--van-step-process-text-color)}.van-step--vertical{display:block;float:none;padding:10px 10px 10px 0;line-height:var(--van-line-height-sm)}.van-step--vertical:not(:last-child):after{border-bottom-width:1px}.van-step--vertical .van-step__circle-container{position:absolute;top:19px;left:-15px;z-index:1;font-size:var(--van-step-icon-size);line-height:1;transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:16px;left:-15px;width:1px;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:var(--van-step-finish-text-color)}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:var(--van-step-finish-line-color)}.van-step__icon,.van-step__title{transition:color var(--van-duration-base)}.van-step__icon--active,.van-step__title--active,.van-step__icon--finish,.van-step__title--finish{color:var(--van-step-active-color)}
|
package/lib/submit-bar/index.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:root{--van-submit-bar-height: 50px;--van-submit-bar-z-index: 100;--van-submit-bar-background: var(--van-background-2);--van-submit-bar-button-width: 110px;--van-submit-bar-price-color: var(--van-danger-color);--van-submit-bar-price-font-size: var(--van-font-size-sm);--van-submit-bar-price-integer-font-size: 20px;--van-submit-bar-price-font: var(--van-price-font);--van-submit-bar-
|
1
|
+
:root{--van-submit-bar-height: 50px;--van-submit-bar-z-index: 100;--van-submit-bar-background: var(--van-background-2);--van-submit-bar-button-width: 110px;--van-submit-bar-price-color: var(--van-danger-color);--van-submit-bar-price-font-size: var(--van-font-size-sm);--van-submit-bar-price-integer-font-size: 20px;--van-submit-bar-price-font: var(--van-price-font);--van-submit-bar-text-color: var(--van-text-color);--van-submit-bar-text-font-size: var(--van-font-size-md);--van-submit-bar-tip-padding: var(--van-padding-xs) var(--van-padding-sm);--van-submit-bar-tip-font-size: var(--van-font-size-sm);--van-submit-bar-tip-line-height: 1.5;--van-submit-bar-tip-color: var(--van-orange-dark);--van-submit-bar-tip-background: var(--van-orange-light);--van-submit-bar-tip-icon-size: 12px;--van-submit-bar-button-height: 40px;--van-submit-bar-padding: 0 var(--van-padding-md)}.van-submit-bar{position:fixed;bottom:0;left:0;z-index:var(--van-submit-bar-z-index);width:100%;background:var(--van-submit-bar-background);-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:var(--van-submit-bar-tip-padding);color:var(--van-submit-bar-tip-color);font-size:var(--van-submit-bar-tip-font-size);line-height:var(--van-submit-bar-tip-line-height);background:var(--van-submit-bar-tip-background)}.van-submit-bar__tip-icon{margin-right:var(--van-padding-base);font-size:var(--van-submit-bar-tip-icon-size);vertical-align:middle}.van-submit-bar__tip-text{vertical-align:middle}.van-submit-bar__bar{display:flex;align-items:center;justify-content:flex-end;height:var(--van-submit-bar-height);padding:var(--van-submit-bar-padding);font-size:var(--van-submit-bar-text-font-size)}.van-submit-bar__text{flex:1;padding-right:var(--van-padding-sm);color:var(--van-submit-bar-text-color);text-align:right}.van-submit-bar__text span{display:inline-block}.van-submit-bar__suffix-label{margin-left:var(--van-padding-base);font-weight:var(--van-font-bold)}.van-submit-bar__price{color:var(--van-submit-bar-price-color);font-weight:var(--van-font-bold);font-size:var(--van-submit-bar-price-font-size);margin-left:var(--van-padding-base)}.van-submit-bar__price-integer{font-size:var(--van-submit-bar-price-integer-font-size);font-family:var(--van-submit-bar-price-font)}.van-submit-bar__button{width:var(--van-submit-bar-button-width);height:var(--van-submit-bar-button-height);font-weight:var(--van-font-bold);border:none}.van-submit-bar__button--danger{background:var(--van-gradient-red)}
|
package/lib/tabs/Tabs.js
CHANGED
@@ -80,6 +80,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
80
80
|
let tabHeight;
|
81
81
|
let lockScroll;
|
82
82
|
let stickyFixed;
|
83
|
+
let cancelScrollLeftToRaf;
|
84
|
+
let cancelScrollTopToRaf;
|
83
85
|
const root = (0, import_vue2.ref)();
|
84
86
|
const navRef = (0, import_vue2.ref)();
|
85
87
|
const wrapRef = (0, import_vue2.ref)();
|
@@ -127,7 +129,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
127
129
|
}
|
128
130
|
const title = titles[state.currentIndex].$el;
|
129
131
|
const to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;
|
130
|
-
|
132
|
+
if (cancelScrollLeftToRaf)
|
133
|
+
cancelScrollLeftToRaf();
|
134
|
+
cancelScrollLeftToRaf = (0, import_utils2.scrollLeftTo)(nav, to, immediate ? 0 : +props.duration);
|
131
135
|
};
|
132
136
|
const setLine = () => {
|
133
137
|
const shouldAnimate = state.inited;
|
@@ -203,7 +207,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
203
207
|
if (target && scroller.value) {
|
204
208
|
const to = (0, import_utils.getElementTop)(target, scroller.value) - scrollOffset.value;
|
205
209
|
lockScroll = true;
|
206
|
-
|
210
|
+
if (cancelScrollTopToRaf)
|
211
|
+
cancelScrollTopToRaf();
|
212
|
+
cancelScrollTopToRaf = (0, import_utils2.scrollTopTo)(scroller.value, to, immediate ? 0 : +props.duration, () => {
|
207
213
|
lockScroll = false;
|
208
214
|
});
|
209
215
|
}
|
package/lib/tabs/utils.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
import { ScrollElement } from '../utils';
|
2
|
-
export declare function scrollLeftTo(scroller: HTMLElement, to: number, duration: number): void;
|
3
|
-
export declare function scrollTopTo(scroller: ScrollElement, to: number, duration: number, callback: () => void): void;
|
2
|
+
export declare function scrollLeftTo(scroller: HTMLElement, to: number, duration: number): () => void;
|
3
|
+
export declare function scrollTopTo(scroller: ScrollElement, to: number, duration: number, callback: () => void): () => void;
|
package/lib/tabs/utils.js
CHANGED
@@ -24,22 +24,31 @@ module.exports = __toCommonJS(stdin_exports);
|
|
24
24
|
var import_use = require("@vant/use");
|
25
25
|
var import_utils = require("../utils");
|
26
26
|
function scrollLeftTo(scroller, to, duration) {
|
27
|
+
let rafId;
|
27
28
|
let count = 0;
|
28
29
|
const from = scroller.scrollLeft;
|
29
30
|
const frames = duration === 0 ? 1 : Math.round(duration * 1e3 / 16);
|
31
|
+
function cancel() {
|
32
|
+
(0, import_use.cancelRaf)(rafId);
|
33
|
+
}
|
30
34
|
function animate() {
|
31
35
|
scroller.scrollLeft += (to - from) / frames;
|
32
36
|
if (++count < frames) {
|
33
|
-
(0, import_use.raf)(animate);
|
37
|
+
rafId = (0, import_use.raf)(animate);
|
34
38
|
}
|
35
39
|
}
|
36
40
|
animate();
|
41
|
+
return cancel;
|
37
42
|
}
|
38
43
|
function scrollTopTo(scroller, to, duration, callback) {
|
44
|
+
let rafId;
|
39
45
|
let current = (0, import_utils.getScrollTop)(scroller);
|
40
46
|
const isDown = current < to;
|
41
47
|
const frames = duration === 0 ? 1 : Math.round(duration * 1e3 / 16);
|
42
48
|
const step = (to - current) / frames;
|
49
|
+
function cancel() {
|
50
|
+
(0, import_use.cancelRaf)(rafId);
|
51
|
+
}
|
43
52
|
function animate() {
|
44
53
|
current += step;
|
45
54
|
if (isDown && current > to || !isDown && current < to) {
|
@@ -47,10 +56,11 @@ function scrollTopTo(scroller, to, duration, callback) {
|
|
47
56
|
}
|
48
57
|
(0, import_utils.setScrollTop)(scroller, current);
|
49
58
|
if (isDown && current < to || !isDown && current > to) {
|
50
|
-
(0, import_use.raf)(animate);
|
59
|
+
rafId = (0, import_use.raf)(animate);
|
51
60
|
} else if (callback) {
|
52
|
-
(0, import_use.raf)(callback);
|
61
|
+
rafId = (0, import_use.raf)(callback);
|
53
62
|
}
|
54
63
|
}
|
55
64
|
animate();
|
65
|
+
return cancel;
|
56
66
|
}
|
@@ -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;
|