Greasy Fork

爱房JS脚本

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

当前为 2023-04-28 提交的版本,查看 最新版本

// ==UserScript==
// @name                爱房JS脚本
// @namespace           http://tampermonkey.net/
// @version             2.7
// @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
// @grant               GM_addStyle
// @grant               GM_xmlhttpRequest
// @grant               GM_download
// @grant               GM_setClipboard
// @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 gethehao(building) {
    const text = `系统项目名称\t楼盘ID\t归档编号
ICC碧桂园三龙汇\t72943\t1
碧桂园云樾金沙\t72987\t1
碧桂园智慧慢城\t79407\t1
顺德未来城住宅\t72790\t1
保利碧桂园和府\t95076\t1
山语湖山湖华庭\t72349\t2
阅海\t72870\t2
中交白兰春晓\t72968\t2
美的半岛庄园\t73051\t3
美的云悦江山\t72964\t3
美的置业万达广场\t72925\t3
美的东樾湾\t80797\t4
美的时光\t72856\t4
美的云璟\t73014\t4
新希望金沙公馆\t73007\t5
新希望金洲府\t72986\t5
新希望锦官半岛\t72996\t5
新希望悦珑湾\t77691\t5
龙光玖誉台\t77071\t6
龙光越秀和阅玖章\t113016\t6
龙光玖御湖\t72772\t6
龙光玖云熙园商用\t72839\t7
高明碧桂园花城荟\t72992\t8
金茂碧桂园正荣府\t72817\t8
卓越碧桂园天悦湾\t73022\t8
碧桂园水乡芳华\t72897\t9
乐平碧桂园四季峰景\t73053\t9
中骏雍景台\t72940\t10
中雅江湾\t72748\t10
万科金域半岛\t94218\t11
万科金域蓝湾二期\t72814\t11
万科中骏金域西江\t72880\t11
万科金域水岸\t83431\t11
颐安滨悦名庭\t72939\t12
颐安灝景湾\t72658\t12
颐安天璟名庭\t72917\t12
颐安天朗名庭\t72808\t12
高明钧明城\t72978\t13
远洋雅居乐风景\t83411\t13
粤凯轩\t85915\t13
花曼沁园\t72688\t14
金辉辉逸云庭\t73031\t14
中建映湖万黛\t73040\t14
金融街金悦郡\t72951\t15
实地紫藤公馆\t73038\t15
泰丰华府\t120935\t15
顺德金融街金悦府\t76489\t15
德信禹洲曦悦\t72920\t16
禹洲德信云江府\t72928\t16
禹洲朗廷湾\t72884\t16
广佛保利城\t72965\t17
华福珑熹水岸\t72946\t17
美的卓越好时光\t90683\t17
绿城顺德杨柳郡\t72962\t18
首创·禧悦台\t72778\t18
首创禧瑞园著\t72875\t18
奥园弘阳公园一號\t73011\t19
方直学府天成\t87233\t19
弘阳德商昕悦府\t73045\t19
世茂弘阳绿岛湖公馆\t73000\t19
中南春风南岸\t73028\t19
金茂绿岛湖\t83529\t19
金茂绿岛湖玺台\t83529\t19
季华正荣府\t80658\t20
新城盛悦之光\t91949\t20
越秀•星汇瀚府\t72738\t20
蓝城就岭南\t113286\t21
中南云锦\t77685\t21
卓越蔚蓝星宸\t76544\t21
碧桂园凤凰湾\t72512\t22
碧桂园凤凰湾商业\t73054\t22
碧桂园印象北江\t73058\t22
广佛里智慧慢城·数字科创小镇\t72834\t22
佳兆业花样年广雅院\t73033\t22
佳兆业悦峰\t72957\t22
龙湖江与城\t74117\t22
正荣力高观山府\t94324\t22
高明中梁首府\t72703\t23
金地熙悦\t91925\t23
金辉路劲江山云著\t72660\t23
明日阳光\t78301\t23
中梁星图\t78325\t23
保利铂悦府\t118831\t24
保利时光印象\t72934\t24
港龙滨江公园\t113004\t24
金科卓越集美江湾\t72810\t24
君御海城\t72226\t24
旭辉恒基铂仕湾\t94787\t24
新明珠江畔明珠\t89086\t24
远洋北控天成\t95981\t24
雲璟上筑\t120969\t24
兆阳O立方\t72490\t24
海伦堡美的玖悦府\t73052\t25
恒晖星河雅居\t72758\t25
华以泰花海湾\t94911\t25
黎明嘉园\t73046\t25
岭南澳苑\t72263\t25
迈豪公馆\t121158\t25
涛汇明日鎏金湾\t72879\t25
怡翠晋盛\t72298\t25
中建壹品鄂旅投东湖学府\t76364\t25
宝能云境台\t73001\t26
佛山广银海云台\t72977\t26
嘉濠雅苑\t113845\t26
建投绿地榕华里\t113280\t26
金地海逸悦江\t72846\t26
明智雅苑\t72612\t26
欧浦花城\t116548\t26
鹏瑞皓玥湾\t72959\t26
润立丽苑\t91782\t26
圣桦璟轩\t94689\t26
常乐府\t72759\t27
海伦堡弘阳悦江一號\t73030\t27
海伦堡菁华府\t72915\t27
利保米兰公馆\t72787\t27
复地公园和光\t72971\t27
佳兆业悦都会\t72859\t27
建发德信三堂院\t92129\t27
勤天熹园\t121938\t27
泰丰千玺湾\t84044\t27
信业汇景台\t92035\t27
越秀•阅湖台\t84419\t27
招商悦府\t72689\t27
金地龙湾壹号\t73043\t27
瑞安花园\t72345\t27
保利玥府\t72684\t28
保利阅江台\t73059\t28
美的滨湖学府\t94436\t28
时代金地招商云曦\t95907\t28
星河云颂府\t72999\t28
中建顺控云熙悦城\t72998\t28
德高信中央大道\t72650\t29
建发和鸣\t73041\t29
金融街仙湖悦府\t72969\t29
瑞日天下花园\t72605\t29
珠水豪庭\t72547\t29
爱情长信印玥台\t73924\t30
第壹时区\t72613\t30
海伦堡玖悦澜湾\t77639\t30
华润置地顺德润府\t92197\t30
乐翠轩\t94815\t30
美的世茂滨江壹号\t73048\t30
三水冠军城\t72597\t30
圣德嘉园\t72796\t30
万隆锦绣明城\t122939\t30
旭辉雅居乐清樾\t72749\t30
阳光城翡丽滨江\t73006\t30
中海丽湾尚宸\t94899\t30
中盈国贸中心\t84568\t30
爱情力高印玥万璟\t90433\t30
海逸桃花源记\t72299\t31
保利紫山国际\t105838\t31
汇创名铸家园\t107380\t31
金科铂悦都会\t73025\t31
金科集美山水\t72816\t39
金沙洲华侨城天鹅堡\t73032\t31
龙悦江山\t72827\t31
瑞璟大观\t89097\t31
怡翠尊堤\t72333\t31
合景新鸿基泷景\t72297\t31
海逸文汇轩\t73002\t31
碧桂园南海悦城\t113745\t31
海骏达宫馆\t72672\t31
 远洋北控天成\t95981\t31
M-CITY\t72222\t32
金科城\t73027\t32
金地招商臻玥府\t113794\t32
融创半岛壹号\t73026\t32
朝安金茂悦\t72866\t32
建发融创雅居乐·和玺\t96084\t32
佛奥湾\t72153\t32
银河广场\t121150\t32
常乐府\t72759\t32
星禅宝丰府\t无\t32
顺德自在城\t72881\t32
高明游艇商务广场\t125093\t32
银河广场\t121145\t32
物联创智谷\t72566\t32
海骏达康格斯\t72013\t32
金地招商臻玥府\t113794\t32
太平洋国际\t72454\t33
金地·棠悦\t87945\t33
颐安·雍悦华府\t76549\t33
保利华侨城云禧\t72956\t33
翡翠西江\t72724\t33
大华紫樾府\t120267\t33
龙光玖悦湾\t118829\t33
星星凯旋国际\t72991\t33
方直珑湖湾\t73018\t33
云山峰境花园云峰荟\t72883\t33
龙光天宸\t73009\t34
龙光天誉\t93512\t34
保利H+\t121838\t34
美的金地新明珠凤翔湾壹号\t73057\t34
华侨城碧云1号\t82174\t34
金地中南新城大境\t121035\t34
泰丰千语庭\t125429\t34
华发滨江府\t120329\t34
瀚康华府\t72979\t34
卓越万科朗润园\t72947\t35
鸿业季华天地\t72858\t35
中港顺芯台\t114173\t35
越秀·御湖台\t123067\t35
招商曦岸\t72628\t36
中惠璧珑湾\t72656\t36
中惠璧珑湾商铺\t72794\t36
万科璞悦山\t97595\t36
万科天空之城\t72995\t36
明日阳光\t78301\t36
中海汇德里\t121871\t37
路劲天隽汇\t72769\t37
中海文锦国际\t73015\t37
首开平湖如院\t117767\t37
圆通泰广场\t136271\t37
美的鹭湖森林度假区\t72339\t37
宏宇天御江畔\t72541\t37
北滘碧桂园凤凰台\t95902\t37
观景华府\t118146\t37
灯湖首府\t96157\t38
世茂国风滨江\t72994\t38
信业悦容台\t89251\t38
中交泷湾云城\t72972\t38
安联尚璟府\t97632\t38
中国铁建领秀公馆·尚城\t72775\t38
和家互联(珠海)数字科技有限公司佛山分公司\t框架\t39
东建明德城\t125838\t39
保利中悦A11\t72725\t39
保利智慧云城\t120299\t39
保利清能和府\t77620\t39
金沙洲保利锦上\t121124\t39
保利碧桂园学府里\t73776\t39
保利和府\t95076\t39
保利云上\t72084\t39
保利中央公园\t72304\t39
保利御江南\t72976\t39
\t\t
鹤山时代天韵\t81500\t已移交中山
鸿升·春江明月\t90684\t已移交中山
华侨城·古劳水乡·纯水岸\t81554\t已移交中山
君临天下\t80853\t肇1
龙光·玖峯城\t81119\t肇1
天业·悦湖名苑\t94312\t肇1
海印尚荟四季\t81105\t肇1
肇庆万达国家度假区\t81121\t肇1
世茂滨江壹号\t81107\t肇1
方直·山林时光\t81111\t肇1
君安·峰景湾\t97419\t肇1
35区商住小区\t122329\t肇2
碧桂园合景美的阅江府\t81030\t肇2
碧桂园龙熹山\t81020\t肇2
大旺海印又一城\t81026\t肇2
东澳御园\t81118\t肇2
广宁碧桂园\t80858\t肇2
海伦堡·和悦府\t93521\t肇2
海印总统御山莊\t81041\t肇2
金嘉龙湖·春江郦城\t81113\t肇2
启迪科技城(肇庆)\t120929\t肇2
四会碧桂园明珠花园\t81024\t肇2
香江雅苑\t81048\t肇2
润立华庭\t121102\t肇2
景湖湾尚荟海岸\t80880\t肇3
丽江蓝湾\t120980\t肇3
美轮·锦绣春江花园\t93710\t肇3
泉润名轩\t121315\t肇3
天湖慧创城\t80922\t肇3
新港湾置业广场\t113008\t肇3
肇庆招商依云水岸\t81098\t肇3
湾区西部华侨城\t81093\t肇3
时代星湖印记\t82833\t肇3
保利时代天珀\t72966\t
保利新汇城\t72780\t
保利中交大都汇\t72871\t
碧桂园凤凰半岛\t81023\t
碧桂园佛山双子星城商铺\t73035\t
滨江金茂悅\t79442\t
藏珑华府\t72497\t
东建世纪锦园\t72909\t
东原印阅府\t73020\t
凤凰半岛果岭阳光\t94116\t
富港水岸云天\t72963\t
捷和广场\t72217\t
金科博翠天下\t72680\t
金融街金悦府\t72702\t
金沙洲时代天境\t72914\t
龙光玖誉城\t81087\t
龙光天曜\t72844\t
龙湖越秀傲云\t72809\t
美的桂畔君兰\t72685\t
敏捷汇金时代\t73886\t
敏捷珑玥府\t73019\t
名湖世家\t72867\t
上坤翰林湖壹号\t72922\t
上坤云栖公馆\t73021\t
时代爱车小镇\t73004\t
时代水岸\t72384\t
万科翡翠江望\t72659\t
万科金域世家\t72896\t
新城博爱湖首府\t72595\t
禹洲朗悦\t72887\t
招商岸芷汀兰商业\t74134\t
中海金玺公馆\t72757\t
中海雍景熙岸\t72717\t
中海悦林熙岸\t72924\t
中海云麓公馆\t72765\t
`;

    const rows = text.split('\n'); // split text into an array of rows
    for (let i = 1; i < rows.length; i++) { // start from index 1 to skip header row
        const [projectName, id, hehao] = rows[i].split('\t'); // split row into columns
        if (id === building) {
            return hehao;
        }
    }
    return null; // return null if building not found
}

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": 200,
                "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) {
    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)) {

                const spans = document.getElementsByTagName('span');

// 查找包含指定文本的元素
                let 合同编号 = Array.from(spans).find(span => span.textContent.includes('合同编号')).nextElementSibling;
                buildingID = 合同编号.textContent.match(/(?<=-)[^-]+(?=-)/g)[0]
                合同编号.textContent += `   (盒号${gethehao(buildingID)})`;
                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 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)
                                // 将表格内容追加到目标网站的最后一个section元素后面
                                const newSibling = document.createElement('div');
                                newSibling.innerHTML = tableContent;
                                const reviewDetail = document.querySelector('.review-detail');
                                reviewDetail.appendChild(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);


                                // 获取所有的span元素
