订单信息辅助
目前為
此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.cn-greasyfork.org/scripts/463102/1169829/KMERP_DETAILS.js
// ==UserScript==
// @name KMERP_DETAILS
// @namespace lezizi
// @version 0.1
// @description 订单信息辅助
// @author Via
// @match https://*.superboss.cc/*
// @icon https://erpa.superboss.cc/favicon.ico
// @grant none
// ==/UserScript==
'use strict';
// Your code here...
// 获取订单列表
function getKMDetails() {
let details = document.querySelectorAll("div.module-trade-list-item-selected");
if (details.length < 1) {
showToast("未选择订单");
return;
}
let detailArray = [];
for (let detail of details) {
let d = getDetailInfo(detail);
if (typeof (d) === "string") {
showToast(`订单${d}商品未加载,请先展开商品详情`);
return;
}
detailArray.push(d);
}
return detailArray;
}
// 获取订单详情
function getDetailInfo(params) {
let result = {};
// 订单相关
result.SysId = params.getAttribute("sid");
result.OlId = params.getAttribute("tids");
result.ExpNumber = params.getAttribute("outsid");
// 收货地址提取
let addr = params.querySelectorAll("span.J_Shipping_Address span.js-dcrypt-show");
let ssq = params.querySelector("span.detailed-address").firstChild.textContent.replace("详细地址:", "").split(" ");
result.Name = addr[0].innerText;
result.Number = addr[1].innerText;
result.Sheng = ssq[0];
result.Shi = ssq[1];
result.Qu = ssq[2];
result.Other = addr[2].innerText;
//商品列表提取
result.GoodsArray = [];
let goods = params.querySelectorAll("div.item-snapshot-itemname");
if (goods.length < 1) {
return result.SysId;
}
for (let g of goods) {
let temp = {};
temp.Code = g.getAttribute("data-outerid");
let rows = g.querySelectorAll("div.prod-properties");
for (let r of rows) {
if (r.innerText.includes("系统规格")) {
temp.Name = r.lastChild.textContent.replaceAll(" ", "").replaceAll("\n", "");
if (temp.Name === "") {
let ng = r.querySelectorAll("span")[1].innerText
temp.Name = ng.substring(1, ng.length - 1);
}
}
}
if (temp.Name === undefined) {
temp.Code = "未匹配";
temp.Name = "未匹配商品";
}
temp.Count = g.querySelector("span.needNum").innerText;
if (goods.length > 1) {
if (!`LTX002,LTX003`.includes(temp.Code)) {
result.GoodsArray.push(temp);
}
} else {
result.GoodsArray.push(temp);
}
}
//留言提取
let msg = params.querySelector("span.label-leavemessage").parentNode.querySelectorAll("span")[1];
if (msg.classList.toString() === "") {
result.Msg = msg.innerText;
} else {
result.Msg = "";
}
//备注提取
let memo = params.querySelector("span.msg-seller-memo");
if (memo !== null) {
result.Memo = memo.innerText;
} else {
result.Memo = "";
}
//返回处理结果
return result;
}
function showToast(msg,duration){
duration=isNaN(duration)?2000:duration;
var m = document.createElement('div');
m.innerHTML = msg;
m.style.cssText="width:60%; min-width:100px; background:#6495ED; opacity:0.6; height:auto;min-height: 50px; color:#fff; line-height:50px; text-align:center; border-radius:4px; position:fixed; top:30%; left:20%; z-index:999999; font-size:36px;";
document.body.appendChild(m);
setTimeout(function() {
var d = 0.5;
m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';
m.style.opacity = '0';
setTimeout(function() { document.body.removeChild(m) }, d * 1000);
}, duration);
}