707 lines
23 KiB
JavaScript
707 lines
23 KiB
JavaScript
|
||
history.pushState(null, null, document.URL);
|
||
window.addEventListener('popstate', function () {
|
||
console.log(document.URL);
|
||
history.pushState(null, null, document.URL);
|
||
});
|
||
|
||
setInterval(checkUser,5000);
|
||
|
||
var appVue = new Vue(
|
||
{
|
||
el:"#app",
|
||
data(){
|
||
var url = decodeURI(window.location.href);
|
||
var argsIndex = url .split("?id=");
|
||
var arg = argsIndex[1];
|
||
|
||
// 获取当前屏幕的分辨率
|
||
let screenW = window.screen.width;
|
||
let screenH = window.screen.height;
|
||
console.log("screen width:",screenW);
|
||
console.log("screen height:",screenH);
|
||
|
||
return {
|
||
onlineuser:localStorage.getItem("online_user"),
|
||
tableData: [],
|
||
tHeight:screenH*0.7,
|
||
|
||
ctx: '', //画笔工具
|
||
canvasWidth: screenW*0.6, //canvas的宽高
|
||
canvasHeight: screenH*0.7,
|
||
x0: '', // 画布中心点
|
||
y0: '',
|
||
innerR: 70, //内圈半径
|
||
|
||
shortScale:5, //短刻度长度
|
||
middleScale: 10, //中刻度长度
|
||
longScale: 20,//长刻度长度
|
||
|
||
ringWidth: 23,//外圈半径递增长度
|
||
sepAngle: Math.PI / 6, //分割线角度
|
||
|
||
// 度盘显示的数据
|
||
gmList: [],
|
||
curWellName:arg,
|
||
jx:{value:0,time:'00:00:00'},
|
||
fw:{value:0,time:'00:00:00'},
|
||
ratio:0,
|
||
if_show:false,
|
||
|
||
dialogVisible:false,
|
||
radio1:'1',
|
||
radio2:'1',
|
||
}
|
||
},
|
||
mounted() {
|
||
|
||
this.initCanvas();
|
||
|
||
var url = decodeURI(window.location.href);
|
||
var argsIndex = url .split("?id=");
|
||
var arg = argsIndex[1];
|
||
|
||
//数据展示获取数据
|
||
var _this = this;
|
||
axios.post('/deescloud/getWellRealData',
|
||
{
|
||
opuser:localStorage.getItem("online_user"),
|
||
opuser_uuid:localStorage.getItem("uuid"),
|
||
id: arg,
|
||
index: 1,
|
||
count: 20,
|
||
r1:this.$data.radio1,
|
||
r2:this.$data.radio2,
|
||
})
|
||
.then(function (response) {
|
||
console.log(response.data);
|
||
_this.$data.tableData = response.data.data;
|
||
_this.$data.jx = response.data.jx;
|
||
_this.$data.fw = response.data.fw;
|
||
|
||
// 调用绘图方法
|
||
_this.drawFourAngleText('','',_this.$data.jx,_this.$data.fw);
|
||
_this.fill_jxfwColor(_this.$data.jx,_this.$data.fw);
|
||
|
||
_this.$data.if_show=true;
|
||
})
|
||
.catch(function (error) {
|
||
console.log(error);
|
||
});
|
||
},
|
||
methods: {
|
||
get_decode_value(){
|
||
this.$data.dialogVisible =false;
|
||
|
||
var url = decodeURI(window.location.href);
|
||
var argsIndex = url .split("?id=");
|
||
var arg = argsIndex[1];
|
||
|
||
//数据展示获取数据
|
||
var _this = this;
|
||
axios.post('/deescloud/getWellRealData',
|
||
{
|
||
opuser:localStorage.getItem("online_user"),
|
||
opuser_uuid:localStorage.getItem("uuid"),
|
||
id: arg,
|
||
index: 1,
|
||
count: 20,
|
||
r1:this.$data.radio1,
|
||
r2:this.$data.radio2,
|
||
})
|
||
.then(function (response) {
|
||
console.log(response.data);
|
||
_this.$data.tableData = response.data.data;
|
||
_this.$data.jx = response.data.jx;
|
||
_this.$data.fw = response.data.fw;
|
||
|
||
// 调用绘图方法
|
||
_this.drawFourAngleText('','',_this.$data.jx,_this.$data.fw);
|
||
_this.fill_jxfwColor(_this.$data.jx,_this.$data.fw);
|
||
|
||
_this.$data.if_show=true;
|
||
})
|
||
.catch(function (error) {
|
||
console.log(error);
|
||
});
|
||
},
|
||
|
||
show_unit(){
|
||
this.$data.dialogVisible=true;
|
||
},
|
||
|
||
tableRowClassName({row, rowIndex}) {
|
||
if (row.paraname=='井斜') {
|
||
if (row.decodevalue >180 || row.decodevalue<0) {
|
||
return 'warning-row';
|
||
}
|
||
}
|
||
|
||
if (row.paraname=='方位') {
|
||
if (row.decodevalue >360 || row.decodevalue<0) {
|
||
return 'warning-row';
|
||
}
|
||
}
|
||
|
||
if (row.paraname=='重工面' || row.paraname=='磁工面') {
|
||
if (row.decodevalue >360 || row.decodevalue<0) {
|
||
return 'warning-row';
|
||
}
|
||
}
|
||
|
||
if (row.ifWarning==1){
|
||
return 'warning-row';
|
||
}
|
||
|
||
/*
|
||
if (row.decodevalue >31.79) {
|
||
return 'warning-row';
|
||
}
|
||
if (rowIndex === 1) {
|
||
return 'warning-row';
|
||
} else if (rowIndex === 3) {
|
||
return 'success-row';
|
||
}*/
|
||
return '';
|
||
},
|
||
|
||
initCanvas(){
|
||
|
||
//度盘
|
||
// 适配低分辨率屏幕
|
||
// 获取画布
|
||
var c = document.getElementById('mycanvas');
|
||
// 获取绘图工具
|
||
this.ctx = c.getContext('2d');
|
||
this.ctx.imageSmoothingEnabled = true;
|
||
|
||
var dpr = window.devicePixelRatio || 1,
|
||
bsr = this.ctx['webkitBackingStorePixelRatio'] ||
|
||
this.ctx['mozBackingStorePixelRatio'] ||
|
||
this.ctx['msBackingStorePixelRatio'] ||
|
||
this.ctx['oBackingStorePixelRatio'] ||
|
||
this.ctx['backingStorePixelRatio'] || 1;
|
||
this.$data.ratio = dpr / bsr
|
||
|
||
ratio = this.$data.ratio;
|
||
console.log("ratio:",ratio);
|
||
console.log("c.width",c.width);
|
||
console.log("c.height",c.height);
|
||
|
||
c.width = this.canvasWidth * ratio;
|
||
c.height = this.canvasHeight * ratio;
|
||
// canvas的宽度和高度
|
||
c.style.width = this.canvasWidth + "px";
|
||
c.style.height = this.canvasHeight + "px";
|
||
console.log('--canvasW--',this.canvasWidth);
|
||
console.log('--canvasH--',this.canvasHeight);
|
||
|
||
this.ctx.setTransform(ratio, 0, 0, ratio, 0, 0);
|
||
|
||
// 清空canvas
|
||
this.ctx.clearRect(0,0,c.width,c.height);
|
||
|
||
// 画布中心点
|
||
this.$data.x0 = this.canvasWidth/2;//screenW*0.6/2
|
||
this.$data.y0 = this.canvasHeight/2; //250
|
||
console.log("x0",this.$data.x0);
|
||
console.log("y0",this.$data.y0);
|
||
|
||
// 调用绘图方法
|
||
this.drawInnerCircle();
|
||
this.drawCenterText({name:'重工面',value:0,time:'00:00:00'});
|
||
this.drawOurterCircle();
|
||
|
||
this.drawFourAngleTextLabel();
|
||
|
||
},
|
||
// 绘制度盘上4个角上的文字标题
|
||
drawFourAngleTextLabel() {
|
||
|
||
let up_size = 25;
|
||
let l_size = 60;
|
||
let r_size = 100;
|
||
let b_size = 80
|
||
|
||
this.ctx.beginPath();
|
||
this.ctx.font = '16px SimSun,sans-serif,PingFang SC';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.fillText('工作模式',l_size,up_size);
|
||
|
||
/*this.ctx.beginPath();
|
||
this.ctx.font = '16px SimSun,sans-serif,PingFang SC';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.fillText('系统误差',this.canvasWidth-r_size,up_size);
|
||
*/
|
||
this.ctx.beginPath();
|
||
this.ctx.font = '16px SimSun,sans-serif,PingFang SC';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.fillText('井斜',l_size,this.canvasHeight-b_size);
|
||
|
||
this.ctx.beginPath();
|
||
this.ctx.font = '16px SimSun,sans-serif,PingFang SC';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.fillText('方位',this.canvasWidth-r_size,this.canvasHeight-b_size);
|
||
},
|
||
|
||
// 绘制度盘上4个角上的文字
|
||
drawFourAngleText(workMode,systemErr,wellDevi,bearing) {
|
||
|
||
let up_size = 25;
|
||
let l_size = 60;
|
||
let r_size = 100;
|
||
let b_size = 80
|
||
|
||
this.ctx.beginPath();
|
||
//this.ctx.font = '16px SimSun,PingFang SC';
|
||
//this.ctx.fillStyle = '#303133';
|
||
//this.ctx.fillText('工作模式',l_size,up_size);
|
||
this.ctx.font = '18px SimSun,PingFang SC';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.fillText(workMode,l_size,up_size+30);
|
||
|
||
this.ctx.beginPath();
|
||
//this.ctx.font = '16px SimSun,PingFang SC';
|
||
//this.ctx.fillStyle = '#303133';
|
||
//this.ctx.fillText('系统误差',this.canvasWidth-r_size,up_size);
|
||
this.ctx.font = '18px SimSun,PingFang SC';
|
||
this.ctx.fillStyle = '#303133';
|
||
//this.ctx.fillText(systemErr,this.canvasWidth-r_size,up_size+30);
|
||
|
||
this.ctx.beginPath();
|
||
//this.ctx.font = '16px SimSun,PingFang SC';
|
||
//this.ctx.fillStyle = '#303133';
|
||
//this.ctx.fillText('井斜',l_size,this.canvasHeight-b_size);
|
||
this.ctx.font = '18px SimSun,PingFang SC';
|
||
this.ctx.fillStyle = '#F7C709';
|
||
this.ctx.fillText(wellDevi.value,l_size,this.canvasHeight-b_size+30);
|
||
this.ctx.fillText(wellDevi.time,l_size,this.canvasHeight-b_size+60);
|
||
|
||
this.ctx.beginPath();
|
||
//this.ctx.font = '16px SimSun,PingFang SC';
|
||
//this.ctx.fillStyle = '#303133';
|
||
//this.ctx.fillText('方位',this.canvasWidth-r_size,this.canvasHeight-b_size);
|
||
this.ctx.font = '18px SimSun,PingFang SC';
|
||
this.ctx.fillStyle = '#2E64FE';
|
||
|
||
//console.log("bearing:",bearing);
|
||
this.ctx.fillText(bearing.value,this.canvasWidth-r_size,this.canvasHeight-b_size+30);
|
||
this.ctx.fillText(bearing.time,this.canvasWidth-r_size,this.canvasHeight-b_size+60);
|
||
},
|
||
|
||
// 绘制内圈
|
||
drawInnerCircle() {
|
||
this.ctx.beginPath();
|
||
this.ctx.arc(this.x0, this.y0, this.innerR, 0, Math.PI*2);
|
||
this.ctx.strokeStyle = '#303133';
|
||
this.ctx.lineWidth = 1;
|
||
this.ctx.stroke();
|
||
|
||
var angle = Math.PI / 36;
|
||
// 绘制刻度
|
||
for (var i = 0; i < 72; i++) {
|
||
this.ctx.beginPath();
|
||
var nowAngle = angle * i;
|
||
var startX = this.x0 + this.innerR * Math.sin(nowAngle);
|
||
var startY = this.y0 - this.innerR * Math.cos(nowAngle);
|
||
var endX = this.x0 + (this.innerR - this.shortScale) * Math.sin(nowAngle);
|
||
var endY = this.y0 - (this.innerR - this.shortScale) * Math.cos(nowAngle);
|
||
this.ctx.moveTo(startX, startY);
|
||
this.ctx.lineTo(endX, endY);
|
||
this.ctx.stroke();
|
||
|
||
if (nowAngle === 0) {
|
||
// console.log('--0--');
|
||
this.ctx.beginPath();
|
||
this.ctx.textAlign = 'center';
|
||
this.ctx.font = '10px SimSun';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.fillText('0',endX,endY+10);
|
||
}
|
||
else if(nowAngle === Math.PI / 2) {
|
||
this.ctx.beginPath();
|
||
this.ctx.textAlign = 'center';
|
||
this.ctx.textBaseline = 'middle';
|
||
this.ctx.font = '10px SimSun';
|
||
this.ctx.fillText('90',endX-10,endY);
|
||
}
|
||
else if(nowAngle === Math.PI ) {
|
||
this.ctx.beginPath();
|
||
this.ctx.textAlign = 'center';
|
||
this.ctx.font = '10px SimSun';
|
||
this.ctx.fillText('180',endX,endY-7);
|
||
}
|
||
else if(nowAngle === Math.PI * 1.5) {
|
||
this.ctx.beginPath();
|
||
this.ctx.textAlign = 'center';
|
||
this.ctx.textBaseline = 'middle';
|
||
this.ctx.font = '10px SimSun';
|
||
this.ctx.fillText('270',endX+12,endY);
|
||
}
|
||
}
|
||
},
|
||
|
||
//绘制外圈
|
||
drawOurterCircle() {
|
||
|
||
var circleNum = 7; // 绘制的圈数
|
||
for (var i = 1; i <= circleNum; i++) {
|
||
this.ctx.beginPath();
|
||
if (i === 7) {
|
||
this.ctx.arc(this.x0, this.y0, this.innerR + i*this.ringWidth, Math.PI/2, Math.PI*3/2);
|
||
} else{
|
||
this.ctx.arc(this.x0, this.y0, this.innerR + i*this.ringWidth, 0, Math.PI*2);
|
||
}
|
||
this.ctx.lineWidth = 1;
|
||
this.ctx.strokeStyle = '#303133';
|
||
this.ctx.stroke();
|
||
}
|
||
|
||
this.drawSeparatedLine();
|
||
this.drawOurterScale();
|
||
},
|
||
|
||
// 绘制12份 分割线
|
||
drawSeparatedLine() {
|
||
|
||
for (var i = 0; i < 12; i++) {
|
||
this.ctx.beginPath();
|
||
var startX = this.x0 + this.innerR * Math.sin(this.sepAngle * i);
|
||
var startY = this.y0 - this.innerR * Math.cos(this.sepAngle * i);
|
||
var endX = this.x0 + (this.innerR + this.ringWidth * 5) * Math.sin(this.sepAngle * i);
|
||
var endY = this.y0 - (this.innerR + this.ringWidth * 5) * Math.cos(this.sepAngle * i);
|
||
this.ctx.moveTo(startX, startY);
|
||
this.ctx.lineTo(endX, endY);
|
||
this.ctx.setLineDash([3,3]);
|
||
this.ctx.lineWidth = 1;
|
||
this.ctx.stroke();
|
||
}
|
||
},
|
||
|
||
// 绘制外圈刻度
|
||
drawOurterScale() {
|
||
this.ctx.strokeStyle = '#303133';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.lineWidth = 1;
|
||
|
||
var angle = Math.PI / 36;
|
||
var flag = 0;
|
||
// 绘制刻度
|
||
for (var i = 0; i <= 72; i++) {
|
||
this.ctx.beginPath();
|
||
var nowAngle = angle * i;
|
||
var nowRadius = this.innerR + this.ringWidth*6;
|
||
var startX = this.x0 + nowRadius * Math.sin(nowAngle);
|
||
var startY = this.y0 - nowRadius * Math.cos(nowAngle);
|
||
|
||
var str = (i/6) * 30;
|
||
if (str ==360) {
|
||
continue;
|
||
}
|
||
if(i%6 === 0) {
|
||
var endX = this.x0 + (nowRadius + this.longScale) * Math.sin(nowAngle);
|
||
var endY = this.y0 - (nowRadius + this.longScale) * Math.cos(nowAngle);
|
||
this.ctx.beginPath();
|
||
this.ctx.textAlign = 'center';
|
||
this.ctx.textBaseline = 'middle';
|
||
this.ctx.font = '10px SimSun';
|
||
this.ctx.fillText(str+'',this.x0 + (nowRadius-this.ringWidth/2) * Math.sin(nowAngle), this.y0 - (nowRadius-this.ringWidth/2) * Math.cos(nowAngle));
|
||
if (str >= 180) {
|
||
this.ctx.fillText(30*flag,this.x0 + (nowRadius+this.ringWidth*2-this.ringWidth/2) * Math.sin(nowAngle), this.y0 - (nowRadius+this.ringWidth*2-this.ringWidth/2) * Math.cos(nowAngle));
|
||
flag = flag + 1;
|
||
}
|
||
}
|
||
else if(i%2 === 0) {
|
||
var endX = this.x0 + (nowRadius + this.middleScale) * Math.sin(nowAngle);
|
||
var endY = this.y0 - (nowRadius + this.middleScale) * Math.cos(nowAngle);
|
||
}
|
||
else {
|
||
var endX = this.x0 + (nowRadius + this.shortScale) * Math.sin(nowAngle);
|
||
var endY = this.y0 - (nowRadius + this.shortScale) * Math.cos(nowAngle);
|
||
}
|
||
|
||
//中间的刻度 0和360显示位置重合,先清除360再画一个0
|
||
//this.ctx.clearRect(this.x0-16,this.y0 - this.innerR - this.ringWidth * 5.5-8,28,15);
|
||
//this.ctx.fillText('0',this.x0, this.y0 - this.innerR - this.ringWidth * 5.5);
|
||
|
||
this.ctx.moveTo(startX, startY);
|
||
this.ctx.lineTo(endX, endY);
|
||
this.ctx.setLineDash([1,0]);
|
||
this.ctx.stroke();
|
||
}
|
||
},
|
||
|
||
// 绘制外圈刻度0 30 60
|
||
drawOurterScaleText() {
|
||
this.ctx.strokeStyle = '#303133';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.lineWidth = 1;
|
||
|
||
var angle = Math.PI / 36;
|
||
var flag = 0;
|
||
// 绘制刻度
|
||
for (var i = 0; i <= 72; i++) {
|
||
this.ctx.beginPath();
|
||
var nowAngle = angle * i;
|
||
var nowRadius = this.innerR + this.ringWidth*6;
|
||
var startX = this.x0 + nowRadius * Math.sin(nowAngle);
|
||
var startY = this.y0 - nowRadius * Math.cos(nowAngle);
|
||
|
||
var str = (i/6) * 30;
|
||
if (str ==360) {
|
||
continue;
|
||
}
|
||
if(i%6 === 0) {
|
||
var endX = this.x0 + (nowRadius + this.longScale) * Math.sin(nowAngle);
|
||
var endY = this.y0 - (nowRadius + this.longScale) * Math.cos(nowAngle);
|
||
this.ctx.beginPath();
|
||
this.ctx.textAlign = 'center';
|
||
this.ctx.textBaseline = 'middle';
|
||
this.ctx.font = '10px SimSun';
|
||
this.ctx.fillText(str+'',this.x0 + (nowRadius-this.ringWidth/2) * Math.sin(nowAngle), this.y0 - (nowRadius-this.ringWidth/2) * Math.cos(nowAngle));
|
||
if (str >= 180) {
|
||
this.ctx.fillText(30*flag,this.x0 + (nowRadius+this.ringWidth*2-this.ringWidth/2) * Math.sin(nowAngle), this.y0 - (nowRadius+this.ringWidth*2-this.ringWidth/2) * Math.cos(nowAngle));
|
||
flag = flag + 1;
|
||
}
|
||
}
|
||
else if(i%2 === 0) {
|
||
var endX = this.x0 + (nowRadius + this.middleScale) * Math.sin(nowAngle);
|
||
var endY = this.y0 - (nowRadius + this.middleScale) * Math.cos(nowAngle);
|
||
}
|
||
else {
|
||
var endX = this.x0 + (nowRadius + this.shortScale) * Math.sin(nowAngle);
|
||
var endY = this.y0 - (nowRadius + this.shortScale) * Math.cos(nowAngle);
|
||
}
|
||
|
||
//中间的刻度 0和360显示位置重合,先清除360再画一个0
|
||
//this.ctx.clearRect(this.x0-16,this.y0 - this.innerR - this.ringWidth * 5.5-8,28,15);
|
||
//this.ctx.fillText('0',this.x0, this.y0 - this.innerR - this.ringWidth * 5.5);
|
||
|
||
//this.ctx.moveTo(startX, startY);
|
||
//this.ctx.lineTo(endX, endY);
|
||
//this.ctx.setLineDash([1,0]);
|
||
this.ctx.stroke();
|
||
}
|
||
},
|
||
|
||
// 内圈中心文字
|
||
drawCenterText(item) {
|
||
|
||
// 清除中心文字,避免同上个值重复显示
|
||
this.ctx.clearRect(this.x0-0.6*this.innerR,this.y0-0.6*this.innerR,this.innerR*1.2,this.innerR*1.2);
|
||
|
||
this.ctx.beginPath();
|
||
this.ctx.font = '16px SimSun';
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.fillText(item.name,this.x0,this.y0-25);
|
||
this.ctx.fillStyle = 'red';
|
||
this.ctx.textAlign = 'center';
|
||
this.ctx.font = '20px SimSun';
|
||
this.ctx.fillText(item.value,this.x0,this.y0);
|
||
this.ctx.fillStyle = '#303133';
|
||
this.ctx.font = '16px SimSun';
|
||
this.ctx.fillText(item.time,this.x0,this.y0+25);
|
||
},
|
||
|
||
//按数据值填充色块
|
||
fillColor(gmList) {
|
||
let _this = this;
|
||
try{
|
||
for(i=0,len=gmList.length; i< len; i++){
|
||
// 填充颜色
|
||
_this.ctx.beginPath();
|
||
let angle = Math.PI/180*gmList[i].value;
|
||
if (i ==0) {
|
||
_this.ctx.strokeStyle='#FF55FF';
|
||
} else if (i==1){
|
||
_this.ctx.strokeStyle='#00ff00';
|
||
}else if (i==2) {
|
||
_this.ctx.strokeStyle='#00df00';
|
||
}else if (i==3) {
|
||
_this.ctx.strokeStyle='#00cf00';
|
||
}else if (i==4) {
|
||
_this.ctx.strokeStyle='#00bf00';
|
||
}else{
|
||
_this.ctx.strokeStyle='#00a000';
|
||
}
|
||
//_this.ctx.strokeStyle = i>0? '#2AC845' : '#FF55FF';
|
||
_this.ctx.lineWidth = _this.ringWidth-1;
|
||
_this.ctx.arc(_this.x0,_this.y0,_this.innerR + _this.ringWidth*(i+0.5),-Math.PI/2,(angle-Math.PI/2));
|
||
_this.ctx.stroke();
|
||
}
|
||
}
|
||
catch(e) {
|
||
return;
|
||
}
|
||
},
|
||
|
||
fill_jxfwColor(_jx,_fw) {
|
||
let _this = this;
|
||
try{
|
||
if (_fw.value<=360 && _fw.value>0) {
|
||
// 填充方位颜色
|
||
_this.ctx.beginPath();
|
||
var angle = Math.PI/180*_fw.value;
|
||
console.log("fw:",angle);
|
||
_this.ctx.strokeStyle = '#2E64FE';
|
||
_this.ctx.lineWidth = _this.ringWidth-1;
|
||
_this.ctx.arc(_this.x0,_this.y0,_this.innerR + _this.ringWidth*(5+0.5),-Math.PI/2,(angle-Math.PI/2));
|
||
_this.ctx.stroke();
|
||
}
|
||
|
||
if (_jx.value <=180 && _jx.value>0) {
|
||
// 填充井斜颜色
|
||
_this.ctx.beginPath();
|
||
var angle1 = Math.PI/180*_jx.value;
|
||
console.log("jx:",angle1);
|
||
_this.ctx.strokeStyle = '#F7C709';
|
||
//'#00ff00' '#00d000' #00b000 #009000 #0000ff #00cf04
|
||
// '#00ff00' '#00d000' #00a800 #008000 #0000ff #00cf04
|
||
_this.ctx.lineWidth = _this.ringWidth-1;
|
||
_this.ctx.arc(_this.x0,_this.y0,_this.innerR + _this.ringWidth*(6+0.5),Math.PI/2,(angle1+Math.PI/2));
|
||
_this.ctx.stroke();
|
||
}
|
||
|
||
if (angle > 0) {
|
||
//this.drawOurterScale();
|
||
this.drawOurterScaleText();
|
||
}
|
||
}
|
||
catch(e) {
|
||
return;
|
||
}
|
||
},
|
||
|
||
handleCommand(command) {
|
||
if (command === 'exit') {
|
||
loginout();
|
||
}
|
||
},
|
||
},
|
||
}
|
||
);
|
||
|
||
|
||
var wsUrl = '';
|
||
if (true) {
|
||
wsUrl = "ws://119.3.242.17:8880/ws";
|
||
} else{
|
||
wsUrl = "ws://localhost:8880/ws";
|
||
}
|
||
|
||
//var wsUrl = config.testConfig.wsUrl;
|
||
ws = new WebSocket(wsUrl);
|
||
|
||
try {
|
||
|
||
ws.onopen = function () {
|
||
|
||
var url = decodeURI(window.location.href);
|
||
var argsIndex = url .split("?id=");
|
||
var arg = argsIndex[1];
|
||
|
||
var req = {
|
||
id:arg,
|
||
user:localStorage.getItem("online_user")
|
||
}
|
||
var reqJson = JSON.stringify(req);
|
||
|
||
console.log(reqJson);
|
||
|
||
//let sendjson = '{"id":'+'"'+arg+'",'+'"user":"ljs"}'
|
||
ws.send(reqJson);
|
||
}
|
||
|
||
ws.onclose = function () {
|
||
if (ws) {
|
||
ws.close();
|
||
ws = null;
|
||
}
|
||
|
||
console.log("连接服务器-关闭")
|
||
}
|
||
|
||
ws.onmessage = function (result) {
|
||
|
||
//console.log(result.data);
|
||
var data = JSON.parse(result.data);
|
||
console.log("recv server msg:",data);
|
||
if (data.msg == null) {
|
||
return;
|
||
}
|
||
|
||
//var jx = {value:0,time:'00:00:00'};
|
||
//var fw = {value:0,time:'00:00:00'};
|
||
if (data.type == 0) {
|
||
for(i=0,len=data.msg.length;i<len;i++){
|
||
if(data.msg[i].unit =="Mpa" && appVue.$data.radio1=="2"){
|
||
data.msg[i].unit = "psi"
|
||
var f = parseFloat(data.msg[i].decodevalue) *145.038
|
||
data.msg[i].decodevalue = f.toFixed(2).toString()
|
||
} else if (data.msg[i].unit =="℃" && appVue.$data.radio2=="2"){
|
||
data.msg[i].unit = "℉"
|
||
var f = parseFloat(data.msg[i].decodevalue) *1.8 +32
|
||
data.msg[i].decodevalue = f.toFixed(2).toString()
|
||
}
|
||
appVue.$data.tableData.unshift(data.msg[i]);
|
||
|
||
console.log("paraname:",data.msg[i].paraname)
|
||
if (data.msg[i].paraname === '重工面' || data.msg[i].paraname === '磁工面') {
|
||
appVue.$data.gmList.unshift({name:data.msg[i].paraname,value:data.msg[i].decodevalue,time:data.msg[i].time.slice(11)});
|
||
}
|
||
|
||
if(data.msg[i].paraname === '随钻陀螺重工面'){
|
||
data.msg[i].paraname = "重工面"
|
||
appVue.$data.gmList.unshift({name:data.msg[i].paraname,value:data.msg[i].decodevalue,time:data.msg[i].time.slice(11)});
|
||
}
|
||
|
||
if (data.msg[i].paraname === '井斜' || data.msg[i].paraname === '随钻陀螺井斜') {
|
||
appVue.$data.jx = {value:data.msg[i].decodevalue,time:data.msg[i].time.slice(11)};
|
||
}
|
||
if (data.msg[i].paraname === '方位' || data.msg[i].paraname === '随钻陀螺方位') {
|
||
appVue.$data.fw = {value:data.msg[i].decodevalue,time:data.msg[i].time.slice(11)};
|
||
}
|
||
}
|
||
|
||
console.log("tableData:",appVue.$data.tableData)
|
||
if (appVue.$data.tableData.length > 20){
|
||
appVue.$data.tableData.splice(20);
|
||
}
|
||
if (appVue.$data.gmList.length > 5) {
|
||
appVue.$data.gmList.splice(5);
|
||
}
|
||
|
||
//初始化绘制空度盘
|
||
appVue.initCanvas();
|
||
|
||
//jx = {value:90,time:'00:00:00'};;
|
||
//fw = {value:190,time:'00:00:00'};;
|
||
console.log("jx:",appVue.$data.jx);
|
||
console.log("fw:",appVue.$data.fw);
|
||
appVue.drawFourAngleText('#1','87',appVue.$data.jx,appVue.$data.fw);
|
||
|
||
console.log("gmlist:",appVue.$data.gmList);
|
||
appVue.fillColor(appVue.$data.gmList);
|
||
appVue.fill_jxfwColor(appVue.$data.jx,appVue.$data.fw);
|
||
|
||
if (appVue.gmList.length >0) {
|
||
appVue.drawCenterText({name:appVue.gmList[0].name,value:appVue.gmList[0].value,time:appVue.gmList[0].time});
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
ws.onerror = function () {
|
||
if (ws) {
|
||
ws.close();
|
||
ws = null;
|
||
}
|
||
|
||
console.log("连接服务器-关闭")
|
||
}
|
||
|
||
} catch (e) {
|
||
alert(e.message);
|
||
}
|
||
|
||
|