// 获取所有的span元素
                                const spans = document.getElementsByTagName('span');

// 查找包含指定文本的元素
                                const 机构名称 = Array.from(spans).find(span => span.textContent.includes('机构名称')).nextElementSibling.textContent;

// 获取兄弟节点的文本内容
                                const 佣金单号 = Array.from(spans).find(span => span.textContent.includes('佣金单号')).nextElementSibling.textContent;


                                const reviewDetail = document.querySelector('.review-detail');
                                reviewDetail.appendChild(table);
                                loadingIcon.style.display = 'none';

                                const tip = document.createElement('div');
                                // tip.classList.add('el-table', 'el-table--border');
                                tip.innerHTML = `结佣初审通过,请及时通知开票<br>
                                                机构名称:${机构名称}<br>
                                                项目:${tds[3].textContent}<br>
                                                客户:${tds[2].textContent}<br>
                                                订单ID:${tds[0].textContent}<br>
                                                佣金单号:${佣金单号}<br>
                                                机构专员:陈耀宗`;
                                reviewDetail.appendChild(tip);

                                window.focus();
                                window.focus();
                                window.focus();
                                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")
                        }
                    });
                    // const appNode = document.getElementById('app');
                    //
                    // if (!appNode) {
                    //     return;
                    // }
                    // const observer = new MutationObserver(async (mutationsList) => {
                    //     for (let mutation of mutationsList) {
                    //         if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
                    //             for (let addedNode of mutation.addedNodes) {
                    //                 if (addedNode.classList && addedNode.classList.contains('iframe-show-list')) {
                    //                     await new Promise(resolve => setTimeout(resolve, 1000));
                    //                     const newWindow = window.open('', '_blank');
                    //                     const newDocument = newWindow.document;
                    //                     // Create a <link> element and append it to the new document head
                    //                     const cssLink = newDocument.createElement('link');
                    //                     cssLink.rel = 'stylesheet';
                    //                     cssLink.href = 'https://c.58cdn.com.cn/git/ep-fe/oa_refactor/static/css/chunk-vendors.20230420195711774.css';
                    //                     newDocument.head.appendChild(cssLink);
                    //
                    //                     const cssLink2 = newDocument.createElement('link');
                    //                     cssLink2.rel = 'stylesheet';
                    //                     cssLink2.href = 'https://c.58cdn.com.cn/git/ep-fe/oa_refactor/static/css/app.20230420195711774.css';
                    //                     newDocument.head.appendChild(cssLink2);
                    //
                    //                     // Clone the content of the original document head and append it to the new document head
                    //                     const headContent = document.head.cloneNode(true);
                    //                     newDocument.head.appendChild(headContent);
                    //
                    //                     // Clone the content of the original document body and append it to the new document body
                    //                     const bodyContent = addedNode.cloneNode(true);
                    //                     newDocument.body.appendChild(bodyContent);
                    //
                    //                     // Open the new window with the cloned content and styles
                    //                     newWindow.focus();
                    //                 }
                    //             }
                    //         }
                    //     }
                    // });


                    observer.observe(appNode, {childList: true, subtree: true});


// 开始监测
                    observer.observe(document.body, {childList: true});

                })()
            }
            // 更新当前URL地址
            currentUrl = window.location.href;
        }
    }, 500);

};