fix: normalize delivery pagination

This commit is contained in:
2026-09-03 20:20:29 +08:00
parent 278949d3b1
commit 534f0e1b88
3 changed files with 18 additions and 2 deletions
@@ -102,6 +102,16 @@ export interface DeliveryQuery {
plannedTo?: string
}
export function normalizeDeliveryPage(data: PageResult<DeliveryRow>): PageResult<DeliveryRow> {
return {
...data,
page: Number(data.page),
size: Number(data.size),
total: Number(data.total),
pages: Number(data.pages),
}
}
export interface DeliveryTransferPayload {
dispatchNo: string
idempotencyKey: string
@@ -127,7 +137,7 @@ export function listDeliveryOrders(params: DeliveryQuery) {
method: 'GET',
url: '/merchant/v1/last-leg/delivery-orders',
params,
})
}).then(normalizeDeliveryPage)
}
export function getDeliveryOrder(deliveryNo: string) {
@@ -47,6 +47,12 @@ test('renders the operation column first and covers loading, empty, error and pa
assert.match(listSource, /@click="loadOrders">重试/)
assert.match(listSource, /listDeliveryOrders\(buildQuery\(\)\)/)
assert.match(listSource, /<el-pagination/)
assert.match(listSource, /v-model:current-page="page"/)
assert.match(listSource, /v-model:page-size="pageSize"/)
assert.match(listSource, /@current-change="changePage"/)
assert.match(listSource, /@size-change="changePageSize"/)
assert.match(apiSource, /\.then\(normalizeDeliveryPage\)/)
assert.match(apiSource, /total: Number\(data\.total\)/)
assert.doesNotMatch(listSource, /row\.id[^a-zA-Z]|deliveryNo \|\| row\.id|customerId|tenantId/)
})
@@ -144,7 +144,7 @@ onMounted(loadOrders)
<el-table-column prop="expectedArrivalAt" label="预计到达" min-width="160"><template #default="{ row }">{{ formatDateTime(row.expectedArrivalAt) }}</template></el-table-column>
<el-table-column prop="createdAt" label="创建时间" min-width="160"><template #default="{ row }">{{ formatDateTime(row.createdAt) }}</template></el-table-column>
</el-table>
<div v-if="!errorMessage && (records.length > 0 || total > 0)" class="delivery-pagination"><span>共 {{ total }} 条</span><el-pagination :current-page="page" :page-size="pageSize" :page-sizes="[10, 20, 50, 100]" layout="sizes, prev, pager, next" :total="total" @update:current-page="changePage" @update:page-size="changePageSize" /></div>
<div v-if="!errorMessage && (records.length > 0 || total > 0)" class="delivery-pagination"><span>共 {{ total }} 条</span><el-pagination v-model:current-page="page" v-model:page-size="pageSize" :page-sizes="[10, 20, 50, 100]" layout="sizes, prev, pager, next" :total="total" @current-change="changePage" @size-change="changePageSize" /></div>
</div>
</section>
</template>