style: simplify order entry and highlight declaring customs rows

This commit is contained in:
2026-11-05 16:30:48 +08:00
parent 7bfbbaded7
commit b312a08bcd
2 changed files with 7 additions and 4 deletions
@@ -63,6 +63,10 @@ function rowActions(row: object): TableAction[] {
return [{ key: 'documents', label: '查看资料', disabled: loading.value, run: () => openDetail(row) }]
}
function rowClassName({ row }: { row: CustomsDocumentRow }) {
return row.detail.merchantStatus === 'DECLARING' ? 'customs-row-declaring' : ''
}
function statusLabel(detail: MerchantCustomsContainer) {
return detail.merchantStatus ? MERCHANT_CUSTOMS_STATUS_LABELS[detail.merchantStatus] ?? '—' : '—'
}
@@ -98,7 +102,7 @@ onMounted(() => { void load() })
<div class="customs-page">
<QueryToolbar v-model="queryModel" layout="grid" ariaLabel="报关资料查询条件" :fields="queryFields" @search="search" />
<section class="customs-card">
<DataTable v-model:page="page" v-model:page-size="pageSize" :data="pagedRecords" :columns="columns" :loading="loading" :total="filteredRecords.length" :page-sizes="[10, 20, 50, 100]" :row-actions="rowActions" row-key="order.id" :empty-text="emptyText">
<DataTable v-model:page="page" v-model:page-size="pageSize" :data="pagedRecords" :columns="columns" :loading="loading" :total="filteredRecords.length" :page-sizes="[10, 20, 50, 100]" :row-actions="rowActions" :row-class-name="rowClassName" row-key="order.id" :empty-text="emptyText">
<template #toolbar><strong class="customs-list-heading">资料列表<CustomsHelp title="资料统计口径"><p>统计为本客户同柜退税货物汇总,资料覆盖按入仓码计。</p></CustomsHelp></strong></template>
<template #toolbar-actions><el-button :loading="loading" @click="load"><RefreshCcw :size="16" />刷新</el-button></template>
<template v-if="errorMessage" #error><div class="state-error" role="alert"><span>{{ errorMessage }}</span><el-button :loading="loading" @click="load">重新加载</el-button></div></template>
@@ -117,5 +121,7 @@ onMounted(() => { void load() })
.customs-page { display: grid; gap: var(--client-section-gap); }
.customs-list-heading { display: flex; align-items: center; gap: 4px; }
.customs-card { overflow: hidden; border: 1px solid var(--client-border); border-radius: var(--client-radius); background: #fff; }
.customs-card :deep(.el-table__row.customs-row-declaring > .el-table__cell) { background-color: #eff8ff; }
.customs-card :deep(.el-table__row.customs-row-declaring:hover > .el-table__cell) { background-color: #dbeafe; }
.state-error { display: flex; min-height: 84px; align-items: center; justify-content: center; gap: 12px; padding: 14px; color: #b42318; }
</style>