优化
This commit is contained in:
@@ -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; }
|
||||
|
||||
@@ -285,6 +285,9 @@
|
||||
--el-input-hover-border-color: var(--el-color-primary);
|
||||
--el-input-bg-color: var(--admin-surface);
|
||||
}
|
||||
:is(.admin-density, .admin-density-dialog) .density-form--outlined {
|
||||
--el-border-radius-base: var(--cc-radius-lg);
|
||||
}
|
||||
:is(.admin-density, .admin-density-dialog) .density-form--outlined :is(.el-input, .el-textarea) {
|
||||
--el-input-border-color: var(--el-border-color);
|
||||
--el-input-hover-border-color: var(--el-border-color-hover);
|
||||
|
||||
@@ -219,12 +219,16 @@ const cssRoot = (css: string) => {
|
||||
}
|
||||
|
||||
describe('approved Admin density ownership', () => {
|
||||
it('keeps domestic pallet metric appearance owned by shared workbench styles', () => {
|
||||
const page = parse(read('modules/warehouse-resources/pallets/pages/PalletsView.vue')).descriptor
|
||||
const css = page.styles.map(style => style.content).join('\n')
|
||||
expect(page.template!.content).toContain('workbench-metric workbench-tone is-compact')
|
||||
expect(css).not.toMatch(/\.summary-grid\s+(?:article|span|strong|\.idle|\.occupied)\b/)
|
||||
expect(css).not.toMatch(/\.workbench-metric[\s.{]/)
|
||||
it('keeps pallet overview spacing and metric appearance owned by shared primitives', () => {
|
||||
for (const file of ['warehouse-resources/pallets/pages/PalletsView.vue', 'overseas-warehouse/pages/PalletsView.vue']) {
|
||||
const page = parse(read(`modules/${file}`)).descriptor
|
||||
const css = page.styles.map(style => style.content).join('\n')
|
||||
expect(page.template!.content, file).toMatch(/<AdminPage\b[^>]*spacing="compact"/)
|
||||
expect(css, file).toContain('.pallet-page.admin-page.is-spacing-compact { gap: var(--admin-space-3); }')
|
||||
expect(page.template!.content, file).toContain('workbench-metric workbench-tone is-compact')
|
||||
expect(css, file).not.toMatch(/\.summary-grid\s+(?:article|span|strong|\.idle|\.occupied)\b/)
|
||||
expect(css, file).not.toMatch(/\.workbench-metric[\s.{]/)
|
||||
}
|
||||
})
|
||||
|
||||
it('lets local transport editors fill the workspace and keeps form density in shared primitives', () => {
|
||||
@@ -308,6 +312,9 @@ describe('approved Admin density ownership', () => {
|
||||
'--el-input-hover-border-color': 'var(--el-border-color-hover)',
|
||||
'--el-input-bg-color': 'var(--admin-surface)',
|
||||
})
|
||||
expect(rules.get(':is(.admin-density, .admin-density-dialog) .density-form--outlined')).toEqual({
|
||||
'--el-border-radius-base': 'var(--cc-radius-lg)',
|
||||
})
|
||||
const customerRules = new Map<string, Record<string, string>>()
|
||||
cssRoot(read('modules/customers/customerDensity.css')).walkRules(rule => {
|
||||
const values: Record<string, string> = {}
|
||||
@@ -356,10 +363,10 @@ describe('approved Admin density ownership', () => {
|
||||
})
|
||||
}
|
||||
})
|
||||
it('keeps declaration order fields on the continuous cell-editor baseline', () => {
|
||||
it('keeps declaration order fields outlined within the continuous cell-editor layout', () => {
|
||||
const source = read('modules/unified-orders/components/OrderDeclarationEditorDialog.vue')
|
||||
const orderFields = source.slice(source.indexOf('<el-form label-position="left"'), source.indexOf('</el-form>') + '</el-form>'.length)
|
||||
expect(orderFields).toContain('class="order-fields density-form"')
|
||||
expect(orderFields).toContain('class="order-fields density-form density-form--outlined"')
|
||||
expect(orderFields).toContain('density-table density-table--editable')
|
||||
expect(orderFields).not.toMatch(/<el-(?:row|col)\b/)
|
||||
expect(orderFields).toContain('<span aria-label="渠道编码">')
|
||||
|
||||
Reference in New Issue
Block a user