yyb
2026-05-22 552ec6b7d8ccc56c379da195fc6c9c74312b1070
src/pages/oa/_components/FinReimbursementListPage.vue
@@ -118,7 +118,6 @@
  import { getApprovalModuleConfig } from "../_utils/approvalModuleRegistry.js";
  import {
    createModuleSearchForm,
    filterRowsByModuleSearch,
    formatDateRangeLabel,
    getModuleSearchMeta,
  } from "../_utils/approvalModuleListSearch.js";
@@ -132,7 +131,9 @@
    deleteFinReimbursement,
    getReimbursementTypeByModuleKey,
    enrichReimbursementListRowsWithApprovalFlow,
    filterReimbursementRowsBySearch,
    filterRowsByReimbursementType,
    hasActiveReimbursementSearch,
    mapFinReimbursementFromApi,
    resolveReimbursementDeleteId,
    unwrapFinReimbursementPage,
@@ -170,7 +171,7 @@
  }
  const displayList = computed(() =>
    filterRowsByModuleSearch(props.moduleKey, list.value, searchForm)
    filterReimbursementRowsBySearch(list.value, searchForm)
  );
  const hasActiveFilter = computed(() => Boolean(filterSummary.value));
@@ -242,6 +243,9 @@
        mapped,
        reimbursementType.value
      );
      if (hasActiveReimbursementSearch(searchForm)) {
        mapped = filterReimbursementRowsBySearch(mapped, searchForm);
      }
      if (page.current === 1) {
        list.value = mapped;
@@ -249,8 +253,12 @@
        list.value = [...list.value, ...mapped];
      }
      const dropped = records.length - filtered.length;
      page.total =
      let nextTotal =
        dropped > 0 ? Math.max(0, Number(total) - dropped) : Number(total);
      if (hasActiveReimbursementSearch(searchForm)) {
        nextTotal = list.value.length;
      }
      page.total = nextTotal;
      if (list.value.length >= total || records.length < page.size) {
        pageStatus.value = "nomore";