datatables和template列表查询分页单元格合并
html代码:
页面需要引用template.js和dataTables.js:
<script type="text/javascript" src="${p_static}/admin/partnerCheck/js/template.js"></script>
<script src="${static_ctx}/lte/plugins/datatables/jquery.dataTables.min.js"></script>
<div class="box-body">
<#-- artTemplate 插件表格显示 用于展示合并表格数据 -->
<table id="purchaseListDiv" class="table table-bordered dataTable">
</table>
<#-- jqueryTables 插件表格隐藏 仅用于分页处理 -->
<table id="dataTable" class="table table-bordered table-striped dataTable" style="display: none;">
<colgroup>
<col width="10%">
<col width="15%">
<col width="8%">
<col width="10%">
<col width="35%">
<col width="6%">
<col width="10%">
<col width="10%">
</colgroup>
<thead>
<tr>
<th style="text-align: center;">账单号</th>
<th style="text-align: center;">总公司</th>
<th style="text-align: center;">采购员/礼包创建员</th>
<th style="text-align: center;">下单/账单时间</th>
<th style="text-align: center;">商品名称</th>
<th style="text-align: center;">数量</th>
<th style="text-align: center;">单价</th>
<th style="text-align: center;">总价</th>
</tr>
</thead>
</table>
</div>
<script id="purchaseListTable" type="text/html"> <colgroup> <col width="10%"> <col width="15%"> <col width="15%"> <col width="14%"> <col width="30%"> <col width="6%"> <col width="10%"> <col width="10%"> </colgroup> <thead> <tr> <th style="text-align: center;">账单号</th> <th style="text-align: center;">总公司</th> <th style="text-align: center;">采购员/礼包创建员</th> <th style="text-align: center;">下单/账单时间</th> <th style="text-align: center;">商品名称</th> <th style="text-align: center;">数量</th> <th style="text-align: center;">单价</th> <th style="text-align: center;">总价</th> </tr> </thead> <tbody> {{if purchaseListInfo && purchaseListInfo.length > 0}} {{each purchaseListInfo as purchaseList index}} <tr class="purchaseListTr"> <td class="orderNo">{{purchaseList.orderNo}}</td> <td class="parentCompany">{{purchaseList.parentCompany}}</td> <td class="realName">{{purchaseList.realName}}</td> <td class="dateCreated">{{purchaseList.dateCreated}}</td> <td style="text-align: left;">{{purchaseList.productName}}</td> <td>{{purchaseList.count}}</td> <td>{{purchaseList.salePrice}}</td> <td>{{purchaseList.commodityAmount}}</td> </tr> {{/each}} {{else}} <tr style="background-color: #f9f9f9;"> <td valign="top" colspan="8" class="dataTables_empty"><label style="font-weight: normal;">没有检索到数据</label></td> </tr> {{/if}} </tbody> </script>
js代码:
var purchaseList = {} purchaseList.init = function () { } var purchaseListPage = parseInt('1'); var purchaseListSize = ('10'); var scoreDetailPage = parseInt('1'); var scoreDetailPageSize = ('10'); var totalPage; purchaseList.init.prototype = { initTable: function () { $('#dataTable').DataTable({ "oLanguage": { "sLengthMenu": "每页显示 _MENU_ 条记录", "sZeroRecords": "抱歉, 没有找到", "sInfo": "从 _START_ 到 _END_ /共 _TOTAL_ 条数据", "sInfoEmpty": "没有数据", "sInfoFiltered": "(从 _MAX_ 条数据中检索)", "oPaginate": { "sFirst": "首页", "sPrevious": "前一页", "sNext": "后一页", "sLast": "尾页" }, "sZeroRecords": "没有检索到数据", "sProcessing": "<img src='./loading.gif' />", "sSearch": "搜索" }, "sDom":'rt<"row"<"col-xs-2a"i><"col-xs-8a"p><"col-xs-2b"l>>',//自定义布局 /*"scrollX": true,*/ "bServerSide": true, //需要向后端传jqueryDataTablesVo数据,是否启动服务器端数据导入 "bStateSave": false, "bJQueryUI": true, "bPaginate": true,// 分页按钮 "bFilter": false,// 搜索栏 "bLengthChange": true,// 每行显示记录数 "iDisplayLength": 10,// 每页显示行数 "aLengthMenu" : [5, 10, 20, 50, 100,200], //更改显示记录数选项 "bSort": false,// 排序 "bInfo": true,// Showing 1 to 10 of 23 entries 总记录数没也显示多少等信息 "bWidth": true, "bScrollCollapse": true, "sPaginationType": "full_numbers", // 分页,一共两种样式 另一种为two_button // 是datatables默认 // "bProcessing" : true, "bDestroy": true, "bSortCellsTop": true, "sAjaxSource": STATIC_CTX + "/purchaseList/purchaseListTotalCount", // "sScrollY": "100%", "fnInitComplete": function () { this.fnAdjustColumnSizing(true); }, "fnDrawCallback" : function(table) { //指定跳转页面 $("#dataTable_paginate").append("<input class='margin text-center paginput pipt' id='changePage' type='text'> 页 <a class='btn btn-default shiny pagbtn' style='margin-bottom:5px' href='javascript:void(0);' id='dataTable-btn'>跳转</a>"); var oTable = $("#dataTable").dataTable(); $('#dataTable-btn').click(function(e) { if($("#changePage").val() && $("#changePage").val() > 0 && parseInt($("#changePage").val()) <= totalPage) { purchaseListPage = $("#changePage").val(); new purchaseList.init().getPurchaseListData(); oTable.fnPageChange(parseInt(purchaseListPage - 1)); } else { // purchaseListPage = parseInt('1'); $("#changePage").val("") } }); }, "fnServerParams": function (aoData) { aoData.push( { "name": "orderNo", "value": $("#orderNo").val() }, { "name": "parentCompany", "value": $("#parentCompany").val() }, { "name": "orderStartTime", "value": encodeURI($("#startDate-order").val()) }, { "name": "orderEndTime", "value": encodeURI($("#endDate-order").val()) }, { "name": "pageSize", "value": purchaseListSize } ); }, "aoColumns": [ { "data": "orderNo", "render": function (data) { if (data == null) { return ""; } else { return data; } } }, { "data": "parentCompany", "render": function (data) { if (data == null) { return ""; } else { return data; } } }, { "data": "realName", "render": function (data) { if (data == null) { return ""; } else { return data; } } }, { "data": "dateCreated", "render": function (data) { if (data == null) { return ""; } else { return data; } } }, { "data": "productName", "render": function (data, type, full, meta) { if (data == null) { return ""; } else { if (full.freight == '0') { return data; } else { return data + "\n运费:" + full.freight; } } } }, { "data": "count", "render": function (data) { if (data == null) { return ""; } else { return data; } } }, { "data": "salePrice", "render": function (data) { if (data == null) { return ""; } else { return data; } } }, { "data": "commodityAmount", "render": function (data) { if (data == null) { return ""; } else { return data; } } } ], "fnRowCallback": function (nRow, aData, iDisplayIndex) {//相当于对字段格式化 if (aData.JDSTATUS == "2") { $(nRow).css("color", "red"); } }, "fnServerData": function (sSource, aoData, fnCallback) { var serializeData = function (aoData) { var data = {}; for (var i = 0; i < aoData.length; i++) { var dd = aoData[i]; if (dd['value']) { data[dd['name']] = dd['value']; } } return $.param(data); }; $.ajax({ "type": 'post', "url": sSource, "data": serializeData(aoData), "success": function (resp) { // artTemplate 加载数据 totalPage = resp.totalPage; if(purchaseListSize != $(".input-sm").val()){ purchaseListPage = parseInt('1'); purchaseListSize = $(".input-sm").val(); $("#dataTable").dataTable().fnPageChange(parseInt(purchaseListPage-1)); } new purchaseList.init().getPurchaseListData(); fnCallback(resp); var total = $("td"); if (total.size() < 2 && searchFlag) { window.wxc.xcConfirm("很抱歉,系统找不到您的记录,请换个条件试试!", "info"); } }, "error": function (resp) { window.wxc.xcConfirm("系统异常,请联系管理员并稍后重试!", "error"); } }); } }); }, getPurchaseListData: function () { $.ajax({ url: '/admin-web/purchaseList/purchaseList', type: "POST", data: { page: purchaseListPage, pageSize: purchaseListSize, orderNo: $("#orderNo").val(), parentCompany: $("#parentCompany").val(), orderStartTime: $("#startDate-order").val(), orderEndTime: $("#endDate-order").val() }, success: function (data) { var purchaseListInfo; var html = template("purchaseListTable", {purchaseListInfo: data.purchaseListDtos}); $("#purchaseListDiv").html(html); //合并单元格 new purchaseList.init().priceParityMerge(); } }) },
//合并单元格 priceParityMerge: function () { var $lastOrderNo = null; var $lastParentCompany = null; var $lastRealName = null; var $lastDateCreated = null; $(".purchaseListTr").each(function (trIndex, tr) { var $prevOrderNo = null; var $prevParentCompany = null; var $prevRealName = null; var $prevDateCreated = null; var $orderNo = $(tr).find(".orderNo"); var $parentCompany = $(tr).find(".parentCompany"); var $realName = $(tr).find(".realName"); var $dateCreated = $(tr).find(".dateCreated"); if (trIndex != 0) { $prevOrderNo = $($(".purchaseListTr")[trIndex - 1]).find(".orderNo"); $prevParentCompany = $($(".purchaseListTr")[trIndex - 1]).find(".parentCompany"); $prevRealName = $($(".purchaseListTr")[trIndex - 1]).find(".realName"); $prevDateCreated = $($(".purchaseListTr")[trIndex - 1]).find(".dateCreated"); } $lastOrderNo = new purchaseList.init().marge($lastOrderNo, $prevOrderNo, $orderNo); if ($lastOrderNo != null) { $lastParentCompany = new purchaseList.init().marge($lastParentCompany, $prevParentCompany, $parentCompany); $lastRealName = new purchaseList.init().marge($lastRealName, $prevRealName, $realName); $lastDateCreated = new purchaseList.init().marge($lastDateCreated, $prevDateCreated, $dateCreated); } }); }, marge: function ($last, $pre, $now) { if ($pre != null && $pre.html() == $now.html()) { var rowspan = $pre.attr("rowspan"); if (rowspan === undefined || rowspan === null) { $pre.attr("rowspan", 2); $last = $pre; $now.remove(); } } else if ($last != null && $now.html() == $last.html()) { var rowspan = parseInt($last.attr("rowspan")); rowspan = rowspan + 1; $last.attr("rowspan", rowspan); $now.remove(); } else { $last = null; } return $last; }, } $(function () { var obj = new purchaseList.init(); obj.orderStartTime(); obj.initTable(); }) //页码点击事件 $(document).on("click", ".dataTables_wrapper a", purchaseListPageClick); function purchaseListPageClick() { if (!$(this).parent().hasClass("disabled")) { var page = null; if ($(this).parents(".dataTables_wrapper").prev().attr("id") == "purchaseListDiv") { page = purchaseListPage; } else { page = scoreDetailPage; } if ($(this).html() == "首页") { page = 1; } else if ($(this).html() == "前一页") { page = page - 1; } else if ($(this).html() == "后一页") { page = page + 1; } else if ($(this).html() == "尾页") { page = parseInt($(this).parent().parent().find("#dataTable_next").prev().find("a").html()); } else { page = parseInt($(this).html()); } if ($(this).parents(".dataTables_wrapper").prev().attr("id") == "purchaseListDiv") { purchaseListPage = page; } else { scoreDetailPage = page; } } }
temolate复杂合并单元格:根据多个条件选择合并单元格
html:
1 <script id="returnsGoodsTable" type="text/html"> 2 <colgroup> 3 <col width="8%"> 4 <col width="8%"> 5 <col width="25%"> 6 <col width="8%"> 7 <col width="5%"> 8 <col width="5%"> 9 <col width="6%"> 10 <col width="5%"> 11 <col width="8%"> 12 <col width="8%"> 13 </colgroup> 14 <thead> 15 <tr> 16 <th style="text-align:center; width: 150px;">退货录入时间</th> 17 <th style="text-align:center; width: 200px;">包裹号</th> 18 <th style="text-align:center; width: 150px;">退货商品</th> 19 <th style="text-align:center; width: 120px;">商品sku</th> 20 <th style="text-align:center; width: 120px;">销售单价</th> 21 <th style="text-align:center; width: 120px;">退货数量</th> 22 <th style="text-align:center; width: 120px;">总退货金额</th> 23 <th style="text-align:center; width: 120px;">退货来源</th> 24 <th style="text-align:center; width: 120px;">状态</th> 25 <th style="text-align:center; width: 200px;">操作</th> 26 </tr> 27 </thead> 28 <tbody> 29 {{if returnsOrderHistoryInfo && returnsOrderHistoryInfo.length > 0}} 30 {{each returnsOrderHistoryInfo as returnsOrderHistory index}} 31 <tr class="returnsGoodsTableTr"> 32 <td class="returnRntryTime" returnid="{{returnsOrderHistory.rgid}}">{{returnsOrderHistory.returnRntryTime}}</td> 33 <td class="subOrderNo">{{returnsOrderHistory.subOrderNo}}</td> 34 <td class="goodsName" style="text-align: left;">{{returnsOrderHistory.goodsName}}</td> 35 <td class="sku">{{returnsOrderHistory.sku}}</td> 36 <td class="salePrice">{{returnsOrderHistory.salePrice}}</td> 37 <td class="count">{{returnsOrderHistory.count}}</td> 38 <td class="totalReturnAmount">{{returnsOrderHistory.totalReturnAmount}}</td> 39 <td class="returnSource">{{returnsOrderHistory.returnSource}}</td> 40 <td class="checkStatus">{{returnsOrderHistory.checkStatus}}</td> 41 {{if returnsOrderHistory.returnSource == "系统"}} 42 {{if returnsOrderHistory.checkStatus == "待审核"}} 43 <td class="handle"><a href="javascript:void(0);" style="margin-right: 24px;cursor: pointer;" onclick="new retuensGoods.init().returnAudit(this)">审核</a></td> 44 {{else}} 45 <td class="handle"></td> 46 {{/if}} 47 {{else}} 48 {{if returnsOrderHistory.checkStatus == "待处理"}} 49 <td class="handle"> 50 <a href="javascript:void(0);" style="margin-right: 10px;cursor: pointer;" onclick="new retuensGoods.init().editReturnInfo(this);">编辑</a> 51 <a href="javascript:void(0);" style="cursor: pointer;" onclick="new retuensGoods.init().deleteReturnInfo(this);">删除</a> 52 </td> 53 {{else}} 54 <td class="handle"></td> 55 {{/if}} 56 {{/if}} 57 </tr> 58 {{/each}} 59 {{else}} 60 <tr style="background-color: #f9f9f9;"> 61 <td valign="top" colspan="10" class="dataTables_empty"><label 62 style="font-weight: normal;">没有检索到数据</label></td> 63 </tr> 64 {{/if}} 65 </tbody> 66 </script>
js:
1 priceParityMerge: function () { 2 var resultReturnRntryTime = { 3 result: null, 4 resultVal: null 5 }; 6 var resultSubOrderNo = { 7 result: null, 8 resultVal: null 9 }; 10 var resultTotalReturnAmount = { 11 result: null, 12 resultVal: null 13 }; 14 var resultReturnSource = { 15 result: null, 16 resultVal: null 17 }; 18 var resultCheckStatus = { 19 result: null, 20 resultVal: null 21 }; 22 var resultHandle = { 23 result: null, 24 resultVal: null 25 }; 26 var resultGoodsName = { 27 result: null, 28 resultVal: null 29 }; 30 var resultSku = { 31 result: null, 32 resultVal: null 33 }; 34 var resultSalePrice = { 35 result: null, 36 resultVal: null 37 }; 38 var resultCount = { 39 result: null, 40 resultVal: null 41 }; 42 $(".returnsGoodsTableTr").each(function (trIndex, tr) { 43 var $preReturnRntryTime = null; 44 var preReturnRntryTimeVal = null; 45 46 var $preSubOrderNo = null; 47 var preSubOrderNoVal = null; 48 49 var $preTotalReturnAmount = null; 50 var preTotalReturnAmountVal = null; 51 52 var $preReturnSource = null; 53 var preReturnSourceVal = null; 54 55 var $preCheckStatus = null; 56 var preCheckStatusVal = null; 57 58 var $preHandle = null; 59 var preHandleVal = null; 60 61 var $preGoodsName = null; 62 var preGoodsNameVal = null; 63 64 var $preSku = null; 65 var preSku = null; 66 67 var $preSalePrice = null; 68 var preSalePrice = null; 69 70 var $preCount = null; 71 var preCount = null; 72 73 var $returnRntryTime = $(tr).find(".returnRntryTime"); 74 var returnRntryTimeVal = $(tr).find(".returnRntryTime").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 75 76 var $subOrderNo = $(tr).find(".subOrderNo"); 77 var subOrderNoVal = $(tr).find(".subOrderNo").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 78 79 var $totalReturnAmount = $(tr).find(".totalReturnAmount"); 80 var totalReturnAmountVal = $(tr).find(".totalReturnAmount").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 81 82 var $returnSource = $(tr).find(".returnSource"); 83 var returnSourceVal = $(tr).find(".returnSource").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 84 85 var $checkStatus = $(tr).find(".checkStatus"); 86 var checkStatusVal = $(tr).find(".checkStatus").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 87 88 var $handle = $(tr).find(".handle"); 89 var handleVal = $(tr).find(".handle").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 90 91 var $goodsName = $(tr).find(".goodsName"); 92 var goodsNameVal = $(tr).find(".goodsName").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 93 94 var $sku = $(tr).find(".sku"); 95 var skuVal = $(tr).find(".sku").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 96 97 var $salePrice = $(tr).find(".salePrice"); 98 var salePriceVal = $(tr).find(".salePrice").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 99 100 var $count = $(tr).find(".count"); 101 var countVal = $(tr).find(".count").text() + $(tr).find(".returnSource").text() + $(tr).find(".checkStatus").text(); 102 103 if (trIndex != 0) { 104 $preReturnRntryTime = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnRntryTime"); 105 preReturnRntryTimeVal = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnRntryTime").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 106 107 $preSubOrderNo = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".subOrderNo"); 108 preSubOrderNoVal = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".subOrderNo").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 109 110 $preTotalReturnAmount = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".totalReturnAmount"); 111 preTotalReturnAmountVal = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".totalReturnAmount").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 112 113 $preReturnSource = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource"); 114 preReturnSourceVal = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 115 116 $preCheckStatus = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus"); 117 preCheckStatusVal = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 118 119 $preHandle = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".handle"); 120 preHandleVal = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".handle").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 121 122 $preGoodsName = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".goodsName"); 123 preGoodsNameVal = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".goodsName").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 124 125 $preSku = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".sku"); 126 preSku = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".sku").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 127 128 $preSalePrice = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".salePrice"); 129 preSalePrice = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".salePrice").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 130 131 $preCount = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".count"); 132 preCount = $($(".returnsGoodsTableTr")[trIndex - 1]).find(".count").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".returnSource").text() + $($(".returnsGoodsTableTr")[trIndex - 1]).find(".checkStatus").text(); 133 } 134 var oldReturnId = $returnRntryTime.attr("returnId"); 135 136 resultReturnRntryTime = new retuensGoods.init().marge(resultReturnRntryTime.result, resultReturnRntryTime.resultVal, $preReturnRntryTime, preReturnRntryTimeVal, $returnRntryTime, returnRntryTimeVal); 137 138 if (resultReturnRntryTime.result != null) { 139 resultReturnRntryTime.result.attr("returnId", resultReturnRntryTime.result.attr("returnId") + "," + oldReturnId); 140 resultSubOrderNo = new retuensGoods.init().marge(resultSubOrderNo.result, resultSubOrderNo.resultVal, $preSubOrderNo, preSubOrderNoVal, $subOrderNo, subOrderNoVal); 141 resultTotalReturnAmount = new retuensGoods.init().marge(resultTotalReturnAmount.result, resultTotalReturnAmount.resultVal, $preTotalReturnAmount, preTotalReturnAmountVal, $totalReturnAmount, totalReturnAmountVal); 142 resultReturnSource = new retuensGoods.init().marge(resultReturnSource.result, resultReturnSource.resultVal, $preReturnSource, preReturnSourceVal, $returnSource, returnSourceVal); 143 resultCheckStatus = new retuensGoods.init().marge(resultCheckStatus.result, resultCheckStatus.resultVal, $preCheckStatus, preCheckStatusVal, $checkStatus, checkStatusVal); 144 resultHandle = new retuensGoods.init().marge(resultHandle.result, resultHandle.resultVal, $preHandle, preHandleVal, $handle, handleVal); 145 resultGoodsName = new retuensGoods.init().marge(resultGoodsName.result, resultGoodsName.resultVal, $preGoodsName, preGoodsNameVal, $goodsName, goodsNameVal); 146 resultSku = new retuensGoods.init().marge(resultSku.result, resultSku.resultVal, $preSku, preSku, $sku, skuVal); 147 resultSalePrice = new retuensGoods.init().marge(resultSalePrice.result, resultSalePrice.resultVal, $preSalePrice, preSalePrice, $salePrice, salePriceVal); 148 resultCount = new retuensGoods.init().marge(resultCount.result, resultCount.resultVal, $preCount, preCount, $count, countVal); 149 } 150 }); 151 }, 152 marge: function ($result, resultVal, $pre, preVal, $now, nowVal) { 153 if ($pre != null && preVal == nowVal && $pre.html() == $now.html()) { 154 var rowspan = $pre.attr("rowspan"); 155 if (rowspan === undefined || rowspan === null) { 156 $pre.attr("rowspan", 2); 157 $result = $pre; 158 resultVal = preVal; 159 $now.remove(); 160 } 161 } else if ($result != null && nowVal == resultVal && $now.html() == $result.html()) { 162 var rowspan = parseInt($result.attr("rowspan")); 163 rowspan = rowspan + 1; 164 $result.attr("rowspan", rowspan); 165 $now.remove(); 166 } else { 167 $result = null; 168 resultVal = null; 169 } 170 var result = { 171 result: $result, 172 resultVal: resultVal 173 } 174 return result; 175 },