1. 程式人生 > >checkbox翻頁多選

checkbox翻頁多選

<!DOCTYPE html>
<#include "/layout/meta.ftl">

<h3>渠道手續費結算</h3>
<div class="searchCenter">
<#if actionMessage??>
   <div class="warning icon_error">${(actionMessage)!''}</div>
</#if>
<#if actionSuccessMessage??>
   <div class="warning icon_ok ">${(actionSuccessMessage)!''}</div>
</#if>
<form id='submitForm' method='post' action="${ctx}/report/settle/query.do" name="f0">
    <div class="searchBtn" style="width: 200px;margin-right: 20px;">
        <button id="query-btn" type="button">
            <span><span>查詢</span></span>
        </button>
        <#if ((resultList??) &&  (resultList?size>0))>
            <button id="checkPayment" type="button" title="合併付款">
                <span><span>合併付款</span></span>
            </button>
        </#if>

        <button id="downBtn" type="button" onclick="doExportCsv();">
            <span><span>下載</span></span>
        </button>
    </div>

    <input id="settleNoList" name="settleNoList" type="hidden" value="${(condition.settleNoList)!''}" />
    <table class='searTabBg'>
   <tr>
        <td class="tdNameBig">SAPID:</td>
        <td>
           <input name="sapId" value="${(condition.sapId)!''}"  class="inputIn"/>
        </td>
        <td class="tdNameBig">銀行型別:</td>
        <td>
        <@ui.select list=summaryBankTypeList listKey='bankType' listValue='bankType' emptyValue="" path="condition.bankType" attributes='class=inputSelt'/>
        </td>
      </tr>
   <tr>
        <td class="tdNameBig">手續費結算單號:</td>
        <td>
           <input name="settleNo" value="${(condition.settleNo)!''}"  class="inputIn"/>
        </td>
        <td class="tdNameBig">付款狀態:</td>
        <td>
           <@ui.select list=settleStatusList listKey='code' listValue='description' emptyValue="" path="condition.status" attributes='class=inputSelt'/>
        </td>
      </tr>
   <tr>
        <td class="tdNameBig"><span class="star">*</span>結算開始時間:</td>
        <td>
            <input type="text" id="startDateStr" name="startDateStr" value="${(condition.startDateStr)!''}"
                   class="Wdate" onfocus="WdatePicker({dateFmt:'yyyyMM'});"/>
        </td>
        <td class="tdNameBig"><span class="star">*</span>結算結束時間:</td>
        <td>
            <input type="text" id="endDateStr" name="endDateStr" value="${(condition.endDateStr)!''}"
                   class="Wdate" onfocus="WdatePicker({dateFmt:'yyyyMM'});"/>

        </td>
   </tr>
    <tr>
        <td colspan="6">&nbsp;</td>
    </tr>
    </table>
</form>
</div>
<#if resultList??>
   <div id='data'>
   <table class="list" width="100%">
           <thead>
           <tr>
                <th></th>
              <th>序號</th>
              <th>手續費結算單號</th>
              <th>結算狀態</th>
              <th>SAPID</th>
              <th>渠道名稱</th>
              <th>銀行型別</th>
              <th>結算時間</th>
              <th>消費總金額</th>
              <th>退款總金額</th>
              <th>手續費金額</th>
              <th>結算週期</th>
              <th>結算方式</th>
              <th>收票要求</th>
              <th>供應商編碼</th>
                <th>付款金額</th>
                <th>備註</th>
                <th>操作</th>
           </tr>
           </thead>
           <tbody>
           <#list resultList as item>
           <tr>
                <td>
                    <#if item.status='02'>
                        <input id="ayment${item_index+1}" type="checkbox" name="ke" value="${item.settleNo}">
                    </#if>
                </td>
              <td>${item_index+1}</td>
              <td>
                    <#if item.settleNo??>
                      <a href="javascript:void(0)" id="orderNoResult"
                         onclick="showOrderNoResultList('${item.settleNo}')" class="blueLink">${(item.settleNo)!''}</a>
                    </#if>

                </td>
              <td>${item.statusDesc}</td>
              <td>${item.sapId}</td>
            <td>${item.channelName}</td>
              <td>${item.bankType}</td>
              <td>${item.settleYearMonth}</td>
                <td>
                    ${(item.consumeAmount)?string(',##0.00')}
                </td>
                <td>
                    ${(item.refundAmount)?string(',##0.00')}
                </td>
                <td>
                    ${(item.poundageAmount)?string(',##0.00')}
                </td>
              <td>${item.settleCycleDesc}</td>
              <td>${item.settleTypeDesc}</td>
              <td>${item.ticketTypeDesc}</td>
              <td>${item.bpNo}</td>
                <td>
               <#if item.status='01'>
                        <input id="confirmAmount${item_index+1}" value="${item.confirmAmount?string('0.00')}">
                        </input>
               <#else>${(item.confirmAmount)?string(',##0.00')}
               </#if>
                </td>
                <td>${item.remark}</td>
              <td>
            <#if item.status='01'>
                    <a href="javascript:void(0)" id="confirm${item_index+1}" onclick="confirmAmount('${item.settleNo}','${item.poundageAmount}', $('#confirmAmount${item_index+1}').val(), this)" class="blueLink">確認</a>
            <#elseif item.status='02'||item.status='04'||item.status='05'>
                    <a href="javascript:void(0)" id="payment${item_index+1}" onclick="payment('${item.settleNo}', this)" name="pay${item.settleNo}" class="blueLink">付款</a>
                    <a href="javascript:void(0)" id="giveup${item_index+1}" onclick="giveupPayment('${item.settleNo}', this)" class="blueLink">放棄付款</a>
            </#if>
                   <#-- <a href="javascript:void(0)" onclick="showDetailedInfo('${item.settleNo}')" class="blueLink">操作日誌</a>-->
              </td>
          </tr>

           </#list>
           </tbody>
       </table>
       <@ui.page formId="f0"/>
   </div>
