分页处理

69 阅读1分钟
export const transformShowList = (data, currentList): any[] => {
    const result: any = [];
    try {
        /** 获取上一页数据的的最后一条的费率类型commissionType */
        let lastCommissionType: any = null;
        if (currentList && currentList.length) {
            const last = currentList[currentList.length - 1];
            lastCommissionType = commissionTypeMap[last?.commissionType];
        }
        /** 格式化数据 */
        const temp = data.map((item: any) => ({
            ...item,
            commissionTypeText: commissionTypeMap[item?.commissionType],
            showSku: item.commissionType === commissionType.SKU_TR_COMMISSION,
            cardItem: processCardItem(item),
            categoryName: item.categoryName || '不限',
            isDeleteRate: commissionChangeType.DELETE === item.changeType,
            showIcon: showIconMessage.includes(item.commissionType),
            isConfirmed: item.confirmStatus === confirmStatus.confirmed,
        }));
        temp.forEach((item: any) => {
            if (!result.length) {
                /** 如果是第一条数据,判断与上一页最后一条费率是否相同 */
                const isSameWithLast = lastCommissionType === item.commissionTypeText;
                if (!item.commissionTypeText || isSameWithLast) {
                    result.push(item);
                } else {
                    result.push({ ...item, differentRate: true });
                }
            } else {
                /** 如果不是第一条数据,判断与上一条数据费率是否相同 */
                if (!item.commissionTypeText || item.commissionTypeText === result[result.length - 1].commissionTypeText) {
                    result.push(item);
                } else {
                    result.push({ ...item, differentRate: true });
                }
            }
        });
        return result;
    } catch (error) {
        console.error(error);
        return result;
    }
    
};