lixin-web
Version:
vue and bootstrap
233 lines (217 loc) • 7.89 kB
JavaScript
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%"> </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);
});