UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

67 lines (59 loc) 2.55 kB
// 获取walletPass可用最大金额 export var getAvailableMaxAmount = function getAvailableMaxAmount(data) { if (typeof data._available_max_amount === 'number') { return data._available_max_amount; } return data.tag !== 'point_card' ? data.available_max_amount : data === null || data === void 0 ? void 0 : data.recommended_usage_amount; }; /** * 将walletPass列表数据转换为prepare_payments需要的数据格式 * @param list */ export var formatWalletPassList2PreparePayments = function formatWalletPassList2PreparePayments(list) { return (list || []).map(function (item) { return { voucher_id: item.id || 0, amount: Number(item.edit_current_amount || getAvailableMaxAmount(item)) || 0, tag: item.tag || '', wallet_pass_use_value: item.recommended_usage_par_value, wallet_pass_usage_unit: item.wallet_pass_usage_unit }; }); }; /** * 对用户识别码列表进行排序 * 排序规则:正常数据 -> unified_available_status===1 -> 500601/500602 -> unified_available_status===0 * @param list 用户识别码列表 * @returns 排序后的列表 */ export var sortUserIdentificationCodeList = function sortUserIdentificationCodeList(list) { if (!Array.isArray(list) || list.length === 0) { return list; } // 定义中等优先级错误码 var middlePriorityErrorCodes = ['500601', '500602']; return list.sort(function (a, b) { // 确定每个项目的优先级 // 0: 正常数据(没有特定错误码且available_status不是1或0) // 1: unified_available_status === 1 // 2: 中等优先级错误码(500601、500602) 此订单内不可用 订单没有剩余金额 // 3: unified_available_status === 0(最后) var getPriority = function getPriority(item) { var _item$unified_error_c; var errorCode = (_item$unified_error_c = item.unified_error_code) === null || _item$unified_error_c === void 0 ? void 0 : _item$unified_error_c.toString(); var availableStatus = item.unified_available_status; // 中等优先级错误码 if (errorCode && middlePriorityErrorCodes.includes(errorCode)) return 2; // unified_available_status === 0 最后 if (availableStatus === 0) return 3; // unified_available_status === 1 if (availableStatus === 1) return 1; // 正常数据 return 0; }; var aPriority = getPriority(a); var bPriority = getPriority(b); // 按优先级排序,优先级相同则保持原有顺序 return aPriority - bPriority; }); };