From c779daebbcf363ef33c600a7cc38880221fc8b44 Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Tue, 1 Apr 2025 17:29:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20crud=E7=BB=84=E4=BB=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=87=AA=E5=8A=A8=E8=A7=A6=E5=8F=91=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E9=80=BB=E8=BE=91=EF=BC=8C=E5=8F=AA=E6=9C=89=E9=9D=9E?= =?UTF-8?q?input=E8=BE=93=E5=85=A5=E6=A1=86=E5=80=BC=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E6=97=B6=E8=A7=A6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CURD/PageSearch.vue | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/components/CURD/PageSearch.vue b/src/components/CURD/PageSearch.vue index 8256800..daf9a1d 100644 --- a/src/components/CURD/PageSearch.vue +++ b/src/components/CURD/PageSearch.vue @@ -153,6 +153,7 @@ import dayjs from "dayjs"; const props = defineProps<{ searchConfig: ISearchConfig; isOpenAutoSearch: Boolean; + watchKey: Array; }>(); // 自定义事件 const emit = defineEmits<{ @@ -322,11 +323,29 @@ function timeChange(e: any, key: string) { break; } } -watch(queryParams, () => { - if (props.isOpenAutoSearch) { - emit("queryClick", queryParams); + +// 判断除input输入框之外的表单项是否有变化 +function isChange(newval: any, oldval: any) { + const watchKeys = props.searchConfig.formItems + .filter((v) => v.type != "input" && v.type !== undefined) + .map((v) => v.prop); + + return watchKeys.some((key) => newval[key] != oldval[key]); +} +// 监听搜索条件变化 +watch( + () => { + return { + ...queryParams, + }; + }, + (newval, oldval) => { + if (props.isOpenAutoSearch && isChange(newval, oldval)) { + handleQuery(); + } } -}); +); + // 暴露的属性和方法 defineExpose({ getQueryParams, toggleVisible, setQueryValue });