爱房JS脚本

可以跳转项目页,打开合同扫描件,一键下载订单明细

目前为 2023-04-27 提交的版本。查看 最新版本

// ==UserScript==
// @name                爱房JS脚本
// @namespace           http://tampermonkey.net/
// @version             2.6
// @description         可以跳转项目页,打开合同扫描件,一键下载订单明细
// @author              熊伟良
// @match               https://daiketong.58corp.com/*
// @match               https://max.58corp.com/*
// @match               https://oa.58corp.com/*
// @icon                https://pages.anjukestatic.com/fe/ifang_node_admin_web/favicon.ico
// @grant               GM_xmlhttpRequest
// @license             MIT
// @require      https://cdn.bootcdn.net/ajax/libs/xlsx/0.17.1/xlsx.full.min.js
// ==/UserScript==
var currentUrl = 1;
var oatoken = ''
let planList = []

function getOaIdList(building) {
    return new Promise(resolve => {
        GM_xmlhttpRequest({
            method: "POST",
            url: "https://oa.58corp.com/workbench/flow/listNew",
            headers: {
                "Content-Type": "application/json;charset=UTF-8",
                "Referer": "https://oa.58corp.com/",
                "X-Requested-With": "XMLHttpRequest"
            },
            data: JSON.stringify({
                "searchVal": building + " 佣金",
                "state": "20 30 40 50",
                "processName": "",
                "itemID": "",
                "type": 1,
                "startDate": "",
                "endDate": "",
                "arriveStartDate": "",
                "arriveEndDate": "",
                "approveStartDate": "",
                "approveEndDate": "",
                "pageNo": 1,
                "pageSize": 100,
                "processStatus": "",
                "number": "",
                "createDateOrder": "",
                "arriveDateOrder": 0,
                "approveDateOrder": "",
                "approveUserName": "",
                "createUserName": "",
                "summary": "",
                "tabType": 1
            }),
            onload: function (response) {
                let snlist = JSON.parse(response.response).result.data
                snlist.forEach(async item => {
                    let res = await getOaDetail(item.sn)
                    res = res.data.formDataMap
                    console.log(res.pTitle, res)
                    planList.push({
                        "标题": res.pTitle,
                        "提交时间": res.applicantDate,
                        "收回方案": res.pCommissionPointNew ? res.pCommissionPointNew : res.pCommissionPoint,
                        '出街方案': res.pChannelCommissionPointNew ? res.pChannelCommissionPointNew : res.pChannelCommissionPoint
                    })
                })
                resolve();
            }
        });
    });
}


async function getyushou(id) {
    let result = await fetch(`https://daiketong.58corp.com/japi/buildings/up-off-detail/${id}`);
    let resultData = await result.json()
    let data = resultData.data
    let range = data.presale_license_range
    // 查找 detail 类中的第二个 section-content 类
    const sectionContentElement = document.querySelector('.detail > :nth-child(5)');
    // 如果找到了该元素,则向其中追加新的 <div> 元素
    if (sectionContentElement) {
        // 创建新的 <div> 元素
        const newDiv = document.createElement('div');
        newDiv.setAttribute('data-v-7bf5ef12', '');
        newDiv.className = 'section-content-item';

        // 在新的 <div> 元素中添加 <span> 元素
        const labelSpan = document.createElement('span');
        labelSpan.setAttribute('data-v-7bf5ef12', '');
        labelSpan.className = 'section-content-item-label';
        labelSpan.innerText = '预售范围:';

        if (["xiongweiliang", "zhanghui54"].includes(document.querySelector(".header-menu").childNodes[2].innerText)) {
            const companyName = document.querySelector('.detail > .section-content > :nth-child(2) > :nth-child(2)').innerText;
            const encodedCompanyName = encodeURIComponent(companyName);
            const url = `https://fsfc.fszj.foshan.gov.cn/loupan/xuke/c${encodedCompanyName}_f-1/`;
            // console.log(url)
            labelSpan.addEventListener('click', function () {
                window.open(url, '_blank');
            });
        }

        const valueSpan = document.createElement('span');
        valueSpan.setAttribute('data-v-7bf5ef12', '');
        valueSpan.className = 'section-content-item-value';
        valueSpan.innerText = range;

        newDiv.appendChild(labelSpan);
        newDiv.appendChild(valueSpan);

        // 在第二个 section-content 元素的第三个子元素后面插入新的 <div> 元素
        const thirdChild = sectionContentElement.children[2];
        sectionContentElement.insertBefore(newDiv, thirdChild.nextSibling);
    }


}

async function getOaDetail(id) {
    console.log(id)
    const res = await GM.xmlHttpRequest({
        url: `https://bpmops.58corp.com/token/processHandler/getProcessDataForView/${id}/2?fSn=&controlName=`,
        headers: {
            "accept": "application/json, text/plain, */*",
            "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
            "cache-control": "no-cache",
            "pragma": "no-cache",
            "sec-ch-ua": "\"Chromium\";v=\"106\", \"Google Chrome\";v=\"106\", \"Not;A=Brand\";v=\"99\"",
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": "\"Windows\"",
            "sec-fetch-dest": "empty",
            "sec-fetch-mode": "cors",
            "sec-fetch-site": "same-site",
            "token": oatoken,
            "x-requested-with": "XMLHttpRequest"
        },
        referrer: "https://oa.58corp.com/",
        referrerPolicy: "strict-origin-when-cross-origin",
        method: "GET",
        responseType: "json"
    });

    return res.response;
}


