This commit is contained in:
guanj
2025-10-27 13:21:46 +08:00
13 changed files with 76 additions and 847 deletions

View File

@@ -611,7 +611,11 @@ const handleChartClick = (params: any) => {
};
// 定义 emit
const emit = defineEmits(["flag-changed", "expand-detail"]);
const emit = defineEmits([
"flag-changed",
"expand-detail",
"refresh-security-detail",
]);
watch(flag, (newVal) => {
// 向父组件发送 flag 变化事件
@@ -745,7 +749,7 @@ const initHasEventList = () => {
const dataObject = {
eventList: [...eventList.value],
color: "#7ac1f9",
color: "#375db4",
};
// 发送eventList数据到iframe注意发送的是.value而不是响应式对象本身
@@ -781,7 +785,7 @@ const initHasUpEventList = () => {
const dataObject = {
eventList: [...eventList.value],
color: "#fcfc57",
color: "#f08a0a",
flagValue: "2",
};
@@ -849,14 +853,13 @@ const analysisClick = (row: any) => {
maxResponsibilityMonitorId.value = res.data
.filter((item) => item.isImport == 1)
.map((item) => item.lineId); // 筛选 isImport 为 1
console.log(maxResponsibilityMonitorId.value, "890jhuj");
}
const dataObject = {
eventList: [...eventList.value],
color: "#fcfc57",
color: "#1dd1a1",
maxResponsibilityMonitorId: [...maxResponsibilityMonitorId.value],
maxColor: "#ff0000",
maxColor: "#f9065b",
};
// 发送eventList数据到iframe注意发送的是.value而不是响应式对象本身
@@ -951,6 +954,8 @@ const initialResponsibilityList = () => {
}
loading.value = false;
}
// 通知父组件刷新 manage/securityDetail.vue 中的数据
emit("refresh-security-detail");
})
.catch((error) => {
traceabilityTableData.value = [];
@@ -1181,11 +1186,11 @@ const callHarmOneImageApi = (row: any, selectedTime: string) => {
const dataObject = {
eventListAll: [JSON.parse(JSON.stringify(eventListAll.value))],
eventList: [...eventList.value],
color: "#fcfc57",
color: "#09ee06",
maxResponsibilityMonitorId: [...maxResponsibilityMonitorId.value],
maxColor: "#ff0000",
maxColor: "#c708fe",
backgroundPointId: [...backgroundPoint.value],
backgroundPointColor: "#03df6d",
backgroundPointColor: "#0936f4",
};
// 发送所有 monitorId 数据到 iframe
sendMessageToIframe("SEND_KEYS_TO_IFRAME", dataObject);

View File

@@ -420,7 +420,7 @@ const submit = () => {
// 执行
const execute = async (item: any, index: number) => {
if (item.time == undefined) {
if (time.value == undefined || time.value.length == 0) {
return ElMessage.warning("请选择时间范围");
}
tabList.value[activeName.value].showDynamic = false;

View File

@@ -526,6 +526,7 @@ const loading = ref(false);
const trendChartRef = ref();
// 页码
const params = reactive({
pageNum: 1,
@@ -945,9 +946,14 @@ const init = () => {
eventList();
};
const refreshResponsibilityList = () => {
initialResponsibilityList();
};
defineExpose({
init,
setShowDetail, // 暴露方法给父组件调用
refreshResponsibilityList
});
</script>

View File

@@ -117,36 +117,57 @@
"
>
<div style="display: flex">
<img
src="@/assets/icon/传输设备 (3).png"
style="width: 20px; height: 20px"
/>
<span class="iconfont" style="color: #7ac1f9">&#xe67a;</span>
<div style="margin-left: 10px; font-size: 12px">监测点</div>
</div>
<div style="display: flex" v-if="currentFlag == 0">
<img
<span class="iconfont blink-basic" style="color: #375db4"
>&#xe67a;</span
>
<!-- <img
src="@/assets/icon/传输设备 (3).png"
style="width: 20px; height: 20px"
class="blink-basic"
/>
/> -->
<div style="margin-left: 10px; font-size: 12px">
暂降发生测点
</div>
</div>
<div style="display: flex" v-if="currentFlag == 1">
<img
<!-- <img
src="@/assets/icon/传输设备 (4).png"
style="width: 20px; height: 20px"
class="blink-basic"
/>
/> -->
<span class="iconfont blink-basic" style="color:#0936f4"
>&#xe67a;</span
>
<div style="margin-left: 10px; font-size: 12px">背景测点</div>
</div>
<div style="display: flex">
<img
<!-- <img
src="@/assets/icon/传输设备 (2).png"
style="width: 20px; height: 20px"
class="blink-basic"
/>
/> -->
<span
v-if="currentFlag == 0"
class="iconfont blink-basic"
style="color: #1dd1a1"
>&#xe67a;</span
>
<span
v-if="currentFlag == 1"
class="iconfont blink-basic"
style="color: #09ee06"
>&#xe67a;</span
>
<span
v-if="currentFlag == 2"
class="iconfont blink-basic"
style="color: #f08a0a"
>&#xe67a;</span
>
<div style="margin-left: 10px; font-size: 12px">
<span v-if="currentFlag == 0">暂降溯源关联测点</span>
<span v-if="currentFlag == 1">责任测点</span>
@@ -154,15 +175,25 @@
</div>
</div>
<div style="display: flex" v-if="currentFlag != 2">
<img
<!-- <img
src="@/assets/icon/传输设备 (1).png"
style="width: 20px; height: 20px"
class="blink-basic"
/>
/> -->
<span
v-if="currentFlag == 0"
class="iconfont blink-basic"
style="color: #f9065b"
>&#xe67a;</span
>
<span
v-else
class="iconfont blink-basic"
style="color: #c708fe"
>&#xe67a;</span
>
<div style="margin-left: 10px; font-size: 12px">
{{
currentFlag == 0 ? "暂降源测点" : "责任占比最高测点"
}}
{{ currentFlag == 0 ? "暂降源测点" : "责任占比最高测点" }}
</div>
</div>
</div>
@@ -182,6 +213,7 @@
@data-updated="handleDataUpdate"
@flag-changed="handleFlagChange"
@expand-detail="handleExpandDetail"
@refresh-security-detail="refreshSecurityDetail"
/>
</dv-border-box-13>
<!-- <dv-border-box-13 :color="color[0]">
@@ -263,6 +295,13 @@ const handleDataUpdate = (data: string[]) => {
eventListData.value = data;
};
const refreshSecurityDetail = () => {
// 调用 securityDetail 组件的刷新方法
if (securityDetail.value) {
securityDetail.value.refreshResponsibilityList();
}
};
// 初始化并获取数据
const initComponents = () => {
if (eventStatistics.value) {
@@ -409,7 +448,7 @@ const openDialog = () => {
}
}
.iconfont {
font-size: 35px !important;
font-size: 20px !important;
}
/* 基本闪烁效果 */