房企工具测试工具1

房企工具线测试工具

// ==UserScript==
// @name         房企工具测试工具1
// @namespace    https://yun.kujiale.com/
// @version      0.8
// @author       huihui
// @match        *.kujiale.com/pub/tool/yundesign/index*
// @match        *.kujiale.com/tool/h5/diy*
// @match        *.kujiale.com/cloud/tool/h5/diy*
// @match        *.kujiale.com/cloud/tool/h5/bim*
// @match        *.kujiale.com/tool/h5/bim*
// @match        local.kujiale.com:7000/vc/flash/diy*
// @match        local.kujiale.com:7000/cloud/tool/h5/bim*
// @match        *.kujiale.com/cloud/tool/h5/bim*
// @match        *.kujiale.com/pcenter/design/*/list*
// @match        *.feat.qunhequnhe.com/*
// @run-at       document-start
// @grant        none
// @description 房企工具线测试工具
// ==/UserScript==
// 0.1 第一个版本
// 0.2 更新了 g_dmpConfig_userDefined
// 0.3 支持了 beta 及外网数据配置单
// 0.4 支持门窗数据传递
// 0.5 门窗逻辑导致快搭应用丢失数据问题修复
// 0.6 支持数组类型的数据结构
// 0.7 门窗配置挪到 pub 配置中去 & 门窗配置优化
// 0.8 自定义数据默认值更新 &  去掉 beta 逻辑
(function () {
      "use strict";
      // 开启 MDMode,这样在 window 上 postMessage 才有用
      window.__enableKuaidaMDMode = true;
      const betaHosts = ['yun-beta.kujiale.com', 'beta.kujiale.com'];
      const isBeta = betaHosts.includes(window.location.host);

      // 用户自定义配置单信息,可以将这块内容改成自己想要的形式
      const sitUserDefined = {
        "4": {
            "id": 1,
            "furnitureIds": [
                {
                    "obsBrandGoodId": "3FO4K1IIPTCJ",
                    "virtual": true
                },
                {
                    "obsBrandGoodId": "3FO4GHJPE780",
                    "virtual": false
                }
            ],
            "completeDecorationDataId": {
                "faceTypeToDataId": {
                    "0": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T7JTV"
                        ]
                    },
                    "1": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T7N6W"
                        ]
                    },
                    "2": {
                        "obsBrandGoodIds": []
                    },
                    "3": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TQ06E"
                        ]
                    },
                    "4": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TPVTD"
                        ]
                    },
                    "5": {
                        "obsBrandGoodIds": []
                    },
                    "6": {
                        "obsBrandGoodIds": []
                    },
                    "7": {
                        "obsBrandGoodIds": []
                    }
                }
            },
            "completeCustomData": {
                "models": [
                    {
                        "obsBrandGoodId": "3FO4GHJKYISQ",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    }
                ]
            },
            "pipeFurnitureIds": [
                "3FO4GG0R0QVA",
                "3FO4GG0R43WA",
                "3FO4GG0QXGML",
                "3FO4GG0R40K9",
                "3FO4GG0R4DXD",
                "3FO4GG0QXU0P",
                "3FO4GG0R4KMF",
                "3FO4GG0QXQNO",
                "3FO4GG0R0K78",
                "3FO4GG0QXNBN",
                "3FO4GHIR784H",
                "3FO4GHIR7LHL"
            ],
            "paramCeilingIds": [
                "3FO4GG4U4O1B",
                "3FO4GG4U2UHR",
                "3FO4GG4U4UPD"
            ]
        },
        "7": {
            "id": 4,
            "furnitureIds": [
                {
                    "obsBrandGoodId": "3FO4JHH4BE0K",
                    "virtual": true
                },
                {
                    "obsBrandGoodId": "3FO4K1K5RKGP",
                    "virtual": true
                }
            ],
            "completeDecorationDataId": {
                "faceTypeToDataId": {
                    "0": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TOXE3"
                        ]
                    },
                    "1": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T8OY8"
                        ]
                    },
                    "2": {
                        "obsBrandGoodIds": [
                            "3FO4GH5NFLVE",
                            "3FO4GH8TQU9N"
                        ]
                    },
                    "3": {
                        "obsBrandGoodIds": []
                    },
                    "4": {
                        "obsBrandGoodIds": []
                    },
                    "5": {
                        "obsBrandGoodIds": []
                    },
                    "6": {
                        "obsBrandGoodIds": []
                    },
                    "7": {
                        "obsBrandGoodIds": []
                    }
                }
            },
            "completeCustomData": {
                "models": [
                    {
                        "obsBrandGoodId": "3FO4GHFFC8RA",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHFITBYS",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHFIT1XP",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDTXKLH",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDTXNXI",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH3HF2",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH6G2X",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH7154",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": [
                            "3FO4GHDW5NXJ"
                        ]
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH5V0R",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH229M",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH2IYR",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH08Q3",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": [
                            "3FO4GHFI2HER"
                        ]
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJGY6XR",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJH0221",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJHLMPH",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": [
                            "3FO4GHMQRVWN",
                            "3FO4GHMQQA36"
                        ]
                    },
                    {
                        "obsBrandGoodId": "3FO4GHI5MLFS",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHFERQNG",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJHE6W9",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": [
                            "3FO4GH8TQQWM"
                        ]
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJHTK8U",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJHT3IP",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJHPQHP",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHFFDR9Q",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHFFDKKO",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHFIT5AQ",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDUNP00",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDULS4F",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDULEQB",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDV388C",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDV4K1Q",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    }
                ],
                "countertop": {
                    "materialObsBrandGoodId": "3FO4GHHY2N81",
                    "frontFenderProfileObsBrandGoodId": "3FO4GHHC75D3",
                    "backFenderProfileObsBrandGoodId": "3FO4GHHC7FE6"
                },
                "crownMolding": {
                    "profileObsBrandGoodId": "3FO4GHHC7212",
                    "materialObsBrandGoodId": "3FO4GHNCIH4N"
                },
                "skirting": {
                    "profileObsBrandGoodId": "3FO4GHHC6UC0",
                    "materialObsBrandGoodId": "3FO4GHJ7V2IM"
                }
            },
            "pipeFurnitureIds": [
                "3FO4GG0GG8JR",
                "3FO4GG0GFNHL",
                "3FO4GG0GDTY2",
                "3FO4GG0GEID9",
                "3FO4GG0GFU6N",
                "3FO4GG0GEF18",
                "3FO4GH8TR8MR"
            ],
            "paramCeilingIds": []
        },
        "8": {
            "id": 3,
            "furnitureIds": [
                {
                    "obsBrandGoodId": "3FO4K1K6T9FO",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4G937IXAE",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4GG0P2Q6X",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4GHMRILDC",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4G937IGK9",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4G937IN9B",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4G937IQLC",
                    "virtual": false
                }
            ],
            "completeDecorationDataId": {
                "faceTypeToDataId": {
                    "0": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TOXE3"
                        ]
                    },
                    "1": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T8IA6"
                        ]
                    },
                    "2": {
                        "obsBrandGoodIds": [
                            "3FO4GH5NFLVE",
                            "3FO4GH8TQU9N"
                        ]
                    },
                    "3": {
                        "obsBrandGoodIds": []
                    },
                    "4": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TPVTD"
                        ]
                    },
                    "5": {
                        "obsBrandGoodIds": []
                    },
                    "6": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TQNKL"
                        ]
                    },
                    "7": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TQNKL"
                        ]
                    }
                }
            },
            "completeCustomData": {
                "models": [
                    {
                        "obsBrandGoodId": "3FO4GHDOJF4W",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GGV00BGS",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDO0VGD",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHDNXYKS",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GGV01XBA",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GGSPORPP",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": [
                            "3FO4GHDW4PI9",
                            "3FO4GHDW4IT7"
                        ]
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJIWV2B",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHJL03UW",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    }
                ],
                "countertop": {
                    "materialObsBrandGoodId": "3FO4GHHY2N81",
                    "frontFenderProfileObsBrandGoodId": "3FO4GHHC6XO1",
                    "backFenderProfileObsBrandGoodId": "3FO4GHHC78P4"
                }
            },
            "pipeFurnitureIds": [
                "3FO4GG0P3RY9",
                "3FO4GG0QYF2V",
                "3FO4GG0R0K78",
                "3FO4GG0GFA4H",
                "3FO4GG0GF03E",
                "3FO4GG0GG1UP",
                "3FO4GG0GFQTM",
                "3FO4GG0GFXIO",
                "3FO4GHIR784H",
                "3FO4GH8TR8MR",
                "3FO4GHIR74RG"
            ],
            "paramCeilingIds": []
        },
        "10": {
            "id": 2,
            "furnitureIds": [
                {
                    "obsBrandGoodId": "3FO4K1IY3RKF",
                    "virtual": true
                },
                {
                    "obsBrandGoodId": "3FO4GHJPE780",
                    "virtual": false
                }
            ],
            "completeDecorationDataId": {
                "faceTypeToDataId": {
                    "0": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T7JTV"
                        ]
                    },
                    "1": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T7N6W"
                        ]
                    },
                    "2": {
                        "obsBrandGoodIds": []
                    },
                    "3": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TQ06E"
                        ]
                    },
                    "4": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TPVTD"
                        ]
                    },
                    "5": {
                        "obsBrandGoodIds": []
                    },
                    "6": {
                        "obsBrandGoodIds": []
                    },
                    "7": {
                        "obsBrandGoodIds": []
                    }
                }
            },
            "completeCustomData": {
                "models": []
            },
            "pipeFurnitureIds": [
                "3FO4GG0QXNBN",
                "3FO4GG0R0U8B",
                "3FO4GG0GFGSJ",
                "3FO4GHIR7LHL"
            ],
            "paramCeilingIds": [
                "3FO4GG4U2UHR",
                "3FO4GG4U4UPD",
                "3FO4GE0OH9FD"
            ]
        },
        "13": {
            "id": 5,
            "furnitureIds": [],
            "completeDecorationDataId": {
                "faceTypeToDataId": {
                    "0": {
                        "obsBrandGoodIds": []
                    },
                    "1": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TP1Q4"
                        ]
                    },
                    "2": {
                        "obsBrandGoodIds": []
                    },
                    "3": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TRBYS"
                        ]
                    },
                    "4": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TPVTD"
                        ]
                    },
                    "5": {
                        "obsBrandGoodIds": []
                    },
                    "6": {
                        "obsBrandGoodIds": []
                    },
                    "7": {
                        "obsBrandGoodIds": []
                    }
                }
            },
            "completeCustomData": {
                "models": [
                    {
                        "obsBrandGoodId": "3FO4GHDV1OPV",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GHI5S8PH",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    }
                ],
                "countertop": {
                    "materialObsBrandGoodId": "3FO4GHHY2N81",
                    "frontFenderProfileObsBrandGoodId": "3FO4GHHTSFEE",
                    "backFenderProfileObsBrandGoodId": "3FO4GHHW0IQG"
                }
            },
            "pipeFurnitureIds": [
                "3FO4GG0GEP2B",
                "3FO4GG0GCESM",
                "3FO4GG0GCBGL",
                "3FO4GHIR7LHL"
            ],
            "paramCeilingIds": [
                "3FO4GG4U4Y2E"
            ]
        },
        "22": {
            "id": 0,
            "furnitureIds": [
                {
                    "obsBrandGoodId": "3FO4K1JC2K15",
                    "virtual": true
                },
                {
                    "obsBrandGoodId": "3FO4K1ICEUFG",
                    "virtual": true
                },
                {
                    "obsBrandGoodId": "3FO4GHJG55H3",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4GG0P2Q6X",
                    "virtual": false
                },
                {
                    "obsBrandGoodId": "3FO4GHJPE780",
                    "virtual": false
                }
            ],
            "completeDecorationDataId": {
                "faceTypeToDataId": {
                    "0": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T7JTV"
                        ]
                    },
                    "1": {
                        "obsBrandGoodIds": [
                            "3FO4GH8T8OY8"
                        ]
                    },
                    "2": {
                        "obsBrandGoodIds": []
                    },
                    "3": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TQ06E"
                        ]
                    },
                    "4": {
                        "obsBrandGoodIds": [
                            "3FO4GH8TPVTD"
                        ]
                    },
                    "5": {
                        "obsBrandGoodIds": []
                    },
                    "6": {
                        "obsBrandGoodIds": []
                    },
                    "7": {
                        "obsBrandGoodIds": []
                    }
                }
            },
            "completeCustomData": {
                "models": [
                    {
                        "obsBrandGoodId": "3FO4GGUMLV86",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    },
                    {
                        "obsBrandGoodId": "3FO4GGUMGPNM",
                        "materialObsBrandGoodId": "3FO4GHN4EX3U",
                        "children": []
                    }
                ]
            },
            "pipeFurnitureIds": [
                "3FO4GHJ23PM4",
                "3FO4GHJ23SY5",
                "3FO4GG0R5J2P",
                "3FO4GG0R4ALC",
                "3FO4GG0R4DXD",
                "3FO4GG0R5PQR",
                "3FO4GHJ267JU",
                "3FO4GG0R40K9",
                "3FO4GG0R43WA",
                "3FO4GG0QYP3Y",
                "3FO4GG0QYSG0",
                "3FO4GG0QYVS1",
                "3FO4GG0R0QVA",
                "3FO4GG0R4KMF",
                "3FO4GHIR784H"
            ],
            "paramCeilingIds": [
                "3FO4GE0OH9FD",
                "3FO4GG4U2R5Q",
                "3FO4GG4U4UPD"
            ]
        }
    };
      window.g_dmpConfig_userDefined = sitUserDefined;

      let buttonCfgs = [];
      // 添加调整布局按钮的构造函数
      function addButton(buttonCfg) {
        const layoutButton = document.createElement("button");
        layoutButton.innerText = buttonCfg.text || "";
        const buttonStyle = {
              position: "fixed",
              background: "#1a7afb",
              borderRadius: "10px",
              border: "none",
              opacity: "80%",
              width: "80px",
              height: "60px",
              color: "white",
              top: "50px",
              right: "240px",
              zIndex: 1000,
              cursor: 'pointer',
              fontSize: "16px",
              ...(buttonCfg.style || {}),
        };
        Object.keys(buttonStyle).forEach(
              (key) => (layoutButton.style[key] = buttonStyle[key])
        );
        layoutButton.addEventListener("click", () => {
              console.log('正在引用配置: ', buttonCfg.configKey, window[buttonCfg.configKey]);
              console.log('门窗配置: ', window.g_dmpConfig_doorWindows);
              window.postMessage(
                  JSON.stringify({
                      action: "applyNewConfigForCustomDoorWindow",
                      payload: window.g_dmpConfig_doorWindows || {} // 门窗配置
                  }),
                  "*"
             );
             const parentKey = buttonCfg.parsedParentKey || 'materialMultiMap';
             const payload = {
                 designMaterialComplex: {
                     [parentKey]: window[buttonCfg.configKey] || {}
                 },
             };
             console.log('final payload: ', payload);
             window.postMessage(
                 JSON.stringify({
                     action: "startLayoutFurniture",
                     payload: payload,
                 }),
                 "*"
             );
        });
        document.body.appendChild(layoutButton);
  }
      // 获取统一的配置
      function reqListener() {
            const res = JSON.parse(this.responseText);
            if (res.c !== "0") {
                  return;
            }
            const allConfig = res.d;
            buttonCfgs = allConfig.buttonCfgs;
            // 根据配置添加按钮
            getBrandGoodInfo();
            useCurCfg();
            cmpCfg();
            buttonCfgs.forEach((cfg) => addButton(cfg));
            Object.keys(allConfig).forEach((key) => {
                  if (!key.includes("g_dmpConfig")) {
                        return;
                  }
                  window[key] = allConfig[key];
            });
      }
      const oReq = new XMLHttpRequest();
      const stage = isBeta ? 1 : 2;
      oReq.addEventListener("load", reqListener);
      oReq.open(
            "GET",
            `//pub-cps.kujiale.com/cps/api/client/config?name=config_mock_cfg&stage=${stage}`
      );
      oReq.send();
    // 0401
    var host = window.location.host
    const isBeta1 = (host.search("beta") != -1)
    const space = {
        4:"主卧",
        7:"厨房",
        8:"卫生间",
        10:"次卧",
        13:"阳台",
        22:"客餐厅",
    }

    const types = {
        0:"墙面",
        1:"地面",
        2:"顶棚",
        3:"踢脚线",
        4:"户内门槛",
        5:"柜体非见光区",
        6:"淋浴房站立区",
        7:"淋浴房排水区"
    }
    var Api = "https://" + (isBeta1 ? "beta.kujiale.com " : "sit.kujiale.com") + "/api/bbc/brandgood/listByCategory"

    function delelm(){
        var paras = document.getElementsByClassName('tabletestsn');
        if (paras){
            for(var i=0;i<paras.length;i++){
                //删除元素 元素.parentNode.removeChild(元素);
                if (paras[i] != null) paras[i].remove( paras[i]);
            }
        }
    }
    function getCatInfo(brandGoodIds, CatInfo){
        const request = new XMLHttpRequest();
        request.open("POST", Api, true);
        request.setRequestHeader('content-type', 'application/json');
        request.onreadystatechange = function () {
            if (request.readyState === 4) {
                if (request.status === 200) {
                    var responseText2 = JSON.parse(request.responseText)
                    return CatInfo(responseText2.d)
                }
            }
        }

        request.send(JSON.stringify(brandGoodIds));
    }

    function parseCatInfo(data) {
        let goodsInfo = new Map()
        Object.entries(data).forEach(
            ([key, value]) => {
                value.forEach(function (element, index, array) {
                    goodsInfo[element.obsBrandGoodId] = {"name" : element.category.name, "prodCatId" : element.category.prodCatId, "img" : element.previewImg};
                });
            }
        );
        return (goodsInfo)
    }

    function getFurnitureIds(type, data , flag){
        var datas = data[type].furnitureIds
        var furnitureIds = [];
        for (var k in datas){
            if (datas[k].virtual === flag) furnitureIds.push(datas[k].obsBrandGoodId)
        }
        return furnitureIds
    }

    function getCompleteDecorationDataId(type, data, num){
        var datas = data[type].completeDecorationDataId.faceTypeToDataId[num].obsBrandGoodIds
        return datas
    }

    function getPipeFurnitureIds(type, data){
        return data[type].pipeFurnitureIds
    }

    function getParamCeilingIds(type, data){
        return data[type].paramCeilingIds
    }

    function getcompleteCustomData(type, data){
        return data[type].completeCustomData
    }

    function createTable(data, id, top, left, space1){
        getCatInfo(data, function(responseText) {
            if (responseText){
                var data2 = parseCatInfo(responseText)
                var table = document.createElement('table');
                table.id = id
                //table.style.top = top
                //table.style.left = left
                if (space) {
                    var trx=document.createElement('tr');
                    var tdx=document.createElement('td');
                    trx.appendChild(tdx);
                    table.appendChild(trx);
                    trx.innerText = space[space1]
                }
                var tr=document.createElement('tr');
                for(var j=0;j<4;j++){
                    var td=document.createElement('td');
                    if (j == 0) td.innerText = "商品ID";
                    if (j == 1) td.innerText = "商品真分类";
                    if (j == 2) td.innerText = "真分类ID";
                    if (j == 3) td.innerText = "商品预览图";
                    tr.appendChild(td);
                }
                table.appendChild(tr);
                for(var k in data2){
                    //创建tr节点
                    var tr1=document.createElement('tr');
                    for(var j1=0;j1<4;j1++){
                        var td1=document.createElement('td');
                        if (j1 == 0) td1.innerText = k;
                        if (j1 == 1) td1.innerText = data2[k].name;
                        if (j1 == 2) td1.innerText = data2[k].prodCatId;
                        if (j1 == 3) {
                            let img = document.createElement('img');
                            img.src = data2[k].img
                            img.height = 100;
                            img.width=100
                            td1.append(img)
                        }
                        tr1.appendChild(td1);
                    }
                    table.appendChild(tr1);
                }
                let div1 = document.createElement('div');
                div1.id = "test123";
                div1.style.top = top;
                div1.style.left = left;
                div1.style.height = "450px";
                div1.style.overflow = "scroll";
                div1.setAttribute("class", "tabletestsn");
                Object.keys(tableStyle).forEach(
                    (key) => (div1.style[key] = tableStyle[key])
                );
                div1.append(table);
                document.body.append(div1);
                //document.body.appendChild(table);
            }
        });
    }

    function cpm1(type,data1,data2){
        getCatInfo(data1, function(responseText) {
            getCatInfo(data2, function(responseText2) {
                var a1 = parseCatInfo(responseText)
                var a2 = parseCatInfo(responseText2)
                let a3 = []
                for(var k1 in a1){
                    a3.push(a1[k1].name)
                }
                let a4 = []
                for(var k2 in a2){
                    a4.push(a2[k2].name)
                }
                let intersection = a3.filter(v => a4.includes(v))
                let difference1 = a3.concat(intersection).filter(v => !a3.includes(v) || !intersection.includes(v))
                let difference2 = a4.concat(intersection).filter(v => !a4.includes(v) || !intersection.includes(v))
                if (difference1.length>0) console.log("比模版多",difference1)
                if (difference2.length>0) console.log("比模版少",difference2)
            });
        });
    }

    function cpm2(data1,data2){
        getCatInfo(data1, function(responseText) {
            getCatInfo(data2, function(responseText2) {
                var a1 = parseCatInfo(responseText)
                var a2 = parseCatInfo(responseText2)
                let a3 = []
                for(var k1 in a1){
                    a3.push(a1[k1].name)
                }
                let a4 = []
                for(var k2 in a2){
                    a4.push(a2[k2].name)
                }
                let intersection = a3.filter(v => a4.includes(v))
                let difference1 = a3.concat(intersection).filter(v => !a3.includes(v) || !intersection.includes(v))
                let difference2 = a4.concat(intersection).filter(v => !a4.includes(v) || !intersection.includes(v))
                if (difference1.length>0) console.log("比模版多",difference1)
                if (difference2.length>0) console.log("比模版少",difference2)
            });
        });
    }

    const buttonStyle = {
        position: "fixed", //绝对定位
        left : "230px", //
        top : "120px",
        width: "160px",
        height: "30px",

        background: "#1890ff",//背景
        borderColor: "#1890ff", // 边框
        borderWidth: "2px",
        borderRadius: "10px",
        opacity: "80%", // 透明

        color: "white",

        zIndex: 1000,
        cursor: 'pointer', // 光标
        fontSize: "14px",
        outline: "none",
    };
    const inputStyle = {
        position: "fixed", //绝对定位
        width: "140px",
        height: "30px",
        left: "85px",
        top: "120px",
        background: "white",
        borderColor: "#1890ff", // 边框
        borderWidth: "2px",
        borderRadius: "10px",
        opacity: "80%", // 透明

        color: "#1890ff",
        zIndex: 1000,
        fontSize: "14px",
        outline: "none",
    };
    const tableStyle = {
        position: "fixed",
        zIndex: 1000,
        color: "#1890ff",
        border: 1
    };
    const selectStyle = {
        position: "fixed", //绝对定位
        left : "85px", //
        top : "210px",
        width : "140px",
        height : "28px",
        maxWidth : "300px",
        zIndex:10
    }

    var getBrandGoodInfo = function(){
        // 输入商品ID
        var inputBrandGood = document.createElement("input");
        inputBrandGood.type = "text";
        inputBrandGood.placeholder = "输入商品ID";
        Object.keys(inputStyle).forEach(
            (key) => (inputBrandGood.style[key] = inputStyle[key])
        );
        document.body.appendChild(inputBrandGood);

        // 确认
        const buttonModify = document.createElement("button");
        buttonModify.innerText = '获取真分类';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonModify.style[key] = buttonStyle[key])
        );
        document.body.appendChild(buttonModify);

        // 确认事件
        buttonModify.addEventListener("click", () => {
            var id1 = "getBrandGoodInfo"
            var delem = document.getElementById(id1)
            if (delem) delem.remove();
            if (inputBrandGood.value){
                let data = {"brandGoodIds":inputBrandGood.value.split(",")}
                createTable(data, id1, "120px", "400px");
            }
        })

        // 确认
        const buttonModify2 = document.createElement("button");
        buttonModify2.innerText = '重置';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonModify2.style[key] = buttonStyle[key])
        );
        buttonModify2.style.top = "75px"
        document.body.appendChild(buttonModify2);

        // 确认事件
        buttonModify2.addEventListener("click", () => {
            delelm();
        })
    }

    var useCurCfg = function(){
        // 配置全局变量
        var inputCfg = document.createElement("input");
        inputCfg.type = "text";
        inputCfg.id = "quanju1"
        inputCfg.placeholder = "window.g_dmpConfig_userDefined";
        Object.keys(inputStyle).forEach(
            (key) => (inputCfg.style[key] = inputStyle[key])
        );
        inputCfg.style.top = "165px";
        inputCfg.style.left = "85px";
        document.body.appendChild(inputCfg);

        var selectSpace = document.createElement("select");
        selectSpace.id = "select123";
        for(var s in space){
            selectSpace.options.add(new Option(space[s],s));
        }
        Object.keys(selectStyle).forEach(
            (key) => (selectSpace.style[key] = selectStyle[key])
        );
        document.body.appendChild(selectSpace);

        var selectTypes = document.createElement("select");
        selectTypes.id = "select234";
        for(var s1 in types){
            selectTypes.options.add(new Option(types[s1],s1));
        }
        Object.keys(selectStyle).forEach(
            (key) => (selectTypes.style[key] = selectStyle[key])
        );
        selectTypes.style.top = "345px";
        document.body.appendChild(selectTypes);

        // 获取软装虚拟模型
        const buttonGetCfg1 = document.createElement("button");
        buttonGetCfg1.innerText = '获取软装虚拟模型';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonGetCfg1.style[key] = buttonStyle[key])
        )
        buttonGetCfg1.style.top = "165px";
        buttonGetCfg1.style.left = "230px";
        document.body.appendChild(buttonGetCfg1);

        // 确认事件
        buttonGetCfg1.addEventListener("click", () => {
            delelm();
            var top = 165
            let cfgData = window.g_dmpConfig_userDefined
            if (inputCfg.value) cfgData = eval(inputCfg.value);
            var curSpace1 = document.getElementById("select123").value
            var val = getFurnitureIds(curSpace1,cfgData,true);
            console.log(val)
            console.log(cfgData)
            createTable({"brandGoodIds":val},"getFurnitureIds-true_"+curSpace1,top+"px","400px",curSpace1);
            top += (val.length + 1) * 30
        })

        // 获取软装模型
        const buttonGetCfg2 = document.createElement("button");
        buttonGetCfg2.innerText = '获取软装模型';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonGetCfg2.style[key] = buttonStyle[key])
        )
        buttonGetCfg2.style.top = "210px";
        buttonGetCfg2.style.left = "230px";
        document.body.appendChild(buttonGetCfg2);

        // 确认事件
        buttonGetCfg2.addEventListener("click", () => {
            delelm();
            var top = 165
            let cfgData = window.g_dmpConfig_userDefined
            if (inputCfg.value) cfgData = eval(inputCfg.value);
            var curSpace1 = document.getElementById("select123").value
            var val = getFurnitureIds(curSpace1,cfgData,false);
            createTable({"brandGoodIds":val},"getFurnitureIds-false_"+curSpace1,top+"px","400px",curSpace1);
            top += (val.length + 1) * 30
        })
        // 获取水电模型
        const buttonGetCfg3 = document.createElement("button");
        buttonGetCfg3.innerText = '获取水电模型';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonGetCfg3.style[key] = buttonStyle[key])
        )
        buttonGetCfg3.style.top = "255px";
        buttonGetCfg3.style.left = "230px";
        document.body.appendChild(buttonGetCfg3);

        // 确认事件
        buttonGetCfg3.addEventListener("click", () => {
            delelm();
            var top = 165
            let cfgData = window.g_dmpConfig_userDefined
            if (inputCfg.value) cfgData = eval(inputCfg.value);
            var curSpace1 = document.getElementById("select123").value
            var val = getPipeFurnitureIds(curSpace1,cfgData);
            createTable({"brandGoodIds":val},"getPipeFurnitureIds_"+curSpace1,top+"px","400px",curSpace1);
            top += (val.length + 1) * 30
        })

        const buttonGetCfg4 = document.createElement("button");
        buttonGetCfg4.innerText = '获取吊顶模型';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonGetCfg4.style[key] = buttonStyle[key])
        )
        buttonGetCfg4.style.top = "300px";
        buttonGetCfg4.style.left = "230px";
        document.body.appendChild(buttonGetCfg4);

        // 确认事件
        buttonGetCfg4.addEventListener("click", () => {
            delelm();
            var top = 165
            let cfgData = window.g_dmpConfig_userDefined
            if (inputCfg.value) cfgData = eval(inputCfg.value);
            var curSpace1 = document.getElementById("select123").value
            var val = getParamCeilingIds(curSpace1,cfgData);
            createTable({"brandGoodIds":val},"getParamCeilingIds"+curSpace1,top+"px","400px",curSpace1);
            top += (val.length + 1) * 30
        })

        const buttonGetCfg5 = document.createElement("button");
        buttonGetCfg5.innerText = '获取硬装模型';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonGetCfg5.style[key] = buttonStyle[key])
        )
        buttonGetCfg5.style.top = "345px";
        buttonGetCfg5.style.left = "230px";
        document.body.appendChild(buttonGetCfg5);

        // 确认事件
        buttonGetCfg5.addEventListener("click", () => {
            delelm();
            var top = 165
            let cfgData = window.g_dmpConfig_userDefined
            if (inputCfg.value) cfgData = eval(inputCfg.value);
            var curSpace1 = document.getElementById("select123").value
            var curTypes1 = document.getElementById("select234").value
            var val = getCompleteDecorationDataId(curSpace1,cfgData,curTypes1);
            createTable({"brandGoodIds":val},"getCompleteDecorationDataId"+curSpace1+"_"+curTypes1,top+"px","400px",curSpace1);
            top += (val.length + 1) * 30
        })

        const buttonGetCfg6 = document.createElement("button");
        buttonGetCfg6.innerText = '获取定制数据';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonGetCfg6.style[key] = buttonStyle[key])
        )
        buttonGetCfg6.style.top = "390px";
        buttonGetCfg6.style.left = "230px";
        document.body.appendChild(buttonGetCfg6);

        buttonGetCfg6.addEventListener("click", () => {
            delelm();
            let cfgData = window.g_dmpConfig_userDefined
            if (inputCfg.value) cfgData = eval(inputCfg.value);
            var curSpace1 = document.getElementById("select123").value
            var val = getcompleteCustomData(curSpace1,cfgData);
            let div = document.createElement('div')
            div.setAttribute("class", "tabletestsn");
            div.style.top = "165px";
            div.style.left = "400px";
            div.style.width = "400px";
            div.style.position = "fixed";
            div.style.zIndex = 1000;
            div.innerText = JSON.stringify(val)
            document.body.append(div)
        })
    }

    var cmpCfg = function(){
        const buttonGetCfg2 = document.createElement("button");
        buttonGetCfg2.innerText = '对比配置';
        Object.keys(buttonStyle).forEach(
            (key) => (buttonGetCfg2.style[key] = buttonStyle[key])
        )
        buttonGetCfg2.style.top = "435px";
        buttonGetCfg2.style.left = "85px";
        buttonGetCfg2.style.width = "306px";
        document.body.appendChild(buttonGetCfg2);

        buttonGetCfg2.addEventListener("click", () => {
            var ele = document.getElementById("quanju1")
            var resdata1 = eval(ele.value);
            for (var s2 in space){
                let data1 = getFurnitureIds(s2,sitUserDefined,true)
                let data2 = getFurnitureIds(s2,betaUserDefined,true)
                if (data1.length>0 && data2.length>0) cpm1(s2,{"brandGoodIds":data1},{"brandGoodIds":data2})
                else{
                    if (data1.length>0) console.log("比模版多",data1)
                    if (data2.length>0) console.log("比模版少",data2)
                }
                data1 = getPipeFurnitureIds(s2,sitUserDefined)
                data2 = getPipeFurnitureIds(s2,betaUserDefined)
                if (data1.length>0 && data2.length>0) cpm1(s2,{"brandGoodIds":data1},{"brandGoodIds":data2})
                else{
                    if (data1.length>0) console.log("比模版多",data1)
                    if (data2.length>0) console.log("比模版少",data2)
                }
                data1 = getcompleteCustomData(s2,sitUserDefined)
                data2 = getcompleteCustomData(s2,betaUserDefined)
                if (data1.length>0 && data2.length>0) cpm1(s2,{"brandGoodIds":data1},{"brandGoodIds":data2})
                else{
                    if (data1.length>0) console.log("比模版多",data1)
                    if (data2.length>0) console.log("比模版少",data2)
                }
                for(var i in types){
                    data1 = getCompleteDecorationDataId(s2,sitUserDefined,i)
                    data2 = getCompleteDecorationDataId(s2,betaUserDefined,i)
                    if (data1.length>0 && data2.length>0) cpm1(s2,{"brandGoodIds":data1},{"brandGoodIds":data2})
                    else{
                        if (data1.length>0) console.log("比模版多",data1)
                        if (data2.length>0) console.log("比模版少",data2)
                    }
                }
            }
        })
    }
})();