import type { PlanDelivery, PlanLoad } from '@/api/pl' import { useDictStore } from '@/store/modules/dict' import { formatDate } from '@/utils/format' import { formatStopDibangLabel } from '@/utils/pl-plan-list-display-rows' /** 移动端运输计划:日期只展示到年月日 */ export function formatMpPlanYmd(value?: string | number | Date | null): string { if (value == null || value === '') return '—' const text = formatDate(value) if (text) return text const raw = String(value).trim() return raw.slice(0, 10) || '—' } export function formatMpPlanYmdList(values?: Array | null): string { const parts = (values || []) .map((item) => formatMpPlanYmd(item)) .filter((item) => item && item !== '—') return parts.length ? [...new Set(parts)].join('、') : '—' } export function resolveMpDictLabel( dictType: string, value?: string | null, emptyFallback = '—' ): string { const raw = String(value || '').trim() if (!raw) return emptyFallback const dictStore = useDictStore() return dictStore.getLabel(dictType, raw) || raw } /** 产品单位:dun → 吨 */ export function resolveMpProductUnitLabel(unit?: string | null): string { return resolveMpDictLabel('crm_product_unit', unit) } /** 包装规格字典 */ export function resolveMpPackageSpecLabel(spec?: string | null): string { return resolveMpDictLabel('crm_product_gg', spec) } /** 送货方式字典 */ export function resolveMpDeliveryMethodLabel(method?: string | null): string { return resolveMpDictLabel('crm_shfs', method) } /** 地磅:未生成 / 出库 / 入库(不用 outbound 等编码) */ export function formatMpStopDibangText( stop: Pick | null | undefined ): string { if (!stop) return '—' return formatStopDibangLabel(stop as PlanLoad | PlanDelivery) || '未生成' }