// ==UserScript== // @name dxm // @namespace https://greasyfork.org/zh-CN/scripts/462551 // @version 2.6 // @author Huang // @description 统计当前订单件数 & 针对区域定价的报关金额进行批量填充 // @license MIT // @icon https://www.google.com/s2/favicons?sz=64&domain=dianxiaomi.com // @match https://www.dianxiaomi.com/order/* // @grant GM_addStyle // @run-at document-start // @downloadURL none // ==/UserScript== (t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const e=document.createElement("style");e.textContent=t,document.head.append(e)})(" h3.total-num{color:#007bff;position:absolute;left:200px;top:7px;font-size:13px}#orderListTable tr.goodsId{position:relative}.look-freight{color:#28a745;position:absolute;left:300px;top:4px;font-size:13px}#dxmOrderDetailDiv{display:none}.total-count{color:red;line-height:30px;font-size:13px;margin-left:10px}.pkg-types{color:gray;line-height:30px;font-size:13px;margin-left:10px}.myGPSR-Tag{width:40px} "); (function () { 'use strict'; var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value); class Utils { // 模拟input static tEvent(b, a) { if (b) { window.newhtmlevents = window.newhtmlevents || document.createEvent("HTMLEvents"); newhtmlevents.initEvent(a, true, true); return b.dispatchEvent(newhtmlevents); } } static simulateInput(ele, val) { this.tEvent(ele, "click"); this.tEvent(ele, "input"); ele.value = val; this.tEvent(ele, "keyup"); this.tEvent(ele, "change"); this.tEvent(ele, "blur"); } static htmlParser(htmlString) { let parser = new DOMParser(); let doc = parser.parseFromString(htmlString, "text/html"); return doc; } static isGpsrCountry(countryCode) { const countries = ["奥地利", "比利时", "保加利亚", "塞浦路斯", "克罗地亚", "捷克共和国", "丹麦", "爱沙尼亚", "芬兰", "法国", "德国", "希腊", "匈牙利", "爱尔兰", "意大利", "拉脱维亚", "立陶宛", "卢森堡", "马耳他", "荷兰", "波兰", "葡萄牙", "罗马尼亚", "斯洛伐克", "斯洛文尼亚", "西班牙", "瑞典"]; return countries.includes(countryCode); } } const _Declare = class _Declare { static init() { $(document).off("click", `a[onclick="showBatchCustoms();"]`); $(document).on("click", `a[onclick="showBatchCustoms();"]`, () => { _Declare.prepareData(); }); _Declare.applyTrackingDirect(); } static applyTrackingDirect() { $(`button[onclick="batchMoveProcessed();"]`).each(function() { $(this).attr("onclick", null); }); $(document).off("click", "[id^='moveProcessBtn']"); $(document).on("click", "[id^='moveProcessBtn']", () => { let isCheckedAnyone = $(`#showSelCheckboxNum`).length > 0; if (!isCheckedAnyone) { $.fn.message({ type: "error", msg: "请至少选择一个订单ya" }); return; } _Declare.prepareData(); showBatchCustoms(); }); } // 准备要在报关列表用到的数据 static prepareData() { let t = [], that = this, _reg = /[^0-9.]/g; $(`input[name='packageId']`).each(function() { if ($(this).prop("checked")) { let common = $(this).closest("tr").next().children(); const isJIT = $(this).closest("tr").next()[0].getAttribute("data-platform").includes("Choice"); if (!isJIT) { let eleList = common.eq(0).find("tr"); let rightPrice = common.eq(1).text().replace(_reg, ""); rightPrice = Number(rightPrice); let singleItem = eleList.length == 1; if (singleItem) { let leftPrice = eleList.find("p:contains('USD')").text().replace(_reg, ""); leftPrice = Number(leftPrice); let finalPrice = leftPrice < rightPrice ? leftPrice : rightPrice; t.push(finalPrice); } else { eleList.each((i, e) => t.push($(e).find("p:contains('USD')").text().replace(_reg, ""))); } } that.finalDeclareValues = t; } }); } static fillValues() { let that = this; const [chsName, engName, weight] = ["狗衣服", "Dog Clothes", 50]; $(`input[name="declaredValues"]`).each(function(index) { Utils.simulateInput($(this).get(0), that.finalDeclareValues[index]); }); $(`input[name="nameChs"]`).each(function(index) { if ($(this).val() == "") Utils.simulateInput($(this).get(0), chsName); }); $(`input[name="nameEns"]`).each(function(index) { if ($(this).val() == "") Utils.simulateInput($(this).get(0), engName); }); $(`input[name="weights"]`).each(function(index) { let curVal = $(this).val(); if (curVal == "" || curVal == 0) Utils.simulateInput($(this).get(0), weight); }); } }; __publicField(_Declare, "finalDeclareValues", []); let Declare = _Declare; class Summary { constructor() { this.compute(); this.total(); this.packageTypes(); this.addGpsrTag(); } // 统计订单件数 compute() { let titleRows = document.querySelectorAll(".goodsId"); titleRows.forEach((titleRow) => { let total = 0; let nextElement = titleRow.nextElementSibling; this.lookFreight(nextElement, titleRow); while (nextElement && !nextElement.classList.contains("goodsId")) { let numBoxes = nextElement.querySelectorAll('[class^="circularSpan"]'); for (let numBox of numBoxes) { let num = parseInt(numBox.textContent); total += num; } nextElement = nextElement.nextElementSibling; } titleRow.insertAdjacentHTML("beforeend", `