utilts.js 1.84 KB
import moment from 'moment'

/** 将全部二级路由转为一级路由 */
export const getAllRouter = route => {
    const childRoute = []
    if (!route) return childRoute
    route.map(e => childRoute.push(...e.childMenus))
    return childRoute
}

export const downFile = res => {
    let fileName = res.headers['content-disposition'].replace(/.*?filename=/ig, '')
    fileName = decodeURIComponent(fileName)

    const ready = new FileReader()
    ready.onload = () => {
        let a = document.createElement('a')
        a.href = ready.result
        a.download = fileName
        a.click()
    }

    ready.readAsDataURL(res.data)

}

/**
 * 日期范围组件限定可选日期
 * @param {*} current
 */
export const disabledDate = (current) => {
    return current > moment().endOf('day')
}

// 防止丢失精度 除法
export function numDiv(arg1, arg2 = 100) {
    if (!arg1) return 0
    var r1 = (typeof arg1 === "number" ? arg1.toString() : arg1),
        r2 = (typeof arg2 === "number" ? arg2.toString() : arg2),
        m,
        resultVal, d = arguments[2]
    m = (r2.split(".")[1] ? r2.split(".")[1].length : 0) - (r1.split(".")[1] ? r1.split(".")[1].length : 0)
    resultVal = Number(r1.replace(".", "")) / Number(r2.replace(".", "")) * Math.pow(10, m)
    return typeof d !== "number" ? Number(resultVal) : Number(resultVal.toFixed(parseInt(d)))
}

/**
* @function: 数字使用千分位符显示
* @param: money 数字或字符串类型, 传入分
* @returns 返回元并使用分位符显示字符串
* */
export function formatMoney(number) {
    if (!number) return 0
    let money = numDiv(number)
    let result = null
    let num = Number(money).toFixed(2)
    result = Number(num).toLocaleString('en-US')
    if (result.indexOf('.') === -1)
        return result + '.00'
    else
        return result.split('.')[1].length >= 2 ? result : result + '0'
}