var array = []; //显示按优惠金额层 $("#showAmountDiv").click(function () { showDiv("amountDiv"); }); //显示按优惠百分比层 $("#showPercentDiv").click(function () { showDiv("percentDiv"); }); //显示按优惠底价层 $("#showBasePriceDiv").click(function () { showDiv("basePriceDiv"); }); //显示各层 function showDiv(divName) { //验证活动名称是否为空 if (checkInput.checkPromotionName()) { //验证活动周期是否合法 if (checkInput.checkStartTime() && checkInput.checkEndTime()) { if ($("#txtStartTime").val() > $("#txtEndTime").val()) { $("#helpDateTime").html("开始日期只能小于等于结束日期"); return false; } init(); if (divName == "amountDiv") { //弹出层时,清掉历史输入的信息 $("#txtAmount").val(""); $("#txtAreaAmountIDs").val("一次最多1000,空格间隔"); //显示优惠金额层 $('#amountDiv').modal('show'); } else if (divName == "percentDiv") { //弹出层时,清掉历史输入的信息 $("#txtPercent").val(""); $("#txtAreaPercentIDs").val("一次最多1000,空格间隔"); //显示优惠百分比层 $('#percentDiv').modal('show'); } else if (divName == "basePriceDiv") { //弹出层时,清掉历史输入的信息 $("#txtAreaBasePriceIDs").val("一次最多1000,空格间隔"); //显示优惠底价层 $('#basePriceDiv').modal('show'); } } } } // 检查输入 var checkInput = { checkNull: function (obj, val, msg) { if (!val || val.length == 0) { obj.parent().attr("class", "control-group error"); if (msg.selector == "#helpPromotionName") { msg.html("活动名称不能为空"); } else if (msg.selector == "#helpDateTime") { msg.html("日期不能为空"); } return false; } else { obj.parent().attr("class", "control-group success"); msg.html(""); return true; } }, checkPromotionName: function () { var tmpPromotionName = $("#txtPromotionName").val(); var msg = $("#helpPromotionName"); return this.checkNull($("#txtPromotionName"), tmpPromotionName, msg); }, checkStartTime: function () { var tmpStartTime = $("#txtStartTime").val(); var msg = $("#helpDateTime"); return this.checkNull($("#txtStartTime"), tmpStartTime, msg); }, checkEndTime: function () { var tmpEndTime = $("#txtEndTime").val(); var msg = $("#helpDateTime"); return this.checkNull($("#txtEndTime"), tmpEndTime, msg); } }; $("#txtPromotionName").blur(function () { checkInput.checkPromotionName(); }); function init() { $("#successAmountIDs").html(""); $("#failureAmountIDs").html(""); $("#successPercentIDs").html(""); $("#failurePercentIDs").html(""); $("#successBasePriceIDs").html(""); $("#failureBasePriceIDs").html(""); } //添加(按优惠金额、按百分比、按底价) function btnAdd(kind) { init(); var money; var ids; var aptype; if (kind == "txtAmount") { aptype = 1; money = $("#txtAmount").val(); if (!money || money.length == 0) { $("#helpAmount").html("请输入金额"); return false; } if (!(/^+?[1-9][0-9]*$/.test(money))) { $("#helpAmount").html("金额必须为正整数"); return false; } ids = $.trim($("#txtAreaAmountIDs").val()); if (!ids || ids.length == 0) { $("#failureAmountIDs").html("请输入产品id"); return false; } } else if (kind == "txtPercent") { aptype = 2; money = $("#txtPercent").val(); if (!money || money.length == 0) { $("#helpPercent").html("请输入百分比数字"); return false; } if (!(/^+?[1-9][0-9]*$/.test(money))) { $("#helpPercent").html("百分比必须为正整数"); return false; } if (money > 100) { $("#helpPercent").html("优惠百分比不能超过100%"); return false; } money = money + "%"; ids = $.trim($("#txtAreaPercentIDs").val()); if (!ids || ids.length == 0) { $("#failurePercentIDs").html("请输入产品id"); return false; } } else if (kind == "txtBasePrice") { aptype = 3; money = 0; ids = $.trim($("#txtAreaBasePriceIDs").val()); if (!ids || ids.length == 0) { $("#failureBasePriceIDs").html("请输入产品id"); return false; } } //过滤空格获取产品id数组 var idArray = ids.split(/s+/); //格式,以逗号分隔:1,2,3 var length = idArray.length; if (length > 1000) { alert("每次添加的产品id不能超过1000"); return false; } var len = array.length; //检测产品id for (var i = 0; i < length; i++) { //输入是否为整数 if (!((/^(+|-)?d+$/.test(idArray[i])) || idArray[i] < 0)) { if (kind == "txtAmount") { $("#failureAmountIDs").html("产品id输入有误"); return false; } else if (kind == "txtPercent") { $("#failurePercentIDs").html("产品id输入有误"); return false; } else if (kind == "txtBasePrice") { $("#failureBasePriceIDs").html("产品id输入有误"); return false; } } //表格中是否已添加过 for (j = 0; j < len; j++) { if(array[j].indexOf(idArray[i])>=0){ if (kind == "txtAmount") { $("#failureAmountIDs").html(idArray[i] + "已添加过"); return false; } else if (kind == "txtPercent") { $("#failurePercentIDs").html(idArray[i] + "已添加过"); return false; } else if (kind == "txtBasePrice") { $("#failureBasePriceIDs").html(idArray[i] + "已添加过"); return false; } } } } $.post('../Ajax/AjaxComm.aspx', { ajaxType: 'promotionEdit', type: 's', productIDs: idArray.toString(), promotionID: $("#promotionID").val() }, function (res) { var data = JSON.parse(res); if (data && data.result) { var list = data.message; var len = list.length; backInfo(len, data.noinfoids, kind); //动态添加到页面中 for (i = 0; i < len; i++) { var builder = ""; builder += "<tr>"; builder += "<td style='text-align:center; padding:7px;'>" + list[i].ProductID + "</td>"; builder += "<td>" + list[i].ProductName + "</td>"; builder += "<td>" + list[i].ProductType + "</td>"; builder += "<td>" + list[i].APBasePrice + "</td>"; builder += "<td>" + list[i].SalePrice + "</td>"; builder += "<td>" + money + "</td>"; builder += "<td>" + $("#txtStartTime").val() + "</td>"; builder += "<td>" + $("#txtEndTime").val() + "</td>"; builder += "<td><a href='#' onclick='btnRemove(" + list[i].ProductID + ")'>删除</a></td>"; builder += "<td><input type='hidden' value='" + aptype + "'/><input type='hidden' value='" + list[i].APSalePrice + "'/></td>"; builder += "</tr>"; array.push(builder); } goPage(1, 10); } else { if (kind == "txtAmount") { $("#failureAmountIDs").html(data.message); return false; } else if (kind == "txtPercent") { $("#failurePercentIDs").html(data.message); return false; } else if (kind == "txtBasePrice") { $("#failureBasePriceIDs").html(data.message); return false; } } }); } //添加产品成功时,显示成功多少个,失败多少个(以及失败的id) function backInfo(len, failInfoIds, kind) { var failLen = failInfoIds == "" ? 0 : failInfoIds.split(' ').length; failInfo = "失败:" + failLen + "个" + (failLen == 0 ? "" : ",分别为:" + failInfoIds); if (kind == "txtAmount") { $("#successAmountIDs").html("成功:" + len + "个"); $("#failureAmountIDs").html(failInfo); } else if (kind == "txtPercent") { $("#successPercentIDs").html("成功:" + len + "个"); $("#failurePercentIDs").html(failInfo); } else if (kind == "txtBasePrice") { $("#successBasePriceIDs").html("成功:" + len + "个"); $("#failureBasePriceIDs").html(failInfo); } } //分页 function goPage(pno, psize) { var num = array.length; //表格行数 var totalPage = 0; //总页数 var pageSize = psize; //每页显示行数 if (num / pageSize > parseInt(num / pageSize)) { totalPage = parseInt(num / pageSize) + 1; } else { totalPage = parseInt(num / pageSize); } var currentPage = pno; //当前页数 var startRow = (currentPage - 1) * pageSize; //开始显示的行 var endRow = currentPage * pageSize; //结束显示的行 endRow = (endRow > num) ? num : endRow; //在每次翻页前,移除上次添加的,这样页面内容只会显示翻页后的 $("#tabID tbody tr").eq(1).nextAll().remove(); for (startRow; startRow < endRow; startRow++) { $("#tabID tbody").append(array[startRow]); } var tempStr = "共" + num + "条记录 分" + totalPage + "页 当前第" + currentPage + "页 "; if (currentPage > 1) { tempStr += "<a href="#" onClick="goPage(" + (1) + "," + psize + ")">首页</a> "; } else { tempStr += "首页 "; } if (currentPage > 1) { tempStr += "<a href="#" onClick="goPage(" + (currentPage - 1) + "," + psize + ")">上一页</a> " } else { tempStr += "上一页 "; } if (currentPage < totalPage) { tempStr += "<a href="#" onClick="goPage(" + (currentPage + 1) + "," + psize + ")">下一页</a> "; } else { tempStr += "下一页 "; } if (currentPage < totalPage) { tempStr += "<a href="#" onClick="goPage(" + (totalPage) + "," + psize + ")">尾页</a>"; } else { tempStr += "尾页"; } //如果没有div,则创建 var divElem = document.getElementById("barcon"); if(divElem==null) { $("#tabID").parent().append("<br/><div style='text-align:right' id='barcon'></div>"); } document.getElementById("barcon").innerHTML = tempStr; } //删除产品 function btnRemove(id) { if (confirm("确认删除此产品?")) { for (i = 0; i < array.length; i++) { var productID = $(array[i]).find("td").eq(0).text(); if (id == productID) { array.splice(i, 1); break; } } goPage(1, 10); } } //保存或提交 function SaveOrSubmit(status) { //获取活动id var promotionID = $("#promotionID").val(); //保存时检查活动名称以及活动周期 if (checkInput.checkPromotionName()) { if (checkInput.checkStartTime() && checkInput.checkEndTime()) { if ($("#txtStartTime").val() > $("#txtEndTime").val()) { $("#helpDateTime").html("开始日期只能小于等于结束日期"); return false; } else { $("#btnSave").attr("disabled", "disabled"); $("#btnSubmit").attr("disabled", "disabled"); var promotion = GetPromotion(status); //活动对象 var list = GetProductDetaiList(); //产品对象数组 checkProductID(promotionID, promotion, list); //保存或提交 } } } } //保存或提交时调用的ajax方法 function checkProductID(promotionID, promotion, list) { $.ajax({ url: '../Ajax/AjaxComm.aspx?ajaxType=promotionEdit&type=a', timeout: 10000, type: 'post', data: { promotionid: promotionID, model: JSON.stringify(promotion), detaillist: JSON.stringify(list) }, success: function (res) { var data = JSON.parse(res); $("#btnSave").removeAttr("disabled"); $("#btnSubmit").removeAttr("disabled"); if (data && data.result) { $("#promotionID").val(data.newid); //将返回的活动id赋值给页面中的隐藏字段 } alert(data.message); }, complete: function (XMLHttpRequest, status) { if (status == 'timeout') {//超时,status还有success,error等值的情况 alert("超时"); } } }); } //获取活动对象 function GetPromotion(status) { var promotion = new Object(); promotion.PromotionName = $("#txtPromotionName").val(); promotion.PromotionType = 2; promotion.PromotionStartDate = $("#txtStartTime").val(); promotion.PromotionEndDate = $("#txtEndTime").val(); promotion.PromotionDesc = $("#txtAreaDesc").val(); promotion.Status = status; return promotion; } //获取产品详细信息 function GetProductDetaiList() { var length = array.length; var list = []; for (i = 0; i < length; i++) { var tdList = $(array[i]).find("td"); var detail = new Object(); //产品对象 detail.ProductID = tdList.eq(0).text(); var apBasePrice = tdList.eq(3).text(); detail.Price = apBasePrice; detail.SalePrice = tdList.eq(4).text(); var type = tdList.eq(9).find("input").eq(0).val(); //优惠金额、优惠百分比、底价 var apSalePrice = tdList.eq(9).find("input").eq(1).val(); //卖价(优惠按百分比、优惠按底价时所需) var apPrice = tdList.eq(5).text(); detail.APType = type; detail.APPrice = type == 2 ? apPrice.replace("%", "") : apPrice; detail.APSalePrice = type == 2 ? Math.floor(parseInt(apSalePrice) * parseFloat(detail.APPrice.length == 2 ? "0." + detail.APPrice : "1")) : (type == 3 ? parseInt(apSalePrice) - parseInt(apBasePrice) : apPrice); list.push(detail); } return list; } //按优惠金额产品ID输入框提示语 var txtAreaAmount = $("#txtAreaAmountIDs"); txtAreaAmount.focus(function () { if (txtAreaAmount.val() == "一次最多1000,空格间隔") { txtAreaAmount.val(""); } }); txtAreaAmount.blur(function () { if (txtAreaAmount.val() == "") { txtAreaAmount.val("一次最多1000,空格间隔"); } }); //按优惠百分比产品ID输入框提示语 var txtAreaPercent = $("#txtAreaPercentIDs"); txtAreaPercent.focus(function () { if (txtAreaPercent.val() == "一次最多1000,空格间隔") { txtAreaPercent.val(""); } }); txtAreaPercent.blur(function () { if (txtAreaPercent.val() == "") { txtAreaPercent.val("一次最多1000,空格间隔"); } }); //按底价输入框提示语 var txtAreaBasePrice = $("#txtAreaBasePriceIDs"); txtAreaBasePrice.focus(function () { if (txtAreaBasePrice.val() == "一次最多1000,空格间隔") { txtAreaBasePrice.val(""); } }); txtAreaBasePrice.blur(function () { if (txtAreaBasePrice.val() == "") { txtAreaBasePrice.val("一次最多1000,空格间隔"); } });
版权声明:本文为博主原创文章,未经博主允许不得转载。