Commit e5401743 authored by WuFeiyang's avatar WuFeiyang

点击点同步完成

parent dec1484c
...@@ -209,7 +209,7 @@ export default class App extends Vue { ...@@ -209,7 +209,7 @@ export default class App extends Vue {
// fragment = fragment.substring(1,fragment.length); // fragment = fragment.substring(1,fragment.length);
// for (var wid of this.widgetList) { // for (var wid of this.widgetList) {
// ((this.$refs[wid.ref] as Array<Widget>)[0] as Widget).replaceStartPath( fragment as string); // ((this.$refs[wid.ref] as Array<Widget>)[0] as Widget).replaceStartPath( fragment as string);
// } // }
//刷新值 //刷新值
this.importActiveWidgetList(); this.importActiveWidgetList();
// for (var wid of this.widgetList) { // for (var wid of this.widgetList) {
......
...@@ -190,7 +190,29 @@ export default class setBasicParams extends Vue { ...@@ -190,7 +190,29 @@ export default class setBasicParams extends Vue {
} }
findNearest(array:number[],start:number,end:number,num:number):number
{
var midIndex:number = (start + end)/2;
midIndex = Number(midIndex.toFixed(0)) -1;
if(start>=end){return start}
var mid=array[midIndex];
var left=array[(midIndex-1)<start? start:(midIndex-1)];
var right=array[(midIndex+1)>end? end:(midIndex+1)];
var sm=Math.abs(num-mid);
var sl=Math.abs(num-left);
var sr=Math.abs(num-right);
if(sm < sl && sm < sr){
return midIndex;
}
else{
var li= this.findNearest(array,start,midIndex-1, num);
var ri= this.findNearest(array,midIndex+1, end, num);
if(Math.abs(num-array[li]) < Math.abs(num-array[ri])){
return li;
}
return ri;
}
}
async viewLoad(Args: UpdatePayload) { async viewLoad(Args: UpdatePayload) {
this.getConfig.data.position.x1 = ""; this.getConfig.data.position.x1 = "";
this.getConfig.data.position.x2 = ""; this.getConfig.data.position.x2 = "";
...@@ -227,6 +249,8 @@ export default class setBasicParams extends Vue { ...@@ -227,6 +249,8 @@ export default class setBasicParams extends Vue {
y: this.temp.data y: this.temp.data
} }
]; ];
console.log("data_initial:");
console.log(data_initial);
var layout_initial = { var layout_initial = {
xaxis: { xaxis: {
range: [this.config.data.position.x1, this.config.data.position.x2] range: [this.config.data.position.x1, this.config.data.position.x2]
...@@ -235,7 +259,8 @@ export default class setBasicParams extends Vue { ...@@ -235,7 +259,8 @@ export default class setBasicParams extends Vue {
range: [this.config.data.position.y1, this.config.data.position.y2] range: [this.config.data.position.y1, this.config.data.position.y2]
}, },
hovermode:'closest', hovermode:'closest',
clickmode:'event' clickmode:'event',
autosize:true
}; };
console.log(layout_initial); console.log(layout_initial);
this.createChannelChart(myPlot, data_initial, layout_initial); this.createChannelChart(myPlot, data_initial, layout_initial);
...@@ -245,13 +270,16 @@ export default class setBasicParams extends Vue { ...@@ -245,13 +270,16 @@ export default class setBasicParams extends Vue {
PubSub.subscribe('PlotlyClick',(messageName:string, Args:any)=>{ PubSub.subscribe('PlotlyClick',(messageName:string, Args:any)=>{
console.log("subscribe"); console.log("subscribe");
console.log(Args); console.log(Args);
var nearestIndex:number = this.findNearest(data_initial[0].x, 0 , data_initial[0].x.length-1, Args.x)
console.log(nearestIndex);
console.log(data_initial[0].x[nearestIndex]);
var annotate_text = 'x = '+Args.x + var annotate_text = 'x = '+data_initial[0].x[nearestIndex] +
'y = '+Args.y; 'y = '+data_initial[0].y[nearestIndex];
var annotation = { var annotation = {
text: annotate_text, text: annotate_text,
x: Args.x, x: data_initial[0].x[nearestIndex],
y: Args.y y: data_initial[0].y[nearestIndex]
} }
var annotations = []; var annotations = [];
annotations.push(annotation); annotations.push(annotation);
...@@ -312,6 +340,7 @@ export default class setBasicParams extends Vue { ...@@ -312,6 +340,7 @@ export default class setBasicParams extends Vue {
//当前区域的范围 //当前区域的范围
console.log(data.points[0].xaxis.range); console.log(data.points[0].xaxis.range);
console.log(data.points[0].yaxis.range); console.log(data.points[0].yaxis.range);
console.log(data);
var pts = ''; var pts = '';
for(var i=0; i < data.points.length; i++){ for(var i=0; i < data.points.length; i++){
var annotate_text = 'x = '+data.points[i].x + var annotate_text = 'x = '+data.points[i].x +
...@@ -327,9 +356,7 @@ export default class setBasicParams extends Vue { ...@@ -327,9 +356,7 @@ export default class setBasicParams extends Vue {
annotations.push(annotation); annotations.push(annotation);
Plotly.relayout(myPlot,{annotations: annotations}); Plotly.relayout(myPlot,{annotations: annotations});
PubSub.publish('PlotlyClick',{x:data.points[i].x,y:data.points[i].y.toPrecision(4)}); PubSub.publish('PlotlyClick',{x:data.points[i].x,y:data.points[i].y.toPrecision(4)});
PubSub.publish('SynchronizeXY',{xrange:data.points[0].xaxis.range,yrange:data.points[0].yaxis.range});
} }
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment