@flexem/fc-gui 3.0.0-alpha.97 → 3.0.0-alpha.99

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/CHANGELOG.md CHANGED
@@ -410,7 +410,38 @@
410
410
  2. 修复在鸿蒙系统的手机上,视频元件的控制按钮显示异常的问题
411
411
  3. 修复ios系统中视频放大缩小后,画面会变形的问题
412
412
 
413
+ ## 3.0.0-alpha.92(2023-07-18)
414
+ ### Web端
415
+ #### Features
416
+ 1. FLEXCLOUD-2710 【氚云20230621000600】组态历史曲线表:历史曲线增加点位标记,便于直观看到曲线采样点的变化
417
+
418
+ ## 3.0.0-alpha.93(2023-07-21)
419
+ ### Web端
420
+ #### Features
421
+ 1. FLEXCLOUD-2741 【氚云20230714001409】模板的模拟功能,无法进行写值,一直提示提交中
422
+
423
+ ## 3.0.0-alpha.94(2023-07-21)
424
+ ### Web端
425
+ #### Features
426
+ 1. FLEXCLOUD-2710 【氚云20230621000600】组态历史曲线表:历史曲线增加点位标记,便于直观看到曲线采样点的变化
427
+ - 修改标记点大小
428
+
429
+ ## 3.0.0-alpha.96(2023-09-26)
430
+ ### Web端
431
+ #### Bug Fix
432
+ 1. FLEXCLOUD-2864 2018年创建的模板组态写值失败(在补丁包v2.22.0-Hotfix5中使用,其它分支不要用)
433
+
413
434
  ## 3.0.0-alpha.97(2023-09-26)
414
435
  ### Web端
415
436
  #### Bug Fix
416
- 1. FLEXCLOUD-2864 2018年创建的模板组态写值失败(给APP补丁包v2.8.0中使用)
437
+ 1. FLEXCLOUD-2864 2018年创建的模板组态写值失败(给APP补丁包v2.8.0中使用)
438
+
439
+ ## 3.0.0-alpha.98(2023-09-26)
440
+ ### Web端
441
+ #### Bug Fix
442
+ 1. FLEXCLOUD-2864 2018年创建的模板组态写值失败(在开发分支上使用)
443
+
444
+ ## 3.0.0-alpha.99(2023-11-27)
445
+ ### Web端
446
+ #### Features
447
+ 1. FLEXCLOUD-2885 设备模板—组态设计—告警表/历史曲线表,分页、时间选择背景为透明
@@ -36357,6 +36357,7 @@ class historical_curve_element_HistoricalCurveElement extends conditional_displa
36357
36357
  operationButtonMargin: 4
36358
36358
  };
36359
36359
  this.elementStatus = HistoricalCurveElementStatus.Loading;
36360
+ this.data = [];
36360
36361
  this.logger = injector.get(logger["b" /* LOGGER_SERVICE_TOKEN */]);
36361
36362
  this.localization = injector.get(_tmp_localization["b" /* LOCALIZATION */]);
36362
36363
  this.timePeriods = this.getValidTimePeriods();
@@ -36468,6 +36469,7 @@ class historical_curve_element_HistoricalCurveElement extends conditional_displa
36468
36469
  Object(lodash["each"])(result, v => values.push({ x: moment(v.time).local().toDate().valueOf(), y: v.values[key] }));
36469
36470
  data.push({ key: channel.name, area: channel.projectEnabled, values: values });
36470
36471
  });
36472
+ this.data = data;
36471
36473
  nv_d3["addGraph"](() => {
36472
36474
  if (this.model.displaySetting.curveType === CurveType.BarGroup || this.model.displaySetting.curveType === CurveType.BarStack) {
36473
36475
  return this.getMultiBarWithFocusChart(chartWidth, chartHeight, data);
@@ -36477,6 +36479,50 @@ class historical_curve_element_HistoricalCurveElement extends conditional_displa
36477
36479
  }
36478
36480
  });
36479
36481
  }
