sard-uniapp 1.19.0 → 1.19.1
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/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [1.19.1](https://github.com/sutras/sard-uniapp/compare/v1.19.0...v1.19.1) (2025-06-11)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* dropdown 新增 before-close 属性 ([fca24ac](https://github.com/sutras/sard-uniapp/commit/fca24ac536bc3840fbc9562fde4992f864968080))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
# [1.19.0](https://github.com/sutras/sard-uniapp/compare/v1.18.0...v1.19.0) (2025-06-10)
|
|
2
11
|
|
|
3
12
|
|
package/README.md
CHANGED
|
@@ -24,7 +24,8 @@ export interface DropdownOption {
|
|
|
24
24
|
value?: any;
|
|
25
25
|
}
|
|
26
26
|
export type DropdownCloseType = 'overlay' | 'away' | 'other-button' | 'option' | 'button';
|
|
27
|
-
export type DropdownBeforeClose = (type: DropdownCloseType) => any
|
|
27
|
+
export type DropdownBeforeClose = (type: DropdownCloseType) => any;
|
|
28
|
+
export type DropdownBeforeOpen = () => any;
|
|
28
29
|
export interface DropdownItemProps {
|
|
29
30
|
rootStyle?: StyleValue;
|
|
30
31
|
rootClass?: string;
|
|
@@ -37,6 +38,7 @@ export interface DropdownItemProps {
|
|
|
37
38
|
separator?: string;
|
|
38
39
|
placeholder?: string;
|
|
39
40
|
beforeClose?: DropdownBeforeClose;
|
|
41
|
+
beforeOpen?: DropdownBeforeOpen;
|
|
40
42
|
}
|
|
41
43
|
export declare const defaultDropdownItemProps: {
|
|
42
44
|
options: () => never[];
|
|
@@ -130,7 +130,8 @@ export default _defineComponent({
|
|
|
130
130
|
visible: { type: Boolean, required: false },
|
|
131
131
|
separator: { type: String, required: false },
|
|
132
132
|
placeholder: { type: String, required: false },
|
|
133
|
-
beforeClose: { type: Function, required: false }
|
|
133
|
+
beforeClose: { type: Function, required: false },
|
|
134
|
+
beforeOpen: { type: Function, required: false }
|
|
134
135
|
}, defaultDropdownItemProps),
|
|
135
136
|
emits: ["update:model-value", "change", "update:visible", "before-enter", "enter", "after-enter", "enter-cancelled", "before-leave", "leave", "after-leave", "leave-cancelled", "visible-hook"],
|
|
136
137
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
@@ -228,12 +229,30 @@ export default _defineComponent({
|
|
|
228
229
|
}
|
|
229
230
|
setInnerVisible(false);
|
|
230
231
|
};
|
|
232
|
+
let isOpening = false;
|
|
233
|
+
const perhapsOpen = () => {
|
|
234
|
+
if (isOpening) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
if (isFunction(props.beforeOpen)) {
|
|
238
|
+
const result = props.beforeOpen();
|
|
239
|
+
if (isObject(result) && isFunction(result.then)) {
|
|
240
|
+
isOpening = true;
|
|
241
|
+
return result.then(() => {
|
|
242
|
+
setInnerVisible(true);
|
|
243
|
+
}).catch(noop);
|
|
244
|
+
} else if (result === false) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
setInnerVisible(true);
|
|
249
|
+
};
|
|
231
250
|
const onItemClick = () => {
|
|
232
251
|
if (!context.disabled && !props.disabled) {
|
|
233
252
|
if (innerVisible.value) {
|
|
234
253
|
perhapsClose("button");
|
|
235
254
|
} else {
|
|
236
|
-
|
|
255
|
+
perhapsOpen();
|
|
237
256
|
}
|
|
238
257
|
}
|
|
239
258
|
};
|
|
@@ -275,6 +294,7 @@ export default _defineComponent({
|
|
|
275
294
|
onVisibleHook: (name) => {
|
|
276
295
|
if (name === "before-enter") {
|
|
277
296
|
increaseZIndex();
|
|
297
|
+
isOpening = false;
|
|
278
298
|
}
|
|
279
299
|
if (name === "after-leave") {
|
|
280
300
|
wholeVisible.value = false;
|
|
@@ -330,7 +350,11 @@ export default _defineComponent({
|
|
|
330
350
|
return isClosing;
|
|
331
351
|
}, set isClosing(v) {
|
|
332
352
|
isClosing = v;
|
|
333
|
-
}, perhapsClose,
|
|
353
|
+
}, perhapsClose, get isOpening() {
|
|
354
|
+
return isOpening;
|
|
355
|
+
}, set isOpening(v) {
|
|
356
|
+
isOpening = v;
|
|
357
|
+
}, perhapsOpen, onItemClick, onOptionClick, onOverlayClick, onAwayClick, hide, zIndex, increaseZIndex, realVisible, transitionClass, onTransitionEnd, popupClass, popupStyle, currentLabel, currentArrow, popupEffect, dropdownItemClass, dropdownItemStyle, get classNames() {
|
|
334
358
|
return classNames;
|
|
335
359
|
}, get isNullish() {
|
|
336
360
|
return isNullish;
|