<template> <!-- 水闸监测 --> <div id="shuizhajiance"> <div class="dateDatetimerange"> <el-date-picker v-model="Timers" type="datetimerange" range-separator="至" :clearable="false" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始时间" end-placeholder="结束时间" @change="datetimerangeChange" /> </div> <div class="ChartHeight" v-loading="loadingEchart" element-loading-background="rgba(11, 18, 52, 0.3)"> <ShuizhaEcharts v-if="showecharts" :refresh="AllData.refresh" :AllData="AllData" timeFormat="MM-DD HH:mm" > </ShuizhaEcharts> </div> <!-- <div class="flex flex-justcontent-spacebetween"> <div class="eachInfo"> <div class="name">所属雨水分区:</div> <div class="text">{{ listData.rainArea }}</div> </div> <div class="eachInfo"> <div class="name">运维片区:</div> <div class="text">{{ listData.watchAreaName }}</div> </div> </div> <div class="tableBox"> <div class="name">历史经验:</div> <div class="text popUpTable"> <el-table :data="listData.rainHistoryList" class="w100" stripe> <el-table-column prop="time" label="降雨日期"> <template #default="scope"> {{ moment(scope.row.time).format("YYYY年MM月DD日") }} </template> </el-table-column> <el-table-column prop="rain" label="日降雨量(mm)" /> <el-table-column prop="jyjb" label="降雨级别" width="90px"> <template #default="scope"> <div> {{ RainfallLevelFun(scope.row.rain) }} </div> </template> </el-table-column> <el-table-column prop="zdjss" label="最大积水深(cm)" /> <el-table-column prop="nlqx" label="内涝情形" /> <el-table-column prop="duration" label="内涝持续时间(分钟)" width="160px" /> </el-table> </div> </div> <div class="eachInfo"> <div class="name">周边环境分析:</div> <div class="text">{{ listData.zbhjfx }}</div> </div> <div class="eachInfo"> <div class="name">分析建议:</div> <div class="text">{{ listData.fxjy }}</div> </div> --> </div> </template> <script setup name="shuizhajiance"> import { drainageDispatchRainAnalysisByZsjcd, getEchart } from '@/api/MonitorAssetsOnMap'; import { Back } from '@element-plus/icons-vue'; import ShuizhaEcharts from './Echarts/ShuizhaEcharts.vue'; import moment from 'moment'; const { proxy } = getCurrentInstance(); const props = defineProps({ // 数据id dataID: { type: String, }, dataCode: { type: String, }, arrstcode: { type: Array, }, arrid: { type: Array, }, Getproperties: { type: Object, }, }); const Timers = ref([moment().subtract(3, 'day').format('YYYY-MM-DD HH:mm:ss'), moment().format('YYYY-MM-DD HH:mm:ss')]); const datetimerangeChange = () => { getDataEchart(); }; // 获取数据 const loading = ref(false); const listData = ref({}); function gitDataFun() { loading.value = true; let params = { id: props.Getproperties.id, }; drainageDispatchRainAnalysisByZsjcd(params).then( res => { console.log('监测分析渍水风险降雨历史', res); loading.value = false; if (res && res.code == 200) { listData.value = res.data; } }, error => { loading.value = false; } ); } const changeTime = e => { console.log('e', e); }; function RainfallLevelFun(rain) { let sum = Number(rain); let text = ''; switch (true) { // 江河水位 case sum > 200: text = '特大暴雨'; break; case sum > 100: text = '大暴雨'; break; case sum > 50: text = '暴雨'; break; case sum > 25: text = '大雨'; break; case sum > 10: text = '中雨'; break; case sum > 0: text = '小雨'; break; default: text = '无雨'; } return text; } const AllData = reactive({ refresh: 1, yAxis: [], yAxis_Name: "降雨量(mm)", yAxis2: [], yAxis2_Name: "流速(m/s)", yAxis3: [], yAxis3_Name: "液位(m)", xAxis: [], TJK: "", TLK: "", WTRQ: "", TQ: "", FenXianTimer: [], }); let loadingEchart = ref(false); const showecharts = ref(false); function getDataEchart() { showecharts.value = false; loadingEchart.value = true; let params = { stType: props.Getproperties.stType, stCode: props.Getproperties.stCode, // start:'2024-09-01 12:12:12', // end:'2024-12-01 12:12:12', // dataCode:'reservoir_info', // stType:'reservoir_water_level', // stCode:'4201110002', start: Timers.value[0], end: Timers.value[1], }; console.log('params', params); getEchart(params).then( res => { showecharts.value = true; loadingEchart.value = false; if (res && res.code == 200) { AllData.xAxis = res.data.times; res.data.datas.forEach((element) => { switch (element.dataKey) { case "water_level": AllData.yAxis3 = element.datas; break; case "gatel_open": AllData.yAxis2=[] element.datas.map((e)=>{ let type='' if(e=='闸门全开'){ type=3 }else if(e=='闸门开'){ type=2 }else { type=1 } AllData.yAxis2.push(type) }) break; } }); AllData.refresh = Math.random(); // switchinfoFun(); } }, error => { loadingEchart.value = false; } ); } onMounted(() => { console.log('Getproperties123', props.Getproperties); if (props.Getproperties.daterange) { Timers.value = props.Getproperties.daterange; } getDataEchart(); // gitDataFun(); }); </script> <style lang="scss" scoped> #shuizhajiance { width: 100%; height: 100%; color: #ccefff; padding: 0px 15px; overflow-y: auto; .ChartHeight { width: 100%; // height: 250px; height: 90%; } .eachInfo { display: flex; align-items: center; font-weight: bold; font-size: 14px; margin-bottom: 10px; .name { color: #ccdfff; width: 100px; text-align: right; padding-right: 10px; } .text { flex: 1; min-height: 37px; min-width: 200px; color: #8fbffe; background: #0d2359; border-radius: 6px; border: 1px solid #0b9bff; padding: 7px 12px; } } .tableBox { display: flex; font-size: 14px; margin-bottom: 10px; color: #ccefff; .name { color: #ccdfff; min-width: 100px; text-align: right; padding-right: 10px; } .text { width: calc(100% - 100px); } :deep(.el-scrollbar__wrap) { max-height: 140px; overflow-y: auto; } } .dateDatetimerange { margin-bottom: 10px; :deep(.el-range-editor.el-input__wrapper) { background: #0d2359; box-shadow: none; .el-range-separator { color: #fff; } .el-range-input { color: #fff; } } } } </style>