</#if>
<script language="javascript" type="text/javascript">
    $(function () {
        checkedNos = $("#settleNoList").val();
        paymentIds= "";

        //通用方法
        define_csb_common_method();
        $("form[name='f0']").validate({
            rules: {
                startDateStr: "required",
                endDateStr: {year: true}
            },
            messages: {
                startDateStr: '請輸入結算開始時間',
                endDateStr:  {required: '請輸入結算結束時間', year: '查詢時間不能超過1年'}
            }
        });

        $("input[name=ke]").click(function(){
            if(this.checked==true){
                var pay="pay"+this.value;
                //避免重複新增(若存在元素時,不新增)
                if(!contains(checkedNos,this.value)){
                    checkedNos+=this.value+",";
                    paymentIds +=pay+",";
                }
            } else {
                var pay="pay"+this.value;
                if(contains(checkedNos,this.value)){
                    checkedNos=checkedNos.replace((this.value+","),"");
                    paymentIds =paymentIds.replace((pay+","),"");
                }
            }
            $("#settleNoList").val(checkedNos);
        });

        //查詢
        $("#query-btn").click(function(){

             if ($("form[name='f0']").valid()) {
                 var formObj = $("form[name='f0']");
                 formObj.attr("action", "${ctx}/report/settle/query.do");
                 formObj.submit();
             }
      });

        //合併付款
        $("#checkPayment").click(function () {
            $("#checkPayment").attr("disabled","disabled");
            if (checkedNos == ""){
                alert("合併付款選擇不可為空");
                $('#checkPayment').removeAttr("disabled");
                return;
            }
            var selected=subStrArray(checkedNos);
            var payment=subStrArray(paymentIds);

            $.ajax({
                url:"${ctx}/report/settle/checkMergePayment.do",
                type: 'post',
                data: {
                    settleNos:selected
                },
                traditional: true,
                success: function(result){
                    $('#checkPayment').removeAttr("disabled");
                    if(result.success){
                        getValueByName(payment);
                        alert("操作成功");
                    }else {
                        alert('合併付款失敗【'+ result.errorCode+"-"+ result.message + '】');
                    }
                },
                error: function () {
                    alert("系統異常");
                    location.reload();
                }
            })
        });
   });
    //初始化checkbox
    window.onload=function (){
        var selected=subStrArray(checkedNos);
        $("input[name=ke]").each(function () {
            if (isInArray(selected,this.value)){
               // var pay="pay"+this.value;
              //  changeValueByName(pay);
                this.checked = true;
            }
        });
    };
     /**
       * 功能描述: <br>
       *<賦值>
       *
       * @param
       * @return
       * @author 88395515
       */
     function changeValueByName(value){
         var val = document.getElementsByName(value);
         $(val).removeAttr("href");
         $(val).removeAttr("onclick");
         $(val).css({'cursor':'default'});
         $(val).text('處理中..');
     }
     /**
       * 功能描述: <br>
       *<遍歷賦值>
       *
       * @param
       * @return
       * @author 88395515
       */
    function getValueByName(payment){
        $.each(payment,function(index,value){
            changeValueByName(value);
        });
    }
   //確認金額
   function confirmAmount(settleNo, poundageAmount, confirmAmount, confirm){
        if(parseFloat(confirmAmount) > parseFloat(poundageAmount)){
         alert("請確認付款金額是否小於等於手續費總金額");
         return;
      }
        $.post("${ctx}/report/settle/confirm.do?settleno="+settleNo+"&poundageAmount="+poundageAmount+"&confirmAmount="+confirmAmount+"&radom="+Math.random(),function(data){
            var result = eval(data);
            if(result!=null){
                if(result.success){
                    alert("操作成功");
                    $("#"+confirm.id).removeAttr("href");
                    $("#"+confirm.id).removeAttr("onclick");
                    $("#"+confirm.id).css({'cursor':'default'});
                    $("#"+confirm.id).text('處理中..');
                }else{
                    alert("操作失敗【"+result.message+"】")
                }
            }
        });
   }

    //付款
    function payment(settleNo, payment){
        var settleNos=new Array()
        settleNos[0]=settleNo;
        $.post("${ctx}/report/settle/checkMergePayment.do?settleNos="+settleNos+"&radom="+Math.random(),function(data){
            var result = eval(data);
            if(result!=null){
                if(result.success){
                    alert("操作成功");
                    $("#"+payment.id).removeAttr("href");
                    $("#"+payment.id).removeAttr("onclick");
                    $("#"+payment.id).css({'cursor':'default'});
                    $("#"+payment.id).text('處理中..');
                }else{
                    alert("操作失敗【"+result.message+"】")
                }
            }
        });
    }

    //放棄付款
    function giveupPayment(settleNo, giveup){
        $.post("${ctx}/report/settle/unpay.do?settleno="+settleNo+"&radom="+Math.random(),function(data){
            var result = eval(data);
            if(result!=null){
                if(result.success){
                    alert("操作成功");
                    $("#"+giveup.id).removeAttr("href");
                    $("#"+giveup.id).removeAttr("onclick");
                    $("#"+giveup.id).css({'cursor':'default'});
                    $("#"+giveup.id).text('處理中..');
                }else{
                    alert("操作失敗【"+result.message+"】")
                }
            }
        });
    }

    var styleinfo = "height=300,width=900,top=200,left=200,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=no";

    /**
     * 操作明細
     * @param serialNo
     */
    function showDetailedInfo(settleNo){
        window.open("${ctx}/psOperateSerial/settleOperateView.do?operateKey="+settleNo+"&radom="+Math.random(),'',styleinfo);
    }

     /**
       * 功能描述: <br>
       *<  出款單號>
       *
       * @param settleNo
       */
    function showOrderNoResultList(settleNo) {
         window.open("${ctx}/report/settle/showOrderNoDetail.do?settleNo="+settleNo+"&radom="+Math.random(),'',"height=370,width=870,top=200,left=200,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=no");
    }
    //下載CSV
    function doExportCsv(){
        var dataJudge = $('#data').find('tr:eq(1)').find('td').length;
        if(dataJudge == 0){
            alert("請先查詢資料!");
        }else{
            window.location.href="${ctx}/report/settle/downloadCSV.do?"+$("#submitForm").serialize();
        }
    }



    function contains(obj, ele) {
        if(obj=="" || obj.indexOf(",") < 0){
            return;
        }
        var arr = obj.split(",");
        var i = arr.length;
        while (i--) {
            if (arr[i] == ele) {
                return true;
            }
        }
        return false;
    }

    /**
     * 使用迴圈的方式判斷一個元素是否存在於一個數組中
     * @param {Object} arr 陣列
     * @param {Object} value 元素值
     */
    function isInArray(arr,value){
        for(var i = 0; i < arr.length; i++){
            if(value === arr[i]){
                return true;
            }
        }
        return false;
    }
     /**
       * 功能描述: <br>
       *<字串去掉“,”轉陣列>
       *
       * @param
       * @return
       * @author 88395515
       */
    function subStrArray(checkedNos) {
        var checkenos=checkedNos.substring(0,checkedNos.length-1);
        var selected=checkenos.split(",");
        return selected;
    }
</script>