diff --git a/package.json b/package.json index b706f92..d61c77e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "shrimp-admin", - "version": "0.3.4", + "version": "0.3.5", "private": true, "description": "Shrimp 框架前端 — 消费 ShrimpServer + ShrimpTable 契约的经典 Vue3 + Element Plus 实现", "main": "src/index.ts", diff --git a/src/components/ShrimpTable.vue b/src/components/ShrimpTable.vue index 569ab96..0e88e16 100644 --- a/src/components/ShrimpTable.vue +++ b/src/components/ShrimpTable.vue @@ -132,8 +132,18 @@ const { const searchVisible = ref(false) +// relation 跳转用 ?filter={_id} 锁定单条;_id 是隐形 pin(不在筛选抽屉里), +// 用户一旦搜索/改筛选就清掉它,避免被看不见的 _id 一直 AND 着导致结果莫名为空 +function stripJumpPin() { + if ('_id' in filterData.value) { + const { _id, ...rest } = filterData.value + filterData.value = rest + } +} + function onSearch() { searchKeyword.value = keyword.value + stripJumpPin() currentPage.value = 1 refresh() } @@ -151,7 +161,8 @@ const hasFilter = computed(() => { }) async function handleFilterConfirm(newFilterData: Record) { - filterData.value = newFilterData + const { _id, ...rest } = newFilterData // 确认筛选 → 丢弃跳转 pin + filterData.value = rest currentPage.value = 1 await refresh() }