lixin-web
Version:
vue and bootstrap
754 lines (742 loc) • 23.4 kB
JavaScript
var Lottery11x5 = 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]) > 11 || 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;
switch (type) {
// 这里验证输入框类型
case 'sanmzhixdsq':
case 'sanmzuxdsq':
return _inputCheck_Num(datasel, 3, _numberCheck_Num).length;
case 'ermzhixdsq':
case 'ermzuxdsq':
return _inputCheck_Num(datasel, 2, _numberCheck_Num).length;
case 'rx1ds':
return _inputCheck_Num(datasel, 1, _numberCheck_Num).length;
case 'rx2ds':
return _inputCheck_Num(datasel, 2, _numberCheck_Num).length;
case 'rx3ds':
return _inputCheck_Num(datasel, 3, _numberCheck_Num).length;
case 'rx4ds':
return _inputCheck_Num(datasel, 4, _numberCheck_Num).length;
case 'rx5ds':
return _inputCheck_Num(datasel, 5, _numberCheck_Num).length;
case 'rx6ds':
return _inputCheck_Num(datasel, 6, _numberCheck_Num).length;
case 'rx7ds':
return _inputCheck_Num(datasel, 7, _numberCheck_Num).length;
case 'rx8ds':
return _inputCheck_Num(datasel, 8, _numberCheck_Num).length;
// 这里验证选号类型
case 'sanmzhixfsq':
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 'sanmzuxfsq':
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 2) {
nums += s * (s - 1) * (s - 2) / 6;
}
}
break;
case 'ermzhixfsq':
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 'ermzuxfsq':
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 1) {
nums += s * (s - 1) / 2;
}
}
break;
case 'bdw':
case 'dwd':
case 'dds':
case 'czw':
case 'rx1fs': // 任选1中1
var maxplace = 0;
if('bdw' == type || 'dds' == type || 'czw' == type || 'rx1fs' ==type) {
maxplace = 1;
}
if('dwd' == type) {
maxplace = 3;
}
for (var i = 0; i < maxplace; i++) {
nums += datasel[i].length;
}
break;
case 'rx2fs': // 任选2中2
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 1) {
nums += s * (s - 1) / 2;
}
}
break;
case 'rx3fs': // 任选3中3
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 2) {
nums += s * (s - 1) * (s - 2) / 6;
}
}
break;
case 'rx4fs': // 任选4中4
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 3) {
nums += s * (s - 1) * (s - 2) * (s - 3) / 24;
}
}
break;
case 'rx5fs': // 任选5中5
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 4) {
nums += s * (s - 1) * (s - 2) * (s - 3) * (s - 4) / 120;
}
}
break;
case 'rx6fs': // 任选6中6
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 5) {
nums += s * (s - 1) * (s - 2) * (s - 3) * (s - 4) * (s - 5) / 720;
}
}
break;
case 'rx7fs': // 任选7中7
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 6) {
nums += s * (s - 1) * (s - 2) * (s - 3) * (s - 4) * (s - 5) * (s - 6) / 5040;
}
}
break;
case 'rx8fs': // 任选8中8
var maxplace = 1;
for (var i = 0; i < maxplace; i++) {
var s = datasel[i].length;
if (s > 7) {
nums += s * (s - 1) * (s - 2) * (s - 3) * (s - 4) * (s - 5) * (s - 6) * (s - 7) / 40320;
}
}
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 'sanmzhixdsq':
case 'sanmzuxdsq':
datasel = _inputCheck_Num(datasel, 3, _numberCheck_Num);
break;
case 'ermzhixdsq':
case 'ermzuxdsq':
datasel = _inputCheck_Num(datasel, 2, _numberCheck_Num);
break;
case 'rx1ds':
datasel = _inputCheck_Num(datasel, 1, _numberCheck_Num);
break;
case 'rx2ds':
datasel = _inputCheck_Num(datasel, 2, _numberCheck_Num);
break;
case 'rx3ds':
datasel = _inputCheck_Num(datasel, 3, _numberCheck_Num);
break;
case 'rx4ds':
datasel = _inputCheck_Num(datasel, 4, _numberCheck_Num);
break;
case 'rx5ds':
datasel = _inputCheck_Num(datasel, 5, _numberCheck_Num);
break;
case 'rx6ds':
datasel = _inputCheck_Num(datasel, 6, _numberCheck_Num);
break;
case 'rx7ds':
datasel = _inputCheck_Num(datasel, 7, _numberCheck_Num);
break;
case 'rx8ds':
datasel = _inputCheck_Num(datasel, 8, _numberCheck_Num);
break;
default:
break;
}
return datasel.toString().replace(/\,/g, ';');
}
var _inputFormat = function(type, datasel) {
switch (type) {
case 'sanmzhixfsq':
case 'dwd':
return _formatSelect_Num(datasel, 0, 2);
case 'ermzhixfsq':
return _formatSelect_Num(datasel, 0, 3);
case 'sanmzuxfsq':
case 'ermzuxfsq':
case 'bdw':
case 'rx1fs':
case 'rx2fs':
case 'rx3fs':
case 'rx4fs':
case 'rx5fs':
case 'rx6fs':
case 'rx7fs':
case 'rx8fs':
return datasel[0].toString();
case 'sanmzhixdsq':
case 'sanmzuxdsq':
case 'ermzhixdsq':
case 'ermzuxdsq':
case 'rx1ds':
case 'rx2ds':
case 'rx3ds':
case 'rx4ds':
case 'rx5ds':
case 'rx6ds':
case 'rx7ds':
case 'rx8ds':
return _formatTextarea_Num(type, datasel);
case 'dds':
return datasel[0].toString().replace(/\,/g , '|');
case 'czw':
return datasel[0].toString();
default:
break;
}
}
var _typeFormat = function(code) {
code.sort();
var arr = [];
var j = 0, o = 0, z = 0;
$.each(code, function(idx, val) {
var num = parseInt(val);
if(num%2 == 0) {
o++;
} else {
j++;
}
if(idx == 2) {
z = num;
}
});
arr[0] = j + '单' + o + '双';
arr[1] = z;
return arr;
}
return {
inputNumbers: _inputNumbers,
inputFormat: _inputFormat,
typeFormat: _typeFormat
}
}();
/**
* TODO 彩票投注主要方法
*/
var LotteryMain = function() {
LotteryBaBa.call(this);
this.LotteryUtils = LotteryUtils;
// 布局
this.Layout = [{
title: '三码',
rows: [[{
title: '前三直选',
columns: [{
showname: '复式',
shortname: 'sanmzhixfsq',
realname: '[前三直选_复式]',
tips: '从第一位、第二位、第三位中至少各选择1个号码。',
example: '',
help: '从01-11共11个号码中选择3个不重复的号码组成一注,所选号码与当期顺序摇出的5个号码中的前3个号码相同,且顺序一致,即为中奖。',
select: {
layout: [{
title: '第一位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}, {
title: '第二位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}, {
title: '第三位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '单式',
shortname: 'sanmzhixdsq',
realname: '[前三直选_单式]',
tips: '手动输入号码,至少输入1个三位数号码组成一注。',
example: '',
help: '手动输入3个号码组成一注,所输入的号码与当期顺序摇出的5个号码中的前3个号码相同,且顺序一致,即为中奖。',
textarea: {}
}]
}], [{
title: '前三组选',
columns: [{
showname: '复式',
shortname: 'sanmzuxfsq',
realname: '[前三组选_复式]',
tips: '从0-9中任意选择3个或3个以上号码。',
example: '',
help: '从01-11中共11个号码中选择3个号码,所选号码与当期顺序摇出的5个号码中的前3个号码相同,顺序不限,即为中奖。',
select: {
layout: [{
title: '选号',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '单式',
shortname: 'sanmzuxdsq',
realname: '[前三组选_单式]',
tips: '手动输入号码,至少输入1个三位数号码组成一注。',
example: '',
help: '手动输入3个号码组成一注,所输入的号码与当期顺序摇出的5个号码中的前3个号码相同,顺序不限,即为中奖。',
textarea: {}
}]
}]]
}, {
title: '二码',
rows: [[{
title: '前二直选',
columns: [{
showname: '复式',
shortname: 'ermzhixfsq',
realname: '[前二直选_复式]',
tips: '从第一位、第二位中至少各选择1个号码。',
example: '',
help: '从01-11共11个号码中选择2个不重复的号码组成一注,所选号码与当期顺序摇出的5个号码中的前2个号码相同,且顺序一致,即为中奖。',
select: {
layout: [{
title: '第一位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}, {
title: '第二位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '单式',
shortname: 'ermzhixdsq',
realname: '[前二直选_单式]',
tips: '手动输入号码,至少输入1个两位数号码组成一注。',
example: '',
help: '手动输入2个号码组成一注,所输入的号码与当期顺序摇出的5个号码中的前2个号码相同,且顺序一致,即为中奖。',
textarea: {}
}]
}], [{
title: '前二组选',
columns: [{
showname: '复式',
shortname: 'ermzuxfsq',
realname: '[前二组选_复式]',
tips: '从0-9中任意选择2个或2个以上号码。',
example: '',
help: '从01-11中共11个号码中选择2个号码,所选号码与当期顺序摇出的5个号码中的前2个号码相同,顺序不限,即为中奖。',
select: {
layout: [{
title: '选号',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '单式',
shortname: 'ermzuxdsq',
realname: '[前二组选_单式]',
tips: '手动输入号码,至少输入1个两位数号码组成一注。',
example: '',
help: '手动输入2个号码组成一注,所输入的号码与当期顺序摇出的5个号码中的前2个号码相同,顺序不限,即为中奖。',
textarea: {}
}]
}]]
}, {
title: '不定胆',
rows: [[{
title: '不定胆',
columns: [{
showname: '前三位',
shortname: 'bdw',
realname: '[不定胆_前三位]',
tips: '从01-11中任意选择1个或1个以上号码。',
example: '',
help: '从01-11中共11个号码中选择1个号码,每注由1个号码组成,只要当期顺序摇出的第一位、第二位、第三位开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '选号',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}]
}]]
}, {
title: '定位胆',
rows: [[{
title: '定位胆',
columns: [{
showname: '定位胆',
shortname: 'dwd',
realname: '[定位胆]',
tips: '从第一位,第二位,第三位任意位置上任意选择1个或1个以上号码。',
example: '',
help: '从第一位,第二位,第三位任意1个位置或多个位置上选择1个号码,所选号码与相同位置上的开奖号码一致,即为中奖。',
select: {
layout: [{
title: '第一位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}, {
title: '第二位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}, {
title: '第三位',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}]
}]]
}, {
title: '趣味型',
rows: [[{
title: '趣味型',
columns: [{
showname: '定单双',
shortname: 'dds',
realname: '[定单双]',
tips: '从不同的单双组合中任意选择1个或1个以上的组合。',
example: '',
help: '从5种单双个数组合中选择1种组合,当期开奖号码的单双个数与所选单双组合一致,即为中奖。',
select: {
layout: [{
title: '定单双',
balls: ['5单0双', '4单1双', '3单2双', '2单3双', '1单4双', '0单5双'],
tools: false,
cls: 'large'
}]
}
}, {
showname: '猜中位',
shortname: 'czw',
realname: '[猜中位]',
tips: '从3-9中任意选择1个或1个以上数字。',
example: '',
help: '从3-9中选择1个号码进行购买,所选号码与5个开奖号码按照大小顺序排列后的第3个号码相同,即为中奖。',
select: {
layout: [{
title: '猜中位',
balls: ['03','04','05','06','07','08','09'],
tools: true
}]
}
}]
}]]
}, {
title: '任选',
rows: [[{
title: '任选复式',
columns: [{
showname: '一中一',
shortname: 'rx1fs',
realname: '[任选复式_一中一]',
tips: '从01-11中任意选择1个或1个以上号码。',
example: '',
help: '从01-11共11个号码中选择1个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '一中一',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '二中二',
shortname: 'rx2fs',
realname: '[任选复式_二中二]',
tips: '从01-11中任意选择2个或2个以上号码。',
example: '',
help: '从01-11共11个号码中选择2个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '二中二',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '三中三',
shortname: 'rx3fs',
realname: '[任选复式_三中三]',
tips: '从01-11中任意选择3个或3个以上号码。',
example: '',
help: '从01-11共11个号码中选择3个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '三中三',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '四中四',
shortname: 'rx4fs',
realname: '[任选复式_四中四]',
tips: '从01-11中任意选择4个或4个以上号码。',
example: '',
help: '从01-11共11个号码中选择4个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '四中四',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '五中五',
shortname: 'rx5fs',
realname: '[任选复式_五中五]',
tips: '从01-11中任意选择5个或5个以上号码。',
example: '',
help: '从01-11共11个号码中选择5个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '五中五',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '六中五',
shortname: 'rx6fs',
realname: '[任选复式_六中五]',
tips: '从01-11中任意选择6个或6个以上号码。',
example: '',
help: '从01-11共11个号码中选择6个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '六中五',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '七中五',
shortname: 'rx7fs',
realname: '[任选复式_七中五]',
tips: '从01-11中任意选择7个或7个以上号码。',
example: '',
help: '从01-11共11个号码中选择7个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '七中五',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}, {
showname: '八中五',
shortname: 'rx8fs',
realname: '[任选复式_八中五]',
tips: '从01-11中任意选择8个或8个以上号码。',
example: '',
help: '从01-11共11个号码中选择8个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
select: {
layout: [{
title: '八中五',
balls: ['01','02','03','04','05','06','07','08','09','10','11'],
tools: true
}]
}
}]
}], [{
title: '任选单式',
columns: [{
showname: '一中一',
shortname: 'rx1ds',
realname: '[任选单式_一中一]',
tips: '手动输入号码,从01-11中任意输入1个号码组成一注。',
example: '',
help: '从01-11共11个号码中选择1个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}, {
showname: '二中二',
shortname: 'rx2ds',
realname: '[任选单式_二中二]',
tips: '手动输入号码,从01-11中任意输入2个号码组成一注。',
example: '',
help: '从01-11共11个号码中选择2个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}, {
showname: '三中三',
shortname: 'rx3ds',
realname: '[任选单式_三中三]',
tips: '手动输入号码,从01-11中任意输入3个号码组成一注。。',
example: '',
help: '从01-11共11个号码中选择3个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}, {
showname: '四中四',
shortname: 'rx4ds',
realname: '[任选单式_四中四]',
tips: '手动输入号码,从01-11中任意输入4个号码组成一注。',
example: '',
help: '从01-11共11个号码中选择4个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}, {
showname: '五中五',
shortname: 'rx5ds',
realname: '[任选单式_五中五]',
tips: '手动输入号码,从01-11中任意输入5个号码组成一注。',
example: '',
help: '从01-11共11个号码中选择5个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}, {
showname: '六中五',
shortname: 'rx6ds',
realname: '[任选单式_六中五]',
tips: '手动输入号码,从01-11中任意输入6个号码组成一注。',
example: '',
help: '从01-11共11个号码中选择6个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}, {
showname: '七中五',
shortname: 'rx7ds',
realname: '[任选单式_七中五]',
tips: '手动输入号码,从01-11中任意输入7个号码组成一注。',
example: '',
help: '从01-11共11个号码中选择7个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}, {
showname: '八中五',
shortname: 'rx8ds',
realname: '[任选单式_八中五]',
tips: '手动输入号码,从01-11中任意输入8个号码组成一注。',
example: '',
help: '从01-11共11个号码中选择8个号码进行购买,只要当期顺序摇出的5个开奖号码中包含所选号码,即为中奖。',
textarea: {}
}]
}]]
}];
// 得到用户输入的号码,格式化后的数据
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 that = this;
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);
}
};
return {LotteryMain:new LotteryMain()}
}()