lixin-web
Version:
vue and bootstrap
489 lines (472 loc) • 13.8 kB
JavaScript
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()}
}()