UNPKG

lixin-web

Version:

vue and bootstrap

491 lines (477 loc) 13.4 kB
var Lotterypk10 = 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-9]{2}\\s{1}){' + (l - 1) + '}[0-9]{2}$'); $.each(datasel, function(i, n) { if(regex.test(n) && fun(n, l)) { newsel.push(n); } }); return newsel; }; var _numberCheck_Num = function(n) { var t = n.split(' '); var l = t.length; for (var i = 0; i < l; i++) { if (Number(t[i]) > 10 || Number(t[i]) < 1) { return false; } for (var j = i + 1; j < l; j++) { if (Number(t[i]) == Number(t[j])) { return false; } } } return true; } var _inputNumbers = function(type, datasel) { var nums = 0, tmp_nums = 1; // 输入号 switch (type) { case 'qianerzxds': return _inputCheck_Num(datasel, 2, _numberCheck_Num).length; case 'qiansanzxds': return _inputCheck_Num(datasel, 3, _numberCheck_Num).length; // 选号 case 'qiansanzxfs': if (datasel[0].length > 0 && datasel[1].length > 0 && datasel[2].length > 0) { for (var i = 0; i < datasel[0].length; i++) { for (var j = 0; j < datasel[1].length; j++) { for (var k = 0; k < datasel[2].length; k++) { if (datasel[0][i] != datasel[1][j] && datasel[0][i] != datasel[2][k] && datasel[1][j] != datasel[2][k]) { nums++; } } } } } break; case 'qianerzxfs': if (datasel[0].length > 0 && datasel[1].length > 0) { for (var i = 0; i < datasel[0].length; i++) { for (var j = 0; j < datasel[1].length; j++) { if (datasel[0][i] != datasel[1][j]) { nums++; } } } } break; case 'dingweidan': var maxplace = 3; for (var i = 0; i < maxplace; i++) { nums += datasel[i].length; } break; case 'dwqian': case 'dwhou': var maxplace = 5; for (var i = 0; i < maxplace; i++) { nums += datasel[i].length; } break; default: var maxplace = 1; for (var i = 0; i < maxplace; i++) { // 有位置上没有选择 if (datasel[i].length == 0) { tmp_nums = 0; break; } tmp_nums *= datasel[i].length; } nums += tmp_nums; } 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 'qianerzxds': datasel = _inputCheck_Num(datasel, 2, _numberCheck_Num); break; case 'qiansanzxds': datasel = _inputCheck_Num(datasel, 3, _numberCheck_Num); break; default: break; } return datasel.toString().replace(/\,/g, ';'); } var _inputFormat = function(type, datasel) { switch (type) { case 'qianyi': return datasel[0].toString(); case 'qianerzxfs': case 'qiansanzxfs': case 'dingweidan': case 'dwqian': case 'dwhou': return _formatSelect_Num(datasel); case 'qianerzxds': case 'qiansanzxds': return _formatTextarea_Num(type, datasel); case 'dxd1': case 'dxd2': case 'dxd3': case 'dsd1': case 'dsd2': case 'dsd3': return datasel[0].toString().replace(/\,/g , '|'); default: break; } } return { inputNumbers: _inputNumbers, inputFormat: _inputFormat } }(); /** * TODO 彩票投注主要方法 */ var LotteryMain = function() { var that = this; LotteryBaBa.call(this); this.LotteryUtils = LotteryUtils; // 布局 this.Layout = [{ title: '前一', rows: [[{ title: '前一', columns: [{ showname: '前一', shortname: 'qianyi', realname: '[前一]', tips: '从第一位中选择1个以上号码。', example: '', help: '选号与开奖号码中第一位一致即中奖。', select: { layout: [{ title: '第一位', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }] } }] }]] }, { title: '前二', rows: [[{ title: '前二', columns: [{ showname: '前二复式', shortname: 'qianerzxfs', realname: '[前二_复式]', tips: '从第一位、第二位、第三位中至少各选择1个号码。', example: '选号与开奖号码中第一位、第二位一致即中奖。', help: '', select: { layout: [{ title: '第一位', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第二位', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }] } }, { showname: '前二单式', shortname: 'qianerzxds', realname: '[前二_单式]', tips: '手动输入号码,至少输入2个二位数号码组成一注。', example: '', help: '', textarea: {} }] }]] }, { title: '前三', rows: [[{ title: '前三', columns: [{ showname: '前三复式', shortname: 'qiansanzxfs', realname: '[前三_复式]', tips: '从第一位、第二位、第三位中至少各选择1个号码。', example: '', help: '选号与开奖号码中第一位、第二位、第三位一致即中奖。', select: { layout: [{ title: '第一位', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第二位', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第三位', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }] } }, { showname: '前三单式', shortname: 'qiansanzxds', realname: '[前三_单式]', tips: '手动输入号码,至少输入3个二位数号码组成一注。', example: '', help: '', textarea: {} }] }]] }, { title: '定位胆', rows: [[{ title: '定位胆', columns: [{ showname: '第1~5名', shortname: 'dwqian', realname: '[定位胆_第1~5名]', tips: '在一、二、三、四、五名任意位置上任意选择1个或1个以上号码。', example: '', help: '选择的号码与开奖的号码相对应,即为中奖。如选择第一位购买号码为1,第一位开奖号码为1,即为中奖。', select: { layout: [{ title: '第一名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第二名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第三名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第四名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第五名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }] } }, { showname: '第6~10名', shortname: 'dwhou', realname: '[定位胆_第6~10名]', tips: '在第六、七、八、九、十名任意位置上任意选择1个或1个以上号码。', example: '', help: '选择的号码与开奖的号码相对应,即为中奖。如选择第六位购买号码为1,第六位开奖号码为1,即为中奖。', select: { layout: [{ title: '第六名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第七名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第八名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第九名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }, { title: '第十名', balls: ['01','02','03','04','05','06','07','08','09','10'], tools: true }] } }] }]] }, { title: '大小', rows: [[{ title: '大小', columns: [{ showname: '第一名', shortname: 'dxd1', realname: '[大小_第一名]', tips: '选择第一名车号大小为一注。', example: '', help: '选择的号码与开奖号码相对应,即为中奖,如第一位购买号码为大,开奖号码为大(6,7,8,9,10)即为中奖。', select: { layout: [{ title: '第一名', balls: ['大','小'] }] } }, { showname: '第二名', shortname: 'dxd2', realname: '[大小_第二名]', tips: '选择第二名车号大小为一注。', example: '', help: '选择的号码与开奖号码相对应,即为中奖,如第一位购买号码为大,开奖号码为大(6,7,8,9,10)即为中奖。', select: { layout: [{ title: '第二名', balls: ['大','小'] }] } }, { showname: '第三名', shortname: 'dxd3', realname: '[大小_第三名]', tips: '选择第三名车号大小为一注。', example: '', help: '选择的号码与开奖号码相对应,即为中奖,如第一位购买号码为大,开奖号码为大(6,7,8,9,10)即为中奖。', select: { layout: [{ title: '第三名', balls: ['大','小'] }] } }] }]] }, { title: '单双', rows: [[{ title: '单双', columns: [{ showname: '第一名', shortname: 'dsd1', realname: '[单双_第一名]', tips: '选择第一名车号单双为一注。', example: '', help: '选择的号码与开奖号码相对应,即为中奖,如第一位购买号码为单,开奖号码为单(1,3,5,7,9)即为中奖。', select: { layout: [{ title: '第一名', balls: ['单','双'] }] } }, { showname: '第二名', shortname: 'dsd2', realname: '[单双_第二名]', tips: '选择第二名车号单双为一注。', example: '', help: '选择的号码与开奖号码相对应,即为中奖,如第一位购买号码为单,开奖号码为单(1,3,5,7,9)即为中奖。', select: { layout: [{ title: '第二名', balls: ['单','双'] }] } }, { showname: '第三名', shortname: 'dsd3', realname: '[单双_第三名]', tips: '选择第三名车号单双为一注。', example: '', help: '选择的号码与开奖号码相对应,即为中奖,如第一位购买号码为单,开奖号码为单(1,3,5,7,9)即为中奖。', select: { layout: [{ title: '第三名', balls: ['单','双'] }] } }] }]] }]; // 得到用户输入的号码,格式化后的数据 this.getTextareaBall = function(playArea) { var datasel = []; var textarea = playArea.find('.textarea > textarea'); if(textarea && textarea.length > 0) { var format = textarea.val().replace(/\,|\n/g, ';'); var as = format.split(';'); $.each(as, function(idx, val) { datasel.push(val); }); } return datasel; } 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.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) { var els = $('<li>').append('<a>' + ball + '</a>'); if(val.values) { els.find('a').attr('data-val', val.values[j]); } else { els.find('a').attr('data-val', ball); } if(val.styles) { els.find('a').addClass(val.styles[j]); } balls.find('ul').append(els); }); 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); }); } }; return {LotteryMain:new LotteryMain()} }()