Greasy Fork

Greasy Fork is available in English.

temu批量加入发货台

temu batch add

当前为 2024-10-22 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name               temu Seller Assistant
// @name:zh-CN         temu批量加入发货台
// @include            http*://seller.kuajingmaihuo.com/main/*
// @description        temu batch add
// @description:zh-cn  temu批量加入发货
// @grant              GM_getValue
// @grant              GM_setValue
// @version            3.2.5
// @run-at             document-end
// @compatible         chrome 测试通过
// @namespace          http://greasyfork.icu/users/1123819
// @require https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js
// @require            https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js
// 验证网址是否包含某字符串
// ==/UserScript==
// 验证网址是否包含某字符串

function UrlExp(textStr) {
    return RegExp(textStr).test(window.location.href);
  }
  // 创建选择器的简化写法
  function dQuery(selector) {
    return document.querySelector(selector);
  }
  function dQueryAll(selector) {
    return document.querySelectorAll(selector);
  }
  //初始化参数
  function init(){
  //清除定时任务
  localStorage.removeItem("intervalId")
  // 我的备货单页面
  if (UrlExp(/order-manage-urgency|order-manage|shipping-desk|sale-manage/)) {
    setTimeout(() => {
      let contactMsgs = [
        ["GM_START_DELIVERY", "开始加入发货台"],
        ["GM_END_DELIVERY"  , "结束加入发货台"],
        ["COLLECT_SALE_DATA", "销售数据采集"]
    ]
    let button = dQuery('.GM_START');
    if(null === button){
      let buttonBar = document.createElement('div');
      contactMsgs.forEach((item) => {
          buttonBar.innerHTML += `<input class="${item[0]}" type="button" value="${item[1]}" style="margin: 20px;"/>`;
      });
      dQuery('.index-module__bodyContainer___tK7DL').children[0].children[0].children[0].appendChild(buttonBar);
      dQuery('.GM_START_DELIVERY').addEventListener('click', (event) => {
        startAddShippedTable();
      });
      dQuery('.GM_END_DELIVERY').addEventListener('click', (event) => {
        endAddShippedTable();
      });
      dQuery('.COLLECT_SALE_DATA').addEventListener('click', (event) => {
        collectSaleData();
      });
    }
    keyBoardEndAddShippingInfo()
    },3000)
    urlHasChange();
  }
  }

  //开始加入发货台
  function startAddShippedTable(){
  if(null !== localStorage.getItem("intervalId")){
    console.log("任务已存在");
    clearInterval(localStorage.getItem("intervalId"));
  }
  var intervalId = addDeliverTable();
  console.log( "定时任务开关" + intervalId);
  localStorage.setItem("intervalId", intervalId)
  }

  //结束加入发货台
  function endAddShippedTable(){
    if(null !== localStorage.getItem("intervalId")){
        console.log("清除已存在定时任务" + localStorage.getItem("intervalId"));
        clearInterval(localStorage.getItem("intervalId"));
        localStorage.removeItem("intervalId")
      }
  }

  //开始创建发货单
  function startCreateInvoice(){
    if(null !== localStorage.getItem("createInvoiceId")){
        console.log("任务已存在")
        clearInterval(localStorage.getItem("createInvoiceId"));
      }
      var intervalId = createInvoice();
      console.log( "定时任务开关" + intervalId);
      localStorage.setItem("createInvoiceId", intervalId);
  }

  //结束创建发货单
  function endCreateInvoice(){
    if(null !== localStorage.getItem("createInvoiceId")){
        console.log("清除已存在定时任务" + localStorage.getItem("createInvoiceId"));
        clearInterval(localStorage.getItem("createInvoiceId"));
        localStorage.removeItem("createInvoiceId")
      }
  }


  //加入发货台
  function addDeliverTable(){
    var intervalId = setInterval(() => {
        //获取加入发货台按钮
        let btnArr = $('a[data-tracking-id="custom-t3wO-KG-3BT_5xyK"]').filter( function( index , e) {
            var a = e.getAttribute("disabled");
            if(a == null){
                return true;
            }else{
                return false;
            }
        } );
        //点击加入发货台
        btnArr.each(function(index , e){
            e.click();
        });
        //获取确认按钮
        let comfirmArr = dQueryAll('.PP_popoverContent_5-111-0 .body-module__popover___IF379');
        //逐个点击
        comfirmArr.forEach(e =>{
            setTimeout(function(){
                let btn = e.querySelectorAll('button')[0]
                btn.click()
            },generateRandom(500, 1000, 300))
        })
        var failWindow = document.querySelectorAll('div[data-testid="beast-core-modal-mask"]');
        failWindow.forEach(e =>{
            e.parentNode.removeChild(e)
        })
    },1500);
    return intervalId
  }

