/** * 预测单状态 → el-tag type 映射 * * 颜色语义: * - blue (蓝): 进行中状态 — SUBMITTED/PLAN_RECEIVED/SCHEDULED * - green (绿): 成功终态 — FULL_CONVERTED * - red (红): 驳回 — REJECTED * - orange (橙): 部分完成 — PARTIAL_CONVERTED * - gray (灰): 草稿/释放/作废 — DRAFT/RELEASED/DISCARDED */ export function getForecastOrderStatusTagType(status: string): 'primary' | 'success' | 'danger' | 'warning' | 'info' { switch (status) { case 'SUBMITTED': case 'PLAN_RECEIVED': case 'SCHEDULED': return 'primary' // 蓝色 - 进行中 case 'FULL_CONVERTED': return 'success' // 绿色 - 完成 case 'REJECTED': return 'danger' // 红色 - 驳回 case 'PARTIAL_CONVERTED': return 'warning' // 橙色 - 部分完成 case 'DRAFT': case 'RELEASED': case 'DISCARDED': default: return 'info' // 灰色 - 草稿/释放/作废 } } /** * 变更单状态 → el-tag type 映射 */ export function getChangeOrderStatusTagType(status: string): 'primary' | 'success' | 'danger' | 'warning' | 'info' { switch (status) { case 'SUBMITTED': return 'primary' // 蓝色 - 审批中 case 'CHANGED': return 'success' // 绿色 - 已变更 case 'REJECTED': return 'danger' // 红色 - 已驳回 case 'DRAFT': case 'DISCARDED': default: return 'info' // 灰色 - 草稿/作废 } } /** * 获取状态标签 effect 属性 * 已驳回状态使用 dark 效果以突出显示 */ export function getStatusTagEffect(status: string): 'light' | 'dark' { return status === 'REJECTED' ? 'dark' : 'light' }