抖音小店订单管理3.0

方便抖音订单查看,需要打开抖音订单管理界面才生效。

目前為 2021-10-08 提交的版本,檢視 最新版本

// ==UserScript==
// @name        抖音小店订单管理3.0
// @namespace   大师兄
// @match       *://fxg.jinritemai.com/ffa/morder/order/list
// @date        05/27/2021
// @updateURL/@installURL/@downloadURL
// @version     3.0
// @author      大师兄 [email protected]
// @description   方便抖音订单查看,需要打开抖音订单管理界面才生效。
// @note        2.5  @updateURL/@installURL/@downloadURL https://gf.qytechs.cn/zh-CN/scripts/431480
// @require     https://code.jquery.com/jquery-3.6.0.min.js
// @icon        https://mms0.baidu.com/it/u=685985501,228922170&fm=27&gp=0.jpg&fmt=auto
// @grant       none
// ==/UserScript==
(function() {
    "use strict";
    var dsx = {
        formatDate: function(data) {
            //时间戳转格式
            let timestamp = new Date(data * 1000);
            let year = timestamp.getFullYear();
            let month = timestamp.getMonth() + 1;
            let date = timestamp.getDate();
            let hour = timestamp.getHours();
            let minute = timestamp.getMinutes();
            let second = timestamp.getSeconds();
            return (year + "-" + th(month) + "-" + th(date) + " " + th(hour) + ":" + th(minute) + ":" + th(second));
            function th(num) {
                return num < 10 ? "0" + num : num;
            }
        },

        Toast: function(msg, duration) {
            duration = isNaN(duration) ? 3000 : duration;
            let m = document.createElement('div');
            m.innerHTML = msg;
            m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;";
            document.body.appendChild(m);
            setTimeout(function() {
                let 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);
        },

        tianjiawangluojianting:function (callback) {
            window.addEventListener('ajaxReadyStateChange', function(e){
                //console.log(e.detail, e.detail._byted_method, e.detail.responseURL, e.detail.responseText, e.detail._data); // XMLHttpRequest Object
                if(e.detail.readyState == 4 && e.detail.status >= 200 && e.detail.status < 300){
                    if(e.detail.responseURL.indexOf("/fxg.jinritemai.com/api/order/searchlist?tab=all") != -1){
                        let obj = JSON.parse(e.detail.responseText);
                        console.log("监听到的数据是:",obj);
                        //dsx.chulishuju(obj);
                        callback(obj);
                    };
                }
            });
        },

        tiqushuju:function(obj,i) {
            let kehunicheng = obj.data[i].user_nickname;
            let dingdanjine = obj.data[i].pay_amount / 100;
            let dingdanzhuangtai = obj.data[i].order_status_info.order_status_text;
            let xiadanshijian = this.formatDate(obj.data[i].create_time);
            let dingdanbianhao = obj.data[i].shop_order_id;
            let lianjiebiaoti = obj.data[i].product_item[0].product_name;
            let kehushoujianren = obj.data[i].receiver_info.post_receiver;
            let shoujihao = obj.data[i].receiver_info.post_tel;
            let dizhi = obj.data[i].receiver_info.post_addr.province.name + obj.data[i].receiver_info.post_addr.city.name + obj.data[i].receiver_info.post_addr.town.name + obj.data[i].receiver_info.post_addr.street.name;
            let daihuodaren = obj.data[i].product_item[0].properties[2].text;
            return [kehunicheng,dingdanjine,dingdanzhuangtai,xiadanshijian,dingdanbianhao,lianjiebiaoti,kehushoujianren,shoujihao,dizhi,daihuodaren];
        },

        chulishuju : function(obj) {
            //console.log("表格行数",$("#dashixiongtable tr").length);
            if($("#dashixiongtable tr").length > 6){this.tianjiashuju(obj);return};
            let kehunicheng = "";
            let xiadanshijian = "";
            let da_shop_order_id = "";

            for (let i = 0; i < obj.data.length; i++) {
                let d = this.tiqushuju(obj,i)
                $("#dashixiongtable_tbody").append(this.biaoge_html(obj.data.length - i,d[0],d[1],d[2],d[3],d[4],d[8]));
            }
            if ($("#dashixiong-caidan").outerHeight() > $(window).height() - 20) {
                $("#dashixiong-caidan").height($(window).height() - 50);
            }
        },

        biaoge_html : function(xuhao, kehunicheng, dingdanjine, dingdanzhuangtai, xiadanshijian, dingdanbianhao, lianjiebiaoti) {
            return '<tr class="hangneirong"><td class="xuhao">' + xuhao + '</td><td class="kehunicheng">' + kehunicheng + '</td><td class="dingdanjine">' + dingdanjine + '</td><td class="dingdanzhuangtai">' + dingdanzhuangtai + '</td><td class="xiadanshijian">' + xiadanshijian + '</td><td class="lianjiebiaoti">' + lianjiebiaoti + '</td><td class="dingdanbianhao">' + dingdanbianhao + "</td></tr>"
        },

        tianjiashuju : function(obj) {
            //console.log("1");
            // $("tr").remove(".hangneirong");
            let kehunicheng = "";
            let xiadanshijian;
            let da_shop_order_id;
            var dashixiong_str = "";
            let biaoge_diyige_shijiancuo = Number(Date.parse(new Date($(".hangneirong:eq(0) .xiadanshijian").text()))) / 1000;
            let biaoge_hangshu = Number(Date.parse(new Date($(".hangneirong:eq(0) .xuhao").text())));
            for (let i = 0; i < obj.data.length; i++) {

                xiadanshijian = this.formatDate(obj.data[i].create_time);

                da_shop_order_id = obj.data[i].shop_order_id;

                if (obj.data[i].create_time > biaoge_diyige_shijiancuo) {
                    kehunicheng = obj.data[i].user_nickname;
                    dashixiong_str += this.biaoge_html(i + 1, kehunicheng, obj.data[i].pay_amount / 100, obj.data[i].order_status_info.order_status_text, xiadanshijian, da_shop_order_id, obj.data[i].product_item[0].product_name);
                } else {
                    $('#dashixiongtable_tbody tr .dingdanbianhao:contains(' + da_shop_order_id + ')').siblings('.dingdanzhuangtai').text(obj.data[i].order_status_info.order_status_text);
                    $('#dashixiongtable_tbody tr .dingdanbianhao:contains(' + da_shop_order_id + ')').siblings('.dingdanjine').text(obj.data[i].pay_amount / 100);
                };
            }
            // console.log(dashixiong_str);
            $("#dashixiongtable_tbody").prepend(dashixiong_str);
            //重新写序号
            let len = $('#dashixiongtable_tbody tr').length;
            for (let i = 0; i < len; i++) {
                $('#dashixiongtable_tbody tr:eq(' + i + ') td:first').text(len - i);
            }
            if ($("#dashixiong-caidan").outerHeight() > $(window).height() - 20) {
                $("#dashixiong-caidan").height($(window).height() - 50);
            }

            this.Toast("更新完毕", 1000);
        },


        addhtml:function(){
            let a = `
<div id="dashixiong-main">
  <div id="dashixiong-main-div"></div>
  <div id="dashixiong-caidan">
    <table id="dashixiongtable">
      <thead>
        <tr>
          <th class="xuhao">序号</th>
          <th class="kehunicheng">用户昵称</th>
          <th class="dingdanzhuangtai">订单金额</th>
          <th class="dingdanzhuangtai">订单状态</th>
          <th class="xiadanshijian">下单时间</th>
          <th class="lianjiebiaoti">链接标题</th>
          <th class="dingdanbianhao">订单编号</th></tr>
      </thead>
      <tbody id="dashixiongtable_tbody"></tbody>
    </table>
  </div>
</div>
		`;
            $("body").eq(0).prepend(a);},

        addcss:function(){
            let a = `<style>
#dashixiong-caidan {
	position: fixed;
	top: 10px;
	right: 0px;
	text-align: left;
	z-index: 9998;
 /*z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。*/
	cursor: pointer;
	margin-top: 4px;
	line-height: 34px;
	display: inline-block;
	border-radius: 15px;
 /*盒子圆弧角*/
	background-color: rgba(255, 255, 255, 1);
	color: #000;
	font-size: 15px;
	padding: 15px 25px;
	width: 600px;
	overflow-x: auto;
			 /*overflow-y: auto;*/
}

#dashixiongtable {
	display: block;
	width: 100%;
	height: 600px;
	text-align: center;
	vertical-align: center;
	white-space: nowrap;
        /*-webkit-overflow-scrolling: touch;  移动端手指滚动更流畅*/
}

#dashixiongtable_tbody {
	overflow-y: auto;
}
/* 	 		#dashixiongtable_tbody:hover{overflow-y:auto;} */
#dashixiongtable tr {
/* 				height: 20px; */
}

#dashixiongtable td,#dashixiongtable th {
	padding: 1px 2px;
	border: 1px solid #000;
	border-collapse: collapse;
/*合并边框*/
}

#dashixiongtable tr:hover {
	background-color: #f0f0f0;
}

     /* 悬浮标 */
#dashixiong-main-div {
	position: fixed;
	top: 60px;
	right: 10px;
	text-align: center;
	z-index: 9999;
	cursor: pointer;
	vertical-align: middle;
	margin-top: 4px;
	height: 34px;
	width: 34px;
	line-height: 34px;
	display: inline-block;
	border-radius: 50px;
	background-color: rgba(0, 0, 0, 0.5);
}

.dashixiong {
	color: #880000;
	font-size: 23px;
}
</style>`;
            $("body").eq(0).prepend(a);
        },
        addscript:function(){
            let a = `
<script>
(function () {
    function ajaxEventTrigger(event) {
        var ajaxEvent = new CustomEvent(event, { detail: this });
        window.dispatchEvent(ajaxEvent);
    }
    var oldXHR = window.XMLHttpRequest;
    function newXHR() {
        var realXHR = new oldXHR();

        realXHR.addEventListener('abort', function () { ajaxEventTrigger.call(this, 'ajaxAbort'); }, false);

        realXHR.addEventListener('error', function () { ajaxEventTrigger.call(this, 'ajaxError'); }, false);

        realXHR.addEventListener('load', function () { ajaxEventTrigger.call(this, 'ajaxLoad'); }, false);

        realXHR.addEventListener('loadstart', function () { ajaxEventTrigger.call(this, 'ajaxLoadStart'); }, false);

        realXHR.addEventListener('progress', function () { ajaxEventTrigger.call(this, 'ajaxProgress'); }, false);

        realXHR.addEventListener('timeout', function () { ajaxEventTrigger.call(this, 'ajaxTimeout'); }, false);

        realXHR.addEventListener('loadend', function () { ajaxEventTrigger.call(this, 'ajaxLoadEnd'); }, false);

        realXHR.addEventListener('readystatechange', function() { ajaxEventTrigger.call(this, 'ajaxReadyStateChange'); }, false);

        return realXHR;
    };
    window.XMLHttpRequest = newXHR;
})();
</script>`;
            $("body").eq(0).prepend(a);

        },

        xiangyingshijian : function () {
            $("#dashixiong-main-div").click(function() {
                $(".auxo-btn.auxo-btn-primary.auxo-btn-sm").click();
            });
            $("#dashixiong-main-div").mouseenter(function() {
                $("#dashixiong-caidan").stop(true, false).show();
            });
            $("#dashixiong-main").mouseleave(function() {
                $("#dashixiong-caidan").stop(true, false).hide();
            });

            window.setInterval(function() {
                $("#dashixiong-main-div").click();
            },120000);
        }


    };

    dsx.addhtml();
    dsx.addcss();
    dsx.addscript();
    dsx.tianjiawangluojianting((d) => {dsx.chulishuju(d)});
    dsx.xiangyingshijian();

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址