UNPKG

lixin-web

Version:

vue and bootstrap

233 lines (217 loc) 7.89 kB
var initThisPage = function(lottery) { var thisContent = $('.lottery-plan'); var thisSearch = thisContent.find('.search'); var thisResultList = thisContent.find('.result'); var thisPageList = thisContent.find('.page-list'); var getSearchParams = function() { var billno = thisSearch.find('input[name="billno"]').val(); var lotteryId = lottery.id; var method = thisSearch.find('select[name="method"]').val(); return {billno: billno, lotteryId: lotteryId, method: method}; } var isSearching = false; var pagination = $.pagination({ render: thisPageList, pageSize: 5, ajaxType: 'post', ajaxUrl: '/UserBetsPlanHallSearch', ajaxData: getSearchParams, beforeSend: function() { isSearching = true; App.blockUI({ target: thisContent, boxed: true }); }, complete: function() { isSearching = false; App.unblockUI(thisContent); }, success: function(list) { thisResultList.empty(); $.each(list, function(i, val) { var prizeRate = 0; if(val.infoBean.prizeCount > 0) { prizeRate = val.infoBean.prizeCount / val.infoBean.planCount * 100.0; } var innerHtml = '<div data-index="' + i + '" class="item">'+ '<div class="title">'+ '<div class="text">[喇叭]' + val.planBean.title + '</div>'+ '<div class="nums">[人数]参与人数:' + val.planBean.followCount + '人</div>'+ '</div>'+ '<div class="infos">'+ '<div class="img">'+ '<div class="avatar">'+ '<img width="80" height="80" src="/assets/global/img/avatar/1.jpg"/>'+ '</div>'+ '<div class="vip">VIP1</div>'+ '</div>'+ '<div class="table">'+ '<table>'+ '<tbody>'+ '<tr>'+ '<td width="36%">用户:' + val.username + '</td>'+ '<td width="32%">计划等级:' + DataFormat.formatUserPlanLevel(val.infoBean.level) + '</td>'+ '<td width="32%">&nbsp;&nbsp;</td>'+ '</tr>'+ '<tr>'+ '<td>总战绩:' + val.infoBean.totalMoney.toFixed(3) + '</td>'+ '<td>历史中奖率:' + prizeRate.toFixed(2) + '%</td>'+ '<td>抽佣:' + val.planBean.rate + '%</td>'+ '</tr>'+ '<tr>'+ '<td>玩法:' + val.mname + '</td>'+ '<td>注数:' + val.planBean.nums + '</td>'+ '<td>模式:' + DataFormat.formatUserBetsModel(val.planBean.model) + '</td>'+ '</tr>'+ '<tr>'+ '<td>倍数:' + val.planBean.multiple + '</td>'+ '<td>金额:' + val.planBean.money.toFixed(3) + '元</td>'+ '<td>最大盈利率:' + ((val.planBean.maxPrize - val.planBean.money) / val.planBean.money * 100.0).toFixed(2) + '%</td>'+ '</tr>'+ '<tr>'+ '<td colspan="3">'+ '<div class="options">计划份数<input name="multiple" type="number" min="' + val.planBean.multiple + '" max="10000" value="' + val.planBean.multiple + '">份,投注需要<span data-field="totalMoney">' + val.planBean.money.toFixed(3) + '</span>元,还需要支付佣金<span data-field="rewardMoney">' + (val.planBean.money * val.planBean.rate / 100.0).toFixed(3) + '</span>元</div>'+ '</td>'+ '</tr>'+ '</tbody>'+ '</table>'+ '</div>'+ '</div>'+ '<div class="button-groups">'+ '<a data-command="follow" class="button blue">我要计划</a>'+ '</div>'+ '</div>'; thisResultList.append(innerHtml); }); thisResultList.find('.item').each(function() { var thisIndex = $(this).attr('data-index'); var thisData = list[thisIndex]; var options = $(this).find('.options'); var multiple = options.find('input[name="multiple"]'); var total = options.find('[data-field="totalMoney"]'); var reward = options.find('[data-field="rewardMoney"]'); multiple.change(function() { var thisVal = $(this).val(); if(!isNaN(thisVal)) { var unitMoney = thisData.planBean.money / thisData.planBean.multiple; var thisTotal = unitMoney * Number(thisVal); var thisReward = thisTotal * thisData.planBean.rate / 100.0; total.html(thisTotal.toFixed(3)); reward.html(thisReward.toFixed(3)) } }); }); thisResultList.find('[data-command="follow"]').click(function() { var thisItem = $(this).parents('.item'); var thisIndex = thisItem.attr('data-index'); var thisData = list[thisIndex]; var thisId = thisData.planBean.id; var multiple = thisItem.find('input[name="multiple"]').val(); if(multiple < thisData.planBean.multiple) { return App.alert('info', '提示消息', '计划倍数不能低于计划方案倍数!', 3000); } var totalMoney = thisItem.find('[data-field="totalMoney"]').html(); var rewardMoney = thisItem.find('[data-field="rewardMoney"]').html(); var text = '计划投注需要' + totalMoney + '元,还需要支付佣金' + rewardMoney + '元。确定投注吗?'; App.confirm('question', '我要计划', text, 0, '确定', '取消', function() { doFollowPlan(thisId, multiple); }); }); }, pageError: function(response) { isSearching = false; }, emptyData: function() { isSearching = false; thisResultList.html('<div class="nodata"></div>'); } }); var isSending = false; var doFollowPlan = function(id, multiple) { if(!isSending) { isSending = true; App.blockUI({ target: thisContent, boxed: true }); $.ajax({ type: 'post', url: '/UserBetsPlanFollow', data: {id: id, multiple: multiple}, timeout: 10000, dataType: 'json', success: function(response) { isSending = false; App.unblockUI(thisContent); if(response.error == 0) { App.alert('success', '提示消息', '计划投注成功!'); pagination.init(); } if(response.error == 1 || response.error == 2) { App.alert('warning', '提示消息', response.message); } }, error: function() { isSending = false; App.unblockUI(thisContent); } }); } } var initPlayRules = function() { $.ajax({ type: 'post', url: '/LotteryPlayRules', data: {type: lottery.type}, timeout: 10000, dataType: 'json', success: function(response) { buildPlayRules(response); } }); } var buildPlayRules = function(data) { var method = thisSearch.find('select[name="method"]'); for (var i = 0; i < data.length; i++) { var mName = data[i].methodName; var sName = data[i].group + ' -> ' + data[i].name; method.append('<option value="' + mName + '">' + sName + '</option>'); } } var initNav = function() { var thisNav = thisContent.find('.nav'); thisNav.find('.category').each(function() { $(this).click(function() { if(!$(this).hasClass('active')) { var thisCategory = $(this); var activeCategory = thisNav.find('.category.active'); activeCategory.find('.list').slideUp(300, function() { activeCategory.removeClass('active'); }); thisCategory.find('.list').slideDown(300, function() { thisCategory.addClass('active'); }); } }); }); var name = lottery.shortName; if(name == 'fbffc1m') name = 'ffc'; if(name == 'fbffc3m') name = '3fc'; if(name == 'fbffc5m') name = '5fc'; var thisLotteryItem = thisNav.find('a[href="?' + name + '"]'); thisLotteryItem.addClass('active'); thisLotteryItem.parents('.category').addClass('active'); } thisSearch.find('[data-command="search"]').click(function() { pagination.init(); }); initNav(); initPlayRules(); pagination.init(); } $(document).ready(function() { UserInfo.init(); initThisPage(ajaxLottery); });