1102 lines
37 KiB
JavaScript
1102 lines
37 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];
|
|||
|
|
|
|||
|
|
// 获取浏览器窗口宽度
|
|||
|
|
var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|||
|
|
|
|||
|
|
// 获取浏览器窗口高度
|
|||
|
|
var windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
|
|||
|
|
|
|||
|
|
console.log('窗口宽度: ' + windowWidth);
|
|||
|
|
console.log('窗口高度: ' + windowHeight);
|
|||
|
|
|
|||
|
|
// 获取当前屏幕的分辨率
|
|||
|
|
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:windowHeight-100,
|
|||
|
|
tHeight1:screenH*0.3,
|
|||
|
|
|
|||
|
|
ctx: '', //画笔工具
|
|||
|
|
canvasWidth: windowHeight-100, //canvas的宽高screenH*0.7
|
|||
|
|
canvasHeight: windowHeight-100,
|
|||
|
|
x0: '', // 画布中心点
|
|||
|
|
y0: '',
|
|||
|
|
cicle_radius: (this.canvasWidth-10)/12,
|
|||
|
|
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',
|
|||
|
|
|
|||
|
|
timer:undefined,
|
|||
|
|
|
|||
|
|
wellname:'',
|
|||
|
|
X:'',
|
|||
|
|
Y:'',
|
|||
|
|
WellDepth:'',
|
|||
|
|
Drilling_num:'',
|
|||
|
|
Servicer:'',
|
|||
|
|
Work_time:'',
|
|||
|
|
Wait_time:'',
|
|||
|
|
|
|||
|
|
nb_data:[],
|
|||
|
|
timeout_data:[],
|
|||
|
|
ver_data:[],
|
|||
|
|
|
|||
|
|
twidth:windowWidth-(windowHeight-120)-500,
|
|||
|
|
|
|||
|
|
time_warn:0,
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
// this.initDiv();
|
|||
|
|
this.initCanvas_ex();
|
|||
|
|
|
|||
|
|
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.$data.time_warn=response.data.time_warn;
|
|||
|
|
|
|||
|
|
// 调用绘图方法
|
|||
|
|
_this.drawFourAngleText_ex('','',_this.$data.jx,_this.$data.fw);
|
|||
|
|
//_this.fill_jxfwColor(_this.$data.jx,_this.$data.fw);
|
|||
|
|
|
|||
|
|
/*console.log("++++")
|
|||
|
|
var arr = [];
|
|||
|
|
arr.push({name:'重工面',value:'30',time:'2024-04-18 10:00:00'})
|
|||
|
|
arr.push({name:'重工面',value:'60',time:'2024-04-18 10:00:00'})
|
|||
|
|
arr.push({name:'重工面',value:'70',time:'2024-04-18 10:00:00'})
|
|||
|
|
arr.push({name:'重工面',value:'90',time:'2024-04-18 10:00:00'})
|
|||
|
|
arr.push({name:'重工面',value:'105',time:'2024-04-18 10:00:00'})
|
|||
|
|
|
|||
|
|
console.log(arr)
|
|||
|
|
_this.fillColor_ex(arr)*/
|
|||
|
|
|
|||
|
|
_this.$data.if_show=true;
|
|||
|
|
})
|
|||
|
|
.catch(function (error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
axios.post('/deescloud/get_well_cur_data', {
|
|||
|
|
opuser:localStorage.getItem("online_user"),
|
|||
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|||
|
|
Wellname: arg
|
|||
|
|
})
|
|||
|
|
.then(function (response) {
|
|||
|
|
console.log(response.data);
|
|||
|
|
let data = response.data;
|
|||
|
|
|
|||
|
|
_this.$data.wellname =data.wellname;
|
|||
|
|
_this.$data.X = data.x
|
|||
|
|
_this.$data.Y = data.y;
|
|||
|
|
_this.$data.WellDepth = data.cur_well_dep;
|
|||
|
|
|
|||
|
|
_this.$data.Drilling_num=data.Drilling_num;
|
|||
|
|
_this.$data.Servicer = data.Servicer;
|
|||
|
|
_this.$data.Wait_time =data.Wait_time;
|
|||
|
|
_this.$data.Work_time =data.Work_time;
|
|||
|
|
})
|
|||
|
|
.catch(function (error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
axios.post('/deescloud/get_well_nb', {
|
|||
|
|
opuser:localStorage.getItem("online_user"),
|
|||
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|||
|
|
wellname: arg
|
|||
|
|
})
|
|||
|
|
.then(function (response) {
|
|||
|
|
let data = response.data.data;
|
|||
|
|
console.log(data);
|
|||
|
|
_this.$data.nb_data = data;
|
|||
|
|
})
|
|||
|
|
.catch(function (error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
axios.post('/deescloud/get_well_instrument_timeout', {
|
|||
|
|
opuser:localStorage.getItem("online_user"),
|
|||
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|||
|
|
wellname: arg
|
|||
|
|
})
|
|||
|
|
.then(function (response) {
|
|||
|
|
let data = response.data.data;
|
|||
|
|
console.log(data);
|
|||
|
|
_this.$data.timeout_data = data;
|
|||
|
|
})
|
|||
|
|
.catch(function (error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
axios.post('/deescloud/get_well_ver_timeout', {
|
|||
|
|
opuser:localStorage.getItem("online_user"),
|
|||
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|||
|
|
wellname: arg
|
|||
|
|
})
|
|||
|
|
.then(function (response) {
|
|||
|
|
let data = response.data.data;
|
|||
|
|
console.log(data);
|
|||
|
|
_this.$data.ver_data = data;
|
|||
|
|
})
|
|||
|
|
.catch(function (error) {
|
|||
|
|
console.log(error);
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
initDiv () {
|
|||
|
|
const self = this
|
|||
|
|
const setInter = function () {
|
|||
|
|
//console.log("1",self.$refs.contentRef.scrollTop)
|
|||
|
|
//console.log("2",self.$refs.contentRef.scrollHeight - self.$refs.contentRef.clientHeight+0.5)
|
|||
|
|
if (self.$refs.contentRef.scrollTop >= (self.$refs.contentRef.scrollHeight - self.$refs.contentRef.clientHeight)) {
|
|||
|
|
self.$refs.contentRef.scrollTop = 0
|
|||
|
|
} else {
|
|||
|
|
self.$refs.contentRef.scrollTop++
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
self.timer && clearInterval(self.timer)
|
|||
|
|
self.timer = setInterval(setInter, 100)
|
|||
|
|
|
|||
|
|
this.$refs.contentRef.addEventListener('mouseover', function () {
|
|||
|
|
self.timer && clearInterval(self.timer)
|
|||
|
|
})
|
|||
|
|
this.$refs.contentRef.addEventListener('mouseout', function () {
|
|||
|
|
self.timer = setInterval(setInter, 100)
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
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_ex('','',_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;
|
|||
|
|
console.log("c.width",c.width);
|
|||
|
|
console.log("c.height",c.height);
|
|||
|
|
|
|||
|
|
// 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();
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
initCanvas_ex(){
|
|||
|
|
|
|||
|
|
//度盘
|
|||
|
|
// 适配低分辨率屏幕
|
|||
|
|
// 获取画布
|
|||
|
|
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;
|
|||
|
|
console.log("c.width",c.width);
|
|||
|
|
console.log("c.height",c.height);
|
|||
|
|
// 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_ex();
|
|||
|
|
|
|||
|
|
this.drawFourAngleTextLabel_ex();
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 绘制度盘上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);
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
drawFourAngleTextLabel_ex() {
|
|||
|
|
|
|||
|
|
let up_size = 25;
|
|||
|
|
let l_size = 40;
|
|||
|
|
let r_size = 40;
|
|||
|
|
let b_size = 80
|
|||
|
|
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
this.ctx.font = '16px Cambria,SimSun,sans-serif,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
this.ctx.fillText('GTF',l_size,up_size);
|
|||
|
|
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
this.ctx.font = '16px Cambria,SimSun,sans-serif,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
this.ctx.fillText('Tool offset',this.canvasWidth-r_size,up_size);
|
|||
|
|
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
this.ctx.font = '16px Cambria,SimSun,sans-serif,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
this.ctx.fillText('INC',l_size,this.canvasHeight-b_size);
|
|||
|
|
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
this.ctx.font = '16px Cambria,SimSun,sans-serif,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
this.ctx.fillText('AZ',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);
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
drawFourAngleText_ex(workMode,systemErr,wellDevi,bearing) {
|
|||
|
|
|
|||
|
|
let up_size = 25;
|
|||
|
|
let l_size = 40;
|
|||
|
|
let r_size = 40;
|
|||
|
|
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 = '26px Cambria,SimSun,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
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 = '26px Cambria,SimSun,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
//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 = '26px Cambria,SimSun,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
this.ctx.fillText(wellDevi.value,l_size,this.canvasHeight-b_size+30);
|
|||
|
|
this.ctx.font = '16px Cambria,SimSun,PingFang SC';
|
|||
|
|
this.ctx.fillText(wellDevi.time,l_size,this.canvasHeight-b_size+55);
|
|||
|
|
|
|||
|
|
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 = '26px Cambria,SimSun,PingFang SC';
|
|||
|
|
this.ctx.fillStyle = '#E5FF31';
|
|||
|
|
|
|||
|
|
//console.log("bearing:",bearing);
|
|||
|
|
this.ctx.fillText(bearing.value,this.canvasWidth-r_size,this.canvasHeight-b_size+30);
|
|||
|
|
this.ctx.font = '16px Cambria,SimSun,PingFang SC';
|
|||
|
|
this.ctx.fillText(bearing.time,this.canvasWidth-r_size,this.canvasHeight-b_size+55);
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 绘制内圈
|
|||
|
|
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();
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
drawOurterCircle_ex() {
|
|||
|
|
var cicle_radius = (this.canvasWidth-10)/12
|
|||
|
|
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
this.ctx.arc(this.x0, this.y0, cicle_radius/2, 0, Math.PI*2);
|
|||
|
|
this.ctx.lineWidth = 2;
|
|||
|
|
this.ctx.strokeStyle = '#ffffff';
|
|||
|
|
this.ctx.stroke();
|
|||
|
|
|
|||
|
|
var circleNum = 6; // 绘制的圈数
|
|||
|
|
for (var i = 1; i <= circleNum; i++) {
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
this.ctx.arc(this.x0, this.y0, i*cicle_radius, 0, Math.PI*2);
|
|||
|
|
this.ctx.lineWidth = 2;
|
|||
|
|
this.ctx.strokeStyle = '#ffffff';
|
|||
|
|
this.ctx.stroke();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.drawSeparatedLine_ex();
|
|||
|
|
this.drawOurterScale_ex();
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 绘制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();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
drawSeparatedLine_ex() {
|
|||
|
|
console.log("999")
|
|||
|
|
var sep_angle = Math.PI / 12
|
|||
|
|
var cr = (this.canvasWidth-10)/24
|
|||
|
|
console.log("cr",cr)
|
|||
|
|
|
|||
|
|
this.ctx.lineWidth = 1;
|
|||
|
|
this.ctx.strokeStyle = '#C8C8C8';
|
|||
|
|
|
|||
|
|
for (var i = 0; i < 24; i++) {
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
var startX = this.x0 + cr * Math.sin(sep_angle * i);
|
|||
|
|
var startY = this.y0 - cr * Math.cos(sep_angle * i);
|
|||
|
|
var endX = this.x0 + ( cr*2 * 5) * Math.sin(sep_angle * i);
|
|||
|
|
var endY = this.y0 - ( cr*2 * 5) * Math.cos(sep_angle * i);
|
|||
|
|
this.ctx.moveTo(startX, startY);
|
|||
|
|
this.ctx.lineTo(endX, endY);
|
|||
|
|
//this.ctx.setLineDash([3,3]);
|
|||
|
|
this.ctx.lineWidth = 0.5;
|
|||
|
|
this.ctx.stroke();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.ctx.strokeStyle = '#969696';
|
|||
|
|
for (var i = 0; i < 24; i++) {
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
var startX = this.x0 + cr * Math.sin(sep_angle * i+(Math.PI / 24));
|
|||
|
|
var startY = this.y0 - cr * Math.cos(sep_angle * i+(Math.PI / 24));
|
|||
|
|
var endX = this.x0 + ( cr*2 * 6) * Math.sin(sep_angle * i+(Math.PI / 24));
|
|||
|
|
var endY = this.y0 - ( cr*2 * 6) * Math.cos(sep_angle * i+(Math.PI / 24));
|
|||
|
|
this.ctx.moveTo(startX, startY);
|
|||
|
|
this.ctx.lineTo(endX, endY);
|
|||
|
|
//this.ctx.setLineDash([3,3]);
|
|||
|
|
this.ctx.lineWidth = 0.5;
|
|||
|
|
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();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
drawOurterScale_ex() {
|
|||
|
|
this.ctx.strokeStyle = '#ffffff';
|
|||
|
|
this.ctx.fillStyle = '#ffffff';
|
|||
|
|
this.ctx.lineWidth = 1;
|
|||
|
|
|
|||
|
|
var angle = Math.PI / 12;
|
|||
|
|
var flag = 0;
|
|||
|
|
|
|||
|
|
var cicle_radius = (this.canvasWidth-10)/12
|
|||
|
|
// 绘制刻度
|
|||
|
|
for (var i = 0; i <= 23; i++) {
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
var nowAngle = angle * i;
|
|||
|
|
var nowRadius = cicle_radius + cicle_radius*5;
|
|||
|
|
var startX = this.x0 + nowRadius * Math.sin(nowAngle);
|
|||
|
|
var startY = this.y0 - nowRadius * Math.cos(nowAngle);
|
|||
|
|
|
|||
|
|
var str = i * 15;
|
|||
|
|
if (str ==360) {
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.ctx.beginPath();
|
|||
|
|
this.ctx.textAlign = 'center';
|
|||
|
|
this.ctx.textBaseline = 'middle';
|
|||
|
|
this.ctx.font = '12px Cambria,SimSun';
|
|||
|
|
this.ctx.fillText(str+'',this.x0 + (nowRadius-cicle_radius/2) * Math.sin(nowAngle), this.y0 - (nowRadius-cicle_radius/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;
|
|||
|
|
} */
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 绘制外圈刻度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;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
fillColor_ex(gmList) {
|
|||
|
|
let _this = this;
|
|||
|
|
|
|||
|
|
var cicle_radius = (this.canvasWidth-10)/12
|
|||
|
|
|
|||
|
|
try{
|
|||
|
|
var h=(this.canvasWidth-10)/24;
|
|||
|
|
for(i=0,len=gmList.length; i< len; i++){
|
|||
|
|
|
|||
|
|
// 填充颜色
|
|||
|
|
var r=h*1.0*(0.45+(i*0.05));
|
|||
|
|
|
|||
|
|
_this.ctx.beginPath();
|
|||
|
|
|
|||
|
|
//_this.ctx.strokeStyle='#42C217'//'#42C217';
|
|||
|
|
let angle = Math.PI/180*gmList[i].value;
|
|||
|
|
|
|||
|
|
// 设置圆的中心点和半径
|
|||
|
|
var centerX = this.x0 + cicle_radius*(i+1) * Math.sin(angle);
|
|||
|
|
var centerY = this.y0 - cicle_radius*(i+1) * Math.cos(angle);
|
|||
|
|
const radius = 70;
|
|||
|
|
|
|||
|
|
// 开始绘制实心圆
|
|||
|
|
console.log(gmList)
|
|||
|
|
_this.ctx.arc(centerX,centerY, r, 0, 2 * Math.PI, false);
|
|||
|
|
_this.ctx.fillStyle = '#42C217'; // 设置填充颜色
|
|||
|
|
_this.ctx.fill(); // 填充
|
|||
|
|
//_this.ctx.stroke();
|
|||
|
|
console.log("00000")
|
|||
|
|
|
|||
|
|
/*_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 === '重工面') {
|
|||
|
|
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_ex();
|
|||
|
|
|
|||
|
|
//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);
|
|||
|
|
var gtf = "";
|
|||
|
|
if (appVue.$data.gmList.length>0){
|
|||
|
|
gtf = appVue.$data.gmList[0]
|
|||
|
|
appVue.drawFourAngleText_ex(gtf.value,'87',appVue.$data.jx,appVue.$data.fw);
|
|||
|
|
}else{
|
|||
|
|
appVue.drawFourAngleText_ex('','87',appVue.$data.jx,appVue.$data.fw);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
console.log("gmlist:",appVue.$data.gmList);
|
|||
|
|
appVue.fillColor_ex(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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|