From 5e9e81d28e1e653e712c073bffff9f3a816c02f8 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Wed, 29 Jul 2026 13:37:13 +0800 Subject: [PATCH] feat(web-admin): outbound release pending/reviewed tabs and ready checkbox Match storage-release review UX for pilot/basic-experiment outbound release lists. Co-authored-by: Cursor --- web-admin/src/api/outbound-release-review.ts | 2 + .../outbound-release-review/index.vue | 100 +++++++++++++++++- 2 files changed, 99 insertions(+), 3 deletions(-) diff --git a/web-admin/src/api/outbound-release-review.ts b/web-admin/src/api/outbound-release-review.ts index 5220288e..477b8d00 100644 --- a/web-admin/src/api/outbound-release-review.ts +++ b/web-admin/src/api/outbound-release-review.ts @@ -172,6 +172,8 @@ export function fetchOutboundReleaseReviewList(params?: { bizType?: string infusionTimeStart?: string infusionTimeEnd?: string + reviewPhase?: 'pending' | 'reviewed' + readyForReviewOnly?: boolean }) { return request.get>({ url: '/web/admin/pilot-release-reviews', diff --git a/web-admin/src/views/pilot-service/outbound-release-review/index.vue b/web-admin/src/views/pilot-service/outbound-release-review/index.vue index 7c8a6f47..8b9e4cd7 100644 --- a/web-admin/src/views/pilot-service/outbound-release-review/index.vue +++ b/web-admin/src/views/pilot-service/outbound-release-review/index.vue @@ -7,6 +7,23 @@

审核列表

+
+
+ +
+
+
@@ -20,7 +37,6 @@ placeholder="全部" style="width: 100%" > -
+
重置 @@ -129,6 +157,15 @@ defineOptions({ name: 'PilotServiceOutboundReleaseReview' }) + type ReviewTab = 'pending' | 'reviewed' + + const STATUS_TABS = [ + { name: 'pending' as const, label: '待审核' }, + { name: 'reviewed' as const, label: '已审核' } + ] + + const activeTab = ref('pending') + const props = defineProps<{ /** 路由传入:仅列出对应业务线的申请单关联输注计划 */ bizType?: string @@ -149,7 +186,8 @@ const searchForm = reactive({ reviewConclusion: '', keyword: '', - infusionTimeRange: null as [string, string] | null + infusionTimeRange: null as [string, string] | null, + showAllPending: false }) const tableData = ref([]) const selectedRows = ref([]) @@ -180,6 +218,8 @@ async function loadData() { loading.value = true try { + const readyOnly = + activeTab.value === 'pending' && !searchForm.showAllPending ? true : undefined const res = await fetchOutboundReleaseReviewList({ page: pagination.page, pageSize: pagination.pageSize, @@ -187,7 +227,9 @@ keyword: searchForm.keyword || undefined, bizType: effectiveBizType.value, infusionTimeStart: searchForm.infusionTimeRange?.[0] || undefined, - infusionTimeEnd: searchForm.infusionTimeRange?.[1] || undefined + infusionTimeEnd: searchForm.infusionTimeRange?.[1] || undefined, + reviewPhase: activeTab.value, + readyForReviewOnly: readyOnly }) tableData.value = res.list || [] pagination.total = res.total ?? 0 @@ -196,6 +238,17 @@ } } + function handleTabChange(name: ReviewTab) { + if (activeTab.value === name) return + activeTab.value = name + pagination.page = 1 + selectedRows.value = [] + if (name === 'pending') { + searchForm.showAllPending = false + } + loadData() + } + function handleSearch() { pagination.page = 1 loadData() @@ -205,6 +258,7 @@ searchForm.reviewConclusion = '' searchForm.keyword = '' searchForm.infusionTimeRange = null + searchForm.showAllPending = false pagination.page = 1 loadData() } @@ -273,3 +327,43 @@ loadData() }) + +