lixin-web
Version:
vue and bootstrap
1,511 lines (1,397 loc) • 51.1 kB
JavaScript
var my_lzma = new LZMA("/module/lzma_worker.js")
var $bList = []
//彩票父类
var LotteryBaBa = function(){
var that=this;
this.$Lottery; // 彩票
this.$DownCode; // 降点
this.$FenDownCode; // 分模式降点
this.$LiDownCode; // 厘模式讲点
this.$Method; // 彩票玩法
this.$SysCode; // 系统号级别
this.$SysUnitMoney; // 单注金额
this.$UserCode; // 用户号级别
this.$UserLp; // 用户定位返点
this.$UserMaxCode; // 用户最高号
this.$UserMinCode; // 用户最低号
this.$bData = {};
// this.$bList = [];
this.getSelectPlace = function(playArea) {
var places = [];
var sp = playArea.find('.places');
if(sp && sp.length > 0) {
$.each(sp, function() {
var place = [];
var as = $(this).find('ul > li input[type="checkbox"]');
$.each(as, function() {
if($(this).is(':checked')) {
place.push('√');
} else {
place.push('-');
}
});
places.push(place);
});
}
return places;
}
// 得到用户选择的号码,格式化后的数据
this.getSelectBall = function(playArea) {
// var datasel = [];
// var sb = playArea.find('.balls');
// if(sb && sb.length > 0) {
// $.each(sb, function() {
// var ball = [];
// var as = $(this).find('ul > li > a.selected');
// $.each(as, function() {
// var val = $(this).attr('data-val');
// ball.push(val);
// });
// datasel.push(ball);
// });
// }
// return datasel;
var sb = playArea.find('.balls');
if(sb && sb.length > 0) {
return [].map.call(sb,function (i) {
return [].map.call($(i).find('li > .selected'),function (i) {
return i.getAttribute('data-val')
})
});
}else{
return []
}
}
// 得到用户输入的号码,格式化后的数据
this.getTextareaBall = function(playArea) {
var datasel = [];
var textarea = playArea.find('textarea');
if(textarea && textarea.length > 0) {
var format = textarea.val().replace(/\,|\;|\n|\t/g, ' ');
var as = format.split(' ');
$.each(as, function(idx, val) {
datasel.push(val);
});
}
return datasel;
}
// 构造选号区域
this.buildSelectPlace = function(playArea, select) {
$.each(select.layout, function(i, val) {
var row = $('<div class="row">');
if(val.title) {
row.append('<div class="label">' + val.title + '</div>');
}
if(val.cls) {
row.addClass(val.cls);
}
// 球
var balls = $('<div class="balls">').append('<ul>');
$.each(val.balls, function(j, ball) {
balls.find('ul').append('<li><a data-val="' + ball + '">' + ball + '</a></li>');
});
row.append(balls);
// 工具
if(val.tools) {
that.buildBallTools(row, balls);
}
playArea.append(row);
});
playArea.off('click.selectBall').on('click.selectBall','.balls a',function() {
$(this).toggleClass('selected rippling');
that.PlayOptions.update();
});
}
// 构造选号工具
this.buildBallTools = function(row, balls) {
var blist = balls.find('ul > li > a');
var tools = $('<div class="tools">').append('<ul><li><a data-command="all">全</a></li><li><a data-command="big">大</a></li><li><a data-command="small">小</a></li><li><a data-command="single">单</a></li><li><a data-command="double">双</a></li><li><a data-command="clean">清</a></li></ul>');
var setSelected = function(els, selected) {
if(selected) {
if(!els.hasClass('selected')) {
els.addClass('selected');
}
} else {
if(els.hasClass('selected')) {
els.removeClass('selected rippling');
}
}
that.PlayOptions.update();
}
tools.find('a[data-command="all"]').click(function() {
$.each(blist, function() {
setSelected($(this), true);
});
});
tools.find('a[data-command="big"]').click(function() {
$.each(blist, function(idx) {
if(idx < Math.round(blist.length/2)) {
setSelected($(this), false);
} else {
setSelected($(this), true);
}
});
});
tools.find('a[data-command="small"]').click(function() {
$.each(blist, function(idx) {
if(idx < Math.round(blist.length/2)) {
setSelected($(this), true);
} else {
setSelected($(this), false);
}
});
});
tools.find('a[data-command="single"]').click(function() {
var arr = [1,3,5,7,9,11];
$.each(blist, function() {
var val = parseInt($(this).attr('data-val'));
if($.inArray(val, arr) != -1) {
setSelected($(this), true);
} else {
setSelected($(this), false);
}
});
});
tools.find('a[data-command="double"]').click(function() {
var arr = [0,2,4,6,8,10];
$.each(blist, function() {
var val = parseInt($(this).attr('data-val'));
if($.inArray(val, arr) != -1) {
setSelected($(this), true);
} else {
setSelected($(this), false);
}
});
});
tools.find('a[data-command="clean"]').click(function() {
$.each(blist, function() {
setSelected($(this), false);
});
});
row.append(tools);
}
// 构造手动输入框
this.buildTextareaPlace = function(playArea) {
var textarea = $('<textarea class="form-control">');
var help = $('<div class="help">').html('每注号码之间请用一个空格或英文逗号或英文分号隔开(输入的号码会自动排序并去除不合格号码)。');
textarea.keyup(function() {
$(this).val($(this).val().replace(/\,|\,|\;|\;|\n/g, ' '));
that.PlayOptions.update();
});
playArea.append(textarea)
.append(help);
}
// 构造位置
this.buildCheckboxPlace = function(playArea, checkbox) {
$.each(checkbox.layout, function(i, val) {
var row = $('<div class="row">');
if(val.title) {
row.append('<div class="label">' + val.title + '</div>');
}
// 位置
var places = $('<div class="places">').append('<ul>');
$.each(val.value, function(j, value) {
places.find('ul').append('<li><label><input type="checkbox">' + value + '</label></li>');
});
places.find('ul > li input[type="checkbox"]').change(function() {
PlayOptions.update();
});
row.append(places);
playArea.append(row);
});
}
this.PlayArea = function() {
var data = function() {
var playArea = $('.lottery-betting .play-area');
var datasel = [];
var places = that.getSelectPlace(playArea);
var balls = that.getSelectBall(playArea);
var textarea = that.getTextareaBall(playArea);
var sb = datasel.concat(places).concat(balls).concat(textarea);
return sb;
}
var reset = function() {
$('.play-area').find('textarea').val('');
$('.play-area').find('.selected').removeClass('selected');
that.PlayOptions.update()
}
return {data: data, reset: reset};
}();
// 构造选项栏
this.buildPlayOptions = function(playOptions) {
playOptions.append('<div class="label">选择 <span class="text-money" data-field="num">0</span> 注,倍数</div>');
playOptions.append('<div class="multiple"><input name="multiple" type="text" value="1"></div>');
playOptions.append('<div class="label">模式</div>');
playOptions.append('<div class="model"><a data-val="yuan">元</a><a data-val="jiao">角</a><a data-val="fen">分</a><a data-val="li">厘</a></div>');
// playOptions.append('<div class="label">共投注<span class="text-money" data-field="total">0.000</span> 元</div>');
// playOptions.append('<a class="btn btn-primary" data-command="add"><span class="imoon-add"></span>添加号码</a></div>');
// GET Cookie Model Value
var bDataModel = Cookies.get('USER_BDATA_MODEL') || 'yuan';
playOptions.find('.model > a[data-val="' + bDataModel + '"]').addClass('selected');
// 倍数输入框
var multiple = playOptions.find('.multiple > input');
multiple.keyup(function() {
if($(this).val() == '') return;
var val = $(this).val();
if(/^[0-9]*$/.test(val)) {
val = Number(val);
if(val > 10000) $(this).val(10000);
if(val < 1) $(this).val(1);
that.PlayOptions.update();
} else {
$(this).val(1);
that.PlayOptions.update();
}
});
multiple.keydown(function(e) {
if(e.keyCode == 38 || e.keyCode == 40) {
if($(this).val() == '') return;
var val = Number($(this).val());
if(!isNaN(val)) {
if(e.keyCode == 38) val++;
if(e.keyCode == 40) val--;
if(val > 10000) val = 10000;
if(val < 1) val = 1;
$(this).val(val);
}
}
});
multiple.blur(function() {
if($(this).val() == '') {
$(this).val(1);
PlayOptions.update();
}
});
// 分模式
var fenModel = function() {
if($FenDownCode > 0) {
var thisCode = $SysCode - $FenDownCode;
if($UserCode > thisCode) {
$UserMaxCode = thisCode - $DownCode;
Will.info('分模式最高为' + $UserMaxCode + '。', 2000);
}
}
}
// 厘模式
var liModel = function() {
if($LiDownCode > 0) {
var thisCode = $SysCode - $LiDownCode;
if($UserCode > thisCode) {
$UserMaxCode = thisCode - $DownCode;
Will.info('厘模式最高为' + $UserMaxCode + '。', 2000);
}
}
}
// 默认模式
var defaultModel = function() {
$UserMaxCode = $UserCode - $DownCode;
$UserMinCode = $UserMaxCode - $UserLp * 20;
}
// 更新默认
var update = function(model) {
if(model == 'fen') {
fenModel();
} else if(model == 'li') {
liModel();
} else {
defaultModel();
}
}
// 模式选择
var models = playOptions.find('.model > a');
models.click(function() {
if(!$(this).hasClass('selected')) {
models.removeClass('selected');
$(this).addClass('selected');
var model = $(this).attr('data-val');
update(model);
that.AdjustPrize.update()
// that.AdjustPrize.slider(that.PlayOptions.model().money);
that.PlayOptions.update();
// SET Cookie Model Value
var expires = addYears(new Date,1);
Cookies.set('USER_BDATA_MODEL', model, {expires: expires, path: '/'});
}
});
update(bDataModel);
}
this.PlayOptions = function() {
var els = function() {
return $('.lottery-betting .play-options');
}
var multiple = function() {
return Number(els().find('.multiple > input').val());
}
var model = function() {
var val = els().find('.model > a.selected').attr('data-val');
if(val == 'yuan') {
return {val: val, money: 1};
}
if(val == 'jiao') {
return {val: val, money: 0.1};
}
if(val == 'fen') {
return {val: val, money: 0.01};
}
if(val == 'li') {
return {val: val, money: 0.001};
}
}
var update = function() {
var num = that.LotteryUtils.inputNumbers(that.$bData.method, that.PlayArea.data());
var total = multiple() * num * $SysUnitMoney * model().money;
els().find('[data-field="num"]').html(num);
// els().find('[data-field="total"]').html(total.toFixed(3));
$('.adjust-prize').find('[data-field="total"]').html(total.toFixed(3))
}
return {els: els, multiple: multiple, model: model, update: update};
}();
var adjustStart;
// 构造奖金
this.buildAdjustPrize = function(adjustPrize, column) {
// adjustPrize.empty();
adjustPrize.html('<span>奖金</span><div class="slider"></div><div><span data-field="code">0</span> / <span data-field="point">0.0</span>%</div><span class="prize">奖金<span data-field="prize">0.00</span>元</span>').append('<span>共计<span class="text-money text-primary" data-field="total">0.000</span> 元</span>')
var getPoint = function (code) {
return ($UserLp - ((code - $UserMinCode) / 20.0)).toFixed(1)
}
var update = function(code) {
var point = getPoint(code);
adjustPrize.find('[data-field="code"]').html(code);
adjustPrize.find('[data-field="point"]').html(point);
that.AdjustPrize.update();
// SET Cookie Code Value
var expires = addYears(new Date,1);
Cookies.set('USER_BDATA_CODE', code, {expires: expires, path: '/'});
}
adjustStart = $UserMaxCode;
// GET Cookie Code Value
var bCode;
if(bCode = Cookies.get('USER_BDATA_MODEL')) {
if (!isNaN(bCode)) {
if(bCode > $UserMaxCode) {
adjustStart = $UserMaxCode;
} else if(bCode < $UserMinCode) {
adjustStart = $UserMinCode;
} else {
adjustStart = bCode;
}
}
}
var $slider = adjustPrize.find('.slider');
if(adjustStart >= 1700){
// if(adjustStart >= 1800){
var adjustArray = [1956,1700].filter(function (i) {
return i <= adjustStart
})
adjustStart = Math.max.apply(null,adjustArray)
$('<select>' +
adjustArray.map(function (i) {
return '<option>' + i + ' - ' + getPoint(i) + '%</option>'
}).join('') + '</select>'
).insertBefore($slider)
.change(function () {
update(adjustArray[this.selectedIndex].toFixed(2))
})
}
// var onSet = functma'sion() {
// var code = Number(slider.val());
// update(code);
// // SET Cookie Code Value
// var expires = new Date(moment().startOf('year').add(1, 'years'));
// $.cookie('USER_BDATA_CODE', code, {expires: expires, path: '/'});
// }
// var onSlide = function() {
// var code = Number(slider.val());
// update(code);
// }
// slider.on({set: onSet, slide: onSlide});
update(adjustStart.toFixed(2));
}
// 玩法提示
this.PlayHelp = function() {
var els = function() {
return $('.lottery-betting');
}
var update = function(t) {
els().find('[data-field="prize"]').html(t);
}
return {els: els, update: update};
}();
// 奖金调节获取值
this.AdjustPrize = function() {
var els = function() {
return $('.lottery-betting .adjust-prize');
}
var code = function() {
return Number(els().find('[data-field="code"]').html());
}
var point = function() {
return Number(els().find('[data-field="point"]').html());
}
var slider = function(multiple) {
// els().find('.slider').noUiSlider({range: {'max': $UserMaxCode, 'min': $UserMinCode}}, true);
// if(isNaN(multiple)) return;
// els().find('.slider')[0].noUiSlider.updateOptions({start:adjustStart/multiple,range: {'max': $UserMaxCode/multiple, 'min': $UserMinCode/multiple}})
}
var update = function() {
var method = $Method[that.$bData.method];
// var model = that.PlayOptions.model();
var mMoney = that.PlayOptions.model().money;
if(method) {
var ps = method.bonus.split(',');
var t = [];
for (var i = 0, j = ps.length; i < j; i++) {
var pm = (code() / Number(ps[i])) * ($SysUnitMoney / 2) * mMoney;
t.push(pm);
}
t.sort(function(a, b) {
return Number(a) > Number(b) ? 1 : -1;
});
if(t.length == 1) {
that.PlayHelp.update(t[0].toFixed(3));
} else {
that.PlayHelp.update(t[0].toFixed(3) + ' ~ ' + t[t.length - 1].toFixed(3));
}
}
}
return {els: els, code: code, point: point, update: update, slider: slider};
}();
/**
* TODO 添加号码
*/
this.addCallback = []; // 添加号码后的事件
this.addToList = function(callback) {
var issue = ''; // 暂时不用填写期号
var method = that.$bData.method;
var compress = that.$bData.compress;
var datasel = that.PlayArea.data();
var num = that.LotteryUtils.inputNumbers(method, datasel);
var content = that.LotteryUtils.inputFormat(method, datasel);
var code = that.AdjustPrize.code();
var point = that.AdjustPrize.point();
var multiple = that.PlayOptions.multiple();
var model = that.PlayOptions.model().val;
var total = multiple * num * $SysUnitMoney * that.PlayOptions.model().money;
// if(num == 0) {
//
// Will.checkNotyShown('lackBall') && Will.warning('您还没有选择号码或所选号码不全!',[null,3000,'lackBall']);
//
// return false;
// }
var _method = $Method[method];
if (num <= _method.oooNums) {
Will.confirm('您所投注内容属于单挑玩法,最高奖金为' + _method.oooBonus + '元,确认继续投注?',function() {
that.LotteryRecord.add(issue, method, compress, content, num, multiple, model, code, point, total, callback);
that.PlayArea.reset();
});
} else {
that.LotteryRecord.add(issue, method, compress, content, num, multiple, model, code, point, total, callback);
that.PlayArea.reset();
}
}
// 投注列表
this.LotteryRecord = function() {
// var els = function() {
// return $('.lottery-button-groups');
// }
var $buttons = $('.lottery-button-groups');
var name = function(method) {
var method = $Method[method];
return '[' + method.name + ']';
}
var format = function(content) {
if(content.length > 16) {
content = content.substring(0, 16) + '…<a data-command="details">[详细]';
}
return content;
}
var add = function(issue, method, compress, content, num, multiple, model, code, point, total, callback) {
$('[data-injection="order-list"]').bootstrapTable('append', {method:method,content:content,num:num,multiple:multiple,point:point,total:total,model:model});
// 加密处理开始
if(compress === true && num >= 1000) {
my_lzma.compress(content, 3, function(result) {
if(result === false) {
return Will.info( '号码添加失败,请重试!', 3000);
}
content = LZMAUtil.toHex(result);
$bList.push({lottery: $Lottery, issue: issue, content: content, num: num, method: method, multiple: multiple, model: model, code: code, compress: true});
// 回调函数
if($.isFunction(callback)) callback();
for (var i = 0; i < that.addCallback.length; i++) {
if($.isFunction(that.addCallback[i])) {
that.addCallback[i]();
}
}
});
} else {
$bList.push({lottery: $Lottery, issue: issue, content: content, num: num, method: method, multiple: multiple, model: model, code: code, compress: false});
// 回调函数
if($.isFunction(callback)) callback();
for (var i = 0; i < that.addCallback.length; i++) {
if($.isFunction(that.addCallback[i])) {
that.addCallback[i]();
}
}
}
}
var clear = function() {
$('[data-injection="order-list"]').bootstrapTable('removeAll');
$bList = [];
}
var isInit = false;
var init = function() {
isInit = true;
// App.initScroll();
// var button = els().find('.button');
// $('body').off('click','[data-command="add"]').on("click",'[data-command="add"]',that.addToList)
$buttons.find('[data-command="submit"]').off().click(function() {
if($bList.length > 0) {
that.doSubmit();
} else {
// that.addToList(that.doSubmit);
Will.warning('投注列表没有订单',2000)
}
});
// button.find('[data-command="clear"]').off().click(clear);
$buttons.find('[data-command="chase"]').off().click(LotteryChase.init);
}
return {init: init, add: add, clear: clear};
}();
// 初始化网页元素
this.initDocument = function() {
var main = $('.lottery-betting').empty();
var playGroups = $('<div class="play-groups">').append('<ul>');
var playList = $('<div class="play-list">');
var playHelp = $('<div class="play-help">');
var playArea = $('<div class="play-area">');
var adjustPrize = $('<div class="adjust-prize">');
var playOptions = $('<div class="play-options">');
// 初始化玩法组
var initPlayGroups = function(index) {
playGroups.find('ul').empty();
$.each(that.Layout, function(i, group) {
var thisGroup = $('<li>').append('<a>' + group.title + '</a>');
// 点击效果
thisGroup.find('a').click(function() {
if(!$(this).hasClass('selected')) {
playGroups.find('li > a.selected').removeClass('selected');
$(this).addClass('selected');
initPlayList(group.rows);
}
});
playGroups.find('ul').append(thisGroup);
});
// playGroups.find('ul > li > a').eq(index).trigger('click');
playGroups.find('ul > li > a').eq(index).addClass('selected')
initPlayList(that.Layout[index].rows)
}
// 初始化玩法列表
var initPlayList = function(list) {
playList.empty();
$.each(list, function(i, rows) {
var thisRow = $('<div class="clearfix">');
$.each(rows, function(j, row) {
thisRow.append('<div class="label">' + row.title + '</div>');
$.each(row.columns, function(k, column) {
var thisColumn = $('<div class="btn">').attr('data-method', column.shortname).html(column.showname);
// 点击效果
thisColumn.click(function() {
if(!$(this).hasClass('selected')) {
playList.find('> div > .btn').removeClass('selected');
$(this).addClass('selected');
}
that.$bData.method = column.shortname; // 用户选中的方法
that.$bData.compress = column.compress; // 是否加密传输
buildPlayHelp(column);
buildPlayArea(column);
that.buildAdjustPrize(adjustPrize, column);
that.PlayOptions.update();
});
thisRow.append(thisColumn);
});
});
playList.append(thisRow);
});
playList.find('> div > .btn').eq(0).trigger('click');
}
// 初始化帮助信息
var buildPlayHelp = function(column) {
playHelp.html(
$('<div class="tips"><span class="label"><span class="icon-play-tips"></span>玩法提示:</span>' + column.tips + '</div>')
.find('.label')
.tooltip({
html:true,
placement:'bottom',
title:column.example + '' + column.help,
trigger:Will.isTouchDevice ? 'click' : 'hover'
})
.end()
)
var officialUrl = ($Lottery == 'seoul90' && 'http://www.krlotto.co.kr') || ($Lottery == 'phssc' && 'http://www.phkeno.com.ph') || ''
$('<a href="' + officialUrl + '" class="btn btn-primary hide" target="_blank">官方开奖数据</a>')[($Lottery == 'seoul90' || $Lottery == 'phssc' ? 'remove' : 'add') + 'Class']('hide')
.appendTo(playHelp)
// .append('<div class="prize"><i></i>当前玩法奖金<span data-field="prize">0.00</span>元</div>')
// .append('<div class="help-info"><i class="arrow"></i><div class="example">' + column.example + '</div><div class="help">' + column.help + '</div></div>');
// var show = function(els, target) {
// var top = $(els).position().top;
// var left = $(els).position().left;
// playHelp.find(target).css({top: top + 10, left: left}).toggle();
// }
// var hide = function(target) {
// playHelp.find(target).hide();
// }
// playHelp.find('.tips .label')[Will.isTouchDevice ? 'click' : 'mouseenter'](function() {show(this, '.help-info')}).mouseleave(function() {hide('.help-info')});
}
// 初始化玩法区域
var buildPlayArea = function(column) {
playArea.empty();
if(column.checkbox) {
that.buildCheckboxPlace(playArea, column.checkbox);
}
if(column.select) {
that.buildSelectPlace(playArea, column.select);
}
if(column.textarea) {
that.buildTextareaPlace(playArea, column.textarea);
}
}
// 初始化选项栏
this.buildPlayOptions(playOptions);
var betButtons = '<div class="lottery-bet-btns"></div>'
// 加载
main.append(playGroups)
$('<div class="play-content">')
.append(playList)
.append(playHelp)
.append(playArea)
.append(playOptions)
.append(adjustPrize)
.append(betButtons)
.appendTo(main)
buildBetBtns()
// 调用初始化方法
if($LotteryType==1) initPlayGroups(3);
else initPlayGroups(0);
// 初始化投注列表
that.LotteryRecord.init();
}
// 初始化
this.init = function(data) {
if (data) {
$Lottery = data.lottery;
$LotteryType = data.lotteryType;
$LotteryName = data.lotteryName;
$DownCode = data.downCode;
$FenDownCode = data.fenDownCode;
$LiDownCode = data.liDownCode;
$Method = data.method;
$SysCode = data.sysCode;
$SysUnitMoney = data.sysUnitMoney;
$UserCode = data.userCode;
$UserLp = data.userLp;
// 计算得出
$UserMaxCode = $UserCode - $DownCode;
$UserMinCode = $UserCode - $UserLp * 20;
}
this.initDocument();
that.LotteryRecord.clear();
}
this.isLoading = false;
this.doSubmit = function() {
var thisContent = $('.lottery-record');
if(!that.isLoading) {
if($bList.length == 0) {
return Will.info('投注列表没有订单!', 3000);
}
var list = [];
$.each($bList, function(i, v) {
list.push({
lottery: v.lottery,
issue: v.issue,
method: v.method,
content: v.content,
model: v.model,
multiple: v.multiple,
code: v.code,
compress: v.compress
});
});
var data = { text: JSON.stringify(list) };
GameLotteryCtrl.addOrder({
data: data,
beforeSend: function() {
isLoading = true;
},
success: function(response) {
if(response.error == 0) {
isLoading = false;
;
that.LotteryRecord.clear();
Will.success( '您的订单已投注成功!', 1500);
// $('[data-injection="lottery-record"]').bootstrapTable('refresh')
COMP.gameOrder && COMP.gameOrder.getData()
if (typeof RecordList != 'undefined') {
RecordList.init();
}
}
if(response.error == 1) {
if ('116-05' == response.code) {
setTimeout(function() {
isLoading = false;
Will.warning( '投注超时,请检查网路情况后重新重试。');
}, 10000);
} else if ('116-06' == response.code) {
window.location.href = rootIndex
;
} else {
isLoading = false;
Will.warning( response.message);
}
}
}
});
}
}
this.getConfig=function() {
return {
lottery: $Lottery,
lotteryName: $LotteryName,
downCode: $DownCode,
fenDownCode: $FenDownCode,
liDownCode: $LiDownCode,
method: $Method,
sysCode: $SysCode,
sysUnitMoney: $SysUnitMoney,
userCode: $UserCode,
userLp: $UserLp,
userMaxCode: $UserMaxCode,
userMinCode: $UserMinCode
}
};
this.bList=function() {
return $bList;
};
this.clear=function() {
that.LotteryRecord.clear();
},
this.addCallback=function(cb) {
addCallback.push(cb);
};
// this.returnData = {
// init:this.init,
// getConfig: function() {
// return {
// lottery: $Lottery,
// lotteryName: $LotteryName,
// downCode: $DownCode,
// fenDownCode: $FenDownCode,
// liDownCode: $LiDownCode,
// method: $Method,
// sysCode: $SysCode,
// sysUnitMoney: $SysUnitMoney,
// userCode: $UserCode,
// userLp: $UserLp,
// userMaxCode: $UserMaxCode,
// userMinCode: $UserMinCode
// }
// },
// bList: function() {
// return $bList;
// },
// clear: function() {
// LotteryRecord.clear();
// },
// addCallback: function(cb) {
// addCallback.push(cb);
// }
// }
}
/**
* 走势图
*/
var LotteryTrend = function() {
var init = function(shortName) {
var name = shortName;
if(name == 'fbffc1m') name = 'ffc';
if(name == 'fbffc3m') name = '3fc';
if(name == 'fbffc5m') name = '5fc';
$('.lottery-code-trend').attr('href', '/lottery-trend.html?' + name);
$('.lottery-code-trend').attr('target', new Date().getTime());
}
return {
init: init
}
}();
/**
* 合买计划
*/
var LotteryPlan = function() {
var init = function(lottery) {
var name = lottery.shortName;
if(name == 'fbffc1m') name = 'ffc';
if(name == 'fbffc3m') name = '3fc';
if(name == 'fbffc5m') name = '5fc';
var thisButton = $('.lottery-record').find('[data-command="plan"]');
thisButton.attr('href', '/lottery-plan.html?' + name);
}
return {
init: init
}
}();
/**
* 彩票开奖时间
*/
// var LotteryOpenTime = function() {
//
// var $Lottery; // 彩票游戏
// var $Timer; // 定时器
//
// var loadData = function() {
// var data = { name: $Lottery.shortName };
// GameLotteryCtrl.staticOpenTime({
// data: data,
// success: function(response) {
// if (response) {
// handleData(response);
// }
// }
// });
// }
//
// // 格式化时间
// var formatTime = function(seconds) {
// var s = 1, m = 60 * s, h = m * 60;
// var ss = 0, mm = 0, hh = 0;
// if(s > 0) {
// hh = Math.floor(seconds / h);
// mm = Math.floor(seconds % h / m);
// ss = Math.floor(seconds % h % m / s);
// }
// var p = function(t) {
// return t < 10 ? '0' + t : t;
// }
// return [p(hh), p(mm), p(ss)];
// }
//
// var playAudio = $vmVolume.audio[2];
//
// var setTime = function(issue, openTime) {
// var $latestExpect = $('[data-field="latest-expect"]').data('newExpect',true)
// var seconds = openTime.diff(moment(), 'seconds');
// var time = formatTime(seconds);
// $latestExpect.data('newExpect') && $latestExpect.html(issue).data('newExpect',false)
// $('.rest-open-time').html('<div><div>' + time[0] + '</div><span>hours</span></div><div><div>' + time[1] + '</div><span>minutes</span></div><div><div>' + time[2] + '</div><span>seconds</span></div>');
// //$('.lottery-open-info .last-time > div').html('<i>' + time[0] + '</i><i>' + time[1] + '</i><i>' + time[2] + '</i>');
// $('[data-field="global-last-time"]').html(time[0] + ':' + time[1] + ':' + time[2])
// if(seconds <= 10) {
//
// if(!$vmVolume.volumeOff.cd)
// {
// !playAudio.src && (playAudio.src = $vmVolume.src[2])
// playAudio.play()
// }
// }
//
//
// if (seconds <= 0) {
// clearTimeout($Timer);
// // Will.warning('温馨提示:第' + issue + '期 已截止, 请注意投注期号!',3000,{
// // open: {opacity:'toggle'}, // jQuery animate function property object
// // close: {opacity:'toggle'}, // jQuery animate function property object
// // speed: 300
// // })
// //todo test
// Will.warning('温馨提示:第' + issue + '期 已截止, 请注意投注期号!',3000,{maxVisible:1})
//
// setTimeout(loadData, 1000);
// $Timer = setInterval(loadData, 5000);
// $latestExpect.data('newExpect',true)
// }
// }
//
//
// var handleData = function(data) {
// $Timer && clearTimeout($Timer);
// var issue = data.issue;
// var seconds = data.surplusTime + 1;
// var openTime = moment().add(seconds, 'seconds'); // moment对象
// setTime(issue, openTime);
// $Timer = setInterval(function() {
// setTime(issue, openTime);
// }, 1000);
// }
//
// var init = function(lottery) {
// $Lottery = lottery;
// loadData();
// }
//
// return {
// init: init
// }
//
// }();
/**
* 彩票开奖号码
*/
var LotteryOpenCode = function() {
var $Lottery; // 彩票游戏
var $Timer; // 定时器
var $LastIssue; // 上一期的开奖号码
var loadData = function(history) {
var data = { name: $Lottery.shortName, history: history };
GameLotteryCtrl.staticOpenCode({
data: data,
success: function(response) {
if (response) {
handleData(response);
}
}
});
}
var $MoreTimer;
var $CurrCode;
var handleData = function(list) {
var thisResultList = $('.lottery-open-list .list');
// thisResultList.empty();
var formatCode = function(code, lottery) {
var format = $('<div class="code">');
var codes = code.split(',');
if (codes.length == 20 && (lottery == "hgffc" || lottery == "bjffc" || lottery == "twffc" || lottery == "jndffc")) {
var bigAry = BigNumber(codes).bigAry;
for (var i = 0; i < 5; i++) {
format.append('<div class="num more">' + bigAry[i] + '</div>');
}
} else {
var length = Math.min(5,codes.length);
for (var i = 0; i < length; i++) {
format.append('<div class="num">' + codes[i].split('|')[0] + '</div>');
}
if (codes.length > 5){
// format.find('.num:last').html('...')
if(code.split('|').length > 1) {
// format.append('<a class="more">...</a>')
format.tooltip({
title:BigNumber(code.split('|')[1].split(',')).bigExpAry.map(function(i){
return '<li>' + i.slice(0,-1) + '<span>' + i.slice(-1) +'</span></li>'
}).join(''),
html:true,
trigger:Will.isTouchDevice ? 'click' : 'hover',
placement:function (tooltip,element) {
return Will.isTouchDevice ? 'top' : 'left'
}
})
}else{
format.tooltip({
title:codes.length > 10 ? codes.slice(0,10) + '<br>' + codes.slice(10) : code,
html:codes.length > 10 ? true : false,
trigger:Will.isTouchDevice ? 'click' : 'hover',
placement:function (tooltip,element) {
return Will.isTouchDevice ? 'top' : 'left'
}
})
}
}
}
// if($Lottery.type == 10){
// format = $('<div class="code">');
// var sb = code.split('|');
// var codes = sb[1].split(',');
// format.append('<div class="num">' + codes[0] + '</div><div class="num">' + codes[1] + '</div><div class="num">' + codes[2] + '</div>'+'<div class="num">' + sb[0] + '</div>')
// }
return format;
}
var $docFrag = $(document.createDocumentFragment());
list.forEach(function (val,key) {
if (key == 0) {
$LastIssue = val.issue;
$CurrCode = val;
showOpenCode(val);
}
var item = $('<div>');
item.append('<div class="expect">' + val.issue + '</div>');
item.append(formatCode(val.code, val.lottery));
// item.find('.code .more').hover(function() {
// clearTimeout($MoreTimer);
// showOpenCode(val);
// }, function() {
// $MoreTimer = setTimeout(function() {
// showOpenCode($CurrCode);
// }, 300);
// });
$docFrag.append(item)
})
thisResultList.html($docFrag)
Will.isTouchDevice && thisResultList.click(function (e) {
if(e.target.className !== 'num') {
thisResultList.find('.code').tooltip('hide')
}
})
// if($Lottery.type == 10){
// var isDaS = '';
// var isDanS = '';
// var sb = '' ;
// var lastIsDa = '';
// var lastIsDan = '';
// $.each(list, function(i, val) {
// var HaoMa = val.code.split('|')[0];
// var isDa = (HaoMa-0)>13 ? 1:0;
// var isDan = (HaoMa-0)%2;
// if(i>0){
// if(lastIsDa == isDa) {
// isDaS += (isDa+'')
// }else{
// isDaS += ('|'+isDa)
// }
// }else{
// isDaS += (isDa+'')
// }
// if(i>0){
// if(lastIsDan == isDan) {
// isDanS += (isDan+'')
// }else{
// isDanS += ('|'+isDan)
// }
// }else{
// isDanS += (isDan+'')
// }
// lastIsDa = isDa;
// lastIsDan = isDan;
//
//
// });
// var isDaSL = isDaS.split('|');
// var isDanSL = isDanS.split('|');
// var $html = $('<div class="DaXiaoDanShuang">\
// <div class="tabs"><div>大小</div><div>单双</div></div>\
// <div class="contents"><div class="DaXiao"> </div><div class="DanShuang"> </div></div>\
// </div>');
// var $htmlDaSL = $('<ul>');
// $.each(isDaSL,function(){
// var html01 = $('<li>');
// for(var i=0;i<this.length;i++){
// html01.append("<div>"+((this.substr(0,1)-0)?"大":"小")+"</div>");
// }
// $htmlDaSL.append(html01);
// });
//
// var $htmlDanSL = $('<ul>');
// $.each(isDanSL,function(){
// var html01 = $('<li>');
// for(var i=0;i<this.length;i++){
// html01.append("<div>"+((this.substr(0,1)-0)?"单":"双")+"</div>");
// }
// $htmlDanSL.append(html01);
// });
// $html.find('.DaXiao').append($htmlDaSL);
// $html.find('.DanShuang').append($htmlDanSL);
// $html.find('.tabs>div').click(function(){
// $(this).addClass('selected').siblings().removeClass('selected');
// console.log($html.find('.contents>div'));
// $html.find('.contents>div').eq($html.find('.tabs>div').index($(this))).show().siblings().hide();
// })[0].click();
// $('.DaXiaoDanShuang').remove();
// $('.lottery-betting').append($html);
// }
}
var BigNumber = function(smallAry) {
var smallGroupAry = [];
var bigStr;
var bigAry = [];
var bigExpAry = [];
for (var i = 0; i < smallAry.length / 4; i++) {
var small = [];
var v1 = smallAry[i * 4];
var v2 = smallAry[i * 4 + 1];
var v3 = smallAry[i * 4 + 2];
var v4 = smallAry[i * 4 + 3];
small.push(v1, v2, v3, v4);
var sum = parseInt(v1) + parseInt(v2) + parseInt(v3) + parseInt(v4);
var exp = '' + v1 + "+" + v2 + "+" + v3 + "+" + v4 + "=" + (sum);
var expHtml = '' + exp;
var length = expHtml.length;
// expHtml = expHtml.substr(0, length - 1) + '<span style="color:yellow">' + expHtml.substr(length - 1, length) + '</span>';
var sumStr = '' + sum;
bigAry.push(sumStr.substr(sumStr.length - 1, sumStr.length));
bigExpAry.push(exp);
smallGroupAry.push(small);
}
return {
bigAry: bigAry,
bigExpAry: bigExpAry,
smallGroupAry: smallGroupAry
}
}
/**
* 显示开奖号码
*/
var timeouter = 0;
var showOpenCode = function(data) {
var formatCode = function(code) {
var format = $('<ul>');
var codes = code.split(',');
for (var i = 0; i < codes.length; i++) {
// 检测号码个数
if ($Lottery.type == 1 || $Lottery.type == 2) {
if (i >= 5) break;
}
if ($Lottery.type == 3 || $Lottery.type == 4) {
if (i >= 3) break;
}
if ($Lottery.type == 5) {
if (i >= 20) break;
}
if ($Lottery.type == 6) {
if (i >= 10) break;
}
// 格式化开奖号码
if ($Lottery.type == 6) {
format.append('<li class="r' + codes[i] + '"></li>');
}else {
format.append('<li>' + codes[i] + '</li>');
}
}
// if($Lottery.type == 10){
// format = $('<ul>')
// var sb = code.split('|');
// var codes = sb[1].split(',');
// format.append('<li>' + codes[0] + '</li><li>' + codes[1] + '</li><li>' + codes[2] + '</li>'+'<li>' + sb[0] + '</li>')
// }
return format;
}
$('.lottery-open-code').find('[data-field="expect"]').html(data.issue);
// var animateRotateShow = function(els, code, location) {
// var codes = code.split(',');
// var speed = 400,
// bwidth = 68,
// tdelay = 0;
// var show = function(code, location, time, delay) {
// setTimeout(function() {
// var item = $('<div class="item">');
// item.html(code);
// item.css({
// 'left': '-' + bwidth + 'px',
// 'animation': '0.5s linear 0s normal none infinite rotate'
// });
// item.animate({
// 'left': location
// }, time, 'linear', function() {
// item.attr('style', 'left: ' + location + 'px');
// });
// els.find('.rotate').append(item);
// }, delay);
// }
// for (var i = 0; i < codes.length; i++) {
// var thisCode = codes[codes.length - 1 - i];
// var thisLocation = location[codes.length - 1 - i];
// var time = (thisLocation + bwidth) / speed * 1000;
// show(thisCode, thisLocation, time, tdelay);
// tdelay += time;
// }
// }
var lotteryOpenCode = $('.lottery-open-code').find('[data-field="code"]');
// 滚动效果的
if (($Lottery.shortName == 'hgssc' && data.code.indexOf('|') !== -1) || $Lottery.shortName == 'bjssc'|| $Lottery.shortName == 'twbgssc' || $Lottery.shortName == 'phssc'){
clearTimeout(timeouter);
var lotteryOpenCode02 = lotteryOpenCode;
lotteryOpenCode02.addClass('higher');
// lotteryOpenCode02.css({
// webkitFilter: 'url(#go1)',
// filter: 'url(#go1)'
// });
var smallStr = data.code.split('|')[1];
var smallAry = smallStr.split(',');
//小号数据分组
var temp = BigNumber(smallAry);
var smallGroupAry = temp.smallGroupAry;
var bigAry = temp.bigAry;
var bigExpAry = temp.bigExpAry;
//生成小号html
var smallul = '<ul class="small">';
for (var idx1 in smallGroupAry) {
smallul += '<li><ul>';
smallGroupAry[idx1];
for (var idx2 in smallGroupAry[idx1]) {
smallul += '<li>' + smallGroupAry[idx1][idx2] + '</li>';
}
smallul += '</ul></li>';
}
smallul += '</ul>';
//生成大号html
var bigsul = "<ul class='big'>";
for (var idx1 in bigAry) {
bigsul += '<li>' + bigAry[idx1] + '</li>';
}
smallul += '</ul>';
lotteryOpenCode02.empty();
var tips = $("<div class='tips'></div>");
lotteryOpenCode02.append(smallul);
lotteryOpenCode02.append(bigsul);
lotteryOpenCode02.append(tips);
lotteryOpenCode02.append('<div style="clear:both;"></div>')
lotteryOpenCode02.find('.big li,.small li li').hide();
//入场
var smallli = lotteryOpenCode02.find('.small li li');
smallli.removeClass("zoomIn animated");
smallli.each(function(idx, obj) {
setTimeout(function() {
$(obj).css('display', 'block').addClass("zoomIn animated")
}, idx * 50);
});
var bigli = lotteryOpenCode02.find('.big li').each(function(i){
$(this).data('bigExpAry',bigExpAry[i])
})
var smallGroup = lotteryOpenCode02.find('.small ul');
//大小球动画
!! function() {
timeouter = setTimeout(function() {
lotteryOpenCode02.removeAttr("style");
}, 1000);
smallGroup.each(function(idx, obj) {
setTimeout(function() {
$(obj).css('display', 'block').removeClass().addClass("zoomOut animated");
// bigli.eq(idx).css({'visibility':'visible','display':'block'}).removeClass().addClass("li2 bounceIn animated");
bigli.eq(idx).css('display', 'block').removeClass().addClass("li2 bounceIn animated");
//$(obj).css('display','block').removeClass().addClass("wp2 zoomOut animated");
//$(obj).css('display','block').removeClass().addClass("wp2 bounceOut animated");
// $(obj).find('li').css('display','block').removeClass().addClass("wp2 bounceOut animated");
// setTimeout(function(){
// bigli.eq(idx).css('display','block').removeClass().addClass("li2 bounceIn animated");
// },500);
// $(obj).css('display','block').removeClass().addClass("wp2 flip animated");
// setTimeout(function(){$(obj).css('display','block').removeClass().addClass("wp2 zoomOut animated")},800);
// setTimeout(function(){bigli.eq(idx).css('display','block').removeClass().addClass("li2 zoomIn animated")},800);
// $(obj).css('display','block').removeClass().addClass("wp2 hinge animated");
// bigli.eq(idx).css('display','block').removeClass().addClass("li2 rollIn animated");
}, 1000 + idx * 200);
});
}()
//大球悬停动画
bigli[Will.isTouchDevice ? 'click' : 'mouseenter'](function() {
// $(this).removeClass().addClass("flipOutY animated");
// smallGroup.eq($(this).index()).removeClass().addClass("wp2 flipInY animated");
// var ls = smallGroup.eq($(this).index()).find('li');
// var html = "";
// var sum = 0;
// ls.each(function(idx, ele) {
// var txt = $(this).html();
// if (idx == ls.length - 1) html += txt + "=";
// if (idx != ls.length - 1) html += txt + "+";
// sum += parseInt(txt);
// });
// html += sum;
// var length = html.length;
// html = html.substr(0, length - 1) + '<span>' + html.substr(length - 1, length) + '</span>';
var bigExpAry = $(this).data('bigExpAry')
tips.html(bigExpAry.slice(0,-1) + '<span>' + bigExpAry.slice(-1)).show()
}).mouseleave(function () {
tips.hide()
})
} else {
lotteryOpenCode.html(formatCode(data.code))
//入场
var list = $('.lottery-open-code .code li').show();
list.each(function(idx, obj) {
setTimeout(function() {
// $(obj).css('display', 'block').addClass("zoomIn animated"); bounceInLeft
var s = 'zoomIn';
$(obj).css('visibility', 'visible');
// $(obj).attr('style','visibility: visible;');
$(obj).addClass(s+" animated"); //visibility: visible;
// $(obj).css('display', 'inline-block')
}, idx * 100);
});
lotteryOpenCode.removeClass('higher');
//彩票球隐藏
if(list.length>10){
//list.slice(10).hide();
$('.lottery-open-code > .code.ssc > ul > li').addClass('kl8lot')
};
if(list.length == 3){
$('.lottery-open-code > .code > ul').addClass('lottery-code-3item')
};
if(GameData.getInfo().shortName == 'yckl8'){
$('.lottery-open-code > .code > ul').addClass('yckl8')
}
if(list.length == 4){
$('.lottery-open-code > .code > ul > li').css({'margin-left':'9.6%'})
};
}
// else {
// lotteryOpenCode.html(formatCode(data.code));
// lotteryOpenCode.removeClass('higher');
// }
// var lotteryDesc = lotteryOpenCode.next()
// lotteryDesc.html(function () {
// var description = GameData.getInfo().description;
// if (description) {
// description = description.replace(/\(|福彩3D|快乐8|\)|\(|\)/g,' ').replace('10分钟一期,','').replace(' 5分钟一期','').replace('开奖频率:','')
//
// }else{
// description = '暂无开奖信息'
// }
// description.length > 48 ? lotteryDesc.tooltip({title:description}) : lotteryDesc.tooltip('destroy');
// return description
// })
}
var init = function(lottery) {
$Lottery = lottery;
loadData(true);
}
var flush = function(data) {
if (data.issue != $LastIssue) {
loadData(true);
}
}
return {
init: init,
flush: flush
}
}();
/**
* 开奖通知
*/
var LotteryOpenNotice = function() {
var loadData = function() {
GameLotteryCtrl.pullOpenNotice({
success: function(response) {
if (response.error == 0) {
handleData(response.data);
}
}
});
}
// 播放声音
var audio= function() {
if(!$vmVolume.volumeOff.win){
var audio = $vmVolume.audio[0];
!audio.src && (audio.src = $vmVolume.src[0])
audio.play()
}
}
var handleData = function(data) {
audio();
var msg = '当前彩种:' + data.lottery + '<br/>';
msg += '当前期号:' + data.issue + '<br/>';
msg += '当期投注:' + data.money.toFixed(3) + '元<br/>';
msg += '当期中奖:' + data.winMoney.toFixed(3) + '元<br/>';
msg += '当期盈亏:' + data.profit.toFixed(3) + '元<br/>';
Will.info(msg,
false,
{
layout:'bottomRight',
animation: {
open : 'animated bounceIn',
close : 'animated fadeOutRight'
},
})
$('[data-injection="lottery-record"]').bootstrapTable('refresh')
PopOrder.orderDetailData = {}
}
var pull = function() {
loadData();
}
return {
pull: pull
}
}();