This commit is contained in:
2026-10-26 13:58:52 +08:00
parent 7688f859c7
commit 6580853ad3
6 changed files with 28 additions and 15 deletions
@@ -166,7 +166,7 @@ onMounted(initialize)
</script>
<template>
<AdminPage class="admin-density admin-workbench"><OperationErrorToast :details="mutationError" />
<AdminPage spacing="compact" class="pallet-page admin-density admin-workbench"><OperationErrorToast :details="mutationError" />
<section class="summary-grid" aria-label="海外托盘数量概览">
<article class="workbench-metric workbench-tone is-compact" data-tone="blue">
<div class="workbench-metric-heading"><span class="workbench-icon is-compact"><Layers aria-hidden="true" /></span><h2 class="workbench-metric-label">托盘总数</h2></div>
@@ -220,6 +220,7 @@ onMounted(initialize)
</template>
<style scoped>
.pallet-page.admin-page.is-spacing-compact { gap: var(--admin-space-3); }
.pallet-editor-table { table-layout: fixed; }
.pallet-editor-table td:not([colspan]) { width: 50%; }
@@ -111,6 +111,8 @@ describe('OrderDeclarationEditorDialog', () => {
expect(listWarehouseLogisticsChannels).toHaveBeenCalledWith('700000000000000001')
expect(wrapper.text()).toContain('国内收货仓和中转仓不可修改,如需变更请重新下单')
expect(wrapper.text()).toContain('RK-001')
expect(wrapper.get('.readonly-facts').text()).not.toContain('版本')
expect(wrapper.findComponent({ name: 'ElDescriptions' }).props('column')).toBe(3)
const volume = wrapper.findComponent({ name: 'ElInputNumber' })
expect(volume.props()).toMatchObject({ min: 0.0001, precision: 4, controls: false, modelValue: 0.625 })
volume.vm.$emit('update:modelValue', 0.875)
@@ -244,24 +244,23 @@ async function save() {
<section class="density-dialog-section" data-tone="source">
<h3 class="density-dialog-section__title">原订单资料</h3>
<el-descriptions :column="4" border class="readonly-facts density-descriptions">
<el-descriptions :column="3" border class="readonly-facts density-descriptions">
<el-descriptions-item label="入仓码">{{ detail.summary.inboundCode || '—' }}</el-descriptions-item>
<el-descriptions-item label="国内收货仓">{{ detail.summary.receivingWarehouseName || '—' }}</el-descriptions-item>
<el-descriptions-item label="目的仓/中转仓">{{ detail.summary.destinationWarehouseName || '—' }}</el-descriptions-item>
<el-descriptions-item label="版本">{{ form.expectedVersion }}</el-descriptions-item>
</el-descriptions>
</section>
<section class="density-dialog-section" data-tone="work">
<h3 class="density-dialog-section__title">订单申报资料</h3>
<el-form label-position="left" label-width="110px" class="order-fields density-form">
<el-form label-position="left" label-width="110px" class="order-fields density-form density-form--outlined">
<div class="workbench-evidence"><table class="density-table density-table--editable order-declaration-fields" aria-label="订单申报资料">
<colgroup><col style="width: 40%"><col style="width: 27%"><col style="width: 33%"></colgroup>
<tbody>
<tr>
<td><el-form-item label="渠道名称" required><el-select v-model="form.channelCode" aria-label="渠道名称" filterable clearable :loading="channelsLoading" placeholder="请选择正式渠道" @change="selectChannel"><el-option v-for="channel in channels" :key="channel.channelCode" :label="`${channel.channelName} · ${channel.channelCode}`" :value="channel.channelCode" /></el-select></el-form-item></td>
<td><el-form-item label="渠道编码"><span aria-label="渠道编码">{{ form.channelCode || '—' }}</span></el-form-item></td>
<td><el-form-item label="预估体积(m³)"><el-input-number v-model="form.estimatedVolumeCbm" :min="0.0001" :precision="4" :controls="false" aria-label="预估体积(m³)" placeholder="请输入预估体积(选填)" /></el-form-item></td>
<td><el-form-item label="预估体积(m³)"><el-input-number v-model="form.estimatedVolumeCbm" :min="0.0001" :precision="4" :controls="false" aria-label="预估体积(m³)" placeholder="选填" /></el-form-item></td>
</tr>
<tr>
<td><el-form-item label="预计到货时间"><el-date-picker v-model="form.expectedArrivalAt" type="datetime" value-format="YYYY-MM-DDTHH:mm:ss" format="YYYY-MM-DD HH:mm" aria-label="预计到货时间" clearable /></el-form-item></td>
@@ -345,7 +345,7 @@ onMounted(() => {
</script>
<template>
<AdminPage as="div" class="pallet-page admin-density admin-workbench">
<AdminPage as="div" spacing="compact" class="pallet-page admin-density admin-workbench">
<section class="summary-grid" aria-label="托盘数量概览">
<article class="workbench-metric workbench-tone is-compact" data-tone="blue">
<div class="workbench-metric-heading"><span class="workbench-icon is-compact"><Layers aria-hidden="true" /></span><h2 class="workbench-metric-label">托盘总数</h2></div>
@@ -487,7 +487,8 @@ onMounted(() => {
</template>
<style scoped>
.pallet-page { display: grid; min-width: 0; gap: var(--admin-space-6, 16px); }
.pallet-page { display: grid; min-width: 0; }
.pallet-page.admin-page.is-spacing-compact { gap: var(--admin-space-3); }
.summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--workbench-grid-gap); }
.table-panel { min-width: 0; }
.context-empty { padding: var(--admin-space-6, 16px); color: var(--workbench-muted); text-align: center; }