diff --git a/packages/varlet-ui/src/checkbox-group/CheckboxGroup.vue b/packages/varlet-ui/src/checkbox-group/CheckboxGroup.vue index 7bfc2054b36..4f0941d77fb 100644 --- a/packages/varlet-ui/src/checkbox-group/CheckboxGroup.vue +++ b/packages/varlet-ui/src/checkbox-group/CheckboxGroup.vue @@ -70,9 +70,14 @@ export default defineComponent({ const syncCheckboxes = () => checkboxes.forEach(({ sync }) => sync(props.modelValue)) + const resetWithAnimation = () => { + checkboxes.forEach((checkbox) => checkbox.resetWithAnimation()) + } + // expose const checkAll = () => { const checkedValues: any[] = checkboxes.map(({ checkedValue }) => checkedValue.value) + resetWithAnimation() const changedModelValue: any[] = uniq(checkedValues) props['onUpdate:modelValue']?.(changedModelValue) @@ -85,7 +90,7 @@ export default defineComponent({ const checkedValues: any[] = checkboxes .filter(({ checked }) => !checked.value) .map(({ checkedValue }) => checkedValue.value) - + resetWithAnimation() const changedModelValue: any[] = uniq(checkedValues) props['onUpdate:modelValue']?.(changedModelValue) diff --git a/packages/varlet-ui/src/checkbox/Checkbox.vue b/packages/varlet-ui/src/checkbox/Checkbox.vue index 56745923043..9de0076d78e 100644 --- a/packages/varlet-ui/src/checkbox/Checkbox.vue +++ b/packages/varlet-ui/src/checkbox/Checkbox.vue @@ -129,6 +129,10 @@ export default defineComponent({ value.value = values.includes(checkedValue) ? checkedValue : uncheckedValue } + const resetWithAnimation = () => { + withAnimation.value = false + } + // expose const reset = () => { props['onUpdate:modelValue']?.(props.uncheckedValue) @@ -165,6 +169,7 @@ export default defineComponent({ validate, resetValidation, reset, + resetWithAnimation, } bindCheckboxGroup?.(checkboxProvider) diff --git a/packages/varlet-ui/src/checkbox/provide.ts b/packages/varlet-ui/src/checkbox/provide.ts index ab0864f980c..d1840f11488 100644 --- a/packages/varlet-ui/src/checkbox/provide.ts +++ b/packages/varlet-ui/src/checkbox/provide.ts @@ -11,6 +11,7 @@ export interface CheckboxProvider extends Validation { checkedValue: ComputedRef checked: ComputedRef sync(values: Array): void + resetWithAnimation(): void } export function useCheckboxGroup() {