function keyBoardEndAddShippingInfo(){
    document.addEventListener('keydown', function(event) {
        // 处理键盘按下事件
        console.log('结束发货Processing...');
        endAddShippedTable()
        console.log('结束发货成功Processing...');
        var failWindow = document.querySelectorAll('div[data-testid="beast-core-modal-mask"]');
        failWindow.forEach(e =>{
            e.parentNode.removeChild(e)
        })
        var maskList = document.querySelectorAll('.MDL_innerWrapper_5-111-0');
        maskList.forEach(e =>{
          e.parentNode.removeChild(e)
        })
        var failWindow = document.querySelectorAll('div[data-testid="beast-core-modal"]');
        failWindow.forEach(e =>{
            e.parentNode.removeChild(e)
        })
});
}


  //创建发货单
  function createInvoice(){
  var intervalId = setInterval(() => {
    console.log('创建发货单')
    if(UrlExp(/shipping-list/)){
      //返回发货台
      console.log('返回发货台')
      returnShippingDesk();
    }
    //点击查询按钮
    let button = $('button[data-tracking-id="xqVOakOmzZvI1RvU"]');
    button.each(function(index , e){
      e.click();
  });
    setTimeout(function() {}, 1000)
    let inputArr = dQueryAll('.CBX_squareInputWrapper_5-72-0');
    inputArr.forEach((element, index) => {
        if (index === 0) {
          return;
        }
          //点击创建发货单
          element.click();
        //console.log(element);
      });
      setTimeout(function(){
        //点击创建发货单
        let createInvoiceBtn = $('button[data-tracking-id="O2EwJMyrt0ciAraT"]');
        createInvoiceBtn.click();
      },2000);
      //点击确认创建发货单
      setTimeout(function(){
        let confirmsArr = document.querySelector('.body-module__footer___APhLF');
        let button = confirmsArr.querySelector('button');
        button.click();
      },1000);
      if(UrlExp(/create/)){
      //点击创建备货单
      let create = document.querySelector('.shipping-desk_nBarWrapper__bXfOf');
      let button = create.querySelector('button');
      button.click();
      }
  }, 20000)
  return intervalId;
  }
  //返回发货台
  function returnShippingDesk(){

  let shippingDeskMenu = $('a[data-tracking-id="menu-/main/order-manager/shipping-desk"]');
  shippingDeskMenu.each(function(index , e){
    e.click();
  });
  }


  (function(jQuery){
    'use strict';
    console.log('脚本开始执行');
    //初始化参数
    init();
  })();

  function urlHasChange(){
    // 获取当前URL
    var currentUrl = window.location.href;
    // 定时检测URL是否发生变化
    setInterval(function() {
        if (window.location.href !== currentUrl) {
            if (UrlExp(/order-manage-urgency|order-manage/)) {
                endAddShippedTable();
              }else if(UrlExp(/order-manage-urgency|order-manage/)){
                endCreateInvoice();
              }
              console.log('URL发生变化');
              currentUrl = window.location.href;
        }}, 1000);
  }
  function generateRandom(min, max, step) {
    const randomNum = min + Math.random() * (max - min);
    return Math.round(randomNum / step) * step;
  }