From bb0a0bb97643038d44b62cd555e0dce31b00c2e4 Mon Sep 17 00:00:00 2001
From: fanjia <3278303149@qq.com>
Date: Wed, 22 Apr 2026 18:05:38 +0800
Subject: [PATCH] =?UTF-8?q?ai=E5=BC=B9=E7=AA=97=E9=A1=B5=E9=9D=A2=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=B7=A1=E6=9F=A5=E9=87=8C?=
=?UTF-8?q?=E7=A8=8B=E5=BC=B9=E7=AA=97=EF=BC=8C=E6=96=B0=E5=A2=9E=E6=8A=BD?=
=?UTF-8?q?=E6=9F=A5=E4=BA=BA=E6=AC=A1=E5=BC=B9=E7=AA=97=EF=BC=8C=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E6=9F=A5=E8=AF=A2=E6=83=85=E5=86=B5=E5=BC=B9=E7=AA=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dialog/aiWarningResultDialog.vue | 82 +++--
.../Dialog/clearanceSituationDialog.vue | 4 +-
.../Dialog/imageInspectionDialog.vue | 227 +++++++++++++
.../RiskWarning/Dialog/impactPointDialog.vue | 10 +-
.../Dialog/patrolMileageDialog.vue | 304 ++++++++++++++++++
.../Dialog/patrolSituationDialog.vue | 112 +++++++
.../Dialog/responseStatusDialog.vue | 7 +
.../screen/src/views/RiskWarning/index.vue | 12 +-
.../screen/src/views/RiskWarning/right.vue | 18 +-
9 files changed, 741 insertions(+), 35 deletions(-)
create mode 100644 packages/screen/src/views/RiskWarning/Dialog/imageInspectionDialog.vue
create mode 100644 packages/screen/src/views/RiskWarning/Dialog/patrolMileageDialog.vue
create mode 100644 packages/screen/src/views/RiskWarning/Dialog/patrolSituationDialog.vue
diff --git a/packages/screen/src/views/RiskWarning/Dialog/aiWarningResultDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/aiWarningResultDialog.vue
index 9160436..0455e7a 100644
--- a/packages/screen/src/views/RiskWarning/Dialog/aiWarningResultDialog.vue
+++ b/packages/screen/src/views/RiskWarning/Dialog/aiWarningResultDialog.vue
@@ -65,7 +65,14 @@
:key="tab.key"
class="hierarchy-tab"
:class="{ active: activeHierarchyTab === tab.key }"
- @click="activeHierarchyTab = tab.key"
+ @click="
+ activeHierarchyTab = tab.key;
+ if (tab.key == 'city-dept') {
+ activeImpactTab = 'point';
+ } else {
+ activeImpactTab = 'aiiType';
+ }
+ "
>
{{ tab.label }}
@@ -78,7 +85,10 @@
:key="tab.key"
class="hierarchy-tab"
:class="{ active: activeHierarchyTab === tab.key }"
- @click="activeHierarchyTab = tab.key"
+ @click="
+ activeHierarchyTab = tab.key;
+ activeImpactTab = 'point';
+ "
>
{{ tab.label }}
@@ -91,7 +101,12 @@
:key="tab.key"
class="hierarchy-tab"
:class="{ active: activeHierarchyTab === tab.key }"
- @click="activeHierarchyTab = tab.key"
+ @click="
+ activeHierarchyTab = tab.key;
+ if (tab.key == 'frontline-whistle' || tab.key == 'frontline-guard') {
+ activeImpactTab = 'project';
+ }
+ "
>
{{ tab.label }}
@@ -163,7 +178,9 @@
'city-dept' == activeHierarchyTab ||
'city-emergency' == activeHierarchyTab ||
'district-leader' == activeHierarchyTab ||
- 'district-person' == activeHierarchyTab
+ 'district-person' == activeHierarchyTab ||
+ 'frontline-whistle' == activeHierarchyTab ||
+ 'frontline-contractor' == activeHierarchyTab
"
>
@@ -171,7 +188,8 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -221,25 +254,25 @@
-
-
+
+
@@ -347,7 +380,9 @@ const warningTabs = ref([
guard:
'按照相关要求,启动I级防御响应,并请及时关注地质、水文等风险提示信息,落实主动封闭管控措施,请立即按照2小时一次频率对你管养的重点路段进行巡查,重点巡查较高及以上风险路段、涉灾隐患点、地质条件复杂路段、临河临崖路段,重点关注涉水桥梁基础及墩台、不良地质隧道、隧道洞口边仰坡及侧切结构、高陡边坡支挡防护以及防排水设施,发现异常情况,立即向上报告,采取紧急排危、告警阻拦、交通管控等措施,并及时报送工作开展情况。',
whistle:
- '按照相关要求,启动I级防御响应,并请及时关注地质、水文等风险提示信息,落实主动“关停撤转”措施,应急抢险人员和吹哨人全员在岗值班,做好应急装备物资检修,并请立即对你项目的重点部位进行巡查,重点巡查两区三厂、大型设施设备、取弃土(渣)场、砂石料场、涉水桥梁、富水隧道、围堰、支架脚手架、高切坡、深基坑、滑坡处置等部位,发现异常情况,立即向上报告,采取紧急排危、吹哨撤转等措施,并及时报送工作开展情况。',
+ '按照相关指南,请根据暴雨预警级别启动相应等级防御响应,请及时关注地质、水文等风险提示信息,做好会商研判,严格值班值守,落实预警叫应、部署调度、督导帮扶、力量预置、巡查排危和“关停撤转”等措施,及时跟踪分析、研究部署防范应对、受灾和抢险救援保通工作。',
+ contractor:
+ '按照相关指南,请根据暴雨预警级别启动相应等级防御响应,请及时关注地质、水文等风险提示信息,做好会商研判,严格值班值守,落实预警叫应、部署调度、督导帮扶、力量预置、巡查排危和“关停撤转”等措施,及时跟踪分析、研究部署防范应对、受灾和抢险救援保通工作。',
},
{ key: 'dept', label: '处室负责人', content: '', suggestion: '' },
@@ -366,13 +401,20 @@ const impactTabs = ref([
{ key: 'point', label: '影响点' },
{ key: 'project', label: '影响项目' },
]);
-const activeImpactTab = ref('point');
+const activeImpactTab = ref('project');
// 影响点数据
const impactPointData = ref([]);
// 影响项目数据
const impactProjectData = ref([]);
+const aiiTypeArr = ref([
+ { number: '2', label: '影响区县' },
+ { number: '21', label: '风险路段' },
+ { number: '21', label: '桥梁' },
+ { number: '21', label: '隧道' },
+ { number: '21', label: '项目' },
+]);
// 影响项目
const impactProjectDataTable = ref([
{
diff --git a/packages/screen/src/views/RiskWarning/Dialog/clearanceSituationDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/clearanceSituationDialog.vue
index 67896ed..9f74ff6 100644
--- a/packages/screen/src/views/RiskWarning/Dialog/clearanceSituationDialog.vue
+++ b/packages/screen/src/views/RiskWarning/Dialog/clearanceSituationDialog.vue
@@ -1,7 +1,7 @@
{
total.value = data.total;
}
} catch (error) {
- console.error('获取抢通情况数据失败:', error);
+ console.error('获取管控情况数据失败:', error);
}
};
diff --git a/packages/screen/src/views/RiskWarning/Dialog/imageInspectionDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/imageInspectionDialog.vue
new file mode 100644
index 0000000..e489022
--- /dev/null
+++ b/packages/screen/src/views/RiskWarning/Dialog/imageInspectionDialog.vue
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/RiskWarning/Dialog/impactPointDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/impactPointDialog.vue
index 636cc87..0c49829 100644
--- a/packages/screen/src/views/RiskWarning/Dialog/impactPointDialog.vue
+++ b/packages/screen/src/views/RiskWarning/Dialog/impactPointDialog.vue
@@ -680,13 +680,13 @@ const processUnifiedData = (item, type) => {
},
// 护路员 - 使用GL1_HLXM和GL1_HLDH
roadKeeper: {
- name: item.GL1_HLXM || '-',
- phone: item.GL1_HLDH || '-',
+ name: item.GL1_HLXM || item.ROAD_PATROL_WORKER_NAME || '-',
+ phone: item.GL1_HLDH || item.ROAD_PATROL_WORKER_PHONE || '-',
},
- // 一般人员(路长履职)- 使用风险类型和风险描述
+ // 一般人员(路长履职)
generalStaff: {
- name: item.GL1_FXLX || '-',
- phone: item.GL1_FXMS || '-',
+ name: item.ROAD_SECTION_CHIEF_NAME || '-',
+ phone: item.ROAD_SECTION_CHIEF_PHONE || '-',
},
};
}
diff --git a/packages/screen/src/views/RiskWarning/Dialog/patrolMileageDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/patrolMileageDialog.vue
new file mode 100644
index 0000000..df3d342
--- /dev/null
+++ b/packages/screen/src/views/RiskWarning/Dialog/patrolMileageDialog.vue
@@ -0,0 +1,304 @@
+
+
+
+
+
+
+
+ 国省道:
+ {{ nationalRoadMileage }}km
+
+
+
+ 农村公路:
+ {{ ruralRoadMileage }}km
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/RiskWarning/Dialog/patrolSituationDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/patrolSituationDialog.vue
new file mode 100644
index 0000000..e97bfec
--- /dev/null
+++ b/packages/screen/src/views/RiskWarning/Dialog/patrolSituationDialog.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/RiskWarning/Dialog/responseStatusDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/responseStatusDialog.vue
index 3657f7b..884c823 100644
--- a/packages/screen/src/views/RiskWarning/Dialog/responseStatusDialog.vue
+++ b/packages/screen/src/views/RiskWarning/Dialog/responseStatusDialog.vue
@@ -230,6 +230,8 @@ const tableColumns = ref([
{ prop: 'roadOrg', label: '公路机构责任人', width: '100px', slot: 'roadOrg' },
{ prop: 'maintenance', label: '养护站负责人', width: '100px', slot: 'maintenance' },
{ prop: 'roadKeeper', label: '护路员', width: '100px', slot: 'roadKeeper' },
+
+ { prop: 'generalStaff', label: '一般人员(路长履职)', width: '100px', slot: 'generalStaff' },
{ prop: 'urgeTime', label: '最新催告时间', width: '', slot: 'urgeTime' },
{ prop: 'operation', label: '操作', width: '', slot: 'operation' },
]);
@@ -370,6 +372,11 @@ const fetchData = async () => {
img: roadKeeperEvent.replyState === 'read' ? respondedIcon : notRespondedIcon,
isResponded: roadKeeperEvent.replyState === 'read',
},
+ generalStaff:{
+ name: item.GL1_QLGCS || "-",
+ phone: item.GL1_QLGCSDH || "-",
+ },
+
urgeTime: {
date: urgeTimeParts[0] || '-',
time: urgeTimeParts[1] ? urgeTimeParts[1].substring(0, 8) : '-',
diff --git a/packages/screen/src/views/RiskWarning/index.vue b/packages/screen/src/views/RiskWarning/index.vue
index ff23c01..d718454 100644
--- a/packages/screen/src/views/RiskWarning/index.vue
+++ b/packages/screen/src/views/RiskWarning/index.vue
@@ -38,6 +38,7 @@
@openDispatchDistrict="openDialog('dispatchDistrict')"
@showCenterCard="item => handleCenterCardClick(item)"
@openOfflineHelp="openDialog('offlineHelp')"
+ @openImageInspection="openDialog('imageInspection')"
>
@@ -194,7 +195,7 @@
@close="closeDialog('tongnanProjectPerson')"
/>
-
+
+
+
+
@@ -300,6 +307,7 @@ import centerInfoCard from './Dialog/centerInfoCard.vue';
import tongnanProjectPersonDialog from './Dialog/tongnanProjectPersonDialog.vue';
import hazardPointSituationDialog from './Dialog/hazardPointSituationDialog.vue';
import offlineHelpDialog from './Dialog/offlineHelpDialog.vue';
+import imageInspectionDialog from './Dialog/imageInspectionDialog.vue';
import './component/el-select.scss';
import './component/date-picker-theme.scss';
@@ -329,6 +337,7 @@ const dialogVisible = ref({
tongnanProjectPerson: false,
hazardPointSituation: false,
offlineHelp: false,
+ imageInspection: false,
});
const activeitem = ref({});
@@ -706,7 +715,6 @@ onMounted(() => {
position: absolute;
bottom: 5px;
left: 25%;
- width: 20%;
height: 43%;
}
.weather-warning-table {
diff --git a/packages/screen/src/views/RiskWarning/right.vue b/packages/screen/src/views/RiskWarning/right.vue
index f6098c2..a1a6044 100644
--- a/packages/screen/src/views/RiskWarning/right.vue
+++ b/packages/screen/src/views/RiskWarning/right.vue
@@ -39,10 +39,11 @@
:key="index"
class="control-item"
:class="{
- clickable: item.label === '封闭管控数',
+ clickable: true,
}"
@click="handleControlClick(item)"
>
+
{{ item.value }}
{{ item.label }}
@@ -55,7 +56,7 @@
:key="index"
class="control-item"
:class="{
- clickable: item.label === '关闭驻地数',
+ clickable: item.label == '停工项目数' || item.label == '关闭驻地数',
}"
@click="handleControlClick(item)"
>
@@ -524,10 +525,15 @@ const extractAndSumNumbers = value => {
// 点击管控项
const handleControlClick = item => {
- if (item.label === '封闭管控数') {
+ if (
+ item.label === '封闭管控数' ||
+ item.label === '半幅通行数' ||
+ item.label === '限速(限车型)数' ||
+ item.label === '告警阻拦处数'
+ ) {
emit('openClearanceSituation');
emit('update:dateRange', getdateRange.value || []);
- } else if (item.label === '关闭驻地数') {
+ } else if (item.label === '停工项目数' || item.label === '关闭驻地数') {
emit('openControlSituation');
}
};
@@ -663,8 +669,8 @@ const blockData = ref([
{ label: '本轮累计阻断数', current: '10', total: '23' },
]);
-// 死亡人数
-const deathData = ref({ label: '本轮因灾死亡人数', value: '5' });
+// 伤亡人数
+const deathData = ref({ label: '本轮因灾伤亡人数', value: '5' });
// 灾害情况数据
const damageData = ref([