import { ProSchemaValueEnumObj } from '@ant-design/pro-components'; import { BaseType } from 'typings'; /** * 将数组转换成 valueEnum 格式 * @param array 数据源数组 * @param options 转换配置 * @returns valueEnum 对象 */ export function transformToValueEnum( array: T[], options: BaseType.EnumTransformOptions = { value: 'id', label: 'name', status: 'status', color: 'color', }, ): ProSchemaValueEnumObj { const { value, label, status, color } = options; return array.reduce((acc, item: any) => { const key = String(item[value]); acc[key] = { text: String(item[label]), ...(status && item[status] ? { status: String(item[status]) } : {}), ...(color && item[color] ? { color: String(item[color]) } : {}), }; return acc; }, {} as ProSchemaValueEnumObj); } export function formatSource(type: string | undefined, utm?: string) { if (!type) return 'Unknon'; if (type === 'admin') return 'Web Admin'; if (type === 'typein') return 'Direct'; if (type === 'utm') return 'Source: ' + utm; return type + ': ' + utm; } export function formatShipmentState(state: string) { switch (state) { case 'draft': return '草稿'; case 'waiting-for-scheduling': return '等待调度'; case 'waiting-for-transit': return '等待运输'; case 'in-transit': return '运输中'; case 'delivered': return '已到达'; case 'exception': return '异常'; case 'missing': return '丢失'; case 'cancelled': return '取消'; default: return ''; } } export function formatUniuniShipmentState(state: string) { const UNIUNI_STATUS_ENUM = { '190': 'ORDER_RECEIVED', '192': 'CUSTOM_HOLD', '195': 'GATEWAY_TRANSIT_OUT', '198': 'CUSTOM_RELEASE_DIRECT', '199': 'GATEWAY_TRANSIT', '200': 'PARCEL_SCANNED', '202': 'IN_TRANSIT', '203': 'DELIVERED', '204': 'TRANSSHIPMENT', '206': 'WRONG_ADDRESS_FROM_TRANSIT', '207': 'PARCEL_LOST', '209': 'OTHER_EXCEPTION', '211': 'RETURN_OFFICE_FROM_TRANSIT', '212': 'WRONG_ADDRESS_FROM_RECEIVE', '213': 'STORAGE_30_DAYS_FROM_OFFICE', '214': 'STORAGE_30_DAYS_AFTER_SCAN', '215': 'PARCEL_ABANDONED', '216': 'SELF_PICK_UP', '217': 'TRANSSHIPMENT_COMPLETE', '218': 'SCANNED_PARCEL_MISSING', '219': 'WRONG_ROUTE_PARCEL', '220': 'SECOND_DELIVERY', '221': 'RETURNED_PARCEL_SCANNED', '222': 'REJECTED_PARCEL_FROM_TRANSIT', '223': 'CHANGED_ORDER_RESENT', '224': 'RESENT_ORDER_VOIDED', '225': 'FORWARDED_3RDPARTY', '226': 'STORAGE_3RDPARTY_SERVICE_POINT', '228': 'SECOND_DELIVERED', '229': 'DROP_OFF_SERVICE_POINTS', '230': 'RETURN TO SENDER WAREHOUSE', '231': 'FAILED_DELIVERY_RETRY1', '232': 'FAILED_DELIVERY_RETRY2', '255': 'Gateway_To_Gateway_Transit' } if (state in UNIUNI_STATUS_ENUM) { return UNIUNI_STATUS_ENUM[state]; } else { return '未知状态'; } }