kd-curve-v2 0.0.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +1877 -879
- package/dist/esm/index.js.map +1 -1
- package/package.json +47 -47
package/dist/esm/index.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { cloneDeep, debounce
|
|
1
|
+
import { cloneDeep, debounce } from 'lodash-es';
|
|
2
2
|
import * as echarts from 'echarts';
|
|
3
|
-
import { InputNumber, DatePicker, Tabs, TabPane } from 'element-ui';
|
|
3
|
+
import { InputNumber, DatePicker, Tabs, TabPane, Icon } from 'element-ui';
|
|
4
4
|
import draggable from 'vuedraggable';
|
|
5
5
|
import vClickOutside from 'v-click-outside';
|
|
6
6
|
import Vue from 'vue';
|
|
7
7
|
import { addListener, removeListener } from 'resize-detector';
|
|
8
8
|
|
|
9
|
-
function isNumeric(val) {
|
|
10
|
-
return val != null && val !== "" && !Number.isNaN(Number(val));
|
|
11
|
-
}
|
|
12
9
|
function pxToNumber(pxStr) {
|
|
13
10
|
if (!pxStr || typeof pxStr !== "string") return 0;
|
|
14
11
|
return parseFloat(pxStr.replace("px", "")) || 0;
|
|
@@ -281,6 +278,56 @@ const getCssVariable = name => {
|
|
|
281
278
|
return getComputedStyle(document.body).getPropertyValue(name).trim();
|
|
282
279
|
};
|
|
283
280
|
|
|
281
|
+
/**
|
|
282
|
+
* 对数组按depth进行拆分,当遇到不是递增的点时进行拆分
|
|
283
|
+
* @param {Array} arr - 要拆分的数组
|
|
284
|
+
* @param {string} key - 要检查的字段名,默认为'depth'
|
|
285
|
+
* @returns {Array} 拆分后的数组,每个子数组内的元素都保持递增
|
|
286
|
+
*/
|
|
287
|
+
function splitArrayByDepth(arr, key = "depth") {
|
|
288
|
+
if (!arr || !Array.isArray(arr)) {
|
|
289
|
+
return [];
|
|
290
|
+
}
|
|
291
|
+
if (arr.length < 2) {
|
|
292
|
+
return [arr];
|
|
293
|
+
}
|
|
294
|
+
const result = [];
|
|
295
|
+
function processSegment(segment) {
|
|
296
|
+
if (segment.length < 2) {
|
|
297
|
+
if (segment.length === 1) {
|
|
298
|
+
result.push([segment[0]]);
|
|
299
|
+
}
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
const splitIndices = [];
|
|
303
|
+
for (let i = 1; i < segment.length; i++) {
|
|
304
|
+
const prevDepth = Number(segment[i - 1][key]);
|
|
305
|
+
const currDepth = Number(segment[i][key]);
|
|
306
|
+
if (currDepth < prevDepth) {
|
|
307
|
+
splitIndices.push(i);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
if (splitIndices.length === 0) {
|
|
311
|
+
result.push(segment);
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
let startIndex = 0;
|
|
315
|
+
for (const splitIndex of splitIndices) {
|
|
316
|
+
const subSegment = segment.slice(startIndex, splitIndex);
|
|
317
|
+
if (subSegment.length > 0) {
|
|
318
|
+
result.push(subSegment);
|
|
319
|
+
}
|
|
320
|
+
startIndex = splitIndex;
|
|
321
|
+
}
|
|
322
|
+
const lastSegment = segment.slice(startIndex);
|
|
323
|
+
if (lastSegment.length > 0) {
|
|
324
|
+
result.push(lastSegment);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
processSegment(arr);
|
|
328
|
+
return result;
|
|
329
|
+
}
|
|
330
|
+
|
|
284
331
|
/**
|
|
285
332
|
* 计算数组对象中某个数值属性的 最小间隔、最大间隔、最值
|
|
286
333
|
* @param {Array} arr 目标数组
|
|
@@ -295,7 +342,10 @@ const getAttrGap = (arr, key) => {
|
|
|
295
342
|
max: null,
|
|
296
343
|
minGap: null,
|
|
297
344
|
maxGap: null,
|
|
298
|
-
|
|
345
|
+
avgGap: null,
|
|
346
|
+
// 新增:平均间隔(去除离群值后)
|
|
347
|
+
sortedList: arr || [],
|
|
348
|
+
gaps: []
|
|
299
349
|
};
|
|
300
350
|
}
|
|
301
351
|
|
|
@@ -307,7 +357,9 @@ const getAttrGap = (arr, key) => {
|
|
|
307
357
|
max: null,
|
|
308
358
|
minGap: null,
|
|
309
359
|
maxGap: null,
|
|
310
|
-
|
|
360
|
+
avgGap: null,
|
|
361
|
+
sortedList: validList,
|
|
362
|
+
gaps: []
|
|
311
363
|
};
|
|
312
364
|
}
|
|
313
365
|
|
|
@@ -325,24 +377,58 @@ const getAttrGap = (arr, key) => {
|
|
|
325
377
|
gaps.push(gap < 0 ? -gap : gap); // 取绝对值
|
|
326
378
|
}
|
|
327
379
|
|
|
328
|
-
// 6.
|
|
329
|
-
|
|
330
|
-
|
|
380
|
+
// 6. 移除离群值并计算平均间隔
|
|
381
|
+
let filteredGaps = [...gaps];
|
|
382
|
+
let avgGap = null;
|
|
383
|
+
if (filteredGaps.length > 1) {
|
|
384
|
+
// 计算平均值
|
|
385
|
+
const mean = filteredGaps.reduce((sum, gap) => sum + gap, 0) / filteredGaps.length;
|
|
386
|
+
|
|
387
|
+
// 计算标准差
|
|
388
|
+
const variance = filteredGaps.reduce((sum, gap) => sum + Math.pow(gap - mean, 2), 0) / filteredGaps.length;
|
|
389
|
+
const stdDev = Math.sqrt(variance);
|
|
390
|
+
|
|
391
|
+
// 使用3倍标准差作为阈值移除离群值
|
|
392
|
+
const threshold = 3 * stdDev;
|
|
393
|
+
filteredGaps = filteredGaps.filter(gap => Math.abs(gap - mean) <= threshold);
|
|
394
|
+
|
|
395
|
+
// 重新计算过滤后的平均间隔
|
|
396
|
+
if (filteredGaps.length > 0) {
|
|
397
|
+
avgGap = filteredGaps.reduce((sum, gap) => sum + gap, 0) / filteredGaps.length;
|
|
398
|
+
}
|
|
399
|
+
} else if (filteredGaps.length === 1) {
|
|
400
|
+
avgGap = filteredGaps[0];
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
// 7. 最小/最大间隔(使用过滤后的数据)
|
|
404
|
+
const minGap = filteredGaps.length > 0 ? Math.min(...filteredGaps) : null;
|
|
405
|
+
const maxGap = filteredGaps.length > 0 ? Math.max(...filteredGaps) : null;
|
|
331
406
|
return {
|
|
332
407
|
min,
|
|
333
408
|
// 属性最小值
|
|
334
409
|
max,
|
|
335
410
|
// 属性最大值
|
|
336
411
|
minGap,
|
|
337
|
-
//
|
|
412
|
+
// 相邻最小间隔(去除离群值后)
|
|
338
413
|
maxGap,
|
|
339
|
-
//
|
|
414
|
+
// 相邻最大间隔(去除离群值后)
|
|
415
|
+
avgGap,
|
|
416
|
+
// 平均间隔(去除离群值后)
|
|
340
417
|
sortedList,
|
|
341
418
|
// 排序后的属性值
|
|
342
|
-
gaps //
|
|
419
|
+
gaps: filteredGaps // 过滤后的所有间隔
|
|
343
420
|
};
|
|
344
421
|
};
|
|
345
422
|
|
|
423
|
+
// 判断是否为数字
|
|
424
|
+
const isNumeric = value => {
|
|
425
|
+
// 第一步:先转数字
|
|
426
|
+
const num = Number(value);
|
|
427
|
+
|
|
428
|
+
// 第二步:必须是数字 && 不是 NaN && 不是无穷大
|
|
429
|
+
return typeof num === "number" && !isNaN(num) && isFinite(num);
|
|
430
|
+
};
|
|
431
|
+
|
|
346
432
|
//
|
|
347
433
|
const SLIDER_GROUP_ID = "depthSliderGroup";
|
|
348
434
|
|
|
@@ -451,6 +537,10 @@ var script$b = {
|
|
|
451
537
|
type: String,
|
|
452
538
|
default: "gray",
|
|
453
539
|
},
|
|
540
|
+
cachedCurveDatas: {
|
|
541
|
+
type: Object,
|
|
542
|
+
default: () => {},
|
|
543
|
+
},
|
|
454
544
|
},
|
|
455
545
|
|
|
456
546
|
data() {
|
|
@@ -486,11 +576,40 @@ var script$b = {
|
|
|
486
576
|
// 滑块平滑动画相关
|
|
487
577
|
targetSliderIndex: 0,
|
|
488
578
|
sliderAnimationId: null,
|
|
579
|
+
// 缓存的曲线数据
|
|
580
|
+
cachedCurveData: [],
|
|
489
581
|
};
|
|
490
582
|
},
|
|
491
583
|
|
|
492
584
|
computed: {
|
|
493
585
|
currentModeData() {
|
|
586
|
+
// 如果有curveDatas数据,优先使用
|
|
587
|
+
if (this.cachedCurveData && this.cachedCurveData.length > 0) {
|
|
588
|
+
const modeConfig = this.getCurrentModeConfig();
|
|
589
|
+
if (modeConfig && modeConfig.datas && modeConfig.datas.length > 0) {
|
|
590
|
+
// 根据xCode和yCode构建series数据
|
|
591
|
+
return {
|
|
592
|
+
mode: this.mode,
|
|
593
|
+
axisType: modeConfig.axisType,
|
|
594
|
+
datas: modeConfig.datas.map((curveConfig) => {
|
|
595
|
+
const xCode = curveConfig.xCode || "timestamp";
|
|
596
|
+
const yCode = curveConfig.yCode;
|
|
597
|
+
return {
|
|
598
|
+
xName: curveConfig.xName,
|
|
599
|
+
yName: curveConfig.yName,
|
|
600
|
+
xCode: xCode,
|
|
601
|
+
yCode: yCode,
|
|
602
|
+
data: this.cachedCurveData.map((item) => ({
|
|
603
|
+
time: item[xCode] || item.timestamp,
|
|
604
|
+
value: item[yCode] || 0,
|
|
605
|
+
})),
|
|
606
|
+
};
|
|
607
|
+
}),
|
|
608
|
+
};
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
// 降级到原始的depthTimeChartData
|
|
494
613
|
const modeData = this.depthTimeChartData.find((item) => item.mode === this.mode);
|
|
495
614
|
return modeData || { datas: [] };
|
|
496
615
|
},
|
|
@@ -527,6 +646,81 @@ var script$b = {
|
|
|
527
646
|
});
|
|
528
647
|
},
|
|
529
648
|
},
|
|
649
|
+
cachedCurveDatas: {
|
|
650
|
+
deep: true,
|
|
651
|
+
immediate:true,
|
|
652
|
+
async handler(newVal) {
|
|
653
|
+
if (!newVal) return;
|
|
654
|
+
await this.$nextTick();
|
|
655
|
+
|
|
656
|
+
const data = newVal && newVal.data ? (Array.isArray(newVal.data) ? newVal.data : [newVal.data]) : [];
|
|
657
|
+
const direction = newVal.direction || "bottom";
|
|
658
|
+
|
|
659
|
+
if (newVal.type === "replace") {
|
|
660
|
+
// 替换模式:直接替换所有数据
|
|
661
|
+
let processedData = data.map((item) => {
|
|
662
|
+
const modeConfig = this.getCurrentModeConfig();
|
|
663
|
+
if (modeConfig && modeConfig.datas && modeConfig.datas.length > 0) {
|
|
664
|
+
const xCode = modeConfig.datas[0].xCode || "timestamp";
|
|
665
|
+
return {
|
|
666
|
+
...item,
|
|
667
|
+
[xCode]: this.toMillisecondTimestamp(item[xCode] || item.timestamp),
|
|
668
|
+
};
|
|
669
|
+
}
|
|
670
|
+
return {
|
|
671
|
+
...item,
|
|
672
|
+
timestamp: this.toMillisecondTimestamp(item.timestamp),
|
|
673
|
+
};
|
|
674
|
+
});
|
|
675
|
+
|
|
676
|
+
this.cachedCurveData = processedData;
|
|
677
|
+
|
|
678
|
+
// 当获取replace数据时,将页面定位到最后一条数据
|
|
679
|
+
if (this.cachedCurveData.length > 0) {
|
|
680
|
+
this.sliderIndex = this.cachedCurveData.length - 1;
|
|
681
|
+
this.startIndex = Math.max(0, this.cachedCurveData.length - this.windowSize);
|
|
682
|
+
this.targetStartIndex = this.startIndex;
|
|
683
|
+
}
|
|
684
|
+
} else {
|
|
685
|
+
// 添加模式:根据direction插入数据
|
|
686
|
+
let processedData = data.map((item) => {
|
|
687
|
+
const modeConfig = this.getCurrentModeConfig();
|
|
688
|
+
if (modeConfig && modeConfig.datas && modeConfig.datas.length > 0) {
|
|
689
|
+
const xCode = modeConfig.datas[0].xCode || "timestamp";
|
|
690
|
+
return {
|
|
691
|
+
...item,
|
|
692
|
+
[xCode]: this.toMillisecondTimestamp(item[xCode] || item.timestamp),
|
|
693
|
+
};
|
|
694
|
+
}
|
|
695
|
+
return {
|
|
696
|
+
...item,
|
|
697
|
+
timestamp: this.toMillisecondTimestamp(item.timestamp),
|
|
698
|
+
};
|
|
699
|
+
});
|
|
700
|
+
|
|
701
|
+
const modeConfig = this.getCurrentModeConfig();
|
|
702
|
+
const uniqueKey = modeConfig && modeConfig.datas && modeConfig.datas.length > 0
|
|
703
|
+
? (modeConfig.datas[0].xCode || "timestamp")
|
|
704
|
+
: "timestamp";
|
|
705
|
+
|
|
706
|
+
if (direction === "top") {
|
|
707
|
+
const tempData = [...processedData, ...this.cachedCurveData];
|
|
708
|
+
this.cachedCurveData = this.deduplicateByUniqueKey([], tempData, uniqueKey);
|
|
709
|
+
} else {
|
|
710
|
+
this.cachedCurveData = this.deduplicateByUniqueKey(this.cachedCurveData, processedData, uniqueKey);
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
console.log(this.cachedCurveData, 'cachedCurveData');
|
|
714
|
+
// 更新滑块位置
|
|
715
|
+
if (this.cachedCurveData.length > 0 && newVal.type !== "replace") {
|
|
716
|
+
this.sliderIndex = this.cachedCurveData.length - 1;
|
|
717
|
+
this.startIndex = Math.max(0, this.cachedCurveData.length - this.windowSize);
|
|
718
|
+
this.targetStartIndex = this.startIndex;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
this.renderChart();
|
|
722
|
+
},
|
|
723
|
+
},
|
|
530
724
|
depthTimeChartData: {
|
|
531
725
|
deep: true,
|
|
532
726
|
handler() {
|
|
@@ -603,6 +797,33 @@ var script$b = {
|
|
|
603
797
|
}
|
|
604
798
|
},
|
|
605
799
|
methods: {
|
|
800
|
+
// 获取当前mode的配置
|
|
801
|
+
getCurrentModeConfig() {
|
|
802
|
+
if (!this.mode) return null;
|
|
803
|
+
return this.depthTimeChartData.find((item) => item.mode === this.mode);
|
|
804
|
+
},
|
|
805
|
+
|
|
806
|
+
deduplicateByUniqueKey(existingData, newData, uniqueKey) {
|
|
807
|
+
const newDataArr = Array.isArray(newData) ? newData : [newData];
|
|
808
|
+
|
|
809
|
+
let resultData = JSON.parse(JSON.stringify(existingData));
|
|
810
|
+
|
|
811
|
+
const existingKeys = new Set(resultData.map((item) => item[uniqueKey]));
|
|
812
|
+
|
|
813
|
+
newDataArr.forEach((newItem) => {
|
|
814
|
+
if (!newItem || !newItem[uniqueKey]) return;
|
|
815
|
+
|
|
816
|
+
if (!existingKeys.has(newItem[uniqueKey])) {
|
|
817
|
+
resultData.push(newItem);
|
|
818
|
+
existingKeys.add(newItem[uniqueKey]);
|
|
819
|
+
}
|
|
820
|
+
});
|
|
821
|
+
|
|
822
|
+
resultData.sort((a, b) => a[uniqueKey] - b[uniqueKey]);
|
|
823
|
+
|
|
824
|
+
return resultData;
|
|
825
|
+
},
|
|
826
|
+
|
|
606
827
|
handleModeChange() {
|
|
607
828
|
this.resetData();
|
|
608
829
|
this.visibleDataRangeChange({ firstValue: this.topValue, lastValue: this.bottomValue });
|
|
@@ -631,7 +852,7 @@ var script$b = {
|
|
|
631
852
|
// lastValue 大于最大值,停留在底部
|
|
632
853
|
targetIndex = rows.length - 1;
|
|
633
854
|
} else {
|
|
634
|
-
let averageTs = (firstTs+lastTs)/2;
|
|
855
|
+
let averageTs = (firstTs + lastTs) / 2;
|
|
635
856
|
// 在范围内,找最接近的位置
|
|
636
857
|
let minDiff = Infinity;
|
|
637
858
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -657,7 +878,7 @@ var script$b = {
|
|
|
657
878
|
// lastValue 大于最大值,停留在底部
|
|
658
879
|
targetIndex = rows.length - 1;
|
|
659
880
|
} else {
|
|
660
|
-
let averageValue = (firstValue+lastValue)/2;
|
|
881
|
+
let averageValue = (firstValue + lastValue) / 2;
|
|
661
882
|
// 在范围内,找最接近的位置
|
|
662
883
|
let minDiff = Infinity;
|
|
663
884
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -684,8 +905,8 @@ var script$b = {
|
|
|
684
905
|
this.labelPos.line1 = line1;
|
|
685
906
|
this.labelPos.line2 = line2;
|
|
686
907
|
} else {
|
|
687
|
-
let firstIndex = rows.findIndex(item => item.raw.value === data.firstValue);
|
|
688
|
-
let lastIndex = rows.findIndex(item => item.raw.value === data.lastValue);
|
|
908
|
+
let firstIndex = rows.findIndex((item) => item.raw.value === data.firstValue);
|
|
909
|
+
let lastIndex = rows.findIndex((item) => item.raw.value === data.lastValue);
|
|
689
910
|
let firstValue = firstIndex !== -1 ? rows[firstIndex].raw.time : "";
|
|
690
911
|
let lastValue = lastIndex !== -1 ? rows[lastIndex].raw.time : "";
|
|
691
912
|
const dt1 = parseTimeLabel(firstValue);
|
|
@@ -695,7 +916,7 @@ var script$b = {
|
|
|
695
916
|
this.labelPos.line1 = line1;
|
|
696
917
|
this.labelPos.line2 = line2;
|
|
697
918
|
}
|
|
698
|
-
|
|
919
|
+
|
|
699
920
|
// 重新绘制滑块,根据顶部和底部时间调整高度
|
|
700
921
|
this.redrawSliderWithRange(data.firstValue, data.lastValue);
|
|
701
922
|
},
|
|
@@ -1018,16 +1239,34 @@ var script$b = {
|
|
|
1018
1239
|
this.emitSliderPoint();
|
|
1019
1240
|
this.showTooltipBySlider(true);
|
|
1020
1241
|
};
|
|
1242
|
+
this._onZrClick = (e) => {
|
|
1243
|
+
// 点击时移动滑块到点击位置
|
|
1244
|
+
const g = this.findSliderGroup(e.target);
|
|
1245
|
+
if (g) return; // 点击在滑块上,不处理
|
|
1246
|
+
|
|
1247
|
+
const rect = this.getGridRect();
|
|
1248
|
+
const y = e.offsetY;
|
|
1249
|
+
if (y < 0 || y > rect.height) return;
|
|
1250
|
+
|
|
1251
|
+
const idx = this.nearestIndexByPixelY(y);
|
|
1252
|
+
if (idx !== this.sliderIndex) {
|
|
1253
|
+
this.sliderIndex = idx;
|
|
1254
|
+
this.smoothMoveSlider(idx);
|
|
1255
|
+
this.emitSliderChanging();
|
|
1256
|
+
this.refreshOverlayGeometry();
|
|
1257
|
+
this.emitSliderPoint();
|
|
1258
|
+
this.showTooltipBySlider(true);
|
|
1259
|
+
}
|
|
1260
|
+
};
|
|
1021
1261
|
zr.on("drag", this._onZrDrag);
|
|
1022
1262
|
zr.on("dragend", this._onZrDragEnd);
|
|
1263
|
+
zr.on("click", this._onZrClick);
|
|
1023
1264
|
this.zrDragBound = true;
|
|
1024
1265
|
},
|
|
1025
1266
|
emitSliderChanging() {
|
|
1026
|
-
console.log(this.sliderIndex,'this.sliderIndex');
|
|
1027
1267
|
const row = this.resolvedRows[this.sliderIndex];
|
|
1028
1268
|
if (!row) return;
|
|
1029
1269
|
|
|
1030
|
-
// Get values for all series at the current index
|
|
1031
1270
|
const allValues = this.currentModeData.datas.map((series) => {
|
|
1032
1271
|
const seriesData = series.data[this.sliderIndex];
|
|
1033
1272
|
return {
|
|
@@ -1048,6 +1287,7 @@ var script$b = {
|
|
|
1048
1287
|
const zr = this.chart.getZr();
|
|
1049
1288
|
zr.off("drag", this._onZrDrag);
|
|
1050
1289
|
zr.off("dragend", this._onZrDragEnd);
|
|
1290
|
+
zr.off("click", this._onZrClick);
|
|
1051
1291
|
this.zrDragBound = false;
|
|
1052
1292
|
},
|
|
1053
1293
|
|
|
@@ -1131,7 +1371,7 @@ var script$b = {
|
|
|
1131
1371
|
// 时间轴模式
|
|
1132
1372
|
const topTs = toMillisecondTimestamp(this.topValue);
|
|
1133
1373
|
const bottomTs = toMillisecondTimestamp(this.bottomValue);
|
|
1134
|
-
|
|
1374
|
+
|
|
1135
1375
|
// 找最接近的顶部索引
|
|
1136
1376
|
let minTopDiff = Infinity;
|
|
1137
1377
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -1142,7 +1382,7 @@ var script$b = {
|
|
|
1142
1382
|
topIndex = i;
|
|
1143
1383
|
}
|
|
1144
1384
|
}
|
|
1145
|
-
|
|
1385
|
+
|
|
1146
1386
|
// 找最接近的底部索引
|
|
1147
1387
|
let minBottomDiff = Infinity;
|
|
1148
1388
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -1157,7 +1397,7 @@ var script$b = {
|
|
|
1157
1397
|
// 数值轴模式
|
|
1158
1398
|
const topValue = Number(this.topValue);
|
|
1159
1399
|
const bottomValue = Number(this.bottomValue);
|
|
1160
|
-
|
|
1400
|
+
|
|
1161
1401
|
// 找最接近的顶部索引
|
|
1162
1402
|
let minTopDiff = Infinity;
|
|
1163
1403
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -1168,7 +1408,7 @@ var script$b = {
|
|
|
1168
1408
|
topIndex = i;
|
|
1169
1409
|
}
|
|
1170
1410
|
}
|
|
1171
|
-
|
|
1411
|
+
|
|
1172
1412
|
// 找最接近的底部索引
|
|
1173
1413
|
let minBottomDiff = Infinity;
|
|
1174
1414
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -1269,22 +1509,19 @@ var script$b = {
|
|
|
1269
1509
|
{ replaceMerge: ["graphic"] }, // ⭐关键
|
|
1270
1510
|
);
|
|
1271
1511
|
},
|
|
1272
|
-
|
|
1512
|
+
|
|
1273
1513
|
// 快速重新绘制滑块,高度根据 topValue 和 bottomValue 计算
|
|
1274
1514
|
redrawSliderWithRange(topValue, bottomValue) {
|
|
1275
1515
|
if (!this.chart) return;
|
|
1276
|
-
|
|
1516
|
+
|
|
1277
1517
|
// 更新顶部和底部值
|
|
1278
1518
|
this.topValue = topValue;
|
|
1279
1519
|
this.bottomValue = bottomValue;
|
|
1280
|
-
|
|
1520
|
+
|
|
1281
1521
|
// 重新构建并同步滑块图形
|
|
1282
1522
|
const graphic = this.buildSliderGraphic();
|
|
1283
|
-
|
|
1284
|
-
this.chart.setOption(
|
|
1285
|
-
{ graphic },
|
|
1286
|
-
{ replaceMerge: ["graphic"] },
|
|
1287
|
-
);
|
|
1523
|
+
|
|
1524
|
+
this.chart.setOption({ graphic }, { replaceMerge: ["graphic"] });
|
|
1288
1525
|
},
|
|
1289
1526
|
|
|
1290
1527
|
emitSliderPoint() {
|
|
@@ -1292,9 +1529,9 @@ var script$b = {
|
|
|
1292
1529
|
const row = rows[this.sliderIndex];
|
|
1293
1530
|
if (!row) return;
|
|
1294
1531
|
|
|
1295
|
-
|
|
1296
|
-
const allValues =
|
|
1297
|
-
const seriesData = series.data[this.sliderIndex];
|
|
1532
|
+
const datas = this.currentModeData.datas || [];
|
|
1533
|
+
const allValues = datas.map((series) => {
|
|
1534
|
+
const seriesData = series.data && series.data[this.sliderIndex];
|
|
1298
1535
|
return {
|
|
1299
1536
|
name: series.yName,
|
|
1300
1537
|
value: seriesData ? seriesData.value : null,
|
|
@@ -1324,7 +1561,7 @@ var script$b = {
|
|
|
1324
1561
|
const seriesData = this.currentModeData.datas.map((series) => {
|
|
1325
1562
|
return {
|
|
1326
1563
|
name: series.yName,
|
|
1327
|
-
data: series.data.slice(this.startIndex, endIndex).map((item) => [item.value, item.time]),
|
|
1564
|
+
data: (series.data || []).slice(this.startIndex, endIndex).map((item) => [item.value, item.time]),
|
|
1328
1565
|
};
|
|
1329
1566
|
});
|
|
1330
1567
|
|
|
@@ -1564,7 +1801,7 @@ function styleInject(css, ref) {
|
|
|
1564
1801
|
}
|
|
1565
1802
|
}
|
|
1566
1803
|
|
|
1567
|
-
var css_248z$c = "@charset \"UTF-8\";\n.wrap[data-v-
|
|
1804
|
+
var css_248z$c = "@charset \"UTF-8\";\n.wrap[data-v-450f5f1f] {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.header[data-v-450f5f1f] {\n flex-shrink: 0;\n padding: 12px 14px 14px 10px;\n display: flex;\n gap: 10px;\n border-bottom: 1px solid var(--split-line-color);\n}\n.header .radio-group[data-v-450f5f1f] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.chart-wrap[data-v-450f5f1f] {\n flex: 1;\n min-height: 200px;\n position: relative;\n overflow: hidden;\n}\n.chart[data-v-450f5f1f] {\n width: 100%;\n height: 100%;\n}\n.label-float[data-v-450f5f1f] {\n width: calc(100% - 10px) !important;\n position: absolute;\n z-index: 20;\n pointer-events: none;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.label-card[data-v-450f5f1f] {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.label-row[data-v-450f5f1f] {\n min-width: 176px;\n font-size: 12px;\n height: 23px;\n /* 与 JS rowH 保持一致 */\n line-height: 23px;\n color: var(--text-color);\n font-family: \"Microsoft YaHei\", \"PingFang SC\", sans-serif;\n white-space: nowrap;\n}";
|
|
1568
1805
|
styleInject(css_248z$c);
|
|
1569
1806
|
|
|
1570
1807
|
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
|
@@ -1718,7 +1955,7 @@ __vue_render__$b._withStripped = true;
|
|
|
1718
1955
|
/* style */
|
|
1719
1956
|
const __vue_inject_styles__$b = undefined;
|
|
1720
1957
|
/* scoped */
|
|
1721
|
-
const __vue_scope_id__$b = "data-v-
|
|
1958
|
+
const __vue_scope_id__$b = "data-v-450f5f1f";
|
|
1722
1959
|
/* module identifier */
|
|
1723
1960
|
const __vue_module_identifier__$b = undefined;
|
|
1724
1961
|
/* functional template */
|
|
@@ -1762,6 +1999,7 @@ var script$a = {
|
|
|
1762
1999
|
DatePicker,
|
|
1763
2000
|
Tabs,
|
|
1764
2001
|
TabPane,
|
|
2002
|
+
Icon,
|
|
1765
2003
|
},
|
|
1766
2004
|
provide() {
|
|
1767
2005
|
return {
|
|
@@ -1817,13 +2055,32 @@ var script$a = {
|
|
|
1817
2055
|
end: null,
|
|
1818
2056
|
},
|
|
1819
2057
|
depthDialog: {
|
|
1820
|
-
|
|
2058
|
+
start: null, // 起始井深
|
|
2059
|
+
end: null, // 结束井深
|
|
1821
2060
|
},
|
|
1822
2061
|
//数据导出选择的tab
|
|
1823
2062
|
exportName: "time",
|
|
2063
|
+
// 新增:井段查询输入框
|
|
2064
|
+
wellSectionQuery: null,
|
|
1824
2065
|
};
|
|
1825
2066
|
},
|
|
1826
2067
|
methods: {
|
|
2068
|
+
// 新增:井段查询
|
|
2069
|
+
searchWellSection() {
|
|
2070
|
+
console.log(this.wellSectionQuery, "wellSectionQuery");
|
|
2071
|
+
if (this.wellSectionQuery == null || !isNumeric(this.wellSectionQuery)) {
|
|
2072
|
+
this.$message.error("请输入有效的数字");
|
|
2073
|
+
return;
|
|
2074
|
+
} else {
|
|
2075
|
+
if (this.wellSectionQuery < 0) {
|
|
2076
|
+
this.$message.error("输入的井段不能小于0m");
|
|
2077
|
+
return;
|
|
2078
|
+
}
|
|
2079
|
+
this.$message.success("查询成功");
|
|
2080
|
+
this.$emit("searchWellSection", this.wellSectionQuery);
|
|
2081
|
+
this.wellSectionQuery = null;
|
|
2082
|
+
}
|
|
2083
|
+
},
|
|
1827
2084
|
// 新增:刷新数据,重置为初始化时的数据
|
|
1828
2085
|
refresh() {
|
|
1829
2086
|
Object.keys(this.initialFormCache).forEach((key) => {
|
|
@@ -1832,7 +2089,8 @@ var script$a = {
|
|
|
1832
2089
|
console.log(this.form, this.initialFormCache);
|
|
1833
2090
|
this.$emit("refresh");
|
|
1834
2091
|
},
|
|
1835
|
-
handleToolBarDataChange(
|
|
2092
|
+
handleToolBarDataChange(content) {
|
|
2093
|
+
let data = cloneDeep(content);
|
|
1836
2094
|
if (this.form.axisType === "depth") {
|
|
1837
2095
|
let depth = Number((data.lastValue - data.firstValue).toFixed(2));
|
|
1838
2096
|
let depthList = [500, 1000, 2000, 3000, 4000, 5000, 10000];
|
|
@@ -1984,7 +2242,8 @@ var script$a = {
|
|
|
1984
2242
|
});
|
|
1985
2243
|
},
|
|
1986
2244
|
resetDepthDialog() {
|
|
1987
|
-
this.depthDialog.
|
|
2245
|
+
this.depthDialog.start = null;
|
|
2246
|
+
this.depthDialog.end = null;
|
|
1988
2247
|
this.$nextTick(() => {
|
|
1989
2248
|
if (this.$refs.DepthFormRef) {
|
|
1990
2249
|
this.$refs.DepthFormRef.clearValidate();
|
|
@@ -2056,6 +2315,14 @@ var script$a = {
|
|
|
2056
2315
|
callback();
|
|
2057
2316
|
}
|
|
2058
2317
|
},
|
|
2318
|
+
// 验证井深段弹窗中的起始井深值大于等于0
|
|
2319
|
+
validateStartDepth(rule, value, callback) {
|
|
2320
|
+
if (value < 0) {
|
|
2321
|
+
callback(new Error("起始井深值不能小于0"));
|
|
2322
|
+
} else {
|
|
2323
|
+
callback();
|
|
2324
|
+
}
|
|
2325
|
+
},
|
|
2059
2326
|
// 验证导出弹窗中的起始井深值大于等于0
|
|
2060
2327
|
validateExportStartDepth(rule, value, callback) {
|
|
2061
2328
|
if (value < 0) {
|
|
@@ -2074,8 +2341,21 @@ var script$a = {
|
|
|
2074
2341
|
},
|
|
2075
2342
|
// 验证终止井深大于起始井深
|
|
2076
2343
|
validateEndDepth(rule, value, callback) {
|
|
2077
|
-
|
|
2078
|
-
|
|
2344
|
+
// 检查是井深段弹窗还是导出弹窗
|
|
2345
|
+
if (this.depthDialog.start !== null && this.depthDialog.end !== null) {
|
|
2346
|
+
// 井深段弹窗
|
|
2347
|
+
if (value <= this.depthDialog.start) {
|
|
2348
|
+
callback(new Error("结束井深必须大于起始井深"));
|
|
2349
|
+
} else {
|
|
2350
|
+
callback();
|
|
2351
|
+
}
|
|
2352
|
+
} else if (this.exportDepthDialog.start !== null && this.exportDepthDialog.end !== null) {
|
|
2353
|
+
// 导出弹窗
|
|
2354
|
+
if (value <= this.exportDepthDialog.start) {
|
|
2355
|
+
callback(new Error("终止井深必须大于起始井深"));
|
|
2356
|
+
} else {
|
|
2357
|
+
callback();
|
|
2358
|
+
}
|
|
2079
2359
|
} else {
|
|
2080
2360
|
callback();
|
|
2081
2361
|
}
|
|
@@ -2085,12 +2365,17 @@ var script$a = {
|
|
|
2085
2365
|
if (this.$refs.DepthFormRef) {
|
|
2086
2366
|
this.$refs.DepthFormRef.validate((valid) => {
|
|
2087
2367
|
if (valid) {
|
|
2088
|
-
const
|
|
2089
|
-
|
|
2368
|
+
const start = Number(this.depthDialog.start);
|
|
2369
|
+
const end = Number(this.depthDialog.end);
|
|
2370
|
+
if (isNaN(start) || isNaN(end)) {
|
|
2090
2371
|
this.$message && this.$message.warning ? this.$message.warning("请填写有效的井深值") : alert("请填写有效的井深值");
|
|
2091
2372
|
return;
|
|
2092
2373
|
}
|
|
2093
|
-
|
|
2374
|
+
if (end <= start) {
|
|
2375
|
+
this.$message && this.$message.warning ? this.$message.warning("结束井深必须大于起始井深") : alert("结束井深必须大于起始井深");
|
|
2376
|
+
return;
|
|
2377
|
+
}
|
|
2378
|
+
const emitData = { type: 1, start, end };
|
|
2094
2379
|
this.depthDialogVisible = false;
|
|
2095
2380
|
// 在对话框关闭后再发射事件,避免潜在的冲突
|
|
2096
2381
|
this.$nextTick(() => {
|
|
@@ -2099,12 +2384,10 @@ var script$a = {
|
|
|
2099
2384
|
}
|
|
2100
2385
|
});
|
|
2101
2386
|
} else {
|
|
2102
|
-
//
|
|
2387
|
+
// 兼容旧版本,当表单不存在时的处理
|
|
2103
2388
|
const v = Number(this.depthDialog.value);
|
|
2104
|
-
if (isNaN(v)
|
|
2105
|
-
this.$message && this.$message.warning
|
|
2106
|
-
? this.$message.warning(v <= 0 ? "井深值必须大于0" : "请填写有效的井深值")
|
|
2107
|
-
: alert(v <= 0 ? "井深值必须大于0" : "请填写有效的井深值");
|
|
2389
|
+
if (isNaN(v)) {
|
|
2390
|
+
this.$message && this.$message.warning ? this.$message.warning("请填写有效的井深值") : alert("请填写有效的井深值");
|
|
2108
2391
|
return;
|
|
2109
2392
|
}
|
|
2110
2393
|
const emitData = { type: 1, value: v };
|
|
@@ -2154,6 +2437,18 @@ var script$a = {
|
|
|
2154
2437
|
return "深度轴类型不支持设置时间范围";
|
|
2155
2438
|
}
|
|
2156
2439
|
return "";
|
|
2440
|
+
} else if (type == "wellSectionQuery") {
|
|
2441
|
+
// if (this.form.axisType === "depth" && this.form.dataType === "real") {
|
|
2442
|
+
// return "深度轴类型+实时数据不支持设置时间范围";
|
|
2443
|
+
// } else if (this.form.axisType === "depth") {
|
|
2444
|
+
// return "深度轴类型不支持设置时间范围";
|
|
2445
|
+
// } else if (this.form.dataType === "real") {
|
|
2446
|
+
// return "实时数据不支持设置时间范围";
|
|
2447
|
+
// }
|
|
2448
|
+
if (this.form.axisType === "depth") {
|
|
2449
|
+
return "深度轴类型不支持井段查询";
|
|
2450
|
+
}
|
|
2451
|
+
return "";
|
|
2157
2452
|
} else if (type == "depthRange") {
|
|
2158
2453
|
// if (this.form.axisType === "time" && this.form.dataType === "real") {
|
|
2159
2454
|
// return "时间轴类型+实时数据不支持设置井深范围";
|
|
@@ -2175,7 +2470,7 @@ var script$a = {
|
|
|
2175
2470
|
},
|
|
2176
2471
|
};
|
|
2177
2472
|
|
|
2178
|
-
var css_248z$b = "@charset \"UTF-8\";\n.function-control-panel[data-v-
|
|
2473
|
+
var css_248z$b = "@charset \"UTF-8\";\n.function-control-panel[data-v-d5ece4de] {\n width: 100%;\n height: 100%;\n color: var(--text-color);\n font-size: 14px;\n overflow-x: hidden;\n overflow-y: auto;\n /* 隐藏滚动条 */\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n.function-control-panel[data-v-d5ece4de]::-webkit-scrollbar {\n display: none;\n}\n.function-control-panel .radio-group[data-v-d5ece4de] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding-bottom: 8px;\n}\n.function-control-panel .elTooltipArea[data-v-d5ece4de] {\n width: 100%;\n display: flex;\n align-items: center;\n}\n.function-control-panel .elTooltipArea .searchArea[data-v-d5ece4de] {\n width: 28px;\n height: 32px;\n margin-bottom: 8px;\n background: var(--slider-gradient-color);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n.function-control-panel .elTooltipArea .searchArea .searchArea-icon[data-v-d5ece4de] {\n font-size: 14px;\n color: var(--slider-content-color);\n}\n.el-select-disabled[data-v-d5ece4de] {\n opacity: 0.5;\n cursor: not-allowed !important;\n}\n\n/* 分割线 */\n.divider[data-v-d5ece4de] {\n height: 1px;\n background: var(--border-color);\n margin-bottom: 8px;\n}\n\n/* label */\n.label[data-v-d5ece4de] {\n color: #aaa;\n margin-bottom: 2px;\n}\n\n/* 操作按钮 */\n.actions[data-v-d5ece4de] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.btn[data-v-d5ece4de] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n text-align: center;\n font-family: Microsoft YaHei UI, Microsoft YaHei UI;\n font-weight: 400;\n cursor: pointer;\n}\n.btn .icon[data-v-d5ece4de] {\n width: 54px;\n height: 54px;\n}\n.btn.disabled[data-v-d5ece4de] {\n color: #666;\n cursor: not-allowed;\n}\n.btn.disabled .icon[data-v-d5ece4de] {\n opacity: 0.5;\n}\n.fontColor[data-v-d5ece4de] {\n color: var(--default-text-color);\n}";
|
|
2179
2474
|
styleInject(css_248z$b);
|
|
2180
2475
|
|
|
2181
2476
|
/* script */
|
|
@@ -2347,39 +2642,45 @@ var __vue_render__$a = function () {
|
|
|
2347
2642
|
},
|
|
2348
2643
|
[
|
|
2349
2644
|
_c(
|
|
2350
|
-
"
|
|
2351
|
-
{
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2645
|
+
"div",
|
|
2646
|
+
{ staticClass: "elTooltipArea" },
|
|
2647
|
+
[
|
|
2648
|
+
_c(
|
|
2649
|
+
"el-select",
|
|
2650
|
+
{
|
|
2651
|
+
class: {
|
|
2652
|
+
"el-select-disabled": _vm.form.axisType !== "depth",
|
|
2653
|
+
},
|
|
2654
|
+
staticStyle: { "margin-bottom": "8px", width: "100%" },
|
|
2655
|
+
attrs: {
|
|
2656
|
+
"popper-class": "kd-curve-2d-select-popup",
|
|
2657
|
+
disabled: _vm.form.axisType !== "depth",
|
|
2658
|
+
},
|
|
2659
|
+
on: {
|
|
2660
|
+
change: function ($event) {
|
|
2661
|
+
return _vm.changeForm($event, "scale")
|
|
2662
|
+
},
|
|
2663
|
+
},
|
|
2664
|
+
model: {
|
|
2665
|
+
value: _vm.form.scale,
|
|
2666
|
+
callback: function ($$v) {
|
|
2667
|
+
_vm.$set(_vm.form, "scale", $$v);
|
|
2668
|
+
},
|
|
2669
|
+
expression: "form.scale",
|
|
2670
|
+
},
|
|
2369
2671
|
},
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2672
|
+
_vm._l(_vm.toolBarConfig.scaleList, function (item) {
|
|
2673
|
+
return _c("el-option", {
|
|
2674
|
+
key: item.value,
|
|
2675
|
+
attrs: { label: item.label, value: item.value },
|
|
2676
|
+
})
|
|
2677
|
+
}),
|
|
2678
|
+
1
|
|
2679
|
+
),
|
|
2680
|
+
],
|
|
2379
2681
|
1
|
|
2380
2682
|
),
|
|
2381
|
-
]
|
|
2382
|
-
1
|
|
2683
|
+
]
|
|
2383
2684
|
)
|
|
2384
2685
|
: _vm._e(),
|
|
2385
2686
|
_vm._v(" "),
|
|
@@ -2400,37 +2701,45 @@ var __vue_render__$a = function () {
|
|
|
2400
2701
|
},
|
|
2401
2702
|
[
|
|
2402
2703
|
_c(
|
|
2403
|
-
"
|
|
2404
|
-
{
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2704
|
+
"div",
|
|
2705
|
+
{ staticClass: "elTooltipArea" },
|
|
2706
|
+
[
|
|
2707
|
+
_c(
|
|
2708
|
+
"el-select",
|
|
2709
|
+
{
|
|
2710
|
+
class: {
|
|
2711
|
+
"el-select-disabled": _vm.form.axisType == "depth",
|
|
2712
|
+
},
|
|
2713
|
+
staticStyle: { "margin-bottom": "8px", width: "100%" },
|
|
2714
|
+
attrs: {
|
|
2715
|
+
"popper-class": "kd-curve-2d-select-popup",
|
|
2716
|
+
disabled: _vm.form.axisType == "depth",
|
|
2717
|
+
},
|
|
2718
|
+
on: {
|
|
2719
|
+
change: function ($event) {
|
|
2720
|
+
return _vm.changeForm($event, "timeRange")
|
|
2721
|
+
},
|
|
2722
|
+
},
|
|
2723
|
+
model: {
|
|
2724
|
+
value: _vm.form.timeRange,
|
|
2725
|
+
callback: function ($$v) {
|
|
2726
|
+
_vm.$set(_vm.form, "timeRange", $$v);
|
|
2727
|
+
},
|
|
2728
|
+
expression: "form.timeRange",
|
|
2729
|
+
},
|
|
2420
2730
|
},
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2731
|
+
_vm._l(_vm.toolBarConfig.timeRangeList, function (item) {
|
|
2732
|
+
return _c("el-option", {
|
|
2733
|
+
key: item.value,
|
|
2734
|
+
attrs: { label: item.label, value: item.value },
|
|
2735
|
+
})
|
|
2736
|
+
}),
|
|
2737
|
+
1
|
|
2738
|
+
),
|
|
2739
|
+
],
|
|
2430
2740
|
1
|
|
2431
2741
|
),
|
|
2432
|
-
]
|
|
2433
|
-
1
|
|
2742
|
+
]
|
|
2434
2743
|
)
|
|
2435
2744
|
: _vm._e(),
|
|
2436
2745
|
_vm._v(" "),
|
|
@@ -2451,48 +2760,116 @@ var __vue_render__$a = function () {
|
|
|
2451
2760
|
},
|
|
2452
2761
|
[
|
|
2453
2762
|
_c(
|
|
2454
|
-
"
|
|
2455
|
-
{
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2763
|
+
"div",
|
|
2764
|
+
{ staticClass: "elTooltipArea" },
|
|
2765
|
+
[
|
|
2766
|
+
_c(
|
|
2767
|
+
"el-select",
|
|
2768
|
+
{
|
|
2769
|
+
class: {
|
|
2770
|
+
"el-select-disabled": _vm.form.axisType == "time",
|
|
2771
|
+
},
|
|
2772
|
+
staticStyle: { "margin-bottom": "8px", width: "100%" },
|
|
2773
|
+
attrs: {
|
|
2774
|
+
"popper-class": "kd-curve-2d-select-popup",
|
|
2775
|
+
disabled: _vm.form.axisType == "time",
|
|
2776
|
+
},
|
|
2777
|
+
on: {
|
|
2778
|
+
change: function ($event) {
|
|
2779
|
+
return _vm.changeForm($event, "depthRange")
|
|
2780
|
+
},
|
|
2781
|
+
},
|
|
2782
|
+
model: {
|
|
2783
|
+
value: _vm.form.depthRange,
|
|
2784
|
+
callback: function ($$v) {
|
|
2785
|
+
_vm.$set(_vm.form, "depthRange", $$v);
|
|
2786
|
+
},
|
|
2787
|
+
expression: "form.depthRange",
|
|
2788
|
+
},
|
|
2471
2789
|
},
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2790
|
+
_vm._l(_vm.toolBarConfig.depthRangeList, function (item) {
|
|
2791
|
+
return _c("el-option", {
|
|
2792
|
+
key: item.value,
|
|
2793
|
+
attrs: { label: item.label, value: item.value },
|
|
2794
|
+
})
|
|
2795
|
+
}),
|
|
2796
|
+
1
|
|
2797
|
+
),
|
|
2798
|
+
],
|
|
2481
2799
|
1
|
|
2482
2800
|
),
|
|
2483
|
-
]
|
|
2484
|
-
1
|
|
2801
|
+
]
|
|
2485
2802
|
)
|
|
2486
2803
|
: _vm._e(),
|
|
2487
2804
|
_vm._v(" "),
|
|
2488
|
-
|
|
2489
|
-
"div",
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2805
|
+
_vm.toolBarConfig.wellSectionQueryShow !== false
|
|
2806
|
+
? _c("div", { staticClass: "label" }, [_vm._v("井段查询(m):")])
|
|
2807
|
+
: _vm._e(),
|
|
2808
|
+
_vm._v(" "),
|
|
2809
|
+
_vm.toolBarConfig.wellSectionQueryShow !== false
|
|
2810
|
+
? _c(
|
|
2811
|
+
"el-tooltip",
|
|
2812
|
+
{
|
|
2813
|
+
staticStyle: { position: "relative" },
|
|
2814
|
+
attrs: {
|
|
2815
|
+
disabled: !(_vm.form.axisType == "depth"),
|
|
2816
|
+
content: _vm.getDisableTip("wellSectionQuery"),
|
|
2817
|
+
placement: "right",
|
|
2818
|
+
effect: "dark",
|
|
2819
|
+
},
|
|
2820
|
+
},
|
|
2821
|
+
[
|
|
2822
|
+
_c(
|
|
2823
|
+
"div",
|
|
2824
|
+
{ staticClass: "elTooltipArea" },
|
|
2825
|
+
[
|
|
2826
|
+
_c("el-input", {
|
|
2827
|
+
staticStyle: { "margin-bottom": "8px", flex: "1" },
|
|
2828
|
+
attrs: { disabled: _vm.form.axisType == "depth" },
|
|
2829
|
+
model: {
|
|
2830
|
+
value: _vm.wellSectionQuery,
|
|
2831
|
+
callback: function ($$v) {
|
|
2832
|
+
_vm.wellSectionQuery = $$v;
|
|
2833
|
+
},
|
|
2834
|
+
expression: "wellSectionQuery",
|
|
2835
|
+
},
|
|
2836
|
+
}),
|
|
2837
|
+
_vm._v(" "),
|
|
2838
|
+
_c(
|
|
2839
|
+
"div",
|
|
2840
|
+
{
|
|
2841
|
+
staticClass: "searchArea",
|
|
2842
|
+
class: {
|
|
2843
|
+
"el-select-disabled": _vm.form.axisType == "depth",
|
|
2844
|
+
},
|
|
2845
|
+
on: {
|
|
2846
|
+
click: function ($event) {
|
|
2847
|
+
return _vm.searchWellSection()
|
|
2848
|
+
},
|
|
2849
|
+
},
|
|
2850
|
+
},
|
|
2851
|
+
[
|
|
2852
|
+
_c("Icon", {
|
|
2853
|
+
staticClass: "el-icon-search searchArea-icon",
|
|
2854
|
+
}),
|
|
2855
|
+
],
|
|
2856
|
+
1
|
|
2857
|
+
),
|
|
2858
|
+
],
|
|
2859
|
+
1
|
|
2860
|
+
),
|
|
2861
|
+
]
|
|
2862
|
+
)
|
|
2863
|
+
: _vm._e(),
|
|
2864
|
+
_vm._v(" "),
|
|
2865
|
+
_c(
|
|
2866
|
+
"div",
|
|
2867
|
+
{ staticClass: "actions" },
|
|
2868
|
+
[
|
|
2869
|
+
_vm.toolBarConfig.timeRangeBtnShow !== false
|
|
2870
|
+
? _c(
|
|
2871
|
+
"el-tooltip",
|
|
2872
|
+
{
|
|
2496
2873
|
attrs: {
|
|
2497
2874
|
placement: "right",
|
|
2498
2875
|
effect: "dark",
|
|
@@ -2777,7 +3154,7 @@ var __vue_render__$a = function () {
|
|
|
2777
3154
|
"el-dialog",
|
|
2778
3155
|
{
|
|
2779
3156
|
attrs: {
|
|
2780
|
-
title: "
|
|
3157
|
+
title: "设置井深段",
|
|
2781
3158
|
visible: _vm.depthDialogVisible,
|
|
2782
3159
|
width: "420px",
|
|
2783
3160
|
},
|
|
@@ -2805,11 +3182,11 @@ var __vue_render__$a = function () {
|
|
|
2805
3182
|
"el-form-item",
|
|
2806
3183
|
{
|
|
2807
3184
|
attrs: {
|
|
2808
|
-
prop: "
|
|
3185
|
+
prop: "start",
|
|
2809
3186
|
rules: [
|
|
2810
3187
|
{
|
|
2811
3188
|
required: true,
|
|
2812
|
-
message: "
|
|
3189
|
+
message: "请输入起始井深",
|
|
2813
3190
|
trigger: "blur",
|
|
2814
3191
|
},
|
|
2815
3192
|
{
|
|
@@ -2817,7 +3194,7 @@ var __vue_render__$a = function () {
|
|
|
2817
3194
|
message: "请输入有效的数字",
|
|
2818
3195
|
trigger: "blur",
|
|
2819
3196
|
},
|
|
2820
|
-
{ validator: _vm.
|
|
3197
|
+
{ validator: _vm.validateStartDepth, trigger: "blur" },
|
|
2821
3198
|
],
|
|
2822
3199
|
},
|
|
2823
3200
|
},
|
|
@@ -2838,13 +3215,90 @@ var __vue_render__$a = function () {
|
|
|
2838
3215
|
{
|
|
2839
3216
|
staticClass: "fontColor",
|
|
2840
3217
|
staticStyle: {
|
|
2841
|
-
width: "
|
|
3218
|
+
width: "80px",
|
|
3219
|
+
display: "flex",
|
|
3220
|
+
"align-items": "center",
|
|
3221
|
+
height: "100%",
|
|
3222
|
+
},
|
|
3223
|
+
},
|
|
3224
|
+
[_vm._v("起始井深:")]
|
|
3225
|
+
),
|
|
3226
|
+
_vm._v(" "),
|
|
3227
|
+
_c(
|
|
3228
|
+
"div",
|
|
3229
|
+
{
|
|
3230
|
+
staticClass: "input-number-container",
|
|
3231
|
+
staticStyle: {
|
|
3232
|
+
flex: "1",
|
|
3233
|
+
height: "100%",
|
|
3234
|
+
display: "flex",
|
|
3235
|
+
"align-items": "center",
|
|
3236
|
+
},
|
|
3237
|
+
},
|
|
3238
|
+
[
|
|
3239
|
+
_c("InputNumber", {
|
|
3240
|
+
staticStyle: { width: "100%", height: "100%" },
|
|
3241
|
+
attrs: { min: 0, step: 1 },
|
|
3242
|
+
model: {
|
|
3243
|
+
value: _vm.depthDialog.start,
|
|
3244
|
+
callback: function ($$v) {
|
|
3245
|
+
_vm.$set(_vm.depthDialog, "start", $$v);
|
|
3246
|
+
},
|
|
3247
|
+
expression: "depthDialog.start",
|
|
3248
|
+
},
|
|
3249
|
+
}),
|
|
3250
|
+
],
|
|
3251
|
+
1
|
|
3252
|
+
),
|
|
3253
|
+
]
|
|
3254
|
+
),
|
|
3255
|
+
]
|
|
3256
|
+
),
|
|
3257
|
+
_vm._v(" "),
|
|
3258
|
+
_c(
|
|
3259
|
+
"el-form-item",
|
|
3260
|
+
{
|
|
3261
|
+
attrs: {
|
|
3262
|
+
prop: "end",
|
|
3263
|
+
rules: [
|
|
3264
|
+
{
|
|
3265
|
+
required: true,
|
|
3266
|
+
message: "请输入结束井深",
|
|
3267
|
+
trigger: "blur",
|
|
3268
|
+
},
|
|
3269
|
+
{
|
|
3270
|
+
type: "number",
|
|
3271
|
+
message: "请输入有效的数字",
|
|
3272
|
+
trigger: "blur",
|
|
3273
|
+
},
|
|
3274
|
+
{ validator: _vm.validateEndDepth, trigger: "blur" },
|
|
3275
|
+
],
|
|
3276
|
+
},
|
|
3277
|
+
},
|
|
3278
|
+
[
|
|
3279
|
+
_c(
|
|
3280
|
+
"div",
|
|
3281
|
+
{
|
|
3282
|
+
staticStyle: {
|
|
3283
|
+
display: "flex",
|
|
3284
|
+
"align-items": "center",
|
|
3285
|
+
gap: "12px",
|
|
3286
|
+
height: "32px",
|
|
3287
|
+
},
|
|
3288
|
+
},
|
|
3289
|
+
[
|
|
3290
|
+
_c(
|
|
3291
|
+
"div",
|
|
3292
|
+
{
|
|
3293
|
+
staticClass: "fontColor",
|
|
3294
|
+
staticStyle: {
|
|
3295
|
+
width: "80px",
|
|
2842
3296
|
display: "flex",
|
|
2843
3297
|
"align-items": "center",
|
|
2844
3298
|
height: "100%",
|
|
2845
3299
|
},
|
|
2846
3300
|
},
|
|
2847
|
-
[_vm._v("
|
|
3301
|
+
[_vm._v("结束井深:")]
|
|
2848
3302
|
),
|
|
2849
3303
|
_vm._v(" "),
|
|
2850
3304
|
_c(
|
|
@@ -2863,11 +3317,11 @@ var __vue_render__$a = function () {
|
|
|
2863
3317
|
staticStyle: { width: "100%", height: "100%" },
|
|
2864
3318
|
attrs: { min: 0, step: 1 },
|
|
2865
3319
|
model: {
|
|
2866
|
-
value: _vm.depthDialog.
|
|
3320
|
+
value: _vm.depthDialog.end,
|
|
2867
3321
|
callback: function ($$v) {
|
|
2868
|
-
_vm.$set(_vm.depthDialog, "
|
|
3322
|
+
_vm.$set(_vm.depthDialog, "end", $$v);
|
|
2869
3323
|
},
|
|
2870
|
-
expression: "depthDialog.
|
|
3324
|
+
expression: "depthDialog.end",
|
|
2871
3325
|
},
|
|
2872
3326
|
}),
|
|
2873
3327
|
],
|
|
@@ -3275,7 +3729,7 @@ __vue_render__$a._withStripped = true;
|
|
|
3275
3729
|
/* style */
|
|
3276
3730
|
const __vue_inject_styles__$a = undefined;
|
|
3277
3731
|
/* scoped */
|
|
3278
|
-
const __vue_scope_id__$a = "data-v-
|
|
3732
|
+
const __vue_scope_id__$a = "data-v-d5ece4de";
|
|
3279
3733
|
/* module identifier */
|
|
3280
3734
|
const __vue_module_identifier__$a = undefined;
|
|
3281
3735
|
/* functional template */
|
|
@@ -3491,7 +3945,9 @@ var script$8 = {
|
|
|
3491
3945
|
},
|
|
3492
3946
|
watch: {
|
|
3493
3947
|
group(group) {
|
|
3494
|
-
this.chart
|
|
3948
|
+
if (this.chart) {
|
|
3949
|
+
this.chart.group = group;
|
|
3950
|
+
}
|
|
3495
3951
|
},
|
|
3496
3952
|
},
|
|
3497
3953
|
methods: {
|
|
@@ -3745,7 +4201,7 @@ var script$8 = {
|
|
|
3745
4201
|
},
|
|
3746
4202
|
};
|
|
3747
4203
|
|
|
3748
|
-
var css_248z$9 = ".echarts[data-v-
|
|
4204
|
+
var css_248z$9 = ".echarts[data-v-53fe628e] {\n width: 100%;\n height: 100%;\n position: relative;\n}";
|
|
3749
4205
|
styleInject(css_248z$9);
|
|
3750
4206
|
|
|
3751
4207
|
/* script */
|
|
@@ -3763,7 +4219,7 @@ __vue_render__$8._withStripped = true;
|
|
|
3763
4219
|
/* style */
|
|
3764
4220
|
const __vue_inject_styles__$8 = undefined;
|
|
3765
4221
|
/* scoped */
|
|
3766
|
-
const __vue_scope_id__$8 = "data-v-
|
|
4222
|
+
const __vue_scope_id__$8 = "data-v-53fe628e";
|
|
3767
4223
|
/* module identifier */
|
|
3768
4224
|
const __vue_module_identifier__$8 = undefined;
|
|
3769
4225
|
/* functional template */
|
|
@@ -5052,7 +5508,7 @@ var script$7 = {
|
|
|
5052
5508
|
},
|
|
5053
5509
|
};
|
|
5054
5510
|
|
|
5055
|
-
var css_248z$8 = ".kd-lane-lane-content[data-v-
|
|
5511
|
+
var css_248z$8 = ".kd-lane-lane-content[data-v-33f93a60] {\n display: flex;\n flex-direction: column;\n align-content: center;\n}\n.kd-lane-lane-content .template-buttons[data-v-33f93a60] {\n text-align: center;\n}\n.kd-lane-lane-content .el-form-item__content[data-v-33f93a60] {\n align-items: center;\n display: flex;\n}";
|
|
5056
5512
|
styleInject(css_248z$8);
|
|
5057
5513
|
|
|
5058
5514
|
/* script */
|
|
@@ -5105,7 +5561,7 @@ var __vue_render__$7 = function () {
|
|
|
5105
5561
|
{
|
|
5106
5562
|
staticStyle: {
|
|
5107
5563
|
"margin-left": "40px",
|
|
5108
|
-
height: "
|
|
5564
|
+
height: "32px",
|
|
5109
5565
|
display: "flex",
|
|
5110
5566
|
"align-items": "center",
|
|
5111
5567
|
"line-height": "40px",
|
|
@@ -5169,7 +5625,7 @@ __vue_render__$7._withStripped = true;
|
|
|
5169
5625
|
/* style */
|
|
5170
5626
|
const __vue_inject_styles__$7 = undefined;
|
|
5171
5627
|
/* scoped */
|
|
5172
|
-
const __vue_scope_id__$7 = "data-v-
|
|
5628
|
+
const __vue_scope_id__$7 = "data-v-33f93a60";
|
|
5173
5629
|
/* module identifier */
|
|
5174
5630
|
const __vue_module_identifier__$7 = undefined;
|
|
5175
5631
|
/* functional template */
|
|
@@ -6107,6 +6563,7 @@ var script$4 = {
|
|
|
6107
6563
|
},
|
|
6108
6564
|
setTargetData(targetData) {
|
|
6109
6565
|
this.targetData = targetData;
|
|
6566
|
+
console.log(targetData,'333333333');
|
|
6110
6567
|
this.setExpanded();
|
|
6111
6568
|
const dataType = judgeRawDataType(targetData);
|
|
6112
6569
|
switch (dataType) {
|
|
@@ -6341,6 +6798,7 @@ var script$4 = {
|
|
|
6341
6798
|
// 数据补全id label等信息
|
|
6342
6799
|
const treeData = [];
|
|
6343
6800
|
this.inputTempates.forEach((template) => {
|
|
6801
|
+
console.log(template,'template');
|
|
6344
6802
|
const tData = { ...template, id: template.templateId, label: template.templateName };
|
|
6345
6803
|
tData.children = [];
|
|
6346
6804
|
if (!template.lanes) {
|
|
@@ -6386,7 +6844,7 @@ var script$4 = {
|
|
|
6386
6844
|
beforeDestroy() {},
|
|
6387
6845
|
};
|
|
6388
6846
|
|
|
6389
|
-
var css_248z$5 = ".kd-lane-el-container[data-v-
|
|
6847
|
+
var css_248z$5 = ".kd-lane-el-container[data-v-24c206f8] {\n height: 60vh;\n border: 1px solid var(--kd-lane-container-border-color, #333);\n width: 100%;\n}\n@media screen and (max-width: 1024px) {\n.kd-lane-el-container[data-v-24c206f8] {\n height: 70vh;\n}\n}\n.kd-lane-el-container .custom-tree-node[data-v-24c206f8] {\n width: 100%;\n}\n.kd-lane-el-container .rtd-config-side[data-v-24c206f8] {\n border-right: 1px solid var(--kd-lane-container-border-color, #333);\n}\n.kd-lane-el-container .rtd-config-side-tree[data-v-24c206f8] {\n height: 90%;\n overflow: auto;\n}\n.kd-lane-el-container .rtd-config-side-option[data-v-24c206f8] {\n text-align: center;\n}\n.kd-lane-el-container .rtd-config-main[data-v-24c206f8] {\n display: flex;\n align-content: center;\n justify-content: center;\n width: 100%;\n}";
|
|
6390
6848
|
styleInject(css_248z$5);
|
|
6391
6849
|
|
|
6392
6850
|
/* script */
|
|
@@ -6578,7 +7036,7 @@ __vue_render__$4._withStripped = true;
|
|
|
6578
7036
|
/* style */
|
|
6579
7037
|
const __vue_inject_styles__$4 = undefined;
|
|
6580
7038
|
/* scoped */
|
|
6581
|
-
const __vue_scope_id__$4 = "data-v-
|
|
7039
|
+
const __vue_scope_id__$4 = "data-v-24c206f8";
|
|
6582
7040
|
/* module identifier */
|
|
6583
7041
|
const __vue_module_identifier__$4 = undefined;
|
|
6584
7042
|
/* functional template */
|
|
@@ -6609,38 +7067,30 @@ const ACTION_TYPE = {
|
|
|
6609
7067
|
DELETE_LINE: "delLine"
|
|
6610
7068
|
};
|
|
6611
7069
|
|
|
6612
|
-
//
|
|
6613
|
-
//
|
|
6614
|
-
//
|
|
6615
|
-
//
|
|
6616
|
-
//
|
|
6617
|
-
//
|
|
6618
|
-
//
|
|
6619
|
-
//
|
|
6620
|
-
//
|
|
6621
|
-
//
|
|
6622
|
-
//
|
|
6623
|
-
//
|
|
6624
|
-
//
|
|
6625
|
-
//
|
|
6626
|
-
//
|
|
6627
|
-
//
|
|
6628
|
-
//
|
|
6629
7070
|
//
|
|
6630
7071
|
|
|
6631
7072
|
var script$3 = {
|
|
7073
|
+
name: "HeaderItem",
|
|
6632
7074
|
props: {
|
|
6633
|
-
|
|
6634
|
-
type:
|
|
6635
|
-
default:
|
|
7075
|
+
lineRange: {
|
|
7076
|
+
type: Object,
|
|
7077
|
+
default: () => ({}),
|
|
7078
|
+
},
|
|
7079
|
+
currentHeaderStyle: {
|
|
7080
|
+
type: Object,
|
|
7081
|
+
default: () => ({
|
|
7082
|
+
headerPadding: 4,
|
|
7083
|
+
headerItemHeight: 42,
|
|
7084
|
+
itemGap: 4,
|
|
7085
|
+
}),
|
|
6636
7086
|
},
|
|
6637
7087
|
line: {
|
|
6638
7088
|
type: Object,
|
|
6639
|
-
default: () => {},
|
|
7089
|
+
default: () => ({}),
|
|
6640
7090
|
},
|
|
6641
7091
|
paramsNameMap: {
|
|
6642
7092
|
type: Object,
|
|
6643
|
-
default: () => {},
|
|
7093
|
+
default: () => ({}),
|
|
6644
7094
|
required: true,
|
|
6645
7095
|
},
|
|
6646
7096
|
themeName: {
|
|
@@ -6653,14 +7103,28 @@ var script$3 = {
|
|
|
6653
7103
|
},
|
|
6654
7104
|
formCache: {
|
|
6655
7105
|
type: Object,
|
|
6656
|
-
default: () => {},
|
|
7106
|
+
default: () => ({}),
|
|
6657
7107
|
},
|
|
6658
7108
|
headerData: {
|
|
6659
7109
|
type: Object,
|
|
6660
|
-
default: () => {},
|
|
7110
|
+
default: () => ({}),
|
|
6661
7111
|
},
|
|
6662
7112
|
},
|
|
6663
7113
|
methods: {
|
|
7114
|
+
// 获取字体大小类名
|
|
7115
|
+
getFontSize(type) {
|
|
7116
|
+
if (type == "label" && Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, `headerLabelFontSize`)) {
|
|
7117
|
+
return {
|
|
7118
|
+
fontSize: `${isNumeric(this.currentHeaderStyle[`headerLabelFontSize`]) ? this.currentHeaderStyle[`headerLabelFontSize`] + `px` : this.currentHeaderStyle[`headerLabelFontSize`]}`,
|
|
7119
|
+
};
|
|
7120
|
+
}
|
|
7121
|
+
|
|
7122
|
+
if (type == "data" && Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, `headerDataFontSize`)) {
|
|
7123
|
+
return {
|
|
7124
|
+
fontSize: `${isNumeric(this.currentHeaderStyle[`headerDataFontSize`]) ? this.currentHeaderStyle[`headerDataFontSize`] + `px` : this.currentHeaderStyle[`headerDataFontSize`]}`,
|
|
7125
|
+
};
|
|
7126
|
+
}
|
|
7127
|
+
},
|
|
6664
7128
|
// 是否显示警告背景
|
|
6665
7129
|
isShowWarning() {
|
|
6666
7130
|
// 超找对应数组中的最大值
|
|
@@ -6671,13 +7135,19 @@ var script$3 = {
|
|
|
6671
7135
|
},
|
|
6672
7136
|
// 显示当前数据最新值
|
|
6673
7137
|
getCurrentData() {
|
|
6674
|
-
if(this.formCache.displayType ==
|
|
7138
|
+
if (this.formCache.displayType == "float") {
|
|
6675
7139
|
return "";
|
|
6676
7140
|
}
|
|
6677
7141
|
if (!Object.prototype.hasOwnProperty.call(this.headerData, this.line.paramId)) {
|
|
6678
|
-
return
|
|
7142
|
+
return "--";
|
|
6679
7143
|
}
|
|
6680
|
-
return this.headerData[this.line.paramId] !== null &&
|
|
7144
|
+
return this.headerData[this.line.paramId] !== null &&
|
|
7145
|
+
this.headerData[this.line.paramId] !== undefined &&
|
|
7146
|
+
this.headerData[this.line.paramId] !== ""
|
|
7147
|
+
? typeof +this.headerData[this.line.paramId] === "number"
|
|
7148
|
+
? Number(Number(this.headerData[this.line.paramId]).toFixed(2))
|
|
7149
|
+
: this.headerData[this.line.paramId]
|
|
7150
|
+
: "--";
|
|
6681
7151
|
},
|
|
6682
7152
|
getParamName(line) {
|
|
6683
7153
|
const nameConfig = this.paramsNameMap[line.paramId];
|
|
@@ -6737,17 +7207,16 @@ var script$3 = {
|
|
|
6737
7207
|
lineType = { "border-bottom": `2px ${this.line.lineType} ${lineColor || this.line.lineColor}` };
|
|
6738
7208
|
}
|
|
6739
7209
|
return {
|
|
6740
|
-
height: `${
|
|
7210
|
+
height: `${this.formCache.displayType == "header" ? this.currentHeaderStyle.headerItemHeight : this.currentHeaderStyle.headerItemHeight * 0.8}px`,
|
|
6741
7211
|
opacity: this.line.isUsed == "1" ? 1 : 0.5,
|
|
6742
7212
|
...lineType,
|
|
6743
7213
|
};
|
|
6744
7214
|
},
|
|
6745
7215
|
},
|
|
6746
|
-
watch: {
|
|
6747
|
-
},
|
|
7216
|
+
watch: {},
|
|
6748
7217
|
};
|
|
6749
7218
|
|
|
6750
|
-
var css_248z$4 = "@charset \"UTF-8\";\n.kd-lane-chart-container-header-item[data-v-
|
|
7219
|
+
var css_248z$4 = "@charset \"UTF-8\";\n.kd-lane-chart-container-header-item[data-v-8f345c72] {\n flex-shrink: 0;\n background: var(--kd-lane-container-header-bg);\n border-radius: 0px 0px 0px 0px;\n color: var(--kd-lane-container-header-item-color, #333);\n border: unset;\n position: relative;\n cursor: pointer;\n}\n.kd-lane-chart-container-header-item_warning[data-v-8f345c72] {\n background: var(--kd-lane-container-header-item-warning-color, rgba(248, 108, 89, 0.6));\n}\n.kd-lane-chart-container-header-item .kd-lane-chart-container-text-container[data-v-8f345c72] {\n height: 100%;\n width: 100%;\n position: relative;\n font-family: Microsoft YaHei UI, Microsoft YaHei UI;\n font-weight: 400;\n font-size: 10px;\n}\n.kd-lane-chart-container-header-item .kd-lane-chart-container-text-container .left[data-v-8f345c72] {\n position: absolute;\n left: 2px;\n bottom: 2px;\n}\n.kd-lane-chart-container-header-item .kd-lane-chart-container-text-container .center[data-v-8f345c72] {\n position: absolute;\n left: 50%;\n top: 50%;\n font-size: 14px;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: column;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n.kd-lane-chart-container-header-item .kd-lane-chart-container-text-container .center .paramsTitle[data-v-8f345c72] {\n /* 文字不换行,超出显示省略号 */\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: Microsoft YaHei UI, Microsoft YaHei UI;\n font-weight: 400;\n font-size: 12px;\n color: var(--kd-lane-container-header-item-color, #333);\n text-align: center;\n font-style: normal;\n text-transform: none;\n margin-bottom: 2px;\n}\n.kd-lane-chart-container-header-item .kd-lane-chart-container-text-container .center .paramsData[data-v-8f345c72] {\n /* 文字不换行,超出显示省略号 */\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: Microsoft YaHei UI, Microsoft YaHei UI;\n font-size: 12px;\n font-weight: bold;\n text-align: center;\n font-style: normal;\n text-transform: none;\n}\n.kd-lane-chart-container-header-item .kd-lane-chart-container-text-container .right[data-v-8f345c72] {\n position: absolute;\n right: 2px;\n bottom: 2px;\n}\n.kd-lane-chart-container-header-item .kd-lane-chart-container-text-container .gradient-display[data-v-8f345c72] {\n position: absolute;\n height: 2px;\n left: 0;\n bottom: 0;\n right: 0;\n}";
|
|
6751
7220
|
styleInject(css_248z$4);
|
|
6752
7221
|
|
|
6753
7222
|
/* script */
|
|
@@ -6769,19 +7238,41 @@ var __vue_render__$3 = function () {
|
|
|
6769
7238
|
},
|
|
6770
7239
|
[
|
|
6771
7240
|
_c("div", { staticClass: "kd-lane-chart-container-text-container" }, [
|
|
6772
|
-
_c("span", { staticClass: "left" }, [
|
|
7241
|
+
_c("span", { staticClass: "left" }, [
|
|
7242
|
+
_vm._v(
|
|
7243
|
+
_vm._s(
|
|
7244
|
+
_vm.line.min ||
|
|
7245
|
+
(_vm.lineRange[_vm.line.lineId] &&
|
|
7246
|
+
_vm.lineRange[_vm.line.lineId].min) ||
|
|
7247
|
+
0
|
|
7248
|
+
)
|
|
7249
|
+
),
|
|
7250
|
+
]),
|
|
6773
7251
|
_vm._v(" "),
|
|
6774
7252
|
_c("div", { staticClass: "center" }, [
|
|
6775
|
-
_c(
|
|
6776
|
-
|
|
6777
|
-
|
|
7253
|
+
_c(
|
|
7254
|
+
"div",
|
|
7255
|
+
{ staticClass: "paramsTitle", style: _vm.getFontSize("label") },
|
|
7256
|
+
[_vm._v(_vm._s(_vm.getParamName(_vm.line)))]
|
|
7257
|
+
),
|
|
6778
7258
|
_vm._v(" "),
|
|
6779
|
-
_c(
|
|
6780
|
-
|
|
6781
|
-
|
|
7259
|
+
_c(
|
|
7260
|
+
"div",
|
|
7261
|
+
{ staticClass: "paramsData", style: _vm.getFontSize("data") },
|
|
7262
|
+
[_vm._v(_vm._s(_vm.getCurrentData()))]
|
|
7263
|
+
),
|
|
6782
7264
|
]),
|
|
6783
7265
|
_vm._v(" "),
|
|
6784
|
-
_c("span", { staticClass: "right" }, [
|
|
7266
|
+
_c("span", { staticClass: "right" }, [
|
|
7267
|
+
_vm._v(
|
|
7268
|
+
_vm._s(
|
|
7269
|
+
_vm.line.max ||
|
|
7270
|
+
(_vm.lineRange[_vm.line.lineId] &&
|
|
7271
|
+
_vm.lineRange[_vm.line.lineId].max) ||
|
|
7272
|
+
0
|
|
7273
|
+
)
|
|
7274
|
+
),
|
|
7275
|
+
]),
|
|
6785
7276
|
_vm._v(" "),
|
|
6786
7277
|
_c("div", {
|
|
6787
7278
|
staticClass: "gradient-display",
|
|
@@ -6797,7 +7288,7 @@ __vue_render__$3._withStripped = true;
|
|
|
6797
7288
|
/* style */
|
|
6798
7289
|
const __vue_inject_styles__$3 = undefined;
|
|
6799
7290
|
/* scoped */
|
|
6800
|
-
const __vue_scope_id__$3 = "data-v-
|
|
7291
|
+
const __vue_scope_id__$3 = "data-v-8f345c72";
|
|
6801
7292
|
/* module identifier */
|
|
6802
7293
|
const __vue_module_identifier__$3 = undefined;
|
|
6803
7294
|
/* functional template */
|
|
@@ -6853,17 +7344,13 @@ var script$2 = {
|
|
|
6853
7344
|
required: true,
|
|
6854
7345
|
validator: strategyValidator,
|
|
6855
7346
|
},
|
|
6856
|
-
|
|
6857
|
-
type:
|
|
6858
|
-
default:
|
|
6859
|
-
|
|
6860
|
-
|
|
6861
|
-
|
|
6862
|
-
|
|
6863
|
-
},
|
|
6864
|
-
itemGap: {
|
|
6865
|
-
type: Number,
|
|
6866
|
-
default: 4,
|
|
7347
|
+
currentHeaderStyle: {
|
|
7348
|
+
type: Object,
|
|
7349
|
+
default: () => ({
|
|
7350
|
+
headerPadding: 4,
|
|
7351
|
+
headerItemHeight: 42,
|
|
7352
|
+
itemGap: 4,
|
|
7353
|
+
}),
|
|
6867
7354
|
},
|
|
6868
7355
|
customMenuList: {
|
|
6869
7356
|
type: Array,
|
|
@@ -6897,11 +7384,21 @@ var script$2 = {
|
|
|
6897
7384
|
type: Array,
|
|
6898
7385
|
default: () => [],
|
|
6899
7386
|
},
|
|
7387
|
+
// 预警区域数据
|
|
7388
|
+
warningAreaData: {
|
|
7389
|
+
type: Array,
|
|
7390
|
+
default: () => [],
|
|
7391
|
+
},
|
|
6900
7392
|
// 自定义tooltip formatter
|
|
6901
7393
|
tooltipFormatter: {
|
|
6902
7394
|
type: Function,
|
|
6903
7395
|
default: null,
|
|
6904
7396
|
},
|
|
7397
|
+
// 实时曲线menu右击是否开启
|
|
7398
|
+
showContextMenuStatus: {
|
|
7399
|
+
type: Boolean,
|
|
7400
|
+
default: true,
|
|
7401
|
+
},
|
|
6905
7402
|
},
|
|
6906
7403
|
data() {
|
|
6907
7404
|
return {
|
|
@@ -6969,6 +7466,9 @@ var script$2 = {
|
|
|
6969
7466
|
headerWidthCache: {},
|
|
6970
7467
|
// 上次触发 visibleDataChange 的参数,用于比较是否发生变化
|
|
6971
7468
|
lastVisibleDataChangeParams: null,
|
|
7469
|
+
// 当前线段所有数据的最小值和最大值
|
|
7470
|
+
lineRange: {},
|
|
7471
|
+
markAreaLineData: [],
|
|
6972
7472
|
};
|
|
6973
7473
|
},
|
|
6974
7474
|
created() {
|
|
@@ -7008,6 +7508,15 @@ var script$2 = {
|
|
|
7008
7508
|
}
|
|
7009
7509
|
},
|
|
7010
7510
|
methods: {
|
|
7511
|
+
initWindowSizeRange() {
|
|
7512
|
+
const scaleValues = this.toolBarConfig?.scaleList?.map((item) => item.value) || [];
|
|
7513
|
+
if (scaleValues.length === 0) return;
|
|
7514
|
+
|
|
7515
|
+
const minScale = Math.min(...scaleValues);
|
|
7516
|
+
const maxScale = Math.max(...scaleValues);
|
|
7517
|
+
this.minWindowSize = Math.round(this.pxToCm() * (+minScale / this.depthInterval));
|
|
7518
|
+
this.maxWindowSize = Math.round(this.pxToCm() * (+maxScale / this.depthInterval));
|
|
7519
|
+
},
|
|
7011
7520
|
jumpToPosition(data) {
|
|
7012
7521
|
if (!this.realTimeData || this.realTimeData.length === 0) return;
|
|
7013
7522
|
|
|
@@ -7071,68 +7580,25 @@ var script$2 = {
|
|
|
7071
7580
|
getXAxisRangeByHeader(lineInfo, validData = []) {
|
|
7072
7581
|
let headerMin = 0;
|
|
7073
7582
|
let headerMax = 1;
|
|
7074
|
-
if(lineInfo && Object.prototype.hasOwnProperty.call(lineInfo, "min")){
|
|
7583
|
+
if (lineInfo && Object.prototype.hasOwnProperty.call(lineInfo, "min")) {
|
|
7075
7584
|
headerMin = Number(lineInfo.min);
|
|
7076
|
-
}else {
|
|
7077
|
-
headerMin = Math.floor(Math.min(...validData));
|
|
7585
|
+
} else {
|
|
7586
|
+
headerMin = Math.floor(Math.min(...validData.map((item) => item[0])));
|
|
7078
7587
|
}
|
|
7079
|
-
if(lineInfo && Object.prototype.hasOwnProperty.call(lineInfo, "max")){
|
|
7588
|
+
if (lineInfo && Object.prototype.hasOwnProperty.call(lineInfo, "max")) {
|
|
7080
7589
|
headerMax = Number(lineInfo.max);
|
|
7081
|
-
}else {
|
|
7082
|
-
headerMax = Math.ceil(Math.max(...validData));
|
|
7083
|
-
}
|
|
7084
|
-
|
|
7085
|
-
const
|
|
7086
|
-
|
|
7590
|
+
} else {
|
|
7591
|
+
headerMax = Math.ceil(Math.max(...validData.map((item) => item[0])));
|
|
7592
|
+
}
|
|
7593
|
+
const min = headerMin;
|
|
7594
|
+
const max = headerMax;
|
|
7595
|
+
// 更新当前线的范围
|
|
7596
|
+
this.lineRange[lineInfo.lineId] = {
|
|
7597
|
+
min,
|
|
7598
|
+
max,
|
|
7599
|
+
};
|
|
7087
7600
|
return { min, max };
|
|
7088
7601
|
},
|
|
7089
|
-
// 通过 laneId 切换指定泳道 x 轴类型(value/log)
|
|
7090
|
-
toggleLaneXAxisType(laneId, axisType) {
|
|
7091
|
-
const targetLane =
|
|
7092
|
-
this.currentTemplate &&
|
|
7093
|
-
this.currentTemplate.lanes &&
|
|
7094
|
-
this.currentTemplate.lanes.find((lane) => String(lane.laneId) === String(laneId));
|
|
7095
|
-
if (!targetLane) return;
|
|
7096
|
-
|
|
7097
|
-
const optionIndex = this.allOptions.findIndex((item) => String(item.lineId) === String(laneId));
|
|
7098
|
-
if (optionIndex < 0) return;
|
|
7099
|
-
|
|
7100
|
-
const laneOption = this.allOptions[optionIndex] && this.allOptions[optionIndex].option;
|
|
7101
|
-
if (!laneOption || !Array.isArray(laneOption.xAxis) || laneOption.xAxis.length === 0) return;
|
|
7102
|
-
|
|
7103
|
-
const nextType =
|
|
7104
|
-
axisType === "log" || axisType === "value"
|
|
7105
|
-
? axisType
|
|
7106
|
-
: laneOption.xAxis && laneOption.xAxis[0] && laneOption.xAxis[0].type === "log"
|
|
7107
|
-
? "value"
|
|
7108
|
-
: "log";
|
|
7109
|
-
|
|
7110
|
-
laneOption.xAxis = laneOption.xAxis.map((axisItem, index) => {
|
|
7111
|
-
const lineInfo = (targetLane.lines && targetLane.lines[index]) || {};
|
|
7112
|
-
const { min, max } = this.getXAxisRangeByHeader(lineInfo);
|
|
7113
|
-
if (nextType === "log") {
|
|
7114
|
-
return {
|
|
7115
|
-
...axisItem,
|
|
7116
|
-
type: "log",
|
|
7117
|
-
logBase: axisItem.logBase || 2,
|
|
7118
|
-
min: min > 0 ? min : 1,
|
|
7119
|
-
max: max > 0 ? max : 1,
|
|
7120
|
-
};
|
|
7121
|
-
}
|
|
7122
|
-
return {
|
|
7123
|
-
...axisItem,
|
|
7124
|
-
type: "value",
|
|
7125
|
-
min,
|
|
7126
|
-
max,
|
|
7127
|
-
};
|
|
7128
|
-
});
|
|
7129
|
-
|
|
7130
|
-
this.$set(this.allOptions, optionIndex, {
|
|
7131
|
-
...this.allOptions[optionIndex],
|
|
7132
|
-
option: laneOption,
|
|
7133
|
-
});
|
|
7134
|
-
this.$forceUpdate();
|
|
7135
|
-
},
|
|
7136
7602
|
judgeScrollEdge() {
|
|
7137
7603
|
const dataLen = this.realTimeData.length;
|
|
7138
7604
|
if (!dataLen || !this.visibleData.length) return;
|
|
@@ -7309,6 +7775,13 @@ var script$2 = {
|
|
|
7309
7775
|
const delta = Math.sign(e.deltaY);
|
|
7310
7776
|
// ===== Ctrl:缩放 =====
|
|
7311
7777
|
if (this.isCtrlPressed) {
|
|
7778
|
+
// 检查是否已经在缩放边界
|
|
7779
|
+
// delta < 0 表示向上滚动 = 缩小 windowSize
|
|
7780
|
+
// delta > 0 表示向下滚动 = 放大 windowSize
|
|
7781
|
+
if ((delta < 0 && this.windowSize <= this.minWindowSize) || (delta > 0 && this.windowSize >= this.maxWindowSize)) {
|
|
7782
|
+
return;
|
|
7783
|
+
}
|
|
7784
|
+
|
|
7312
7785
|
let anchorIndex = this.getAnchorIndexFromEvent(e);
|
|
7313
7786
|
// 如果获取不到鼠标位置的数据,则使用中间数据
|
|
7314
7787
|
if (anchorIndex === null) {
|
|
@@ -7326,15 +7799,30 @@ var script$2 = {
|
|
|
7326
7799
|
} else {
|
|
7327
7800
|
if (this.isScrollingToHeader(e)) return;
|
|
7328
7801
|
const speed = Math.max(1, this.windowSize / 100);
|
|
7329
|
-
|
|
7802
|
+
|
|
7803
|
+
// 检查是否已经在滚动边界
|
|
7804
|
+
// delta < 0 表示向上滚动
|
|
7805
|
+
// delta > 0 表示向下滚动
|
|
7806
|
+
const maxStart = Math.max(0, dataLength - this.windowSize);
|
|
7807
|
+
if ((delta < 0 && this.startIndex <= 0) || (delta > 0 && this.startIndex >= maxStart)) {
|
|
7808
|
+
return;
|
|
7809
|
+
}
|
|
7810
|
+
|
|
7811
|
+
this.targetStartIndex = Math.floor(this.startIndex + delta * speed * 10);
|
|
7330
7812
|
this.targetWindowSize = this.windowSize; // 滚动时不变,已是整数
|
|
7331
7813
|
if (this.formCache.dataType == "history") {
|
|
7332
7814
|
this.debounceJudgeEdge();
|
|
7333
7815
|
}
|
|
7334
7816
|
}
|
|
7335
|
-
const
|
|
7336
|
-
this.targetStartIndex = Math.max(0, Math.min(this.targetStartIndex,
|
|
7817
|
+
const maxStartFinal = Math.max(0, dataLength - this.targetWindowSize);
|
|
7818
|
+
this.targetStartIndex = Math.max(0, Math.min(this.targetStartIndex, maxStartFinal));
|
|
7337
7819
|
this.targetStartIndex = Math.floor(this.targetStartIndex);
|
|
7820
|
+
|
|
7821
|
+
// 检查是否有变化,没有变化则不渲染
|
|
7822
|
+
if (Math.abs(this.targetStartIndex - this.startIndex) < 0.5 && Math.abs(this.targetWindowSize - this.windowSize) < 0.5) {
|
|
7823
|
+
return;
|
|
7824
|
+
}
|
|
7825
|
+
|
|
7338
7826
|
this.smoothRender();
|
|
7339
7827
|
},
|
|
7340
7828
|
smoothRender() {
|
|
@@ -7362,20 +7850,94 @@ var script$2 = {
|
|
|
7362
7850
|
animate();
|
|
7363
7851
|
},
|
|
7364
7852
|
jumpToNextMarkLine() {
|
|
7365
|
-
|
|
7853
|
+
const axisKey = this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType];
|
|
7854
|
+
if (!axisKey) return;
|
|
7855
|
+
|
|
7856
|
+
// 获取当前图表的markLine数据
|
|
7857
|
+
let markLineYValues = [];
|
|
7858
|
+
const chartRef = this.$refs.refResizeChart && this.$refs.refResizeChart[0];
|
|
7859
|
+
if (chartRef && chartRef.chart) {
|
|
7860
|
+
const chartOption = chartRef.chart.getOption();
|
|
7861
|
+
if (chartOption && chartOption.series) {
|
|
7862
|
+
chartOption.series.forEach((series) => {
|
|
7863
|
+
if (series.markLine && series.markLine.data) {
|
|
7864
|
+
series.markLine.data.forEach((markData) => {
|
|
7865
|
+
if (markData.yAxis !== null && markData.yAxis !== undefined) {
|
|
7866
|
+
markLineYValues.push(markData.yAxis);
|
|
7867
|
+
}
|
|
7868
|
+
});
|
|
7869
|
+
}
|
|
7870
|
+
});
|
|
7871
|
+
}
|
|
7872
|
+
}
|
|
7873
|
+
|
|
7874
|
+
// 如果没有获取到markLine数据,尝试使用this.markLineData
|
|
7875
|
+
if (markLineYValues.length === 0 && this.markLineData && this.markLineData.length > 0) {
|
|
7876
|
+
markLineYValues = this.markLineData
|
|
7877
|
+
.map((item) => {
|
|
7878
|
+
if (this.formCache.axisType === "depth") {
|
|
7879
|
+
return Number(item.data?.depth || item.depth || item);
|
|
7880
|
+
} else if (this.formCache.axisType === "time") {
|
|
7881
|
+
return this.toMillisecondTimestamp(item.data?.time || item.time || item);
|
|
7882
|
+
}
|
|
7883
|
+
return Number(item);
|
|
7884
|
+
})
|
|
7885
|
+
.filter((val) => val !== null && !isNaN(val));
|
|
7886
|
+
}
|
|
7887
|
+
|
|
7888
|
+
if (markLineYValues.length === 0) {
|
|
7366
7889
|
return;
|
|
7367
7890
|
}
|
|
7368
|
-
|
|
7369
|
-
|
|
7370
|
-
|
|
7371
|
-
|
|
7372
|
-
|
|
7891
|
+
|
|
7892
|
+
// 保存markLineYValues以便后续使用
|
|
7893
|
+
this.cachedMarkLineYValues = markLineYValues;
|
|
7894
|
+
|
|
7895
|
+
// 获取当前需要跳转的markLine值
|
|
7896
|
+
const targetValue = markLineYValues[this.currentMarkLineIndex % markLineYValues.length];
|
|
7897
|
+
|
|
7898
|
+
// 找到目标值在realTimeData中的索引
|
|
7899
|
+
let findIndex = -1;
|
|
7900
|
+
let closestIndex = -1;
|
|
7901
|
+
let minDiff = Infinity;
|
|
7902
|
+
|
|
7903
|
+
if (this.formCache.axisType === "time") {
|
|
7904
|
+
const targetValueMs = this.toMillisecondTimestamp(targetValue);
|
|
7905
|
+
this.realTimeData.forEach((item, index) => {
|
|
7906
|
+
const itemValueMs = this.toMillisecondTimestamp(item[axisKey]);
|
|
7907
|
+
const diff = Math.abs(itemValueMs - targetValueMs);
|
|
7908
|
+
if (diff < minDiff) {
|
|
7909
|
+
minDiff = diff;
|
|
7910
|
+
closestIndex = index;
|
|
7911
|
+
}
|
|
7912
|
+
if (itemValueMs === targetValueMs) {
|
|
7913
|
+
findIndex = index;
|
|
7914
|
+
}
|
|
7915
|
+
});
|
|
7916
|
+
} else {
|
|
7917
|
+
this.realTimeData.forEach((item, index) => {
|
|
7918
|
+
const itemValue = Number(item[axisKey]);
|
|
7919
|
+
const diff = Math.abs(itemValue - Number(targetValue));
|
|
7920
|
+
if (diff < minDiff) {
|
|
7921
|
+
minDiff = diff;
|
|
7922
|
+
closestIndex = index;
|
|
7923
|
+
}
|
|
7924
|
+
if (itemValue === Number(targetValue)) {
|
|
7925
|
+
findIndex = index;
|
|
7926
|
+
}
|
|
7927
|
+
});
|
|
7928
|
+
}
|
|
7929
|
+
|
|
7930
|
+
// 如果没有精确匹配,使用最接近的值
|
|
7931
|
+
const targetIndex = findIndex !== -1 ? findIndex : closestIndex;
|
|
7932
|
+
|
|
7933
|
+
if (targetIndex !== -1) {
|
|
7934
|
+
this.startIndex = targetIndex + 1 - this.windowSize / 2 > 0 ? targetIndex + 1 - this.windowSize / 2 : 0;
|
|
7373
7935
|
this.updateLanesChartOption();
|
|
7374
7936
|
}
|
|
7375
7937
|
|
|
7376
7938
|
// 更新索引(循环)
|
|
7377
|
-
this.currentMarkLineIndex++;
|
|
7378
|
-
if (this.currentMarkLineIndex >=
|
|
7939
|
+
this.currentMarkLineIndex++;
|
|
7940
|
+
if (this.currentMarkLineIndex >= markLineYValues.length) {
|
|
7379
7941
|
this.currentMarkLineIndex = 0;
|
|
7380
7942
|
}
|
|
7381
7943
|
},
|
|
@@ -7414,7 +7976,7 @@ var script$2 = {
|
|
|
7414
7976
|
|
|
7415
7977
|
if (hasHeaderChange) {
|
|
7416
7978
|
// 重新绘制图表
|
|
7417
|
-
this.updateLanesChartOption(
|
|
7979
|
+
this.updateLanesChartOption();
|
|
7418
7980
|
}
|
|
7419
7981
|
}, 100);
|
|
7420
7982
|
});
|
|
@@ -7784,6 +8346,7 @@ var script$2 = {
|
|
|
7784
8346
|
});
|
|
7785
8347
|
},
|
|
7786
8348
|
onParentContextMenu(event) {
|
|
8349
|
+
if (!this.showContextMenuStatus) return;
|
|
7787
8350
|
const itemClassName = ".kd-lane-chart-lane-header";
|
|
7788
8351
|
const lineContext = event.target && (event.target.classList.contains(itemClassName) || event.target.closest(itemClassName));
|
|
7789
8352
|
if (!lineContext) {
|
|
@@ -7795,7 +8358,7 @@ var script$2 = {
|
|
|
7795
8358
|
}
|
|
7796
8359
|
},
|
|
7797
8360
|
// 处理工具栏设置变更
|
|
7798
|
-
updateSettings(settings) {
|
|
8361
|
+
async updateSettings(settings) {
|
|
7799
8362
|
// 处理displayType变更
|
|
7800
8363
|
if (settings.key === "displayType") {
|
|
7801
8364
|
this.toggleTooltip(settings.value == "float");
|
|
@@ -7804,11 +8367,10 @@ var script$2 = {
|
|
|
7804
8367
|
// 处理比例尺变化
|
|
7805
8368
|
if (settings.key === "scale") {
|
|
7806
8369
|
this.scaleToDataSize(settings.value);
|
|
7807
|
-
this.startIndex = 0;
|
|
7808
|
-
this.$nextTick(
|
|
7809
|
-
|
|
7810
|
-
|
|
7811
|
-
}
|
|
8370
|
+
// this.startIndex = 0;
|
|
8371
|
+
await this.$nextTick();
|
|
8372
|
+
this.updateLanesChartOption();
|
|
8373
|
+
}
|
|
7812
8374
|
|
|
7813
8375
|
// 处理井深范围或时间范围的变化
|
|
7814
8376
|
if (settings.key === "depthRange" || settings.key === "timeRange") {
|
|
@@ -7913,17 +8475,17 @@ var script$2 = {
|
|
|
7913
8475
|
this.startIndex = startIndex;
|
|
7914
8476
|
|
|
7915
8477
|
this.$nextTick(() => {
|
|
7916
|
-
this.updateLanesChartOption(
|
|
8478
|
+
this.updateLanesChartOption();
|
|
7917
8479
|
});
|
|
7918
8480
|
}
|
|
7919
8481
|
}
|
|
7920
8482
|
}
|
|
7921
8483
|
},
|
|
7922
|
-
|
|
8484
|
+
showContextMenu(event, item) {
|
|
8485
|
+
if (!this.showContextMenuStatus) return;
|
|
7923
8486
|
event.stopPropagation();
|
|
7924
8487
|
this.$emit("showContextMenu", item);
|
|
7925
8488
|
this.$refs.vueSimpleContextMenu.showMenu(event, item);
|
|
7926
|
-
|
|
7927
8489
|
},
|
|
7928
8490
|
optionClicked(event) {
|
|
7929
8491
|
const { option, item } = event;
|
|
@@ -7970,7 +8532,7 @@ var script$2 = {
|
|
|
7970
8532
|
onLineChange(line, type) {
|
|
7971
8533
|
console.log("notify line change", line, type);
|
|
7972
8534
|
this.$emit("line-change", { ...line, actionType: type });
|
|
7973
|
-
this.updateLanesChartOption(
|
|
8535
|
+
this.updateLanesChartOption();
|
|
7974
8536
|
},
|
|
7975
8537
|
async setDefaultAndNotify() {
|
|
7976
8538
|
const prevTemplateId = this.currentTemplate && this.currentTemplate.templateId;
|
|
@@ -8023,12 +8585,18 @@ var script$2 = {
|
|
|
8023
8585
|
show: false,
|
|
8024
8586
|
containLabel: false,
|
|
8025
8587
|
},
|
|
8588
|
+
emphasis: {
|
|
8589
|
+
disabled: true,
|
|
8590
|
+
},
|
|
8026
8591
|
animation: false,
|
|
8027
8592
|
legend: { show: false },
|
|
8028
8593
|
xAxis: [
|
|
8029
8594
|
{
|
|
8030
8595
|
show: false,
|
|
8031
8596
|
type: "value",
|
|
8597
|
+
min: 0,
|
|
8598
|
+
max: 10,
|
|
8599
|
+
splitNumber: 5,
|
|
8032
8600
|
splitLine: {
|
|
8033
8601
|
show: false,
|
|
8034
8602
|
showMinLine: false,
|
|
@@ -8103,37 +8671,17 @@ var script$2 = {
|
|
|
8103
8671
|
formatter: (params) => {
|
|
8104
8672
|
if (this.formCache.displayType == "header") {
|
|
8105
8673
|
let dataIndexItem = (params.seriesData && params.seriesData[0] && params.seriesData[0].dataIndex) || null;
|
|
8106
|
-
// let dataIndexItem = this.getFirstDataIndexItem(params.seriesData);
|
|
8107
8674
|
if (dataIndexItem !== null) {
|
|
8108
8675
|
this.headerData = this.visibleData[dataIndexItem];
|
|
8109
|
-
// this.headerData = this.visibleData[dataIndexItem.dataIndex];
|
|
8110
8676
|
} else {
|
|
8111
8677
|
this.headerData = {};
|
|
8112
8678
|
}
|
|
8113
8679
|
}
|
|
8114
8680
|
if (this.formCache.axisType == "time") {
|
|
8115
|
-
return this.
|
|
8681
|
+
return this.timestampToYMDHMS(params.value);
|
|
8116
8682
|
} else {
|
|
8117
8683
|
return params.value.toString();
|
|
8118
8684
|
}
|
|
8119
|
-
// if (this.formCache.axisType == "time") {
|
|
8120
|
-
// // 时间轴模式:params.value 是时间戳
|
|
8121
|
-
// this.headerData =
|
|
8122
|
-
// this.visibleData.find(
|
|
8123
|
-
// (item) =>
|
|
8124
|
-
// this.toMillisecondTimestamp(item && item[this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]]) == params.value,
|
|
8125
|
-
// ) || {};
|
|
8126
|
-
// } else {
|
|
8127
|
-
// this.headerData =
|
|
8128
|
-
// this.visibleData.find((item) => item && item[this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]] == params.value) ||
|
|
8129
|
-
// {};
|
|
8130
|
-
// }
|
|
8131
|
-
// }
|
|
8132
|
-
// // 时间轴模式:格式化时间戳为可读时间
|
|
8133
|
-
// if (this.formCache.axisType == "time") {
|
|
8134
|
-
// return this.timestampToHms(params.value);
|
|
8135
|
-
// }
|
|
8136
|
-
// return params.value;
|
|
8137
8685
|
},
|
|
8138
8686
|
},
|
|
8139
8687
|
},
|
|
@@ -8274,42 +8822,22 @@ var script$2 = {
|
|
|
8274
8822
|
}
|
|
8275
8823
|
return fallback;
|
|
8276
8824
|
},
|
|
8277
|
-
async updateLanesChartOption(transferData
|
|
8278
|
-
// 如果正在更新,直接返回,避免重复调用
|
|
8825
|
+
async updateLanesChartOption(transferData) {
|
|
8279
8826
|
if (this.isUpdatingChart) return;
|
|
8827
|
+
this.isUpdatingChart = true;
|
|
8280
8828
|
|
|
8281
|
-
let realTimeData =
|
|
8282
|
-
if (transferData && transferData.length > 0) {
|
|
8283
|
-
realTimeData = transferData;
|
|
8284
|
-
} else {
|
|
8285
|
-
realTimeData = this.getVisibleData();
|
|
8286
|
-
}
|
|
8829
|
+
let realTimeData = transferData && transferData.length > 0 ? transferData : this.getVisibleData();
|
|
8287
8830
|
const lanes = cloneDeep(this.currentTemplate.lanes);
|
|
8288
8831
|
|
|
8289
|
-
if (!lanes || lanes.length === 0)
|
|
8290
|
-
|
|
8291
|
-
|
|
8292
|
-
|
|
8293
|
-
|
|
8294
|
-
let yAxisMin = 0;
|
|
8295
|
-
let yAxisMax = 0;
|
|
8832
|
+
if (!lanes || lanes.length === 0) {
|
|
8833
|
+
this.isUpdatingChart = false;
|
|
8834
|
+
return;
|
|
8835
|
+
}
|
|
8296
8836
|
|
|
8297
|
-
// 获取当前轴类型的键
|
|
8298
8837
|
const axisKey =
|
|
8299
8838
|
(this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]) ||
|
|
8300
8839
|
(this.formCache.axisType === "time" ? "time" : "depth");
|
|
8301
8840
|
|
|
8302
|
-
if (this.formCache.axisType == "time") {
|
|
8303
|
-
// 时间轴模式:使用毫秒时间戳
|
|
8304
|
-
timestamps = realTimeData.map((item) => this.toMillisecondTimestamp(item[axisKey]));
|
|
8305
|
-
yAxisMin = Math.min(...timestamps);
|
|
8306
|
-
yAxisMax = Math.max(...timestamps);
|
|
8307
|
-
} else {
|
|
8308
|
-
depthData = realTimeData.map((i) => +i[axisKey]);
|
|
8309
|
-
yAxisMin = Math.min(...depthData);
|
|
8310
|
-
yAxisMax = Math.max(...depthData);
|
|
8311
|
-
}
|
|
8312
|
-
|
|
8313
8841
|
const paramNameMap = {};
|
|
8314
8842
|
this.params.forEach((p) => {
|
|
8315
8843
|
paramNameMap[p.paramId] = p.paramName;
|
|
@@ -8318,516 +8846,768 @@ var script$2 = {
|
|
|
8318
8846
|
try {
|
|
8319
8847
|
for (let laneIndex = 0; laneIndex < lanes.length; laneIndex++) {
|
|
8320
8848
|
const lane = lanes[laneIndex];
|
|
8321
|
-
// 获取轴类型列表
|
|
8322
8849
|
const axisTypeList = this.toolBarConfig.axisTypeList || { depth: "depth", time: "time" };
|
|
8323
|
-
// 深度轴数据
|
|
8324
8850
|
const isDepthLane = Object.prototype.hasOwnProperty.call(axisTypeList, "depth") && axisTypeList.depth == lane.laneKey;
|
|
8325
|
-
// 时间轴数据
|
|
8326
8851
|
const isTimeLane = Object.prototype.hasOwnProperty.call(axisTypeList, "time") && axisTypeList.time == lane.laneKey;
|
|
8327
8852
|
|
|
8328
8853
|
const option = this.getDefaultLaneChartOption();
|
|
8854
|
+
const dataGroups = splitArrayByDepth(realTimeData, axisKey);
|
|
8855
|
+
|
|
8856
|
+
if (dataGroups.length > 0) {
|
|
8857
|
+
option.yAxis = [];
|
|
8858
|
+
option.series = [];
|
|
8859
|
+
option.grid = [];
|
|
8860
|
+
option.xAxis = [];
|
|
8861
|
+
|
|
8862
|
+
let totalHeight = 0;
|
|
8863
|
+
const groupHeights = [];
|
|
8864
|
+
|
|
8865
|
+
dataGroups.forEach((group) => {
|
|
8866
|
+
const groupDepths = group.map((item) => +item[axisKey]);
|
|
8867
|
+
const groupRange = Math.max(...groupDepths) - Math.min(...groupDepths);
|
|
8868
|
+
groupHeights.push(groupRange);
|
|
8869
|
+
totalHeight += groupRange;
|
|
8870
|
+
});
|
|
8329
8871
|
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8334
|
-
|
|
8335
|
-
}
|
|
8336
|
-
|
|
8337
|
-
|
|
8338
|
-
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
|
|
8342
|
-
|
|
8343
|
-
|
|
8344
|
-
const timeRange = yAxisMax - yAxisMin;
|
|
8345
|
-
// 根据数据量设置合适的间隔
|
|
8346
|
-
if (dataCount < 10) {
|
|
8347
|
-
// 数据量较少,间隔可以小一些
|
|
8348
|
-
option.yAxis[0].interval = timeRange / 1;
|
|
8349
|
-
} else if (dataCount < 50) {
|
|
8350
|
-
// 数据量中等
|
|
8351
|
-
option.yAxis[0].interval = timeRange / 5;
|
|
8352
|
-
} else if (dataCount < 100) {
|
|
8353
|
-
// 数据量较多
|
|
8354
|
-
option.yAxis[0].interval = timeRange / 10;
|
|
8355
|
-
} else {
|
|
8356
|
-
// 数据量很多
|
|
8357
|
-
option.yAxis[0].interval = timeRange / 15;
|
|
8872
|
+
const allValues = [];
|
|
8873
|
+
dataGroups.forEach((group) => {
|
|
8874
|
+
group.forEach((item) => {
|
|
8875
|
+
allValues.push(+item[axisKey]);
|
|
8876
|
+
});
|
|
8877
|
+
});
|
|
8878
|
+
|
|
8879
|
+
allValues.sort((a, b) => a - b);
|
|
8880
|
+
|
|
8881
|
+
const allIntervals = [];
|
|
8882
|
+
for (let i = 1; i < allValues.length; i++) {
|
|
8883
|
+
const interval = Math.abs(allValues[i] - allValues[i - 1]);
|
|
8884
|
+
if (interval > 0) {
|
|
8885
|
+
allIntervals.push(interval);
|
|
8358
8886
|
}
|
|
8359
8887
|
}
|
|
8360
|
-
|
|
8361
|
-
|
|
8362
|
-
|
|
8363
|
-
|
|
8364
|
-
|
|
8365
|
-
|
|
8366
|
-
|
|
8367
|
-
|
|
8368
|
-
delete option.yAxis[0].data;
|
|
8369
|
-
|
|
8370
|
-
// 深度轴自适应间隔:根据数据量计算合适的间隔
|
|
8371
|
-
const depthRange = yAxisMax - yAxisMin;
|
|
8372
|
-
const dataCount = realTimeData.length;
|
|
8373
|
-
if (dataCount > 0) {
|
|
8374
|
-
// 根据数据量设置合适的间隔
|
|
8375
|
-
if (dataCount < 10) {
|
|
8376
|
-
// 数据量较少,间隔可以小一些
|
|
8377
|
-
option.yAxis[0].interval = depthRange / 5;
|
|
8378
|
-
} else if (dataCount < 50) {
|
|
8379
|
-
// 数据量中等
|
|
8380
|
-
option.yAxis[0].interval = depthRange / 10;
|
|
8381
|
-
} else if (dataCount < 100) {
|
|
8382
|
-
// 数据量较多
|
|
8383
|
-
option.yAxis[0].interval = depthRange / 15;
|
|
8384
|
-
} else {
|
|
8385
|
-
// 数据量很多
|
|
8386
|
-
option.yAxis[0].interval = depthRange / 20;
|
|
8387
|
-
}
|
|
8888
|
+
|
|
8889
|
+
let unifiedInterval = 5;
|
|
8890
|
+
if (allIntervals.length > 0) {
|
|
8891
|
+
const minInterval = Math.min(...allIntervals);
|
|
8892
|
+
const totalRange = Math.max(...allValues) - Math.min(...allValues);
|
|
8893
|
+
const intervalCount = Math.max(1, Math.min(12, Math.ceil(totalRange / minInterval)));
|
|
8894
|
+
unifiedInterval = Math.ceil(totalRange / Math.min(12, intervalCount));
|
|
8895
|
+
unifiedInterval = Math.max(minInterval, Math.ceil(unifiedInterval / minInterval) * minInterval);
|
|
8388
8896
|
}
|
|
8389
|
-
}
|
|
8390
8897
|
|
|
8391
|
-
|
|
8392
|
-
|
|
8393
|
-
|
|
8394
|
-
|
|
8395
|
-
|
|
8396
|
-
|
|
8397
|
-
|
|
8398
|
-
|
|
8399
|
-
|
|
8400
|
-
|
|
8401
|
-
|
|
8402
|
-
|
|
8403
|
-
|
|
8404
|
-
|
|
8405
|
-
|
|
8406
|
-
|
|
8407
|
-
|
|
8898
|
+
let currentTop = 0;
|
|
8899
|
+
|
|
8900
|
+
dataGroups.forEach(async (group, groupIndex) => {
|
|
8901
|
+
const groupDepths = group.map((item) => +item[axisKey]);
|
|
8902
|
+
const groupMin = Math.min(...groupDepths);
|
|
8903
|
+
const groupMax = Math.max(...groupDepths);
|
|
8904
|
+
const groupHeight = (groupHeights[groupIndex] / totalHeight) * 100;
|
|
8905
|
+
const gridIndex = option.grid.length;
|
|
8906
|
+
|
|
8907
|
+
option.grid.push({
|
|
8908
|
+
top: `${currentTop}%`,
|
|
8909
|
+
left: 2,
|
|
8910
|
+
right: 2,
|
|
8911
|
+
height: `${groupHeight}%`,
|
|
8912
|
+
show: false,
|
|
8913
|
+
containLabel: true,
|
|
8914
|
+
});
|
|
8915
|
+
currentTop += groupHeight;
|
|
8916
|
+
|
|
8917
|
+
option.yAxis.push({
|
|
8918
|
+
gridIndex: gridIndex,
|
|
8919
|
+
type: "value",
|
|
8920
|
+
min: groupMin,
|
|
8921
|
+
max: groupMax,
|
|
8922
|
+
inverse: true,
|
|
8923
|
+
boundaryGap: false,
|
|
8924
|
+
splitLine: {
|
|
8925
|
+
show: true,
|
|
8926
|
+
showMinLine: false,
|
|
8927
|
+
showMaxLine: false,
|
|
8928
|
+
lineStyle: {
|
|
8929
|
+
color: getCssVariable("--kd-lane-container-item-line-color"),
|
|
8930
|
+
type: "dashed",
|
|
8931
|
+
},
|
|
8408
8932
|
},
|
|
8409
|
-
|
|
8410
|
-
|
|
8933
|
+
axisLine: { show: false, onZero: false },
|
|
8934
|
+
axisTick: { show: false },
|
|
8935
|
+
axisLabel: {
|
|
8936
|
+
show: false,
|
|
8937
|
+
fontSize: 12,
|
|
8938
|
+
color: getCssVariable("--default-text-color"),
|
|
8411
8939
|
},
|
|
8412
|
-
|
|
8940
|
+
axisPointer: { show: true },
|
|
8941
|
+
interval: unifiedInterval,
|
|
8942
|
+
});
|
|
8943
|
+
|
|
8944
|
+
if (isDepthLane || isTimeLane) {
|
|
8945
|
+
await this.$nextTick();
|
|
8946
|
+
const clientWidth = this.getLaneHeaderClientWidth(lane, laneIndex);
|
|
8947
|
+
option.xAxis.push({
|
|
8948
|
+
gridIndex: gridIndex,
|
|
8949
|
+
type: "value",
|
|
8950
|
+
min: 0,
|
|
8951
|
+
max: 10,
|
|
8952
|
+
splitLine: { show: false },
|
|
8953
|
+
axisLabel: { show: false },
|
|
8954
|
+
axisLine: { show: false },
|
|
8955
|
+
axisTick: { show: false },
|
|
8956
|
+
});
|
|
8957
|
+
option.series.push({
|
|
8958
|
+
type: "line",
|
|
8959
|
+
xAxisIndex: groupIndex,
|
|
8960
|
+
yAxisIndex: gridIndex,
|
|
8961
|
+
nameIndex: groupIndex,
|
|
8962
|
+
});
|
|
8963
|
+
Object.assign(option.yAxis[gridIndex], {
|
|
8964
|
+
splitLine: { show: false },
|
|
8965
|
+
axisPointer: { show: false },
|
|
8966
|
+
alignTicks: true,
|
|
8967
|
+
boundaryGap: false,
|
|
8968
|
+
axisLabel: {
|
|
8969
|
+
show: true,
|
|
8970
|
+
width: clientWidth,
|
|
8971
|
+
hideOverlap: true,
|
|
8972
|
+
height: 14,
|
|
8973
|
+
verticalAlign: "middle",
|
|
8974
|
+
color: getCssVariable("--default-text-color"),
|
|
8975
|
+
overflow: "truncate",
|
|
8976
|
+
rich: {
|
|
8977
|
+
center: {
|
|
8978
|
+
align: "center",
|
|
8979
|
+
fontSize: 12,
|
|
8980
|
+
verticalAlign: "middle",
|
|
8981
|
+
width: clientWidth - 6 ,
|
|
8982
|
+
height: 14,
|
|
8983
|
+
textBaseline: "middle",
|
|
8984
|
+
lineHeight: 14,
|
|
8985
|
+
},
|
|
8986
|
+
center2: {
|
|
8987
|
+
align: "center",
|
|
8988
|
+
fontSize: 12,
|
|
8989
|
+
backgroundColor: "red",
|
|
8990
|
+
verticalAlign: "middle",
|
|
8991
|
+
width: clientWidth - 6,
|
|
8992
|
+
height: 14,
|
|
8993
|
+
textBaseline: "middle",
|
|
8994
|
+
lineHeight: 14,
|
|
8995
|
+
},
|
|
8996
|
+
},
|
|
8997
|
+
formatter: this.getYAxisLabelFormatter(isTimeLane, dataGroups, groupIndex, groupMin, groupMax, axisKey),
|
|
8998
|
+
},
|
|
8999
|
+
});
|
|
9000
|
+
option.backgroundColor = "transparent";
|
|
9001
|
+
delete option.tooltip;
|
|
9002
|
+
}
|
|
9003
|
+
|
|
9004
|
+
const allSeriesData = {};
|
|
9005
|
+
if (lane && lane.lines) {
|
|
9006
|
+
lane.lines.forEach((lineInfo) => {
|
|
9007
|
+
allSeriesData[lineInfo.lineId] = this.generateSeriesData(realTimeData, lineInfo, axisKey);
|
|
9008
|
+
});
|
|
9009
|
+
}
|
|
9010
|
+
|
|
9011
|
+
const isLogScale = lane.isLogScale === "1";
|
|
9012
|
+
let laneMin = 0,
|
|
9013
|
+
laneMax = 0;
|
|
9014
|
+
if (lane && lane.lines) {
|
|
9015
|
+
lane.lines.forEach((lineInfo) => {
|
|
9016
|
+
const range = this.getXAxisRangeByHeader(lineInfo, allSeriesData[lineInfo.lineId]);
|
|
9017
|
+
if (lineInfo.min) laneMin = Math.min(laneMin, range.min);
|
|
9018
|
+
if (lineInfo.max) laneMax = Math.max(laneMax, range.max);
|
|
9019
|
+
});
|
|
9020
|
+
}
|
|
9021
|
+
|
|
9022
|
+
lane &&
|
|
9023
|
+
lane.lines &&
|
|
9024
|
+
lane.lines.forEach((lineInfo) => {
|
|
9025
|
+
const seriesData = this.generateSeriesData(group, lineInfo, axisKey);
|
|
9026
|
+
const allValidData = allSeriesData[lineInfo.lineId];
|
|
9027
|
+
const { min, max } = this.getXAxisRangeByHeader(lineInfo, allValidData);
|
|
9028
|
+
const xAxisIndex = option.xAxis.length;
|
|
9029
|
+
|
|
9030
|
+
option.xAxis.push({
|
|
9031
|
+
interval: isLogScale ? "auto" : (max - min) / 5,
|
|
9032
|
+
splitNumber: isLogScale ? "auto" : 5,
|
|
9033
|
+
gridIndex: gridIndex,
|
|
9034
|
+
show: !isDepthLane,
|
|
9035
|
+
type: isLogScale ? "log" : "value",
|
|
9036
|
+
min: isLogScale ? (laneMin > 0 ? laneMin : 0.1) : min,
|
|
9037
|
+
max: isLogScale ? (laneMax > 0 ? laneMax : 1) : max,
|
|
9038
|
+
splitLine: {
|
|
9039
|
+
show: !isDepthLane,
|
|
9040
|
+
showMaxLine: false,
|
|
9041
|
+
showMinLine: false,
|
|
9042
|
+
lineStyle: { color: getCssVariable("--kd-lane-container-item-line-color"), type: "dashed" },
|
|
9043
|
+
},
|
|
9044
|
+
axisLabel: { show: false },
|
|
9045
|
+
axisLine: { show: false },
|
|
9046
|
+
axisTick: { show: false },
|
|
9047
|
+
});
|
|
9048
|
+
|
|
9049
|
+
const baseSeries = {
|
|
9050
|
+
laneId: lineInfo.paramId,
|
|
9051
|
+
data: lineInfo.isUsed === "1" ? seriesData : [],
|
|
9052
|
+
type: "line",
|
|
9053
|
+
xAxisIndex: xAxisIndex,
|
|
9054
|
+
yAxisIndex: gridIndex,
|
|
9055
|
+
name: paramNameMap[lineInfo.paramId] || "",
|
|
9056
|
+
symbol: lineInfo.symbol || "none",
|
|
9057
|
+
color: lineInfo.themeConfig
|
|
9058
|
+
? lineInfo.isGradient
|
|
9059
|
+
? this.linearGradientLineColor[this.nowTheme][lineInfo.paramId]
|
|
9060
|
+
: lineInfo.themeConfig[this.nowTheme].lineColor
|
|
9061
|
+
: lineInfo.lineColor,
|
|
9062
|
+
symbolSize: getAdaptedFontSize(lineInfo.symbolSize || 6),
|
|
9063
|
+
lineStyle: {
|
|
9064
|
+
width: getAdaptedFontSize(+lineInfo.lineSize || 1.5),
|
|
9065
|
+
type: lineInfo.lineType,
|
|
9066
|
+
},
|
|
9067
|
+
clip: false,
|
|
9068
|
+
z: lineInfo.lineSort,
|
|
9069
|
+
};
|
|
9070
|
+
|
|
9071
|
+
this.addMarkLineToSeries(baseSeries, lineInfo, realTimeData, axisKey);
|
|
9072
|
+
this.addMarkAreaToSeries(baseSeries, lineInfo, realTimeData, axisKey, min, max);
|
|
9073
|
+
this.addAreaStyleToSeries(baseSeries, lineInfo, seriesData, min);
|
|
9074
|
+
|
|
9075
|
+
option.series.push(baseSeries);
|
|
9076
|
+
});
|
|
9077
|
+
|
|
9078
|
+
if (!isDepthLane && !isTimeLane && lane && lane.lines) {
|
|
9079
|
+
const min = Math.max(...lane.lines.map((item) => this.lineRange[item.lineId].min));
|
|
9080
|
+
option.series.unshift({
|
|
9081
|
+
name: "helper",
|
|
9082
|
+
type: "line",
|
|
9083
|
+
xAxisIndex: lane.lines.length * groupIndex,
|
|
9084
|
+
yAxisIndex: gridIndex,
|
|
9085
|
+
data: realTimeData.map((item) => [min, +item[axisKey]]),
|
|
9086
|
+
lineStyle: { opacity: 0 },
|
|
9087
|
+
symbol: "none",
|
|
9088
|
+
});
|
|
9089
|
+
}
|
|
8413
9090
|
});
|
|
8414
|
-
option.backgroundColor = "transparent";
|
|
8415
|
-
delete option.tooltip;
|
|
8416
9091
|
}
|
|
8417
|
-
|
|
8418
|
-
|
|
8419
|
-
|
|
8420
|
-
|
|
8421
|
-
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
8428
|
-
|
|
8429
|
-
|
|
8430
|
-
|
|
8431
|
-
|
|
8432
|
-
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8436
|
-
|
|
8437
|
-
|
|
8438
|
-
|
|
8439
|
-
|
|
8440
|
-
|
|
8441
|
-
|
|
8442
|
-
|
|
8443
|
-
|
|
9092
|
+
|
|
9093
|
+
await this.$nextTick();
|
|
9094
|
+
this.updateOptionsByLineId(lane.laneId, option);
|
|
9095
|
+
this.$refs.refResizeChart && this.$refs.refResizeChart[laneIndex] && this.$refs.refResizeChart[laneIndex].connect(this.group);
|
|
9096
|
+
}
|
|
9097
|
+
} catch (error) {
|
|
9098
|
+
console.error("updateLanesChartOption error:", error);
|
|
9099
|
+
} finally {
|
|
9100
|
+
this.isUpdatingChart = false;
|
|
9101
|
+
}
|
|
9102
|
+
},
|
|
9103
|
+
|
|
9104
|
+
generateSeriesData(data, lineInfo, axisKey) {
|
|
9105
|
+
return data.map((item) => {
|
|
9106
|
+
let value = null;
|
|
9107
|
+
if (Object.prototype.hasOwnProperty.call(item, lineInfo.paramId)) {
|
|
9108
|
+
value = item[lineInfo.paramId];
|
|
9109
|
+
} else {
|
|
9110
|
+
const currentParam = this.params.find((p) => p.paramId == lineInfo.paramId);
|
|
9111
|
+
if (currentParam && currentParam.paramCode) {
|
|
9112
|
+
const codes = currentParam.paramCode.split(",");
|
|
9113
|
+
for (const code of codes) {
|
|
9114
|
+
if (Object.prototype.hasOwnProperty.call(item, code)) {
|
|
9115
|
+
value = item[code];
|
|
9116
|
+
break;
|
|
9117
|
+
}
|
|
9118
|
+
}
|
|
8444
9119
|
}
|
|
8445
|
-
|
|
8446
|
-
|
|
8447
|
-
|
|
8448
|
-
|
|
8449
|
-
|
|
8450
|
-
|
|
8451
|
-
|
|
8452
|
-
|
|
8453
|
-
|
|
8454
|
-
|
|
8455
|
-
|
|
8456
|
-
|
|
8457
|
-
|
|
8458
|
-
|
|
8459
|
-
|
|
8460
|
-
|
|
8461
|
-
|
|
8462
|
-
|
|
8463
|
-
|
|
8464
|
-
|
|
8465
|
-
|
|
8466
|
-
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
|
|
8486
|
-
|
|
8487
|
-
|
|
8488
|
-
value = item && item[lineInfo.paramId];
|
|
8489
|
-
} else {
|
|
8490
|
-
if (Object.prototype.hasOwnProperty.call(currentParam, "paramCode") && currentParam.paramCode !== "") {
|
|
8491
|
-
let codes = currentParam.paramCode.split(",");
|
|
8492
|
-
codes.forEach((code) => {
|
|
8493
|
-
if (Object.prototype.hasOwnProperty.call(item, code)) {
|
|
8494
|
-
value = item && item[code];
|
|
8495
|
-
return;
|
|
8496
|
-
}
|
|
8497
|
-
});
|
|
8498
|
-
}
|
|
8499
|
-
}
|
|
8500
|
-
// 返回 [x, y] 格式,y 是深度值
|
|
8501
|
-
return [value, +item[axisKey]];
|
|
8502
|
-
});
|
|
8503
|
-
validData = seriesData.filter((v) => Number.isFinite(+v[0]));
|
|
9120
|
+
}
|
|
9121
|
+
return [value, +item[axisKey]];
|
|
9122
|
+
});
|
|
9123
|
+
},
|
|
9124
|
+
|
|
9125
|
+
getYAxisLabelFormatter(isTimeLane, dataGroups, groupIndex, groupMin, groupMax, axisKey) {
|
|
9126
|
+
return (value) => {
|
|
9127
|
+
if (isTimeLane) {
|
|
9128
|
+
return `{center|${this.timestampToHms(value)}}`;
|
|
9129
|
+
}
|
|
9130
|
+
if (groupIndex > 0 && value === groupMin) {
|
|
9131
|
+
const prevGroup = dataGroups[groupIndex - 1];
|
|
9132
|
+
const prevGroupMax = Math.max(...prevGroup.map((item) => +item[axisKey]));
|
|
9133
|
+
if (Math.abs(prevGroupMax - groupMin) < 1) return `{center2|${prevGroupMax}/${value}}`;
|
|
9134
|
+
return `{center2|${prevGroupMax.toFixed(0)}/${value.toFixed(0)}}`;
|
|
9135
|
+
}
|
|
9136
|
+
if (groupIndex <= dataGroups.length - 1 && value === groupMax) {
|
|
9137
|
+
return `{center|}`;
|
|
9138
|
+
}
|
|
9139
|
+
if (groupIndex === 0 && value === groupMin) {
|
|
9140
|
+
return `{center|}`;
|
|
9141
|
+
}
|
|
9142
|
+
return `{center|${typeof +value === "number" ? Number(Number(value).toFixed(0)) : value}}`;
|
|
9143
|
+
};
|
|
9144
|
+
},
|
|
9145
|
+
|
|
9146
|
+
addMarkLineToSeries(baseSeries, lineInfo, realTimeData, axisKey) {
|
|
9147
|
+
if (!this.markLineData || this.markLineData.length === 0) return;
|
|
9148
|
+
|
|
9149
|
+
baseSeries.markLine = {
|
|
9150
|
+
symbol: "none",
|
|
9151
|
+
label: { show: false },
|
|
9152
|
+
emphasis: { disabled: true },
|
|
9153
|
+
data: this.markLineData
|
|
9154
|
+
.map((item) => {
|
|
9155
|
+
if (this.formCache.axisType === "depth") {
|
|
9156
|
+
const markDepth = item.data?.depth || item.depth || item;
|
|
9157
|
+
const markTime = item.data?.timestamp || item.timestamp || 0;
|
|
9158
|
+
const markTimeMs = this.toMillisecondTimestamp(markTime);
|
|
9159
|
+
|
|
9160
|
+
const findItem = realTimeData.find((d) => d[axisKey] == markDepth);
|
|
9161
|
+
if (findItem) {
|
|
9162
|
+
return { yAxis: Number(markDepth), lineStyle: { color: item.color || "red", type: "dashed", width: 2 } };
|
|
8504
9163
|
}
|
|
8505
|
-
const { min, max } = this.getXAxisRangeByHeader(lineInfo, validData);
|
|
8506
9164
|
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
showMaxLine: false,
|
|
8516
|
-
showMinLine: false,
|
|
8517
|
-
lineStyle: { color: getCssVariable("--kd-lane-container-item-line-color"), type: "dashed" },
|
|
8518
|
-
},
|
|
8519
|
-
axisLabel: { show: false },
|
|
8520
|
-
axisLine: { show: false },
|
|
8521
|
-
axisTick: { show: false },
|
|
9165
|
+
let closestItem = null,
|
|
9166
|
+
minDiff = Infinity;
|
|
9167
|
+
realTimeData.forEach((d) => {
|
|
9168
|
+
const diff = Math.abs(Number(d[axisKey]) - Number(markDepth));
|
|
9169
|
+
if (diff < minDiff) {
|
|
9170
|
+
minDiff = diff;
|
|
9171
|
+
closestItem = d;
|
|
9172
|
+
}
|
|
8522
9173
|
});
|
|
8523
|
-
// series
|
|
8524
|
-
const baseSeries = {
|
|
8525
|
-
laneId: lineInfo.paramId,
|
|
8526
|
-
data: lineInfo.isUsed === "1" ? seriesData : [],
|
|
8527
|
-
type: "line",
|
|
8528
|
-
xAxisIndex: lineIndex,
|
|
8529
|
-
name: paramNameMap[lineInfo.paramId] || "",
|
|
8530
|
-
symbol: lineInfo.symbol || "none",
|
|
8531
|
-
symbolSize: getAdaptedFontSize(lineInfo.symbolSize || 6),
|
|
8532
|
-
lineStyle: {
|
|
8533
|
-
width: getAdaptedFontSize(+lineInfo.lineSize || 1.5),
|
|
8534
|
-
type: lineInfo.lineType,
|
|
8535
|
-
},
|
|
8536
|
-
clip: false,
|
|
8537
|
-
z: lineInfo.lineSort,
|
|
8538
|
-
};
|
|
8539
9174
|
|
|
8540
|
-
|
|
8541
|
-
|
|
8542
|
-
|
|
8543
|
-
|
|
8544
|
-
|
|
8545
|
-
|
|
8546
|
-
|
|
8547
|
-
|
|
8548
|
-
|
|
8549
|
-
|
|
8550
|
-
|
|
8551
|
-
|
|
8552
|
-
|
|
8553
|
-
|
|
8554
|
-
|
|
8555
|
-
|
|
8556
|
-
// 尝试精确匹配
|
|
8557
|
-
const findItem = this.realTimeData.find((d) => d[this.toolBarConfig.axisTypeList[this.formCache.axisType]] == item);
|
|
8558
|
-
if (findItem) {
|
|
8559
|
-
if (this.formCache.axisType == "time") {
|
|
8560
|
-
return { yAxis: this.toMillisecondTimestamp(findItem[this.toolBarConfig.axisTypeList[this.formCache.axisType]]) };
|
|
8561
|
-
} else {
|
|
8562
|
-
return { yAxis: Number(findItem[this.toolBarConfig.axisTypeList[this.formCache.axisType]]) };
|
|
8563
|
-
}
|
|
8564
|
-
} else {
|
|
8565
|
-
// 精确匹配失败,找到最接近的深度值
|
|
8566
|
-
let closestItem = null;
|
|
8567
|
-
let minDiff = Infinity;
|
|
8568
|
-
if (this.formCache.axisType == "time") minDiff = 5 * 1000;
|
|
8569
|
-
if (this.formCache.axisType == "depth") minDiff = 5;
|
|
8570
|
-
this.realTimeData.forEach((d) => {
|
|
8571
|
-
const diff = Math.abs(Number(d[this.toolBarConfig.axisTypeList[this.formCache.axisType]]) - Number(item));
|
|
8572
|
-
if (diff < minDiff) {
|
|
8573
|
-
minDiff = diff;
|
|
8574
|
-
closestItem = d;
|
|
8575
|
-
}
|
|
8576
|
-
});
|
|
8577
|
-
if (closestItem) {
|
|
8578
|
-
this.markLineData[index] = closestItem[this.toolBarConfig.axisTypeList[this.formCache.axisType]];
|
|
8579
|
-
if (this.formCache.axisType == "time") {
|
|
8580
|
-
return {
|
|
8581
|
-
yAxis: this.toMillisecondTimestamp(closestItem[this.toolBarConfig.axisTypeList[this.formCache.axisType]]),
|
|
8582
|
-
};
|
|
8583
|
-
} else {
|
|
8584
|
-
return { yAxis: closestItem[this.toolBarConfig.axisTypeList[this.formCache.axisType]] + "" };
|
|
8585
|
-
}
|
|
8586
|
-
}
|
|
8587
|
-
return { yAxis: closestItem };
|
|
8588
|
-
}
|
|
8589
|
-
})
|
|
8590
|
-
.filter((item) => item.yAxis !== null),
|
|
8591
|
-
};
|
|
9175
|
+
if (closestItem) {
|
|
9176
|
+
const dataTime = closestItem.timestamp || 0;
|
|
9177
|
+
const dataTimeMs = this.toMillisecondTimestamp(dataTime);
|
|
9178
|
+
if (markTimeMs >= dataTimeMs) {
|
|
9179
|
+
return { yAxis: Number(markDepth), lineStyle: { color: item.color || "red", type: "dashed", width: 2 } };
|
|
9180
|
+
}
|
|
9181
|
+
}
|
|
9182
|
+
return { yAxis: null };
|
|
9183
|
+
} else if (this.formCache.axisType === "time") {
|
|
9184
|
+
const markTime = item.data?.time || item.time || item;
|
|
9185
|
+
const markTimeMs = this.toMillisecondTimestamp(markTime);
|
|
9186
|
+
|
|
9187
|
+
const findItem = realTimeData.find((d) => d[axisKey] == markTime);
|
|
9188
|
+
if (findItem) {
|
|
9189
|
+
return { yAxis: markTimeMs, lineStyle: { color: item.color || "red", type: "dashed", width: 2 } };
|
|
9190
|
+
}
|
|
8592
9191
|
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
// 在数据开始处添加一个辅助点,x 值为 x 轴的最小值,y 值与第一个数据点的 y 值相同
|
|
8601
|
-
seriesData.unshift([min, firstValidPoint[1]]);
|
|
8602
|
-
// 在数据结束处添加一个辅助点,x 值为 x 轴的最小值,y 值与最后一个数据点的 y 值相同
|
|
8603
|
-
const lastValidPoint = seriesData[seriesData.length - 1];
|
|
8604
|
-
if (lastValidPoint && Number.isFinite(+lastValidPoint[0])) {
|
|
8605
|
-
seriesData.push([min, lastValidPoint[1]]);
|
|
8606
|
-
}
|
|
8607
|
-
}
|
|
9192
|
+
let closestItem = null,
|
|
9193
|
+
minDiff = Infinity;
|
|
9194
|
+
realTimeData.forEach((d) => {
|
|
9195
|
+
const diff = Math.abs(this.toMillisecondTimestamp(d[axisKey]) - markTimeMs);
|
|
9196
|
+
if (diff < minDiff) {
|
|
9197
|
+
minDiff = diff;
|
|
9198
|
+
closestItem = d;
|
|
8608
9199
|
}
|
|
9200
|
+
});
|
|
8609
9201
|
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
opacity: 1,
|
|
8613
|
-
};
|
|
8614
|
-
// 隐藏辅助点在 tooltip 中的显示
|
|
8615
|
-
baseSeries.itemStyle = {
|
|
8616
|
-
opacity: 0,
|
|
8617
|
-
};
|
|
8618
|
-
} else {
|
|
8619
|
-
baseSeries.areaStyle = { opacity: 0 };
|
|
9202
|
+
if (closestItem) {
|
|
9203
|
+
return { yAxis: markTimeMs, lineStyle: { color: item.color || "red", type: "dashed", width: 2 } };
|
|
8620
9204
|
}
|
|
9205
|
+
return { yAxis: null };
|
|
9206
|
+
}
|
|
9207
|
+
return { yAxis: Number(item.data || item), lineStyle: { color: item.color || "red", type: "dashed", width: 2 } };
|
|
9208
|
+
})
|
|
9209
|
+
.filter((item) => item.yAxis !== null),
|
|
9210
|
+
};
|
|
9211
|
+
},
|
|
9212
|
+
|
|
9213
|
+
addMarkAreaToSeries(baseSeries, lineInfo, realTimeData, axisKey, min, max) {
|
|
9214
|
+
if (!this.markAreaLineData || this.markAreaLineData.length === 0) return;
|
|
9215
|
+
|
|
9216
|
+
const currentMarkAreaData = this.markAreaLineData.filter((item) => item.paramsId === lineInfo.paramId);
|
|
9217
|
+
if (currentMarkAreaData.length === 0) return;
|
|
9218
|
+
|
|
9219
|
+
const markAreaData = [];
|
|
9220
|
+
currentMarkAreaData.forEach((areaItem) => {
|
|
9221
|
+
if (!areaItem.data || areaItem.data.length < 2) return;
|
|
8621
9222
|
|
|
8622
|
-
|
|
9223
|
+
const startData = areaItem.data[0];
|
|
9224
|
+
const endData = areaItem.data[1];
|
|
9225
|
+
let startY, endY;
|
|
8623
9226
|
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
9227
|
+
if (this.formCache.axisType === "depth") {
|
|
9228
|
+
const startDepth = startData.depth;
|
|
9229
|
+
const startTime = this.toMillisecondTimestamp(startData.timestamp || 0);
|
|
9230
|
+
const endDepth = endData.depth;
|
|
9231
|
+
const endTime = this.toMillisecondTimestamp(endData.timestamp || 0);
|
|
8629
9232
|
|
|
8630
|
-
|
|
9233
|
+
const startFindItem = realTimeData.find((d) => d[axisKey] == startDepth && d.timestamp == startData.timestamp);
|
|
9234
|
+
if (startFindItem) {
|
|
9235
|
+
startY = Number(startDepth);
|
|
9236
|
+
} else {
|
|
9237
|
+
let closestStartItem = null,
|
|
9238
|
+
minStartDiff = Infinity;
|
|
9239
|
+
realTimeData.forEach((d) => {
|
|
9240
|
+
const diff = Math.abs(Number(d[axisKey]) - Number(startDepth));
|
|
9241
|
+
if (diff < minStartDiff) {
|
|
9242
|
+
minStartDiff = diff;
|
|
9243
|
+
closestStartItem = d;
|
|
9244
|
+
}
|
|
8631
9245
|
});
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8644
|
-
|
|
8645
|
-
|
|
8646
|
-
|
|
8647
|
-
|
|
9246
|
+
if (closestStartItem) {
|
|
9247
|
+
const dataTimeMs = this.toMillisecondTimestamp(closestStartItem.timestamp || 0);
|
|
9248
|
+
startY = startTime >= dataTimeMs && closestStartItem[axisKey] >= startDepth ? Number(startDepth) : null;
|
|
9249
|
+
} else {
|
|
9250
|
+
startY = null;
|
|
9251
|
+
}
|
|
9252
|
+
}
|
|
9253
|
+
|
|
9254
|
+
const endFindItem = realTimeData.find((d) => d[axisKey] == endDepth && d.timestamp == endData.timestamp);
|
|
9255
|
+
if (endFindItem) {
|
|
9256
|
+
endY = Number(endDepth);
|
|
9257
|
+
} else {
|
|
9258
|
+
let closestEndItem = null,
|
|
9259
|
+
minEndDiff = Infinity;
|
|
9260
|
+
realTimeData.forEach((d) => {
|
|
9261
|
+
const diff = Math.abs(Number(d[axisKey]) - Number(endDepth));
|
|
9262
|
+
if (diff < minEndDiff) {
|
|
9263
|
+
minEndDiff = diff;
|
|
9264
|
+
closestEndItem = d;
|
|
9265
|
+
}
|
|
8648
9266
|
});
|
|
8649
|
-
|
|
9267
|
+
if (closestEndItem) {
|
|
9268
|
+
const dataTimeMs = this.toMillisecondTimestamp(closestEndItem.timestamp || 0);
|
|
9269
|
+
endY = endTime >= dataTimeMs && closestEndItem[axisKey] <= endDepth ? Number(endDepth) : null;
|
|
9270
|
+
} else {
|
|
9271
|
+
endY = null;
|
|
9272
|
+
}
|
|
8650
9273
|
}
|
|
8651
|
-
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
|
|
8658
|
-
|
|
8659
|
-
|
|
8660
|
-
|
|
9274
|
+
} else if (this.formCache.axisType === "time") {
|
|
9275
|
+
const startTime = startData.time;
|
|
9276
|
+
const endTime = endData.time;
|
|
9277
|
+
const startTimeMs = this.toMillisecondTimestamp(startTime);
|
|
9278
|
+
const endTimeMs = this.toMillisecondTimestamp(endTime);
|
|
9279
|
+
|
|
9280
|
+
const startFindItem = realTimeData.find((d) => d[axisKey] == startTime);
|
|
9281
|
+
startY = startFindItem ? startTimeMs : null;
|
|
9282
|
+
if (!startY) {
|
|
9283
|
+
let closestStartItem = null,
|
|
9284
|
+
minStartDiff = Infinity;
|
|
9285
|
+
realTimeData.forEach((d) => {
|
|
9286
|
+
const diff = Math.abs(this.toMillisecondTimestamp(d[axisKey]) - startTimeMs);
|
|
9287
|
+
if (diff < minStartDiff) {
|
|
9288
|
+
minStartDiff = diff;
|
|
9289
|
+
closestStartItem = d;
|
|
9290
|
+
}
|
|
8661
9291
|
});
|
|
8662
|
-
|
|
9292
|
+
startY = closestStartItem ? startTimeMs : null;
|
|
8663
9293
|
}
|
|
8664
|
-
|
|
8665
|
-
|
|
8666
|
-
|
|
8667
|
-
|
|
8668
|
-
|
|
8669
|
-
|
|
8670
|
-
|
|
8671
|
-
|
|
8672
|
-
|
|
8673
|
-
|
|
8674
|
-
|
|
9294
|
+
|
|
9295
|
+
const endFindItem = realTimeData.find((d) => d[axisKey] == endTime);
|
|
9296
|
+
endY = endFindItem ? endTimeMs : null;
|
|
9297
|
+
if (!endY) {
|
|
9298
|
+
let closestEndItem = null,
|
|
9299
|
+
minEndDiff = Infinity;
|
|
9300
|
+
realTimeData.forEach((d) => {
|
|
9301
|
+
const diff = Math.abs(this.toMillisecondTimestamp(d[axisKey]) - endTimeMs);
|
|
9302
|
+
if (diff < minEndDiff) {
|
|
9303
|
+
minEndDiff = diff;
|
|
9304
|
+
closestEndItem = d;
|
|
9305
|
+
}
|
|
9306
|
+
});
|
|
9307
|
+
endY = closestEndItem ? endTimeMs : null;
|
|
8675
9308
|
}
|
|
9309
|
+
} else {
|
|
9310
|
+
startY = Number(startData.depth || startData.y);
|
|
9311
|
+
endY = Number(endData.depth || endData.y);
|
|
8676
9312
|
}
|
|
8677
|
-
|
|
8678
|
-
|
|
8679
|
-
|
|
8680
|
-
|
|
9313
|
+
|
|
9314
|
+
if (startY !== null && endY !== null) {
|
|
9315
|
+
markAreaData.push([
|
|
9316
|
+
{ xAxis: min, yAxis: startY },
|
|
9317
|
+
{ xAxis: max, yAxis: endY },
|
|
9318
|
+
]);
|
|
9319
|
+
}
|
|
9320
|
+
});
|
|
9321
|
+
|
|
9322
|
+
if (markAreaData.length > 0) {
|
|
9323
|
+
baseSeries.markArea = {
|
|
9324
|
+
silent: true,
|
|
9325
|
+
itemStyle: {
|
|
9326
|
+
color: currentMarkAreaData[0]?.color || "rgba(255, 0, 0, 0.1)",
|
|
9327
|
+
borderWidth: 0,
|
|
9328
|
+
},
|
|
9329
|
+
data: markAreaData,
|
|
9330
|
+
};
|
|
8681
9331
|
}
|
|
8682
9332
|
},
|
|
8683
|
-
|
|
8684
|
-
|
|
8685
|
-
|
|
8686
|
-
|
|
8687
|
-
|
|
8688
|
-
|
|
8689
|
-
|
|
8690
|
-
|
|
8691
|
-
|
|
8692
|
-
|
|
8693
|
-
|
|
8694
|
-
const
|
|
8695
|
-
|
|
8696
|
-
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
|
|
8711
|
-
|
|
8712
|
-
|
|
8713
|
-
|
|
8714
|
-
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
|
|
9333
|
+
|
|
9334
|
+
addAreaStyleToSeries(baseSeries, lineInfo, seriesData, min) {
|
|
9335
|
+
if (lineInfo.lineType !== "area") {
|
|
9336
|
+
baseSeries.areaStyle = { opacity: 0 };
|
|
9337
|
+
return;
|
|
9338
|
+
}
|
|
9339
|
+
|
|
9340
|
+
if (seriesData.length > 0) {
|
|
9341
|
+
const firstValidPoint = seriesData.find((point) => Number.isFinite(+point[0]));
|
|
9342
|
+
if (firstValidPoint) {
|
|
9343
|
+
seriesData.unshift([min, firstValidPoint[1]]);
|
|
9344
|
+
const lastValidPoint = seriesData[seriesData.length - 1];
|
|
9345
|
+
if (lastValidPoint && Number.isFinite(+lastValidPoint[0])) {
|
|
9346
|
+
seriesData.push([min, lastValidPoint[1]]);
|
|
9347
|
+
}
|
|
9348
|
+
}
|
|
9349
|
+
}
|
|
9350
|
+
|
|
9351
|
+
baseSeries.areaStyle = {
|
|
9352
|
+
origin: "start",
|
|
9353
|
+
emphasis: { disabled: true },
|
|
9354
|
+
color: lineInfo.themeConfig
|
|
9355
|
+
? lineInfo.isGradient
|
|
9356
|
+
? this.linearGradientLineColor[this.nowTheme][lineInfo.paramId]
|
|
9357
|
+
: lineInfo.themeConfig[this.nowTheme].lineColor
|
|
9358
|
+
: lineInfo.lineColor,
|
|
9359
|
+
opacity: 1,
|
|
9360
|
+
};
|
|
9361
|
+
baseSeries.itemStyle = { opacity: 0 };
|
|
9362
|
+
},
|
|
9363
|
+
|
|
9364
|
+
async updateLanesChartOptionIncremental(transferData) {
|
|
9365
|
+
if (this.isUpdatingChart) return;
|
|
9366
|
+
this.isUpdatingChart = true;
|
|
9367
|
+
|
|
9368
|
+
let realTimeData = transferData && transferData.length > 0 ? transferData : this.getVisibleData();
|
|
9369
|
+
const lanes = this.currentTemplate && this.currentTemplate.lanes;
|
|
9370
|
+
|
|
9371
|
+
if (!lanes || lanes.length === 0) {
|
|
9372
|
+
this.isUpdatingChart = false;
|
|
9373
|
+
return;
|
|
9374
|
+
}
|
|
9375
|
+
|
|
9376
|
+
const axisKey =
|
|
9377
|
+
(this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]) ||
|
|
9378
|
+
(this.formCache.axisType === "time" ? "time" : "depth");
|
|
9379
|
+
|
|
9380
|
+
try {
|
|
9381
|
+
for (let laneIndex = 0; laneIndex < lanes.length; laneIndex++) {
|
|
9382
|
+
const lane = lanes[laneIndex];
|
|
9383
|
+
const chartRef = this.$refs.refResizeChart && this.$refs.refResizeChart[laneIndex];
|
|
9384
|
+
if (!chartRef || !chartRef.chart) continue;
|
|
9385
|
+
|
|
9386
|
+
const chart = chartRef.chart;
|
|
9387
|
+
const currentOption = chart.getOption();
|
|
9388
|
+
|
|
9389
|
+
const axisTypeList = this.toolBarConfig.axisTypeList || { depth: "depth", time: "time" };
|
|
9390
|
+
const isDepthLane = Object.prototype.hasOwnProperty.call(axisTypeList, "depth") && axisTypeList.depth == lane.laneKey;
|
|
9391
|
+
|
|
9392
|
+
const dataGroups = splitArrayByDepth(realTimeData, axisKey);
|
|
9393
|
+
if (dataGroups.length === 0) continue;
|
|
9394
|
+
|
|
9395
|
+
const updates = {};
|
|
9396
|
+
const needUpdate = {
|
|
9397
|
+
grid: false,
|
|
9398
|
+
yAxis: false,
|
|
9399
|
+
xAxis: false,
|
|
9400
|
+
series: false,
|
|
9401
|
+
};
|
|
9402
|
+
|
|
9403
|
+
const newGrid = [];
|
|
9404
|
+
const newYAxis = [];
|
|
9405
|
+
const newXAxis = [];
|
|
9406
|
+
const newSeriesData = [];
|
|
9407
|
+
|
|
9408
|
+
let totalHeight = 0;
|
|
9409
|
+
const groupHeights = [];
|
|
9410
|
+
dataGroups.forEach((group) => {
|
|
9411
|
+
const groupDepths = group.map((item) => +item[axisKey]);
|
|
9412
|
+
const groupRange = Math.max(...groupDepths) - Math.min(...groupDepths);
|
|
9413
|
+
groupHeights.push(groupRange);
|
|
9414
|
+
totalHeight += groupRange;
|
|
8720
9415
|
});
|
|
8721
|
-
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
|
|
8729
|
-
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
|
|
8743
|
-
|
|
8744
|
-
|
|
8745
|
-
|
|
8746
|
-
|
|
8747
|
-
|
|
8748
|
-
|
|
8749
|
-
|
|
8750
|
-
|
|
8751
|
-
|
|
9416
|
+
|
|
9417
|
+
const allValues = [];
|
|
9418
|
+
dataGroups.forEach((group) => {
|
|
9419
|
+
group.forEach((item) => {
|
|
9420
|
+
allValues.push(+item[axisKey]);
|
|
9421
|
+
});
|
|
9422
|
+
});
|
|
9423
|
+
|
|
9424
|
+
allValues.sort((a, b) => a - b);
|
|
9425
|
+
const allIntervals = [];
|
|
9426
|
+
for (let i = 1; i < allValues.length; i++) {
|
|
9427
|
+
const interval = Math.abs(allValues[i] - allValues[i - 1]);
|
|
9428
|
+
if (interval > 0) {
|
|
9429
|
+
allIntervals.push(interval);
|
|
9430
|
+
}
|
|
9431
|
+
}
|
|
9432
|
+
|
|
9433
|
+
let unifiedInterval = 5;
|
|
9434
|
+
if (allIntervals.length > 0) {
|
|
9435
|
+
const minInterval = Math.min(...allIntervals);
|
|
9436
|
+
const totalRange = Math.max(...allValues) - Math.min(...allValues);
|
|
9437
|
+
const intervalCount = Math.max(1, Math.min(12, Math.ceil(totalRange / minInterval)));
|
|
9438
|
+
unifiedInterval = Math.ceil(totalRange / Math.min(12, intervalCount));
|
|
9439
|
+
unifiedInterval = Math.max(minInterval, Math.ceil(unifiedInterval / minInterval) * minInterval);
|
|
9440
|
+
}
|
|
9441
|
+
|
|
9442
|
+
let currentTop = 0;
|
|
9443
|
+
let seriesIndex = 0;
|
|
9444
|
+
|
|
9445
|
+
dataGroups.forEach((group, groupIndex) => {
|
|
9446
|
+
const groupDepths = group.map((item) => +item[axisKey]);
|
|
9447
|
+
const groupMin = Math.min(...groupDepths);
|
|
9448
|
+
const groupMax = Math.max(...groupDepths);
|
|
9449
|
+
const groupHeight = (groupHeights[groupIndex] / totalHeight) * 100;
|
|
9450
|
+
const gridIndex = newYAxis.length;
|
|
9451
|
+
|
|
9452
|
+
const gridItem = {
|
|
9453
|
+
top: `${currentTop}%`,
|
|
9454
|
+
left: 2,
|
|
9455
|
+
right: 2,
|
|
9456
|
+
height: `${groupHeight}%`,
|
|
9457
|
+
show: false,
|
|
9458
|
+
containLabel: false,
|
|
9459
|
+
};
|
|
9460
|
+
|
|
9461
|
+
const currentGrid = currentOption.grid && currentOption.grid[gridIndex];
|
|
9462
|
+
if (!currentGrid || currentGrid.top !== gridItem.top || currentGrid.height !== gridItem.height) {
|
|
9463
|
+
needUpdate.grid = true;
|
|
9464
|
+
}
|
|
9465
|
+
newGrid.push(gridItem);
|
|
9466
|
+
|
|
9467
|
+
const yAxisItem = {
|
|
9468
|
+
gridIndex: gridIndex,
|
|
9469
|
+
type: "value",
|
|
9470
|
+
min: groupMin,
|
|
9471
|
+
max: groupMax,
|
|
9472
|
+
inverse: true,
|
|
9473
|
+
boundaryGap: false,
|
|
9474
|
+
interval: unifiedInterval,
|
|
9475
|
+
};
|
|
9476
|
+
|
|
9477
|
+
const currentYAxis = currentOption.yAxis && currentOption.yAxis[gridIndex];
|
|
9478
|
+
if (
|
|
9479
|
+
!currentYAxis ||
|
|
9480
|
+
currentYAxis.min !== groupMin ||
|
|
9481
|
+
currentYAxis.max !== groupMax ||
|
|
9482
|
+
currentYAxis.interval !== unifiedInterval
|
|
9483
|
+
) {
|
|
9484
|
+
needUpdate.yAxis = true;
|
|
9485
|
+
}
|
|
9486
|
+
newYAxis.push(yAxisItem);
|
|
9487
|
+
|
|
9488
|
+
if (isDepthLane) {
|
|
9489
|
+
const xAxisItem = {
|
|
9490
|
+
gridIndex: gridIndex,
|
|
9491
|
+
type: "value",
|
|
9492
|
+
min: 0,
|
|
9493
|
+
max: 10,
|
|
9494
|
+
};
|
|
9495
|
+
const currentXAxis = currentOption.xAxis && currentOption.xAxis[groupIndex];
|
|
9496
|
+
if (!currentXAxis || currentXAxis.min !== 0 || currentXAxis.max !== 10) {
|
|
9497
|
+
needUpdate.xAxis = true;
|
|
9498
|
+
}
|
|
9499
|
+
newXAxis.push(xAxisItem);
|
|
9500
|
+
seriesIndex++;
|
|
8752
9501
|
} else {
|
|
8753
|
-
|
|
8754
|
-
|
|
8755
|
-
|
|
8756
|
-
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8760
|
-
|
|
8761
|
-
|
|
8762
|
-
|
|
8763
|
-
|
|
8764
|
-
|
|
9502
|
+
if (lane && lane.lines) {
|
|
9503
|
+
lane.lines.forEach((lineInfo) => {
|
|
9504
|
+
const allSeriesData = this.generateSeriesData(realTimeData, lineInfo, axisKey);
|
|
9505
|
+
const { min, max } = this.getXAxisRangeByHeader(lineInfo, allSeriesData);
|
|
9506
|
+
const isLogScale = lane.isLogScale === "1";
|
|
9507
|
+
|
|
9508
|
+
const xAxisItem = {
|
|
9509
|
+
gridIndex: gridIndex,
|
|
9510
|
+
type: isLogScale ? "log" : "value",
|
|
9511
|
+
min: isLogScale ? (this.lineRange[lineInfo.lineId]?.min > 0 ? this.lineRange[lineInfo.lineId].min : 0.1) : min,
|
|
9512
|
+
max: isLogScale ? (this.lineRange[lineInfo.lineId]?.max > 0 ? this.lineRange[lineInfo.lineId].max : 1) : max,
|
|
9513
|
+
};
|
|
9514
|
+
|
|
9515
|
+
const currentXAxis = currentOption.xAxis && currentOption.xAxis[seriesIndex];
|
|
9516
|
+
if (!currentXAxis || currentXAxis.min !== xAxisItem.min || currentXAxis.max !== xAxisItem.max) {
|
|
9517
|
+
needUpdate.xAxis = true;
|
|
9518
|
+
}
|
|
9519
|
+
newXAxis.push(xAxisItem);
|
|
9520
|
+
|
|
9521
|
+
const seriesData = this.generateSeriesData(group, lineInfo, axisKey);
|
|
9522
|
+
const finalSeriesData = lineInfo.isUsed === "1" ? seriesData : [];
|
|
9523
|
+
|
|
9524
|
+
const currentSeries = currentOption.series && currentOption.series[seriesIndex];
|
|
9525
|
+
if (!currentSeries || JSON.stringify(currentSeries.data) !== JSON.stringify(finalSeriesData)) {
|
|
9526
|
+
needUpdate.series = true;
|
|
9527
|
+
newSeriesData.push({ index: seriesIndex, data: finalSeriesData });
|
|
9528
|
+
}
|
|
9529
|
+
|
|
9530
|
+
seriesIndex++;
|
|
9531
|
+
});
|
|
9532
|
+
}
|
|
9533
|
+
}
|
|
9534
|
+
|
|
9535
|
+
currentTop += groupHeight;
|
|
9536
|
+
});
|
|
9537
|
+
|
|
9538
|
+
if (needUpdate.grid) {
|
|
9539
|
+
updates.grid = newGrid;
|
|
9540
|
+
}
|
|
9541
|
+
if (needUpdate.yAxis) {
|
|
9542
|
+
updates.yAxis = newYAxis;
|
|
9543
|
+
}
|
|
9544
|
+
if (needUpdate.xAxis) {
|
|
9545
|
+
updates.xAxis = newXAxis;
|
|
9546
|
+
}
|
|
9547
|
+
if (needUpdate.series) {
|
|
9548
|
+
updates.series = [];
|
|
9549
|
+
newSeriesData.forEach((item) => {
|
|
9550
|
+
updates.series.push({
|
|
9551
|
+
update: {
|
|
9552
|
+
index: item.index,
|
|
9553
|
+
data: item.data,
|
|
8765
9554
|
},
|
|
8766
|
-
// areaStyle: {
|
|
8767
|
-
// color: {
|
|
8768
|
-
// type: "linear", // 线性渐变
|
|
8769
|
-
// x: 0,
|
|
8770
|
-
// y: 0, // 渐变起点:图形顶部
|
|
8771
|
-
// x2: 0,
|
|
8772
|
-
// y2: 1, // 渐变终点:图形底部(垂直方向渐变)
|
|
8773
|
-
// colorStops: seriesData.map((item, index) => {
|
|
8774
|
-
// return {
|
|
8775
|
-
// offset: Math.max(0, Math.min(1, index / (seriesData.length - 1 || 1))),
|
|
8776
|
-
// color: this.getFixedColorFromGradient(
|
|
8777
|
-
// lanes[laneIndex][lineIndex].titleLineColor,
|
|
8778
|
-
// item,
|
|
8779
|
-
// lanes[laneIndex][lineIndex].paramId,
|
|
8780
|
-
// 0,
|
|
8781
|
-
// ),
|
|
8782
|
-
// };
|
|
8783
|
-
// }),
|
|
8784
|
-
// },
|
|
8785
|
-
// opacity: 1,
|
|
8786
|
-
// },
|
|
8787
9555
|
});
|
|
8788
|
-
}
|
|
9556
|
+
});
|
|
9557
|
+
}
|
|
9558
|
+
|
|
9559
|
+
if (Object.keys(updates).length > 0) {
|
|
9560
|
+
chart.setOption(updates, { notMerge: false, lazyUpdate: true });
|
|
8789
9561
|
}
|
|
8790
|
-
optionFromRealTimeData.selectList.push(lanes[laneIndex][lineIndex].visible);
|
|
8791
|
-
optionFromRealTimeData.titleLineColor.push(lanes[laneIndex][lineIndex].titleLineColor);
|
|
8792
|
-
optionFromRealTimeData.color.push(lanes[laneIndex][lineIndex].color);
|
|
8793
9562
|
}
|
|
8794
|
-
|
|
9563
|
+
} catch (error) {
|
|
9564
|
+
console.error("updateLanesChartOptionIncremental error:", error);
|
|
9565
|
+
} finally {
|
|
9566
|
+
this.isUpdatingChart = false;
|
|
9567
|
+
}
|
|
9568
|
+
},
|
|
9569
|
+
async clearEcharts() {
|
|
9570
|
+
try {
|
|
9571
|
+
this.allOptions = [];
|
|
9572
|
+
|
|
9573
|
+
// 强制更新视图
|
|
8795
9574
|
await this.$nextTick();
|
|
8796
|
-
this
|
|
9575
|
+
this.$forceUpdate();
|
|
9576
|
+
} catch (e) {
|
|
9577
|
+
console.error("清空图表失败:", e);
|
|
8797
9578
|
}
|
|
8798
9579
|
},
|
|
8799
9580
|
// 数据去重
|
|
8800
|
-
|
|
8801
|
-
//
|
|
8802
|
-
|
|
8803
|
-
const newDataArr = Array.isArray(newData) ? newData : [newData];
|
|
8804
|
-
let resultData = JSON.parse(JSON.stringify(existingData));
|
|
8805
|
-
newDataArr.forEach((newItem) => {
|
|
8806
|
-
if (!newItem || !newItem[uniqueKey]) return;
|
|
8807
|
-
const duplicateIndex = resultData.findIndex((item) => item[uniqueKey] === newItem[uniqueKey]);
|
|
8808
|
-
if (duplicateIndex > -1) {
|
|
8809
|
-
resultData[duplicateIndex] = newItem;
|
|
8810
|
-
} else {
|
|
8811
|
-
resultData.push(newItem);
|
|
8812
|
-
}
|
|
8813
|
-
});
|
|
8814
|
-
resultData.sort((a, b) => {
|
|
8815
|
-
const valA = a[uniqueKey];
|
|
8816
|
-
const valB = b[uniqueKey];
|
|
9581
|
+
uniqueByKeys(arr, keys) {
|
|
9582
|
+
// 非数组直接返回空
|
|
9583
|
+
if (!Array.isArray(arr)) return [];
|
|
8817
9584
|
|
|
8818
|
-
|
|
8819
|
-
|
|
9585
|
+
// 把单个属性转为数组,统一处理
|
|
9586
|
+
const keyList = Array.isArray(keys) ? keys : [keys];
|
|
9587
|
+
|
|
9588
|
+
// 用于记录已经出现过的组合标识
|
|
9589
|
+
const seen = new Set();
|
|
9590
|
+
|
|
9591
|
+
return arr.filter((item) => {
|
|
9592
|
+
// 过滤非对象元素
|
|
9593
|
+
if (typeof item !== "object" || item === null) return false;
|
|
9594
|
+
|
|
9595
|
+
// 生成唯一标识:多属性用 | 拼接,避免属性值冲突
|
|
9596
|
+
const identifier = keyList.map((key) => item[key]).join("|");
|
|
9597
|
+
|
|
9598
|
+
// 已经存在 → 过滤掉;不存在 → 保留并加入Set
|
|
9599
|
+
if (seen.has(identifier)) {
|
|
9600
|
+
return false;
|
|
8820
9601
|
} else {
|
|
8821
|
-
|
|
9602
|
+
seen.add(identifier);
|
|
9603
|
+
return true;
|
|
8822
9604
|
}
|
|
8823
9605
|
});
|
|
8824
|
-
|
|
8825
|
-
return resultData;
|
|
8826
9606
|
},
|
|
8827
|
-
|
|
9607
|
+
// 根据 uniqueKey 去重并排序(只考虑 uniqueKey)
|
|
8828
9608
|
deduplicateByUniqueKey(existingData, newData, uniqueKey, options = {}) {
|
|
8829
9609
|
// 处理默认配置
|
|
8830
|
-
const { sortOrder = "asc" } = options;
|
|
9610
|
+
const { sortOrder = "asc", isSort = true } = options;
|
|
8831
9611
|
const newDataArr = Array.isArray(newData) ? newData : [newData];
|
|
8832
9612
|
|
|
8833
9613
|
// 合并数据并去重(只根据 uniqueKey)
|
|
@@ -8846,17 +9626,19 @@ var script$2 = {
|
|
|
8846
9626
|
}
|
|
8847
9627
|
});
|
|
8848
9628
|
|
|
8849
|
-
//
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
|
|
9629
|
+
// 排序(根据 uniqueKey)
|
|
9630
|
+
if (isSort) {
|
|
9631
|
+
resultData.sort((a, b) => {
|
|
9632
|
+
const valA = a[uniqueKey];
|
|
9633
|
+
const valB = b[uniqueKey];
|
|
8853
9634
|
|
|
8854
|
-
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
|
|
8858
|
-
|
|
8859
|
-
|
|
9635
|
+
if (typeof valA === "string" && typeof valB === "string") {
|
|
9636
|
+
return sortOrder === "asc" ? valA.localeCompare(valB) : valB.localeCompare(valA);
|
|
9637
|
+
} else {
|
|
9638
|
+
return sortOrder === "asc" ? valA - valB : valB - valA;
|
|
9639
|
+
}
|
|
9640
|
+
});
|
|
9641
|
+
}
|
|
8860
9642
|
|
|
8861
9643
|
return resultData;
|
|
8862
9644
|
},
|
|
@@ -8929,6 +9711,16 @@ var script$2 = {
|
|
|
8929
9711
|
this.startX = event.clientX;
|
|
8930
9712
|
this.startWidth = this.getEffectiveLaneWidthPx(lane);
|
|
8931
9713
|
},
|
|
9714
|
+
timestampToYMDHMS(timestamp) {
|
|
9715
|
+
const date = new Date(timestamp);
|
|
9716
|
+
const h = String(date.getHours()).padStart(2, "0");
|
|
9717
|
+
const m = String(date.getMinutes()).padStart(2, "0");
|
|
9718
|
+
const s = String(date.getSeconds()).padStart(2, "0");
|
|
9719
|
+
const y = date.getFullYear();
|
|
9720
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
9721
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
9722
|
+
return `${y}-${month}-${day} ${h}:${m}:${s}`;
|
|
9723
|
+
},
|
|
8932
9724
|
resize(event) {
|
|
8933
9725
|
if (!this.isResizing || !this.currentLane) return;
|
|
8934
9726
|
|
|
@@ -9039,10 +9831,9 @@ var script$2 = {
|
|
|
9039
9831
|
} else {
|
|
9040
9832
|
this.windowSize = maxSize;
|
|
9041
9833
|
let newsize = Math.round((maxSize / this.pxToCm()) * this.depthInterval);
|
|
9042
|
-
let data =
|
|
9834
|
+
let data = this.toolBarConfig?.scaleList?.map((item) => item.value) || [];
|
|
9043
9835
|
this.$emit("updateScale", data.includes(newsize) ? newsize : `1:${newsize * 100}`);
|
|
9044
9836
|
}
|
|
9045
|
-
console.log(this.windowSize, "windowSize");
|
|
9046
9837
|
},
|
|
9047
9838
|
},
|
|
9048
9839
|
computed: {
|
|
@@ -9078,37 +9869,116 @@ var script$2 = {
|
|
|
9078
9869
|
return lineCount;
|
|
9079
9870
|
},
|
|
9080
9871
|
headerStyle() {
|
|
9081
|
-
const common = { gap: `${this.itemGap}px`, padding: `${this.headerPadding}px` };
|
|
9872
|
+
const common = { gap: `${this.currentHeaderStyle.itemGap}px`, padding: `${this.currentHeaderStyle.headerPadding}px` };
|
|
9082
9873
|
if (!this.currentTemplate) {
|
|
9083
|
-
|
|
9874
|
+
let data = {
|
|
9875
|
+
...common,
|
|
9876
|
+
height: "30%",
|
|
9877
|
+
"min-height": "60px",
|
|
9878
|
+
};
|
|
9879
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "headerHeight")) {
|
|
9880
|
+
data.height = isNumeric(this.currentHeaderStyle.headerHeight)
|
|
9881
|
+
? this.currentHeaderStyle.headerHeight + "px"
|
|
9882
|
+
: this.currentHeaderStyle.headerHeight;
|
|
9883
|
+
}
|
|
9884
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "maxHeaderHeight")) {
|
|
9885
|
+
data["max-height"] = isNumeric(this.currentHeaderStyle.maxHeaderHeight)
|
|
9886
|
+
? this.currentHeaderStyle.maxHeaderHeight + "px"
|
|
9887
|
+
: this.currentHeaderStyle.maxHeaderHeight;
|
|
9888
|
+
}
|
|
9889
|
+
return data;
|
|
9084
9890
|
} else {
|
|
9085
9891
|
const { lanes = [] } = this.currentTemplate;
|
|
9086
9892
|
if (!lanes || lanes.length == 0) {
|
|
9087
|
-
|
|
9893
|
+
let data = {
|
|
9894
|
+
...common,
|
|
9895
|
+
height: "30%",
|
|
9896
|
+
"min-height": "60px",
|
|
9897
|
+
};
|
|
9898
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "headerHeight")) {
|
|
9899
|
+
data.height = isNumeric(this.currentHeaderStyle.headerHeight)
|
|
9900
|
+
? this.currentHeaderStyle.headerHeight + "px"
|
|
9901
|
+
: this.currentHeaderStyle.headerHeight;
|
|
9902
|
+
}
|
|
9903
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "maxHeaderHeight")) {
|
|
9904
|
+
data["max-height"] = isNumeric(this.currentHeaderStyle.maxHeaderHeight)
|
|
9905
|
+
? this.currentHeaderStyle.maxHeaderHeight + "px"
|
|
9906
|
+
: this.currentHeaderStyle.maxHeaderHeight;
|
|
9907
|
+
}
|
|
9908
|
+
return data;
|
|
9088
9909
|
} else {
|
|
9089
9910
|
const gapCount = Math.max(0, this.lineCount - 1);
|
|
9090
|
-
|
|
9911
|
+
let data = {
|
|
9091
9912
|
...common,
|
|
9092
|
-
height: `${this.lineCount * (this.formCache.displayType == "header" ? this.headerItemHeight : this.headerItemHeight * 0.8) + this.headerPadding * 2 + gapCount * this.itemGap}px`,
|
|
9913
|
+
height: `${this.lineCount * (this.formCache.displayType == "header" ? this.currentHeaderStyle.headerItemHeight : this.currentHeaderStyle.headerItemHeight * 0.8) + this.currentHeaderStyle.headerPadding * 2 + gapCount * this.currentHeaderStyle.itemGap}px`,
|
|
9093
9914
|
"min-height": "60px",
|
|
9094
9915
|
};
|
|
9916
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "headerHeight")) {
|
|
9917
|
+
data.height = isNumeric(this.currentHeaderStyle.headerHeight)
|
|
9918
|
+
? this.currentHeaderStyle.headerHeight + "px"
|
|
9919
|
+
: this.currentHeaderStyle.headerHeight;
|
|
9920
|
+
}
|
|
9921
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "maxHeaderHeight")) {
|
|
9922
|
+
data["max-height"] = isNumeric(this.currentHeaderStyle.maxHeaderHeight)
|
|
9923
|
+
? this.currentHeaderStyle.maxHeaderHeight + "px"
|
|
9924
|
+
: this.currentHeaderStyle.maxHeaderHeight;
|
|
9925
|
+
}
|
|
9926
|
+
return data;
|
|
9095
9927
|
}
|
|
9096
9928
|
}
|
|
9097
9929
|
},
|
|
9098
9930
|
slotHeaderStyle() {
|
|
9099
|
-
// return { height: "30%", "min-height": "60px" };
|
|
9100
9931
|
if (!this.currentTemplate) {
|
|
9101
|
-
|
|
9932
|
+
let data = {
|
|
9933
|
+
height: "30%",
|
|
9934
|
+
"min-height": "60px",
|
|
9935
|
+
};
|
|
9936
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "headerHeight")) {
|
|
9937
|
+
data.height = isNumeric(this.currentHeaderStyle.headerHeight)
|
|
9938
|
+
? this.currentHeaderStyle.headerHeight + "px"
|
|
9939
|
+
: this.currentHeaderStyle.headerHeight;
|
|
9940
|
+
}
|
|
9941
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "maxHeaderHeight")) {
|
|
9942
|
+
data["max-height"] = isNumeric(this.currentHeaderStyle.maxHeaderHeight)
|
|
9943
|
+
? this.currentHeaderStyle.maxHeaderHeight + "px"
|
|
9944
|
+
: this.currentHeaderStyle.maxHeaderHeight;
|
|
9945
|
+
}
|
|
9946
|
+
return data;
|
|
9102
9947
|
} else {
|
|
9103
9948
|
const { lanes = [] } = this.currentTemplate;
|
|
9104
9949
|
if (!lanes || lanes.length == 0) {
|
|
9105
|
-
|
|
9950
|
+
let data = {
|
|
9951
|
+
height: "30%",
|
|
9952
|
+
"min-height": "60px",
|
|
9953
|
+
};
|
|
9954
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "headerHeight")) {
|
|
9955
|
+
data.height = isNumeric(this.currentHeaderStyle.headerHeight)
|
|
9956
|
+
? this.currentHeaderStyle.headerHeight + "px"
|
|
9957
|
+
: this.currentHeaderStyle.headerHeight;
|
|
9958
|
+
}
|
|
9959
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "maxHeaderHeight")) {
|
|
9960
|
+
data["max-height"] = isNumeric(this.currentHeaderStyle.maxHeaderHeight)
|
|
9961
|
+
? this.currentHeaderStyle.maxHeaderHeight + "px"
|
|
9962
|
+
: this.currentHeaderStyle.maxHeaderHeight;
|
|
9963
|
+
}
|
|
9964
|
+
return data;
|
|
9106
9965
|
} else {
|
|
9107
9966
|
const gapCount = Math.max(0, this.lineCount - 1);
|
|
9108
|
-
|
|
9109
|
-
height: `${this.lineCount * (this.formCache.displayType == "header" ? this.headerItemHeight : this.headerItemHeight * 0.8) + this.headerPadding * 2 + gapCount * this.itemGap}px`,
|
|
9967
|
+
let data = {
|
|
9968
|
+
height: `${this.lineCount * (this.formCache.displayType == "header" ? this.currentHeaderStyle.headerItemHeight : this.currentHeaderStyle.headerItemHeight * 0.8) + this.currentHeaderStyle.headerPadding * 2 + gapCount * this.currentHeaderStyle.itemGap}px`,
|
|
9110
9969
|
"min-height": "60px",
|
|
9111
9970
|
};
|
|
9971
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "headerHeight")) {
|
|
9972
|
+
data.height = isNumeric(this.currentHeaderStyle.headerHeight)
|
|
9973
|
+
? this.currentHeaderStyle.headerHeight + "px"
|
|
9974
|
+
: this.currentHeaderStyle.headerHeight;
|
|
9975
|
+
}
|
|
9976
|
+
if (Object.prototype.hasOwnProperty.call(this.currentHeaderStyle, "maxHeaderHeight")) {
|
|
9977
|
+
data["max-height"] = isNumeric(this.currentHeaderStyle.maxHeaderHeight)
|
|
9978
|
+
? this.currentHeaderStyle.maxHeaderHeight + "px"
|
|
9979
|
+
: this.currentHeaderStyle.maxHeaderHeight;
|
|
9980
|
+
}
|
|
9981
|
+
return data;
|
|
9112
9982
|
}
|
|
9113
9983
|
}
|
|
9114
9984
|
},
|
|
@@ -9126,7 +9996,17 @@ var script$2 = {
|
|
|
9126
9996
|
handler(newVal) {
|
|
9127
9997
|
this.$nextTick(() => {
|
|
9128
9998
|
this.markLineData = newVal;
|
|
9129
|
-
this.updateLanesChartOption(
|
|
9999
|
+
this.updateLanesChartOption();
|
|
10000
|
+
});
|
|
10001
|
+
},
|
|
10002
|
+
deep: true,
|
|
10003
|
+
immediate: true,
|
|
10004
|
+
},
|
|
10005
|
+
warningAreaData: {
|
|
10006
|
+
handler(newVal) {
|
|
10007
|
+
this.$nextTick(() => {
|
|
10008
|
+
this.markAreaLineData = newVal;
|
|
10009
|
+
this.updateLanesChartOption();
|
|
9130
10010
|
});
|
|
9131
10011
|
},
|
|
9132
10012
|
deep: true,
|
|
@@ -9147,7 +10027,7 @@ var script$2 = {
|
|
|
9147
10027
|
}
|
|
9148
10028
|
if (newVal && this.formCache.axisType == "depth") {
|
|
9149
10029
|
let size = Math.round((newVal * this.depthInterval) / this.pxToCm());
|
|
9150
|
-
let data =
|
|
10030
|
+
let data = this.toolBarConfig?.scaleList?.map((item) => item.value) || [];
|
|
9151
10031
|
this.$emit("updateScale", data.includes(size) ? size : `1:${size * 100}`);
|
|
9152
10032
|
}
|
|
9153
10033
|
},
|
|
@@ -9157,27 +10037,49 @@ var script$2 = {
|
|
|
9157
10037
|
handler(val) {
|
|
9158
10038
|
if (!val || val.length === 0) return;
|
|
9159
10039
|
|
|
9160
|
-
const first = val[0];
|
|
9161
|
-
const last = val[val.length - 1];
|
|
9162
|
-
|
|
9163
10040
|
const axisKey = this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType];
|
|
9164
|
-
// depth 或 timeStamp
|
|
9165
10041
|
|
|
9166
|
-
|
|
9167
|
-
|
|
10042
|
+
if (this.formCache.axisType === "depth") {
|
|
10043
|
+
// 按grid分组传递visibleData
|
|
10044
|
+
const dataGroups = splitArrayByDepth(val, axisKey);
|
|
10045
|
+
const first = val[0];
|
|
10046
|
+
const last = val[val.length - 1];
|
|
10047
|
+
const firstValue = first && first[axisKey];
|
|
10048
|
+
const lastValue = last && last[axisKey];
|
|
10049
|
+
const newParams = { firstValue, lastValue, settings: cloneDeep(this.formCache), dataGroups };
|
|
9168
10050
|
|
|
9169
|
-
|
|
10051
|
+
// 比较是否与上次触发时的参数相同
|
|
10052
|
+
if (
|
|
10053
|
+
this.lastVisibleDataChangeParams &&
|
|
10054
|
+
this.lastVisibleDataChangeParams.firstValue === firstValue &&
|
|
10055
|
+
this.lastVisibleDataChangeParams.lastValue === lastValue &&
|
|
10056
|
+
JSON.stringify(this.lastVisibleDataChangeParams.settings) === JSON.stringify(newParams.settings)
|
|
10057
|
+
) {
|
|
10058
|
+
return;
|
|
10059
|
+
}
|
|
10060
|
+
|
|
10061
|
+
this.lastVisibleDataChangeParams = newParams;
|
|
10062
|
+
this.$emit("visibleDataChange", { firstValue, lastValue, settings: this.formCache, dataGroups });
|
|
10063
|
+
} else {
|
|
10064
|
+
const first = val[0];
|
|
10065
|
+
const last = val[val.length - 1];
|
|
10066
|
+
const firstValue = first && first[axisKey];
|
|
10067
|
+
const lastValue = last && last[axisKey];
|
|
10068
|
+
const newParams = { firstValue, lastValue, settings: cloneDeep(this.formCache) };
|
|
9170
10069
|
|
|
9171
|
-
|
|
9172
|
-
|
|
9173
|
-
this.lastVisibleDataChangeParams
|
|
10070
|
+
// 比较是否与上次触发时的参数相同
|
|
10071
|
+
if (
|
|
10072
|
+
this.lastVisibleDataChangeParams &&
|
|
10073
|
+
this.lastVisibleDataChangeParams.firstValue === firstValue &&
|
|
9174
10074
|
this.lastVisibleDataChangeParams.lastValue === lastValue &&
|
|
9175
|
-
JSON.stringify(this.lastVisibleDataChangeParams.settings) === JSON.stringify(newParams.settings)
|
|
9176
|
-
|
|
9177
|
-
|
|
10075
|
+
JSON.stringify(this.lastVisibleDataChangeParams.settings) === JSON.stringify(newParams.settings)
|
|
10076
|
+
) {
|
|
10077
|
+
return;
|
|
10078
|
+
}
|
|
9178
10079
|
|
|
9179
|
-
|
|
9180
|
-
|
|
10080
|
+
this.lastVisibleDataChangeParams = newParams;
|
|
10081
|
+
this.$emit("visibleDataChange", { firstValue, lastValue, settings: this.formCache });
|
|
10082
|
+
}
|
|
9181
10083
|
},
|
|
9182
10084
|
immediate: true,
|
|
9183
10085
|
deep: true,
|
|
@@ -9189,9 +10091,26 @@ var script$2 = {
|
|
|
9189
10091
|
if (JSON.stringify(this.initialRealTimeData || {}) === "{}") {
|
|
9190
10092
|
this.initialRealTimeData = cloneDeep(newVal || {});
|
|
9191
10093
|
}
|
|
9192
|
-
|
|
10094
|
+
let processedData = cloneDeep(newVal && newVal.data) || [];
|
|
10095
|
+
if (this.formCache.axisType == "time") {
|
|
10096
|
+
const axisKey = (this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]) || "time";
|
|
10097
|
+
processedData = processedData.map((item) => ({
|
|
10098
|
+
...item,
|
|
10099
|
+
[axisKey]: this.toMillisecondTimestamp(item[axisKey]),
|
|
10100
|
+
}));
|
|
10101
|
+
|
|
10102
|
+
this.realTimeData = this.deduplicateByUniqueKey(this.realTimeData, processedData, axisKey);
|
|
10103
|
+
this.realTimeData = processedData;
|
|
10104
|
+
console.log(this.realTimeData, "this.realTimeData");
|
|
10105
|
+
} else {
|
|
10106
|
+
processedData = processedData.map((item) => ({
|
|
10107
|
+
...item,
|
|
10108
|
+
timestamp: this.toMillisecondTimestamp(item.timestamp),
|
|
10109
|
+
}));
|
|
10110
|
+
this.realTimeData = processedData;
|
|
10111
|
+
}
|
|
9193
10112
|
if (this.formCache.axisType == "depth") {
|
|
9194
|
-
this.updateSettings({ key: "
|
|
10113
|
+
this.updateSettings({ key: "scale", value: this.toolBarConfig.form.scale });
|
|
9195
10114
|
} else {
|
|
9196
10115
|
this.updateSettings({ key: "timeRange", value: this.toolBarConfig.form.timeRange });
|
|
9197
10116
|
}
|
|
@@ -9202,23 +10121,49 @@ var script$2 = {
|
|
|
9202
10121
|
this.realTimeData,
|
|
9203
10122
|
(this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]) || "depth",
|
|
9204
10123
|
);
|
|
9205
|
-
if (data.
|
|
9206
|
-
this.depthInterval =
|
|
10124
|
+
if (data && data.avgGap !== undefined && data.avgGap !== null) {
|
|
10125
|
+
this.depthInterval = data.avgGap;
|
|
9207
10126
|
} else {
|
|
9208
10127
|
this.depthInterval = 1;
|
|
9209
10128
|
}
|
|
10129
|
+
// 从scaleList计算minWindowSize和maxWindowSize
|
|
10130
|
+
this.initWindowSizeRange();
|
|
10131
|
+
console.log(this.depthInterval, "当前深度间隔", data);
|
|
9210
10132
|
}
|
|
9211
10133
|
this.updateLanesChartOption();
|
|
9212
10134
|
} else {
|
|
9213
|
-
let data = (newVal && newVal.data) || [];
|
|
10135
|
+
let data = cloneDeep(newVal && newVal.data) || [];
|
|
9214
10136
|
if (!Array.isArray(data)) {
|
|
9215
10137
|
data = [data];
|
|
9216
10138
|
}
|
|
9217
|
-
|
|
9218
|
-
|
|
9219
|
-
|
|
9220
|
-
this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]
|
|
9221
|
-
|
|
10139
|
+
const direction = newVal.direction || "bottom";
|
|
10140
|
+
|
|
10141
|
+
if (this.formCache.axisType == "time") {
|
|
10142
|
+
const axisKey = (this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType]) || "time";
|
|
10143
|
+
data = data.map((item) => ({
|
|
10144
|
+
...item,
|
|
10145
|
+
[axisKey]: this.toMillisecondTimestamp(item[axisKey]),
|
|
10146
|
+
}));
|
|
10147
|
+
|
|
10148
|
+
this.realTimeData = this.deduplicateByUniqueKey(
|
|
10149
|
+
this.realTimeData,
|
|
10150
|
+
data,
|
|
10151
|
+
this.toolBarConfig.axisTypeList && this.toolBarConfig.axisTypeList[this.formCache.axisType],
|
|
10152
|
+
);
|
|
10153
|
+
} else {
|
|
10154
|
+
data = data.map((item) => ({
|
|
10155
|
+
...item,
|
|
10156
|
+
timestamp: this.toMillisecondTimestamp(item.timestamp),
|
|
10157
|
+
}));
|
|
10158
|
+
|
|
10159
|
+
// 深度轴模式:根据direction插入数据
|
|
10160
|
+
if (direction === "top") {
|
|
10161
|
+
this.realTimeData = this.uniqueByKeys([...data, ...this.realTimeData], "timestamp");
|
|
10162
|
+
} else {
|
|
10163
|
+
this.realTimeData = this.uniqueByKeys([...this.realTimeData, ...data], "timestamp");
|
|
10164
|
+
}
|
|
10165
|
+
}
|
|
10166
|
+
|
|
9222
10167
|
if (this.formCache.dataType == "history") {
|
|
9223
10168
|
let findIndex = this.realTimeData.findIndex(
|
|
9224
10169
|
(item) =>
|
|
@@ -9229,7 +10174,7 @@ var script$2 = {
|
|
|
9229
10174
|
if (findIndex > -1) {
|
|
9230
10175
|
this.startIndex = findIndex;
|
|
9231
10176
|
}
|
|
9232
|
-
this.updateLanesChartOption(
|
|
10177
|
+
this.updateLanesChartOption();
|
|
9233
10178
|
} else {
|
|
9234
10179
|
this.checkReachBottom();
|
|
9235
10180
|
}
|
|
@@ -9241,7 +10186,7 @@ var script$2 = {
|
|
|
9241
10186
|
},
|
|
9242
10187
|
};
|
|
9243
10188
|
|
|
9244
|
-
var css_248z$3 = ".kd-lane-chart-container[data-v-
|
|
10189
|
+
var css_248z$3 = ".kd-lane-chart-container[data-v-6801b46d] {\n height: 100%;\n width: 100%;\n overflow: hidden;\n position: relative;\n border: 1px solid var(--kd-lane-container-border-color, #333);\n display: flex;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container[data-v-6801b46d],\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container[data-v-6801b46d] {\n height: 100%;\n min-width: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n position: relative;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-resize-handle[data-v-6801b46d],\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-resize-handle[data-v-6801b46d] {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 4px;\n cursor: col-resize;\n z-index: 10;\n background-color: transparent;\n transition: background-color 0.2s;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-resize-handle[data-v-6801b46d]:hover,\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-resize-handle[data-v-6801b46d]:hover {\n background-color: var(--resizer-bg-color);\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-resize-handle.kd-lane-resize-handle-left[data-v-6801b46d],\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-resize-handle.kd-lane-resize-handle-left[data-v-6801b46d] {\n left: 0;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-resize-handle.kd-lane-resize-handle-right[data-v-6801b46d],\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-resize-handle.kd-lane-resize-handle-right[data-v-6801b46d] {\n right: -2px;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-chart-lane-header[data-v-6801b46d],\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-chart-lane-header[data-v-6801b46d] {\n max-height: 30%;\n overflow: hidden;\n z-index: 2;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-chart-lane-header .header-list-gap[data-v-6801b46d],\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-chart-lane-header .header-list-gap[data-v-6801b46d] {\n display: flex;\n overflow-x: hidden;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-chart-lane-header .header-list-gap[data-v-6801b46d] ::-webkit-scrollbar,\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-chart-lane-header .header-list-gap[data-v-6801b46d] ::-webkit-scrollbar {\n display: none;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container .kd-lane-chart-lane-header .header-list-gap[data-v-6801b46d],\n.kd-lane-chart-container .kd-lane-chart-lane-slot-container .kd-lane-chart-lane-header .header-list-gap[data-v-6801b46d] {\n flex-direction: column;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container-echart[data-v-6801b46d] {\n flex: 1;\n overflow-x: hidden;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n.kd-lane-chart-container .kd-lane-chart-lane-container-echart .kd-lane-chart-lane-container-echart-content[data-v-6801b46d] {\n height: 100%;\n overflow: hidden;\n}\n.kd-lane-chart-container .border-left[data-v-6801b46d] {\n border-left: 1px solid var(--kd-lane-container-border-color, #333);\n}\n.kd-lane-chart-container .border-bottom[data-v-6801b46d] {\n border-bottom: 1px solid var(--kd-lane-container-border-color, #333);\n}\n.kd-lane-chart-container .border-right[data-v-6801b46d] {\n border-right: 1px solid var(--kd-lane-container-border-color, #333);\n}\n.kd-lane-chart-container .kd-lane-chart-container-draw-area[data-v-6801b46d] {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n border: none;\n}\n.kd-lane-chart-container .kd-lane-chart-container-draw-area[data-v-6801b46d] {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n border: none;\n}";
|
|
9245
10190
|
styleInject(css_248z$3);
|
|
9246
10191
|
|
|
9247
10192
|
/* script */
|
|
@@ -9326,7 +10271,10 @@ var __vue_render__$2 = function () {
|
|
|
9326
10271
|
staticClass:
|
|
9327
10272
|
"kd-lane-chart-lane-container-echart",
|
|
9328
10273
|
style: {
|
|
9329
|
-
padding:
|
|
10274
|
+
padding:
|
|
10275
|
+
"0 " +
|
|
10276
|
+
_vm.currentHeaderStyle.itemGap +
|
|
10277
|
+
"px",
|
|
9330
10278
|
},
|
|
9331
10279
|
},
|
|
9332
10280
|
[
|
|
@@ -9342,7 +10290,10 @@ var __vue_render__$2 = function () {
|
|
|
9342
10290
|
staticClass:
|
|
9343
10291
|
"kd-lane-chart-lane-container-echart",
|
|
9344
10292
|
style: {
|
|
9345
|
-
padding:
|
|
10293
|
+
padding:
|
|
10294
|
+
"0 " +
|
|
10295
|
+
_vm.currentHeaderStyle.itemGap +
|
|
10296
|
+
"px",
|
|
9346
10297
|
},
|
|
9347
10298
|
},
|
|
9348
10299
|
[
|
|
@@ -9416,7 +10367,10 @@ var __vue_render__$2 = function () {
|
|
|
9416
10367
|
"draggable",
|
|
9417
10368
|
{
|
|
9418
10369
|
staticClass: "header-list-gap",
|
|
9419
|
-
style: {
|
|
10370
|
+
style: {
|
|
10371
|
+
gap:
|
|
10372
|
+
_vm.currentHeaderStyle.itemGap + "px",
|
|
10373
|
+
},
|
|
9420
10374
|
attrs: {
|
|
9421
10375
|
animation: 200,
|
|
9422
10376
|
fallbackOnBody: true,
|
|
@@ -9443,6 +10397,7 @@ var __vue_render__$2 = function () {
|
|
|
9443
10397
|
paramsNameMap: _vm.paramsNameMap,
|
|
9444
10398
|
visibleData: _vm.visibleData,
|
|
9445
10399
|
headerData: _vm.headerData,
|
|
10400
|
+
lineRange: _vm.lineRange,
|
|
9446
10401
|
},
|
|
9447
10402
|
on: { updateLine: _vm.upsertLine },
|
|
9448
10403
|
nativeOn: {
|
|
@@ -9475,7 +10430,10 @@ var __vue_render__$2 = function () {
|
|
|
9475
10430
|
staticClass:
|
|
9476
10431
|
"kd-lane-chart-lane-container-echart",
|
|
9477
10432
|
style: {
|
|
9478
|
-
padding:
|
|
10433
|
+
padding:
|
|
10434
|
+
"0 " +
|
|
10435
|
+
_vm.currentHeaderStyle.itemGap +
|
|
10436
|
+
"px",
|
|
9479
10437
|
},
|
|
9480
10438
|
},
|
|
9481
10439
|
[_vm._t("content" + lane.laneId)],
|
|
@@ -9487,7 +10445,10 @@ var __vue_render__$2 = function () {
|
|
|
9487
10445
|
staticClass:
|
|
9488
10446
|
"kd-lane-chart-lane-container-echart",
|
|
9489
10447
|
style: {
|
|
9490
|
-
padding:
|
|
10448
|
+
padding:
|
|
10449
|
+
"0 " +
|
|
10450
|
+
_vm.currentHeaderStyle.itemGap +
|
|
10451
|
+
"px",
|
|
9491
10452
|
},
|
|
9492
10453
|
},
|
|
9493
10454
|
[
|
|
@@ -9609,7 +10570,7 @@ __vue_render__$2._withStripped = true;
|
|
|
9609
10570
|
/* style */
|
|
9610
10571
|
const __vue_inject_styles__$2 = undefined;
|
|
9611
10572
|
/* scoped */
|
|
9612
|
-
const __vue_scope_id__$2 = "data-v-
|
|
10573
|
+
const __vue_scope_id__$2 = "data-v-6801b46d";
|
|
9613
10574
|
/* module identifier */
|
|
9614
10575
|
const __vue_module_identifier__$2 = undefined;
|
|
9615
10576
|
/* functional template */
|
|
@@ -9673,7 +10634,7 @@ var script$1 = {
|
|
|
9673
10634
|
},
|
|
9674
10635
|
};
|
|
9675
10636
|
|
|
9676
|
-
var css_248z$2 = "@charset \"UTF-8\";\n.panel-list[data-v-
|
|
10637
|
+
var css_248z$2 = "@charset \"UTF-8\";\n.panel-list[data-v-511db0de] {\n width: 100%; /* 可调 */\n display: grid;\n gap: 8px;\n}\n\n/* 每一项 */\n.panel-item[data-v-511db0de] {\n border: 1px solid var(--card-border-color);\n padding: 10px 6px;\n text-align: center;\n background: var(--card-color);\n}\n\n/* label */\n.label[data-v-511db0de] {\n font-size: 12px;\n color: var(--card-label-color);\n margin-bottom: 6px;\n /* 单行省略 */\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* value */\n.value[data-v-511db0de] {\n font-size: 18px;\n font-weight: bold;\n color: var(--card-value-color);\n /* 单行省略 */\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}";
|
|
9677
10638
|
styleInject(css_248z$2);
|
|
9678
10639
|
|
|
9679
10640
|
/* script */
|
|
@@ -9701,7 +10662,7 @@ var __vue_render__$1 = function () {
|
|
|
9701
10662
|
item.value !== ""
|
|
9702
10663
|
? !isNaN(Number(item.value))
|
|
9703
10664
|
? Number(item.value.toFixed(2))
|
|
9704
|
-
:
|
|
10665
|
+
: item.value
|
|
9705
10666
|
: "--"
|
|
9706
10667
|
) +
|
|
9707
10668
|
"\n "
|
|
@@ -9718,7 +10679,7 @@ __vue_render__$1._withStripped = true;
|
|
|
9718
10679
|
/* style */
|
|
9719
10680
|
const __vue_inject_styles__$1 = undefined;
|
|
9720
10681
|
/* scoped */
|
|
9721
|
-
const __vue_scope_id__$1 = "data-v-
|
|
10682
|
+
const __vue_scope_id__$1 = "data-v-511db0de";
|
|
9722
10683
|
/* module identifier */
|
|
9723
10684
|
const __vue_module_identifier__$1 = undefined;
|
|
9724
10685
|
/* functional template */
|
|
@@ -9766,17 +10727,14 @@ var script = {
|
|
|
9766
10727
|
type: Object,
|
|
9767
10728
|
default: () => ({}),
|
|
9768
10729
|
},
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
itemGap: {
|
|
9778
|
-
type: Number,
|
|
9779
|
-
default: 4,
|
|
10730
|
+
// 头部样式
|
|
10731
|
+
headerStyle: {
|
|
10732
|
+
type: Object,
|
|
10733
|
+
default: () => ({
|
|
10734
|
+
headerPadding: 4,
|
|
10735
|
+
headerItemHeight: 42,
|
|
10736
|
+
itemGap:4
|
|
10737
|
+
}),
|
|
9780
10738
|
},
|
|
9781
10739
|
customMenuList: {
|
|
9782
10740
|
type: Array,
|
|
@@ -9825,10 +10783,20 @@ var script = {
|
|
|
9825
10783
|
type: Array,
|
|
9826
10784
|
default: () => [],
|
|
9827
10785
|
},
|
|
10786
|
+
// 预警区域数据
|
|
10787
|
+
warningAreaData: {
|
|
10788
|
+
type: Array,
|
|
10789
|
+
default: () => [],
|
|
10790
|
+
},
|
|
9828
10791
|
// 自定义tooltip formatter
|
|
9829
10792
|
tooltipFormatter: {
|
|
9830
10793
|
type: Function,
|
|
9831
10794
|
},
|
|
10795
|
+
// 实时曲线menu右击是否开启
|
|
10796
|
+
showContextMenuStatus: {
|
|
10797
|
+
type: Boolean,
|
|
10798
|
+
default: true,
|
|
10799
|
+
},
|
|
9832
10800
|
},
|
|
9833
10801
|
data() {
|
|
9834
10802
|
return {
|
|
@@ -9887,10 +10855,34 @@ var script = {
|
|
|
9887
10855
|
// 缓存初始化时的curveDatas
|
|
9888
10856
|
this.initialCurveDatas = cloneDeep(this.curveDatas || {});
|
|
9889
10857
|
},
|
|
10858
|
+
computed: {
|
|
10859
|
+
currentHeaderStyle() {
|
|
10860
|
+
let data = {
|
|
10861
|
+
headerPadding: this.headerStyle.headerPadding || 4,
|
|
10862
|
+
headerItemHeight: this.headerStyle.headerItemHeight || 42,
|
|
10863
|
+
itemGap: this.headerStyle.itemGap || 4,
|
|
10864
|
+
};
|
|
10865
|
+
if(Object.prototype.hasOwnProperty.call(this.headerStyle, 'headerHeight')){
|
|
10866
|
+
data.headerHeight = this.headerStyle.headerHeight || 'auto';
|
|
10867
|
+
}
|
|
10868
|
+
if(Object.prototype.hasOwnProperty.call(this.headerStyle, 'maxHeaderHeight')){
|
|
10869
|
+
data.maxHeaderHeight = this.headerStyle.maxHeaderHeight || 'auto';
|
|
10870
|
+
}
|
|
10871
|
+
if(Object.prototype.hasOwnProperty.call(this.headerStyle, 'headerLabelFontSize')){
|
|
10872
|
+
data.headerLabelFontSize = this.headerStyle.headerLabelFontSize || 'auto';
|
|
10873
|
+
}
|
|
10874
|
+
if(Object.prototype.hasOwnProperty.call(this.headerStyle, 'headerDataFontSize')){
|
|
10875
|
+
data.headerDataFontSize = this.headerStyle.headerDataFontSize || 'auto';
|
|
10876
|
+
}
|
|
10877
|
+
return data;
|
|
10878
|
+
},
|
|
10879
|
+
},
|
|
9890
10880
|
mounted() {
|
|
9891
10881
|
let form = cloneDeep((this.toolBarConfig && this.toolBarConfig.form) || {});
|
|
9892
10882
|
this.config = form.axisType === "depth" ? this.depthConfig : this.timeConfig;
|
|
9893
|
-
this.
|
|
10883
|
+
if(JSON.stringify(this.config) !== '{}'){
|
|
10884
|
+
this.showChartContainer = true;
|
|
10885
|
+
}
|
|
9894
10886
|
// 初始化:获取容器宽度并转换百分比为像素
|
|
9895
10887
|
this.$nextTick(() => {
|
|
9896
10888
|
this.containerWidth = (this.$refs.container && this.$refs.container.offsetWidth) || 800;
|
|
@@ -9954,7 +10946,9 @@ var script = {
|
|
|
9954
10946
|
this.enableCurveDatasWatch = false;
|
|
9955
10947
|
setTimeout(() => {
|
|
9956
10948
|
this.config = this.formCache.axisType === "depth" ? this.depthConfig : this.timeConfig;
|
|
9957
|
-
this.
|
|
10949
|
+
if(JSON.stringify(this.config) !== '{}'){
|
|
10950
|
+
this.showChartContainer = true;
|
|
10951
|
+
}
|
|
9958
10952
|
this.cachedCurveDatas = cloneDeep(this.initialCurveDatas || {});
|
|
9959
10953
|
this.enableCurveDatasWatch = true;
|
|
9960
10954
|
}, 0);
|
|
@@ -9974,12 +10968,14 @@ var script = {
|
|
|
9974
10968
|
this.showChartContainer = false;
|
|
9975
10969
|
setTimeout(() => {
|
|
9976
10970
|
this.config = this.formCache.axisType === "depth" ? this.depthConfig : this.timeConfig;
|
|
9977
|
-
this.
|
|
10971
|
+
if(JSON.stringify(this.config) !== '{}'){
|
|
10972
|
+
this.showChartContainer = true;
|
|
10973
|
+
}
|
|
9978
10974
|
}, 0);
|
|
9979
|
-
this.$emit("updateSettings", { key: key, value: value, settings:
|
|
10975
|
+
this.$emit("updateSettings", { key: key, value: value, settings: cloneDeep(this.formCache) });
|
|
9980
10976
|
}
|
|
9981
10977
|
if (key === "dataType") {
|
|
9982
|
-
this.$emit("updateSettings", { key: key, value: value, settings:
|
|
10978
|
+
this.$emit("updateSettings", { key: key, value: value, settings: cloneDeep(this.formCache) });
|
|
9983
10979
|
}
|
|
9984
10980
|
},
|
|
9985
10981
|
// 新增:更新scale缓存
|
|
@@ -10205,10 +11201,10 @@ var script = {
|
|
|
10205
11201
|
},
|
|
10206
11202
|
};
|
|
10207
11203
|
|
|
10208
|
-
var css_248z$1 = "@charset \"UTF-8\";\n[data-theme=dark] {\n --bg-color: #1e1e1e;\n --card-color: #252526;\n --card-border-color: #4b4b4b;\n --card-label-color: #d6d6d6;\n --card-value-color: #ffffff;\n --panel-item-bg-color: #1e1e1e;\n --resizer-bg-color: rgb(177, 177, 177, 0.4);\n --panel-item-border-color: #4b4b4b;\n --default-text-color: #ffffff;\n --radio-border-color: #4b4b4b;\n --radio-checked-border-color: #f86c59;\n --radio-checked-color: #f86c59;\n --radio-checked-text-color: #ffffff;\n --radio-checked-border-color: #f86c59;\n --split-line-color: #4b4b4b;\n /* 边框颜色 */\n --border-color: #4b4b4b;\n --label-float-bg-color: rgba(255, 255, 255, 0.1);\n --slider-gradient-start: #333333;\n --slider-gradient-end: #656668;\n --slider-gradient-color: linear-gradient(0deg, #333333 0%, #656668 100%);\n --slider-content-color: #f86c59;\n --tooltip-bg-color: rgb(51, 51, 51,0.8);\n --kd-lane-container-border-color: #4b4b4b;\n --kd-lane-container-header-item-color: #ffffff;\n --kd-lane-container-header-item-warning-color: rgba(248, 108, 89, 0.6);\n --kd-lane-container-header-bg: #333333;\n --kd-lane-container-item-bg: #252526;\n --kd-lane-container-item-line-color: #4b4b4b66;\n --select-hover-bg-color: #333333;\n --select-selected-text-color: #ffcc33;\n --dialog-header: #333333;\n --dialog-button-default: #252526;\n --dialog-button-disabled-text: #ffffff;\n --in-range-text-color: #ffffff;\n --dialog-tree-text-color: #ffffff;\n}\n[data-theme=white] {\n --bg-color: #ffffff;\n --card-color: #ffffff;\n --card-border-color: #C9C9C9;\n --card-label-color: #666666;\n --card-value-color: #333333;\n --panel-item-bg-color: #ffffff;\n --resizer-bg-color: rgb(177, 177, 177,.4);\n --panel-item-border-color: #C9C9C9;\n --default-text-color: #333333;\n --radio-border-color: #C9C9C9;\n --radio-checked-border-color: #EC4521;\n --radio-checked-color: #EC4521;\n --radio-checked-text-color: #000000;\n --radio-checked-border-color: #EC4521;\n --split-line-color: #C9C9C9;\n /* 边框颜色 */\n --border-color: #C9C9C9;\n --label-float-bg-color: rgba(27, 79, 217, 0.1);\n --slider-gradient-start: #B0C2F5;\n --slider-gradient-end: #DBE5FF;\n --slider-gradient-color: linear-gradient(0deg, #B0C2F5 0%, #DBE5FF 100%);\n --slider-content-color: #EC4521;\n --tooltip-bg-color: rgba(246, 247, 248, 0.8);\n --kd-lane-container-border-color: #C9C9C9;\n --kd-lane-container-header-item-color: #333333;\n --kd-lane-container-header-item-warning-color: rgba(200, 23, 29, 0.6);\n --kd-lane-container-header-bg: #ecf4ff;\n --kd-lane-container-item-bg: #eff3ff;\n --kd-lane-container-item-line-color: #dddddd;\n --select-hover-bg-color: #E0E9FE;\n --select-selected-text-color: #1B4FD9;\n --dialog-header:#1B4FD9;\n --dialog-header-text-color: #ffffff;\n --dialog-button-default:#ffffff;\n --dialog-button-disabled-text: #FFFFFF;\n --in-range-text-color: #ffffff;\n --dialog-tree-text-color: #ffffff;\n}\n[data-theme=gray] {\n --bg-color: #ffffff;\n --card-color: #f6f7f8;\n --card-border-color: #b1b1b1;\n --card-label-color: #666666;\n --card-value-color: #333333;\n --panel-item-bg-color: #ffffff;\n --resizer-bg-color: rgb(177, 177, 177,.4);\n --panel-item-border-color: #b1b1b1;\n --default-text-color: #333333;\n --radio-border-color: #b1b1b1;\n --radio-checked-border-color: #f86c59;\n --radio-checked-color: #f86c59;\n --radio-checked-text-color: #000000;\n --radio-checked-border-color: #f86c59;\n --split-line-color: #b1b1b1;\n /* 边框颜色 */\n --border-color: #b1b1b1;\n --label-float-bg-color: rgba(128, 128, 128, 0.1);\n --slider-gradient-start: #a6a6a6;\n --slider-gradient-end: #dfdfdf;\n --slider-gradient-color: linear-gradient(0deg, #a6a6a6 0%, #dfdfdf 100%);\n --slider-content-color: #f86c59;\n --tooltip-bg-color: rgba(246, 247, 248, 0.8);\n --kd-lane-container-border-color: #b1b1b1;\n --kd-lane-container-header-item-color: #333333;\n --kd-lane-container-header-item-warning-color: rgba(177, 42, 39,0.6);\n --kd-lane-container-header-bg: #eeeeee;\n --kd-lane-container-item-bg: #f6f7f8;\n --kd-lane-container-item-line-color: #dddddd;\n --select-hover-bg-color: #dfdfdf;\n --select-selected-text-color: #ffcc33;\n --dialog-header:#EBEBEB;\n --dialog-button-default:#f6f7f8;\n --dialog-button-disabled-text: #ffffff;\n --in-range-text-color: #333333;\n --dialog-tree-text-color: #333333;\n}\n\n/* 下拉框 */\n.kd-curve-2d-select-popup {\n background: var(--bg-color) !important;\n border: 1px solid var(--border-color) !important;\n /* 列表容器(关键) */\n}\n.kd-curve-2d-select-popup .el-scrollbar__wrap {\n margin-bottom: 0 !important;\n margin-right: 0 !important;\n background: var(--bg-color) !important;\n /* 隐藏滚动条 */\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n.kd-curve-2d-select-popup .el-scrollbar__wrap::-webkit-scrollbar {\n display: none;\n}\n.kd-curve-2d-select-popup {\n /* 每一项(默认) */\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item {\n background: var(--bg-color) !important;\n color: var(--default-text-color) !important;\n /* hover */\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item.hover, .kd-curve-2d-select-popup .el-select-dropdown__item:hover {\n background: var(--select-hover-bg-color) !important;\n color: var(--default-text-color) !important;\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item.selected {\n background: var(--bg-color) !important; /* 不要灰色 */\n color: var(--select-selected-text-color) !important; /* 高亮文字(可选) */\n font-weight: bold;\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item.selected.hover, .kd-curve-2d-select-popup .el-select-dropdown__item.selected:hover {\n background: var(--select-hover-bg-color) !important;\n}\n.kd-curve-2d-select-popup {\n /* 三角箭头 */\n}\n.kd-curve-2d-select-popup[x-placement^=bottom] .popper__arrow {\n border-bottom-color: var(--border-color) !important;\n}\n.kd-curve-2d-select-popup[x-placement^=bottom] .popper__arrow::after {\n border-bottom-color: var(--bg-color) !important;\n}\n.kd-curve-2d-select-popup[x-placement^=top] .popper__arrow {\n border-top-color: var(--border-color) !important;\n}\n.kd-curve-2d-select-popup[x-placement^=top] .popper__arrow::after {\n border-top-color: var(--bg-color) !important;\n}\n.kd-curve-2d-select-popup .el-time-panel {\n background: var(--bg-color) !important;\n box-shadow: 0 2px 12px 0 transparent;\n border: 1px solid var(--border-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-panel__btn {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-spinner__item {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-spinner__item.active:not(.disabled) {\n color: var(--select-selected-text-color);\n font-weight: bold;\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-panel__footer {\n border-top: 1px solid var(--border-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-spinner__item:hover:not(.disabled):not(.active) {\n background: var(--select-hover-bg-color);\n}\n.kd-curve-2d-select-popup .el-color-picker__trigger {\n border: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-color-picker__panel {\n background: var(--bg-color) !important;\n border: 1px solid var(--dialog-header);\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-color-picker__panel .el-button--text {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-color-picker__panel .el-button--default {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n border: none;\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-color-picker__panel .el-button.is-plain:hover {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper {\n background: var(--bg-color);\n border: 1px solid var(--dialog-header);\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-input__inner {\n background: var(--bg-color) !important;\n border: 1px solid var(--border-color) !important;\n color: var(--text-color) !important;\n height: 32px !important;\n line-height: 32px !important;\n box-sizing: border-box;\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-picker__header-label {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-picker__header-label:hover {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-range-picker__time-header > .el-icon-arrow-right {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-button--text {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-picker-panel__icon-btn {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-range-picker__time-header {\n border-bottom: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-range-picker__content.is-left {\n border-right: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table th {\n border-bottom: 1px solid var(--dialog-header);\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.today span {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.available:hover {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.next-month,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.prev-month {\n color: var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.available {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.available.in-range {\n color: var(--in-range-text-color) !important;\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.end-date span,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.start-date span {\n background: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.in-range div,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.in-range div:hover,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table.is-week-mode .el-date-table__row.current div,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table.is-week-mode .el-date-table__row:hover div {\n background: var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer {\n background: var(--bg-color);\n border-top: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button--default {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n border: none;\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain,\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain:focus,\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain:hover {\n background: var(--dialog-button-default);\n color: var(--dialog-button-disabled-text);\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain {\n background: var(--dialog-button-default);\n color: var(--dialog-button-disabled-text) !important;\n}\n.kd-curve-2d-select-popup .el-popper[x-placement^=bottom] .popper__arrow::after {\n border-bottom-color: var(--bg-color) !important;\n}\n.kd-curve-2d-container {\n /* radio 自定义样式 */\n}\n.kd-curve-2d-container .el-radio {\n display: flex;\n align-items: center;\n vertical-align: middle;\n color: var(--radio-default-text-color);\n font-family: Microsoft YaHei UI, Microsoft YaHei UI;\n font-size: 14px;\n}\n.kd-curve-2d-container .el-radio__inner {\n width: 14px;\n height: 14px;\n background: transparent;\n border: 1px solid var(--radio-border-color);\n}\n.kd-curve-2d-container .el-radio__input.is-checked .el-radio__inner {\n border-color: var(--radio-checked-border-color);\n background: transparent;\n}\n.kd-curve-2d-container .el-radio__input.is-disabled .el-radio__inner {\n background-color: transparent;\n border-color: var(--radio-border-color);\n}\n.kd-curve-2d-container .el-radio__inner::after {\n width: 7px;\n height: 7px;\n background: var(--radio-checked-color);\n}\n.kd-curve-2d-container .el-radio.is-checked .el-radio__label {\n color: var(--radio-checked-text-color);\n font-weight: bold;\n}\n.kd-curve-2d-container {\n /* select */\n}\n.kd-curve-2d-container .el-input__inner {\n background: var(--bg-color) !important;\n border: 1px solid var(--border-color) !important;\n color: var(--text-color) !important;\n height: 32px !important;\n line-height: 32px !important;\n box-sizing: border-box;\n border-radius: 0px;\n}\n.kd-curve-2d-container {\n /* 下拉箭头 */\n}\n.kd-curve-2d-container .el-select .el-input__suffix i {\n display: none !important;\n}\n.kd-curve-2d-container .el-select .el-input__suffix {\n right: 0;\n width: 28px;\n height: 32px !important;\n line-height: 32px !important;\n background: var(--slider-gradient-color);\n display: flex;\n align-items: center;\n justify-content: center;\n border-left: 1px solid var(--border-color);\n}\n.kd-curve-2d-container .el-select .el-input__suffix::after {\n content: \"\";\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 6px solid var(--slider-content-color); /* 橙色三角 */\n}\n.kd-curve-2d-container .el-select .el-input__suffix::after {\n transition: transform 0.2s ease;\n}\n.kd-curve-2d-container .el-select .el-input.is-focus .el-input__suffix::after {\n transform: rotate(180deg);\n}\n.kd-curve-2d-container .el-dialog {\n border: 1px solid var(--card-border-color);\n}\n.kd-curve-2d-container .el-dialog .el-form-item__label {\n color: var(--default-text-color);\n font-size: 14px;\n}\n.kd-curve-2d-container .el-dialog .el-dialog__headerbtn {\n top: 11px;\n width: 24px;\n height: 24px;\n background: linear-gradient(270deg, #c73521 0%, #f86c59 100%);\n border-radius: 100px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.kd-curve-2d-container .el-dialog .el-dialog__headerbtn .el-dialog__close {\n color: #fff;\n font-size: 14px;\n font-weight: 700;\n}\n.kd-curve-2d-container .el-button {\n border-radius: 0px;\n border: none;\n}\n.kd-curve-2d-container .el-button--primary {\n background-image: linear-gradient(to bottom, #2057ea, #12338d);\n}\n.kd-curve-2d-container .el-button--default {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n}\n.kd-curve-2d-container .el-button--primary.is-disabled {\n background-image: linear-gradient(to bottom, #2f5ede, #1e3677);\n color: var(--dialog-button-disabled-text);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__nav-wrap::after {\n background-color: var(--card-border-color);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__item {\n color: var(--default-text-color);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__item.is-active {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__active-bar {\n background: var(--select-selected-text-color);\n}\n.kd-curve-2d-container .el-tree {\n background: var(--bg-color) !important;\n color: var(--default-text-color);\n font-size: 14px;\n}\n.kd-curve-2d-container .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {\n background: var(--dialog-header) !important;\n color: var(--dialog-tree-text-color);\n}\n.kd-curve-2d-container .el-tree-node__content:hover,\n.kd-curve-2d-container .el-upload-list__item:hover {\n background: var(--dialog-header) !important;\n color: var(--dialog-tree-text-color);\n}\n.kd-curve-2d-container .vue-simple-context-menu__item,\n.kd-curve-2d-container .vue-simple-context-menu__item {\n font-size: 14px !important;\n}\n.kd-curve-2d-container .kd-lane-el-container {\n border: 1px solid var(--card-border-color);\n}\n.kd-curve-2d-container .kd-lane-el-container .rtd-config-side {\n border-right: 1px solid var(--card-border-color);\n}\n.kd-curve-2d-container .el-dialog__header {\n background: var(--dialog-header);\n text-align: center;\n}\n.kd-curve-2d-container .el-dialog__header .el-dialog__title {\n color: var(--dialog-header-text-color);\n}\n.kd-curve-2d-container .el-dialog__header {\n padding: 10px 10px 10px;\n}\n.kd-curve-2d-container .el-dialog__body {\n background: var(--bg-color);\n padding: 30px 30px 10px 30px;\n}\n.kd-curve-2d-container .el-dialog__body .input-number-container .el-input__inner {\n width: calc(100% - 80px) !important;\n margin-left: 40px !important;\n}\n.kd-curve-2d-container .el-dialog__body .el-input__inner {\n color: var(--default-text-color) !important;\n}\n.kd-curve-2d-container .el-dialog__body .el-input-number__decrease,\n.kd-curve-2d-container .el-dialog__body .el-input-number__increase {\n color: var(--default-text-color);\n}\n.kd-curve-2d-container .el-dialog__body .el-input-number__increase {\n background: var(--card-color);\n color: var(--default-text-color);\n border-radius: 0px 0px 0px 0px;\n border: 1px solid var(--card-border-color);\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.kd-curve-2d-container .el-dialog__body .el-input-number__decrease {\n background: var(--card-color);\n border-radius: 0px 0px 0px 0px;\n border: 1px solid var(--card-border-color);\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.kd-curve-2d-container .el-dialog__footer {\n text-align: center;\n background: var(--bg-color);\n}\n.kd-curve-2d-container .el-date-editor {\n background: var(--bg-color) !important;\n}\n.kd-curve-2d-container .el-date-editor .el-range-input {\n background: var(--bg-color) !important;\n border-top: 1px solid var(--border-color) !important;\n border-bottom: 1px solid var(--border-color) !important;\n color: var(--text-color) !important;\n height: 32px !important;\n line-height: 32px !important;\n box-sizing: border-box;\n border-radius: 0px;\n}\n.kd-curve-2d-container .el-date-editor .el-range-separator {\n color: var(--default-text-color);\n}";
|
|
11204
|
+
var css_248z$1 = "@charset \"UTF-8\";\n[data-theme=dark] {\n --bg-color: #1e1e1e;\n --card-color: #252526;\n --card-border-color: #4b4b4b;\n --card-label-color: #d6d6d6;\n --card-value-color: #ffffff;\n --panel-item-bg-color: #1e1e1e;\n --resizer-bg-color: rgb(177, 177, 177, 0.4);\n --panel-item-border-color: #4b4b4b;\n --default-text-color: #ffffff;\n --radio-border-color: #4b4b4b;\n --radio-checked-border-color: #f86c59;\n --radio-checked-color: #f86c59;\n --radio-checked-text-color: #ffffff;\n --radio-checked-border-color: #f86c59;\n --split-line-color: #4b4b4b;\n /* 边框颜色 */\n --border-color: #4b4b4b;\n --label-float-bg-color: rgba(255, 255, 255, 0.1);\n --slider-gradient-start: #333333;\n --slider-gradient-end: #656668;\n --slider-gradient-color: linear-gradient(0deg, #333333 0%, #656668 100%);\n --slider-content-color: #f86c59;\n --tooltip-bg-color: rgb(51, 51, 51,0.8);\n --kd-lane-container-border-color: #4b4b4b;\n --kd-lane-container-header-item-color: #ffffff;\n --kd-lane-container-header-item-warning-color: rgba(248, 108, 89, 0.6);\n --kd-lane-container-header-bg: #333333;\n --kd-lane-container-item-bg: #252526;\n --kd-lane-container-item-line-color: #4b4b4b66;\n --select-hover-bg-color: #333333;\n --select-selected-text-color: #ffcc33;\n --dialog-header: #333333;\n --dialog-button-default: #252526;\n --dialog-button-disabled-text: #ffffff;\n --in-range-text-color: #ffffff;\n --dialog-tree-text-color: #ffffff;\n}\n[data-theme=white] {\n --bg-color: #ffffff;\n --card-color: #ffffff;\n --card-border-color: #C9C9C9;\n --card-label-color: #666666;\n --card-value-color: #333333;\n --panel-item-bg-color: #ffffff;\n --resizer-bg-color: rgb(177, 177, 177,.4);\n --panel-item-border-color: #C9C9C9;\n --default-text-color: #333333;\n --radio-border-color: #C9C9C9;\n --radio-checked-border-color: #EC4521;\n --radio-checked-color: #EC4521;\n --radio-checked-text-color: #000000;\n --radio-checked-border-color: #EC4521;\n --split-line-color: #C9C9C9;\n /* 边框颜色 */\n --border-color: #C9C9C9;\n --label-float-bg-color: rgba(27, 79, 217, 0.1);\n --slider-gradient-start: #B0C2F5;\n --slider-gradient-end: #DBE5FF;\n --slider-gradient-color: linear-gradient(0deg, #B0C2F5 0%, #DBE5FF 100%);\n --slider-content-color: #EC4521;\n --tooltip-bg-color: rgba(246, 247, 248, 0.8);\n --kd-lane-container-border-color: #C9C9C9;\n --kd-lane-container-header-item-color: #333333;\n --kd-lane-container-header-item-warning-color: rgba(200, 23, 29, 0.6);\n --kd-lane-container-header-bg: #ecf4ff;\n --kd-lane-container-item-bg: #eff3ff;\n --kd-lane-container-item-line-color: #dddddd;\n --select-hover-bg-color: #E0E9FE;\n --select-selected-text-color: #1B4FD9;\n --dialog-header:#1B4FD9;\n --dialog-header-text-color: #ffffff;\n --dialog-button-default:#ffffff;\n --dialog-button-disabled-text: #FFFFFF;\n --in-range-text-color: #ffffff;\n --dialog-tree-text-color: #ffffff;\n}\n[data-theme=gray] {\n --bg-color: #ffffff;\n --card-color: #f6f7f8;\n --card-border-color: #b1b1b1;\n --card-label-color: #666666;\n --card-value-color: #333333;\n --panel-item-bg-color: #ffffff;\n --resizer-bg-color: rgb(177, 177, 177,.4);\n --panel-item-border-color: #b1b1b1;\n --default-text-color: #333333;\n --radio-border-color: #b1b1b1;\n --radio-checked-border-color: #f86c59;\n --radio-checked-color: #f86c59;\n --radio-checked-text-color: #000000;\n --radio-checked-border-color: #f86c59;\n --split-line-color: #b1b1b1;\n /* 边框颜色 */\n --border-color: #b1b1b1;\n --label-float-bg-color: rgba(128, 128, 128, 0.1);\n --slider-gradient-start: #a6a6a6;\n --slider-gradient-end: #dfdfdf;\n --slider-gradient-color: linear-gradient(0deg, #a6a6a6 0%, #dfdfdf 100%);\n --slider-content-color: #f86c59;\n --tooltip-bg-color: rgba(246, 247, 248, 0.8);\n --kd-lane-container-border-color: #b1b1b1;\n --kd-lane-container-header-item-color: #333333;\n --kd-lane-container-header-item-warning-color: rgba(177, 42, 39,0.6);\n --kd-lane-container-header-bg: #eeeeee;\n --kd-lane-container-item-bg: #f6f7f8;\n --kd-lane-container-item-line-color: #dddddd;\n --select-hover-bg-color: #dfdfdf;\n --select-selected-text-color: #ffcc33;\n --dialog-header:#EBEBEB;\n --dialog-button-default:#f6f7f8;\n --dialog-button-disabled-text: #ffffff;\n --in-range-text-color: #333333;\n --dialog-tree-text-color: #333333;\n}\n\n/* 下拉框 */\n.kd-curve-2d-select-popup {\n background: var(--bg-color) !important;\n border: 1px solid var(--border-color) !important;\n /* 列表容器(关键) */\n}\n.kd-curve-2d-select-popup .el-scrollbar__wrap {\n margin-bottom: 0 !important;\n margin-right: 0 !important;\n background: var(--bg-color) !important;\n /* 隐藏滚动条 */\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n.kd-curve-2d-select-popup .el-scrollbar__wrap::-webkit-scrollbar {\n display: none;\n}\n.kd-curve-2d-select-popup {\n /* 每一项(默认) */\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item {\n background: var(--bg-color) !important;\n color: var(--default-text-color) !important;\n /* hover */\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item.hover, .kd-curve-2d-select-popup .el-select-dropdown__item:hover {\n background: var(--select-hover-bg-color) !important;\n color: var(--default-text-color) !important;\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item.selected {\n background: var(--bg-color) !important; /* 不要灰色 */\n color: var(--select-selected-text-color) !important; /* 高亮文字(可选) */\n font-weight: bold;\n}\n.kd-curve-2d-select-popup .el-select-dropdown__item.selected.hover, .kd-curve-2d-select-popup .el-select-dropdown__item.selected:hover {\n background: var(--select-hover-bg-color) !important;\n}\n.kd-curve-2d-select-popup {\n /* 三角箭头 */\n}\n.kd-curve-2d-select-popup[x-placement^=bottom] .popper__arrow {\n border-bottom-color: var(--border-color) !important;\n}\n.kd-curve-2d-select-popup[x-placement^=bottom] .popper__arrow::after {\n border-bottom-color: var(--bg-color) !important;\n}\n.kd-curve-2d-select-popup[x-placement^=top] .popper__arrow {\n border-top-color: var(--border-color) !important;\n}\n.kd-curve-2d-select-popup[x-placement^=top] .popper__arrow::after {\n border-top-color: var(--bg-color) !important;\n}\n.kd-curve-2d-select-popup .el-time-panel {\n background: var(--bg-color) !important;\n box-shadow: 0 2px 12px 0 transparent;\n border: 1px solid var(--border-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-panel__btn {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-spinner__item {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-spinner__item.active:not(.disabled) {\n color: var(--select-selected-text-color);\n font-weight: bold;\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-panel__footer {\n border-top: 1px solid var(--border-color);\n}\n.kd-curve-2d-select-popup .el-time-panel .el-time-spinner__item:hover:not(.disabled):not(.active) {\n background: var(--select-hover-bg-color);\n}\n.kd-curve-2d-select-popup .el-color-picker__trigger {\n border: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-color-picker__panel {\n background: var(--bg-color) !important;\n border: 1px solid var(--dialog-header);\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-color-picker__panel .el-button--text {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-color-picker__panel .el-button--default {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n border: none;\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-color-picker__panel .el-button.is-plain:hover {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper {\n background: var(--bg-color);\n border: 1px solid var(--dialog-header);\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-input__inner {\n background: var(--bg-color) !important;\n border: 1px solid var(--border-color) !important;\n color: var(--text-color) !important;\n height: 32px !important;\n line-height: 32px !important;\n box-sizing: border-box;\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-picker__header-label {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-picker__header-label:hover {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-range-picker__time-header > .el-icon-arrow-right {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-button--text {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-picker-panel__icon-btn {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-range-picker__time-header {\n border-bottom: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-range-picker__content.is-left {\n border-right: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table th {\n border-bottom: 1px solid var(--dialog-header);\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.today span {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.available:hover {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.next-month,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.prev-month {\n color: var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.available {\n color: var(--default-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.available.in-range {\n color: var(--in-range-text-color) !important;\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.end-date span,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.start-date span {\n background: var(--select-selected-text-color);\n}\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.in-range div,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table td.in-range div:hover,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table.is-week-mode .el-date-table__row.current div,\n.kd-curve-2d-select-popup .el-picker-panel__body-wrapper .el-date-table.is-week-mode .el-date-table__row:hover div {\n background: var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer {\n background: var(--bg-color);\n border-top: 1px solid var(--dialog-header);\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button--default {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n border: none;\n border-radius: 0px;\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain,\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain:focus,\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain:hover {\n background: var(--dialog-button-default);\n color: var(--dialog-button-disabled-text);\n}\n.kd-curve-2d-select-popup .el-picker-panel__footer .el-button.is-disabled.is-plain {\n background: var(--dialog-button-default);\n color: var(--dialog-button-disabled-text) !important;\n}\n.kd-curve-2d-select-popup .el-popper[x-placement^=bottom] .popper__arrow::after {\n border-bottom-color: var(--bg-color) !important;\n}\n.kd-curve-2d-container {\n /* radio 自定义样式 */\n}\n.kd-curve-2d-container .el-radio {\n display: flex;\n align-items: center;\n vertical-align: middle;\n color: var(--radio-default-text-color);\n font-family: Microsoft YaHei UI, Microsoft YaHei UI;\n font-size: 14px;\n}\n.kd-curve-2d-container .el-radio__inner {\n width: 14px !important;\n height: 14px !important;\n background: transparent;\n border: 1px solid var(--radio-border-color);\n}\n.kd-curve-2d-container .el-radio__input.is-checked .el-radio__inner {\n border-color: var(--radio-checked-border-color);\n background: transparent;\n}\n.kd-curve-2d-container .el-radio__input.is-disabled .el-radio__inner {\n background-color: transparent;\n border-color: var(--radio-border-color);\n}\n.kd-curve-2d-container .el-radio__inner::after {\n width: 7px !important;\n height: 7px !important;\n background: var(--radio-checked-color);\n}\n.kd-curve-2d-container .el-radio.is-checked .el-radio__label {\n color: var(--radio-checked-text-color);\n font-weight: bold;\n}\n.kd-curve-2d-container {\n /* select */\n}\n.kd-curve-2d-container .el-input__inner {\n background: var(--bg-color) !important;\n border: 1px solid var(--border-color) !important;\n color: var(--text-color) !important;\n height: 32px !important;\n line-height: 32px !important;\n box-sizing: border-box;\n border-radius: 0px;\n}\n.kd-curve-2d-container {\n /* 下拉箭头 */\n}\n.kd-curve-2d-container .el-select .el-input__suffix i {\n display: none !important;\n}\n.kd-curve-2d-container .el-select .el-input__suffix {\n right: 0;\n width: 28px !important;\n height: 32px !important;\n line-height: 32px !important;\n background: var(--slider-gradient-color);\n display: flex;\n align-items: center;\n justify-content: center;\n border-left: 1px solid var(--border-color);\n}\n.kd-curve-2d-container .el-select .el-input__suffix::after {\n content: \"\";\n width: 0 !important;\n height: 0 !important;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 6px solid var(--slider-content-color); /* 橙色三角 */\n}\n.kd-curve-2d-container .el-select .el-input__suffix::after {\n transition: transform 0.2s ease;\n}\n.kd-curve-2d-container .el-select .el-input.is-focus .el-input__suffix::after {\n transform: rotate(180deg);\n}\n.kd-curve-2d-container .el-dialog {\n border: 1px solid var(--card-border-color);\n}\n.kd-curve-2d-container .el-dialog .el-form-item__label {\n color: var(--default-text-color);\n font-size: 14px;\n}\n.kd-curve-2d-container .el-dialog .el-dialog__headerbtn {\n top: 11px !important;\n width: 24px !important;\n height: 24px !important;\n background: linear-gradient(270deg, #c73521 0%, #f86c59 100%);\n border-radius: 100px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.kd-curve-2d-container .el-dialog .el-dialog__headerbtn .el-dialog__close {\n color: #fff;\n font-size: 14px;\n font-weight: 700;\n}\n.kd-curve-2d-container .el-button {\n border-radius: 0px;\n border: none;\n}\n.kd-curve-2d-container .el-button--primary {\n background-image: linear-gradient(to bottom, #2057ea, #12338d);\n}\n.kd-curve-2d-container .el-button--default {\n background: var(--dialog-button-default);\n color: var(--default-text-color);\n}\n.kd-curve-2d-container .el-button--primary.is-disabled {\n background-image: linear-gradient(to bottom, #2f5ede, #1e3677);\n color: var(--dialog-button-disabled-text);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__nav-wrap::after {\n background-color: var(--card-border-color);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__item {\n color: var(--default-text-color);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__item.is-active {\n color: var(--select-selected-text-color);\n}\n.kd-curve-2d-container .el-tabs .el-tabs__active-bar {\n background: var(--select-selected-text-color);\n}\n.kd-curve-2d-container .el-tree {\n background: var(--bg-color) !important;\n color: var(--default-text-color);\n font-size: 14px;\n}\n.kd-curve-2d-container .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {\n background: var(--dialog-header) !important;\n color: var(--dialog-tree-text-color);\n}\n.kd-curve-2d-container .el-tree-node__content:hover,\n.kd-curve-2d-container .el-upload-list__item:hover {\n background: var(--dialog-header) !important;\n color: var(--dialog-tree-text-color);\n}\n.kd-curve-2d-container .vue-simple-context-menu__item,\n.kd-curve-2d-container .vue-simple-context-menu__item {\n font-size: 14px !important;\n}\n.kd-curve-2d-container .kd-lane-el-container {\n border: 1px solid var(--card-border-color);\n}\n.kd-curve-2d-container .kd-lane-el-container .rtd-config-side {\n border-right: 1px solid var(--card-border-color);\n}\n.kd-curve-2d-container .el-dialog__header {\n background: var(--dialog-header);\n text-align: center;\n}\n.kd-curve-2d-container .el-dialog__header .el-dialog__title {\n color: var(--dialog-header-text-color);\n}\n.kd-curve-2d-container .el-dialog__header {\n padding: 10px 10px 10px;\n}\n.kd-curve-2d-container .el-dialog__body {\n background: var(--bg-color);\n padding: 30px 30px 10px 30px;\n}\n.kd-curve-2d-container .el-dialog__body .input-number-container .el-input__inner {\n width: calc(100% - 80px) !important;\n margin-left: 40px !important;\n}\n.kd-curve-2d-container .el-dialog__body .el-input__inner {\n color: var(--default-text-color) !important;\n}\n.kd-curve-2d-container .el-dialog__body .el-input-number__decrease,\n.kd-curve-2d-container .el-dialog__body .el-input-number__increase {\n color: var(--default-text-color);\n}\n.kd-curve-2d-container .el-dialog__body .el-input-number__increase {\n background: var(--card-color);\n color: var(--default-text-color);\n border-radius: 0px 0px 0px 0px;\n border: 1px solid var(--card-border-color);\n width: 30px !important;\n height: 30px !important;\n line-height: 30px !important;\n}\n.kd-curve-2d-container .el-dialog__body .el-input-number__decrease {\n background: var(--card-color);\n border-radius: 0px 0px 0px 0px;\n border: 1px solid var(--card-border-color);\n width: 30px !important;\n height: 30px !important;\n line-height: 30px !important;\n}\n.kd-curve-2d-container .el-dialog__footer {\n text-align: center;\n background: var(--bg-color);\n}\n.kd-curve-2d-container .el-date-editor {\n background: var(--bg-color) !important;\n}\n.kd-curve-2d-container .el-date-editor .el-range-input {\n background: var(--bg-color) !important;\n border-top: 1px solid var(--border-color) !important;\n border-bottom: 1px solid var(--border-color) !important;\n color: var(--text-color) !important;\n height: 32px !important;\n line-height: 32px !important;\n box-sizing: border-box;\n border-radius: 0px;\n}\n.kd-curve-2d-container .el-date-editor .el-range-separator {\n color: var(--default-text-color);\n}";
|
|
10209
11205
|
styleInject(css_248z$1);
|
|
10210
11206
|
|
|
10211
|
-
var css_248z = "@charset \"UTF-8\";\n.kd-curve-2d-resize-container[data-v-
|
|
11207
|
+
var css_248z = "@charset \"UTF-8\";\n.kd-curve-2d-resize-container[data-v-00924900] {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--bg-color);\n color: var(--default-text-color);\n overflow: hidden;\n /* 主容器 */\n}\n.kd-curve-2d-resize-container .container[data-v-00924900] {\n display: flex;\n flex: 1;\n width: 100%;\n overflow: hidden;\n}\n.kd-curve-2d-resize-container[data-v-00924900] {\n /* 面板通用样式 */\n}\n.kd-curve-2d-resize-container .panel[data-v-00924900] {\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n flex-shrink: 0;\n background: var(--panel-item-bg-color);\n border: 1px solid var(--panel-item-border-color);\n padding: 8px;\n /* 隐藏滚动条 */\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n.kd-curve-2d-resize-container .panel[data-v-00924900]::-webkit-scrollbar {\n display: none;\n}\n.kd-curve-2d-resize-container .panel-3[data-v-00924900] {\n flex: 1;\n min-width: 100px;\n}\n.kd-curve-2d-resize-container[data-v-00924900] {\n /* 拖拽条样式 */\n}\n.kd-curve-2d-resize-container .resizer[data-v-00924900] {\n width: 6px;\n cursor: col-resize;\n}\n.kd-curve-2d-resize-container .resizer[data-v-00924900]:hover {\n background-color: var(--resizer-bg-color);\n transition: background-color 0.2s ease;\n}";
|
|
10212
11208
|
styleInject(css_248z);
|
|
10213
11209
|
|
|
10214
11210
|
/* script */
|
|
@@ -10270,6 +11266,7 @@ var __vue_render__ = function () {
|
|
|
10270
11266
|
ref: "depthTimeChart",
|
|
10271
11267
|
attrs: {
|
|
10272
11268
|
formCache: _vm.formCache,
|
|
11269
|
+
cachedCurveDatas: _vm.cachedCurveDatas,
|
|
10273
11270
|
depthTimeChartData: _vm.depthTimeChartData,
|
|
10274
11271
|
},
|
|
10275
11272
|
on: { depthTimeChange: _vm.handleDepthTimeChange },
|
|
@@ -10313,6 +11310,7 @@ var __vue_render__ = function () {
|
|
|
10313
11310
|
config: _vm.config,
|
|
10314
11311
|
formCache: _vm.formCache,
|
|
10315
11312
|
cachedCurveDatas: _vm.cachedCurveDatas,
|
|
11313
|
+
currentHeaderStyle: _vm.currentHeaderStyle,
|
|
10316
11314
|
},
|
|
10317
11315
|
on: {
|
|
10318
11316
|
updateScale: _vm.updateScale,
|
|
@@ -10406,7 +11404,7 @@ __vue_render__._withStripped = true;
|
|
|
10406
11404
|
/* style */
|
|
10407
11405
|
const __vue_inject_styles__ = undefined;
|
|
10408
11406
|
/* scoped */
|
|
10409
|
-
const __vue_scope_id__ = "data-v-
|
|
11407
|
+
const __vue_scope_id__ = "data-v-00924900";
|
|
10410
11408
|
/* module identifier */
|
|
10411
11409
|
const __vue_module_identifier__ = undefined;
|
|
10412
11410
|
/* functional template */
|