根据父级属性,计算相加或者相减的递归

这个估计用到的不多

上级为借  余额= 借额 - 贷额

上级为贷  余额 =贷额 - 借额


多级列表


--贷

----借

----贷

------借

--借

--贷


/*
  data  对象
  name 对象内需要计算的key

*/

// 根据借贷关系公式,获取字段得最终值
export function getChildrenNameSize(data, name) {
    const { balanceDirect } = data
    let J = []
    let size = 0
    const D = data.children.filter(v => {
        if (v.balanceDirect == 'J') J.push(v)
        return v.balanceDirect == 'D'
    }, [])
    // 借金额
    const Jmoney = J && J.reduce((pre, cur) => {
        let val = cur[name]
        if (cur.children) val = getChildrenNameSize(cur, name)
        return pre + +val
    }, 0)
    // 贷金额
    const Dmoney = D && D.reduce((pre, cur) => {
        let val = cur[name]
        if (cur.children) val = getChildrenNameSize(cur, name)
        return pre + +val
    }, 0)
    // 根据上级计算 实际金额
    if (balanceDirect == 'J') {
        size = Jmoney - Dmoney
    } else {
        size = Dmoney - Jmoney
    }
    return size

}


相关内容

发表评论

验证码:
点击我更换图片

最新评论