36482
+ initPoint() {
36483
+ try {
36484
+ const legendList = this.$element
36485
+ .find('.nv-legend')
36486
+ .find('.nv-series');
36487
+ let hiddenCount = 0;
36488
+ for (let i = 0; i < this.data.length; i++) {
36489
+ const channel = this.model.dataSetting.channels[i];
36490
+ if (legendList.eq(i).children().eq(0).css('fill-opacity') === '1') {
36491
+ const pointList = this.$element
36492
+ .find('.nv-scatterWrap')
36493
+ .find('.nv-series-' + (i - hiddenCount))
36494
+ .find('.nv-point');
36495
+ if (pointList && pointList.length) {
36496
+ for (let j = 0; j < pointList.length; j++) {
36497
+ const point = pointList.eq(j);
36498
+ const previousPoint = pointList.eq(j - 1);
36499
+ if (j && point.attr('transform').split(',')[1] !== previousPoint.attr('transform').split(',')[1]) {
36500
+ if (channel.enablePoint && channel.pointColor) {
36501
+ const pointStyle = {
36502
+ 'stroke-opacity': 1,
36503
+ 'stroke-width': '2px',
36504
+ 'stroke': channel.pointColor,
36505
+ 'fill-opacity': 1,
36506
+ 'fill': channel.pointColor
36507
+ };
36508
+ point.addClass('nv-mark-point');
36509
+ point.css(pointStyle);
36510
+ previousPoint.addClass('nv-mark-point');
36511
+ previousPoint.css(pointStyle);
36512
+ }
36513
+ }
36514
+ }
36515
+ }
36516
+ }
36517
+ else {
36518
+ hiddenCount++;
36519
+ }
36520
+ }
36521
+ }
36522
+ catch (e) {
36523
+ console.log(e);
36524
+ }
36525
+ }
36480
36526
  getLineChart(chartWidth, chartHeight, data) {
36481
36527
  const chart = nv_d3["models"].lineChart().showLegend(true)
36482
36528
  .margin({ top: 0, bottom: 0, left: this.displayOption.marginLeft, right: this.displayOption.marginRight })
@@ -36492,6 +36538,19 @@ class historical_curve_element_HistoricalCurveElement extends conditional_displa
36492
36538
  }
36493
36539
  this.renderCommonProperty(chart, chartWidth, chartHeight, data);
36494
36540
  this.renderOperationArea(chartWidth, chartHeight);
36541
+ this.initPoint();
36542
+ chart.legend.dispatch.on('legendClick', () => {
36543
+ setTimeout(() => {
36544
+ this.$element.find('.nv-mark-point').css({
36545
+ 'stroke-opacity': 0,
36546
+ 'stroke-width': 0,
36547
+ 'stroke': 'unset',
36548
+ 'fill-opacity': 0,
36549
+ 'fill': 'unset'
36550
+ }).removeClass('nv-mark-point');
36551
+ this.initPoint();
36552
+ }, 1);
36553
+ });
36495
36554
  return chart;
36496
36555
  }
