GDorder

2020/12/30 下午4:51:35

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

You will need to install an extension such as Tampermonkey to install this script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name        GDorder
// @namespace   Violentmonkey Scripts1
// @include     https://gdgpo.czt.gd.gov.cn/gpmall/orders/orderslist.html
// @grant       none
// @version     2.5
// @author      小白
// @require     http://code.jquery.com/jquery-1.12.4.js
// @description 2020/12/30 下午4:51:35
// ==/UserScript==
var finalData;

$(function () {
    window.helloworld = function() {
        alert('Hello world!');
    }
   window.setTimeout(helloworld());
   appendButton();
  
  $("#downLoad").click(function(){
    var jsonData = [];
    
    $(".tableWrap-hover").each(function(){
      var clientData = {};
      var isFinshedIframe = new Boolean(0);
		  let this1 = $(this);
      
      this1.children(".table-row-title").children(".cell").children(".table-title-item").children(".color6").each(function(){
        
        if($(this).html() =="订单编号:"){
          clientData['orderNo'] = $(this).next().html();
        }else if($(this).html() =="订单状态:"){
          clientData['status'] = $(this).next().html();
        }else if($(this).html() =="采购单位:"){
          clientData['company'] = $(this).next().html();
        }else if($(this).html() =="区划:"){
          clientData['areaCode'] = $(this).next().html();
        }else if($(this).html() =="下单时间:"){
          clientData['orderTime'] = $(this).next().html();
        }
      });
      
      var products = [];
      this1.children(".projectTable").find("tr").each(function() { 
        // console.log($(this));
        let this2 = $(this);
        var product = {};
        this2.find("td").each(function(){
          // console.log($(this).html());
          // var aDetail = $(this).children("a").html();
          
          /*
          var itemName = $(this).children(".intr").children(".introduce").children(".parts_name").attr("title");
          if(typeof(itemName)!="undefined"){
            product.itemName = itemName;
          }
          
          var itemPrice = $(this).children(".row").children(".col-xs-7").text();
          var num = $(this).children(".row").children(".col-xs-5").text();
          if(typeof(itemPrice)!="undefined" && itemPrice!=""){
            product.itemPrice = itemPrice.replace(/\s+/g,"").substr(1);
          }
          
          if(typeof(num)!="undefined" && num!="" ){
            product.num = num.replace(/\s+/g,"").substr(1);
          }
          */
          
          /**
           * 列表中编列每张单的订单详情,打开n个iframe去获取
           *
           */
          if($(this).children("a").html() == "订单详情"){
            this1.addClass("checked");
            var aDetailHref = $(this).children("a").attr("href");
            // var newWindow = window.open(aDetailHref);
            // newWindow.focus();
            
            var iframe = document.createElement('iframe'); 
            iframe.src = aDetailHref;
            iframe.id = clientData['orderNo'];
            document.body.appendChild(iframe);
            
            $('#'+clientData['orderNo']).load(function(){
                alert('loaded!');
                var invoiceData = {};
                // var obj=document.getElementById(clientData['orderNo']).contentWindow; 

                // console.log($("#"+clientData['orderNo']).contents());
                console.log($("#"+clientData['orderNo']).contents().find("html").find("body").find(".bar_record").find(".bid_box").find(".mrt_tab2").find("tr"));
              
                var i = new Number("0"); 
                $("#"+clientData['orderNo']).contents().find(".bar_record").children(".bid_box").children(".mrt_tab2").find("tr").find("td").each(function(){
                    // console.log($(this).text().replace(/\s+/g,"").indexOf(":"));
                    // console.log($(this).text().replace(/\s+/g,""));
                    var arr = $(this).text().replace(/\s+/g,"").split(":");
                     // console.log(arr[0]+"--------"+arr[1]);
                    
                    if($(this).text().replace(/\s+/g,"").indexOf(":") != -1){
                      if(arr[0] == "送货时间" && typeof(arr[1])!="undefined"){
                        clientData['deliveyTime'] = arr[1];
                      }else if (arr[0] == "备注" && typeof(arr[1])!="undefined"){
                        clientData['remark'] = arr[1];
                      }else if (arr[0] == "采购单位" && typeof(arr[1])!="undefined"){
                        clientData['company'] = arr[1];
                      }else if (arr[0] == "采购单位联系人" && typeof(arr[1])!="undefined"){
                        clientData['contactPerson'] = arr[1];
                      }else if (arr[0] == "采购人电话" && typeof(arr[1])!="undefined"){
                        clientData['contactTel'] = arr[1];
                      }else if (arr[0] == "收货地址" && typeof(arr[1])!="undefined"){
                        clientData['address'] = arr[1];
                      }else if (arr[0] == "供货联系人" && typeof(arr[1])!="undefined"){
                        clientData['saleMan'] = arr[1];
                      }else if (arr[0] == "联系电话" && typeof(arr[1])!="undefined"){
                        clientData['saleManTel'] = arr[1];
                      }
                    }else{
                      if(i == 0){
                        invoiceData['type'] = arr[0];
                      }else if(i == 1){
                        invoiceData['invoiceName'] = arr[0];
                      }else if(i == 2){
                        invoiceData['invoiceContent'] = arr[0];
                      }else if(i == 3){
                        invoiceData['taxNum'] = arr[0];
                      }
                      i = Number(i) + Number("1");
                    }
                  
                   clientData['invoice'] = invoiceData;
                });
                  
                 var j = new Number("0"); 
                 $("#"+clientData['orderNo']).contents().find(".table_3").find(".title_1").find("td").each(function(){
                   console.log($(this).text().replace(/\s+/g,""));
                   if(j == 0){
                        
                   }else if(j == 1){
                     product.itemName = $(this).text().replace(/\s+/g,"");
                   }else if(j == 2){
                      product.itemPrice = $(this).text().replace(/\s+/g,"").substr(1);
                   }else if(j == 3){
                     product.num = $(this).text().replace(/\s+/g,"");
                   }
                   j = Number(j) + Number("1");
                   
                 });
                
                console.log(jsonData);
                isFinshedIframe = true;
            });
          }
        });
        products.push(product);
      });
      clientData['products'] = products;
      jsonData.push(clientData);
    });
    console.log(jsonData);
    
    /*
    alert("-----download------");
     //window.location.href='<%=basePath%>pmb/excelShowInfo.do';
      //获取表格
      var exportFileContent = document.getElementById("table_report").outerHTML;     
      //设置格式为Excel,表格内容通过btoa转化为base64,此方法只在文件较小时使用(小于1M)
      //exportFileContent=window.btoa(unescape(encodeURIComponent(exportFileContent)));
      //var link = "data:"+MIMEType+";base64," + exportFileContent;
      //使用Blob
      var blob = new Blob([exportFileContent], {type: 'application/vnd.ms-excel'});         //解决中文乱码问题
    
		let blob = new Blob([html],{ type: 'application/vnd.ms-excel'});
      blob =  new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
    //设置链接
      var link = window.URL.createObjectURL(blob); 
      var a = document.createElement("a");    //创建a标签
      a.download = "test.xls";  //设置被下载的超链接目标(文件名)
      a.href = link;                            //设置a标签的链接
      document.body.appendChild(a);            //a标签添加到页面
      a.click();                                //设置a标签触发单击事件
      document.body.removeChild(a);    
    */
  });
   
});

