| | |
| | | }); |
| | | console.log("getRainfallData:", response); |
| | | return response.data; |
| | | } |
| | | |
| | | // 查询雨量计读数 |
| | | export async function getYLJData(data) { |
| | | // 获取当前时间 |
| | | const now = new Date(); |
| | | |
| | | // 计算一小时前的时间 |
| | | const oneHourAgo = new Date(now.getTime() - 2 * 60 * 60 * 1000); |
| | | |
| | | // 格式化时间为YYYY-MM-DD HH:mm:ss |
| | | const formatTime = (date) => { |
| | | const pad = (num) => num.toString().padStart(2, '0'); |
| | | return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`; |
| | | }; |
| | | |
| | | const response = await axios.post("/hp/ylclyPacket/getData", { |
| | | "currentPage": 1, |
| | | "pageSize": 20, |
| | | "filterObject": { |
| | | "deviceName": "", |
| | | "deviceCode": data, |
| | | "sendTimeList": [ |
| | | formatTime(oneHourAgo), // 一小时前 |
| | | formatTime(now) // 当前时间 |
| | | ], |
| | | "divisionDistrict": "110116000000", |
| | | "townCode": "110116110000", |
| | | "dictPacketsDataStatus": "1887255639886540806", |
| | | } |
| | | }); |
| | | |
| | | console.log("getYLJData:", response); |
| | | return response.data; |
| | | } |
| | | |
| | | // 按照北京市code查询行政区code |
| | | export async function getAeraCode() { |
| | | const response = await axios.post("/hp/sinoDzHiddenDangerPoint/getHiddenDangerCountByDistrict", { |
| | | "dictDisasterGrade": "", |
| | | "dictDisasterType": "", |
| | | "dictRiskLevel": "", |
| | | "districtCode": "110000000000", |
| | | "dictThreatObj": "", |
| | | "year": "2025" |
| | | }); |
| | | console.log("getAeraCode:", response); |
| | | return response.data; |
| | | } |
| | | |
| | | // 按照行政区code查询乡镇code |
| | | export async function getAeraTownCode(data) { |
| | | const response = await axios.post("/hp/sinoDzHiddenDangerPoint/getHiddenDangerTownCount", { |
| | | "dictDisasterGrade": "", |
| | | "dictDisasterType": "", |
| | | "dictRiskLevel": "", |
| | | "districtCode": data, |
| | | "dictThreatObj": "", |
| | | "year": "2025" |
| | | }); |
| | | console.log("getAeraCode:", response); |
| | | return response.data; |
| | | } |
| | |
| | | return await response.json() |
| | | } |
| | | |
| | | |
| | | // export async function getDistrictCount() { |
| | | // const response = await fetch("/json/response.json", { |
| | | // mode: "cors", |
| | | // cache: "no-cache", |
| | | // headers: { |
| | | // "Content-Type": "application/json", |
| | | // }, |
| | | // }) |
| | | // return await response.json() |
| | | // } |
| | | |
| | | export async function getDistrictCountByCity() { |
| | | const response = await fetch("/json/CountByCounty.json", { |
| | | mode: "cors", |
| | |
| | | } |
| | | |
| | | // 隐患点列表 |
| | | // watchEffect(() => { |
| | | // const dangerPoints = simStore.DangerPoint.filter((item) => |
| | | // item.position?.includes("孙胡沟") |
| | | // ); |
| | | watchEffect(() => { |
| | | const dangerPoints = simStore.DangerPoint.filter((item) => |
| | | item.position?.includes("孙胡沟") |
| | | ); |
| | | |
| | | // if (dangerPoints && dangerPoints.length > 0) { |
| | | // const list = []; |
| | | if (dangerPoints && dangerPoints.length > 0) { |
| | | const list = []; |
| | | |
| | | // dangerPoints.forEach((item) => { |
| | | // // console.log(item, "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"; |
| | | // const entity = createPoint(item); |
| | | // entity.show = false; |
| | | // list.push(entity); |
| | | // }); |
| | | dangerPoints.forEach((item) => { |
| | | // console.log(item, "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"; |
| | | const entity = createPoint(item); |
| | | entity.show = false; |
| | | list.push(entity); |
| | | }); |
| | | |
| | | // treeMap.set("孙胡沟隐患点", list); |
| | | // } |
| | | // }); |
| | | treeMap.set("孙胡沟隐患点", list); |
| | | } |
| | | }); |
| | | |
| | | let divPointList = []; |
| | | /** |
| | |
| | | * 初始化所有数据 |
| | | */ |
| | | function getData() { |
| | | // initDevicePoint(); |
| | | initDevicePoint(); |
| | | // initDistrictPoint(); |
| | | initDuanmianPoint(); |
| | | addTetrahedron(); |
| | |
| | | } |
| | | |
| | | let entities = []; |
| | | // 假设你有一个全局存储 entities 的结构(建议用 Map 提高性能查找) |
| | | const pointEntityMap = new Map(); // key: id, value: entity |
| | | |
| | | export function createPoint(option) { |
| | | const { id, type = "", name = "默认名称", view, latitude, longitude, height, callback, imgWidth = 56, imgHeight = 67, showBillboard = true, showLabel = true, className = "device" } = option; |
| | | // 如果已经存在该 id 的 entity,则跳过创建 |
| | | if (pointEntityMap.has(id)) { |
| | | clearAllPoints() |
| | | console.log(`点 ${id} 已存在,跳过创建`); |
| | | return; |
| | | // return; |
| | | } |
| | | |
| | | let position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height || 50); |
| | |
| | | import { useSimStore } from "@/store/simulation"; |
| | | const simStore = useSimStore(); |
| | | |
| | | import { getDangerPoint, getDeviceInfo } from "@/api/hpApi"; |
| | | import { |
| | | getDangerPoint, |
| | | getDeviceInfo, |
| | | getAeraCode, |
| | | getAeraTownCode, |
| | | } from "@/api/hpApi"; |
| | | /////////////////////////地图影像选择///////////////////////// |
| | | const views = [ |
| | | { label: "地图", value: "map", icon: "地图.png" }, |
| | |
| | | }; |
| | | |
| | | // 初始化区域统计 |
| | | function initDistrictCount(level = "secondary") { |
| | | const getPoint = |
| | | level === "secondary" ? getDistrictCount : getDistrictCountByCity; |
| | | const config = LEVEL_CONFIG[level]; |
| | | |
| | | getPoint() |
| | | .then((res) => { |
| | | async function initDistrictCount(level = "secondary") { |
| | | try { |
| | | if (level === "primary") { |
| | | // 一级区域:直接调用 getAeraCode() |
| | | const res = await getAeraCode(); |
| | | res.data.forEach((item) => { |
| | | processDistrictItem(item, config, level); // 添加level参数 |
| | | processDistrictItem(item, LEVEL_CONFIG[level], level); |
| | | }); |
| | | }) |
| | | .catch((error) => { |
| | | console.error(`初始化${level}级区域统计失败:`, error); |
| | | }); |
| | | } |
| | | } else if (level === "secondary") { |
| | | // 二级区域:先获取一级区域,再遍历每个一级区域的 code 查询二级区域 |
| | | const primaryRes = await getAeraCode(); |
| | | |
| | | // 遍历所有一级区域的 districtCode,并发请求二级区域数据 |
| | | const townPromises = primaryRes.data.map((item) => |
| | | getAeraTownCode(item.districtCode) |
| | | ); |
| | | |
| | | // 等待所有二级区域请求完成 |
| | | const townResults = await Promise.all(townPromises); |
| | | |
| | | // 处理所有二级区域数据 |
| | | townResults.forEach((townRes) => { |
| | | townRes.data.forEach((townItem) => { |
| | | processDistrictItem(townItem, LEVEL_CONFIG[level], level); |
| | | }); |
| | | }); |
| | | } else { |
| | | console.error("未知的 level 类型:", level); |
| | | } |
| | | } catch (error) { |
| | | console.error(`初始化 ${level} 级区域统计失败:`, error); |
| | | } |
| | | } |
| | | // 处理单个区域项 |
| | | function processDistrictItem(item, config, level = "secondary") { |
| | | // 添加默认值 |
| | |
| | | import { initeWaterPrimitiveView } from "@/utils/water"; |
| | | import { SimAPIStore } from "@/store/simAPI"; |
| | | import { EventBus } from "@/eventBus"; // 引入事件总线 |
| | | import { getDeviceInfoShg } from "@/api/hpApi"; |
| | | import { getDeviceInfoShg, getYLJData } from "@/api/hpApi"; |
| | | |
| | | // 获取 Store 实例 |
| | | const simStore = SimAPIStore(); |
| | |
| | | ...device, |
| | | selected: true, // 默认选中 |
| | | })); |
| | | |
| | | console.log(shgList.value, "shgList.valueshgList.value"); |
| | | }; |
| | | |
| | | // 下拉框选中值的表格数据变化 |
| | |
| | | // 保存方案 |
| | | const saveSim = async () => { |
| | | try { |
| | | getYLJData("1101160300070101").then((res) => { |
| | | console.log(res, "resres"); |
| | | }); |
| | | updateSelectedGauges(); |
| | | formData.geom = props.selectedArea; |
| | | await simStore.addSimCheme(formData); |