46、ztree 数据格式转换

84 阅读1分钟

1、 标准 JSON 数据

image.png

image.png

2、# 简单 JSON 数据

image.png

image.png

3、简单数据转化成标准ztree数据

    /**
     * @method simpleToArray 简单数据转化成ztree数据
     * @param params simple设置
     ***/
    simpleToArray(sNodes, params = {}) {
        var i, l,
            key = params.idKey || 'id',
            val = 'value',
            kk = 'key',
            title = 'title',
            name = params.nameKey || 'name',
            parentKey = params.parentKey || 'pId',
            childKey = 'children'
        if (!key || !sNodes) return [];
        if (Object.prototype.toString.apply(sNodes) === "[object Array]") {
            var r = [];
            var tmpMap = {};
            for (i = 0, l = sNodes.length; i < l; i++) {
                tmpMap[sNodes[i][key]] = sNodes[i];
                sNodes[i][kk] = sNodes[i][val] = sNodes[i][key]
                sNodes[i][title] = sNodes[i][name]
            }
            for (i = 0, l = sNodes.length; i < l; i++) {
                if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] !== sNodes[i][parentKey]) {
                    if (!tmpMap[sNodes[i][parentKey]][childKey])
                        tmpMap[sNodes[i][parentKey]][childKey] = []
                    tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i])
                } else {
                    r.push(sNodes[i])
                }
            }
            return r
        }
        return [sNodes]
    },
    
    //使用
   //simpleToArray([...resData])