@@ -28,6 +28,7 @@ import {
type LegacyOrderImportResult ,
} from '@/modules/unified-orders/api/unifiedOrders'
import { cancelPlatformCoLoadGroup , createPlatformCoLoadGroup , getPlatformCoLoadGroupByInboundCode , type CoLoadBusinessSummary , type CoLoadGroup } from '@/modules/unified-orders/api/coLoadGroups'
import { toMeasurementReviewTask } from '../measurementReviewTasks'
import OrderFulfillmentTreePanel from '@/modules/unified-orders/components/OrderFulfillmentTreePanel.vue'
import InboundFeeDetailManager from '@/modules/unified-orders/components/InboundFeeDetailManager.vue'
import OrderDeclarationEditorDialog from '@/modules/unified-orders/components/OrderDeclarationEditorDialog.vue'
@@ -130,6 +131,7 @@ const statusCounts = ref<UnifiedOrderStatusCounts['counts']>({})
const statusCountsLoading = ref ( false )
const statusCountsError = ref < ApiErrorDetails | null > ( null )
let statusCountsRequestSerial = 0
let ordersRequestSerial = 0
const loadError = ref < ApiErrorDetails | null > ( null )
const legacyImportOpen = ref ( false )
const legacyImportFile = ref < File | null > ( null )
@@ -332,6 +334,7 @@ const showAdvancedFilters = ref(false)
const filters = ref < FilterModel > ( emptyFilters ( ) )
const appliedFilters = ref < FilterModel > ( emptyFilters ( ) )
const selectedStatus = ref < UnifiedOrderMainStatus | ' ' > ( '' )
const measurementReviewList = ref < InstanceType < typeof InboundTaskList > | null > ( null )
const measurementReviewSelected = ref ( false )
const selectedTab = computed ( ( ) => measurementReviewSelected . value ? 'MEASUREMENT_REVIEW' : selectedStatus . value )
const statusTabList = ref < HTMLElement | null > ( null )
@@ -500,10 +503,18 @@ function calculatedMeasurementRow(
const strategyDimensions = matchedDimensions . map ( ( value ) => roundedUp ( value * specificationCoefficient , 3 ) )
const [ lengthCm , widthCm , heightCm ] = strategyDimensions
const packageCount = Number ( source . packageCount )
const unitVolumeCbm = mode === 'ADD' && rule && ! hasOuterOverride
const savedDimensions = [ source . calculatedOuterLengthCm , source . calculatedOuterWidthCm , source . calculatedOuterHeightCm ]
// 不调整且尺寸与落库快照一致时沿用服务端体积,避免历史三位精度与预览四位取整产生差额。
const useSavedVolume = ! customerSource && mode === 'ACTUAL'
&& measurementCalculationModeForRow ( source ) === 'ACTUAL'
&& savedDimensions . every ( ( value , index ) => value != null
&& Math . abs ( Number ( value ) - strategyDimensions [ index ] ! ) < 0.000001 )
&& Number ( source . unitVolumeCbm ) > 0 && Number ( source . totalVolumeCbm ) > 0
const unitVolumeCbm = useSavedVolume ? Number ( source . unitVolumeCbm ) : mode === 'ADD' && rule && ! hasOuterOverride
? Math . round ( ( lengthCm * widthCm * heightCm / 1 _000 _000 ) * 1000 ) / 1000
: roundedUp ( lengthCm * widthCm * heightCm / 1 _000 _000 , 4 )
const totalVolumeCbm = Number . isFinite ( packageCount ) ? roundedUp ( unitVolumeCbm * packageCount , 4 ) : null
const totalVolumeCbm = useSavedVolume ? Number ( source . totalVolumeCbm )
: Number . isFinite ( packageCount ) ? roundedUp ( unitVolumeCbm * packageCount , 4 ) : null
const fallbackMeasuredUnitWeight = ! customerSource && Number . isFinite ( Number ( measurementDetail . value ? . actualGrossWeightKg ) )
&& Number ( measurementDetail . value ? . actualPackageCount ) > 0
? Number ( measurementDetail . value ? . actualGrossWeightKg ) / Number ( measurementDetail . value ? . actualPackageCount )
@@ -517,7 +528,8 @@ function calculatedMeasurementRow(
... source ,
lengthCm , widthCm , heightCm , unitWeightKg , unitVolumeCbm , totalWeightKg , totalVolumeCbm ,
girthCm : roundedUp ( lengthCm + 2 * ( widthCm + heightCm ) , 3 ) ,
volumeWeightKg : totalVolumeCbm == null ? null : roundedUp ( totalVolumeCbm * 167 , 3 ) ,
volumeWeightKg : useSavedVolume && Number ( source . volumeWeightKg ) > 0 ? Number ( source . volumeWeightKg )
: totalVolumeCbm == null ? null : roundedUp ( totalVolumeCbm * 167 , 3 ) ,
remark : customerSource ? source . cargoRemark : source . remark ,
}
}
@@ -723,15 +735,13 @@ function optionalBoolean(value: string | null | undefined) {
function selectStatus ( status : UnifiedOrderMainStatus | '' | 'MEASUREMENT_REVIEW' ) {
if ( selectedTab . value === status ) return
const leavingMeasurementReview = measurementReviewSelected . value
ordersRequestSerial + = 1
measurementReviewSelected . value = status === 'MEASUREMENT_REVIEW'
if ( measurementReviewSelected . value ) selectedOrders . value = [ ]
if ( status === 'MEASUREMENT_REVIEW' ) {
void loadStatusCounts ( )
return
}
selectedStatus . value = status
if ( leavingMeasurementReview ) void loadStatusCounts ( )
if ( page . value === 1 ) void loadOrders ( false )
else page . value = 1
}
@@ -866,6 +876,11 @@ function formatNumber(value: number | null | undefined, digits = 2) {
return value === null || value === undefined ? '—' : value . toLocaleString ( 'zh-CN' , { maximumFractionDigits : digits } )
}
function formatMeasurementVolume ( value : number | null | undefined ) {
return value == null || ! Number . isFinite ( value ) ? '—'
: value . toLocaleString ( 'zh-CN' , { minimumFractionDigits : 3 , maximumFractionDigits : 3 } )
}
function partyValue ( parties : Array < Record < string , unknown > > , type : 'SENDER' | 'RECEIVER' , key : string ) {
const party = parties . find ( ( item ) => String ( item . partyType || '' ) . toUpperCase ( ) === type )
const value = party ? . [ key ]
@@ -1020,11 +1035,12 @@ function measurementValue(row: Record<string, unknown>, key: string, customerSou
if ( customerSource && key === 'unitVolumeCbm' ) {
const total = Number ( row . volumeCbm )
const count = Number ( row . packageCount )
return Number . isFinite ( total ) && Number . isFinite ( count ) && count > 0 ? formatNumber ( total / count , 6 ) : '—'
return Number . isFinite ( total ) && Number . isFinite ( count ) && count > 0 ? formatMeasurementVolume ( total / count ) : '—'
}
if ( customerSource && key === 'remark' ) return String ( row . cargoRemark || '—' )
const value = row [ key ]
if ( value === null || value === undefined || value === '' ) return '—'
if ( key === 'unitVolumeCbm' || key === 'totalVolumeCbm' ) return formatMeasurementVolume ( Number ( value ) )
return typeof value === 'number' ? formatNumber ( value , 6 ) : String ( value )
}
@@ -1643,9 +1659,15 @@ function tabCount(value: UnifiedOrderMainStatus | '' | 'MEASUREMENT_REVIEW') {
return value ? statusCounts . value [ value ] : undefined
}
async function loadMeasurementReviewTasks ( pagination : { page : number ; size : number } ) {
const result = await listPlatformUnifiedOrders ( { ... orderCountFilters ( ) , mainStatus : 'MEASUREMENT_REVIEW' , ... pagination } )
return { ... result , records : result . records . map ( toMeasurementReviewTask ) }
}
async function loadOrders ( refreshCounts = true ) {
const serial = ++ ordersRequestSerial
if ( refreshCounts ) void loadStatusCounts ( )
if ( measurementReviewSelected . value ) return
if ( measurementReviewSelected . value ) { await measurementReviewList . value ? . reload ( ) ; return }
selectedApprovalOrders . value = [ ]
selectedOrders . value = [ ]
loading . value = true
@@ -1659,14 +1681,16 @@ async function loadOrders(refreshCounts = true) {
page : page . value ,
size : pageSize . value ,
} )
if ( serial !== ordersRequestSerial ) return
records . value = result . records
total . value = result . total
} catch ( error ) {
if ( serial !== ordersRequestSerial ) return
records . value = [ ]
total . value = 0
loadError . value = getApiErrorDetails ( error , '统一订单列表加载失败,请检查 C02 统一查询接口和订单权限' )
} finally {
loading . value = false
if ( serial === ordersRequestSerial ) loading . value = false
}
}
@@ -2377,6 +2401,7 @@ onMounted(() => {
if ( ! isDetailRoute . value ) void loadOrders ( )
} )
onBeforeUnmount ( ( ) => {
ordersRequestSerial += 1
statusCountsRequestSerial += 1
detailAssociationRequestSerial += 1
measurementRequestSerial += 1
@@ -2655,17 +2680,17 @@ function orderDialogTitle(action: string, inboundCode?: string | null) {
< / LoadErrorState >
< template v-else >
< section class = "measurement-section" >
< div class = "measurement-section-title" > < button type = "button" class = "measurement-section-toggle" :aria-expanded = "!measurementCollapsed.customer" @click ="toggleMeasurementSection('customer')" > < h3 > 一 、 客户下单数据 < / h3 > < span v-if = "measurementCollapsed.customer" class="measurement-section-summary"><span>总件数:{{ measurementTotals(customerMeasurementRows).count ?? '—' }}</span><span>总毛重:{{ formatNumber(measurementTotals(customerMeasurementRows).gross) }}</span><span>总体积:{{ formatNumber (measurementTotals(customerMeasurementRows).volume, 6 ) }}</span><span>总材积重:{{ formatNumber(measurementTotals(customerMeasurementRows).volumetric) }}</span><span>重量体积:{{ formatNumber (measurementTotals(customerMeasurementRows).weightVolume, 6 ) }}</span></span><ChevronUp v-if="!measurementCollapsed.customer" :size="18" /><ChevronDown v-else :size="18" /></button><el-select class="measurement-section-mode" :model-value="measurementSectionModes.customer" aria-label="客户下单数据计算方式" @change="updateMeasurementSectionMode('customer', $event)"><el-option label="实测原尺寸(不调整)" value="ACTUAL" /><el-option label="箱规尺寸" value="ADD" /><el-option label="箱规系数" value="MULTIPLY" :disabled="multiplyModeDisabled" / > < / el-select > < / div >
< div class = "measurement-section-title" > < button type = "button" class = "measurement-section-toggle" :aria-expanded = "!measurementCollapsed.customer" @click ="toggleMeasurementSection('customer')" > < h3 > 一 、 客户下单数据 < / h3 > < span v-if = "measurementCollapsed.customer" class="measurement-section-summary"><span>总件数:{{ measurementTotals(customerMeasurementRows).count ?? '—' }}</span><span>总毛重:{{ formatNumber(measurementTotals(customerMeasurementRows).gross) }}</span><span>总体积:{{ formatMeasurementVolume (measurementTotals(customerMeasurementRows).volume) }}</span><span>总材积重:{{ formatNumber(measurementTotals(customerMeasurementRows).volumetric) }}</span><span>重量体积:{{ formatMeasurementVolume (measurementTotals(customerMeasurementRows).weightVolume) }}</span></span><ChevronUp v-if="!measurementCollapsed.customer" :size="18" /><ChevronDown v-else :size="18" /></button><el-select class="measurement-section-mode" :model-value="measurementSectionModes.customer" aria-label="客户下单数据计算方式" @change="updateMeasurementSectionMode('customer', $event)"><el-option label="实测原尺寸(不调整)" value="ACTUAL" /><el-option label="箱规尺寸" value="ADD" /><el-option label="箱规系数" value="MULTIPLY" :disabled="multiplyModeDisabled" / > < / el-select > < / div >
< div v-if = "!measurementCollapsed.customer" >
< div class = "detail-table-wrap" > < el-table :data = "customerMeasurementRows" border stripe empty -text = " 暂无客户下单数据 " > < el-table-column v-for = "column in customerMeasurementColumns" :key="column.key" :label="column.label" :prop="column.key" min-width="120"><template #default="{ row }"><LineClampText v-if="column.key === 'remark'" :content="measurementValue(row as Record<string, unknown>, column.key)" / > < template v-else > {{ measurementValue ( row as Record < string , unknown > , column . key ) } } < / template > < / template > < / el-table-column > < / el-table > < / div >
< div class = "measurement-total" > < strong > 合计 < / strong > < span > 箱数 : { { measurementTotals ( customerMeasurementRows ) . count ? ? '—' } } < / span > < span > 总毛重 : { { formatNumber ( measurementTotals ( customerMeasurementRows ) . gross ) } } < / span > < span > 总体积 : { { formatNumber ( measurementTotals ( customerMeasurementRows ) . volume , 6 ) } } < / span > < span > 总材积重 : { { formatNumber ( measurementTotals ( customerMeasurementRows ) . volumetric ) } } < / span > < span > 重量体积 : { { formatNumber ( measurementTotals ( customerMeasurementRows ) . weightVolume , 6 ) } } < / span > < / div >
< div class = "measurement-total" > < strong > 合计 < / strong > < span > 箱数 : { { measurementTotals ( customerMeasurementRows ) . count ? ? '—' } } < / span > < span > 总毛重 : { { formatNumber ( measurementTotals ( customerMeasurementRows ) . gross ) } } < / span > < span > 总体积 : { { formatMeasurementVolume ( measurementTotals ( customerMeasurementRows ) . volume ) } } < / span > < span > 总材积重 : { { formatNumber ( measurementTotals ( customerMeasurementRows ) . volumetric ) } } < / span > < span > 重量体积 : { { formatMeasurementVolume ( measurementTotals ( customerMeasurementRows ) . weightVolume ) } } < / span > < / div >
< / div >
< / section >
< section class = "measurement-section" >
< div class = "measurement-section-title" > < button type = "button" class = "measurement-section-toggle" :aria-expanded = "!measurementCollapsed.outer" @click ="toggleMeasurementSection('outer')" > < h3 > 二 、 外箱规数据 < / h3 > < span v-if = "measurementCollapsed.outer" class="measurement-section-summary"><span>总件数:{{ measurementTotals(outerMeasurementRows).count ?? '—' }}</span><span>总毛重:{{ formatNumber(measurementTotals(outerMeasurementRows).gross) }}</span><span>总体积:{{ formatNumber (measurementTotals(outerMeasurementRows).volume, 6 ) }}</span><span>总材积重:{{ formatNumber(measurementTotals(outerMeasurementRows).volumetric) }}</span><span>重量体积:{{ formatNumber (measurementTotals(outerMeasurementRows).weightVolume, 6 ) }}</span></span><ChevronUp v-if="!measurementCollapsed.outer" :size="18" /><ChevronDown v-else :size="18" / > < / button > < / div >
< div class = "measurement-section-title" > < button type = "button" class = "measurement-section-toggle" :aria-expanded = "!measurementCollapsed.outer" @click ="toggleMeasurementSection('outer')" > < h3 > 二 、 外箱规数据 < / h3 > < span v-if = "measurementCollapsed.outer" class="measurement-section-summary"><span>总件数:{{ measurementTotals(outerMeasurementRows).count ?? '—' }}</span><span>总毛重:{{ formatNumber(measurementTotals(outerMeasurementRows).gross) }}</span><span>总体积:{{ formatMeasurementVolume (measurementTotals(outerMeasurementRows).volume) }}</span><span>总材积重:{{ formatNumber(measurementTotals(outerMeasurementRows).volumetric) }}</span><span>重量体积:{{ formatMeasurementVolume (measurementTotals(outerMeasurementRows).weightVolume) }}</span></span><ChevronUp v-if="!measurementCollapsed.outer" :size="18" /><ChevronDown v-else :size="18" / > < / button > < / div >
< div v-if = "!measurementCollapsed.outer" >
< div v-loading = "measurementLoading" class="detail-table-wrap"><el-table :data="outerMeasurementRows" border stripe empty-text="暂无外箱规数据"><el-table-column label="#" prop="itemNo" min-width="70" /><el-table-column v-for="column in outerColumns.filter((item) => item.key !== 'itemNo')" :key="column.key" :label="column.label" :prop="column.key" min-width="150"><template #default="{ row }"><LineClampText v-if="column.key === 'remark'" :content="measurementValue(row as Record<string, unknown>, column.key)" / > < template v-else > {{ measurementValue ( row as Record < string , unknown > , column . key ) } } < / template > < / template > < / el-table-column > < / el-table > < / div >
< div class = "measurement-total" > < strong > 合计 < / strong > < span > 箱数 : { { measurementTotals ( outerMeasurementRows ) . count ? ? '—' } } < / span > < span > 总毛重 : { { formatNumber ( measurementTotals ( outerMeasurementRows ) . gross ) } } < / span > < span > 总体积 : { { formatNumber ( measurementTotals ( outerMeasurementRows ) . volume , 6 ) } } < / span > < span > 总材积重 : { { formatNumber ( measurementTotals ( outerMeasurementRows ) . volumetric ) } } < / span > < span > 重量体积 : { { formatNumber ( measurementTotals ( outerMeasurementRows ) . weightVolume , 6 ) } } < / span > < / div >
< div class = "measurement-total" > < strong > 合计 < / strong > < span > 箱数 : { { measurementTotals ( outerMeasurementRows ) . count ? ? '—' } } < / span > < span > 总毛重 : { { formatNumber ( measurementTotals ( outerMeasurementRows ) . gross ) } } < / span > < span > 总体积 : { { formatMeasurementVolume ( measurementTotals ( outerMeasurementRows ) . volume ) } } < / span > < span > 总材积重 : { { formatNumber ( measurementTotals ( outerMeasurementRows ) . volumetric ) } } < / span > < span > 重量体积 : { { formatMeasurementVolume ( measurementTotals ( outerMeasurementRows ) . weightVolume ) } } < / span > < / div >
< / div >
< / section >
< div class = "measurement-rule-selector" >
@@ -2678,7 +2703,7 @@ function orderDialogTitle(action: string, inboundCode?: string | null) {
< span v-if = "!measurementStrategyEditable" class="measurement-rule-selector__hint" > {{ measurementStrategyLockedHint }} < / span >
< / div >
< section class = "measurement-section" >
< div class = "measurement-section-title" > < button type = "button" class = "measurement-section-toggle" :aria-expanded = "!measurementCollapsed.actual" @click ="toggleMeasurementSection('actual')" > < h3 > 三 、 实际测量数据 < / h3 > < span v-if = "measurementCollapsed.actual" class="measurement-section-summary"><span>总件数:{{ measurementTotals(actualMeasurementRows).count ?? '—' }}</span><span>总毛重:{{ formatNumber(measurementTotals(actualMeasurementRows).gross) }}</span><span>总体积:{{ formatNumber (measurementTotals(actualMeasurementRows).volume, 6 ) }}</span><span>总材积重:{{ formatNumber(measurementTotals(actualMeasurementRows).volumetric) }}</span><span>重量体积:{{ formatNumber (measurementTotals(actualMeasurementRows).weightVolume, 6 ) }}</span></span><ChevronUp v-if="!measurementCollapsed.actual" :size="18" /><ChevronDown v-else :size="18" /></button><el-select class="measurement-section-mode" :model-value="measurementSectionModes.actual" aria-label="实际测量数据计算方式" @change="updateMeasurementSectionMode('actual', $event)"><el-option label="实测原尺寸(不调整)" value="ACTUAL" /><el-option label="箱规尺寸" value="ADD" /><el-option label="箱规系数" value="MULTIPLY" :disabled="multiplyModeDisabled" / > < / el-select > < / div >
< div class = "measurement-section-title" > < button type = "button" class = "measurement-section-toggle" :aria-expanded = "!measurementCollapsed.actual" @click ="toggleMeasurementSection('actual')" > < h3 > 三 、 实际测量数据 < / h3 > < span v-if = "measurementCollapsed.actual" class="measurement-section-summary"><span>总件数:{{ measurementTotals(actualMeasurementRows).count ?? '—' }}</span><span>总毛重:{{ formatNumber(measurementTotals(actualMeasurementRows).gross) }}</span><span>总体积:{{ formatMeasurementVolume (measurementTotals(actualMeasurementRows).volume) }}</span><span>总材积重:{{ formatNumber(measurementTotals(actualMeasurementRows).volumetric) }}</span><span>重量体积:{{ formatMeasurementVolume (measurementTotals(actualMeasurementRows).weightVolume) }}</span></span><ChevronUp v-if="!measurementCollapsed.actual" :size="18" /><ChevronDown v-else :size="18" /></button><el-select class="measurement-section-mode" :model-value="measurementSectionModes.actual" aria-label="实际测量数据计算方式" @change="updateMeasurementSectionMode('actual', $event)"><el-option label="实测原尺寸(不调整)" value="ACTUAL" /><el-option label="箱规尺寸" value="ADD" /><el-option label="箱规系数" value="MULTIPLY" :disabled="multiplyModeDisabled" / > < / el-select > < / div >
< div v-if = "!measurementCollapsed.actual" >
< div v-loading = "measurementLoading" class="detail-table-wrap" >
< el -table :data = "actualMeasurementRows" row -key = " id " border stripe empty -text = " 暂无实际测量数据 " >
@@ -2716,7 +2741,7 @@ function orderDialogTitle(action: string, inboundCode?: string | null) {
< / el-table-column >
< / el-table >
< / div >
< div class = "measurement-total" > < strong > 合计 < / strong > < span > 箱数 : { { measurementTotals ( actualMeasurementRows ) . count ? ? '—' } } < / span > < span > 总毛重 : { { formatNumber ( measurementTotals ( actualMeasurementRows ) . gross ) } } < / span > < span > 总体积 : { { formatNumber ( measurementTotals ( actualMeasurementRows ) . volume , 6 ) } } < / span > < span > 总材积重 : { { formatNumber ( measurementTotals ( actualMeasurementRows ) . volumetric ) } } < / span > < span > 重量体积 : { { formatNumber ( measurementTotals ( actualMeasurementRows ) . weightVolume , 6 ) } } < / span > < / div >
< div class = "measurement-total" > < strong > 合计 < / strong > < span > 箱数 : { { measurementTotals ( actualMeasurementRows ) . count ? ? '—' } } < / span > < span > 总毛重 : { { formatNumber ( measurementTotals ( actualMeasurementRows ) . gross ) } } < / span > < span > 总体积 : { { formatMeasurementVolume ( measurementTotals ( actualMeasurementRows ) . volume ) } } < / span > < span > 总材积重 : { { formatNumber ( measurementTotals ( actualMeasurementRows ) . volumetric ) } } < / span > < span > 重量体积 : { { formatMeasurementVolume ( measurementTotals ( actualMeasurementRows ) . weightVolume ) } } < / span > < / div >
< section class = "weight-evidence" aria -label = " 称重图片与服务端确认重量 " >
< div class = "weight-evidence__heading" >
< div > < h4 > 称重图片与确认重量 < / h4 > < / div >
@@ -2779,7 +2804,7 @@ function orderDialogTitle(action: string, inboundCode?: string | null) {
< template v-else >
< div v-if = "measurementReviewSelected" id="unified-orders-results" class="orders-status-toolbar" role="tabpanel" >
< InboundTaskList mode = "review" title = "订单列表" class = "is-embedded" @changed ="loadStatusCounts" >
< InboundTaskList ref = "measurementReviewList" :task-loader = "loadMeasurementReviewTasks" mode = "review" title = "订单列表" class = "is-embedded" @changed ="loadStatusCounts" >
< template # status -tabs >
< div ref = "statusTabList" class = "status-tabs density-status-tabs workbench-list-tabs" role = "tablist" aria -label = " 订单主状态 " :aria-busy = "statusCountsLoading" >
< button
@@ -2802,6 +2827,18 @@ function orderDialogTitle(action: string, inboundCode?: string | null) {
< ApiErrorMeta :details = "statusCountsError" / >
< / div >
< / template >
< template # filters = "{ loading: reviewLoading }" >
< div class = "orders-query-panel integrated-query-group" >
< QueryToolbar id = "unified-orders-advanced-filters" v-model = "filters" class="orders-query-toolbar" ariaLabel="订单列表筛选" :fields="queryFields" :available-fields="allQueryFields" preference-key="unified-orders-query-v2" :loading="reviewLoading" :search-on-reset="false" @search="search" @reset="reset" >
< template # actions >
< el-button :aria-expanded = "showAdvancedFilters" aria -controls = " unified -orders -advanced -filters " @click ="showAdvancedFilters = !showAdvancedFilters" >
< SlidersHorizontal :size = "16" / > { { showAdvancedFilters ? '收起筛选' : '高级筛选' } }
< ChevronUp v-if = "showAdvancedFilters" :size="15" /><ChevronDown v-else :size="15" / >
< / el-button >
< / template >
< / QueryToolbar >
< / div >
< / template >
< / InboundTaskList >
< / div >
< ListPageLayout v-else ariaLabel = "统一订单列表" >