appendModel

append model in orderDetailAddPage

2022-05-23 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         appendModel
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  append model in orderDetailAddPage
// @author       FengXia
// @match        http://47.107.106.156/*
// @icon
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    let newNode = document.createElement("td");
    newNode.innerText="规格:";
    newNode.id="model"
    let newNode2 = document.createElement("td");
    let newNode3 = document.createElement("tr");
    let oldxhr=window.XMLHttpRequest;
    let numI = true ;
    function newobj(){}

    window.XMLHttpRequest=function(){
        let tagetobk=new newobj();
        tagetobk.oldxhr=new oldxhr();
        let handle={
            get:    function(target, prop, receiver) {
                if(prop==='oldxhr'){
                    return Reflect.get(target,prop);
                }
                if(typeof Reflect.get(target.oldxhr,prop)==='function')
                {
                    if(Reflect.get(target.oldxhr,prop+'proxy')===undefined)
                    {
                        target.oldxhr[prop+'proxy']=(...funcargs)=> {
                            let result=target.oldxhr[prop].call(target.oldxhr,...funcargs)
                            // console.log('函数劫持获取结果',result)
                            return result;
                        }

                    }
                    return Reflect.get(target.oldxhr,prop+'proxy')
                }
                if(prop.indexOf('response')!==-1)
                {
                    //console.log('属性劫持结果',Reflect.get(target.oldxhr,prop))
                    let inputblur =document.querySelector('#sales-sourceid-orderAddPage');
                    //console.log(inputblur);
                    if (inputblur){
                        // console.log('add');
                        inputblur.addEventListener("focusout", AddListener,true);
                    }

                    let xhrString = Reflect.get(target.oldxhr,prop);
                    try {
                        xhrString = JSON.parse(xhrString)
                        //console.log('属性劫持结果2',xhrString)
                        //console.log('属性劫持结果3',xhrString.detail.goodsInfo.model)
                        let modelString =xhrString.detail.goodsInfo.model;
                        let newstorageprice = xhrString.detail.goodsInfo.newstorageprice;
                        let inputblur =document.querySelector('#sales-sourceid-orderAddPage');
                        // console.log('$$$$$$$$$$$$$',inputblur);
                        if (modelString){
                            let ops=document.querySelectorAll('#sales-form-orderDetailAddPage tbody tr');
                            let ops2 =document.querySelector('#sales-form-orderDetailAddPage tbody');
                            let findModel=document.querySelectorAll('#sales-form-orderDetailAddPage tbody #model');
                            if (findModel){
                            }
                            newNode2.innerHTML=`<input class="len150 readonly" readonly="readonly" name="model" placeholder=${modelString}>`
                            newNode3.innerHTML=`<td>最新库存价:</td><td><input class="len150 readonly" readonly="readonly" name="newstorageprice" placeholder=${newstorageprice}></td>`
                            ops[11].appendChild(newNode);
                            ops[11].appendChild(newNode2);
                            ops2.appendChild(newNode3);
                        }
                        return Reflect.get(target.oldxhr,prop)
                    } catch(err){
                        return Reflect.get(target.oldxhr,prop)
                    }
                }
                return Reflect.get(target.oldxhr,prop);
            },
            set(target, prop, value) {
                return Reflect.set(target.oldxhr, prop, value);
            },
            has(target, key) {
                debugger;
                return Reflect.has(target.oldxhr,key);
            }
        }

        let ret = new Proxy(tagetobk, handle);

        return ret;
        let ops=document.querySelector('#sales-form-orderDetailAddPage .ops');
    }
})();


function QueryCustomerOrder(customer,order){
    let xhr = new XMLHttpRequest();

    let url = new URL('http://47.107.106.156:8888/sales/getOrderList.do');
    url.searchParams.set('businessdate', '');
    url.searchParams.set('businessdate1', '');
    url.searchParams.set('id', '');
    url.searchParams.set('salesdept', '');
    url.searchParams.set('customerid', customer);
    url.searchParams.set('status', '');
    url.searchParams.set('sourceid', order);
    url.searchParams.set('goodsid', '');
    url.searchParams.set('printsign', '');
    url.searchParams.set('queryprinttimes', '');
    url.searchParams.set('urgentlevel', '');
    url.searchParams.set('lineid', '');
    url.searchParams.set('isstoragelock', '0');
    url.searchParams.set('salesuserArrs', '');
    url.searchParams.set('page', '1');
    url.searchParams.set('rows', '200');
    url.searchParams.set('sort', 'addtime');
    url.searchParams.set('order', 'desc');

    // 2. 配置它:从 URL /article/.../load GET-request
    xhr.open('post', url);

    // 3. 通过网络发送请求
    xhr.send();

    // 4. 当接收到响应后,将调用此函数
    xhr.onload = function() {
        if (xhr.status != 200) { // 分析响应的 HTTP 状态
            alert(`Error ${xhr.status}: ${xhr.statusText}`); // 例如 404: Not Found
        } else { // 显示结果
            let xhrString = JSON.parse(xhr.response)
            // console.log(xhrString)
            if (xhrString.total > 0){
                let i = 0;
                let orderNo='';
                for (; i < xhrString.rows.length;i++) {
                    if (xhrString.rows[i].status != '5'){
                        orderNo += `${xhrString.rows[i].id},`
                    }
                }
                if (orderNo){
                    alert( `有重复订单,订单号为${orderNo}`);

                }
            }

            // alert(`Done, got ${xhr.response.length} bytes`); // response 是服务器响应

        }
    };

    xhr.onerror = function() {
        alert("Request failed");
    };

}

function AddListener(){
    let customerInput = document.querySelector('#sales-customer-showid-orderAddPage a');
    let inputOrder = document.querySelector('#sales-sourceid-orderAddPage');
    if (inputOrder.value){
        QueryCustomerOrder(customerInput.innerText,inputOrder.value);
    }
}