您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
可以跳转项目页,打开合同扫描件,一键下载订单明细
当前为
// ==UserScript== // @name 爱房JS脚本 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 可以跳转项目页,打开合同扫描件,一键下载订单明细 // @author 熊伟良 // @match https://daiketong.58corp.com/* // @match https://max.58corp.com/* // @icon https://pages.anjukestatic.com/fe/ifang_node_admin_web/favicon.ico // @grant none // @license MIT // ==/UserScript== window.onload = function () { 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("orderManagementFolder") > -1) { const cookie = document.cookie; // console.log(cookie) var bc_id = "1" setTimeout(function () { let contentList = document.querySelectorAll(".section-content-item-value") contentList.forEach(function (contract, contractindex) { let reg = /^B/ if (reg.test(contract.innerText) == true) { var buildingId = contract.innerText.substring(3, 8).toString(); var bc_code = contract.innerText; console.log(buildingId, bc_code); console.log(contentList[1]) contentList[0].onclick = function () { let win = window.open(url = `https://daiketong.58corp.com/#/refactorProject/projectManager/projectManagerIndex/projectManagerDetail?building_id=${buildingId}`) } 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 => { 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-M2U5ZDg2OThiNWEwNDM4NTk0ZmU2OTU3OTM0NzA4NmE=-NWI3MDVlNTM5YWU5NGY3YzhjZTVhZGIyZDg2ZDc2MTc=-0-NTAz-aHR0cHM6Ly9kYWlrZXRvbmcuNThjb3JwLmNvbQ==-L2phcGkvYnVpbGRpbmdzL2NvbnRyYWN0L2dldC1wYWNraW5nLWxpc3Q=-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 () { window.open(url = item["url"]) }, false) console.log(item["url"]) }) }) } }) }); console.log(bc_id, "1111"); } }) }, 1000) let re = setInterval(function () { let viewerHalf = document.querySelector(".viewerHalf") if (viewerHalf) { console.log(re) viewerHalf.className = "viewer-container viewer-backdrop viewer-fixed viewer-fade viewer-transition viewer-in" clearInterval(re) } else { // console.log(1) } }, 1000) 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" } } } 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() } };