fix(admin): align booking files with upload contract

This commit is contained in:
2026-08-31 19:59:17 +08:00
parent a759eb1b6b
commit 09579ea285
4 changed files with 50 additions and 3 deletions
@@ -54,6 +54,9 @@ describe('OceanBookingDetailView draft and release contract', () => {
it('performs the complete release gate and presents the irreversible warning', () => {
expect(source).toContain('function releaseValidationError()')
expect(source).toContain('预计到港时间不能早于预计开船时间')
expect(source).toContain('放舱前请填写起运港代码或名称')
expect(source).toContain('放舱前请填写目的港代码或名称')
expect(source).toContain("[form.data.placeOfDelivery, '交货地点']")
expect(source).toContain("[form.data.customerId, '客户']")
expect(source).toContain("if (!form.data.carrierCode) return '放舱前请重新选择船公司,所选船公司必须配置标准编码'")
expect(source).not.toContain('请先保存草稿后再放舱')
@@ -299,11 +299,14 @@ async function openReleaseDialog() {
}
function releaseValidationError() {
if (!form.data.carrierCode) return '放舱前请重新选择船公司,所选船公司必须配置标准编码'
if (!form.data.departurePortCode?.trim() && !form.data.departurePortName?.trim()) return '放舱前请填写起运港代码或名称'
if (!form.data.destinationPortCode?.trim() && !form.data.destinationPortName?.trim()) return '放舱前请填写目的港代码或名称'
const requiredFields: Array<[unknown, string]> = [
[form.data.customerId, '客户'], [form.data.warehouseId, '装柜仓库'], [form.data.channelCode, '物流渠道'],
[form.data.billOfLadingNo, '提单号'], [form.data.vesselName, '船名'], [form.data.voyageNo, '航次'],
[form.data.estimatedSailingAt, '预计开船时间'], [form.data.estimatedArrivalAt, '预计到港时间'],
[form.data.serviceTerm, 'Service Term'], [form.data.freightTerm, 'Freight Term'],
[form.data.placeOfDelivery, '交货地点'],
[form.data.shippingCompanyId, '船公司'], [form.data.bookingAgentId, '订舱代理'],
]
const missing = requiredFields.find(([value]) => !String(value || '').trim())