lixin-web
Version:
vue and bootstrap
491 lines (477 loc) • 13.4 kB
JavaScript
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()}
}()