import { serviceURL } from '@/services/request/index';
import moment, { Moment } from 'moment';

function getMtpUlr(): string {
    return serviceURL.openApiUrl.replace('/mtp2-onlineopen', '/mtp2manage');
}

/** 图片路径格式化_mtp2manage */
function imgFormat(param: string): string {
    let result = '';
    if (param) {
        result = getMtpUlr() + param.replace('./', '/');
    }
    return result;
}

/** 图片路径格式化 */
export const getImg = (imgURl: string): string => {
    let result = '';
    if (imgURl) {
        const uploadUrl = serviceURL.openApiUrl;
        result = uploadUrl + imgURl.replace('./', '/');
    }
    return result;
};

/**
 * 获取图片完整地址
 * @param params 服务返回的图片地址
 * @return string 单张图片地址
 * @return string[】 多张图片地址
 */
export function getImgUrl(params: string): string[] {
    if (params.includes(',')) {
        //  多张图片，用逗号隔开
        const arr = params.split(',');
        return arr.map((e) => imgFormat(e));
    } else {
        return [imgFormat(params)];
    }
}

export function getGoodsDesc(param: string): string {
    const url = getMtpUlr();
    const result = '<div class="txt2em">' + param.replace(/[\n]/g, '</div><div class="txt2em">') + '</div>';
    return result.replace(/<p class=\"txt2em\"><\/p>/gi, '<p class="txt2em">&nbsp;</p>').replace(/.\/uploadFile/g, `${url}/uploadFile/`);
}

/**
 * 格式化空字符情况，如果传入字符串且为空时候返回 --，传入数字且为空时候 返回 0，其它返回本身
 */
export function formatValue(value: number | string) {
    if (typeof value === 'number') {
        return value ? value : 0;
    } else {
        return value ? value : '--'
    }
}

type TIME = 's' | 'm' | 'd' | 'hm'
/**
 * 格式化时间
 * @param value
 * @param type 's' => 格式: YYYY-MM-DD HH:mm:ss ;  'm'  => 格式: YYYY-MM-DD HH:mm ;  'd' => 'YYYY-MM-DD'
 * @returns
 */
export function formatTime(value: string | Date | Moment, type?: TIME) {
    let str = 'YYYY-MM-DD HH:mm:ss';
    if (type === 'd') {
        str = 'YYYY-MM-DD'
    } else if (type === 'm') {
        str = 'YYYY-MM-DD HH:mm'
    } else if (type === 'hm') {
        str = 'HH:mm'
    }
    if (value === '--') return '';
    if (value) return moment(value).format(str);
    return value;
}


export function formatNumber(value: number, decimals: number): string {
    if (value === undefined) {
        return "0"
    }
    return value.toFixed(decimals)
}