36497
36556
  getMultiBarWithFocusChart(chartWidth, chartHeight, data) {
@@ -36535,6 +36594,18 @@ class historical_curve_element_HistoricalCurveElement extends conditional_displa
36535
36594
  chart.tooltip.headerFormatter(d => this.timeFormat(d, '%x %X'));
36536
36595
  if (this.model.displaySetting.showAxis) {
36537
36596
  chart.xAxis.showMaxMin(true).tickFormat(d => {
36597
+ this.$element.find('.nv-mark-point').css({
36598
+ 'stroke-opacity': 0,
36599
+ 'stroke-width': 0,
36600
+ 'stroke': 'unset',
36601
+ 'fill-opacity': 0,
36602
+ 'fill': 'unset'
36603
+ }).removeClass('nv-mark-point');
36604
+ clearTimeout(this.timer);
36605
+ this.timer = undefined;
36606
+ this.timer = setTimeout(() => {
36607
+ this.initPoint();
36608
+ }, 100);
36538
36609
  if (this.currentTimePeriod === 3 || this.currentTimePeriod === 4 || this.currentTimePeriod === 5) {
36539
36610
  return this.timeFormat(d, '%y-%m-%d');
36540
36611
  }
@@ -36669,27 +36740,31 @@ class historical_curve_element_HistoricalCurveElement extends conditional_displa
36669
36740
  .append('foreignObject').attr('width', chartWidth).attr('height', this.displayOption.operationAreaHeight).attr('fill', 'none')
36670
36741
  .append('xhtml:div').style('height', (this.displayOption.operationAreaHeight - 4) + 'px').style('overflow', 'hidden').style('margin-top', '4px');
36671
36742
  const selectElement = operationArea.append('select').style('margin-left', this.displayOption.marginLeft + 'px')
36743
+ .style('background-color', 'inherit')
36672
36744
  .style('font-size', this.displayOption.operationSelectFontSize).on('change', () => {
36673
36745
  const displayTimePeriod = this.rootElement.select('select').property('value');
36674
36746
  this.updateTimeRange(displayTimePeriod);
36675
36747
  this.reRenderElement(this.startTime, this.endTime, this.displayOption.dataLimit, HistoricalCurveTimeRange.BeginOpenEndOpen);
36676
36748
  });
36749
+ const rect = this.$element.parent().parent().find('rect');
36750
+ const fillColor = rect.attr('fill');
36677
36751
  const options = selectElement.selectAll('option').data(this.timePeriods).enter().append('option');
36678
- options.text(d => d.name).attr('value', d => d.key).property('selected', d => d.key === Number(this.currentTimePeriod));
36752
+ options.text(d => d.name).attr('value', d => d.key).property('selected', d => d.key === Number(this.currentTimePeriod))
36753
+ .style('background-color', fillColor);
36679
36754
  const buttonWidth = this.displayOption.operationButtonWidth + 'px', buttonHeight = this.displayOption.operationButtonHeight + 'px';
36680
36755
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
36681
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/last_page.svg)')
36756
+ .style('float', 'right').style('background-image', 'url(assets/img/last_page.svg)')
36682
36757
  .on('click', () => { this.loadLastPage(); });
36683
36758
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
36684
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/next_page.svg)')
36759
+ .style('float', 'right').style('background-image', 'url(assets/img/next_page.svg)')
36685
36760
  .style('margin', `0 ${this.displayOption.operationButtonMargin}px 0 0`)
36686
36761
  .on('click', () => { this.loadNextPage(); });
36687
36762
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
36688
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/previous_page.svg)')
36763
+ .style('float', 'right').style('background-image', 'url(assets/img/previous_page.svg)')
36689
36764
  .style('margin', `0 ${this.displayOption.operationButtonMargin}px 0 0`)
36690
36765
  .on('click', () => { this.loadPreviousPage(); });
36691
36766
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
36692
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/first_page.svg)')
36767
+ .style('float', 'right').style('background-image', 'url(assets/img/first_page.svg)')
36693
36768
  .style('margin', `0 ${this.displayOption.operationButtonMargin}px 0 0`)
36694
36769
  .on('click', () => { this.loadFirstPage(); });
36695
36770
  }
@@ -39576,7 +39651,12 @@ class video_element_VideoElement extends conditional_display_element_Conditional
39576
39651
  else if (isIos) {
39577
39652
  this.setIosVideo(this.videoUrl, videoId);
39578
39653
  }
39579
- this.videoPlayer = new EZUIPlayer(videoId);
39654
+ try {
39655
+ this.videoPlayer = new EZUIPlayer(videoId);
39656
+ }
39657
+ catch (err) {
39658
+ console.log(err);
39659
+ }
39580
39660
  }, 1000);
39581
39661
  const style = document.createElement('style');
39582
39662
  style.innerHTML = `#${videoId}::-webkit-media-controls-enclosure {
@@ -40260,7 +40340,6 @@ class alarm_element_AlarmElement extends conditional_display_element_Conditional
40260
40340
  }
40261
40341
  fontString += this.model.generalSetting.headerFont.fontSize + ' ' + this.model.generalSetting.headerFont.fontFamily;
40262
40342
  tr.style.cssText = `height: ${this.model.heights[0]}px;
