带eachers的html转word

发布于:2025-06-11 ⋅ 阅读:(26) ⋅ 点赞:(0)

使用html-docx-js-typescript实现功能

<page-header [autoBreadcrumb]="false"/>
<nz-card>
  <form [formGroup]="formItem" [nzLayout]="'inline'" nz-form>
    <nz-form-item>
      <nz-form-label>周期</nz-form-label>
      <nz-form-control>
        <nz-select formControlName="zqType">
          <nz-option nzLabel="季度" nzValue="季度"/>
          <nz-option nzLabel="" nzValue=""/>
          <nz-option nzLabel="" nzValue=""/>
        </nz-select>
      </nz-form-control>
    </nz-form-item>
    @if (this.formItem.value.zqType === '季度') {
      <nz-form-item>
        <nz-form-label>选择日期</nz-form-label>
        <nz-form-control>
          <nz-date-picker nzMode="quarter" formControlName="timeJd" nzFormat="yyyy年Q季度"
                          [nzDateRender]="tplQuarterRender"/>
          <ng-template #tplQuarterRender let-current>
            <div class="ant-picker-cell-inner">{{ getQuarter(current) }}</div>
          </ng-template>
        </nz-form-control>
      </nz-form-item>
    }
    @if (this.formItem.value.zqType === '年') {
      <nz-form-item>
        <nz-form-label>选择日期</nz-form-label>
        <nz-form-control>
          <nz-date-picker nzMode="year" formControlName="timeNian"/>
        </nz-form-control>
      </nz-form-item>
    }
    @if (this.formItem.value.zqType === '月') {
      <nz-form-item>
        <nz-form-label>选择日期</nz-form-label>
        <nz-form-control>
          <nz-date-picker nzMode="month" formControlName="timeYue"/>
        </nz-form-control>
      </nz-form-item>
    }
    <nz-form-item>
      <nz-form-label nzFor="shipName" nzRequired>轮驳</nz-form-label>
      <nz-form-control nzErrorTip="不能为空!">
        <nz-tree-select
          #nts
          (nzTreeCheckBoxChange)="checkBoxChange($event)"
          (nzTreeClick)="nzEvent($event)"
          [nzAllowClear]="false"
          [nzCheckStrictly]="true"
          [nzDefaultExpandAll]="true"
          [nzMaxTagCount]="3"
          [nzMaxTagPlaceholder]="omittedPlaceHolder"
          [nzNodes]="nodes"
          formControlName="shipName"
          nzPlaceHolder="请选择"
          nzShowSearch
          nzVirtualHeight="300px"
          style="width: 250px"
        />
        <ng-template #omittedPlaceHolder let-omittedValues>and {{ omittedValues.length }} more...</ng-template>
      </nz-form-control>
    </nz-form-item>
    <button (click)="search()" nz-button nzType="primary">查询</button>
    <button (click)=" exportDivToWord( {
    title: '2024年度项目报告',
    author: '技术部',
    margins: { top: 1.2, bottom: 1.2 },
    fonts: { body: '微软雅黑', heading: '黑体' }
  })" nz-button nzType="primary">下载
    </button>
  </form>
  <div #baogao *ngIf="formItem.value.zqType === '月' && yuedeobj !== null" style="margin-top: 1%">
    <h2 style="text-align: center">{{ getriqi() }}{{ getcbname() }}能耗分析报告</h2>
    <div id="bjs" style="width: 90%; border: 1px black solid; margin: 0 auto; background-color: gainsboro">
      <p style="text-indent: 2em">
        {{ getcbname() }}
        本月燃油消耗{{ yuedeobj?.bqryl }} 吨,环比上月{{
          yuedeobj?.bqrylhb >= 0 ? '增加' + yuedeobj?.bqrylhb + '吨' : '减少' + Math.abs(yuedeobj?.bqrylhb) + '吨'
        }}
        ,同比去年同期{{
          yuedeobj?.bqryltb >= 0 ? '增加' + yuedeobj?.bqryltb + '吨' : '减少' + Math.abs(yuedeobj?.bqryltb) + '吨'
        }}
        。作业艘次{{ yuedeobj?.bqsoci }} 艘次,环比上月{{
          yuedeobj?.bqsocihb >= 0 ? '增加' + yuedeobj?.bqsocihb + '艘次' : '减少' + Math.abs(yuedeobj?.bqsocihb) + '艘次'
        }}
        ,同比去年同期{{
          yuedeobj?.bqsocitb >= 0 ? '增加' + yuedeobj?.bqsocitb + '艘次' : '减少' + Math.abs(yuedeobj?.bqsocitb) + '艘次'
        }}
        。主机小时{{ yuedeobj?.bqzjxs }}小时,环比上月{{
          yuedeobj?.bqzjxshb >= 0 ? '增加' + yuedeobj?.bqzjxshb + '小时' : '减少' + Math.abs(yuedeobj?.bqzjxshb) + '小时'
        }},同比去年同{{
          yuedeobj?.bqzjxstb >= 0 ? '增加' + yuedeobj?.bqzjxstb + '小时' : '减少' + Math.abs(yuedeobj?.bqzjxstb) + '小时'
        }}。航行里程{{ yuedeobj?.bqlc }} 海里,环比上月{{
          yuedeobj?.bqlchb >= 0 ? '增加' + yuedeobj?.bqlchb + '海里' : '减少' + Math.abs(yuedeobj?.bqlchb) + '海里'
        }}
        ,同比去年同期{{ yuedeobj?.bqlctb >= 0 ? '增加' + yuedeobj?.bqlctb + '海里' : '减少' + Math.abs(yuedeobj?.bqlctb) + '海里' }}
        。</p
      >
      <p style="text-indent: 2em">
        作业艘次单耗{{ yuedeobj?.bqscdh }} 吨/艘次,环比上月{{
          yuedeobj?.bqscdhhb >= 0 ? '上升' + yuedeobj?.bqscdhhb + '%' : '下降' + Math.abs(yuedeobj?.bqscdhhb) + '%'
        }}
        ,同比去年同期{{
          yuedeobj?.bqscdhtb >= 0 ? '上升' + yuedeobj?.bqscdhtb + '%' : '下降' + Math.abs(yuedeobj?.bqscdhtb) + '%'
        }}
        。主机小时单耗{{ yuedeobj?.bqzjxsdh }}吨/小时,环比上月{{
          yuedeobj?.sqzjxsdhhb >= 0 ? '上升' + yuedeobj?.sqzjxsdhhb + '%' : '下降' + Math.abs(yuedeobj?.sqzjxsdhhb) + '%'
        }}
        ,同比去年同期{{
          yuedeobj?.tqzjxsdhtb >= 0 ? '上升' + yuedeobj?.tqzjxsdhtb + '%' : '下降' + Math.abs(yuedeobj?.tqzjxsdhtb) + '%'
        }}
        。 航行里程单耗{{ yuedeobj?.bqlcdh }}吨/海里,环比上月{{
          yuedeobj?.sqlcdhhb >= 0 ? '上升' + yuedeobj?.sqlcdhhb + '%' : '下降' + Math.abs(yuedeobj?.sqlcdhhb) + '%'
        }}
        ,同比去年同期{{ yuedeobj?.tqlcdhtb >= 0 ? '上升' + yuedeobj?.tqlcdhtb + '%' : '下降' + Math.abs(yuedeobj?.tqlcdhtb) + '%' }}

        平均艘次航行里程{{ yuedeobj?.bqpjschxlc }}海里/艘次,{{
          yuedeobj?.sqpjschxlc >= 0 ? '上升' + yuedeobj?.sqpjschxlc + '%' : '下降' + Math.abs(yuedeobj?.sqpjschxlc) + '%'
        }}
        ,同比去年同期{{ yuedeobj?.tqpjschxlc >= 0 ? '上升' + yuedeobj?.tqpjschxlc + '%' : '下降' + Math.abs(yuedeobj?.tqpjschxlc) + '%' }}
        。
      </p>
      <p style="text-indent: 2em">
        一、环比分析及影响因素:(环比{{
          yuedeobj?.bqrylhb >= 0 ? '增加' + yuedeobj?.bqrylhb + '吨' : '减少' + Math.abs(yuedeobj?.bqrylhb) + '吨'
        }})
      </p>
      <p *ngFor="let hbyItem of hbysList" style="text-indent: 4em">
        {{ hbyItem }}
      </p>

      <div id="tu1" style="height: 40vh; width: 40vw; margin: 0 auto"></div>
      <p style="text-indent: 2em">
        二、同比分析及影响因素:(同比{{
          yuedeobj?.bqryltb >= 0 ? '增加' + yuedeobj?.bqryltb + '吨' : '减少' + Math.abs(yuedeobj?.bqryltb) + '吨'
        }})
      </p>
      <p *ngFor="let tbyItem of tbysList" style="text-indent: 4em">
        {{ tbyItem }}
      </p>
      <div id="tu2" style="height: 40vh; width: 40vw; margin: 0 auto"></div>
    </div>
  </div>
  <div #baogao *ngIf="formItem.value.zqType === '季度' && yuedeobj !== null" style="margin-top: 1%">
    <h2 style="text-align: center">{{ getriqi() }}{{ getcbname() }}能耗分析报告</h2>
    <div style="width: 90%; border: 1px black solid; margin: 0 auto; background-color: gainsboro">
      <p style="text-indent: 2em">
        {{ getcbname() }}
        本季度燃油消耗{{ yuedeobj?.bqryl }} 吨,环比上季度{{
          yuedeobj?.bqrylhb >= 0 ? '增加' + yuedeobj?.bqrylhb + '吨' : '减少' + Math.abs(yuedeobj?.bqrylhb) + '吨'
        }}
        ,同比去年同期{{
          yuedeobj?.bqryltb >= 0 ? '增加' + yuedeobj?.bqryltb + '吨' : '减少' + Math.abs(yuedeobj?.bqryltb) + '吨'
        }}
        。作业艘次{{ yuedeobj?.bqsoci }} 艘次,环比上季度{{
          yuedeobj?.bqsocihb >= 0 ? '增加' + yuedeobj?.bqsocihb + '艘次' : '减少' + Math.abs(yuedeobj?.bqsocihb) + '艘次'
        }}
        ,同比去年同期{{
          yuedeobj?.bqsocitb >= 0 ? '增加' + yuedeobj?.bqsocitb + '艘次' : '减少' + Math.abs(yuedeobj?.bqsocitb) + '艘次'
        }}
        。主机小时{{ yuedeobj?.bqzjxs }}小时,环比上季度{{
          yuedeobj?.bqzjxshb >= 0 ? '增加' + yuedeobj?.bqzjxshb + '小时' : '减少' + Math.abs(yuedeobj?.bqzjxshb) + '小时'
        }},同比去年同{{
          yuedeobj?.bqzjxstb >= 0 ? '增加' + yuedeobj?.bqzjxstb + '小时' : '减少' + Math.abs(yuedeobj?.bqzjxstb) + '小时'
        }}。航行里程{{ yuedeobj?.bqlc }} 海里,环比上季度{{
          yuedeobj?.bqlchb >= 0 ? '增加' + yuedeobj?.bqlchb + '海里' : '减少' + Math.abs(yuedeobj?.bqlchb) + '海里'
        }}
        ,同比去年同期{{ yuedeobj?.bqlctb >= 0 ? '增加' + yuedeobj?.bqlctb + '海里' : '减少' + Math.abs(yuedeobj?.bqlctb) + '海里' }}
        。</p
      >
      <p style="text-indent: 2em">
        作业艘次单耗{{ yuedeobj?.bqscdh }} 吨/艘次,环比上季度{{
          yuedeobj?.bqscdhhb >= 0 ? '上升' + yuedeobj?.bqscdhhb + '%' : '下降' + Math.abs(yuedeobj?.bqscdhhb) + '%'
        }}
        ,同比去年同期{{
          yuedeobj?.bqscdhtb >= 0 ? '上升' + yuedeobj?.bqscdhtb + '%' : '下降' + Math.abs(yuedeobj?.bqscdhtb) + '%'
        }}
        。主机小时单耗{{ yuedeobj?.bqzjxsdh }}吨/小时,环比上季度{{
          yuedeobj?.sqzjxsdhhb >= 0 ? '上升' + yuedeobj?.sqzjxsdhhb + '%' : '下降' + Math.abs(yuedeobj?.sqzjxsdhhb) + '%'
        }}
        ,同比去年同期{{
          yuedeobj?.tqzjxsdhtb >= 0 ? '上升' + yuedeobj?.tqzjxsdhtb + '%' : '下降' + Math.abs(yuedeobj?.tqzjxsdhtb) + '%'
        }}
        。 航行里程单耗{{ yuedeobj?.bqlcdh }}吨/海里,环比上季度{{
          yuedeobj?.sqlcdhhb >= 0 ? '上升' + yuedeobj?.sqlcdhhb + '%' : '下降' + Math.abs(yuedeobj?.sqlcdhhb) + '%'
        }}
        ,同比去年同期{{ yuedeobj?.tqlcdhtb >= 0 ? '上升' + yuedeobj?.tqlcdhtb + '%' : '下降' + Math.abs(yuedeobj?.tqlcdhtb) + '%' }}

        平均艘次航行里程{{ yuedeobj?.bqpjschxlc }}海里/艘次,{{
          yuedeobj?.sqpjschxlc >= 0 ? '上升' + yuedeobj?.sqpjschxlc + '%' : '下降' + Math.abs(yuedeobj?.sqpjschxlc) + '%'
        }}
        ,同比去年同期{{ yuedeobj?.tqpjschxlc >= 0 ? '上升' + yuedeobj?.tqpjschxlc + '%' : '下降' + Math.abs(yuedeobj?.tqpjschxlc) + '%' }}
        。
      </p>
      <p style="text-indent: 2em">
        一、环比分析及影响因素:(环比{{
          yuedeobj?.bqrylhb >= 0 ? '增加' + yuedeobj?.bqrylhb + '吨' : '减少' + Math.abs(yuedeobj?.bqrylhb) + '吨'
        }})
      </p>
      <p *ngFor="let hbyItem of hbysList" style="text-indent: 4em">
        {{ hbyItem }}
      </p>

      <div id="tu1" style="height: 40vh; width: 40vw; margin: 0 auto"></div>
      <p style="text-indent: 2em">
        二、同比分析及影响因素:(同比{{
          yuedeobj?.bqryltb >= 0 ? '增加' + yuedeobj?.bqryltb + '吨' : '减少' + Math.abs(yuedeobj?.bqryltb) + '吨'
        }})
      </p>
      <p *ngFor="let tbyItem of tbysList" style="text-indent: 4em">
        {{ tbyItem }}
      </p>
      <div id="tu2" style="height: 40vh; width: 40vw; margin: 0 auto"></div>
    </div>
  </div>
  <div #baogao *ngIf="formItem.value.zqType === '年' && yuedeobj !== null" style="margin-top: 1%">
 
      <p style="text-indent: 2em">
        一、环比分析及影响因素:(环比{{
          yuedeobj?.bqrylhb >= 0 ? '增加' + yuedeobj?.bqrylhb + '吨' : '减少' + Math.abs(yuedeobj?.bqrylhb) + '吨'
        }})
      </p>
 

      <div id="tu1" style="height: 40vh; width: 40vw; margin: 0 auto"></div>
    </div>
  </div>
