国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

后裝業(yè)務(wù)管理平臺項(xiàng)目總結(jié)

nidaye / 2353人閱讀

摘要:通過建立樹形結(jié)構(gòu)后臺傳輸?shù)臄?shù)據(jù),這里為了不影響閱讀,刪除掉了不必要的部分?jǐn)?shù)據(jù)格式操作成功租戶下所有部門部門部門部門名稱部門,以及部門格式為,二級部門格式為,以此類推部門的上級部門,如果為表示該部門為頂級部門租戶該部門下綁定車輛數(shù)部門租戶信息

通過id、parentId建立樹形結(jié)構(gòu)

后臺傳輸?shù)?b>json數(shù)據(jù),這里為了不影響閱讀,刪除掉了不必要的部分

數(shù)據(jù)格式
{
    "httpCode": 200,
    "code": 200,
    "message": "操作成功",
    "data": {
        "orgList": [ // 租戶下所有部門
            {
                "id": 88, //部門id
                "name": "部門1", //部門名稱
                "orgCode": "/38/88/",  //部門code,以及部門格式為/**/,二級部門格式為/**/**/,以此類推
                "parentId": null, //部門的上級部門id,如果parentId為null表示該部門為頂級部門
                "tenantId": 38, //租戶Id
                "binds": 0 //該部門下綁定車輛數(shù)
            },
            {
                "id": 90,
                "name": "part2",
                "orgCode": "/38/88/90/",
                "parentId": 88,
                "tenantId": 38,
                "binds": 0
            },
            {
                "id": 92,
                "name": "part3",
                "orgCode": "/38/88/90/92/",
                "parentId": 90,
                "tenantId": 38,
                "binds": 0
            },
            {
                "id": 93,
                "name": "part4",
                "orgCode": "/38/88/90/92/93/",
                "parentId": 92,
                "tenantId": 38,
                "binds": 0
            },
            {
                "id": 96,
                "name": "部門2",
                "orgCode": "/38/96/",
                "parentId": null,
                "tenantId": 38,
                "binds": 1
            },
            {
                "id": 98,
                "name": "part22",
                "orgCode": "/38/96/98/",
                "parentId": 96,
                "tenantId": 38,
                "binds": 1
            },
            {
                "id": 100,
                "name": "111",
                "orgCode": "/38/88/90/92/93/100/",
                "parentId": 93,
                "tenantId": 38,
                "binds": 0
            }
        ],
        "tenantInfo": { //租戶信息
            "id": 38, //租戶Id
            "name": "測試租戶", //租戶名稱
            "orgCode": "/38/", //租戶code
            "parentId": null, //因?yàn)樵谠O(shè)計(jì)中租戶就是頂級部門,所以不會有parentId
            "tenantId": 38, //租戶id
            "binds": 1 //租戶下綁定的總車輛數(shù)
        }
    }
}

這里后臺沒有直接返回樹形結(jié)構(gòu)是由于有多處使用該接口,而只有在該頁面需要做成樹狀圖,所以需要前端處理下數(shù)據(jù)格式,完成效果如下

實(shí)現(xiàn)方法

大概思路,因?yàn)榉祷氐臄?shù)據(jù)中orgCode是有規(guī)律的,所以新建兩個Map結(jié)構(gòu),level通過orgCode將數(shù)據(jù)劃分為不同的級別,然后以級別為鍵值對數(shù)據(jù)進(jìn)行存儲,childrenNode 通過以parnetId為鍵值來對數(shù)據(jù)進(jìn)行存儲,存儲完成之后,通過findSuperiors遞歸將childrenNode 中的數(shù)據(jù)按照級別由高到低的通過parnetId填存到level

//遞歸結(jié)構(gòu)樹
findSuperiors(max, map, children, min) {
    if (max < min) {
        return
    }
    map.get(max).map(item => {
        if (children.get(item["parentId"]).length > 0) {
            item.children = children.get(item["id"]);
        }
    })
    this.findSuperiors(max - 1, map, children, min);
}

//請求后臺數(shù)據(jù)
services.get_tree(this.id)
    .then(res => {
            this.treeData = [];

            let childrenNode = new Map(),
                level = new Map();

            for (let key of res.orgList) {
                let parentId = key["parentId"];
                if (childrenNode.has(parentId)) {
                    childrenNode.get(parentId).push(key);
                }
                else {
                    childrenNode.set(parentId, []);
                    childrenNode.get(parentId).push(key);
                }
                let lev = key["orgCode"].split("/").length - 3;
                if (level.has(lev)) {
                    level.get(lev).push(key);
                }
                else {
                    level.set(lev, []);
                    key.children = [];
                    level.get(lev).push(key);
                }
            }



            let min = Math.min.apply(Math, [...level.keys()]),
                max = Math.max.apply(Math, [...level.keys()]);

            this.findSuperiors(max, level, childrenNode, min);

            if (res.tenantInfo) {
                res.tenantInfo.children = [];
                res.tenantInfo.children = level.get(min);
                this.treeData.push(res.tenantInfo);
            }
            else {
                this.treeData = level.get(min);
            }
        }
)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/117402.html

相關(guān)文章

  • 后裝業(yè)務(wù)管理平臺項(xiàng)目總結(jié)

    摘要:通過建立樹形結(jié)構(gòu)后臺傳輸?shù)臄?shù)據(jù),這里為了不影響閱讀,刪除掉了不必要的部分?jǐn)?shù)據(jù)格式操作成功租戶下所有部門部門部門部門名稱部門,以及部門格式為,二級部門格式為,以此類推部門的上級部門,如果為表示該部門為頂級部門租戶該部門下綁定車輛數(shù)部門租戶信息 通過id、parentId建立樹形結(jié)構(gòu) 后臺傳輸?shù)膉son數(shù)據(jù),這里為了不影響閱讀,刪除掉了不必要的部分 數(shù)據(jù)格式 { httpCode:...

    endiat 評論0 收藏0
  • 后裝業(yè)務(wù)管理平臺項(xiàng)目總結(jié)

    摘要:通過建立樹形結(jié)構(gòu)后臺傳輸?shù)臄?shù)據(jù),這里為了不影響閱讀,刪除掉了不必要的部分?jǐn)?shù)據(jù)格式操作成功租戶下所有部門部門部門部門名稱部門,以及部門格式為,二級部門格式為,以此類推部門的上級部門,如果為表示該部門為頂級部門租戶該部門下綁定車輛數(shù)部門租戶信息 通過id、parentId建立樹形結(jié)構(gòu) 后臺傳輸?shù)膉son數(shù)據(jù),這里為了不影響閱讀,刪除掉了不必要的部分 數(shù)據(jù)格式 { httpCode:...

    YanceyOfficial 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<