From 87e19b5a396ac8fed6a551828b87d263f6425c31 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 16 十月 2025 10:26:12 +0800
Subject: [PATCH] 2025.10.16 修改季度报告生成逻辑
---
src/views/sourcetrace/component/PollutedWarnItem.vue | 21 ++++++++--
public/underway_season_report.docx | 0
src/views/sourcetrace/component/PollutedExceptionItem.vue | 19 +++++++--
src/views/historymode/component/MissionReport.vue | 36 ++++++++++++-----
4 files changed, 56 insertions(+), 20 deletions(-)
diff --git a/public/underway_season_report.docx b/public/underway_season_report.docx
index 3322c62..3b709a4 100644
--- a/public/underway_season_report.docx
+++ b/public/underway_season_report.docx
Binary files differ
diff --git a/src/views/historymode/component/MissionReport.vue b/src/views/historymode/component/MissionReport.vue
index 4a0a9d2..e45fe4b 100644
--- a/src/views/historymode/component/MissionReport.vue
+++ b/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
diff --git a/src/views/sourcetrace/component/PollutedExceptionItem.vue b/src/views/sourcetrace/component/PollutedExceptionItem.vue
index 2482d6c..a2e9fdd 100644
--- a/src/views/sourcetrace/component/PollutedExceptionItem.vue
+++ b/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) {
diff --git a/src/views/sourcetrace/component/PollutedWarnItem.vue b/src/views/sourcetrace/component/PollutedWarnItem.vue
index 90a8456..b9c97de 100644
--- a/src/views/sourcetrace/component/PollutedWarnItem.vue
+++ b/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);
}
--
Gitblit v1.9.3