function appendButton() {
  console.log("----------in---append---");
  var btnHtml = '<a xhref="javascript:toExcel()" id="downLoad" class="sbtn sbtn_color">下载表格</a>';
   $(".sbtn_box").append(btnHtml);
  $(".projectTable").attr('id','table_report');
  
}

function toExcel(){
      //window.location.href='<%=basePath%>pmb/excelShowInfo.do';
      //获取表格
      var exportFileContent = document.getElementById("table_report").outerHTML;     
      //设置格式为Excel,表格内容通过btoa转化为base64,此方法只在文件较小时使用(小于1M)
      //exportFileContent=window.btoa(unescape(encodeURIComponent(exportFileContent)));
      //var link = "data:"+MIMEType+";base64," + exportFileContent;
      //使用Blob
      var blob = new Blob([exportFileContent], {type: "text/plain;charset=utf-8"});         //解决中文乱码问题
      blob =  new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
    //设置链接
      var link = window.URL.createObjectURL(blob); 
      var a = document.createElement("a");    //创建a标签
      a.download = "test.xls";  //设置被下载的超链接目标(文件名)
      a.href = link;                            //设置a标签的链接
      document.body.appendChild(a);            //a标签添加到页面
      a.click();                                //设置a标签触发单击事件
      document.body.removeChild(a);            //移除a标签
 }