Skip to content

Commit df1f76f

Browse files
committed
cherry-pick(#6868): fix: toggling markers, alarm markers, marker style + update Vue.extend() usage to Vue 3
* fix: update to `defineComponent` from `Vue.extend()` * fix: unwrap Proxy arg before WeakMap.get() * refactor: `defineComponent` not needed here
1 parent f705bf9 commit df1f76f

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

src/plugins/plot/chart/MctChart.vue

+13-16
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ import configStore from '../configuration/ConfigStore';
4242
import PlotConfigurationModel from '../configuration/PlotConfigurationModel';
4343
import LimitLine from './LimitLine.vue';
4444
import LimitLabel from './LimitLabel.vue';
45-
import Vue from 'vue';
45+
import mount from 'utils/mount';
46+
import { toRaw } from 'vue';
4647

4748
const MARKER_SIZE = 6.0;
4849
const HIGHLIGHT_SIZE = MARKER_SIZE * 2.0;
@@ -315,7 +316,7 @@ export default {
315316
return;
316317
}
317318

318-
const elements = this.seriesElements.get(series);
319+
const elements = this.seriesElements.get(toRaw(series));
319320
elements.lines.forEach(function (line) {
320321
this.lines.splice(this.lines.indexOf(line), 1);
321322
line.destroy();
@@ -333,7 +334,7 @@ export default {
333334
return;
334335
}
335336

336-
const elements = this.seriesElements.get(series);
337+
const elements = this.seriesElements.get(toRaw(series));
337338
if (elements.alarmSet) {
338339
elements.alarmSet.destroy();
339340
this.alarmSets.splice(this.alarmSets.indexOf(elements.alarmSet), 1);
@@ -349,7 +350,7 @@ export default {
349350
return;
350351
}
351352

352-
const elements = this.seriesElements.get(series);
353+
const elements = this.seriesElements.get(toRaw(series));
353354
elements.pointSets.forEach(function (pointSet) {
354355
this.pointSets.splice(this.pointSets.indexOf(pointSet), 1);
355356
pointSet.destroy();
@@ -473,7 +474,7 @@ export default {
473474
this.$emit('plotReinitializeCanvas');
474475
},
475476
removeChartElement(series) {
476-
const elements = this.seriesElements.get(series);
477+
const elements = this.seriesElements.get(toRaw(series));
477478

478479
elements.lines.forEach(function (line) {
479480
this.lines.splice(this.lines.indexOf(line), 1);
@@ -576,7 +577,7 @@ export default {
576577
this.seriesLimits.set(series, limitElements);
577578
},
578579
clearLimitLines(series) {
579-
const seriesLimits = this.seriesLimits.get(series);
580+
const seriesLimits = this.seriesLimits.get(toRaw(series));
580581

581582
if (seriesLimits) {
582583
seriesLimits.limitLines.forEach(function (line) {
@@ -747,16 +748,14 @@ export default {
747748
left: 0,
748749
top: this.drawAPI.y(limit.point.y)
749750
};
750-
let LimitLineClass = Vue.extend(LimitLine);
751-
const component = new LimitLineClass({
752-
propsData: {
751+
const { vNode } = mount(LimitLine, {
752+
props: {
753753
point,
754754
limit
755755
}
756756
});
757-
component.$mount();
758757

759-
return component.$el;
758+
return vNode.el;
760759
},
761760
getLimitOverlap(limit, overlapMap) {
762761
//calculate if limit lines are too close to each other
@@ -792,16 +791,14 @@ export default {
792791
left: 0,
793792
top: this.drawAPI.y(limit.point.y)
794793
};
795-
let LimitLabelClass = Vue.extend(LimitLabel);
796-
const component = new LimitLabelClass({
797-
propsData: {
794+
const { vNode } = mount(LimitLabel, {
795+
props: {
798796
limit: Object.assign({}, overlap, limit),
799797
point
800798
}
801799
});
802-
component.$mount();
803800

804-
return component.$el;
801+
return vNode.el;
805802
},
806803
drawAlarmPoints(alarmSet) {
807804
this.drawAPI.drawLimitPoints(

0 commit comments

Comments
 (0)