diff --git a/src/modules/ocean-bookings/pages/OceanBookingDetailView.release.test.ts b/src/modules/ocean-bookings/pages/OceanBookingDetailView.release.test.ts index ede51b83..3acb2e28 100644 --- a/src/modules/ocean-bookings/pages/OceanBookingDetailView.release.test.ts +++ b/src/modules/ocean-bookings/pages/OceanBookingDetailView.release.test.ts @@ -341,9 +341,9 @@ describe('OceanBookingDetailView one-click release', () => { expect(declaredInput.attributes('disabled')).toBeDefined() expect(declaredInput.attributes('aria-disabled')).toBe('true') } - vm.form.data.actualPackageCount = 480 - vm.form.data.actualGrossWeightKg = 14320.125 - vm.form.data.actualVolumeCbm = 65.321 + await wrapper.get('input[aria-label="实际件数"]').setValue('480') + await wrapper.get('input[aria-label="实际毛重"]').setValue('14320.125') + await wrapper.get('input[aria-label="实际体积"]').setValue('65.321') vm.actualReason = ' 实装后补录 ' await flushPromises() expect(vm.printDisabledReason).toContain('请先保存') @@ -354,6 +354,29 @@ describe('OceanBookingDetailView one-click release', () => { expect(vm.actualReason).toBe('') expect(vm.hasUnsavedActualChanges).toBe(false) expect(vm.form.data.declaredPackageCount).toBe(500) + expect((wrapper.get('input[aria-label="实际件数"]').element as HTMLInputElement).value).toBe('480') + expect((wrapper.get('input[aria-label="实际毛重"]').element as HTMLInputElement).value).toBe('14320.125') + expect((wrapper.get('input[aria-label="实际体积"]').element as HTMLInputElement).value).toBe('65.321') + wrapper.unmount() + }) + + it('shows the saved server values after input and blur without a change event', async () => { + vi.mocked(getOceanBooking).mockResolvedValue(booking('RELEASED')) + vi.mocked(updateOceanBookingActualCargo).mockResolvedValue({ ...booking('RELEASED', 4), actualPackageCount: 480, actualGrossWeightKg: 14320.125, actualVolumeCbm: 65.321 }) + const { vm, wrapper } = await mountView() + for (const [label, value] of [['实际件数', '480'], ['实际毛重', '14320.125'], ['实际体积', '65.321']] as const) { + const input = wrapper.get(`input[aria-label="${label}"]`) + const element = input.element as HTMLInputElement + element.value = value + await input.trigger('input') + await input.trigger('blur') + } + vm.actualReason = '补录' + await vm.saveActualCargo() + await flushPromises() + for (const [label, value] of [['实际件数', '480'], ['实际毛重', '14320.125'], ['实际体积', '65.321']] as const) { + expect((wrapper.get(`input[aria-label="${label}"]`).element as HTMLInputElement).value).toBe(value) + } wrapper.unmount() }) diff --git a/src/modules/ocean-bookings/pages/OceanBookingDetailView.vue b/src/modules/ocean-bookings/pages/OceanBookingDetailView.vue index 4652431a..3c5a70b5 100644 --- a/src/modules/ocean-bookings/pages/OceanBookingDetailView.vue +++ b/src/modules/ocean-bookings/pages/OceanBookingDetailView.vue @@ -514,13 +514,13 @@ onMounted(() => { void load(); void loadOptions() })

货物信息

- +
件数(委 / 实)
- + {{ form.data.packageUnit || '—' }}
@@ -529,7 +529,7 @@ onMounted(() => { void load(); void loadOptions() })
- + KGS
@@ -538,7 +538,7 @@ onMounted(() => { void load(); void loadOptions() })
- + CBM