Browse Source

feat(policy): 政策事项列表每次进入重置筛选

进入列表时把页码归 1、清空关键词、部门回「全部部门」、分类回「所有分类」。

这是「点更多进去只剩一条」的根治:此前筛选状态跨入口保留,
而惠企政策库的部门是简称(区科委)、卡片数据是全称(青浦区科学技术委员会),
残留的部门筛选会让卡片列表几乎筛不出东西。

副作用:重置会连带触发筛选与页码的 watcher,使列表被重复构建一次,
两次结果相同,未做去抖。

Co-Authored-By: Claude Code <noreply@anthropic.com>
gongtianxiao 4 days ago
parent
commit
c1e323868b
2 changed files with 10 additions and 0 deletions
  1. 2 0
      README.md
  2. 8 0
      src/components/Chat/PolicyMatch.vue

+ 2 - 0
README.md

@@ -34,6 +34,8 @@
   - 卡片区「更多 >>」与详情的「返回政策事项列表」**走同一条路径、内容相同**
   - 列表数据统一来自 `public/merchant-agent/policies_public.v1.json`
     (262 条申报事项 / 38 个政策),**本轮匹配到的惠企政策置顶**
+- 「政策事项列表」**每次进入都重置筛选**(部门 / 分类 / 关键词 / 页码),
+  避免上次的筛选残留导致「条目少」或「筛不出东西」
 - 政策详情面板的「返回政策事项列表」按惠企政策区分:**只有惠企政策才显示该入口**;
   惠企政策判定优先用接口字段 `is_policy_library`,缺失时回退到按标题在库中匹配
   (已做归一化,容忍《》全半角括号等差异)

+ 8 - 0
src/components/Chat/PolicyMatch.vue

@@ -1200,6 +1200,14 @@ const openDetailByItem = async (item: { originalData?: RawPolicyItem; support_ob
 const openPolicyList = async () => {
   selectedPolicyOverride.value = null;
   panelMode.value = "list";
+
+  // 每次进入都重置筛选:部门 / 分类 / 关键词 / 页码
+  // 否则上次的筛选会残留,表现为"条目少"或"筛不出东西"
+  currentPage.value = 1;
+  searchKeyword.value = "";
+  currentDeptFilter.value = "全部部门";
+  currentFilterOption.value = "所有分类";
+
   const openTicket = modalMutex?.requestOpen(policyModalId);
   await nextTick();
   if (modalMutex && openTicket !== undefined && !modalMutex.isCurrentRequest(policyModalId, openTicket)) return;