NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name AdCasemain // @namespace https://github.com/ipod825/userjs // @include http://adv.epb.taichung.gov.tw/Cases/CasesMain.aspx // @version 1 // @grant none // ==/UserScript== //$(".spanPageNum > select:nth-child(1) option:contains('50')").attr("selected",true) $('.container')[1].innerHTML = '<div id="modifiedForm">\ <table>\ <tr>\ <th>舉發人:</th>\ <td id="witnessField"></td>\ <th>違規種類:</th>\ <td id="typeField"></td>\ <th>移送單位:</th>\ <td id="toPlaceField"></td>\ </tr>\ <tr>\ <th>序號:</th>\ <td class="mytd" id="seqField"></td>\ <th>登錄日期:</th>\ <td id="inDateField">~</td>\ <th>違規地點:</th>\ <td id="violatePlaceField"></td>\ </tr>\ <tr>\ <th>案件狀態:</th>\ <td id="statusField"></td>\ <th>違規日期:</th>\ <td id="violateDateField">~</td>\ <th>簽收人:</th>\ <td id="signerField"></td>\ </tr>\ <tr>\ <th>違規電話:</th>\ <td colspan="7"id="phoneField"></td>\ </tr>\ </tabe>\ </div>'; $('#seqField').append($('#BodyContent_txtSerial').css('width', '200px')); $('#witnessField').append($('#BodyContent_ddlReporters').css('width', '200px')); $('#typeField').append($('#BodyContent_ucViolationCode_ddlEipCode').css('width', '200px')); $('#violatePlaceField').append($('#BodyContent_txtLocation').css('width', '200px')); $('#statusField').append($('#BodyContent_ddl_CaseStatus').css('width', '200px')); $('#inDateField').prepend($('#BodyContent_txtEntryDateF').css('width', '100px')); $('#inDateField').append($('#BodyContent_txtEntryDateT').css('width', '100px')); $('#violateDateField').prepend($('#BodyContent_txtHappenTimeF').css('width', '100px')); $('#violateDateField').append($('#BodyContent_txtHappenTimeT').css('width', '100px')); $('#signerField').append($('#BodyContent_txtReceiver').css('width', '200px')); $('#phoneField').append($('#BodyContent_txtTel').css('width', '750px').dblclick(function(){this.select();})); $('#toPlaceField').append($('#BodyContent_ucArea_ddlEipCode').css('width', '200px')); $('#modifiedForm').append( $('<input/>').attr({ type: 'button', id: 'field', class: 'btn btn-success', value: 'Open', }).click(function () { $('#BodyContent_gvDataList').parent().find('a').not('.aspNetDisabled').each(function () {window.open(this.href, '_blank');}); }) ).append( $('#BodyContent_btnSearch') ).append( $('<input/>').attr({ type: 'button', id: 'field', class: 'btn btn-success', value: '連查', }).click(function () { $("#BodyContent_txtTel")[0].value.split(" ").map(function(phone){ $.ajax({ type: 'POST', url: 'http://adv.epb.taichung.gov.tw/Cases/CasesMain.aspx', data: getFormContent({'ctl00$BodyContent$txtTel':phone},{"ctl00$BodyContent$gvDataList$ctl13$ctl00": "10"}), async: false, success: function (res) { var doc=$(res); $("input:hidden").not("#BodyContent_MainContent input").each(function(){ this.value=doc.find("#"+this.id)[0].value; }) $('#BodyContent_MainContent .foldable:last').after(createFold(doc.find("#BodyContent_gvDataList"),$(res).find('input:hidden'),phone)); } }) }); }) ); $("#BodyContent_divSearch").remove(); $("#BodyContent_MainContent").find(".row")[0].remove(); $("#BodyContent_gvDataList_gvDataList").remove(); $('#BodyContent_MainContent').append($('<div/>').attr({class: 'foldable'})); var t=$("#BodyContent_gvDataList"); $('#BodyContent_MainContent').append(createFold(t,$("#BodyContent_ddl_CaseStatus option:selected")[0].text)); t.css({'display': 'table'}); function modifiTable(t){ t.removeAttr("id") t.find("tr:last").remove(); t.css({'display': 'none', 'margin':'0 0 0 0'}); t.find("a").filter(function() {return this.id.match(/BodyContent_gvDataList_hlSerial*/);}).each(function(){ this.href= this.href.substr(0, this.href.lastIndexOf('&')); $(this).attr("target","_blank"); }); var arr=uniqueArr(t.find("td:nth-child(8)").map(function(){return $(this).html();})); var color="#FFFFCC"; if(arr.length>1 || arr.length==0) color="red"; var targetStr = arr[0]; arr=uniqueArr(t.find("td:nth-child(3)").map(function(){return $(this).html();})); if(arr.length==1) targetStr=arr[0]; t.find("th:nth-child(10),th:nth-child(11), td:nth-child(10),td:nth-child(11)").remove(); return {'color':color,'targetStr':targetStr}; } function createFoldHead(info,control){ var c='#FFFFCC'; if('color' in info) c=info.color; return $('<div/>').attr({class: "foldable"}).append( $('<div/>').attr({class: 'row'}).append( $('<div/>').attr({class: 'col-xs-1'}).append( $('<input/>').attr({ type: 'button', value: '刪除查詢', }).click(function(){ $(this).parent().parent().next().remove(); $(this).parent().parent().parent().remove(); }) ) ).append( $('<div/>').attr({class: 'col-xs-3'}) .css({'background-color': c, 'border-style': 'outset'}) .html(info.targetStr).click(function(){ var n=$(this).parent().next(); if(n.css("display")=='none') n.css({display: 'table'}); else{ n.css({display: "none"}); } }) ).append( $('<div/>').attr({class: 'col-xs-8'}).append(control) ) ) } function pageDirection(ref,dir){ //console.log(ref.parents(".foldable").find("table")); var t=ref.parents(".foldable").find("table"); var pgIndSpan=ref.siblings(".pgInd"); var pgInd=parseInt(pgIndSpan.html()); var para=ref.parents(".foldable").find("input:last"); var paraStr=''; if(dir=='left'){ if(pgInd==1) return false; else{ pgInd-=1; paraStr=para.val()+'&__EVENTTARGET=ctl00%24BodyContent%24gvDataList%24ctl13%24ctl02'; } } else{ if(pgInd==parseInt(ref.siblings(".maxPgInd").html())) return false; else{ pgInd+=1; paraStr=para.val()+'&__EVENTTARGET=ctl00%24BodyContent%24gvDataList%24ctl13%24ctl03'; } } $.ajax({ type: 'POST', url: 'http://adv.epb.taichung.gov.tw/Cases/CasesMain.aspx', data: paraStr, async: false, success: function (res) { var tnew=$(res).find("#BodyContent_gvDataList"); modifiTable(tnew); tnew.css({'display':'table'}); t.replaceWith(tnew); pgIndSpan.html(pgInd); para.val(getPagePara($(res))); } }) } function createFold(t,targetStr){ if(t.length==0) return createFoldHead({'targetStr':'查無資料: '+targetStr},null); t.find("tr:last-child input").remove(); var str=t.find(".spanPageIndexs").html(); var control=$("<div/>").append( $('<i/>').attr({class:'glyphicon glyphicon-circle-arrow-left'}) .css({'font-size':'15px','width':'2em'}) .click(function(){ pageDirection($(this),'left'); }) ) .append($("<span/>").html(str.slice(0,1))) .append($('<span/>').attr({class:'pgInd'}).html("1")) .append($("<span/>").html('/')) .append($("<span/>").attr({class:'maxPgInd'}).html((/\d+/g).exec(str))) .append($("<span/>").html('頁')) .append( $('<i/>').attr({class:'glyphicon glyphicon-circle-arrow-right'}) .css({'font-size':'15px','width':'2em'}) .click(function(){ pageDirection($(this),'right'); }) ) .append(t.find(".spanRecoderCount")); var info=modifiTable(t); return createFoldHead(info,control).append(t).append( $("<input/>").attr({type:"hidden", value: getPagePara($(document)) }) ); } function getPagePara(doc){ return getFormParStr(doc.find("input:hidden").not("#__EVENTTARGET").not("#BodyContent_MainContent input"),{})+ "&"+getFormParStr(doc.find("#BodyContent_ddl_CaseStatus"),{}) } function getFormContent(redifine,extra){ var a=getFormParStr($("input,select").not("#BodyContent_MainContent input"),redifine) b=''; for (var name in extra) b+=name.replace(/\$/g,"%24")+"="+extra[name].replace(/\//g,"%2F").replace(/\+/g,"%2B").replace(/=/g,"%3D"); return a+"&"+b; } function getFormParStr(inputs,redifine){ return inputs.map(function(){ var v=this.value; if (this.name in redifine) v=redifine[this.name]; return this.name.replace(/\$/g,"%24")+"="+v.replace(/\$/g,"%24").replace(/\//g,"%2F").replace(/\+/g,"%2B").replace(/=/g,"%3D"); }).get().join("&"); } function uniqueArr(arr){ return $.grep(arr, function(v, k){return $.inArray(v ,arr) === k;}); }