UNPKG

lixin-web

Version:

vue and bootstrap

1,511 lines (1,397 loc) 51.1 kB
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 } }();