riku
2025-10-16 87e19b5a396ac8fed6a551828b87d263f6425c31
2025.10.16 修改季度报告生成逻辑
已修改4个文件
76 ■■■■ 文件已修改
public/underway_season_report.docx 补丁 | 查看 | 原始文档 | blame | 历史
src/views/historymode/component/MissionReport.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sourcetrace/component/PollutedExceptionItem.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sourcetrace/component/PollutedWarnItem.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/underway_season_report.docx
Binary files differ
src/views/historymode/component/MissionReport.vue
@@ -33,19 +33,19 @@
        >
          下载报告
        </el-button>
        <!-- <el-button
        <el-button
          type="primary"
          class="el-button-custom"
          @click="handleGenerateImg"
          :loading="docLoading"
        >
          生成图片
        </el-button> -->
        </el-button>
      </el-form-item>
      <!-- <el-form-item>
        <el-image :src="base64Url" fit="fill" :preview-src-list="[base64Url]" />
      </el-form-item> -->
      <el-form-item>
      <!-- <el-form-item>
        <el-button
          type="primary"
          class="el-button-custom"
@@ -63,7 +63,7 @@
            />
          </el-form-item>
        </el-form-item>
      </el-form-item>
      </el-form-item> -->
    </el-form>
  </CardDialog>
</template>
@@ -145,16 +145,19 @@
      mainFactor: '',
      _abnormalFactors: '',
      sceneCount: 0,
      _kilometres: '1000'
      _kilometres: '1000',
      _keyScene: '1个国控点(静安监测站)和2个市控点(和田中学、市北高新)',
      exceptionCount: 0,
      _focusScene: ''
    }
  ],
  missionDetailList: [
    {
      _index: 1,
      missionCode: '',
      _startTime: '2025年07月29日',
      _time: '09:00至14:30',
      _kilometres: '1000',
      _keyScene: '1个国控点(静安监测站)和2个市控点(和田中学、市北高新)',
      _dataStatistics: [
        {
          factor: 'PM10',
@@ -235,7 +238,9 @@
};
const handleGenerateImg = () => {
  generateClueByRiskArea(params.value).then(() => {});
  generateClueByRiskArea(params.value).then(() => {
    generateDocx();
  });
};
function generateMissionSummary(param) {
@@ -338,11 +343,21 @@
      return {
        _index: index + 1,
        // _area: `${item.sceneInfo.type}${item.sceneInfo.name}周边`,
        _area: `${item.address}`,
        _area: `${item.township}`,
        clueByFactorList: item.clueByFactorList.map((cbf) => {
          return {
            factor: cbf.factor,
            clues: cbf.clues.map((clue) => {
              const _riskRegion = [];
              if (clue.pollutedArea.address) {
                _riskRegion.push(clue.pollutedArea.address);
              }
              if (clue.pollutedArea.streetNumber) {
                _riskRegion.push(clue.pollutedArea.streetNumber);
              }
              if (clue.pollutedArea.roadinter) {
                _riskRegion.push(clue.pollutedArea.roadinter);
              }
              return {
                _factorNames: Object.keys(clue.pollutedData.statisticMap)
                  .map((e) => e)
@@ -353,12 +368,11 @@
                  ) +
                  ' - ' +
                  moment(clue.pollutedData.endTime).format('HH:mm:ss'),
                _riskRegion: clue.pollutedArea.address
                  ? clue.pollutedArea.address
                  : '',
                _riskRegion: _riskRegion.join(','),
                _exceptionType: clue.pollutedData.exception,
                _images: generateChartImg(clue.pollutedData),
                _conclusion: clue.pollutedSource.conclusion,
                _hasScene: clue.pollutedSource.sceneList.length > 0,
                _scenes:
                  clue.pollutedSource.sceneList.length > 0
                    ? clue.pollutedSource.sceneList
src/views/sourcetrace/component/PollutedExceptionItem.vue
@@ -38,10 +38,7 @@
        <div>
          <el-text type="info">
            <el-icon><MapLocation /></el-icon>
            {{
              '风险区域:' +
              (item.pollutedArea.address ? item.pollutedArea.address : '')
            }}
            {{ '风险区域:' + riskRegion }}
          </el-text>
        </div>
        <!-- <div>
@@ -145,6 +142,20 @@
  return indexArr;
});
const riskRegion = computed(() => {
  const _riskRegion = [];
  if (props.item.pollutedArea.address) {
    _riskRegion.push(props.item.pollutedArea.address);
  }
  if (props.item.pollutedArea.streetNumber) {
    _riskRegion.push(props.item.pollutedArea.streetNumber);
  }
  if (props.item.pollutedArea.roadinter) {
    _riskRegion.push(props.item.pollutedArea.roadinter);
  }
  return _riskRegion.join(',');
});
const emits = defineEmits(['showMarksAndPolygon', 'update:modelValue']);
function showMarksAndPolygon(item) {
src/views/sourcetrace/component/PollutedWarnItem.vue
@@ -30,10 +30,7 @@
        <div>
          <el-text type="info">
            <el-icon><MapLocation /></el-icon>
            {{
              '所在区域:' +
              (item.pollutedArea.address ? item.pollutedArea.address : '')
            }}
            {{ '所在区域:' + riskRegion }}
          </el-text>
        </div>
        <!-- <div>
@@ -70,7 +67,7 @@
  </BaseCard>
</template>
<script setup>
import { ref } from 'vue';
import { ref, computed } from 'vue';
const props = defineProps({
  modelValue: Boolean,
@@ -79,6 +76,20 @@
const emits = defineEmits(['showMarksAndPolygon', 'update:modelValue']);
const riskRegion = computed(() => {
  const _riskRegion = [];
  if (props.item.pollutedArea.address) {
    _riskRegion.push(props.item.pollutedArea.address);
  }
  if (props.item.pollutedArea.streetNumber) {
    _riskRegion.push(props.item.pollutedArea.streetNumber);
  }
  if (props.item.pollutedArea.roadinter) {
    _riskRegion.push(props.item.pollutedArea.roadinter);
  }
  return _riskRegion.join(',');
});
function showMarksAndPolygon(item) {
  emits('showMarksAndPolygon', item);
}