Browse Source

液压表 添加角度属性

master
谕仙 2 years ago
parent
commit
f6c32934dc
  1. 117
      lpro/src/main/webapp/page/visual/index.html
  2. 79
      lpro/src/main/webapp/page/visual/js/cfg.js
  3. 2
      lpro/src/main/webapp/page/visual/js/show.js

117
lpro/src/main/webapp/page/visual/index.html

@ -1,4 +1,5 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<html>
<head>
@ -978,21 +979,36 @@
</div>
<!-- 仪表盘属性 -->
<!-- 仪表盘结束与开始角度 -->
<!-- <div v-show="editType == 5 && cid == 5 ">-->
<!-- <div class="tool-title " style="padding: 10px;">仪表盘形状</div>-->
<!-- <div style="padding-left: 10px;">-->
<!-- <el-slider-->
<!-- v-model="piRect"-->
<!-- range-->
<!-- show-stops-->
<!-- :max="360"-->
<!-- :min="-360"-->
<!-- style="width:75%;"-->
<!-- @change="changePiRect"-->
<!-- >-->
<!-- </el-slider>-->
<!-- </div>-->
<!-- </div>-->
<div v-show="editType == 5 && cid == 6 ">
<div style="padding-left: 10px;">
<span class="tool-title ">预设角度</span>
<select class="el-input__inner" v-model="angleStyle" @change="changeAngleStyle" style="width:75%;">
<option selected="selected" value="style1">预设角度1(360度)</option>
<option value="style2">预设角度2(270度)</option>
<option value="other">自定义</option>
</select>
</div>
<div style="padding-left: 10px;" v-show="angleStyle=='other'">
<el-slider
v-model="piRect"
range
show-stops
:max="360"
:min="-360"
style="width:75%;"
@change="changePiRect"
>
</el-slider>
<div>
<span class="tool-title ">开始角度:</span>
<input class="el-input__inner" :value="piRect[0]" type="number" min=-360 max=360 style="width:75%;" @onblur="changeStartAngle"/>
<br>
<span class="tool-title ">结束角度:</span>
<input class="el-input__inner" :value="piRect[1]" type="number" min=-360 max=360 style="width:75%;" @onblur="changeEndAngle"/>
</div>
</div>
<!-- 仪表盘刻度最大值 -->
<div v-show="editType == 5 && (cid == 5||cid==6) ">
<div class="tool-title " style="padding: 10px;">仪表盘刻度最大值</div>
@ -1000,20 +1016,27 @@
<input class="el-input__inner" v-model="pimax" placeholder="刻度最大值" style="width:75%;" @blur="changePiMax">
</div>
</div>
<!-- 仪表盘刻度分段 -->
<!-- 仪表盘刻度最大值 -->
<div v-show="editType == 5 && (cid == 5||cid==6) ">
<div class="tool-title " style="padding: 10px;">仪表盘刻度分段数</div>
<div class="tool-title " style="padding: 10px;">仪表盘刻度最小值</div>
<div style="padding-left: 10px;">
<input class="el-input__inner" v-model="splitNumber" placeholder="刻度最值" style="width:75%;" @blur="changeSplitNumber">
<input class="el-input__inner" v-model="pimin" placeholder="刻度最值" style="width:75%;" @blur="changePiMin">
</div>
</div>
<!-- 仪表盘刻度单位 -->
<!-- 仪表盘刻度分段 -->
<div v-show="editType == 5 && (cid == 5||cid==6) ">
<div class="tool-title " style="padding: 10px;">刻度单位</div>
<div class="tool-title " style="padding: 10px;">仪表盘刻度分段数</div>
<div style="padding-left: 10px;">
<input class="el-input__inner" v-model="piCompany" placeholder="刻度最大值" style="width:75%;" @blur="changePiCompany">
<input class="el-input__inner" v-model="splitNumber" placeholder="刻度最大值" style="width:75%;" @blur="changeSplitNumber">
</div>
</div>
<!-- 仪表盘刻度单位 -->
<!-- <div v-show="editType == 5 && (cid == 5||cid==6) ">-->
<!-- <div class="tool-title " style="padding: 10px;">刻度单位</div>-->
<!-- <div style="padding-left: 10px;">-->
<!-- <input class="el-input__inner" v-model="piCompany" placeholder="刻度最大值" style="width:75%;" @blur="changePiCompany">-->
<!-- </div>-->
<!-- </div>-->
</div>
<!-- 折线图,柱状图,饼状图切换 -->
@ -1412,9 +1435,11 @@
visual_select_code: '' , // 组态内跳转
isDisableAnimation:false, // 是否禁用动画 @新增属性
shape:"container", // 形状 @新增属性
piRect:[225,-45],// 仪表盘区间
piRect:[90,-270],// 仪表盘区间
splitNumber:10, // 刻度分段数
piCompany:'' //刻度单位
piCompany:'', //刻度单位
pimin:0, //刻度最小值
angleStyle:"style1", // 角度预设样式
};
},
methods:{
@ -1921,7 +1946,7 @@
changeShape(){
const val=this.shape;
// 更新echarts数据
updateChartsOption("shape",val);
updateChartsOptions(new Map([["shape",val]]));
// 将数据写入 元素节点属性
var cl = cfg.current_edit_obj ;
cl.attr("shape" , this.shape ) ;
@ -1964,16 +1989,50 @@
},
// 修改仪表盘开始和结束角度
changePiRect(value){
var obj={startAngle:value[0],endAngle:value[1]};
changeChartOption(obj);
updateChartsOptions(new Map([["startAngle",value[0]],["endAngle",value[1]]]));
var cl = cfg.current_edit_obj ;
cl.attr("pi-rect",JSON.stringify( this.piRect));
},
changeAngleStyle(){
var cl = cfg.current_edit_obj ;
if(this.angleStyle=="style1"){
this.piRect=[-90,270];
this.changePiRect(this.piRect);
}else if(this.angleStyle=="style2"){
this.piRect=[-45,225];
this.changePiRect(this.piRect);
}else{
var rect=cl.attr("pi-rect");
this.piRect=JSON.parse(rect);
}
cl.attr("angle-style",this.angleStyle);
},
changeStartAngle(e){
this.piRect[0]=e.target.value;
this.changePiRect(this.piRect);
},
changeEndAngle(e){
this.piRect[1]=e.target.value;
this.changePiRect(this.piRect);
},
// 修改仪表盘刻度最大值
changePiMax(){
updateChartsOption("max",this.pimax);
updateChartsOptions(new Map([["max",this.pimax]]));
var cl = cfg.current_edit_obj ;
cl.attr("max",this.pimax);
},
// 修改仪表盘刻度最小值
changePiMin (){
updateChartsOptions(new Map([["mix",this.pimin]]));
var cl = cfg.current_edit_obj ;
cl.attr("mix",this.pimax);
},
// 修改仪表盘刻度分段
changeSplitNumber(){
updateChartsOption("splitnumber",this.splitNumber);
updateChartsOptions(new Map(["splitNumber",this.splitNumber]));
var cl = cfg.current_edit_obj ;
cl.attr("splitnumber",this.splitNumber);
},
// 修改仪表盘刻度单位
changePiCompany(){
@ -1991,7 +2050,7 @@
return value + this.piCompany;
}
}
updateChartsOption("axisLabel.formatter",formatter);
updateChartsOptions(new Map([["axisLabel.formatter",formatter]]));
cl.attr("picompany",this.piCompany);
}
},created(){

79
lpro/src/main/webapp/page/visual/js/cfg.js

@ -143,9 +143,9 @@ var cfg = {
break;
case "5"://图表
if(cid==6){
w = "345px";
h = "345px";
if(cid>=4){
w = "260px";
h = "260px";
}else{
w = "400px";
h = "200px";
@ -360,9 +360,15 @@ var cfg = {
}else if(app.cid=="5"||app.cid==6){
app.propertyModuleName=app.cid==5?"仪表盘设置":"压力表设置";
app.pimax = obj.attr("pimax") ;
app.pimin= obj.attr("pimin");
// 增加切换复原属性 边框和形状
app.piCompany = obj.attr("picompany") ;
app.splitNumber = obj.attr('splitnumber');
if(app.cid==6){
app.angleStyle = obj.attr('angle-style');
app.piRect= JSON.parse(obj.attr('pi-rect'));
app.changePiRect(app.piRect);
}
}
break ;
@ -879,6 +885,8 @@ function initSensorDashChart(){
app.pimax = current_edit_obj.attr("pimax",100) ;
current_edit_obj.attr("picompany",'') ;
current_edit_obj.attr('splitnumber',10) ;
current_edit_obj.attr("pimin",0) ;
current_edit_obj.attr('splitnumber',10) ;
}
//初始化压力表
function initSensorPiezometerchart(){
@ -890,19 +898,14 @@ function initSensorPiezometerchart(){
name: 'hour',
type: 'gauge',
radius : "100%",
startAngle: 90,
endAngle: -270,
startAngle: -90,
endAngle: 270,
min: 0,
max: 100,
splitNumber: 10,
clockwise: true,
axisLine: {
lineStyle: {
width: 15,
color: [[1, 'rgba(0,0,0,0.7)']],
shadowColor: 'rgba(0, 0, 0, 0.5)',
shadowBlur: 3
}
show:false
},
splitLine: {
lineStyle: {
@ -914,13 +917,8 @@ function initSensorPiezometerchart(){
},
axisLabel: {
fontSize: 24,
distance: 25,
formatter: function (value) {
if (value === 0) {
return '';
}
return value + '';
}
distance: 12,
formatter: '{value}'
},
pointer: {
show:true,
@ -945,10 +943,35 @@ function initSensorPiezometerchart(){
},
data: [
{
name:"MPa",
value: 0
}
]
},
{
name: 'background',
type: 'gauge',
radius : "100%",
startAngle: 90,
endAngle: -270,
axisLine: {
lineStyle: {
width: 5,
color: [[1, 'rgba(0,0,0,0.7)']],
shadowColor: 'rgba(0, 0, 0, 0.5)',
shadowBlur: 3
}
},
splitLine:{
show:false
},
axisTick:{
show:false
},
axisLabel:{
show:false
}
}
]
} ;
chart.setOption(option,true);
@ -956,6 +979,9 @@ function initSensorPiezometerchart(){
current_edit_obj.attr("pimax",100) ;
current_edit_obj.attr("picompany",'') ;
current_edit_obj.attr('splitnumber',10) ;
current_edit_obj.attr("pimin",0) ;
current_edit_obj.attr("angle-style","style1") ;
current_edit_obj.attr("pi-rect",'[-90,270]');
}
//初始化传感器液位图
function initSensorLiquidChart(){
@ -978,6 +1004,7 @@ function initSensorLiquidChart(){
name:'传感器',
value:bai
}],
radius: '98%',
direction:'right',//波浪方向或者静止
shape:'container',
//color:['rgba(43, 110, 204, 0.7)'],//水球颜色
@ -1061,7 +1088,7 @@ function disableLiquidFillAnimation(nodeId){
}
var optionByNid5cid=new Map();
// 更新Charts属性
function updateChartsOption(propertyName,value,funcname,func){
function updateChartsOptions(modiflyMap){
// 当前地图容器
var current_edit_obj = cfg.current_edit_obj;
// let max=current_edit_obj.attr("max");
@ -1073,8 +1100,14 @@ function updateChartsOption(propertyName,value,funcname,func){
const option=JSON.parse(optionStr);
// 获取地图
var chart = getEchartObj();
if(propertyName){
analysisProp(option,propertyName,value);
if(modiflyMap.size>0){
modiflyMap.forEach(
(value,key,map)=>{
analysisProp(option,key,value);
}
)
}
// 写入属性
@ -1088,6 +1121,10 @@ function analysisProp(option,propName,value){
const pLen=propertys.length;
let data=option.series[0];
let finally_obj=null;
if(propertys.length==1){
data[propName]=value;
return;
}
for (let i=0;i<pLen;i++){
const propertyName=propertys[i];
if(i==pLen-1){

2
lpro/src/main/webapp/page/visual/js/show.js

@ -387,7 +387,7 @@ function refleshSensorList(){
if( isOK(res) ){
app.chartMap[id].setOption({
series: [{
data: [{value:res.data.sdata , name:res.data.name }]
data: [{value:cid==6?"MPa":res.data.sdata , name:res.data.name }]
}]
});
}

Loading…
Cancel
Save