</nz-card>

import {NgForOf, NgIf} from '@angular/common';
import {AfterViewInit, ChangeDetectorRef, Component, ElementRef, inject, OnInit, ViewChild} from '@angular/core';
import {FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';
import {PageHeaderComponent} from '@delon/abc/page-header';
import * as echarts from 'echarts';
import {EChartsType} from 'echarts';
import {saveAs} from 'file-saver';
import {asBlob} from 'html-docx-js-typescript';
import html2canvas from 'html2canvas';
import {jsPDF} from 'jspdf';
import moment from 'moment';
import {NzButtonModule} from 'ng-zorro-antd/button';
import {NzCardComponent} from 'ng-zorro-antd/card';
import {NzDatePickerComponent} from 'ng-zorro-antd/date-picker';
import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from 'ng-zorro-antd/form';
import {NzColDirective, NzRowDirective} from 'ng-zorro-antd/grid';
import {NzMessageService} from 'ng-zorro-antd/message';
import {NzOptionComponent, NzSelectComponent} from 'ng-zorro-antd/select';
import {NzSkeletonComponent} from 'ng-zorro-antd/skeleton';
import {NzTabComponent, NzTabSetComponent} from 'ng-zorro-antd/tabs';
import {NzFormatEmitEvent} from 'ng-zorro-antd/tree';
import {NzTreeSelectComponent} from 'ng-zorro-antd/tree-select';

import {EnergyDataQueryService} from '../../data-query/data-query.service';
import {LcdhComponent} from '../dhfx/dhuanbifx/lcdh/lcdh.component';
import {SouciComponent} from '../dhfx/dhuanbifx/souci/souci.component';
import {WydhComponent} from '../dhfx/dhuanbifx/wydh/wydh.component';
import {XsdhComponent} from '../dhfx/dhuanbifx/xsdh/xsdh.component';
import {ZjzdhComponent} from '../dhfx/dhuanbifx/zjzdh/zjzdh.component';
import {CbynbgService} from './cbynbg.service';

// 添加:定义配置项接口
interface DocxOptions {
  title?: string; // 文档标题(可选)
  author?: string; // 文档作者(可选)
  margins?: {
    // 页边距(可选)
    top?: number; // 上边距(英寸)
    bottom?: number; // 下边距(英寸)
    left?: number; // 左边距(英寸)
    right?: number; // 右边距(英寸)
  };
  fonts?: {
    // 字体配置(可选)
    body?: string; // 正文字体(如 '微软雅黑')
    heading?: string; // 标题字体(如 '黑体')
  };
}

@Component({
  selector: 'app-cbynbg',
  standalone: true,
  imports: [
    NzButtonModule,
    PageHeaderComponent,
    LcdhComponent,
    NzCardComponent,
    NzTabComponent,
    NzTabSetComponent,
    SouciComponent,
    WydhComponent,
    XsdhComponent,
    ZjzdhComponent,
    FormsModule,
    NzColDirective,
    NzFormControlComponent,
    NzFormItemComponent,
    NzFormLabelComponent,
    NzRowDirective,
    NzTreeSelectComponent,
    ReactiveFormsModule,
    NzDatePickerComponent,
    NzOptionComponent,
    NzSelectComponent,
    NzDatePickerComponent,
    NzFormDirective,
    NgIf,
    NzSkeletonComponent,
    NgForOf
  ],
  templateUrl: './cbynbg.component.html',
  styles: ``
})
export class CbynbgComponent implements OnInit {
  @ViewChild('nts') nts: NzTreeSelectComponent | undefined;
  @ViewChild('baogao') baogao!: ElementRef;

  nodes: any = [];
  option2: any = {
    tooltip: {
      trigger: 'item'
    },

    series: []
  };
  option: any = {
    tooltip: {
      trigger: 'item'
    },

    series: []
  };
  shipList: any = null;
  formItem: FormGroup;
  yuedeobj: any = null;
  hbysList: any[] = [];
  tbysList: any[] = [];
  jddeobj: any[] = [];
  ndeobj: any[] = [];
  protected readonly Math = Math;
  private readonly mess = inject(NzMessageService);
  private readonly cbynbgs = inject(CbynbgService);
  private readonly dataQueryService = inject(EnergyDataQueryService);
  private tu1echars!: EChartsType;
  private tu2echars!: EChartsType;

  constructor(
    private fb: FormBuilder,
    private cd: ChangeDetectorRef
  ) {
    this.formItem = fb.group({
      zqType: ['月'],
      timeJd: [new Date()],
      timeNian: [new Date()],
      timeYue: [new Date()],
      shipName: [null, [Validators.required]]
    });
  }

  nzEvent(event: NzFormatEmitEvent): void {
    if (event.node?.level === 1) {
      event.node!.isChecked = false;
      event.node.getParentNode()!.isChecked = false;
      for (let child of event.node.getChildren()) {
        child.isChecked = !child.isChecked;
      }
    }
  }

  getQuarter(date: Date): string {
    const quarter = Math.floor((date.getMonth() + 3) / 3);
    const quarterMapper: Record<string, string> = {1: '一', 2: '二', 3: '三', 4: '四'};
    return `${quarterMapper[quarter]}季度`;
  }

  checkBoxChange($event: NzFormatEmitEvent) {
    let a = new Set();
    for (let nodesKey of $event.nodes!) {
      a.add(nodesKey.getParentNode()?.key);
    }
    if (a.size > 1) {
      let a1 = new Set();
      for (let nodesKey of $event.nodes!) {
        a1.add(nodesKey.getParentNode()?.getParentNode()?.key);
      }

      if (a1.size > 1 || a1.has(null) || a1.has(undefined)) {
        this.mess.create('error', '只能选择同类型的耗能单元!');
      }
    }
  }

  ngOnInit(): void {
    this.cbynbgs.getShipList().subscribe((res: any) => {
      this.shipList = res;
    });
    this.dataQueryService.getTreeDatareturnId().subscribe(res => {
      this.nodes = [];
      this.nodes.push(res);
    });
    this.formItem.patchValue({shipName: '总'});
    setTimeout(() => {
      this.search();
    }, 500);
  }

  getcbname() {
    if (this.nts?.value[0] == '总') {
      return '总体船舶';
    } else if (this.nts?.value[0] == '临港' || this.nts?.value[0] == '轮驳') {
      return `${this.nts?.value[0]}公司`;
    } else if (this.shipList !== null && this.shipList !== undefined) {
      let a = Array.of(...this.shipList);
      for (let shipListElement in a) {
        if (a[shipListElement].id == this.nts?.value[0]) {
          return a[shipListElement].shipName;
        }
      }
    } else {
      return '';
    }
  }

  getriqi() {
    if ('年' == this.formItem.value.zqType) {
      return moment(this.formItem.value.timeNian).format('YYYY年度');
    } else if ('月' == this.formItem.value.zqType) {
      return moment(this.formItem.value.timeYue).format('YYYY年MM月份');
    } else if ('季度' == this.formItem.value.zqType) {
      return moment(this.formItem.value.timeJd).format('YYYY年Q季度');
    } else {
      return '';
    }
  }

  // 将所有ECharts图表替换为图片
  async replaceChartsWithImages(container: HTMLElement) {
    const chartContainersArray1 = Array.from(container.querySelectorAll('#tu1'));
    const chartContainersArray2 = Array.from(container.querySelectorAll('#tu2'));
    const chartContainersArray = [...chartContainersArray1, ...chartContainersArray2];
    for (const chartContainer of chartContainersArray) {
      try {
        // 获取ECharts实例
        const chart = echarts.getInstanceByDom(chartContainer as HTMLDivElement);

        if (chart) {
          // 获取图表的Base64图片数据
          const chartImage = chart.getDataURL({
            type: 'png',
            pixelRatio: 1, // 提高图片质量
            backgroundColor: '#fff'
          });

          // 创建img元素替换原图表容器
          const img = document.createElement('img');
          img.src = chartImage;
          img.style.width = '50px';
          img.style.height = '50px';
          img.alt = 'ECharts图表';
          img.style.margin = '0 auto';
          img.style.border = 'none';
          // 替换原容器

          chartContainer.parentNode?.replaceChild(img, chartContainer);
        }
      } catch (error) {
        console.error('处理图表时出错:', error);
      }
    }
  }

  // 等待图表渲染完成的辅助函数
  waitForChartRender(chart: echarts.ECharts) {
    return new Promise<void>(resolve => {
      if ((chart as any).isReady()) {
        resolve();
      } else {
        chart.on('rendered', () => {
          resolve();
          chart.off('rendered'); // 避免内存泄漏
        });
      }
    });
  }

  async exportDivToWord(options?: DocxOptions) {
    // 1. 获取目标 div 元素
    const baogaoDiv = this.baogao.nativeElement as HTMLElement;

    let b = baogaoDiv.cloneNode(true) as HTMLElement;
    b.style.backgroundColor = '#fff';
    const bjsElement = b.querySelector('#bjs') as HTMLElement;
    bjsElement.style.backgroundColor = '#fff';
    bjsElement.style.border = 'none';
    if (!b) {
      alert('未找到指定的 div 元素');
      return;
    }
    await this.replaceChartsWithImages(b);

    // 2. 获取 div 的 HTML 内容(包含样式)
    const htmlContent = b.outerHTML;

    try {
      const result: Blob = (await asBlob(htmlContent, options)) as Blob;

      // 4. 下载 Word 文件(此时 docxBlob 是已解析的 Blob)
      saveAs(result, `aa.docx`, false);
    } catch (error) {
      console.error('转换失败:', error);
      alert('生成 Word 文档时出错,请重试');
    }
  }

  printDivAsPdf() {
    console.log(this.baogao.nativeElement);
    let a = this.baogao.nativeElement as HTMLElement;

    const bjsElement = a.querySelector('#bjs') as HTMLElement; // 获取id="bjs"的子元素
    bjsElement.style.backgroundColor = '#fff';
    console.log(bjsElement);
    html2canvas(a).then((canvas: HTMLCanvasElement) => {
      const imgData = canvas.toDataURL('image/png');
      const pdf = new jsPDF();
      const imgProps = pdf.getImageProperties(imgData);
      const pdfWidth = pdf.internal.pageSize.getWidth();
      const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
      pdf.addImage(imgData, 'PNG', 2, 2, pdfWidth, pdfHeight);
      pdf.save('printable_echarts_div.pdf');
    });
    bjsElement.style.backgroundColor = 'gainsboro';
  }

  search() {
    if (this.formItem.valid) {
      const params: any = {zqType: this.formItem.value.zqType};
      try {
        if (this.formItem.value.zqType === '年') {
          params['opt'] = moment(this.formItem.value.timeNian).startOf('year').format('yyyy-MM-DD HH:mm:ss');
          params['ovt'] = moment(this.formItem.value.timeNian).endOf('year').format('yyyy-MM-DD HH:mm:ss');
        }
        if (this.formItem.value.zqType === '季度') {
          params['ovt'] = moment(this.formItem.value.timeJd).endOf('month').format('yyyy-MM-DD HH:mm:ss');
          params['opt'] = moment(this.formItem.value.timeJd).subtract(2, 'month').startOf('month').format('yyyy-MM-DD HH:mm:ss');
        }

        if (this.formItem.value.zqType === '月') {
          params['opt'] = moment(this.formItem.value.timeYue).startOf('month').format('yyyy-MM-DD HH:mm:ss');
          params['ovt'] = moment(this.formItem.value.timeYue).endOf('month').format('yyyy-MM-DD HH:mm:ss');
        }
        if (this.formItem.value.zqType === '日') {
          params['opt'] = moment(this.formItem.value.timeRi).startOf('day').format('yyyy-MM-DD HH:mm:ss');
          params['ovt'] = moment(this.formItem.value.timeRi).endOf('day').format('yyyy-MM-DD HH:mm:ss');
        }
      } catch (ex: any) {
        this.mess.create('error', '请选择日期范围');
      }

      if (this.formItem.value.shipName === '总') {
        params['ywlx'] = '总';
      } else if (Array.of('临港', '轮驳').includes(this.formItem.value.shipName)) {
        params['ywlx'] = '公司';
      } else {
        params['ywlx'] = '船舶';
      }
      params['xzdnhdy'] = this.formItem.value.shipName;
      this.cbynbgs.search(params).subscribe((res: any) => {
        if (this.formItem.value.zqType === '月') {
          this.yuedeobj = res;
          this.cd.detectChanges();
          this.hbysList = [];
          this.tbysList = [];
          // 减少集合
          let jshbysList: any[] = [];
          //增加集合
          let zjhbysList: any[] = [];
          // 减少集合
          let tjshbysList: any[] = [];
          //增加集合
          let tzjhbysList: any[] = [];
          // 第一项
          if (this.yuedeobj.bqsocihb >= 0) {
            zjhbysList.push(
              `本月作业艘次${this.yuedeobj.bqsoci}艘次,环比上月${
                this.yuedeobj?.bqsocihb >= 0 ? `增加${this.yuedeobj?.bqsocihb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocihb)}艘次`
              },约${
                this.yuedeobj?.tlscyxyhl >= 0 ? `增加油耗${this.yuedeobj?.tlscyxyhl}` : `减少油耗${Math.abs(this.yuedeobj?.tlscyxyhl)}`
              }`
            );
          } else {
            jshbysList.push(
              `本月作业艘次${this.yuedeobj.bqsoci}艘次,环比上月${
                this.yuedeobj?.bqsocihb >= 0 ? `增加${this.yuedeobj?.bqsocihb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocihb)}艘次`
              },约${
                this.yuedeobj?.tlscyxyhl >= 0 ? `增加油耗${this.yuedeobj?.tlscyxyhl}` : `减少油耗${Math.abs(this.yuedeobj?.tlscyxyhl)}`
              }`
            );
          }
          // 第二项
          if (this.yuedeobj?.sqgyhzysc >= 0) {
            zjhbysList.push(
              `本月高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,环比上月${
                this.yuedeobj?.sqgyhzysc >= 0 ? `增加${this.yuedeobj?.sqgyhzysc}艘次` : `减少${Math.abs(this.yuedeobj?.sqgyhzysc)}艘次`
              },约${
                this.yuedeobj?.gyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.gyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.gyhtlscyxzhsjyh)}`
              }`
            );
          } else {
            jshbysList.push(
              `本月高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,环比上月${
                this.yuedeobj?.sqgyhzysc >= 0 ? `增加${this.yuedeobj?.sqgyhzysc}艘次` : `减少${Math.abs(this.yuedeobj?.sqgyhzysc)}艘次`
              },约${
                this.yuedeobj?.gyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.gyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.gyhtlscyxzhsjyh)}`
              }`
            );
          }

          // 第三项
          if (this.yuedeobj?.yhyhbhz >= 0) {
            zjhbysList.push(
              `本月沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,上月消耗${this.yuedeobj?.sqyhyh}吨,约${
                this.yuedeobj?.yhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.yhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.yhyhbhz)}`
              }`
            );
          } else {
            jshbysList.push(
              `本月沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,上月消耗${this.yuedeobj?.sqyhyh}吨,约${
                this.yuedeobj?.yhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.yhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.yhyhbhz)}`
              }`
            );
          }
          // 第四项
          switch (params['ywlx']) {
            case '船舶':
              if (this.yuedeobj?.hbsqyhsc >= 0) {
                zjhbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次,环比上月约${
                    this.yuedeobj?.hbsqyhsc >= 0 ? `增加${this.yuedeobj?.hbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.hbsqyhsc)}艘次`
                  },环比上月约${
                    this.yuedeobj?.hbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.hbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.hbsqyhscyzjyh)}`
                  }`
                );
              } else {
                jshbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次,环比上月约${
                    this.yuedeobj?.hbsqyhsc >= 0 ? `增加${this.yuedeobj?.hbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.hbsqyhsc)}艘次`
                  },环比上月约${
                    this.yuedeobj?.hbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.hbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.hbsqyhscyzjyh)}`
                  }`
                );
              }

              break;
            case '公司':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                zjhbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上月接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本月拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}艘次`},
                  `
                );
              } else {
                jshbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上月接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本月拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}艘次`},
                  `
                );
              }

              break;
            case '总':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                zjhbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上月接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本月拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}艘次`},
                  `
                );
              } else {
                jshbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上月接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本月拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}艘次`},
                  `
                );
              }
              break;
            default:
            // 当 expression 的值与所有 case 的值都不匹配时执行的代码
          }
          // 第5项
          if (this.yuedeobj?.bqpjschxlchbsyzj >= 0) {
            zjhbysList.push(
              `本月平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,环比上月${
                this.yuedeobj?.bqpjschxlchbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlchbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlchbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlchbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlchbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlchbsyzjyh)}`
              }`
            );
          } else {
            jshbysList.push(
              `本月平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,环比上月${
                this.yuedeobj?.bqpjschxlchbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlchbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlchbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlchbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlchbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlchbsyzjyh)}`
              }`
            );
          }

          if (this.yuedeobj.bqrylhb >= 0) {
            this.hbysList.push(...zjhbysList);
            this.hbysList.push(...jshbysList);
            for (let item = 0; item < this.hbysList.length; item++) {
              this.hbysList[item] = `${item + 1}${this.hbysList[item]}`;
            }
          } else {
            this.hbysList.push(...jshbysList);
            this.hbysList.push(...zjhbysList);
            for (let item = 0; item < this.hbysList.length; item++) {
              this.hbysList[item] = `${item + 1}${this.hbysList[item]}`;
            }
          }
          this.hbysList.push(
            `
          综上所述,环比上月,作业因素导致本月油耗${
              this.yuedeobj?.bt1zyys >= 0 ? `增加${this.yuedeobj?.bt1zyys}` : `减少${Math.abs(this.yuedeobj?.bt1zyys)}`
            },调度因素导致本月油耗${
              this.yuedeobj?.bt1ddys >= 0 ? `增加${this.yuedeobj?.bt1ddys}` : `减少${Math.abs(this.yuedeobj?.bt1ddys)}`
            },其它因素导致本月油耗${
              this.yuedeobj?.bt1qtys >= 0 ? `增加${this.yuedeobj?.bt1qtys}` : `减少${Math.abs(this.yuedeobj?.bt1qtys)}`
            }`
          );
          // 第一项
          if (this.yuedeobj.bqsocitb >= 0) {
            tzjhbysList.push(
              `本月作业艘次${this.yuedeobj.bqsoci}艘次,同比去年同期${
                this.yuedeobj?.bqsocitb >= 0 ? `增加${this.yuedeobj?.bqsocitb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocitb)}艘次`
              },约${
                this.yuedeobj?.bqsocitbyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqsocitbyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqsocitbyh)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本月作业艘次${this.yuedeobj.bqsoci}艘次,同比去年同期${
                this.yuedeobj?.bqsocitb >= 0 ? `增加${this.yuedeobj?.bqsocitb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocitb)}艘次`
              },约${
                this.yuedeobj?.bqsocitbyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqsocitbyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqsocitbyh)}`
              }`
            );
          }
          // 第二项
          if (this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0) {
            tzjhbysList.push(
              `本月高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,同比去年同期${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加${this.yuedeobj?.tbgyhtlscyxzhsjyh}艘次`
                  : `减少${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}艘次`
              },约${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.tbgyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本月高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,同比去年同期${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加${this.yuedeobj?.tbgyhtlscyxzhsjyh}艘次`
                  : `减少${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}艘次`
              },约${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.tbgyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}`
              }`
            );
          }
          // 第三项
          if (this.yuedeobj?.tbyhyhbhz >= 0) {
            tzjhbysList.push(
              `本月沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,同比去年同期约${
                this.yuedeobj?.tbyhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.tbyhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.tbyhyhbhz)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本月沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,同比去年同期约${
                this.yuedeobj?.tbyhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.tbyhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.tbyhyhbhz)}`
              }`
            );
          }
          // 第四项
          switch (params['ywlx']) {
            case '船舶':
              if (this.yuedeobj?.tbsqyhsc >= 0) {
                tzjhbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次,同比去年同期约${
                    this.yuedeobj?.tbsqyhsc >= 0 ? `增加${this.yuedeobj?.tbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.tbsqyhsc)}艘次`
                  },同比去年同期约${
                    this.yuedeobj?.tbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.tbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.tbsqyhscyzjyh)}`
                  }`
                );
              } else {
                tjshbysList.push(
                  `本月接送引水作业${this.yuedeobj?.yhsc}艘次,同比去年同期约${
                    this.yuedeobj?.tbsqyhsc >= 0 ? `增加${this.yuedeobj?.tbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.tbsqyhsc)}艘次`
                  },同比去年同期约${
                    this.yuedeobj?.tbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.tbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.tbsqyhscyzjyh)}`
                  }`
                );
              }

              break;
            case '公司':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                tzjhbysList.push(
                  `本月度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本月度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}`},
                  `
                );
              } else {
                tjshbysList.push(
                  `本月度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本月度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}`},
                  `
                );
              }

              break;
            case '总':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                tzjhbysList.push(
                  `本月度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本月度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}`},
                  `
                );
              } else {
                tjshbysList.push(
                  `本月度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本月度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}`},
                  `
                );
              }
              break;

            default:
            // 当 expression 的值与所有 case 的值都不匹配时执行的代码
          }
          // 第5项
          if (this.yuedeobj?.bqpjschxlchbsyzj >= 0) {
            tzjhbysList.push(
              `本月平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,同比去年同期${
                this.yuedeobj?.bqpjschxlctbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlctbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlctbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlctbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlctbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlctbsyzjyh)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本月平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,同比去年同期${
                this.yuedeobj?.bqpjschxlctbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlctbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlctbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlctbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlctbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlctbsyzjyh)}`
              }`
            );
          }

          if (this.yuedeobj.bqsocitbyh >= 0) {
            this.tbysList.push(...tzjhbysList);
            this.tbysList.push(...tjshbysList);
            for (let item = 0; item < this.tbysList.length; item++) {
              this.tbysList[item] = `${item + 1}${this.tbysList[item]}`;
            }
          } else {
            this.tbysList.push(...tjshbysList);
            this.tbysList.push(...tzjhbysList);
            for (let item = 0; item < this.tbysList.length; item++) {
              this.tbysList[item] = `${item + 1}${this.tbysList[item]}`;
            }
          }
          this.tbysList.push(
            `
          综上所述,环比去年同期,作业因素导致本月油耗${
              this.yuedeobj?.bt2zyys >= 0 ? `增加${this.yuedeobj?.bt2zyys}` : `减少${Math.abs(this.yuedeobj?.bt2zyys)}`
            },调度因素导致本月油耗${
              this.yuedeobj?.bt2ddys >= 0 ? `增加${this.yuedeobj?.bt2ddys}` : `减少${Math.abs(this.yuedeobj?.bt2ddys)}`
            },其它因素导致本月油耗${
              this.yuedeobj?.bt2qtys >= 0 ? `增加${this.yuedeobj?.bt2qtys}` : `减少${Math.abs(this.yuedeobj?.bt2qtys)}`
            }`
          );
          this.option['series'] = [
            {
              name: 'Access From',
              type: 'pie',
              radius: '50%',
              label: {
                show: true,
                formatter: '{b}: {c} ({d}%)'
              },
              data: this.yuedeobj?.bt1,
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ];

          this.tu1echars = echarts.init(window.document.getElementById('tu1'));
          this.tu1echars.setOption(this.option);

          this.option2['series'] = [
            {
              name: 'Access From',
              type: 'pie',
              radius: '50%',
              label: {
                show: true,
                formatter: '{b}: {c} ({d}%)'
              },
              data: this.yuedeobj?.bt2,
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ];
          this.tu2echars = echarts.init(window.document.getElementById('tu2'));
          this.tu2echars.setOption(this.option2);
        } else if (this.formItem.value.zqType === '季度') {
          this.yuedeobj = res;
          this.cd.detectChanges();
          this.hbysList = [];
          this.tbysList = [];
          // 减少集合
          let jshbysList: any[] = [];
          //增加集合
          let zjhbysList: any[] = [];
          // 减少集合
          let tjshbysList: any[] = [];
          //增加集合
          let tzjhbysList: any[] = [];
          // 第一项
          if (this.yuedeobj.bqsocihb >= 0) {
            zjhbysList.push(
              `本季度作业艘次${this.yuedeobj.bqsoci}艘次,环比上季度${
                this.yuedeobj?.bqsocihb >= 0 ? `增加${this.yuedeobj?.bqsocihb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocihb)}艘次`
              },约${
                this.yuedeobj?.tlscyxyhl >= 0 ? `增加油耗${this.yuedeobj?.tlscyxyhl}` : `减少油耗${Math.abs(this.yuedeobj?.tlscyxyhl)}`
              }`
            );
          } else {
            jshbysList.push(
              `本季度作业艘次${this.yuedeobj.bqsoci}艘次,环比上季度${
                this.yuedeobj?.bqsocihb >= 0 ? `增加${this.yuedeobj?.bqsocihb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocihb)}艘次`
              },约${
                this.yuedeobj?.tlscyxyhl >= 0 ? `增加油耗${this.yuedeobj?.tlscyxyhl}` : `减少油耗${Math.abs(this.yuedeobj?.tlscyxyhl)}`
              }`
            );
          }
          // 第二项
          if (this.yuedeobj?.sqgyhzysc >= 0) {
            zjhbysList.push(
              `本季度高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,环比上季度${
                this.yuedeobj?.sqgyhzysc >= 0 ? `增加${this.yuedeobj?.sqgyhzysc}艘次` : `减少${Math.abs(this.yuedeobj?.sqgyhzysc)}艘次`
              },约${
                this.yuedeobj?.gyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.gyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.gyhtlscyxzhsjyh)}`
              }`
            );
          } else {
            jshbysList.push(
              `本季度高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,环比上季度${
                this.yuedeobj?.sqgyhzysc >= 0 ? `增加${this.yuedeobj?.sqgyhzysc}艘次` : `减少${Math.abs(this.yuedeobj?.sqgyhzysc)}艘次`
              },约${
                this.yuedeobj?.gyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.gyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.gyhtlscyxzhsjyh)}`
              }`
            );
          }

          // 第三项
          if (this.yuedeobj?.yhyhbhz >= 0) {
            zjhbysList.push(
              `本季度沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,上季度消耗${this.yuedeobj?.sqyhyh}吨,约${
                this.yuedeobj?.yhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.yhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.yhyhbhz)}`
              }`
            );
          } else {
            jshbysList.push(
              `本季度沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,上季度消耗${this.yuedeobj?.sqyhyh}吨,约${
                this.yuedeobj?.yhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.yhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.yhyhbhz)}`
              }`
            );
          }
          // 第四项
          switch (params['ywlx']) {
            case '船舶':
              if (this.yuedeobj?.hbsqyhsc >= 0) {
                zjhbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次,环比上季度约${
                    this.yuedeobj?.hbsqyhsc >= 0 ? `增加${this.yuedeobj?.hbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.hbsqyhsc)}艘次`
                  },环比上季度约${
                    this.yuedeobj?.hbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.hbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.hbsqyhscyzjyh)}`
                  }`
                );
              } else {
                jshbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次,环比上季度约${
                    this.yuedeobj?.hbsqyhsc >= 0 ? `增加${this.yuedeobj?.hbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.hbsqyhsc)}艘次`
                  },环比上季度约${
                    this.yuedeobj?.hbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.hbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.hbsqyhscyzjyh)}`
                  }`
                );
              }

              break;
            case '公司':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                zjhbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上季度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本季度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              } else {
                jshbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上季度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本季度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              }

              break;
            case '总':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                zjhbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上季度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本季度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              } else {
                jshbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上季度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本季度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              }
              break;
            default:
            // 当 expression 的值与所有 case 的值都不匹配时执行的代码
          }
          // 第5项
          if (this.yuedeobj?.bqpjschxlchbsyzj >= 0) {
            zjhbysList.push(
              `本季度平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,环比上季度${
                this.yuedeobj?.bqpjschxlchbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlchbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlchbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlchbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlchbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlchbsyzjyh)}`
              }`
            );
          } else {
            jshbysList.push(
              `本季度平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,环比上季度${
                this.yuedeobj?.bqpjschxlchbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlchbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlchbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlchbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlchbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlchbsyzjyh)}`
              }`
            );
          }

          if (this.yuedeobj.bqrylhb >= 0) {
            this.hbysList.push(...zjhbysList);
            this.hbysList.push(...jshbysList);
            for (let item = 0; item < this.hbysList.length; item++) {
              this.hbysList[item] = `${item + 1}${this.hbysList[item]}`;
            }
          } else {
            this.hbysList.push(...jshbysList);
            this.hbysList.push(...zjhbysList);
            for (let item = 0; item < this.hbysList.length; item++) {
              this.hbysList[item] = `${item + 1}${this.hbysList[item]}`;
            }
          }
          this.hbysList.push(
            `
          综上所述,环比上季度,作业因素导致本季度油耗${
              this.yuedeobj?.bt1zyys >= 0 ? `增加${this.yuedeobj?.bt1zyys}` : `减少${Math.abs(this.yuedeobj?.bt1zyys)}`
            },调度因素导致本季度油耗${
              this.yuedeobj?.bt1ddys >= 0 ? `增加${this.yuedeobj?.bt1ddys}` : `减少${Math.abs(this.yuedeobj?.bt1ddys)}`
            },其它因素导致本季度油耗${
              this.yuedeobj?.bt1qtys >= 0 ? `增加${this.yuedeobj?.bt1qtys}` : `减少${Math.abs(this.yuedeobj?.bt1qtys)}`
            }`
          );
          // 第一项
          if (this.yuedeobj.bqsocitb >= 0) {
            tzjhbysList.push(
              `本季度作业艘次${this.yuedeobj.bqsoci}艘次,同比去年同期${
                this.yuedeobj?.bqsocitb >= 0 ? `增加${this.yuedeobj?.bqsocitb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocitb)}艘次`
              },约${
                this.yuedeobj?.bqsocitbyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqsocitbyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqsocitbyh)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本季度作业艘次${this.yuedeobj.bqsoci}艘次,同比去年同期${
                this.yuedeobj?.bqsocitb >= 0 ? `增加${this.yuedeobj?.bqsocitb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocitb)}艘次`
              },约${
                this.yuedeobj?.bqsocitbyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqsocitbyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqsocitbyh)}`
              }`
            );
          }
          // 第二项
          if (this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0) {
            tzjhbysList.push(
              `本季度高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,同比去年同期${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加${this.yuedeobj?.tbgyhtlscyxzhsjyh}艘次`
                  : `减少${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}艘次`
              },约${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.tbgyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本季度高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,同比去年同期${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加${this.yuedeobj?.tbgyhtlscyxzhsjyh}艘次`
                  : `减少${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}艘次`
              },约${
                this.yuedeobj?.tbgyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.tbgyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.tbgyhtlscyxzhsjyh)}`
              }`
            );
          }
          // 第三项
          if (this.yuedeobj?.tbyhyhbhz >= 0) {
            tzjhbysList.push(
              `本季度沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,同比去年同期约${
                this.yuedeobj?.tbyhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.tbyhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.tbyhyhbhz)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本季度沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,同比去年同期约${
                this.yuedeobj?.tbyhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.tbyhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.tbyhyhbhz)}`
              }`
            );
          }
          // 第四项
          switch (params['ywlx']) {
            case '船舶':
              if (this.yuedeobj?.tbsqyhsc >= 0) {
                tzjhbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次,同比去年同期${
                    this.yuedeobj?.tbsqyhsc >= 0 ? `增加${this.yuedeobj?.tbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.tbsqyhsc)}艘次`
                  },同比去年同期约${
                    this.yuedeobj?.tbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.tbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.tbsqyhscyzjyh)}`
                  }`
                );
              } else {
                tjshbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次,同比去年同期${
                    this.yuedeobj?.tbsqyhsc >= 0 ? `增加${this.yuedeobj?.tbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.tbsqyhsc)}艘次`
                  },同比去年同期约${
                    this.yuedeobj?.tbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.tbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.tbsqyhscyzjyh)}`
                  }`
                );
              }

              break;
            case '公司':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                tzjhbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本季度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}艘次`},
                  `
                );
              } else {
                tjshbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本季度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}艘次`},
                  `
                );
              }

              break;
            case '总':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                tzjhbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本季度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}艘次`},
                  `
                );
              } else {
                tjshbysList.push(
                  `本季度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),去年同期接送引水作业${this.yuedeobj?.tqyhsc}艘次(拖轮${this.yuedeobj?.tqyhscshuyuTuolun}艘次
                  ,占比${this.yuedeobj?.tqyhscshujuzb}%),本季度拖轮接送引水作业艘次同比${this.yuedeobj?.bjdtlyhsctb > 0 ? `增加${this.yuedeobj?.bjdtlyhsctb}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctb)}艘次`},
                     接送引水作业总艘次同比${this.yuedeobj?.bjdtlyhsctbz > 0 ? `增加${this.yuedeobj?.bjdtlyhsctbz}艘次` : `减少${Math.abs(this.yuedeobj?.bjdtlyhsctbz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhitb)}艘次`},
                  `
                );
              }

              break;

            default:
            // 当 expression 的值与所有 case 的值都不匹配时执行的代码
          }
          // 第5项
          if (this.yuedeobj?.bqpjschxlchbsyzj >= 0) {
            tzjhbysList.push(
              `本季度平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,同比去年同期${
                this.yuedeobj?.bqpjschxlctbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlctbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlctbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlctbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlctbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlctbsyzjyh)}`
              }`
            );
          } else {
            tjshbysList.push(
              `本季度平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,同比去年同期${
                this.yuedeobj?.bqpjschxlctbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlctbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlctbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlctbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlctbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlctbsyzjyh)}`
              }`
            );
          }

          if (this.yuedeobj.bqsocitbyh >= 0) {
            this.tbysList.push(...tzjhbysList);
            this.tbysList.push(...tjshbysList);
            for (let item = 0; item < this.tbysList.length; item++) {
              this.tbysList[item] = `${item + 1}${this.tbysList[item]}`;
            }
          } else {
            this.tbysList.push(...tjshbysList);
            this.tbysList.push(...tzjhbysList);
            for (let item = 0; item < this.tbysList.length; item++) {
              this.tbysList[item] = `${item + 1}${this.tbysList[item]}`;
            }
          }
          this.tbysList.push(
            `
          综上所述,环比去年同期,作业因素导致本季度油耗${
              this.yuedeobj?.bt2zyys >= 0 ? `增加${this.yuedeobj?.bt2zyys}` : `减少${Math.abs(this.yuedeobj?.bt2zyys)}`
            },调度因素导致本季度油耗${
              this.yuedeobj?.bt2ddys >= 0 ? `增加${this.yuedeobj?.bt2ddys}` : `减少${Math.abs(this.yuedeobj?.bt2ddys)}`
            },其它因素导致本季度油耗${
              this.yuedeobj?.bt2qtys >= 0 ? `增加${this.yuedeobj?.bt2qtys}` : `减少${Math.abs(this.yuedeobj?.bt2qtys)}`
            }`
          );
          this.option['series'] = [
            {
              name: 'Access From',
              type: 'pie',
              radius: '50%',
              label: {
                show: true,
                formatter: '{b}: {c} ({d}%)'
              },
              data: this.yuedeobj?.bt1,
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ];

          this.tu1echars = echarts.init(window.document.getElementById('tu1'));
          this.tu1echars.setOption(this.option);

          this.option2['series'] = [
            {
              name: 'Access From',
              type: 'pie',
              radius: '50%',
              label: {
                show: true,
                formatter: '{b}: {c} ({d}%)'
              },
              data: this.yuedeobj?.bt2,
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ];
          this.tu2echars = echarts.init(window.document.getElementById('tu2'));
          this.tu2echars.setOption(this.option2);
        } else if (this.formItem.value.zqType === '年') {
          this.yuedeobj = res;
          this.cd.detectChanges();
          this.hbysList = [];
          // 减少集合
          let jshbysList: any[] = [];
          //增加集合
          let zjhbysList: any[] = [];
          // 第一项
          if (this.yuedeobj.bqsocihb >= 0) {
            zjhbysList.push(
              `本年度作业艘次${this.yuedeobj.bqsoci}艘次,环比上年度${
                this.yuedeobj?.bqsocihb >= 0 ? `增加${this.yuedeobj?.bqsocihb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocihb)}艘次`
              },约${
                this.yuedeobj?.tlscyxyhl >= 0 ? `增加油耗${this.yuedeobj?.tlscyxyhl}` : `减少油耗${Math.abs(this.yuedeobj?.tlscyxyhl)}`
              }`
            );
          } else {
            jshbysList.push(
              `本年度作业艘次${this.yuedeobj.bqsoci}艘次,环比上年度${
                this.yuedeobj?.bqsocihb >= 0 ? `增加${this.yuedeobj?.bqsocihb}艘次` : `减少${Math.abs(this.yuedeobj?.bqsocihb)}艘次`
              },约${
                this.yuedeobj?.tlscyxyhl >= 0 ? `增加油耗${this.yuedeobj?.tlscyxyhl}` : `减少油耗${Math.abs(this.yuedeobj?.tlscyxyhl)}`
              }`
            );
          }
          // 第二项
          if (this.yuedeobj?.sqgyhzysc >= 0) {
            zjhbysList.push(
              `本年度高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,环比上年度${
                this.yuedeobj?.sqgyhzysc >= 0 ? `增加${this.yuedeobj?.sqgyhzysc}艘次` : `减少${Math.abs(this.yuedeobj?.sqgyhzysc)}艘次`
              },约${
                this.yuedeobj?.gyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.gyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.gyhtlscyxzhsjyh)}`
              }`
            );
          } else {
            jshbysList.push(
              `本年度高油耗作业艘次${this.yuedeobj?.bqgyhzysc}艘次,环比上年度${
                this.yuedeobj?.sqgyhzysc >= 0 ? `增加${this.yuedeobj?.sqgyhzysc}艘次` : `减少${Math.abs(this.yuedeobj?.sqgyhzysc)}艘次`
              },约${
                this.yuedeobj?.gyhtlscyxzhsjyh >= 0
                  ? `增加油耗${this.yuedeobj?.gyhtlscyxzhsjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.gyhtlscyxzhsjyh)}`
              }`
            );
          }

          // 第三项
          if (this.yuedeobj?.yhyhbhz >= 0) {
            zjhbysList.push(
              `本年度沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,上年度消耗${this.yuedeobj?.sqyhyh}吨,约${
                this.yuedeobj?.yhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.yhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.yhyhbhz)}`
              }`
            );
          } else {
            jshbysList.push(
              `本年度沿海作业燃油消耗${this.yuedeobj?.bqyhyh}吨,上年度消耗${this.yuedeobj?.sqyhyh}吨,约${
                this.yuedeobj?.yhyhbhz >= 0 ? `增加油耗${this.yuedeobj?.yhyhbhz}` : `减少油耗${Math.abs(this.yuedeobj?.yhyhbhz)}`
              }`
            );
          }
          // 第四项
          switch (params['ywlx']) {
            case '船舶':
              if (this.yuedeobj?.hbsqyhsc >= 0) {
                zjhbysList.push(
                  `本年度接送引水作业${this.yuedeobj?.yhsc}艘次,环比上年度约${
                    this.yuedeobj?.hbsqyhsc >= 0 ? `增加${this.yuedeobj?.hbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.hbsqyhsc)}艘次`
                  },环比上年度约${
                    this.yuedeobj?.hbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.hbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.hbsqyhscyzjyh)}`
                  }`
                );
              } else {
                jshbysList.push(
                  `本年度接送引水作业${this.yuedeobj?.yhsc}艘次,环比上年度约${
                    this.yuedeobj?.hbsqyhsc >= 0 ? `增加${this.yuedeobj?.hbsqyhsc}艘次` : `减少${Math.abs(this.yuedeobj?.hbsqyhsc)}艘次`
                  },环比上年度约${
                    this.yuedeobj?.hbsqyhscyzjyh >= 0
                      ? `增加油耗${this.yuedeobj?.hbsqyhscyzjyh}`
                      : `减少油耗${Math.abs(this.yuedeobj?.hbsqyhscyzjyh)}`
                  }`
                );
              }

              break;
            case '公司':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                zjhbysList.push(
                  `本年度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上年度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本年度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              } else {
                jshbysList.push(
                  `本年度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上年度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本年度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              }
              break;
            case '总':
              if (this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi >= 0) {
                zjhbysList.push(
                  `本年度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上年度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本年度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              } else {
                jshbysList.push(
                  `本年度接送引水作业${this.yuedeobj?.yhsc}艘次(拖轮${this.yuedeobj?.bqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.bqjsyszyztlzzdz}%),上年度接送引水作业${this.yuedeobj?.sqyhsc}艘次(拖轮${this.yuedeobj?.sqtuolunzuoyinshuizuoyedesouoci}艘次
                  ,占比${this.yuedeobj?.sqjsyszyztlzzdz}%),本年度拖轮接送引水作业艘次环
                  比${this.yuedeobj?.bqtlyszyschbsqbhz > 0 ? `增加${this.yuedeobj?.bqtlyszyschbsqbhz}艘次` : `减少${Math.abs(this.yuedeobj?.bqtlyszyschbsqbhz)}艘次`},
                     接送引水作业总艘次环比${this.yuedeobj?.zjsyszyhbbhz > 0 ? `增加${this.yuedeobj?.zjsyszyhbbhz}艘次` : `减少${Math.abs(this.yuedeobj?.zjsyszyhbbhz)}艘次`},
                  约总共${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi > 0 ? `增加油耗${this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi}艘次` : `减少油耗${Math.abs(this.yuedeobj?.jsyszuoyscyxbhuayouhaozhi)}`},
                  `
                );
              }
              break;

            default:
            // 当 expression 的值与所有 case 的值都不匹配时执行的代码
          }
          // 第5项
          if (this.yuedeobj?.bqpjschxlchbsyzj >= 0) {
            zjhbysList.push(
              `本年度平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,环比上年度${
                this.yuedeobj?.bqpjschxlchbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlchbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlchbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlchbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlchbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlchbsyzjyh)}`
              }`
            );
          } else {
            jshbysList.push(
              `本年度平均艘次航行里程${this.yuedeobj?.bqpjschxlc}海里/艘次,环比上年度${
                this.yuedeobj?.bqpjschxlchbsyzj >= 0
                  ? `增加${this.yuedeobj?.bqpjschxlchbsyzj}海里/艘次`
                  : `减少${Math.abs(this.yuedeobj?.bqpjschxlchbsyzj)}海里/艘次`
              },约${
                this.yuedeobj?.bqpjschxlchbsyzjyh >= 0
                  ? `增加油耗${this.yuedeobj?.bqpjschxlchbsyzjyh}`
                  : `减少油耗${Math.abs(this.yuedeobj?.bqpjschxlchbsyzjyh)}`
              }`
            );
          }

          if (this.yuedeobj.bqrylhb >= 0) {
            this.hbysList.push(...zjhbysList);
            this.hbysList.push(...jshbysList);
            for (let item = 0; item < this.hbysList.length; item++) {
              this.hbysList[item] = `${item + 1}${this.hbysList[item]}`;
            }
          } else {
            this.hbysList.push(...jshbysList);
            this.hbysList.push(...zjhbysList);
            for (let item = 0; item < this.hbysList.length; item++) {
              this.hbysList[item] = `${item + 1}${this.hbysList[item]}`;
            }
          }
          this.hbysList.push(
            `
          综上所述,环比上年度,作业因素导致本年度油耗${
              this.yuedeobj?.bt1zyys >= 0 ? `增加${this.yuedeobj?.bt1zyys}` : `减少${Math.abs(this.yuedeobj?.bt1zyys)}`
            },调度因素导致本年度油耗${
              this.yuedeobj?.bt1ddys >= 0 ? `增加${this.yuedeobj?.bt1ddys}` : `减少${Math.abs(this.yuedeobj?.bt1ddys)}`
            },其它因素导致本年度油耗${
              this.yuedeobj?.bt1qtys >= 0 ? `增加${this.yuedeobj?.bt1qtys}` : `减少${Math.abs(this.yuedeobj?.bt1qtys)}`
            }`
          );

          this.option['series'] = [
            {
              name: 'Access From',
              type: 'pie',
              radius: '50%',
              label: {
                show: true,
                formatter: '{b}: {c} ({d}%)'
              },
              data: this.yuedeobj?.bt1,
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ];

          this.tu1echars = echarts.init(window.document.getElementById('tu1'));
          this.tu1echars.setOption(this.option);
        }
      });
    } else {
      Object.values(this.formItem.controls).forEach(control => {
        if (control.invalid) {
          control.markAsDirty();
          control.updateValueAndValidity({onlySelf: true});
        }
      });
    }
  }
}