UNPKG

lixin-web

Version:

vue and bootstrap

489 lines (472 loc) 13.8 kB
var Lotteryk3 = function(){ /** * 彩票投注辅助 */ var LotteryUtils = function() { /** * 输入框类型检测 */ var _inputCheck_Num = function(datasel, l, fun) { fun = $.isFunction(fun) ? fun : function(n, l) { return true; } var newsel = []; // 新的号码 datasel = ArrayUtil.unique(datasel); // 去除重复 var regex = new RegExp('^[0-6]{' + l + '}$'); $.each(datasel, function(i, n) { if(regex.test(n) && fun(n, l)) { newsel.push(n); } }); return newsel; } /** * 2排不重复检测 */ var _uniqueCheck = function(a, b) { return ArrayUtil.intersect(a, b).length == 0 ? true : false; } /** * 二同号单式 */ var _ethdsCheck = function(n, l) { if (l != 3) return false; var first = n.substring(0, 1); var second = n.substring(1, 2); var third = n.substring(2, 3); if (first == second && second == third) return false; if (first == second || second == third || third == first) return true; return false; } /** * 二不同号单式 */ var _ebthdsCheck = function(n, l) { if (l != 2) return false; var first = n.substring(0, 1); var second = n.substring(1, 2); if (first == second) return false; return true; } /** * 三不同号单式 */ var _sbthdsCheck = function(n, l) { if (l != 3) return false; var first = n.substring(0, 1); var second = n.substring(1, 2); var third = n.substring(2, 3); if (first != second && second != third && third != first) return true; return false; } /** * 快三计算号码 */ var _inputNumbers = function(type, datasel) { var nums = 0; // 输入号 switch (type) { case 'ebthds': return _inputCheck_Num(datasel, 2, _ebthdsCheck).length; case 'ethds': return _inputCheck_Num(datasel, 3, _ethdsCheck).length; case 'sbthds': return _inputCheck_Num(datasel, 3, _sbthdsCheck).length; // 选号 case 'ebthdx': // 二不同号,标准选号 if (datasel[0].length >= 2) { nums += ArrayUtil.ComNum(datasel[0].length, 2); } break; case 'ebthdt': var maxplace = 2; if(datasel.length == maxplace) { if(_uniqueCheck(datasel[0], datasel[1])) { for (var i = 0; i < maxplace; i++) { var s = datasel[i].length; if (s > 0) { if(i > 0) { nums = datasel[i].length; } } else { nums = 0; break; } } } } break; case 'ethdx': var s = datasel.length; if(s > 1) { var a = datasel[0].length; var b = datasel[1].length; if(a > 0 && b > 0) { if(_uniqueCheck(datasel[0], datasel[1])) { nums = a * b; } } } break; case 'ethfx': nums = datasel[0].length; break; case 'sbthdx': // 三不同号单选 if (datasel[0].length >= 3) { nums += ArrayUtil.ComNum(datasel[0].length, 3); } break; case 'sthdx': // 三同号单选 case 'hezhi': // 和值 nums = datasel[0].length; break; case 'sthtx': // 三同号通选 case 'slhtx': // 三连号通选 nums = datasel[0].length > 0 ? 1 : 0; break; default: break; } return nums; } var _formatSelect_Num = function(datasel, m, n) { var newsel = new Array(); if(!m) m = 0; if(!n) n = 0; for (var i = 0; i < m; i++) { newsel.push('-'); } for (var i = 0; i < datasel.length; i++) { var f = datasel[i].toString().replace(/\,/g, ''); if(f == '') { newsel.push('-'); } else { newsel.push(f); } } for (var i = 0; i < n; i++) { newsel.push('-'); } return newsel.toString(); } var _formatTextarea_Num = function(type, datasel) { switch (type) { case 'ebthds': datasel = _inputCheck_Num(datasel, 2, _ebthdsCheck); break; case 'ethds': datasel = _inputCheck_Num(datasel, 3, _ethdsCheck); break; case 'sbthds': datasel = _inputCheck_Num(datasel, 3, _sbthdsCheck); break; default: break; } return datasel.toString().replace(/\,/g, ' '); } var _inputFormat = function(type, datasel) { switch (type) { case 'ebthds': case 'ethds': case 'sbthds': return _formatTextarea_Num(type, datasel); case 'ebthdx': case 'ethfx': case 'sbthdx': case 'sthdx': case 'sthtx': case 'slhtx': case 'hezhi': return datasel[0].toString(); case 'ebthdt': case 'ethdx': return _formatSelect_Num(datasel); default: break; } } var _typeFormat = function(code) { var arr = []; code.sort(); var a = code[0]; var b = code[1]; var c = code[2]; var sanlian = ['123', '234', '345', '456']; if($.inArray(code.toString().replace(/\,/g , ''), sanlian) != -1) { arr[0] = '三连号'; } else if(a == b && b == c) { arr[0] = '三同号'; } else if(a == b || b == c) { arr[0] = '二同号'; }else { arr[0] = '三不同'; } arr[1] = parseInt(a) + parseInt(b) + parseInt(c); return arr; } return { inputNumbers: _inputNumbers, inputFormat: _inputFormat, typeFormat: _typeFormat } }(); /** * TODO 彩票投注主要方法 */ var LotteryMain = function() { var that = this; LotteryBaBa.call(this); this.LotteryUtils = LotteryUtils; // 布局 this.Layout = [{ title: '二不同号', rows: [[{ title: '二不同号', columns: [{ showname: '标准选号', shortname: 'ebthdx', realname: '[二不同号_标准选号]', tips: '从1-6中任意选择2个或2个以上号码。', example: '投注方案:2,5;开奖号码中出现:1个2、1个5 (顺序不限),即中奖。', help: '从1-6中任意选择2个号码组成一注,顺序不限。开奖号码中出现所选的两个号码即为中奖。', select: { layout: [{ title: '号码', balls: [1,2,3,4,5,6] }] } }, { showname: '手动选号', shortname: 'ebthds', realname: '[二不同号_手动选号]', tips: '手动输入号码,至少输入1-6中两个不同的数字组成一注号码。', example: '投注方案:56;开奖号码:536,即中奖。', help: '开奖号码中至少包含所输入的两个数字即为中奖。', textarea: {} }, { showname: '胆拖选号', shortname: 'ebthdt', realname: '[二不同号_胆拖选号]', tips: '从1-6中任意选择1个胆码以及1个以上的号码作为拖码。', example: '', help: '从1-6中选择一个胆码和至少一个拖码,如果开奖号码中不重复数字至少包含胆码所选号码即为中奖', select: { layout: [{ title: '胆码', balls: [1,2,3,4,5,6], trigger: 'only' }, { title: '拖码', balls: [1,2,3,4,5,6] }] } }] }]] }, { title: '二同号', rows: [[{ title: '二同号单选', columns: [{ showname: '标准选号', shortname: 'ethdx', realname: '[二同号_标准选号]', tips: '选择1个对子(11,22,33,44,55,66)和1个不同号码(1,2,3,4,5,6)投注。', example: '投注方案:112;开奖号码为112,121,211中任意一个,即中奖。', help: '选择1个对子(11,22,33,44,55,66)和1个不同号码(1,2,3,4,5,6)投注,选号与开奖号码一致即中奖。', select: { layout: [{ title: '二同号', balls: ['11','22','33','44','55','66'], values: [1,2,3,4,5,6], trigger: 'only' }, { title: '不同号', balls: [1,2,3,4,5,6] }] } }, { showname: '手动选号', shortname: 'ethds', realname: '[二同号_手动选号]', tips: '手动输入号码,至少输入1个三位数号码组成一注。', example: '投注方案:112;开奖号码为112,121,211中任意一个,即中奖。', help: '手动输入号码,至少输入1个三位数号码,选号与开奖号码一致即中奖。', textarea: {} }] }], [{ title: '二同号复选', columns: [{ showname: '二同号复选', shortname: 'ethfx', realname: '[二同号_复选]', tips: '选择对子(11*,22*,33*,44*,55*,66*)进行投注。', example: '投注方案:11*;开奖号码为:112,211,121,即中奖。', help: '选择对子(11*,22*,33*,44*,55*,66*)投注,开奖号码中包含选择的对子即中奖。', select: { layout: [{ title: '二同号', balls: ['11*','22*','33*','44*','55*','66*'], values: [1,2,3,4,5,6], cls: 'medium' }] } }] }]] }, { title: '三不同号', rows: [[{ title: '三不同号', columns: [{ showname: '标准选号', shortname: 'sbthdx', realname: '[三不同号_标准选号]', tips: '选择任意三个或以上的号码进行投注。', example: '投注方案:2,5,6;开奖号码中出现:256,562,625(顺序不限)即中奖。', help: '从1-6中任意选择3个(或以上)不相同号码组成一注,顺序不限,若其中三位与开奖号码相同即为中奖。', select: { layout: [{ title: '号码', balls: [1,2,3,4,5,6] }] } }, { showname: '手动选号', shortname: 'sbthds', realname: '[三不同号_手动选号]', tips: '对三个各不相同的号码进行投注。', example: '投注方案:258;开奖号码中出现:1个2、1个5、1个8 (顺序不限),即中奖。。', help: '从1-6中任意选择3个或3个以上各不相同号码组成一注,顺序不限,若开奖号码与所选号码相同,即为中奖。', textarea: {} }] }]] }, { title: '三同号', rows: [[{ title: '三同号单选', columns: [{ showname: '三同号单选', shortname: 'sthdx', realname: '[三同号单选]', tips: '选择任意一组以上三位相同的号码。', example: '投注方案:222;开奖号码为:3个2,即中奖。', help: '从111,222,333,444,555,666中选择任意一组或一组以上的号码,若和开奖号相同即为中奖。', select: { layout: [{ title: '号码', balls: ['111','222','333','444','555','666'], values: [1,2,3,4,5,6], cls: 'medium' }] } }] }], [{ title: '三同号通选', columns: [{ showname: '三同号通选', shortname: 'sthtx', realname: '[三同号通选]', tips: '对所有三同号(111,222,333,444,555,666)进行投注。', example: '投注方案:通选;开奖号码中出现:222或3个其他数字,即中奖。', help: '投注后,开奖号码为任意数字的三重号,即为中奖。', select: { layout: [{ title: '胆码', balls: ['111','222','333','444','555','666'], cls: 'medium', trigger: 'all' }] } }] }]] }, { title: '三连号', rows: [[{ title: '三连号通选', columns: [{ showname: '三连号通选', shortname: 'slhtx', realname: '[三同号连选]', tips: '对所有三个相连的号码进行投注。', example: '投注方案:三连号通选 开奖号码:123或234或345或456 即为中奖', help: '开奖号码为3连号(123,234,345,456)即为中奖', select: { layout: [{ title: '号码', balls: ['123','234','345','456'], cls: 'medium', trigger: 'all' }] } }] }]] }, { title: '和值', rows: [[{ title: '和值', columns: [{ showname: '和值', shortname: 'hezhi', realname: '[和值]', tips: '从3-18中任意选择1个或1个以上号码。', example: '投注方案:和值4;开奖号码:112,即中奖。', help: '所选数值等于开奖号码三个数字相加之和,即为中奖。注意:和值为3或18一等奖;4或17二等奖;5或16三等奖;6或15四等奖;7或14五等奖;8或13六等奖;9或12七等奖;10或11八等奖', select: { layout: [{ balls: [3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18], cls: 'hz' }] } }] }]] }]; // 构造选号区域 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) { if(val.values) { balls.find('ul').append('<li><a data-val="' + val.values[j] + '">' + ball + '</a></li>'); } else { 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 rippling'); // 关联事件 if(val.trigger == 'all') { balls.find('ul > li > a').removeClass('selected rippling'); } } else { // 关联事件only if(val.trigger == 'only') { balls.find('ul > li > a').removeClass('selected rippling'); } $(this).addClass('selected rippling'); // 关联事件all if(val.trigger == 'all') { balls.find('ul > li > a').addClass('selected rippling'); } } that.PlayOptions.update(); }); row.append(balls); // 工具 if(val.tools) { buildBallTools(row, balls); } playArea.append(row); }); } }; return {LotteryMain:new LotteryMain()} }()