pay.js 4.19 KB
/*! dili 2016-01-06 */
define(function(require,exports,module){$(function(){var Pay={initialize:function(){this.bindEvents(),$(".balance :checkbox").prop("checked",!0).change(),$(".online :checkbox").prop("checked",!1),this.update()},initSelector:function(){this.orderMoneyTag=$("#orderMoney"),this.accountBalanceTag=$("#accountBalance"),this.balancePayTag=$("#balancePay"),this.onlinePayTag=$("#onlinePay"),this.needMore=$("#needMore"),this.submit=$("#submit"),this.orderDetailTag=$("#orderDetail")},bindEvents:function(){var _this=this;this.initSelector(),$(".pwd").on("focus",function(){$(this).addClass("active")}).on("blur",function(){$(this).removeClass("active")}),$(".show-more").on("click",function(e){e.preventDefault(),_this.toggleOrder($(this)),_this.update()}),$(".method").on("change",".source :checkbox",function(){_this.togglePayMethod($(this))}),$(".method").on("change",".list :radio",function(){_this.toggleOnlinePlatform($(this))})},toggleOrder:function(target){if(!this.orderDetailTag.is(":animated")){var lastText=target.find("span").text(),newText=target.find("span").attr("data-text");target.find("span").text(newText).attr("data-text",lastText),target.children(".icon").toggleClass("down"),this.orderDetailTag.slideToggle()}},togglePayMethod:function(target){var checked=target.is(":checked"),pay=this.payInfo();return pay.onlinePay<=0?(target.closest(".item").toggleClass("on",checked).find(".checkbox").toggleClass("checked",checked).children().prop("checked",checked),target.closest(".item").siblings(".item").removeClass("on").find(".checkbox").removeClass("checked").children().prop("checked",!1),target.closest(".online").length?$(".list li").first().addClass("on").siblings().removeClass("on").end().find(":radio").prop("checked",checked).parent().toggleClass("checked",checked):$(".list li").removeClass("on").find(".radio").removeClass("checked").each(function(){$(this).children().prop("checked",!1)}),void this.update()):(target.parent().toggleClass("checked",checked),target.closest(".item").toggleClass("on",checked),target.closest(".online").length&&(checked?$(".list li").first().addClass("on").siblings().removeClass("on").end().find(":radio").prop("checked",!0).parent().addClass("checked"):$(".list li").removeClass("on").find(".radio").removeClass("checked").each(function(){$(this).children().prop("checked",!1)})),void this.update())},toggleOnlinePlatform:function(target){target.closest(".item").addClass("on").find(":checkbox").prop("checked",!0).parent().addClass("checked"),target.parent().addClass("checked"),target.closest("li").addClass("on").siblings().removeClass("on").find(".radio").removeClass("checked"),this.payInfo().onlinePay<=0&&$(".balance").removeClass("on").find(".checkbox").removeClass("checked").children().prop("checked",!1),this.update()},update:function(){var need,pay=this.payInfo(),online=pay.onlinePay,bChecked=$(".balance").find(":checkbox").prop("checked"),oChecked=$(".online").find(":checkbox").prop("checked");$(".pwd-area").toggleClass("hide",!bChecked),online>=0?(bChecked?(this.balancePayTag.text(this.format(pay.accountBalance)).parent().show(),need=online):(this.balancePayTag.parent().hide(),need=pay.orderMoney),oChecked?(this.onlinePayTag.text(this.format(need)).parent().show(),this.needMore.parent().hide(),this.submit.prop("disabled",!1)):(this.onlinePayTag.parent().hide(),this.needMore.text(this.format(need)).parent().show(),this.submit.addClass("disabled"),this.submit.prop("disabled",!0))):(bChecked?(this.balancePayTag.text(this.format(pay.orderMoney)).parent().show(),this.needMore.parent().hide(),this.submit.prop("disabled",!1)):this.balancePayTag.parent().hide(),oChecked?(this.onlinePayTag.text(this.format(pay.orderMoney)).parent().show(),this.needMore.parent().hide(),this.submit.prop("disabled",!1)):this.onlinePayTag.parent().hide(),bChecked||oChecked||(this.needMore.text(this.format(pay.orderMoney)).parent().show(),this.submit.prop("disabled",!0)))},format:function(num){return(Math.floor(100*num)/100).toFixed(2,10)},payInfo:function(){var orderMoney=+$.trim(this.orderMoneyTag.text()),accountBalance=+$.trim(this.accountBalanceTag.text()),onlinePay=orderMoney-accountBalance;return{orderMoney:orderMoney,accountBalance:accountBalance,onlinePay:onlinePay}}};Pay.initialize()})});