forked from yoone/WEB
106 lines
2.9 KiB
TypeScript
106 lines
2.9 KiB
TypeScript
import { ProSchemaValueEnumObj } from '@ant-design/pro-components';
|
|
import { BaseType } from 'typings';
|
|
|
|
/**
|
|
* 将数组转换成 valueEnum 格式
|
|
* @param array 数据源数组
|
|
* @param options 转换配置
|
|
* @returns valueEnum 对象
|
|
*/
|
|
export function transformToValueEnum<T>(
|
|
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 '未知状态';
|
|
}
|
|
}
|