UNPKG

lixin-web

Version:

vue and bootstrap

1,363 lines (1,284 loc) 45.2 kB
//彩票父类 var LotteryBaBa = function(){ var that=this; this.$Lottery; // 彩票 this.$LotteryType; // 彩票类型 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; } // 得到用户输入的号码,格式化后的数据 this.getTextareaBall = function(playArea) { var datasel = []; var textarea = playArea.find('.textarea > 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>'); }); balls.find('ul > li > a').click(function() { if($(this).hasClass('selected')) { $(this).removeClass('selected'); } else { $(this).addClass('selected'); } that.PlayOptions.update(); }); row.append(balls); // 工具 if(val.tools) { that.buildBallTools(row, balls); } playArea.append(row); }); } // 构造选号工具 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.trigger('click'); } } else { if(els.hasClass('selected')) { els.trigger('click'); } } } 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 = $('<div class="textarea">').append('<textarea>'); var help = $('<div class="help">').html('每注号码之间请用一个空格或英文逗号或英文分号隔开(输入的号码会自动排序并去除不合格号码)。'); textarea.find('textarea').keyup(function() { $(this).val($(this).val().replace(/\,|\,|\;|\;|\n/g, ' ')); that.PlayOptions.update(); }); playArea.append(textarea); playArea.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() { that.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(''); if($('.play-area').find('.selected[data-val="123"],.selected[data-val="111"]').length){ $('.play-area').find('.selected').eq(0).click() }else{ $('.play-area').find('.selected').click(); } } 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('<div class="button"><a data-command="add">添加号码</a></div>'); // GET Cookie Model Value var bDataModel = 'yuan'; if($.cookie('USER_BDATA_MODEL')) { bDataModel = $.cookie('USER_BDATA_MODEL') } 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(that.$FenDownCode > 0) { var thisCode = that.$SysCode - that.$FenDownCode; if(that.$UserCode > thisCode) { that.$UserMaxCode = thisCode - that.$DownCode; Will.info('分模式最高为' + that.$UserMaxCode + '。', 3000); } } } // 厘模式 var liModel = function() { if(that.$LiDownCode > 0) { var thisCode = that.$SysCode - that.$LiDownCode; if(that.$UserCode > thisCode) { that.$UserMaxCode = thisCode - that.$DownCode; Will.info('厘模式最高为' + that.$UserMaxCode + '。', 3000); } } } // 默认模式 var defaultModel = function() { that.$UserMaxCode = that.$UserCode - that.$DownCode; that.$UserMinCode = that.$UserMaxCode - that.$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.slider(); that.AdjustPrize.update(); that.PlayOptions.update(); // SET Cookie Model Value var expires = new Date(moment().startOf('year').add(1, 'years')); $.cookie('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 * that.$SysUnitMoney * model().money; els().find('[data-field="num"]').html(num); els().find('[data-field="total"]').html(total.toFixed(3)); } return {els: els, multiple: multiple, model: model, update: update}; }(); // 构造奖金 this.buildAdjustPrize = function(adjustPrize, column) { adjustPrize.empty(); adjustPrize.append('<div class="col-sm-8"><span class="col-sm-3">奖金调节:</span><div class="slider col-sm-6"></div><div class="col-sm-3"><span data-field="code">0</span> / <span data-field="point">0.0</span>%</div></div><span class="prize col-sm-4"><i></i>当前玩法奖金<span data-field="prize">0.00</span>元</span>'); var slider = adjustPrize.find('.slider'); var start = that.$UserMaxCode; // GET Cookie Code Value if($.cookie('USER_BDATA_CODE')) { var bCode = $.cookie('USER_BDATA_CODE'); if (!isNaN(bCode)) { if(bCode > that.$UserMaxCode) { start = that.$UserMaxCode; } else if(bCode < that.$UserMinCode) { start = that.$UserMinCode; } else { start = bCode; } } } slider.noUiSlider({connect: 'lower', behaviour: 'snap', step: 2, start: start, range: {'max': that.$UserMaxCode, 'min': that.$UserMinCode}}); if (that.$UserMaxCode == that.$UserMinCode) { slider.attr('disabled', 'disabled'); } else { slider.removeAttr('disabled'); } var update = function(code) { var point = that.$UserLp - ((code - that.$UserMinCode) / 20.0).toFixed(1); adjustPrize.find('[data-field="code"]').html(code); adjustPrize.find('[data-field="point"]').html(point.toFixed(1)); that.AdjustPrize.update(); } var onSet = function() { 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(start); } // 玩法提示 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() { els().find('.slider').noUiSlider({range: {'max': that.$UserMaxCode, 'min': that.$UserMinCode}}, true); } var update = function() { var method = that.$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])) * (that.$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.TianJiaHaoMaDongHua = function(){ $(".play-area .balls li a.selected").each(function(){ var pos = $(this).position(); var des = $('ul.nav.nav-tabs li').eq(0).position() $(this).parent().append( $(this).clone() .removeClass('selected') .addClass('selectedan') .css('position','absolute') .css('left',pos.left) .css('top',pos.top) .animate({ left:des.left+48, top:des.top-30, },100+Math.random()*1000,function(){ var that = $(this); that.hide(500); // setTimeout(function(){ // that.remove(); // },500) }) ); }); } 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 * that.$SysUnitMoney * that.PlayOptions.model().money; if(num == 0) { Will.info('您还没有选择号码或所选号码不全!', 3000); return false; } that.TianJiaHaoMaDongHua(); var _method = that.$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-record'); } var name = function(method) { var method = that.$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) { App.blockUI({ target: els(), boxed: true, message: '超大注数处理中...' }); LZMA.compress(content, 3, function(result) { App.unblockUI(els()); if(result === false) { return Will.info( '号码添加失败,请重试!', 3000); } content = LZMAUtil.toHex(result); that.$bList.push({lottery: that.$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 { that.$bList.push({lottery: that.$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'); that.$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"]',function(){ that.addToList(); }); button.find('[data-command="submit"]').unbind().click(function() { if(that.$bList.length > 0) { that.doSubmit(); } else { that.addToList(that.doSubmit); } }); button.find('[data-command="clear"]').unbind().click(function() { clear(); }); button.find('[data-command="chase"]').unbind().click(function() { 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 clearfix">'); 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'); } // 初始化玩法列表 var initPlayList = function(list) { playList.empty(); $.each(list, function(i, rows) { var thisRow = $('<div class="row">'); $.each(rows, function(j, row) { thisRow.append('<div class="label">' + row.title + '</div>'); $.each(row.columns, function(k, column) { var thisColumn = $('<div class="column">').attr('data-method', column.shortname).html(column.showname); // 点击效果 thisColumn.click(function() { if(!$(this).hasClass('selected')) { playList.find('.row > .column').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('.row > .column').eq(0).trigger('click'); } // 初始化帮助信息 var buildPlayHelp = function(column) { playHelp.empty(); playHelp.append('<div class="tips"><i></i><span class="label">玩法提示:</span>' + column.tips + '</div>'); //playHelp.append('<div class="prize"><i></i>当前玩法奖金<span data-field="prize">0.00</span>元</div>'); playHelp.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 + 32, left: left}).show(); } var hide = function(target) { playHelp.find(target).hide(); } playHelp.find('.tips > i').hover(function() {show(this, '.help-info')}, 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); // 加载 main.append(playGroups); main.append(playList); main.append(playHelp); main.append(playArea); main.append(adjustPrize); main.append(playOptions); // 调用初始化方法 if(that.$LotteryType==1) initPlayGroups(3); else initPlayGroups(0); // 初始化投注列表 that.LotteryRecord.init(); } // 初始化 this.init = function(data) { if (data) { that.$Lottery = data.lottery; that.$LotteryType = data.lotteryType; that.$LotteryName = data.lotteryName; that.$DownCode = data.downCode; that.$FenDownCode = data.fenDownCode; that.$LiDownCode = data.liDownCode; that.$Method = data.method; that.$SysCode = data.sysCode; that.$SysUnitMoney = data.sysUnitMoney; that.$UserCode = data.userCode; that.$UserLp = data.userLp; // 计算得出 that.$UserMaxCode = that.$UserCode - that.$DownCode; that.$UserMinCode = that.$UserCode - that.$UserLp * 20; } this.initDocument(); that.LotteryRecord.clear(); } this.isLoading = false; this.doSubmit = function() { var thisContent = $('.lottery-record'); if(!that.isLoading) { if(that.$bList.length == 0) { return Will.info('投注列表没有订单!', 3000); } var list = []; $.each(that.$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: $.toJSON(list) }; GameLotteryCtrl.addOrder({ data: data, beforeSend: function() { isLoading = true; App.blockUI({ target: thisContent, boxed: true }); }, success: function(response) { if(response.error == 0) { isLoading = false; App.unblockUI(thisContent); that.LotteryRecord.clear(); Will.success( '您的订单已投注成功!', 3000); if (typeof RecordList != 'undefined') { RecordList.init(); } } if(response.error == 1) { if ('116-05' == response.code) { setTimeout(function() { isLoading = false; App.unblockUI(thisContent); Will.warning( '投注超时,请检查网路情况后重新重试。'); }, 10000); } else if ('116-06' == response.code) { window.location.href = './index.html'; } else { isLoading = false; App.unblockUI(thisContent); Will.warning( response.message); } } } }); } } this.getConfig=function() { return { lottery: that.$Lottery, lotteryName: that.$LotteryName, downCode: that.$DownCode, fenDownCode: that.$FenDownCode, liDownCode: that.$LiDownCode, method: that.$Method, sysCode: that.$SysCode, sysUnitMoney: that.$SysUnitMoney, userCode: that.$UserCode, userLp: that.$UserLp, userMaxCode: that.$UserMaxCode, userMinCode: that.$UserMinCode } }; this.bList=function() { return that.$bList; }; this.clear=function() { that.LotteryRecord.clear(); }, this.addCallback=function(cb) { that.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 } }(); /** * 彩票开奖时间 */ KaiJiangShiJianVue = new Vue({ template:'<div class="lottery-open-info">\ <div class="expect">第<span >{{issue}}</span> 期截止时间还有:</div>\ <div class="last-time"><span ><i>{{time[0]}}{{time[1]}}</i>:<i>{{time[2]}}{{time[3]}}</i>:<i>{{time[4]}}{{time[5]}}</i></span></div>\ </div>', data:{interval:0,lottery:{},issue:'0000-0000',surplusTime:15000,time:[0,0,0,0,0,0]}, compiled:function(){ $('[data-injection="rest-open-time"]').append(this.$el); }, watch:{ lottery:function(){ clearTimeout(this.interval); this.getTime(); } }, methods:{ getTime:function(){ var that = this; Will.ajax({name: that.lottery.shortName},'/api/game-lottery/static-open-time',function(data ){ if(data.surplusTime==0) { setTimeout(function(){that.getTime()},1000); return; } that.surplusTime = data.surplusTime+1; that.issue = data.issue; that.setTime(); }) },setTime:function(){ var that = this; var mom = moment.duration(that.surplusTime,'s'); that.interval = setInterval(function() { var ShiJian = mom.subtract(1,'s')._data; var Shi = (ShiJian.hours+'').length==1?'0'+ShiJian.hours:ShiJian.hours+''; var Fen = (ShiJian.minutes+'').length==1?'0'+ShiJian.minutes:ShiJian.minutes+''; var Miao = (ShiJian.seconds+'').length==1?'0'+ShiJian.seconds:ShiJian.seconds+''; that.time = [].concat(Shi.split('')).concat(Fen.split('')).concat(Miao.split('')); $('[data-field="global-expect"]').html(that.issue); $('[data-field="global-last-time"]').html(that.time[0]+that.time[1]+':'+that.time[2]+that.time[3]+':'+that.time[4]+that.time[5]); if(mom.asSeconds() == 10) { if($('.set-voice').find('.cd').hasClass('audio-on')) { var lotteryCd = document.getElementById('lottery-cd'); if(lotteryCd) { lotteryCd.play(); } else { var audio = $('<audio id="lottery-cd" autoplay="autoplay">'); audio.attr('src', '/audio/cd.mp3').hide(); $('body').append(audio); } } } if (mom.asSeconds() == 0) { $('audio#lottery-cd').remove(); clearTimeout(that.interval); setTimeout(function(){that.getTime()}, 1000); Will.warning( '温馨提示:第 <font class="QiHao" >' + that.issue + '</font> 期 已截止, 请注意投注期号!', 3000); } return arguments.callee; }(), 1000); }} }).$mount(); /** * 彩票开奖号码 */ 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 = codes.length > 5 ? 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.append('<a class="more">...</a>'); } } 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; } $.each(list, function(i, val) { if (i == 0) { $LastIssue = val.issue; $CurrCode = val; showOpenCode(val); } var item = $('<div class="item">'); 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); }); thisResultList.append(item); }); 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'); $html.find('.contents>div').eq($html.find('.tabs>div').index($(this))).show().siblings().hide(); })[0].click(); $('.DaXiaoDanShuang').remove(); $('[data-injection="lottery-play-area"]').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' || $Lottery.shortName == 'bjssc'|| $Lottery.shortName == 'twbgssc') { 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 += '<span class="wp1"><span class="wp2">'; smallGroupAry[idx1]; for (var idx2 in smallGroupAry[idx1]) { smallul += '<li>' + smallGroupAry[idx1][idx2] + '</li>'; } smallul += '</span></span>'; } smallul += '</ul>'; //生成大号html var bigsul = "<ul class='big'>"; for (var idx1 in bigAry) { bigsul += '<li>' + bigAry[idx1] + '</li>'; } smallul += '</ul>'; lotteryOpenCode02.empty(); var tip = $("<div class='tip1'></div>"); lotteryOpenCode02.append(smallul); lotteryOpenCode02.append(bigsul); lotteryOpenCode02.append(tip); lotteryOpenCode02.append('<div style="clear:both;"></div>') lotteryOpenCode02.find('li').hide(); //入场 var smallli = lotteryOpenCode02.find('.small 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'); var smallGroup = lotteryOpenCode02.find('.small .wp2'); //大小球动画 !! function() { timeouter = setTimeout(function() { lotteryOpenCode02.removeAttr("style"); }, 1000); smallGroup.each(function(idx, obj) { setTimeout(function() { $(obj).css('display', 'block').removeClass().addClass("wp2 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.unbind(); bigli.hover(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 style="color:yellow">' + html.substr(length - 1, length) + '</span>'; tip.html(html); }, function() { // $(this).removeClass().addClass("flipInY animated"); // smallGroup.eq($(this).index()).removeClass().addClass("wp2 flipOutY animated"); }); } else { lotteryOpenCode.html(formatCode(data.code)); //入场 var list = $('.lottery-open-code .code li'); 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 > li').css({'margin-left':'13.6%'}) }; 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 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($('.set-voice').find('.win').hasClass('audio-on')) { $('audio#lottery-open').remove(); var audio = $('<audio id="lottery-open" autoplay="autoplay">'); audio.attr('src', '/audio/lottery-open.mp3').hide(); $('body').append(audio); } } 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/>'; // App.tips('消息提示', msg, 8000); Lobibox.notify('info', { size: 'mini', title: '中奖提示', msg: msg, showClass: 'bounceIn', hideClass: 'bounceOut', }); } var pull = function() { loadData(); } return { pull: pull } }();