Pro/public/static/wapchip/js/waybill.js
2026-01-28 15:54:52 +08:00

786 lines
21 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$(function(){
$(window).resize(function(){
requestData(ludan);
requestData2(ludan);
})
requestData(ludan);
requestData2(ludan);
// 庄问路
$(".bankerask").click(function(){
var olddata =ludan;
var requestdata=getLudanBanker();
clearInterval(askInterval);
ask(requestdata,olddata)
})
// 闲问路
$(".playerask").click(function(){
var olddata =ludan;
var requestdata=getLudanPlayer();
clearInterval(askInterval);
ask(requestdata,olddata)
})
// 关闭结果
$(document).on("click",".result .box .off-btn",function(){
$(this).parents(".play .result").animate({"bottom":"-100%"},800,function(){
$(".play .result").remove();
})
})
// 弹窗问路
// 庄问路
$(".banker2").click(function(){
var olddata =ludan;
var requestdata=getLudanBanker();
clearInterval(askInterval);
ask(requestdata,olddata,2)
})
// 闲问路
$(".player2").click(function(){
var olddata =ludan;
var requestdata=getLudanPlayer();
clearInterval(askInterval);
ask(requestdata,olddata,2)
})
$(".play .canvas-box").click(function(){
$(".ludanbox").css({"visibility":"visible","opacity":1});
})
// 关闭弹窗
$(".off-btn").click(function(){
$(".ludanbox").css({"visibility":"hidden","opacity":0});
})
$(".enlarge-btn").click(function(){
var scale=$(".video-canvas").hasClass("scale")
if(scale){
$(".video-canvas").removeClass("scale")
}else{
$(".video-canvas").addClass("scale")
}
})
})
var getLudan = function (){
var ludan = false;
var query = new Object();
query.game_id = $('#game_id').val();
query.boot_id = $('#boot_dt_id').val();
//query.reform = 1; // 调整数据结构传参,防止显示爆格
$.ajax({
url:'/index/waybill',
data:query,
dataType:"json",
type:"POST",
async:false,
success:function(data){
ludan = data
}
});
return ludan;
}
//庄问路
var getLudanBanker = function(){
var next = new Object;
next.game_id = $('#game_id').val();
next.boot_id = $('#boot_dt_id').val();
next.forecast = 1;
//next.reform = 1; // 调整数据结构传参,防止显示爆格
var returnData = false;
$.ajax({
url:"/index/waybill",
type:"POST",
dataType:"JSON",
data:next,
async:false,
success:function(data){
returnData = data;
}
});
return returnData;
}
//闲问路
var getLudanPlayer = function(){
var next = new Object;
next.game_id = $('#game_id').val();
next.boot_id = $('#boot_dt_id').val();
//next.reform = 1; // 调整数据结构传参,防止显示爆格
next.forecast = 2;
var returnData = false;
$.ajax({
url:"/index/waybill",
type:"POST",
dataType:"JSON",
data:next,
async:false,
success:function(data){
returnData = data;
}
});
return returnData;
}
// 画布数据入口
var dpr = window.devicePixelRatio
function requestData(ludan,ask,askroad){
var ask=ask||false;
var askroad=askroad||{
"askshowroad":false,
"askbigRoad":false,
"askbigEyeRoad":false,
"askpathway":false,
"askroach":false,
};
var Vh=$(window).height();
var Vw=$(window).width();
var rows=6;
var cols=0;
// alert(Vh)
if(Vh<=622){
cols=24;
}else if(Vh<=736){
cols=16;
}else{
cols=14;
}
var unit=Vw/cols*dpr;
var Tabheight=unit*rows;
var betH=$(".bet-box").outerHeight(),
chipH=$(".chip-box").outerHeight(),
headH=$(".head-box").outerHeight(),
Tabwidth=$(".canvas-box").width()*dpr,
videoH=Vh-Tabheight/dpr-betH-chipH-headH;
$("#playtab").attr("width",Tabwidth);
$("#playtab").attr("height",Tabheight);
$("#playtab").css("width",Tabwidth/dpr);
$("#playtab").css("height",Tabheight/dpr);
// 视频自适应
$(".video-box").height(videoH)
CanvasTable("#playtab",unit,rows,cols,ludan,ask,askroad)
}
function requestData2(ludan,ask,askroad){
var ask=ask||false;
var askroad=askroad||{
"askshowroad":false,
"askbigRoad":false,
"askbigEyeRoad":false,
"askpathway":false,
"askroach":false,
};
var width=$(".ludanbox .box .canvas").width()*dpr;
CanvasTable2("#canvas1",width,ludan,ask,askroad);
CanvasTable2("#canvas2",width,ludan,ask,askroad);
}
// 判断游戏类型
var gameId=$('#game_id').val();
// 路单数据分布1
function CanvasTable(Id,unit,rows,cols,ludan,ask,askroad){
var ctb=$(Id)[0].getContext('2d'),
width=unit*cols,
height=unit*rows;
$(Id).attr("width",width);
$(Id).attr("height",height);
$(Id).css("width","100%");
$(Id).css("height",height/dpr);
Drawline(ctb,unit,rows,cols,width,height);
if(ludan){
var showRoad=ludan.waybill.showRoad;
var bigRoad=ludan.waybill.bigRoad;
var bigEyeRoad=ludan.waybill.bigEyeRoad;
var pathway=ludan.waybill.pathway;
var roach=ludan.waybill.roach;
if(showRoad!=''){
var roadType="showWay"
RoadcutRoad(roadType,ctb,unit,showRoad,cols,ask,askroad.askshowroad);
}
if(bigRoad!=''){
if(bigRoad[0].result==3&&bigRoad[0].show_x==1&&bigRoad[0].show_y==1){
var start_x=7;
BigPathTie(ctb,unit,start_x,bigRoad[0].tie_num)
}else{
var roadType="bigWay";
RoadcutRoad(roadType,ctb,unit,bigRoad,cols,ask,askroad.askbigRoad);
}
}
if(bigEyeRoad!=''){
var roadType="bigeyeWay"
RoadcutRoad(roadType,ctb,unit,bigEyeRoad,cols,ask,askroad.askbigEyeRoad);
};
if(pathway!=''){
var roadType="littlWay"
RoadcutRoad(roadType,ctb,unit,pathway,cols,ask,askroad.askpathway);
};
if(roach!=''){
var roadType="roachWay";
RoadcutRoad(roadType,ctb,unit,roach,cols,ask,askroad.askroach);
};
}
}
// 路单数据分布2
function CanvasTable2(Id,width,ludan,ask,askroad){
var ctb=$(Id)[0].getContext('2d');
if(Id=="#canvas1"){
var rows=6,cols=21;
var unit=width/21;
}else if(Id=="#canvas2"){
var rows=12,cols=32;
var unit=width/32;
}
$(Id).attr("width",unit*cols)
$(Id).attr("height",unit*rows)
$(Id).css("width",unit*cols/dpr);
$(Id).css("height",unit*rows/dpr);
Drawline2(ctb,unit,rows,cols)
if(ludan){
var showRoad=ludan.waybill.showRoad;
var bigRoad=ludan.waybill.bigRoad;
var bigEyeRoad=ludan.waybill.bigEyeRoad;
var pathway=ludan.waybill.pathway;
var roach=ludan.waybill.roach;
if(Id=="#canvas1"){
if(showRoad!=''){
var roadType="showWay"
RoadcutRoad2(roadType,ctb,unit,showRoad,cols,ask,askroad.askshowroad);
}
}else{
if(bigRoad!=''){
if(bigRoad[0].result==3&&bigRoad[0].show_x==1&&bigRoad[0].show_y==1){
var start_x=0;
BigPathTie(ctb,unit*2,start_x,bigRoad[0].tie_num)
}else{
var roadType="bigWay";
RoadcutRoad2(roadType,ctb,unit,bigRoad,cols,ask,askroad.askbigRoad);
}
}
if(bigEyeRoad!=''){
var roadType="bigeyeWay"
RoadcutRoad2(roadType,ctb,unit,bigEyeRoad,cols,ask,askroad.askbigEyeRoad);
};
if(pathway!=''){
var roadType="littlWay"
RoadcutRoad2(roadType,ctb,unit,pathway,cols,ask,askroad.askpathway);
};
if(roach!=''){
var roadType="roachWay";
RoadcutRoad2(roadType,ctb,unit,roach,cols,ask,askroad.askroach);
};
}
}
}
// 前端路单数据截取 一分布
function RoadcutRoad(roadType,ctb,unit,roadData,cols,ask,askroad){
var L=roadData.length;
var new_roadData=[];
var Tab=0;
if(roadType=="showWay"){
if(ask&&askroad){
Tab=7;
}else{
Tab=6;
}
}else if(roadType=="bigeyeWay"){
if(ask&&askroad){
Tab=(cols-7)*4;
}else{
Tab=(cols-7)*4-1;
}
}else{
if(ask&&askroad){
Tab=(cols-7)*2;
}else{
Tab=(cols-7)*2-1;
}
}
var start_x=7.25;
if(L>=1){
var last_x=roadData[L-1].show_x
if(last_x>Tab){
var cut=last_x-Tab
$.each(roadData,function(i,v){
if(v.show_x>cut){
new_roadData.push(v)
}
})
}else{
new_roadData=roadData;
cut=0;
}
}else{
new_roadData=roadData;
cut=0;
}
$.each(new_roadData,function(i,v){
if(roadType=="roachWay"){
start_x=7.25+(cols-7)/2
CockrochPath(ctb,unit,start_x,cols,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="littlWay"){
LittlePath(ctb,unit,start_x,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="bigeyeWay"){
BigeyePath(ctb,unit,start_x,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="showWay"){
SoloPath(ctb,unit,v.show_x-cut,v.show_y,v.result,v.pair)
}else if(roadType=="bigWay"){
BigPath(ctb,unit,start_x,v.show_x-cut,v.show_y,v.result,v.tie_num,v.pair)
}
})
}
// 前端路单数据截取 二分布
function RoadcutRoad2(roadType,ctb,unit,roadData,cols,ask,askroad){
var L=roadData.length;
var new_roadData=[];
var Tab=0;
if(roadType=="bigeyeWay"){
if(ask&&askroad){
Tab=cols*2;
}else{
Tab=cols*2-1;
}
}else{
if(ask&&askroad){
Tab=cols;
}else{
Tab=cols-1;
}
}
var start_x=0.25;
if(L>=1){
var last_x=roadData[L-1].show_x
if(last_x>Tab){
var cut=last_x-Tab
$.each(roadData,function(i,v){
if(v.show_x>cut){
new_roadData.push(v)
}
})
}else{
new_roadData=roadData;
cut=0;
}
}else{
new_roadData=roadData;
cut=0;
}
$.each(new_roadData,function(i,v){
if(roadType=="roachWay"){
start_x=cols/4+0.25
CockrochPath(ctb,unit*2,start_x,cols,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="littlWay"){
LittlePath(ctb,unit*2,start_x,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="bigeyeWay"){
BigeyePath(ctb,unit*2,start_x,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="showWay"){
SoloPath(ctb,unit,v.show_x-cut,v.show_y,v.result,v.pair)
}else if(roadType=="bigWay"){
BigPath(ctb,unit*2,start_x,v.show_x-cut,v.show_y,v.result,v.tie_num,v.pair)
}
})
}
// 画线条 一分布
function Drawline(ctb,unit,rows,cols,width,height){
ctb.lineWidth = 1;//线条宽度
ctb.strokeStyle = "#777";//线条颜色
ctb.beginPath();
ctb.moveTo(0.5, 0);
ctb.lineTo(0.5, height);
for (var i = 1; i <= cols; i++) {
ctb.moveTo(unit*i,0);
ctb.lineTo(unit*i,height);
}
for (var l = 0; l <= rows; l++) {
ctb.moveTo(0,l*unit);
ctb.lineTo(width,l*unit);
}
for (var j = 1; j <= rows*2; j++) {
ctb.moveTo(7*unit,unit/2*j);
ctb.lineTo(width,unit/2*j);
}
for (var k = 1; k <= (cols-7)*2; k++) {
ctb.moveTo(unit*(7+0.5*k),0);
ctb.lineTo(unit*(7+0.5*k),height);
}
ctb.closePath()
ctb.stroke();
}
// 画线条 二分布
function Drawline2(ctb,Unit,row,col){
ctb.lineWidth = 1;//线条宽度
ctb.strokeStyle = "#999";//线条颜色
ctb.beginPath();
ctb.moveTo(0.5, 0);
ctb.lineTo(0.5, Unit*col);
for (var i = 1; i <= col; i++) {
ctb.moveTo(Unit*i,0);
ctb.lineTo(Unit*i,Unit*col);
}
ctb.closePath()
ctb.stroke();
ctb.beginPath();
ctb.moveTo(0, 0.5);
ctb.lineTo(Unit*col, 0.5);
for (var j = 1; j <= row; j++) {
ctb.moveTo(0,Unit*j);
ctb.lineTo(Unit*col,Unit*j);
}
ctb.closePath()
ctb.stroke();
}
// 画线条
function Drawline2(ctb,Unit,row,col){
ctb.lineWidth = 1;//线条宽度
ctb.strokeStyle = "#999";//线条颜色
ctb.beginPath();
ctb.moveTo(0.5, 0);
ctb.lineTo(0.5, Unit*col);
for (var i = 1; i <= col; i++) {
ctb.moveTo(Unit*i,0);
ctb.lineTo(Unit*i,Unit*col);
}
ctb.closePath()
ctb.stroke();
ctb.beginPath();
ctb.moveTo(0, 0.5);
ctb.lineTo(Unit*col, 0.5);
for (var j = 1; j <= row; j++) {
ctb.moveTo(0,Unit*j);
ctb.lineTo(Unit*col,Unit*j);
}
ctb.closePath()
ctb.stroke();
}
// 局数 数文字X坐标文字Y坐标文字大小风格
function Font_tie(ctb,num,Font_x,Font_y,fontsize,color){
if(num!==undefined){
ctb.beginPath();
ctb.font=fontsize;
ctb.textAlign = 'center';
ctb.textBaseline = 'middle';
ctb.fillStyle =color||"#ddd";
ctb.fillText(num,Font_x,Font_y);
ctb.stroke();
}
}
function SoloPath(ctb,unit,x,y,type,corners){
ctb.beginPath();
ctb.lineWidth = 0.5;
ctb.strokeStyle = "#fff";
var radius=unit/2||0;
if(gameId==1){
if(type==1){
var color='#b20a00',
fonts=lang.banker;
}else if(type==2){
var color='#0543bc',
fonts=lang.player;
}else if(type==3){
var color='#1d8701',
fonts=lang.tie;
}
}else if(gameId==2){
if(type==1){
var color='#b20a00',
fonts=lang.dragon;
}else if(type==2){
var color='#0543bc',
fonts=lang.tiger;
}else if(type==3){
var color='#1d8701',
fonts=lang.tie;
}
}
ctb.arc(radius+unit*(x-1), radius+unit*(y-1), unit*0.44, 0, Math.PI * 2);
ctb.fillStyle=color;
ctb.fill();
ctb.font=unit*0.5+"px Arial";
ctb.fillStyle ="#fff" ; // 颜色
ctb.textAlign = 'center';
ctb.textBaseline = 'middle';
ctb.fillText(fonts,radius+unit*(x-1),radius+unit*(y-1));
ctb.stroke();
var corner_xy=unit/3.4
if(corners==1){
corner(ctb,unit,x,y,corner_xy,'#ff2202');
}else if(corners==2){
corner(ctb,unit,x,y,-corner_xy,'#0337ff');
}else if(corners==3){
corner(ctb,unit,x,y,corner_xy,'#ff2202');
corner(ctb,unit,x,y,-corner_xy,'#0337ff');
}
}
//角标
function corner(ctb,unit,x,y,corner_xy,corner_color){
var radius=unit/2
ctb.beginPath();
ctb.lineWidth = 0.04*unit;
ctb.strokeStyle = "#fff";
ctb.arc(radius+unit*(x-1)-corner_xy, radius+unit*(y-1)-corner_xy, unit*0.14, 0, Math.PI * 2);
ctb.fillStyle=corner_color;
ctb.fill();
ctb.stroke();
}
// 大路
function BigPath(ctb,unit,start_x,x,y,type,slash,corners){
ctb.beginPath();
ctb.lineWidth = unit*0.05;
var radius=unit/2
var thisunit=radius/2
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.arc(radius*(x-1)+unit*start_x,radius*(y-0.5), radius*0.4, 0, Math.PI * 2);
ctb.closePath()
ctb.stroke();
if(slash!=0){
ctb.beginPath();
linewidth=unit*0.18;
ctb.lineWidth = thisunit*0.18;//线条宽度
ctb.lineCap = "round";
ctb.strokeStyle = "#3EA542";//线条颜色
ctb.moveTo(radius*(x-1)-linewidth+unit*start_x,radius*(y-0.5)+linewidth);
ctb.lineTo(radius*(x-1)+linewidth+unit*start_x,radius*(y-0.5)-linewidth);
ctb.stroke();
Font_tie(ctb,slash,radius*(x-1)+unit*start_x,radius*(y-0.5),radius*0.55+"px Arial","#000");
}
var corner_xy=radius/3.4
if(corners==1){
corner2(ctb,radius,start_x,x,y,corner_xy,'#ff2202');
}else if(corners==2){
corner2(ctb,radius,start_x,x,y,-corner_xy,'#0337ff');
}else if(corners==3){
corner2(ctb,radius,start_x,x,y,corner_xy,'#ff2202');
corner2(ctb,radius,start_x,x,y,-corner_xy,'#0337ff');
}
}
//大路角标
function corner2(ctb,unit,start_x,x,y,corner_xy,corner_color){
var radius=unit/2
ctb.beginPath();
ctb.lineWidth = 0.04*unit;
ctb.strokeStyle = "#fff";
ctb.arc(unit*start_x*2+unit*(x-1)-corner_xy, radius+unit*(y-1)-corner_xy, unit*0.14, 0, Math.PI * 2);
ctb.fillStyle=corner_color;
ctb.fill();
ctb.stroke();
}
// ctb,unit,cols,bigRoad[0].tie_num
// 大路 第一局 和
function BigPathTie(ctb,unit,start_x,order){
console.log(order)
var thisunit=unit/2
ctb.beginPath();
ctb.lineWidth = thisunit*0.1;//线条宽度
ctb.strokeStyle = "#3EA542";//线条颜色
ctb.lineCap = "round";
ctb.moveTo(thisunit*0.15+unit*start_x,thisunit/2);
ctb.lineTo(thisunit*0.85+unit*start_x,thisunit/2);
ctb.stroke();
Font_tie(ctb,order,thisunit/2+unit*start_x, thisunit/2,thisunit*0.55+"px Arial","#000");
}
// 大眼路
function BigeyePath(ctb,unit,start_x,x,y,type){
ctb.beginPath();
var radius=unit/2,
thisunit=radius/2
ctb.lineWidth = thisunit*0.18;
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.arc(thisunit*(x-1.5)+unit*start_x,thisunit/2+thisunit*(y-1)+unit*3, thisunit*0.35, 0, Math.PI * 2);
ctb.closePath()
ctb.stroke();
}
//小路
function LittlePath(ctb,unit,start_x,x,y,type){
ctb.beginPath();
ctb.lineWidth = 0;
var radius=unit/2,
thisunit=radius/2
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.fillStyle=color;
ctb.arc(thisunit*(x-1.5)+unit*start_x,thisunit/2+thisunit*(y-1)+unit*4.5, thisunit*0.35, 0, Math.PI * 2);
ctb.closePath()
ctb.stroke();
ctb.fill();
}
function CockrochPath(ctb,unit,start_x,cols,x,y,type){
var radius=unit/2,
thisunit=radius/2,
linewidth=radius*0.18;
ctb.beginPath();
ctb.lineCap = "round";
ctb.lineWidth = thisunit*0.25;//线条宽度
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.moveTo(thisunit*(x-1.5)-linewidth+unit*start_x,thisunit/2+thisunit*(y-1)+linewidth+unit*4.5);
ctb.lineTo(thisunit*(x-1.5)+linewidth+unit*start_x,thisunit/2+thisunit*(y-1)-linewidth+unit*4.5);
ctb.stroke();
}
// 问路方法
var askInterval;
function ask(newdata,olddata,type){
var nshowRoad=newdata.waybill.showRoad;
var nbigEyeRoad=newdata.waybill.bigEyeRoad;
var nbigRoad=newdata.waybill.bigRoad;
var npathway=newdata.waybill.pathway;
var nroach=newdata.waybill.roach;
var oshowRoad=olddata.waybill.showRoad;
var obigEyeRoad=olddata.waybill.bigEyeRoad;
var obigRoad=olddata.waybill.bigRoad;
var opathway=olddata.waybill.pathway;
var oroach=olddata.waybill.roach;
if(nshowRoad.length>0){
var n_s_last_x=nshowRoad[nshowRoad.length-1].show_x
}else{
var n_s_last_x=0
}
if(nbigEyeRoad.length>0){
var n_e_last_x=nbigEyeRoad[nbigEyeRoad.length-1].show_x
}else{
var n_e_last_x=0
}
if(nbigRoad.length>0){
var n_b_last_x=nbigRoad[nbigRoad.length-1].show_x
}else{
var n_b_last_x=0
}
if(npathway.length>0){
var n_p_last_x=npathway[npathway.length-1].show_x
}else{
var n_p_last_x=0
}
if(nroach.length>0){
var n_r_last_x=nroach[nroach.length-1].show_x
}else{
var n_r_last_x=0
}
if(oshowRoad.length>0){
var o_s_last_x=oshowRoad[oshowRoad.length-1].show_x
}else{
var o_s_last_x=0
}
if(obigEyeRoad.length>0){
var o_e_last_x=obigEyeRoad[obigEyeRoad.length-1].show_x
}else{
var o_e_last_x=0
}
if(obigRoad.length>0){
var o_b_last_x=obigRoad[obigRoad.length-1].show_x
}else{
var o_b_last_x=0
}
if(opathway.length>0){
var o_p_last_x=opathway[opathway.length-1].show_x
}else{
var o_p_last_x=0
}
if(oroach.length>0){
var o_r_last_x=oroach[oroach.length-1].show_x
}else{
var o_r_last_x=0
}
var askroad={
"askshowroad":false,
"askbigRoad":false,
"askbigEyeRoad":false,
"askpathway":false,
"askroach":false,
};
if(n_s_last_x>o_s_last_x){
askroad.askshowroad=true;
}else{
askroad.askshowroad=false;
}
if(n_e_last_x>o_e_last_x){
askroad.askbigEyeRoad=true;
}else{
askroad.askbigEyeRoad=false;
}
if(n_b_last_x>o_b_last_x){
askroad.askbigRoad=true;
}else{
askroad.askbigRoad=false;
}
if(n_p_last_x>o_p_last_x){
askroad.askpathway=true;
}else{
askroad.askpathway=false;
}
if(n_r_last_x>o_r_last_x){
askroad.askroach=true;
}else{
askroad.askroach=false;
}
var time=8;
askInterval=setInterval(function(){
time--;
var num=time%2;
if(time<0){
clearInterval(askInterval);
}else{
if(type==2){
if(num==1){
requestData2(newdata,true,askroad)
}else{
requestData2(olddata,true)
}
}else{
if(num==1){
requestData(newdata,true,askroad)
}else{
requestData(olddata,true)
}
}
}
},200);
}