From 04d3992c52347af7d3d65fdb3667ebe18badf8df Mon Sep 17 00:00:00 2001 From: Sisyphus Date: Tue, 7 Jul 2026 09:58:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(F006-W15):=20=E8=AE=A2=E5=8D=95=E5=94=AE?= =?UTF-8?q?=E5=90=8E/=E9=80=80=E6=AC=BE/=E6=94=AF=E4=BB=98=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=203=20view=20=E6=8E=A5=E5=89=8D=E7=AB=AF=20max-effort?= =?UTF-8?q?=20mock=20+=20=E5=90=8C=E6=AD=A5=20DataTable=20selection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/DataTable/DataTable.vue | 16 +- src/config/menu-labels.ts | 3 + .../order/aftersale/AftersaleListView.vue | 220 ++++++++++++++++++ .../order/payment/PaymentCallbackListView.vue | 214 +++++++++++++++++ .../order/refund/RefundProcessListView.vue | 212 +++++++++++++++++ .../other/goodunit/GoodunitListView.vue | 7 +- src/router/index.ts | 4 + 7 files changed, 670 insertions(+), 6 deletions(-) create mode 100644 src/modules/order/aftersale/AftersaleListView.vue create mode 100644 src/modules/order/payment/PaymentCallbackListView.vue create mode 100644 src/modules/order/refund/RefundProcessListView.vue diff --git a/src/components/DataTable/DataTable.vue b/src/components/DataTable/DataTable.vue index fc8bbea..ceb41f3 100644 --- a/src/components/DataTable/DataTable.vue +++ b/src/components/DataTable/DataTable.vue @@ -44,7 +44,7 @@ interface Column { label: string width?: number | string minWidth?: number | string - type?: 'status' | 'text' + type?: 'status' | 'text' | 'selection' statusMap?: Record slot?: string formatter?: (row: any) => string @@ -87,6 +87,7 @@ const emit = defineEmits<{ (e: 'row-click', row: any): void (e: 'page-change', page: number): void (e: 'limit-change', limit: number): void + (e: 'selection-change', rows: any[]): void }>() const hasStatusCol = computed(() => props.columns.some(c => c.type === 'status')) @@ -97,6 +98,7 @@ function getStatusMeta(col: Column, value: string) { return col.statusMap?.[value] || { label: value || '--', type: 'info' } } +function onSelectionChange(rows: any[]) { emit('selection-change', rows) } function onRowClick(row: any) { emit('row-click', row) } @@ -118,6 +120,7 @@ function onLimitChange(l: number) { :row-key="rowKey" style="width: 100%" @row-click="onRowClick" + @selection-change="onSelectionChange" row-class-name="rr-clickable-row" :header-row-style="{ height: '40px' }" :row-style="{ height: '52px' }" @@ -141,9 +144,15 @@ function onLimitChange(l: number) { height: '52px' }" > +