40263
- background: ${this.model.generalSetting.headerFillColor};
40264
40343
  color: ${this.model.generalSetting.headerFont.color};
40265
40344
  font: ${fontString};
40266
40345
  text-align: ${this.model.generalSetting.headerFont.textAlign};
@@ -40280,7 +40359,6 @@ class alarm_element_AlarmElement extends conditional_display_element_Conditional
40280
40359
  for (let row = 0; row < this.pageSize; row++) {
40281
40360
  tr = document.createElement('tr');
40282
40361
  tr.style.cssText = `height: ${this.model.heights[row + 1]}px;
40283
- background: ${this.model.generalSetting.tableFillColor};
40284
40362
  font: ${this.model.generalSetting.fontStyle};
40285
40363
  color: ${this.model.generalSetting.fontColor};
40286
40364
  text-align: ${this.model.generalSetting.textAlign};
@@ -40360,18 +40438,18 @@ class alarm_element_AlarmElement extends conditional_display_element_Conditional
40360
40438
  }
40361
40439
  const buttonWidth = this.displayOption.operationButtonWidth + 'px', buttonHeight = this.displayOption.operationButtonHeight + 'px';
40362
40440
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
40363
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/last_page.svg)')
40441
+ .style('float', 'right').style('background-image', 'url(assets/img/last_page.svg)')
40364
40442
  .on('click', () => { this.loadLastPage(); });
40365
40443
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
40366
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/next_page.svg)')
40444
+ .style('float', 'right').style('background-image', 'url(assets/img/next_page.svg)')
40367
40445
  .style('margin', `0 ${this.displayOption.operationButtonMargin}px 0 0`)
40368
40446
  .on('click', () => { this.loadNextPage(); });
40369
40447
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
40370
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/previous_page.svg)')
40448
+ .style('float', 'right').style('background-image', 'url(assets/img/previous_page.svg)')
40371
40449
  .style('margin', `0 ${this.displayOption.operationButtonMargin}px 0 0`)
40372
40450
  .on('click', () => { this.loadPreviousPage(); });
40373
40451
  operationArea.append('button').style('width', buttonWidth).style('height', buttonHeight).style('border', 'none')
40374
- .style('float', 'right').style('background', 'white').style('background-image', 'url(assets/img/first_page.svg)')
40452
+ .style('float', 'right').style('background-image', 'url(assets/img/first_page.svg)')
40375
40453
  .style('margin', `0 ${this.displayOption.operationButtonMargin}px 0 0`)
40376
40454
  .on('click', () => { this.loadFirstPage(); });
40377
40455
  this.setStatusAsNormal();
@@ -41715,13 +41793,24 @@ let WriteValueModalComponent = class WriteValueModalComponent {
41715
41793
  value = this.formatWriteValue();
41716
41794
  }
41717
41795
  }
41796
+ if (!this.args.releasedVariableService) {
41797
+ this.onClosed({
41798
+ value: value,
41799
+ showValue: showValue,
41800
+ enableNumericalOperation: false,
41801
+ isNumericalOperation: this.isNumericalOperation,
41802
+ variableRwType: 6
41803
+ });
41804
+ return;
41805
+ }
41718
41806
  this.args.releasedVariableService.getVariableWithValueTransform(this.variableName).subscribe(result => {
41719
41807
  const valueTransform = JSON.parse(result.valueTransform);
41720
41808
  if ((valueTransform === null || valueTransform === void 0 ? void 0 : valueTransform.Type) !== 0) {
41721
41809
  this.isNumericalOperation = true;
41722
41810
  }
41723
41811
  this.onClosed({
41724
- value, showValue,
41812
+ value: value,
41813
+ showValue: showValue,
41725
41814
  enableNumericalOperation: this.enableNumericalOperation,
41726
41815
  isNumericalOperation: this.isNumericalOperation,
41727
41816
  variableRwType: result.variableRwType