From 2b2248d8e531679d84edf8c932b39947e15f5573 Mon Sep 17 00:00:00 2001 From: jry Date: Fri, 16 Aug 2024 22:04:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20swipe-action=E5=A2=9E=E5=8A=A0closeAll?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../u-swipe-action-item/u-swipe-action-item.vue | 7 ++++++- .../uview-plus/components/u-swipe-action/props.js | 5 +++++ .../components/u-swipe-action/u-swipe-action.vue | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/uni_modules/uview-plus/components/u-swipe-action-item/u-swipe-action-item.vue b/src/uni_modules/uview-plus/components/u-swipe-action-item/u-swipe-action-item.vue index d7610037f..df2032256 100644 --- a/src/uni_modules/uview-plus/components/u-swipe-action-item/u-swipe-action-item.vue +++ b/src/uni_modules/uview-plus/components/u-swipe-action-item/u-swipe-action-item.vue @@ -127,8 +127,13 @@ // #ifndef APP-NVUE wxsInit(newValue, oldValue) { this.queryRect() - } + }, // #endif + status(newValue) { + if (newValue === 'open') { + this.parent && this.parent.setOpendItem(this) + } + } }, computed: { wxsInit() { diff --git a/src/uni_modules/uview-plus/components/u-swipe-action/props.js b/src/uni_modules/uview-plus/components/u-swipe-action/props.js index 6804294f7..29b14ef8a 100644 --- a/src/uni_modules/uview-plus/components/u-swipe-action/props.js +++ b/src/uni_modules/uview-plus/components/u-swipe-action/props.js @@ -6,6 +6,11 @@ export const props = defineMixin({ autoClose: { type: Boolean, default: () => defProps.swipeAction.autoClose + }, + // 是否存在打开的按钮组 + opendItem: { + type: Boolean, + default: false } } }) diff --git a/src/uni_modules/uview-plus/components/u-swipe-action/u-swipe-action.vue b/src/uni_modules/uview-plus/components/u-swipe-action/u-swipe-action.vue index 09e96fd02..1cc1ff6bc 100644 --- a/src/uni_modules/uview-plus/components/u-swipe-action/u-swipe-action.vue +++ b/src/uni_modules/uview-plus/components/u-swipe-action/u-swipe-action.vue @@ -35,6 +35,7 @@ return [this.autoClose] } }, + emits: ['opendItem:update'], watch: { // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件 parentData() { @@ -45,6 +46,11 @@ }) } }, + opendItem(val) { + if (val == false) { + this.closeAll() + } + } }, created() { this.children = [] @@ -59,6 +65,15 @@ } }) } + }, + closeAll() { + // 关闭所有单元格 + this.children.map((item, index) => { + item.closeHandler() + }) + }, + setOpendItem(ins) { + this.$emit('opendItem:update', true) } } }