fix(admin): update submitted measurement calculation strategy

This commit is contained in:
2026-09-10 11:02:52 +08:00
parent fc0226d4cb
commit 6a038c89ca
6 changed files with 74 additions and 69 deletions
@@ -7,11 +7,11 @@ const source = readFileSync(resolve(process.cwd(), 'src/modules/unified-orders/p
const routeSource = readFileSync(resolve(process.cwd(), 'src/modules/unified-orders/routes.ts'), 'utf8').replace(/\r\n/g, '\n')
describe('UnifiedOrdersView contract', () => {
it('loads the reference unit price while rechecking the confirmation lock before sending', () => {
it('loads the reference unit price and lets the backend enforce the combined final lock', () => {
const openDialogSource = source.slice(source.indexOf('async function openFeeConfirmDialog()'), source.indexOf('async function executeConfirmAndSendFee()'))
const sendFeeSource = source.slice(source.indexOf('async function executeConfirmAndSendFee()'), source.indexOf('function handleOrderSelectionChange'))
expect(openDialogSource).toContain('getLatestInboundFee')
expect(sendFeeSource).toContain('getLatestInboundFee')
expect(sendFeeSource).not.toContain('getLatestInboundFee')
expect(sendFeeSource).toContain('adjustPublishedInboundFee')
expect(source).toContain('价格表参考单价')
expect(source).toContain('本次对客单价')
@@ -385,7 +385,7 @@ describe('UnifiedOrdersView contract', () => {
expect(source).toContain('label="箱规系数" value="MULTIPLY"')
})
it('keeps preview modes independent and only persists outer-carton selectors while the measurement draft is editable', () => {
it('keeps preview modes independent and persists outer-carton strategy through its dedicated endpoint', () => {
expect(source).toContain("measurementSectionModes = reactive<Record<MeasurementSection, MeasurementCalculationMode>>")
expect(source).toContain(':model-value="measurementSectionModes.customer"')
expect(source).toContain(':model-value="measurementSectionModes.outer"')
@@ -395,10 +395,10 @@ describe('UnifiedOrdersView contract', () => {
expect(source).not.toContain("updateMeasurementSectionMode('outer', $event)")
expect(source.match(/@change="selectAndSaveOuterMeasurementMode\(\$event\)"/g)).toHaveLength(2)
expect(source).not.toContain('@visible-change="handleOuterModeDropdownVisibleChange($event)"')
expect(source.match(/:disabled="Boolean\(measurementStrategySavingId\) \|\| !measurementDraftEditable"/g)).toHaveLength(2)
expect(source).toContain("measurementDetail.value?.processStatus === 'MEASURE_PENDING'")
expect(source).toContain('测量已提交待审核;如需修改箱规计算规则,请先退回测量')
expect(source).toContain('if (!measurementDraftEditable.value)')
expect(source.match(/:disabled="Boolean\(measurementStrategySavingId\) \|\| !measurementStrategyEditable"/g)).toHaveLength(2)
expect(source).toContain('const measurementStrategyEditable = computed')
expect(source).toContain('客户已确认且该票已装柜完成后,箱规计算规则将冻结')
expect(source).toContain('if (!measurementStrategyEditable.value)')
expect(source).toContain('const previousMode = measurementSectionModes.outer')
expect(source).toContain('if (!saved) measurementSectionModes.outer = previousMode')
expect(source).not.toContain('handleOuterModeDropdownVisibleChange')
@@ -432,11 +432,8 @@ describe('UnifiedOrdersView contract', () => {
expect(source).not.toContain(':disabled="confirmFeeSending || measurementLoading || !hasActualMeasurementData"')
expect(source).toContain('selectAndSaveOuterMeasurementMode($event)')
expect(source).toContain('const saved = await updateMeasurementCalculationMode(null, mode, ruleId)')
expect(source).toContain('coefficientMode: targetIds.has(String(item.id)) ? mode')
expect(source).toContain('outerLengthCm: item.outerLengthCm')
expect(source).toContain('outerWidthCm: item.outerWidthCm')
expect(source).toContain('outerHeightCm: item.outerHeightCm')
expect(source).toContain('const savedDraft = await saveInboundMeasurementDraft')
expect(source).toContain('coefficientMode: mode')
expect(source).toContain('const savedDraft = await updateMeasurementCalculationStrategy')
expect(source).toContain('version: savedDraft.version')
expect(source).toContain('waitForSavedMeasurementVersion(')
expect(source).toContain('Number(refreshed.version) >= savedVersion')