diff --git a/web-admin/scripts/check-mp-pl-plan-card.mjs b/web-admin/scripts/check-mp-pl-plan-card.mjs new file mode 100644 index 000000000..0c82ee20f --- /dev/null +++ b/web-admin/scripts/check-mp-pl-plan-card.mjs @@ -0,0 +1,32 @@ +/** + * Mirrors formatPartyLine in src/utils/mp-pl-plan-card.ts — keep in sync. + * Usage: node web-admin/scripts/check-mp-pl-plan-card.mjs + */ + +function formatPartyLine(supplier, buyer) { + const s = (supplier || '').trim() || '—' + const b = (buyer || '').trim() || '—' + return `${s} → ${b}` +} + +function assert(cond, msg) { + if (!cond) { + console.error(msg) + process.exit(1) + } +} + +assert(formatPartyLine('安庆仓', '合肥某化') === '安庆仓 → 合肥某化', 'party') +assert(formatPartyLine('', null) === '— → —', 'empty') +assert(formatPartyLine(' ', undefined) === '— → —', 'whitespace') + +// buildPlanCard supplier/buyer/partyLine defaults (mirrors TS || '—' + formatPartyLine) +function resolveBuyer(plan) { + return plan.customerName || plan.destinationName || '—' +} +assert(resolveBuyer({ customerName: 'A' }) === 'A', 'buyer customer') +assert(resolveBuyer({ destinationName: 'B' }) === 'B', 'buyer destination') +assert(resolveBuyer({}) === '—', 'buyer empty') +assert(formatPartyLine(undefined, undefined) === '— → —', 'partyLine empty') + +console.log('check-mp-pl-plan-card: ok') diff --git a/web-admin/src/utils/mp-pl-plan-card.ts b/web-admin/src/utils/mp-pl-plan-card.ts index e33ed3086..519ddc88b 100644 --- a/web-admin/src/utils/mp-pl-plan-card.ts +++ b/web-admin/src/utils/mp-pl-plan-card.ts @@ -6,6 +6,12 @@ import { getPlPlanTypeLabel } from '@/utils/pl-display' +export function formatPartyLine(supplier?: string | null, buyer?: string | null) { + const s = (supplier || '').trim() || '—' + const b = (buyer || '').trim() || '—' + return `${s} → ${b}` +} + function productSummary(plan: Plan): string { const extra = (plan as Plan & { productSummary?: string }).productSummary if (extra) return extra @@ -20,6 +26,8 @@ function productSummary(plan: Plan): string { } export function buildPlanCard(plan: Plan) { + const supplier = plan.supplierName || '—' + const buyer = plan.customerName || plan.destinationName || '—' return { id: plan.id, planNo: plan.planNo || '—', @@ -29,6 +37,10 @@ export function buildPlanCard(plan: Plan) { statusTagType: getPlPlanFollowStatusTagType(plan.followStatus), plate: formatPlVehiclePlateDisplay(plan.licensePlate, plan.trailerNo) || '—', people: plan.personnelSummary || '—', - product: productSummary(plan) + product: productSummary(plan), + supplier, + buyer, + partyLine: formatPartyLine(plan.supplierName, plan.customerName || plan.destinationName), + follower: plan.followUserName || '—' } }