| | |
| | | </div> |
| | | |
| | | <div class="left-content district-content"> |
| | | <div style="margin-left: 5px; margin-bottom: 5px"> |
| | | <span style="color: white">北京市:</span> |
| | | <el-select |
| | | @change="handleChange1" |
| | | v-model="selectValue1" |
| | | placeholder="请选择行政区" |
| | | size="mini" |
| | | style="width: 240px" |
| | | > |
| | | <el-option |
| | | v-for="item in BJoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </div> |
| | | <div style="margin-left: 5px"> |
| | | <span style="color: white">重点沟:</span> |
| | | <el-select |
| | | @change="handleChange" |
| | | v-model="selectValue" |
| | | placeholder="Select" |
| | | size="large" |
| | | placeholder="请选择重点沟" |
| | | size="mini" |
| | | style="width: 240px" |
| | | > |
| | | <el-option |
| | |
| | | </el-select> |
| | | </div> |
| | | |
| | | <div style="overflow-y: auto; height: 95%"> |
| | | <!-- 滚动区域 --> |
| | | <div style="overflow-y: auto; height: 91%; position: relative"> |
| | | <!-- 加载遮罩层 --> |
| | | <div v-if="loading" class="loading-overlay"> |
| | | <div class="loading-content"> |
| | | <el-icon class="loading-icon"><Loading /></el-icon> |
| | | <span class="loading-text">数据加载中...</span> |
| | | </div> |
| | | </div> |
| | | <div |
| | | v-else |
| | | v-for="(item, key) in districtList" |
| | | :key="key" |
| | | class="district-item" |
| | | @click="handleClick(item)" |
| | | > |
| | | <div class="district-item-icon"></div> |
| | | <div class="district-item-text">{{ item.hdName }}</div> |
| | | <div class="district-item-text" :title="item.hdName">{{ item.hdName }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref, onMounted, onBeforeUnmount, reactive } from "vue"; |
| | | import { createPoint, removeEntities } from "@/utils/map"; |
| | | import { ref, onMounted, watch, onBeforeUnmount } from "vue"; |
| | | import { createPoint, clearAllPoints } from "@/utils/map"; |
| | | import { useSimStore } from "@/store/simulation"; |
| | | |
| | | const simStore = useSimStore(); |
| | | |
| | | const selectValue = ref("孙胡沟"); |
| | | |
| | | const options = ref([ |
| | | { |
| | | value: "孙胡沟", |
| | | label: "孙胡沟", |
| | | }, |
| | | { |
| | | value: "鱼水洞后沟", |
| | | label: "鱼水洞后沟", |
| | | }, |
| | | { |
| | | value: "于家西沟", |
| | | label: "于家西沟", |
| | | }, |
| | | { |
| | | value: "北河沟", |
| | | label: "北河沟", |
| | | }, |
| | | { |
| | | value: "龙泉峪村", |
| | | label: "龙泉峪村", |
| | | }, |
| | | ]); |
| | | import { initeWaterPrimitiveView } from "@/utils/water"; //相机flyTo函数,后续options列表中有对应经纬度后弃用 |
| | | import { useRoute, onBeforeRouteUpdate } from "vue-router"; |
| | | import { Loading } from "@element-plus/icons-vue"; |
| | | import { getDangerPointByPage } from "@/api/hpApi"; |
| | | |
| | | const districtList = ref([]); |
| | | |
| | | // const districtList = ref([ |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116020058", |
| | | // latitude: 40.56652778, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村尹家西沟尹建燕家屋后", |
| | | // longitude: 116.5803889, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "尹家西沟尹建燕家屋后崩塌隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "小型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 2, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "3", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "崩塌", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116020078", |
| | | // latitude: 40.56497222, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村河西于凤英家屋后", |
| | | // longitude: 116.5955278, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "河西于凤英家屋后崩塌隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "小型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 4, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "6", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "崩塌", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030041", |
| | | // latitude: 40.55369444, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟公路", |
| | | // longitude: 116.6002778, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "南梁小东沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "小型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 0, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030015", |
| | | // latitude: 40.55277778, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村南梁村大窑沟", |
| | | // longitude: 116.5994722, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "大窑沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "已监测、已治理", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "中型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 5, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "11", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030076", |
| | | // latitude: 40.55972222, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村东坎大东沟", |
| | | // longitude: 116.5916667, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "大东沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "已治理", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "小型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 1, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "2", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030074", |
| | | // latitude: 40.56580556, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村尹家西沟", |
| | | // longitude: 116.59, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "尹家西沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: |
| | | // "已监测;灾害体变化:4处坡积物垮塌,堆积至坡脚,方量约20m³。", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "中型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 7, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "12", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030053", |
| | | // latitude: 40.57361111, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村北大地西洼子沟", |
| | | // longitude: 116.5897222, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "北大地西洼子沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "沟口正对房屋,降雨时出水量大,建议治理,汛期加强巡查", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "中型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 6, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "10", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116020102", |
| | | // latitude: 40.55972222, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村范家庄王秀莲家屋后", |
| | | // longitude: 116.5922222, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "范家庄王秀莲家屋后崩塌隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "边坡较陡,顺向岩层,房屋靠近坡脚,建议尽快治理", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "小型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 1, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "3", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "崩塌", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116020742", |
| | | // latitude: 40.57680556, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村三亩地范忠田家屋后", |
| | | // longitude: 116.5887222, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "三亩地范忠田家屋后崩塌隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移,更换警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "中型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 8, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "23", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "崩塌", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030040", |
| | | // latitude: 40.56344444, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村河西于家西沟", |
| | | // longitude: 116.5953889, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "于家西沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: |
| | | // "已监测,2018村已治理;沟口堆积扇明显,正对房屋,建议汛期加强巡查", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "中型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 18, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "59", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030055", |
| | | // latitude: 40.55283333, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村椴树底下东沟", |
| | | // longitude: 116.5999444, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "椴树底下东沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "已治理:威胁对象重复:与110116030015重复5户11人", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,预警转移,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "中型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 5, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "11", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // { |
| | | // activeStatus: "", |
| | | // areaCode: "", |
| | | // areaName: "", |
| | | // brookLength: 0, |
| | | // checkId: "", |
| | | // city: "北京市", |
| | | // codeProvince: "110116", |
| | | // county: "怀柔", |
| | | // dangerLevel: "", |
| | | // disasterStatus: "", |
| | | // drainageArea: "", |
| | | // elevation: 0, |
| | | // featureDes: "", |
| | | // groupMonitor: "李桂梅,孙桂和,范满田,秦建权,孙桂江,孙桂伟", |
| | | // hasPlan: "", |
| | | // id: "110116030054", |
| | | // latitude: 40.56166667, |
| | | // length: 0, |
| | | // district: "琉璃庙镇孙胡沟村上台子河东南沟", |
| | | // longitude: 116.5997222, |
| | | // monitor: "", |
| | | // monitorAdvice: "", |
| | | // name: "河东南沟泥石流隐患点", |
| | | // number: |
| | | // "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612", |
| | | // preventionDes: "已监测", |
| | | // preventionLevel: "", |
| | | // preventionPlan: "定期巡查,立警示牌", |
| | | // preventionUnit: "乡镇", |
| | | // principal: "", |
| | | // province: "北京市", |
| | | // qp: "", |
| | | // reason: "", |
| | | // responsibleUnit: "", |
| | | // riskLevel: "", |
| | | // scale: "小型", |
| | | // stableLevel: "", |
| | | // status: "", |
| | | // thickness: 0, |
| | | // threatenFamily: 0, |
| | | // threatenMoney: 0, |
| | | // threatenPopulation: "", |
| | | // threatenType: "", |
| | | // town: "琉璃庙镇", |
| | | // trigger: "", |
| | | // type: "泥石流", |
| | | // village: "孙胡沟村", |
| | | // volume: "", |
| | | // volumePotential: "", |
| | | // width: 0, |
| | | // }, |
| | | // ]); |
| | | const simStore = useSimStore(); |
| | | |
| | | const route = useRoute(); |
| | | |
| | | onBeforeUnmount(() => { |
| | | if (route.path !== "/yhgl") { |
| | | clearAllPoints(); |
| | | } |
| | | }); |
| | | const selectValue = ref("孙胡沟"); |
| | | |
| | | const selectValue1 = ref(""); |
| | | |
| | | const BJoptions = ref([ |
| | | { label: "密云区", value: "110118000000" }, |
| | | { label: "房山区", value: "110111000000" }, |
| | | { label: "门头沟区", value: "110109000000" }, |
| | | { label: "延庆区", value: "110119000000" }, |
| | | { label: "怀柔区", value: "110116000000" }, |
| | | { label: "昌平区", value: "110114000000" }, |
| | | { label: "平谷区", value: "110117000000" }, |
| | | { label: "海淀区", value: "110108000000" }, |
| | | { label: "石景山区", value: "110107000000" }, |
| | | { label: "丰台区", value: "110106000000" }, |
| | | ]); |
| | | |
| | | const options = ref([ |
| | | { value: "孙胡沟", label: "孙胡沟" }, |
| | | { value: "鱼水洞后沟", label: "鱼水洞后沟" }, |
| | | { value: "于家西沟", label: "于家西沟" }, |
| | | { value: "北河沟", label: "北河沟" }, |
| | | { value: "龙泉峪村", label: "龙泉峪村" }, |
| | | ]); |
| | | |
| | | const loading = ref(true); // 控制加载状态 |
| | | |
| | | function handleClick(district) { |
| | | const entity = viewer.entities.getById(district.unifiedCode); |
| | | if (selectValue.value) { |
| | | // 此处调用是因为GisView页面会在点击下一乡镇之前把上一个选择的区域的隐患点清除掉(如果刚好选择了孙胡沟,那么下一个点击将会清空孙胡沟的隐患点) |
| | | initializeDevicePoints(); |
| | | } else { |
| | | // 行政区划的点位太多了,只能选中哪个渲染哪个 |
| | | DevicePoints(district); |
| | | } |
| | | |
| | | const entity = viewer.entities.getById(district.hdId); |
| | | if (entity) { |
| | | viewer.flyTo(entity, { |
| | | offset: { |
| | |
| | | }, |
| | | }); |
| | | } |
| | | // if (entity) { |
| | | // viewer.flyTo(entity) |
| | | // } |
| | | } |
| | | |
| | | // 隐患点列表 |
| | | const originalData = simStore.DangerPoint; // 存储原始数据(仅加载一次) |
| | | const initializeDevicePoints = async () => { |
| | | await Promise.all( |
| | | districtList.value.map(async (item, index) => { |
| | | // 根据需求可增删 |
| | | item.id = item.hdId; |
| | | item.name = item.hdName; |
| | | item.latitude = item.lat; |
| | | item.longitude = item.lon; |
| | | item.showBillboard = true; |
| | | item.type = item.disasterType; |
| | | item.className = "district"; |
| | | await createPoint(item); |
| | | // 打印每个设备的名称和设备类型 |
| | | // console.log(`设备名称: ${item.id}, 设备类型: ${item.name}`); |
| | | }) |
| | | ); |
| | | }; |
| | | |
| | | // 根据区域名称过滤数据 |
| | | const filterDataByArea = (areaName) => { |
| | | if (!areaName) { |
| | | const DevicePoints = async (item) => { |
| | | // 根据需求可增删 |
| | | item.id = item.hdId; |
| | | item.name = item.hdName; |
| | | item.latitude = item.lat; |
| | | item.longitude = item.lon; |
| | | item.showBillboard = true; |
| | | item.type = item.disasterType; |
| | | item.className = "district"; |
| | | await createPoint(item); |
| | | }; |
| | | |
| | | const filterDataByArea = async (areaName) => { |
| | | clearAllPoints(); |
| | | if (!areaName || !simStore.DangerPoint || simStore.DangerPoint.length === 0) { |
| | | districtList.value = []; |
| | | return; |
| | | } |
| | | |
| | | districtList.value = originalData.filter((item) => |
| | | const filteredData = simStore.DangerPoint.filter((item) => |
| | | item.position?.includes(areaName) |
| | | ); |
| | | |
| | | if (JSON.stringify(districtList.value) !== JSON.stringify(filteredData)) { |
| | | districtList.value = filteredData; |
| | | |
| | | await initializeDevicePoints(); |
| | | } |
| | | }; |
| | | |
| | | const handleChange1 = async (item) => { |
| | | if (!item) { |
| | | ElMessage("请选择一个区域"); |
| | | return; |
| | | } |
| | | selectValue1.value = item; |
| | | selectValue.value = ""; |
| | | // 开启加载状态 |
| | | // loading.value = true; |
| | | districtList.value = []; // 清空旧数据 |
| | | |
| | | let pageNum = 1; |
| | | let hasMore = true; |
| | | |
| | | try { |
| | | while (hasMore) { |
| | | const res = await getDangerPointByPage(item, pageNum); |
| | | |
| | | // 将新数据追加到列表中 |
| | | districtList.value = [...districtList.value, ...res.data.pageData]; |
| | | |
| | | // 判断是否还有下一页 |
| | | if (pageNum < res.data.pageCount) { |
| | | pageNum++; |
| | | await new Promise((resolve) => setTimeout(resolve, 300)); |
| | | } else { |
| | | hasMore = false; |
| | | } |
| | | } |
| | | } catch (err) { |
| | | console.error("获取隐患点失败", err); |
| | | districtList.value = []; // 可选:清空或保留已加载部分 |
| | | } finally { |
| | | // 暂时先关闭加载状态,因为此处为分页请求数据,然后一点一点的渲染,最终会加载完成 |
| | | // 如果开启加载状态,最后还是会等所有数据都请求回来才会渲染 |
| | | // loading.value = false; // 关闭加载状态 |
| | | } |
| | | }; |
| | | |
| | | // 处理区域变化事件 |
| | | const handleChange = (item) => { |
| | | const areaName = item; |
| | | if (!areaName) { |
| | | selectValue1.value = ""; |
| | | selectValue.value = item; |
| | | |
| | | if (!item) { |
| | | ElMessage.warning("请选择一个区域"); |
| | | return; |
| | | } |
| | | |
| | | filterDataByArea(areaName); |
| | | filterDataByArea(item); |
| | | }; |
| | | |
| | | // 组件挂载时加载原始数据,并默认过滤为 "孙胡沟" |
| | | onMounted(async () => { |
| | | // await loadAllData(); |
| | | filterDataByArea("孙胡沟"); // 默认显示孙胡沟的数据 |
| | | }); |
| | | onBeforeUnmount(() => { |
| | | // removeEntities() |
| | | let isInitialized = false; |
| | | |
| | | // 监听 simStore.DangerPoint 变化 |
| | | watch( |
| | | () => simStore.DangerPoint, |
| | | (newVal) => { |
| | | if (newVal && newVal.length > 0) { |
| | | filterDataByArea(selectValue.value); |
| | | loading.value = false; // 数据加载完成 |
| | | } else { |
| | | clearAllPoints(); |
| | | districtList.value = []; |
| | | loading.value = true; // 数据未准备就绪 |
| | | } |
| | | } |
| | | ); |
| | | |
| | | onMounted(() => { |
| | | clearAllPoints(); |
| | | // initeWaterPrimitiveView(); |
| | | // 默认先检查一遍数据 |
| | | if (simStore.DangerPoint && simStore.DangerPoint.length > 0) { |
| | | filterDataByArea("孙胡沟"); |
| | | loading.value = false; |
| | | } else { |
| | | loading.value = true; |
| | | } |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .district { |
| | | position: absolute; |
| | |
| | | cursor: pointer; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .district-content { |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | height: calc(100% - 70px); |
| | | position: relative; |
| | | } |
| | | |
| | | .district-item-icon { |
| | | background: url("@/assets/img/menu/locationicon.png") no-repeat; |
| | | background-position: 5px 5px; |
| | |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | } |
| | | .loading-overlay { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | // background-color: rgba(0, 0, 0, 0.7); |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | z-index: 100; |
| | | // border-radius: 4px; |
| | | } |
| | | |
| | | .loading-content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | color: #fff; |
| | | } |
| | | |
| | | .loading-icon { |
| | | font-size: 24px; |
| | | margin-bottom: 8px; |
| | | animation: rotating 2s linear infinite; |
| | | } |
| | | |
| | | .loading-text { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | @keyframes rotating { |
| | | 0% { |
| | | transform: rotate(0deg); |
| | | } |
| | | 100% { |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | |
| | | /deep/ .el-select__placeholder { |
| | | color: white; |
| | | } |
| | | |
| | | /deep/ .el-select-dropdown__item.hover, |
| | | .el-select-dropdown__item:hover { |
| | | color: white !important; |