修改全局影响区域文字为行政区域,涉灾详情参数完成回填。

This commit is contained in:
fanjia 2026-04-17 15:21:10 +08:00
parent 5e90481aaa
commit 9b9c852c52
11 changed files with 146 additions and 54 deletions

View File

@ -16,7 +16,7 @@
<template #filter>
<div class="filter-row">
<div class="filter-item">
<span class="filter-label">影响区域</span>
<span class="filter-label">行政区域</span>
<el-select
:teleported="false"
v-model="filterForm.district"
@ -136,7 +136,7 @@ const tableHeight = ref(300);
//
const tableColumns = ref([
{ prop: 'id', label: '序号', width: '' },
{ prop: 'district', label: '影响区域', width: '' },
{ prop: 'district', label: '行政区域', width: '' },
{ prop: 'routeNo', label: '线路编号', width: '' },
{ prop: 'stakeNo', label: '起止桩号', width: '', slot: 'stakeNo' },
{ prop: 'location', label: '路况位置', width: '', slot: 'location' },

View File

@ -17,7 +17,7 @@
<template #filter>
<div class="filter-row">
<div class="filter-item">
<span class="filter-label">影响区域</span>
<span class="filter-label">行政区域</span>
<el-select :teleported="false" v-model="filterForm.region" placeholder="请选择" class="filter-select" clearable>
<el-option
v-for="item in regionOptions"
@ -83,7 +83,7 @@ const filterForm = ref({
riskLevel: "",
});
//
//
// index.js
//
@ -95,7 +95,7 @@ const tableHeight = ref(300);
//
const tableColumns = ref([
{ prop: 'id', label: '序号', width: '60' },
{ prop: 'region', label: '影响区域', width: '100' },
{ prop: 'region', label: '行政区域', width: '100' },
{ prop: 'stationName', label: '驻地名称', width: '200', slot: 'stationName' },
{ prop: 'project', label: '所属项目', width: '200', slot: 'project' },
{ prop: 'peopleCount', label: '驻地人数', width: '80' },

View File

@ -17,7 +17,7 @@
<template #filter>
<div class="filter-row">
<div class="filter-item">
<span class="filter-label">影响区域</span>
<span class="filter-label">行政区域</span>
<el-select :teleported="false"
v-model="filterForm.region"
placeholder="请选择"
@ -76,7 +76,7 @@ const filterForm = ref({
type: "",
});
//
//
// index.js
//

View File

@ -17,7 +17,7 @@
<template #filter>
<div class="filter-row">
<div class="filter-item">
<span class="filter-label">影响区域</span>
<span class="filter-label">行政区域</span>
<el-select :teleported="false"
v-model="filterForm.region"
placeholder="请选择"
@ -68,7 +68,7 @@ const filterForm = ref({
region: "",
});
//
//
// index.js
//
@ -77,7 +77,7 @@ const tableHeight = ref(300);
//
const tableColumns = ref([
{ prop: "id", label: "序号", width: "" },
{ prop: "region", label: "影响区域", width: "" },
{ prop: "region", label: "行政区域", width: "" },
{ prop: "dispatchCount", label: "调度数", width: "", slot: "dispatchCount" },
{ prop: "lastDispatchTime", label: "最近调度时间", width: "" },
]);

View File

@ -148,40 +148,62 @@ const total = ref(0);
const currentPage = ref(1);
const pageSize = ref(10);
//
//
const hazardData = ref({
district: '南川区',
riskLevel: '较大隐患',
roadCode: 'S523',
location: '开县-凭祥(K292+301至K292+386)',
riskDescription:
'崩塌形成于路线右侧上边坡陡峭位置影响长度85m掉块、滑塌可能性极大。【类型路内风险点-边坡】',
measures: '已纳入灾害防治工程计划,拟采用坡面整理及挂网喷射植被混凝土整治。',
//
district: '', // GL1_QXMC
riskLevel: '', // GL1_FXDJ
roadCode: '', // GL1_GLBH 线
roadName: '', // GL1_GLMC 线
location: '', // GL1_QDZH + GL1_ZDZH
riskDescription: '', // GL1_FXMS
riskType: '', // GL1_FXLX
measures: '', // GL1_CQCS
isWithinRedLine: '', // GL1_SFHXN 线
//
trafficDept: {
name: '何思毅',
phone: '13896702005',
frequency: '半年巡查一次',
name: '', // GL1_JTXM
phone: '', // GL1_JTDH
frequency: '',
},
roadOrg: {
name: '杨洪',
phone: '15025697135',
frequency: '每月巡查一次',
name: '', // GL1_JGXM
phone: '', // GL1_JGDH
frequency: '',
},
maintenance: {
name: '陈李彪',
phone: '13896713399',
frequency: '每周巡查一次',
name: '', // GL1_YHXM
phone: '', // GL1_YHDH
frequency: '',
},
roadKeeper: {
name: '陈李彪',
phone: '13896713399',
frequency: '一周巡查两次',
name: '', // GL1_HLXM
phone: '', // GL1_HLDH
frequency: '',
},
earlyWarning: '当前无预警',
offlinePatrol: '常态化巡查',
trafficControl: '观察通行 半幅通行 禁止通行 无',
forcePreposition: '安宁养护站',
alarmBlocking: '设置警示标识 向社会发布信息 采取硬隔离措施 无',
//
earlyWarning: '', // GL1_YJDJ
offlinePatrol: '', // GL1_SFJCD
trafficControl: '', // GL1_SFZCQS
forcePreposition: '', // GL1_ZT
alarmBlocking: '', // GL1_SFZZWC
//
isMeasureTaken: '', // GL1_SFCQCS
completeDeadline: '', // GL1_WCSX
expertOpinion: '', // GL1_ZJYJ
isTransferred: '', // GL1_SFGZYJ
auditStatus: '', // GL1_SHZT
auditUnit: '', // GL1_SHDW
reporter: '', // GL1_SBR
reportTime: '', // GL1_SBSJ
remark: '', // GL1_BZ
//
longitude: '', // GL1_LON
latitude: '', // GL1_LAT
});
//
@ -204,10 +226,70 @@ watch(
() => props.visible,
newVal => {
if (newVal && props.data) {
//
Object.assign(hazardData.value, props.data);
//
const data = props.data;
hazardData.value = {
//
district: data.GL1_QXMC || data.district || '',
riskLevel: data.GL1_FXDJ || data.riskLevel || '',
roadCode: data.GL1_GLBH || data.roadCode || '',
roadName: data.GL1_GLMC || data.roadName || '',
location:
data.GL1_QDZH && data.GL1_ZDZH
? `${data.GL1_QDZH}${data.GL1_ZDZH}`
: data.location || '',
riskDescription: data.GL1_FXMS || data.riskDescription || '',
riskType: data.GL1_FXLX || data.riskType || '',
measures: data.GL1_CQCS || data.measures || '',
isWithinRedLine: data.GL1_SFHXN || data.isWithinRedLine || '',
//
trafficDept: {
name: data.GL1_JTXM || data.trafficDept?.name || '',
phone: data.GL1_JTDH || data.trafficDept?.phone || '',
frequency: data.trafficDept?.frequency || '',
},
roadOrg: {
name: data.GL1_JGXM || data.roadOrg?.name || '',
phone: data.GL1_JGDH || data.roadOrg?.phone || '',
frequency: data.roadOrg?.frequency || '',
},
maintenance: {
name: data.GL1_YHXM || data.maintenance?.name || '',
phone: data.GL1_YHDH || data.maintenance?.phone || '',
frequency: data.maintenance?.frequency || '',
},
roadKeeper: {
name: data.GL1_HLXM || data.roadKeeper?.name || '',
phone: data.GL1_HLDH || data.roadKeeper?.phone || '',
frequency: data.roadKeeper?.frequency || '',
},
//
earlyWarning: data.GL1_YJDJ || data.earlyWarning || '',
offlinePatrol: data.GL1_SFJCD || data.offlinePatrol || '',
trafficControl: data.GL1_SFZCQS || data.trafficControl || '',
forcePreposition: data.GL1_ZT || data.forcePreposition || '',
alarmBlocking: data.GL1_SFZZWC || data.alarmBlocking || '',
//
isMeasureTaken: data.GL1_SFCQCS || data.isMeasureTaken || '',
completeDeadline: data.GL1_WCSX || data.completeDeadline || '',
expertOpinion: data.GL1_ZJYJ || data.expertOpinion || '',
isTransferred: data.GL1_SFGZYJ || data.isTransferred || '',
auditStatus: data.GL1_SHZT || data.auditStatus || '',
auditUnit: data.GL1_SHDW || data.auditUnit || '',
reporter: data.GL1_SBR || data.reporter || '',
reportTime: data.GL1_SBSJ || data.reportTime || '',
remark: data.GL1_BZ || data.remark || '',
//
longitude: data.GL1_LON || data.longitude || '',
latitude: data.GL1_LAT || data.latitude || '',
};
}
}
},
{ immediate: true }
);
</script>

View File

@ -79,7 +79,7 @@
:teleported="false"
v-model="filterForm.region"
size="small"
placeholder="影响区域"
placeholder="行政区域"
class="filter-select"
>
<el-option
@ -260,7 +260,7 @@ const filterForm = ref({
// 使
const unifiedColumns = [
{ prop: "id", label: "序号", width: "" },
{ prop: "region", label: "影响区域", width: "" },
{ prop: "region", label: "行政区域", width: "" },
{ prop: "pointType", label: "影响点类型", width: "" },
{ prop: "pointLocation", label: "影响点位置", width: "" },
{ prop: "pointLevel", label: "影响点等级", width: "", slot: "pointLevel" },
@ -296,7 +296,7 @@ const unifiedColumns = [
//
const projectColumns = [
{ prop: "id", label: "序号", width: "60" },
{ prop: "region", label: "影响区域", width: "" },
{ prop: "region", label: "行政区域", width: "" },
{ prop: "pointType", label: "影响点类型", width: "" },
{ prop: "siteName", label: "驻地名称", width: "" },
{
@ -535,7 +535,7 @@ const processUnifiedData = (item, type) => {
//
const baseData = {
id: item.id,
//
//
region:
item.GL1_QXMC ||
item.COUNTY ||
@ -600,7 +600,7 @@ const processUnifiedData = (item, type) => {
if (cardTypeVal.value === "桥梁") {
return {
...baseData,
// - 使
// - 使
region: item.GL1_QXMC || "-",
// - 使
pointLocation: item.GL1_QLMC || "-",
@ -641,7 +641,7 @@ const processUnifiedData = (item, type) => {
if (cardTypeVal.value === "隧道") {
return {
...baseData,
// - 使
// - 使
region: item.GL1_QXMC || item.GL1_QXBM || "-",
// - 使
pointLocation: item.GL1_SDMC || "-",
@ -682,7 +682,7 @@ const processUnifiedData = (item, type) => {
if (cardTypeVal.value === "路段") {
return {
...baseData,
// - 使
// - 使
region: item.GL1_ZDMC || "-",
// - 使线+
pointLocation: `${item.GL1_GLMC || item.GL1_GLBH || "-"} (${item.GL1_QDZH || "-"} - ${item.GL1_ZDZH || "-"})`,
@ -721,7 +721,7 @@ const processUnifiedData = (item, type) => {
if (cardTypeVal.value === "项目") {
return {
...baseData,
// - 使COUNTY
// - 使COUNTY
region: item.COUNTY || item.county || item.county_name || "-",
// - 使
pointLocation: item.PROJECT_NAME || item.projectName || item.name || "-",

View File

@ -34,7 +34,7 @@
<div class="filter-item">
<el-select :teleported="false"
v-model="filterForm.region"
placeholder="影响区域"
placeholder="行政区域"
class="filter-select"
>
<el-option
@ -128,7 +128,7 @@ const tableColumns = ref([
{ prop: "id", label: "序号", width: "" },
{ prop: "weatherSource", label: "气象来源", width: "" },
{ prop: "warningLevel", label: "预警等级", width: "", slot: "warningLevel" },
{ prop: "region", label: "影响区域", width: "" },
{ prop: "region", label: "行政区域", width: "" },
{ prop: "warningTime", label: "预警时间", width: "" },
{ prop: "endTime", label: "结束时间", width: "" },
{ prop: "impactPoints", label: "影响点数量", width: "" },

View File

@ -34,7 +34,7 @@
</el-select>
</div>
<div class="filter-item">
<span class="filter-label">影响区域</span>
<span class="filter-label">行政区域</span>
<el-select
v-model="filterForm.countyName"
placeholder="请选择"
@ -206,7 +206,7 @@ const tableColumns = ref([
width: "",
},
{ prop: "weatherType", label: "气象类型", width: "" },
{ prop: "countyName", label: "影响区域", width: "" },
{ prop: "countyName", label: "行政区域", width: "" },
{ prop: "warningTime", label: "生效时间", width: "" },
{ prop: "endTime", label: "失效时间", width: "" },
{

View File

@ -438,4 +438,10 @@ defineExpose({
:deep(.el-table .cell) {
text-align: center;
}
:deep(.el-table:not(.el-table--border) .el-table__cell) {
font-size: vw(14);
}
:deep(.el-table .cell) {
font-size: vw(16);
}
</style>

View File

@ -81,6 +81,7 @@
:showHazardPopup="showHazardPopup"
:riskPointStats="riskPointStats"
:roadvalArrtrue="roadvalArrtrue"
:showRoadStats="showRoadStats"
@openAIResult="openDialog('aiWarningResult')"
@dateRangeChange="handleDateRangeChange"
></top>
@ -342,9 +343,11 @@ const changeActiveIndex = index => {
activeitem.value = index;
};
const roadItem = ref({});
const showRoadStats = ref(false);
const roadItemClick = item => {
console.log('点击路段:', item);
roadItem.value = item;
showRoadStats.value = true;
};
//

View File

@ -30,7 +30,7 @@
</span>
</div>
</div>
<div class="road-stats" v-if="roadStats.length > 0">
<div class="road-stats" v-if="showRoadStats && roadStats.length > 0">
<div v-for="(item, index) in roadStats" :key="index" class="stat-item">
<span class="stat-label">{{ item.label }}</span>
<span class="stat-value-container display ai_center">
@ -65,6 +65,10 @@ const props = defineProps({
type: Object,
default: () => ({}),
},
showRoadStats: {
type: Boolean,
default: false,
},
});
watch(
@ -199,9 +203,6 @@ const fetchRiskLevelCount = async () => {
let roadTotal = 0;
roadStats.value.forEach(item => {
data.forEach(d => {
debugger;
console.log(item.label, d.level);
console.log(item.label.includes(d.level));
if (item.label.includes(d.level)) {
roadTotal += Number(d.count);
item.value = Number(d.count);