您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
可以跳转项目页,打开合同扫描件,一键下载订单明细
当前为
// ==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); };