window.onload = function () {

    setInterval(function () {

        if (window.location.href != currentUrl) {
            // URL地址发生变化,触发事件

            if (window.location.href.indexOf("commissionall") > -1) {

                setTimeout(function () {
                    let el_col = document.querySelectorAll(".el-col-22")[5]
                    console.log(el_col)
                    let btn = document.createElement("div")
                    btn.innerHTML = `<button id="关闭暗佣" class="el-button el-button--default el-button--small" style="margin-left:20px">关闭暗佣</button>`
                    el_col.appendChild(btn)
                    console.log(btn)
                    console.log(typeof (el_col), typeof (btn))
                    document.querySelector("#关闭暗佣").addEventListener("click", function () {
                        let fontColorList = document.querySelectorAll(".fontColor")
                        if (fontColorList.length > 0) {
                            fontColorList.forEach(function (item) {
                                if (item.innerText == "关闭暗佣") {
                                    console.log(item.innerHTML)
                                    item.click()
                                }
                            })
                        } else {
                            console.log("待加载")
                            // guanbianyong()
                        }
                    }, false)
                    console.log(el_col)
                }, 2000)

            } else if (window.location.href.indexOf("approvalStatus") > -1) {


                // 监听文档的 keyup 事件,当松开键盘上的 a 键时执行处理函数
                document.addEventListener('keyup', (event) => {
                    if (event.code === 'KeyA') {
                        document.querySelector('.viewer-rotate-left').click();
                    } else if (event.code === 'KeyD') {
                        document.querySelector('.viewer-rotate-right').click();
                    }
                });

                // 定义一个变量用于保存上一次按下 Q 键的时间戳
                let lastQPressTime = 0;

                // 监听文档的 keydown 事件,当按下键盘上的 Q 键时执行处理函数
                document.addEventListener('keydown', (event) => {
                    if (event.code === 'KeyQ') {
                        const now = new Date().getTime();
                        // 如果距离上一次按下 Q 键不到 500 毫秒,则认为是连续按下了两次 Q 键
                        if (now - lastQPressTime < 500) {
                            // 获取所有类名包含 el-button 的元素
                            const elButtonElements = document.querySelectorAll('[class*=el-button]');

                            // 遍历所有元素,找出内部包含 <span>通过</span> 的按钮
                            for (const elButtonElement of elButtonElements) {
                                // 获取元素内部所有 <span> 元素
                                const spanElements = elButtonElement.querySelectorAll('span');

                                // 遍历所有 <span> 元素,找出包含文本“通过”的元素
                                for (const spanElement of spanElements) {
                                    if (spanElement.innerText === '通过') {
                                        // 如果找到了包含文本“通过”的元素,就打印该元素
                                        elButtonElement.click();
                                        break;
                                    }
                                }
                            }
                        }

                        lastQPressTime = now;
                    }
                });


                const cookie = document.cookie;
                var bc_id = "1"
                setTimeout(function () {
                    // 获取第一个类名为 el-tabs__nav is-top 的元素
                    const elTabsNavElement = document.querySelector('.el-tabs__nav.is-top');

                    // 如果找到了该元素,则点击其最后一个子元素
                    if (elTabsNavElement) {
                        elTabsNavElement.lastElementChild.click();
                    }
                    let contentList = document.querySelectorAll(".section-content-item-value")
                    contentList.forEach(function (contract, contractindex) {
                        let reg = /^(A|B)/
                        if (reg.test(contract.innerText) == true) {
                            var buildingId = contract.innerText.match(/(?<=-)[^-]+(?=-)/g)[0]
                            var bc_code = contract.innerText;
                            contentList[0].onclick = function () {
                                let win = window.open(`https://daiketong.58corp.com/#/refactorProject/projectManager/projectManagerIndex/projectManagerDetail?building_id=${buildingId}&active=4&city_id=362`)
                            }


                            fetch("https://daiketong.58corp.com/japi/buildings/contract/list", {
                                "headers": {
                                    "accept": "application/json, text/plain, */*",
                                    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7",
                                    "authorization": "",
                                    "content-type": "application/json;charset=UTF-8",
                                    "login-type": "pc",
                                    "sec-ch-ua": "\"Chromium\";v=\"106\", \"Google Chrome\";v=\"106\", \"Not;A=Brand\";v=\"99\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "same-origin",
                                    "sw8": "1-MWE1YmNiZTAzOTE5NDIyOTk4MDgwODNhNDAwZDg2NDA=-ODNiMmUwMWU2YTc2NDMyMTkyNmQ1NTI1ZjNjZDUyNzE=-0-NTAz-aHR0cHM6Ly9kYWlrZXRvbmcuNThjb3JwLmNvbQ==-L2phcGkvYnVpbGRpbmdzL2NvbnRyYWN0L2xpc3Q=-ZGFpa2V0b25nLjU4Y29ycC5jb20=-0",
                                    "sw8-correlation": "c291cmNl:YmVpZG91",
                                    "timestamp": "1665145024"
                                },
                                "referrer": "https://daiketong.58corp.com/",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": "{\"building_id\":\"" + buildingId + "\"}",
                                "method": "POST",
                                "mode": "cors",
                                "credentials": "include"
                            }).then(res => {
                                return res.json()
                            }).then(json => {
                                // console.log(json)
                                json["data"].forEach(function (item, index) {
                                    if (item["bc_code"] == bc_code) {
                                        let bc_id = item["bc_id"]
                                        // console.log(bc_id)
                                        fetch("https://daiketong.58corp.com/japi/buildings/contract/get-packing-list", {
                                            "headers": {
                                                "accept": "application/json, text/plain, */*",
                                                "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7",
                                                "authorization": "",
                                                "content-type": "application/json;charset=UTF-8",
                                                "login-type": "pc",
                                                "sec-ch-ua": "\"Chromium\";v=\"106\", \"Google Chrome\";v=\"106\", \"Not;A=Brand\";v=\"99\"",
                                                "sec-ch-ua-mobile": "?0",
                                                "sec-ch-ua-platform": "\"Windows\"",
                                                "sec-fetch-dest": "empty",
                                                "sec-fetch-mode": "cors",
                                                "sec-fetch-site": "same-origin",
                                                "sw8": "1-MWE1YmNiZTAzOTE5NDIyOTk4MDgwODNhNDAwZDg2NDA=-ODNiMmUwMWU2YTc2NDMyMTkyNmQ1NTI1ZjNjZDUyNzE=-0-NTAz-aHR0cHM6Ly9kYWlrZXRvbmcuNThjb3JwLmNvbQ==-L2phcGkvYnVpbGRpbmdzL2NvbnRyYWN0L2xpc3Q=-ZGFpa2V0b25nLjU4Y29ycC5jb20=-0",
                                                "sw8-correlation": "c291cmNl:YmVpZG91",
                                                "timestamp": "1665146852"
                                            },
                                            "referrer": "https://daiketong.58corp.com/",
                                            "referrerPolicy": "strict-origin-when-cross-origin",
                                            "body": "{\"contract_id\":" + bc_id.toString() + ",\"contract_type\":\"1\",\"status\":\"\"}",
                                            "method": "POST",
                                            "mode": "cors",
                                            "credentials": "include"
                                        }).then(res => {
                                            return res.json()
                                        }).then(json => {
                                            json["data"].forEach(function (item, index) {
                                                contract.addEventListener("click", function () {
                                                    // console.log("qwwqqwqw")
                                                    window.open(item["url"])
                                                }, false)
                                                // console.log(item["url"])
                                            })
                                        })
                                    }
                                })
                            });

                            let result = getyushou(buildingId)


                        }
                    })


                    if (document.querySelector(".header-menu").childNodes[2].innerText == "xiongweiliang") {

                        let re = setInterval(function () {
                            let viewerHalf = document.querySelector(".viewerHalf")
                            if (viewerHalf) {
                                viewerHalf.className = "viewer-container viewer-backdrop viewer-fixed viewer-fade viewer-transition viewer-in"
                                clearInterval(re)
                            } else {
                                // console.log(1)
                            }
                        }, 1000)

                        // let select = setInterval(function () {
                        //     var currentSelect = document.querySelectorAll('div[aria-selected="true"]')[1].innerText;
                        //     console.log(currentSelect)
                        //     if(currentSelect=="草签合同关键页"){
                        //         let viewer_move = document.querySelector(".viewer-move")
                        //         if (viewer_move) {
                        //             console.log(234,viewer_move)
                        //         }
                        //     }
                        //
                        // }, 500)
                        document.onkeyup = function (event) {
                            let viewer_move = document.querySelector(".viewer-move")
                            if (viewer_move) {
                                let a = document.documentElement.clientWidth / 2
                                let b = viewer_move.style["width"].slice(0, -2) * 1 / 2
                                viewer_move.style["margin-left"] = (a - b) + "px"
                            }
                        }
                        document.onmousewheel = function (event) {
                            let viewer_move = document.querySelector(".viewer-move")
                            if (viewer_move) {
                                let a = document.documentElement.clientWidth / 2
                                let b = viewer_move.style["width"].slice(0, -2) * 1 / 2
                                viewer_move.style["margin-left"] = (a - b) + "px"
                            }
                        }
                    }
                }, 500)


            } else if (window.location.href.indexOf("batch_id") > -1 && document.querySelector(".el-col.el-col-8").textContent.includes('万科') && ["xiongweiliang", "zhanghui54"].includes(document.querySelector(".header-menu").childNodes[2].innerText)) {
                alert("万科2月订单只能回款成销")
                alert("万科2月订单只能回款成销")

            } else if (window.location.href.indexOf("masterContractSee") > -1 && ["xiongweiliang", "zhanghui54"].includes(document.querySelector(".header-menu").childNodes[2].innerText)) {

                let viewlist = document.querySelectorAll('.file-preview--wrapper')
                viewlist.forEach(
                    function (itme, index) {
                        itme.onclick = function () {
                            let re = setInterval(function () {
                                let pdfurl = document.querySelector(".preview-canvas--iframe")


                                if (pdfurl) {
                                    document.querySelector('.wb-close').click()

                                    window.open(pdfurl.src, '_blank');
                                    clearInterval(re)
                                } else {
                                    // console.log(1)
                                }
                            }, 1000)
                        }
                    })


            } else if (window.location.href.indexOf("max") > -1) {
                function getSystemTime(timeFormat) {
                    // 实例化日期类
                    var time = new Date();
                    // 获取完整的年份(4位)
                    var year = time.getFullYear();
                    // 获取月份(0-11,0代表1月)
                    var month = time.getMonth() + 1;
                    month = month < 10 ? '0' + month : month;
                    // 获取日期(1-31)
                    var day = time.getDate();
                    dd = day < 10 ? '0' + day : day;
                    yd = day - 1 < 10 ? '0' + (day - 1).toString() : day - 1;
                    // 获取小时
                    var h = time.getHours();
                    hh = h < 10 ? '0' + h : h;
                    // 获取分钟
                    var m = time.getMinutes();
                    mm = m < 10 ? '0' + m : m;
                    // 获取秒钟
                    var s = time.getSeconds();
                    ss = s < 10 ? '0' + s : s;
                    console.log(timeFormat);
                    if (timeFormat == "today") {
                        var date = `${year}-${month}-${dd}`
                    } else if (timeFormat == "yesterday") {
                        var date = `${year}-${month}-${yd}`
                    } else if (timeFormat == "mm-dd hhmm") {
                        var date = `${month}-${dd} ${hh}${mm}`
                    }
                    console.log(date);
                    return (date);
                }

                getSystemTime("today")
                let nav_topNav = document.querySelector(".topNav")
                let list = ["订单明细认购不含退户", "订单明细认购含退户", "资金流水"]
                list.forEach(element => {
                    let li = document.createElement("li")
                    li.innerHTML = `<button id="${element}">${element}</button>`
                    nav_topNav.appendChild(li)
                });

                async function getToken() {
                    let res = await fetch("https://max.58corp.com/chart/view/4257", {
                        "headers": {
                            "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
                            "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7",
                            "cache-control": "max-age=0",
                            "sec-ch-ua": "\".Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"103\", \"Chromium\";v=\"103\"",
                            "sec-ch-ua-mobile": "?0",
                            "sec-ch-ua-platform": "\"Windows\"",
                            "sec-fetch-dest": "document",
                            "sec-fetch-mode": "navigate",
                            "sec-fetch-site": "same-origin",
                            "sec-fetch-user": "?1",
                            "upgrade-insecure-requests": "1"
                        },
                        "referrer": "https://max.58corp.com/chart/view/4493",
                        "referrerPolicy": "strict-origin-when-cross-origin",
                        "body": null,
                        "method": "GET",
                        "mode": "cors",
                        "credentials": "include"
                    })
                    let text = await res.text()
                    var token = text.match(/Token=(.*?),/)[1]
                    console.log(token)

                    function download(id, fileName) {
                        fetch("https://datamap.58.com/report/order/download?downloadId=" + id + "&fileName=" + fileName + "", {
                            "headers": {
                                "accept": "*/*",
                                "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7",
                                "content-type": "application/json",
                                "responsetype": "blob",
                                "sec-ch-ua": "\".Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"103\", \"Chromium\";v=\"103\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "cross-site",
                                "token": token
                            },
                            "referrer": "https://max.58corp.com/",
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": null,
                            "method": "GET",
                            "mode": "cors",
                            "credentials": "omit"
                        }).then(res => res.blob().then(blob => {
                            let url = window.URL.createObjectURL(blob)
                            let a = document.createElement('a')
                            a.style.display = 'none'
                            a.href = url
                            a.download = fileName + ".xlsx"
                            document.body.appendChild(a)
                            a.click()
                            document.body.removeChild(a)
                            window.URL.revokeObjectURL(url)
                        }))
                    }

                    function getExcelId(fileName) {
                        fetch("https://datamap.58.com/report/order/list?page=1&limit=1000&key=" + fileName + "&menuId=1154", {
                            "headers": {
                                "accept": "*/*",
                                "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7",
                                "content-type": "application/json",
                                "sec-ch-ua": "\".Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"103\", \"Chromium\";v=\"103\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "cross-site",
                                "token": token
                            },
                            "referrer": "https://max.58corp.com/",
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": null,
                            "method": "GET",
                            "mode": "cors",
                            "credentials": "omit"
                        }).then(res => {
                            return res.json()
                        }).then(json => {
                            let id = json["page"]["list"][0]["id"].toString()
                            let status = json["page"]["list"][0]["status"]
                            console.log(status)
                            console.log(json)
                            if (status != 2) {
                                getExcelId(fileName)
                            } else {
                                download(id, fileName)
                            }

                        });

                    }

                    function getExcel(fileName, body) {
                        fetch("https://datamap.58.com/report/order/export", {
                            "headers": {
                                "accept": "*/*",
                                "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7",
                                "content-type": "application/json",
                                "sec-ch-ua": "\".Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"103\", \"Chromium\";v=\"103\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "cross-site",
                                "token": token
                            },
                            "referrer": "https://max.58corp.com/",
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": body,
                            "method": "POST",
                            "mode": "cors",
                            "credentials": "omit"
                        }).then(res => {
                            return res.json()
                        }).then(json => {
                                console.log(json.msg)
                                if (json.msg != "success") {
                                    getExcel(fileName, body.replace(today, yesterday))
                                } else {
                                    getExcelId(fileName)
                                }
                            }
                        );
                    }


                    var queryColumns = `[1, 3, 5, 7, 2, 4, 323, 324, 1085, 964, 6, 325, 8, 9, 10, 11, 12, 13, 730, 1025, 14, 15, 326, 16, 17, 18, 19, 20, 21, 22, 23, 24, 528, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 731, 732, 733, 734, 735, 736, 737, 757, 39, 761, 40, 43, 121, 122, 899, 900, 902, 1242, 901, 1088, 1087, 44, 762, 45, 46, 1022, 327, 328, 47, 329, 48, 49, 50, 1080, 51, 763, 965, 966, 967, 1029, 1030, 1278, 1277, 960, 961, 962, 963, 58, 336, 59, 60, 61, 337, 62, 63, 64, 65, 66, 67, 1023, 68, 69, 1024, 70, 691, 71, 1063, 1279, 1280, 1281, 72, 73, 74, 75, 76, 320, 77, 78, 79, 321, 80, 81, 82, 83, 84, 85, 93, 94, 95, 96, 97, 322, 98, 99, 100, 101, 102, 103, 104, 105, 107, 109, 110, 111, 112, 113, 114, 115, 116, 330, 331, 332, 333, 334, 335, 898, 1216, 1217, 1218, 1219, 1220, 1221, 334, 760, 1029, 1237, 1250, 1258, 328, 329, 334, 757, 760, 1029, 1244, 1237, 1250, 1258]`
                    var refundStatus = `[0,1,2,3]`
                    var today = getSystemTime("today")
                    var yesterday = getSystemTime("yesterday")
                    let rengoubutui = document.querySelector("#订单明细认购不含退户")
                    rengoubutui.onclick = function () {
                        let fileName = getSystemTime("mm-dd hhmm") + " 订单明细(认购)"
                        var refundStatus = `[0,1,2]`
                        var body = "{\"fileName\":\"" + fileName +
                            "\",\"calDt\":\"" + today + "\",\"buildingRegionId\":-1,\"buildingCityId\":-1,\"orderStatus\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],\"ssStatus\":[0,2,3,1,4,5],\"refundStatus\":" + refundStatus + ",\"receivableStatus\":[0,1,2],\"settlementType\":[1,2,0,3,-99],\"prepaidType\":[1,-99,0],\"queryColumns\":" + queryColumns + ",\"menuId\":1153,\"cusErr\":true,\"subscribeTime\": [\"2021-01-01\", \"2023-01-01\"]}"
                        console.log(body)
                        getExcel(fileName = fileName, body = body)
                    }
                    let rengoutui = document.querySelector("#订单明细认购含退户")
                    rengoutui.onclick = function () {
                        let fileName = getSystemTime("mm-dd hhmm") + " 订单明细(认购含退户)"
                        var refundStatus = `[0,1,2,3]`
                        var body = "{\"fileName\":\"" + fileName +
                            "\",\"calDt\":\"" + today + "\",\"buildingRegionId\":-1,\"buildingCityId\":-1,\"orderStatus\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],\"ssStatus\":[0,2,3,1,4,5],\"refundStatus\":" + refundStatus + ",\"receivableStatus\":[0,1,2],\"settlementType\":[1,2,0,3,-99],\"prepaidType\":[1,-99,0],\"queryColumns\":" + queryColumns + ",\"menuId\":1153,\"cusErr\":true,\"subscribeTime\": [\"2021-01-01\", \"2023-01-01\"]}"
                        console.log(body)
                        getExcel(fileName = fileName, body = body)
                    }


                }

                getToken()


            } else if (window.location.href.indexOf("masterContractSee") > -1 && document.querySelector(".header-menu").childNodes[2].innerText == "xiongweiliang") {
                async function getData() {
                    let res = await fetch("https://daiketong.58corp.com/japi/buildings/contract/detail?contract_type=1&building_id=125429&contract_id=76673&active=4&renew=0&hiddenEdit=1&bc_status=2&isDraft=false", {
                        "headers": {
                            "accept": "application/json, text/plain, */*",
                            "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,eu;q=0.6",
                            "authorization": "",
                            "cache-control": "no-cache",
                            "login-type": "pc",
                            "pragma": "no-cache",
                            "sec-ch-ua": "\"Chromium\";v=\"106\", \"Google Chrome\";v=\"106\", \"Not;A=Brand\";v=\"99\"",
                            "sec-ch-ua-mobile": "?0",
                            "sec-ch-ua-platform": "\"Windows\"",
                            "sec-fetch-dest": "empty",
                            "sec-fetch-mode": "cors",
                            "sec-fetch-site": "same-origin",
                            "sw8": "1-ZjRkMWNhZDIzYzYzNDA0ODk0Yzc5YmVlMjBkMjIyNzg=-NzBiOGNmNWM0Yjg2NGUyM2EyZTE1MzhjOGZkYjNjM2Y=-0-NTAz-aHR0cHM6Ly9kYWlrZXRvbmcuNThjb3JwLmNvbQ==-L2phcGkvYnVpbGRpbmdzL2NvbnRyYWN0L2RldGFpbA==-ZGFpa2V0b25nLjU4Y29ycC5jb20=-0",
                            "sw8-correlation": "c291cmNl:YmVpZG91",
                            "timestamp": "1665834595"
                        },
                        "referrer": "https://daiketong.58corp.com/",
                        "referrerPolicy": "strict-origin-when-cross-origin",
                        "body": null,
                        "method": "GET",
                        "mode": "cors",
                        "credentials": "include"
                    });
                    let json = await res.json()
                    console.table(json.data);


                }

                getData()
            } else if (window.location.href.indexOf("evidenceChainList") > -1) {
                // location.reload()

                let timer1 = setInterval(function checkElement() {
                    // 获取元素
                    var element = document.querySelector(".is-plain");
                    // 如果元素存在,打印它的文本内容,并清除定时器
                    if (element) {
                        element.addEventListener('click', function () {
                            console.log('绑定成功')
                            var timer = setInterval(() => {
                                // 获取表格行集合
                                var rows = document.querySelectorAll(".el-table__row")
                                console.log(rows.length);

                                // 如果表格行存在,执行addChild函数,并清除定时器
                                if (rows.length > 0) {
                                    addChild(rows)
                                    clearInterval(timer);
                                }
                            }, 1000);
                        })

                        clearInterval(timer1);
                    }

                }, 500);


                // 添加订单审核链接到每一行
                function addChild() {
                    let nav_topNav = document.querySelectorAll(".el-table__row")
                    nav_topNav.forEach((nav) => {
                        let idNode = nav.querySelectorAll("td")[4]
                        let ID = idNode.querySelector(".cell").innerHTML
                        let handleNode = nav.querySelectorAll("td")[12]
                        let aList = nav.querySelectorAll("a")
                        console.log(ID, aList)
                        if (aList.length > 0) {
                            aList.forEach((c) => {
                                if (c) {
                                    // console.log("123", a)
                                    handleNode.removeChild(c)
                                    console.log(c, '删除成功')
                                }
                            })
                        }
                        let a = document.createElement("a")
                        a.href = `https://daiketong.58corp.com/#/orderManagementFolder/transactionInformationAudit/transactionAudit/transactionAuditBase/transactionAuditDetail?order_id=${ID}&examineNode=SIGNED&approvalStatus=PASSED`
                        a.textContent = '订单审核界面'
                        a.target = "_Blank"
                        handleNode.appendChild(a)

                        // console.log(ID, handleNode)

                        async function getData() {
                            let res = await fetch(`https://daiketong.58corp.com/daiketong/v1/success-sale/audit-list?page=1&status=PASSED&order_id=${ID}`, {
                                "headers": {
                                    "accept": "application/json, text/plain, */*",
                                    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
                                    "authorization": "",
                                    "cache-control": "no-cache",
                                    "login-type": "pc",
                                    "pragma": "no-cache",
                                    "sec-ch-ua": "\"Chromium\";v=\"106\", \"Google Chrome\";v=\"106\", \"Not;A=Brand\";v=\"99\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "same-origin",
                                    "sw8": "1-YjQyNzY4ZDFiMDM0NGRlZjg2NTI2NmFhYmM0Njc2YzU=-Y2I2YTg3YzM1MmZiNGVlN2JiMTM5ODgyYmFkZGQyMDc=-0-NTAz-aHR0cHM6Ly9kYWlrZXRvbmcuNThjb3JwLmNvbQ==-L2RhaWtldG9uZy92MS9zdWNjZXNzLXNhbGUvYXVkaXQtbGlzdA==-ZGFpa2V0b25nLjU4Y29ycC5jb20=-0",
                                    "sw8-correlation": "c291cmNl:YmVpZG91",
                                    "timestamp": "1679399184"
                                },
                                "referrer": "https://daiketong.58corp.com/",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": null,
                                "method": "GET",
                                "mode": "cors",
                                "credentials": "include"
                            });
                            let json = await res.json()
                            if (json.data.data[0]) {
                                // console.log(ID, json.data.data[0])
                                return json.data.data[0]['batch_id']
                            }

                        }

                        async function useData() {
                            let value = await getData(); // value等于data.data的值
                            if (value) {
                                let a = document.createElement("a")
                                a.href = `https://daiketong.58corp.com/#/salesManagement/examine/examineDetails?isExamine=false&batch_id=${value}`
                                a.textContent = '     |    成销界面'
                                a.target = "_Blank"
                                handleNode.appendChild(a)
                            }
                        }

                        useData()

                    })
                }


            } else if (window.location.href.indexOf("orderFolderList") > -1) {

                async function getData(name) {
                    let res = fetch(`https://daiketong.58corp.com/daiketong/v1/order/order-customer-list?page=1&customer_name_or_telephone=${name.trim()}`, {
                        "headers": {
                            "accept": "application/json, text/plain, */*",
                            "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
                            "authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VyX2lkIjo0MjcyMTksImV4cCI6MTY4MDcwMDgxNiwiaWF0IjoxNjc5NDA0ODE2LCJqdGkiOiI0MjcyMTk6YzA5MWYwOTQtOTQwMy00NjAzLTgzOWItMGU0YTQ1Njg1OGEyOjIwMjMwMzIxMTAwNjM4NTg5In0.kYgJNKMyTukRTDICB29Zf_vasX5Hbl2kmDRXwlRZFpqIoli_1vdS14wBuaK2Hdf6xiOyS3a-CAq7RR7HO96nJm9zuo2YwJMcONy5t_XZTWppB1ob6-y97ZyCFVUBqpyFtys42a_nB89jBJ-1atCbzWdiMc0W-CDBdpBflPdNh8_w5NcB7MvA4UGhRhXlc2ADuNF-D7gEMyW5FvFRvGhbYQfmGYeM4k2xMhQ2wUiYlXiTi4R6MqJXV2E0cwl342B0dFN-Narbijr3hRhlPeETmNhjtB188s7jkG-mqzcjuORSupJRayqKwr7aqg-3owNpPLzrs2qzFyrn8dPUnIp2cQ",
                            "cache-control": "no-cache",
                            "login-type": "pc",
                            "pragma": "no-cache",
                            "sec-ch-ua": "\"Chromium\";v=\"106\", \"Google Chrome\";v=\"106\", \"Not;A=Brand\";v=\"99\"",
                            "sec-ch-ua-mobile": "?0",
                            "sec-ch-ua-platform": "\"Windows\"",
                            "sec-fetch-dest": "empty",
                            "sec-fetch-mode": "cors",
                            "sec-fetch-site": "same-origin",
                            "sw8": "1-YzY1NmJiMDg1NTAyNDJmY2JiNzgwZjM5ZjZkOGJmMTc=-ZDUwY2YzMzkxZDBkNDAwMmIzNjgwM2QzM2MyNzJlMWE=-0-NTAz-aHR0cHM6Ly9kYWlrZXRvbmcuNThjb3JwLmNvbQ==-L2RhaWtldG9uZy92MS9vcmRlci9vcmRlci1jdXN0b21lci1saXN0-ZGFpa2V0b25nLjU4Y29ycC5jb20=-0",
                            "sw8-correlation": "c291cmNl:YmVpZG91",
                            "timestamp": "1679407390"
                        },
                        "referrer": "https://daiketong.58corp.com/",
                        "referrerPolicy": "strict-origin-when-cross-origin",
                        "body": null,
                        "method": "GET",
                        "mode": "cors",
                        "credentials": "include"
                    });
                    let json = (await res).json()
                    return json.then(
                        function (a) {
                            var list = a.data.data
                            console.log(list)
                            var newlist = list.filter((b) => {
                                return b.order_invalid_time == '' && b.order_status.indexOf("INVALID") == -1 && b.order_status.indexOf("REPORTED") == -1 && b.order_status.indexOf("VISITED") == -1 && b.order_status.indexOf("INITIALIZED") == -1
                            })
                            return newlist
                        }
                    )
                }


                async function useData(name) {
                    let value = await getData(name); // value等于data.data的值
                    if (value) {
                        console.log(value)
                        let ID = value[0].order_id
                        console.log(ID)
                        var input = document.querySelector('input[placeholder="请输入订单ID"]');
                        let name = document.querySelector('#consumerName')
                        var inputEvent = new Event('input', {bubbles: true});
                        input.value = ID;
                        input.dispatchEvent(inputEvent);
                        name.value = ''
                        var element = document.querySelector(".is-plain span");
                        console.log(element);
                        element.click()
                        alert("查询成功")

                    }
                }

                let timer = setInterval(function checkElement() {
                    // 获取元素
                    var element = document.querySelector(".is-plain");
                    // 如果元素存在,打印它的文本内容,并清除定时器
                    if (element) {
                        let querycriteria = document.querySelector('.query-criteria')
                        let div = document.createElement("div")
                        div.innerHTML = `<div data-v-652f0c2c="" class="el-input el-input--small el-input--suffix"><!----><input type="text" id="consumerName"  autocomplete="off" placeholder="请输入客户姓名" maxlength="20" class="el-input__inner"><!----><!----><!----><!----></div>`
                        querycriteria.appendChild(div)
                        let input = document.querySelector('input[placeholder="请输入订单ID"]');
                        let name = document.querySelector('#consumerName')
                        element.addEventListener('click', function () {
                            console.log("绑定成功");
                            if (name.value != "") {
                                // console.log(2323232323)
                                useData(name.value)
                            }
                        })


                        clearInterval(timer);
                    }

                }, 1000);

            } else if (window.location.href.indexOf("transactionAuditList") > -1) {

                // 创建一个Date对象
                var today = new Date();
                // 获取年份、月份和日期
                var year = today.getFullYear();
                var month = today.getMonth() + 1; // 月份从0开始,需要加1
                var day = today.getDate();
                var hour = today.getHours();
                var minute = today.getMinutes();
                var second = today.getSeconds();
                // 格式化日期字符串
                var formattedDate = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;
                var currentTime = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day} ${hour < 10 ? '0' : ''}${hour}${minute < 10 ? '0' : ''}${minute}${second < 10 ? '0' : ''}${second}`;
                var orderDetailList = [];

                async function sucscribe(page, orderid = "") {
                    let result
                    if (orderid == "") {
                        result = await fetch(`https://daiketong.58corp.com/daiketong/v1/transaction/list?order_workflow_status=PASSED&page=${page}&order_audited_at_start=${formattedDate}&order_audited_at_end=${formattedDate}`)
                    } else {
                        result = await fetch(`https://daiketong.58corp.com/daiketong/v1/transaction/list?page=1&order_id=${orderid}`)
                    }
                    let resultData = await result.json()

                    let idList = resultData.data.data
                    console.log(page, idList)
                    let promises = idList.map(id => orderDetail(id, orderid))
                    await Promise.all(promises)

                }

                async function successfulSale() {
                    let result = await fetch(`https://daiketong.58corp.com/daiketong/v1/success-sale/audit-list?page=1&status=PASSED&audit_date_start=${formattedDate}&audit_date_end=${formattedDate}`)
                    let resultData = await result.json()
                    let idList = resultData.data.data
                    let promises = idList.map(async id => {
                        let result2 = await fetch(`https://daiketong.58corp.com/daiketong/v1/success-sale/audit-detail?batch_id=${id.batch_id}`)
                        let resultData2 = await result2.json()
                        let promises = resultData2.data.order_list.map(id => sucscribe(1, id.ssbo_order_id))
                        await Promise.all(promises)
                    })
                    await Promise.all(promises)
                }

                async function getdistributor_city(id) {
                    let result = await fetch(`https://daiketong.58corp.com/daiketong/v1/order/order-ledger-list?page=1&order_id=${id}`)
                    let resultData = await result.json()
                    return resultData.data[0].distributor_city_name
                }

                async function getProfit(id) {
                    let result = await fetch(`https://daiketong.58corp.com/daiketong/v1/pc/order/order-commission-and-fund/${id}`)
                    let resultData = await result.json()
                    return resultData.data[0].pretend_profit_amount
                }

                async function orderDetail(id, orderid) {
                    let result = await fetch(`https://daiketong.58corp.com/daiketong/v1/transaction/detail?order_id=${id.order_id}`)
                    let resultData = await result.json()
                    let distributor_city = await getdistributor_city(id.order_id)
                    let profit = await getProfit(id.order_id)
                    let response = resultData.data
                    let consumerDict = {
                        "项目城市": id.city_name,
                        "机构城市": distributor_city,
                        "审核节点": orderid != "" ? "成销" : response["transaction_detail"]["or_order_status"] === "SUBSCRIBED" ? "认购" :
                            response["transaction_detail"]["or_order_status"] === "SIGNED" ? "签约" :
                                response["transaction_detail"]["or_order_status"] === "SIGN_OFFLINE" ? "草签" : "",
                        "部门": id.department_name,
                        "项目名称": response["transaction_detail"]["or_buildings_name"],
                        "订单ID": response["transaction_detail"]["order_id"],
                        "客户姓名": response["transaction_detail"]["oc_name"],
                        "房号": response["transaction_detail"]["or_no"],
                        "机构": response["broker_distributor"]["distributor_name"],
                        "认购时间": response["transaction_detail"]["order_subscribed_at"].slice(0, 10),
                        "签约日期": response["transaction_detail"]["order_signed_at"].slice(0, 10),
                        "驻场": response["audit_data"][0]["author_name"],
                        "审批人": response["audit_data"][0]["audit_name"],
                        "GTV": parseFloat((parseFloat(response["transaction_detail"]["or_price"]) / 10000).toFixed(1)),
                        "留存": parseFloat((profit / 10000).toFixed(2)),
                        "机构": response["broker_distributor"]["distributor_name"],
                        "提交时间": response["audit_data"][0]["submited_at"],
                        "审核时间": response["audit_data"][0]["audited_at"],
                        "项目ID": response["transaction_detail"]["buildings_id"],
                        "超链接": `=HYPERLINK("https://daiketong.58corp.com/#/orderManagementFolder/transactionInformationAudit/transactionAudit/transactionAuditBase/transactionAuditDetail?order_id=${response["transaction_detail"]["order_id"]}&examineNode=SUBSCRIBED&approvalStatus=PASSED","订单界面")`
                    }
                    orderDetailList.push(consumerDict)
                    return resultData.data
                }

                // 辅助函数,用于将字符串转为ArrayBuffer
                function s2ab(s) {
                    var buf = new ArrayBuffer(s.length);
                    var view = new Uint8Array(buf);
                    for (var i = 0; i < s.length; i++) {
                        view[i] = s.charCodeAt(i) & 0xFF;
                    }
                    return buf;
                }

                // 辅助函数,用于下载文件
                function saveAs(blob, fileName) {
                    var url = URL.createObjectURL(blob);
                    var link = document.createElement('a');
                    link.href = url;
                    link.download = fileName;
                    link.click();
                }

                async function exportData(callback) {
                    // 定义需要导出的数据
                    var dataRows = [];
                    // await sucscribe(1);
                    for (let i = 1; i < 10; i++) {
                        await sucscribe(i)
                    }
                    await successfulSale()


                    // 添加表头
                    dataRows.push(Object.keys(orderDetailList[0])); // 添加表头

                    // 添加数据行
                    orderDetailList.forEach(function (orderDetail) {
                        dataRows.push(Object.values(orderDetail));
                    });


                    // 创建Excel文件
                    var workbook = XLSX.utils.book_new();
                    var worksheet = XLSX.utils.aoa_to_sheet(dataRows);
                    XLSX.utils.book_append_sheet(workbook, worksheet, '订单详情');

                    // 下载Excel文件
                    var fileName = currentTime + ' 审核订单详情.xlsx';
                    var excelFile = XLSX.write(workbook, {bookType: 'xlsx', type: 'binary'});
                    var blob = new Blob([s2ab(excelFile)], {type: 'application/octet-stream'});
                    saveAs(blob, fileName);
                    // 数据下载完成后执行回调函数
                    callback();
                }

                (function () {
                    'use strict';
                    // 延时2秒后添加导出按钮
                    setTimeout(function () {
                        var readInfoText = document.querySelector('.query-criteria');
                        var exportBtn = document.createElement('button');
                        exportBtn.className = 'el-button el-button--primary el-button--small is-plain';
                        exportBtn.innerText = '导出Excel';
                        readInfoText.appendChild(exportBtn);
                        var loadingIcon = document.createElement('i');
                        loadingIcon.className = 'el-icon-loading';
                        loadingIcon.style.display = 'none';
                        exportBtn.insertBefore(loadingIcon, exportBtn.firstChild);
                        exportBtn.addEventListener('click', function () {
                            orderDetailList = []
                            loadingIcon.style.display = 'inline-block';
                            exportData(function () {
                                loadingIcon.style.display = 'none';
                                alert('数据已经下载完成!');
                            });
                        });
                    }, 1000);
                })();
            } else if (window.location.href.indexOf("bankDetail") > -1) {
                // GM_xmlhttpRequest({
                //     method: "GET",
                //     url: "https://www.piaoju114.com/web/tool/cdbank?bank_name=&bank_no=102588002101",
                //     headers: {
                //         "User-Agent": "Mozilla/5.0",    // 可以设置User-Agent
                //     },
                //     onload: function(response) {
                //         const pattern = /<div class="col-6 b-name">([^<]*)<\/div>/; // 匹配的正则表达式
                //
                //         const matches = response.responseText.match(pattern); // 使用正则表达式进行匹配
                //         if (matches) {
                //             const bankName = matches[1]; // 匹配到的银行名称
                //             console.log(bankName);
                //             // 选择所有的 .el-col 元素
                //             // 获取所有的 .el-col 元素
                //             const elCols = document.querySelectorAll('.read-info_text .el-col');
                //             // 遍历所有 .el-col 元素
                //             elCols.forEach((elCol) => {
                //                 // 找到子元素中包含新开户银行:的元素
                //                 const elChild = elCol.querySelector(':scope > :first-child');
                //                 if (elChild.innerText.trim() === '新开户银行:') {
                //                     // 追加一个 span 元素
                //                     const span = document.createElement('span');
                //                     console.log(elChild.parentNode.text)
                //                     // elChild.innerText =`(${bankName})`;
                //
                //                 }
                //             });
                //         }
                //     }
                // });
            } else if (window.location.href.indexOf("sg_id") > -1) {


                setTimeout(async function () {
                    var table = document.querySelector('.el-table__row')
                    // console.log(table)
                    var tds = table.querySelectorAll('td')
                    tds[0].addEventListener("click", function () {
                        window.open(`https://daiketong.58corp.com/#/orderManagementFolder/transactionInformationAudit/transactionAudit/transactionAuditBase/transactionAuditDetail?order_id=${tds[0].textContent.trim()}&examineNode=SUBSCRIBED&approvalStatus=PASSED`, '_blank');
                    })
                    const dividers = document.querySelectorAll('.el-divider.el-divider--horizontal');
                    const fourthDivider = dividers[2];
                    const url = `https://daiketong.58corp.com/#/orderManagementFolder/transactionInformationAudit/transactionAudit/transactionAuditBase/commissionDetail?order_id=${tds[0].textContent.trim()}`;
                    const newWindow = window.open(url);

                    const intervalId = setInterval(() => {
                        const table = newWindow.document.querySelectorAll('.el-table--border');
                        console.log(table)
                        if (table) {
                            newWindow.close();
                            window.focus();

                            const reversetable = Array.from(table).reverse();
                            clearInterval(intervalId);
                            reversetable.forEach((item) => {
                                const tableContent = item.outerHTML;
                                console.log(tableContent)
                                // 将表格内容追加到目标网站的第四个 .el-divider.el-divider--horizontal 元素后面
                                const newSibling = document.createElement('div');
                                newSibling.innerHTML = tableContent;
                                fourthDivider.insertAdjacentElement('afterend', newSibling);
                                // 找到表格后的操作
                            })
                        }
                    }, 4000);
                    window.addEventListener('message', event => {
                        oatoken = event.data
                    });
                    async function addTable() {
                        loadingIcon.style.display = 'inline-block';
                        planList = []
                        const newWindow = window.open(`https://oa.58corp.com/#/platform?tabName=32`, '_blank');
                        window.focus();
                        const intervalId = setInterval(async () => {
                            if (oatoken != '') {
                                console.log('成功获取', oatoken)
                                newWindow.close()
                                clearInterval(intervalId);
                                await getOaIdList(tds[3].textContent.trim())
                                await new Promise(resolve => setTimeout(resolve, 1200));
                                planList.sort((a, b) => {
                                    const dateA = new Date(a.提交时间);
                                    const dateB = new Date(b.提交时间);
                                    return dateB - dateA; // 降序排列
                                });
                                console.log('planList', planList)
                                planList = planList.map(({ 提交时间, ...rest }) => rest);
                                // 创建表格元素
                                const table = document.createElement('table');
                                table.classList.add('el-table', 'el-table--border');
                                // 创建表头
                                const thead = document.createElement('thead');
                                const trHeader = document.createElement('tr');
                                for (let key in planList[0]) {
                                    const th = document.createElement('th');
                                    th.classList.add('is-leaf');
                                    th.textContent = key;
                                    if (key === '收回方案') {
                                        th.style.width = '30%';
                                    } else if (key === '出街方案') {
                                        th.style.width = '50%';
                                    }
                                    trHeader.appendChild(th);
                                }
                                thead.appendChild(trHeader);
                                // 创建表格主体
                                const tbody = document.createElement('tbody');
                                planList.forEach((plan) => {
                                    const tr = document.createElement('tr');
                                    tr.classList.add('el-table__row', 'current-row');
                                    for (let key in plan) {
                                        const td = document.createElement('td');
                                        td.classList.add(`el-table__${key.replace(/\s+/g, '_').toLowerCase()}`);
                                        if (plan[key]) {
                                            td.innerHTML = plan[key].replace(/\n/g, '<br/>');
                                        } else {
                                            td.innerHTML = "";
                                        }
                                        if (key === '收回方案') {
                                            td.style.width = '30%';
                                        } else if (key === '出街方案') {
                                            td.style.width = '50%';
                                        }
                                        tr.appendChild(td);
                                    }
                                    tbody.appendChild(tr);
                                });
                                table.appendChild(thead);
                                table.appendChild(tbody);
                                // 将表格追加到第四个 .el-divider.el-divider--horizontal 后面
                                const dividers = document.querySelectorAll('.el-divider.el-divider--horizontal');
                                const fourthDivider = dividers[2];
                                fourthDivider.insertAdjacentElement('afterend', table);
                                loadingIcon.style.display = 'none';
                                window.focus();
                            }
                            newWindow.postMessage({
                                type: 'getToken'
                            }, '*');
                            console.log("发送请求")
                            // clearInterval(intervalId);
                        }, 500);
                    }
                    var loadingIcon = document.createElement('i');
                    loadingIcon.className = 'el-icon-loading';
                    loadingIcon.style.display = 'none';
                    tds[3].querySelector("div").insertBefore(loadingIcon, tds[3].querySelector("div").firstChild);
                    addTable()
                    tds[3].addEventListener("click", addTable)
                    // console.log(tds)
                }, 1000)
            } else if (window.location.href.indexOf("oa.58corp.com") > -1) {
                (async function f() {
                    let token = await fetch('https://oa.58corp.com/accessToken/bpm/getToken')
                    let mytoken = await token.json()
                    if (mytoken.result) {
                        console.log(mytoken.result)
                    }
                    window.addEventListener('message', event => {
                        if (event.data.type === 'getToken') {
                            event.source.postMessage(mytoken.result, event.origin);
                            console.log("成功post")
                        }
                    });
                })()
            }
            // 更新当前URL地址
            currentUrl = window.location.href;
        }
    }, 500);

};