diff --git a/public/static/libs/mapbox/style/wh_dhgx.json b/public/static/libs/mapbox/style/wh_dhgx.json index 13e9bc2..9ea872f 100644 --- a/public/static/libs/mapbox/style/wh_dhgx.json +++ b/public/static/libs/mapbox/style/wh_dhgx.json @@ -1207,6 +1207,7 @@ "rainwater_pipeline_quality_area1", "sewage_pipeline_quality1", "storage_tank_info1", + "waterloggingPointRelation", "clickPoint", "temporary" ], diff --git a/public/static/libs/mapbox/style/wh_dhgx.json b/public/static/libs/mapbox/style/wh_dhgx.json index 13e9bc2..9ea872f 100644 --- a/public/static/libs/mapbox/style/wh_dhgx.json +++ b/public/static/libs/mapbox/style/wh_dhgx.json @@ -1207,6 +1207,7 @@ "rainwater_pipeline_quality_area1", "sewage_pipeline_quality1", "storage_tank_info1", + "waterloggingPointRelation", "clickPoint", "temporary" ], diff --git a/src/api/MonitorAssetsOnMap.js b/src/api/MonitorAssetsOnMap.js index 20197f9..0525d42 100644 --- a/src/api/MonitorAssetsOnMap.js +++ b/src/api/MonitorAssetsOnMap.js @@ -316,6 +316,14 @@ params, }); } + +export function getWaterloggingPointRelation(params) { + return request({ + url: '/business/drainageDispatch/getWaterloggingPointRelation', + method: 'get', + params, + }); +} // 河湖水文历史 export function hisHydrologyList(query) { return request({ diff --git a/public/static/libs/mapbox/style/wh_dhgx.json b/public/static/libs/mapbox/style/wh_dhgx.json index 13e9bc2..9ea872f 100644 --- a/public/static/libs/mapbox/style/wh_dhgx.json +++ b/public/static/libs/mapbox/style/wh_dhgx.json @@ -1207,6 +1207,7 @@ "rainwater_pipeline_quality_area1", "sewage_pipeline_quality1", "storage_tank_info1", + "waterloggingPointRelation", "clickPoint", "temporary" ], diff --git a/src/api/MonitorAssetsOnMap.js b/src/api/MonitorAssetsOnMap.js index 20197f9..0525d42 100644 --- a/src/api/MonitorAssetsOnMap.js +++ b/src/api/MonitorAssetsOnMap.js @@ -316,6 +316,14 @@ params, }); } + +export function getWaterloggingPointRelation(params) { + return request({ + url: '/business/drainageDispatch/getWaterloggingPointRelation', + method: 'get', + params, + }); +} // 河湖水文历史 export function hisHydrologyList(query) { return request({ diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 71c1fe4..762eb55 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -455,6 +455,7 @@ (feature) => !types.includes(feature.properties.type) )) ); + newfiberMap.getLayers().filter(k => types.includes(k.newfiberId)).forEach(k => k.setData(turf.featureCollection([]))) return refreshGeoJSON(); }; @@ -520,7 +521,7 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name"}, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; diff --git a/public/static/libs/mapbox/style/wh_dhgx.json b/public/static/libs/mapbox/style/wh_dhgx.json index 13e9bc2..9ea872f 100644 --- a/public/static/libs/mapbox/style/wh_dhgx.json +++ b/public/static/libs/mapbox/style/wh_dhgx.json @@ -1207,6 +1207,7 @@ "rainwater_pipeline_quality_area1", "sewage_pipeline_quality1", "storage_tank_info1", + "waterloggingPointRelation", "clickPoint", "temporary" ], diff --git a/src/api/MonitorAssetsOnMap.js b/src/api/MonitorAssetsOnMap.js index 20197f9..0525d42 100644 --- a/src/api/MonitorAssetsOnMap.js +++ b/src/api/MonitorAssetsOnMap.js @@ -316,6 +316,14 @@ params, }); } + +export function getWaterloggingPointRelation(params) { + return request({ + url: '/business/drainageDispatch/getWaterloggingPointRelation', + method: 'get', + params, + }); +} // 河湖水文历史 export function hisHydrologyList(query) { return request({ diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 71c1fe4..762eb55 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -455,6 +455,7 @@ (feature) => !types.includes(feature.properties.type) )) ); + newfiberMap.getLayers().filter(k => types.includes(k.newfiberId)).forEach(k => k.setData(turf.featureCollection([]))) return refreshGeoJSON(); }; @@ -520,7 +521,7 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name"}, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; diff --git a/src/components/Map/MapBox.vue b/src/components/Map/MapBox.vue index 0487102..fb0d765 100644 --- a/src/components/Map/MapBox.vue +++ b/src/components/Map/MapBox.vue @@ -20,7 +20,7 @@ import bus from "@/bus"; import request from "@/utils/request"; import MapBox from "@/components/Map/Map"; -import { getBaseListPoint,getPipeMonitorRun } from "@/api/MonitorAssetsOnMap"; +import { getBaseListPoint,getPipeMonitorRun,getWaterloggingPointRelation } from "@/api/MonitorAssetsOnMap"; import { supervisionRealinformationList } from "@/api/internetVehicles"; import useUserStore from "@/store/modules/user"; import { reactive, onMounted, onBeforeUnmount, nextTick, defineProps, watch } from "vue"; @@ -150,7 +150,7 @@ // clearTemporaryData(); proxy.$emit("map-click1", lngLat, properties, layerId); const { town, hupo, gangqu, hb_wh_dhgx_merge, psfq, point } = default_params; - const { setLayerVisible, setHighlight, setGeoJSON, removeMapDatas } = events_params; + const { setLayerVisible, setHighlight, setGeoJSON, removeMapDatas,beansToMap } = events_params; (() => { setHighlight_(properties); @@ -185,12 +185,17 @@ (( { [point.key]: () => { - const { outlet_info2 } = point.children; - let kk = _.replace(outlet_info2.key, /\d+/g, ""); - if (properties.type.includes(kk)) { - clearRouteMethod(); - outletRouteMethod(properties); - } + ({ + "waterlog_community_text": () => waterloggingPointRelation(properties), + "waterlog_community": () => waterloggingPointRelation(properties) + }[properties.type] || (()=>{ + const { outlet_info2 } = point.children; + let kk = _.replace(outlet_info2.key, /\d+/g, ""); + if (properties.type.includes(kk)) { + clearRouteMethod(); + outletRouteMethod(properties); + } + }))() }, [psfq.key]: () => { [ @@ -428,7 +433,27 @@ psfq.prevIds.push(properties); } + async function waterloggingPointRelation(properties) { + let keys = ['waterloggingPointRelation','outlet_info',"lake_water_level"]; + busEmit(removeMapDatas.key,[keys[0]]); + let {data} = await getWaterloggingPointRelation({id:properties.id}); + let {relationDataList} = data; + busEmit(beansToMap.key, { + beans: relationDataList.filter(i => i.dataCode != keys[2]).map(i => ({...i,_image:i.dataCode})), + fields: { geometry: "geometry", name: "dataName" }, + type: keys[0], + }); + + let outlet = relationDataList.filter(i => i.dataCode == keys[1])[0]; + outlet && outletRouteMethod({id:String(outlet.dataId)},false); + + let lake = relationDataList.filter(i => i.dataCode == keys[2])[0]; + let features = newfiberMap.map.getSource("point")._data.features.filter(i => i.properties.id == lake.relationId && i.properties.type == keys[2]); + features.forEach(k => (k.properties.type = undefined)) + lake && busEmit(setGeoJSON.key, { json: turf.featureCollection(features), key: keys[0] }); + busEmit(setLayerVisible.key, { layername: keys[0], isCheck: true }); + } function showOutletInfo(properties) { const key = "outlet_info"; @@ -449,8 +474,9 @@ busEmit(setLayerVisible.key, { layername: key + 2, isCheck: true }); } - function outletRouteMethod(properties) { + function outletRouteMethod(properties,isShowSite=true) { const _keys = ["排口流向", "排口流向1", "rainwater_pipeline_quality1"]; + busEmit(removeMapDatas.key,[_keys[0]]); let kk = _.replace(_keys[2], /\d+/g, ""); let routes = turf.featureCollection( outlet_route.features.filter((i) => @@ -469,12 +495,9 @@ .map((i) => ({ ...i, properties: { ...i.properties, type: undefined } })) ); // debugger; - newfiberMap - .getLayers() - .filter((i) => i.newfiberId == _keys[1])[0] - .setData(routes); + newfiberMap.getLayers().filter((i) => i.newfiberId == _keys[1])[0].setData(routes); busEmit(setGeoJSON.key, { json: routes, key: _keys[0] }); - busEmit(setGeoJSON.key, { json: sites, key: _keys[2] }); + isShowSite && busEmit(setGeoJSON.key, { json: sites, key: _keys[2] }); _keys.forEach((k) => busEmit(setLayerVisible.key, { layername: k, isCheck: true })); } @@ -796,12 +819,19 @@ const colors = [{value:0,color:"rgba(52,176,0,1)"},{value:60,color:"rgba(254,203,0,1)"},{value:70,color:"rgba(223,1,0,1)"},{value:90,color:"rgba(142,14,11,1)"}]; return (colors.filter((i,idx) => idx!= colors.length-1 && i.value{ + return (({ + lake_water_level:()=>{ + return `${item.siteData[0].valueName}:【${item.siteData[0].value}${item.siteData[0].unit}】` + } + })[item.pointType] || (()=> item.name))(); + } const data_default_params = { sites: { method: getBaseListPoint, fields: { geometry: "geometry", name: "name" }, groupMethod: (data) => - _.groupBy(data.map((i) => i.data).flat().filter((i) => i.geometry).map((item) => ({ ...item, _image: (item.warnList || [])[0] })), (v) => v.pointType + (v.connectType ? "_" + v.connectType : "")+(v.name.includes('停用')?"_stop":"")), + _.groupBy(data.map((i) => i.data).flat().filter((i) => i.geometry).map((item) => ({ ...item,name:nameConcat(item), _image: (item.warnList || [])[0] })), (v) => v.pointType + (v.connectType ? "_" + v.connectType : "")+(v.name.includes('停用')?"_stop":"")), others: { outlet_info: { method: (data) => @@ -812,7 +842,7 @@ }, }, }, - //车辆 +/* //车辆 cheliang: { method: supervisionRealinformationList, fields: { lng: "longitude", lat: "latitude", name: "plateNumber" }, @@ -822,7 +852,7 @@ method:getPipeMonitorRun, fields:{geometry:"pipelineGeometry",name:"name"}, groupMethod:(data)=> _.groupBy(data.filter(k => k.pipelineGeometry).map(o => ({...o,width:4,type:`fullness_${o.pipeSystem}`,name:`管径:${o.pipelineDiameter}\n充满度:${o.fullness}`,color:fullnessColor(o.fullness)})),(v)=>v.type) - } + }*/ }; const other_data_params = {}; let keys = Object.keys(params || data_default_params); @@ -975,6 +1005,7 @@ "outlet_info1", "outlet_info2", "temporary", + "waterloggingPointRelation", "highlight_linestring", "highlight_polygon", "highlight_point", diff --git a/public/static/libs/mapbox/style/wh_dhgx.json b/public/static/libs/mapbox/style/wh_dhgx.json index 13e9bc2..9ea872f 100644 --- a/public/static/libs/mapbox/style/wh_dhgx.json +++ b/public/static/libs/mapbox/style/wh_dhgx.json @@ -1207,6 +1207,7 @@ "rainwater_pipeline_quality_area1", "sewage_pipeline_quality1", "storage_tank_info1", + "waterloggingPointRelation", "clickPoint", "temporary" ], diff --git a/src/api/MonitorAssetsOnMap.js b/src/api/MonitorAssetsOnMap.js index 20197f9..0525d42 100644 --- a/src/api/MonitorAssetsOnMap.js +++ b/src/api/MonitorAssetsOnMap.js @@ -316,6 +316,14 @@ params, }); } + +export function getWaterloggingPointRelation(params) { + return request({ + url: '/business/drainageDispatch/getWaterloggingPointRelation', + method: 'get', + params, + }); +} // 河湖水文历史 export function hisHydrologyList(query) { return request({ diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 71c1fe4..762eb55 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -455,6 +455,7 @@ (feature) => !types.includes(feature.properties.type) )) ); + newfiberMap.getLayers().filter(k => types.includes(k.newfiberId)).forEach(k => k.setData(turf.featureCollection([]))) return refreshGeoJSON(); }; @@ -520,7 +521,7 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name"}, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; diff --git a/src/components/Map/MapBox.vue b/src/components/Map/MapBox.vue index 0487102..fb0d765 100644 --- a/src/components/Map/MapBox.vue +++ b/src/components/Map/MapBox.vue @@ -20,7 +20,7 @@ import bus from "@/bus"; import request from "@/utils/request"; import MapBox from "@/components/Map/Map"; -import { getBaseListPoint,getPipeMonitorRun } from "@/api/MonitorAssetsOnMap"; +import { getBaseListPoint,getPipeMonitorRun,getWaterloggingPointRelation } from "@/api/MonitorAssetsOnMap"; import { supervisionRealinformationList } from "@/api/internetVehicles"; import useUserStore from "@/store/modules/user"; import { reactive, onMounted, onBeforeUnmount, nextTick, defineProps, watch } from "vue"; @@ -150,7 +150,7 @@ // clearTemporaryData(); proxy.$emit("map-click1", lngLat, properties, layerId); const { town, hupo, gangqu, hb_wh_dhgx_merge, psfq, point } = default_params; - const { setLayerVisible, setHighlight, setGeoJSON, removeMapDatas } = events_params; + const { setLayerVisible, setHighlight, setGeoJSON, removeMapDatas,beansToMap } = events_params; (() => { setHighlight_(properties); @@ -185,12 +185,17 @@ (( { [point.key]: () => { - const { outlet_info2 } = point.children; - let kk = _.replace(outlet_info2.key, /\d+/g, ""); - if (properties.type.includes(kk)) { - clearRouteMethod(); - outletRouteMethod(properties); - } + ({ + "waterlog_community_text": () => waterloggingPointRelation(properties), + "waterlog_community": () => waterloggingPointRelation(properties) + }[properties.type] || (()=>{ + const { outlet_info2 } = point.children; + let kk = _.replace(outlet_info2.key, /\d+/g, ""); + if (properties.type.includes(kk)) { + clearRouteMethod(); + outletRouteMethod(properties); + } + }))() }, [psfq.key]: () => { [ @@ -428,7 +433,27 @@ psfq.prevIds.push(properties); } + async function waterloggingPointRelation(properties) { + let keys = ['waterloggingPointRelation','outlet_info',"lake_water_level"]; + busEmit(removeMapDatas.key,[keys[0]]); + let {data} = await getWaterloggingPointRelation({id:properties.id}); + let {relationDataList} = data; + busEmit(beansToMap.key, { + beans: relationDataList.filter(i => i.dataCode != keys[2]).map(i => ({...i,_image:i.dataCode})), + fields: { geometry: "geometry", name: "dataName" }, + type: keys[0], + }); + + let outlet = relationDataList.filter(i => i.dataCode == keys[1])[0]; + outlet && outletRouteMethod({id:String(outlet.dataId)},false); + + let lake = relationDataList.filter(i => i.dataCode == keys[2])[0]; + let features = newfiberMap.map.getSource("point")._data.features.filter(i => i.properties.id == lake.relationId && i.properties.type == keys[2]); + features.forEach(k => (k.properties.type = undefined)) + lake && busEmit(setGeoJSON.key, { json: turf.featureCollection(features), key: keys[0] }); + busEmit(setLayerVisible.key, { layername: keys[0], isCheck: true }); + } function showOutletInfo(properties) { const key = "outlet_info"; @@ -449,8 +474,9 @@ busEmit(setLayerVisible.key, { layername: key + 2, isCheck: true }); } - function outletRouteMethod(properties) { + function outletRouteMethod(properties,isShowSite=true) { const _keys = ["排口流向", "排口流向1", "rainwater_pipeline_quality1"]; + busEmit(removeMapDatas.key,[_keys[0]]); let kk = _.replace(_keys[2], /\d+/g, ""); let routes = turf.featureCollection( outlet_route.features.filter((i) => @@ -469,12 +495,9 @@ .map((i) => ({ ...i, properties: { ...i.properties, type: undefined } })) ); // debugger; - newfiberMap - .getLayers() - .filter((i) => i.newfiberId == _keys[1])[0] - .setData(routes); + newfiberMap.getLayers().filter((i) => i.newfiberId == _keys[1])[0].setData(routes); busEmit(setGeoJSON.key, { json: routes, key: _keys[0] }); - busEmit(setGeoJSON.key, { json: sites, key: _keys[2] }); + isShowSite && busEmit(setGeoJSON.key, { json: sites, key: _keys[2] }); _keys.forEach((k) => busEmit(setLayerVisible.key, { layername: k, isCheck: true })); } @@ -796,12 +819,19 @@ const colors = [{value:0,color:"rgba(52,176,0,1)"},{value:60,color:"rgba(254,203,0,1)"},{value:70,color:"rgba(223,1,0,1)"},{value:90,color:"rgba(142,14,11,1)"}]; return (colors.filter((i,idx) => idx!= colors.length-1 && i.value{ + return (({ + lake_water_level:()=>{ + return `${item.siteData[0].valueName}:【${item.siteData[0].value}${item.siteData[0].unit}】` + } + })[item.pointType] || (()=> item.name))(); + } const data_default_params = { sites: { method: getBaseListPoint, fields: { geometry: "geometry", name: "name" }, groupMethod: (data) => - _.groupBy(data.map((i) => i.data).flat().filter((i) => i.geometry).map((item) => ({ ...item, _image: (item.warnList || [])[0] })), (v) => v.pointType + (v.connectType ? "_" + v.connectType : "")+(v.name.includes('停用')?"_stop":"")), + _.groupBy(data.map((i) => i.data).flat().filter((i) => i.geometry).map((item) => ({ ...item,name:nameConcat(item), _image: (item.warnList || [])[0] })), (v) => v.pointType + (v.connectType ? "_" + v.connectType : "")+(v.name.includes('停用')?"_stop":"")), others: { outlet_info: { method: (data) => @@ -812,7 +842,7 @@ }, }, }, - //车辆 +/* //车辆 cheliang: { method: supervisionRealinformationList, fields: { lng: "longitude", lat: "latitude", name: "plateNumber" }, @@ -822,7 +852,7 @@ method:getPipeMonitorRun, fields:{geometry:"pipelineGeometry",name:"name"}, groupMethod:(data)=> _.groupBy(data.filter(k => k.pipelineGeometry).map(o => ({...o,width:4,type:`fullness_${o.pipeSystem}`,name:`管径:${o.pipelineDiameter}\n充满度:${o.fullness}`,color:fullnessColor(o.fullness)})),(v)=>v.type) - } + }*/ }; const other_data_params = {}; let keys = Object.keys(params || data_default_params); @@ -975,6 +1005,7 @@ "outlet_info1", "outlet_info2", "temporary", + "waterloggingPointRelation", "highlight_linestring", "highlight_polygon", "highlight_point", diff --git a/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue b/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue index d0b7bd6..b4a2f65 100644 --- a/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue +++ b/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue @@ -73,7 +73,7 @@ const events_params = { setLayerVisible: { key: "setLayerVisible" }, - beansToMap: {key: 'beansToMap',id:['waterlog_community'],colors:['rgba(255,0,0,0.5)']}, + beansToMap: {key: 'beansToMap',id:['waterlog_community','waterloggingPointRelation',"排口流向","排口流向1"],colors:['rgba(255,0,0,0.5)']}, removeMapDatas: { key: 'removeMapDatas' }, } function eachDataClick(item) { diff --git a/public/static/libs/mapbox/style/wh_dhgx.json b/public/static/libs/mapbox/style/wh_dhgx.json index 13e9bc2..9ea872f 100644 --- a/public/static/libs/mapbox/style/wh_dhgx.json +++ b/public/static/libs/mapbox/style/wh_dhgx.json @@ -1207,6 +1207,7 @@ "rainwater_pipeline_quality_area1", "sewage_pipeline_quality1", "storage_tank_info1", + "waterloggingPointRelation", "clickPoint", "temporary" ], diff --git a/src/api/MonitorAssetsOnMap.js b/src/api/MonitorAssetsOnMap.js index 20197f9..0525d42 100644 --- a/src/api/MonitorAssetsOnMap.js +++ b/src/api/MonitorAssetsOnMap.js @@ -316,6 +316,14 @@ params, }); } + +export function getWaterloggingPointRelation(params) { + return request({ + url: '/business/drainageDispatch/getWaterloggingPointRelation', + method: 'get', + params, + }); +} // 河湖水文历史 export function hisHydrologyList(query) { return request({ diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 71c1fe4..762eb55 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -455,6 +455,7 @@ (feature) => !types.includes(feature.properties.type) )) ); + newfiberMap.getLayers().filter(k => types.includes(k.newfiberId)).forEach(k => k.setData(turf.featureCollection([]))) return refreshGeoJSON(); }; @@ -520,7 +521,7 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name"}, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; diff --git a/src/components/Map/MapBox.vue b/src/components/Map/MapBox.vue index 0487102..fb0d765 100644 --- a/src/components/Map/MapBox.vue +++ b/src/components/Map/MapBox.vue @@ -20,7 +20,7 @@ import bus from "@/bus"; import request from "@/utils/request"; import MapBox from "@/components/Map/Map"; -import { getBaseListPoint,getPipeMonitorRun } from "@/api/MonitorAssetsOnMap"; +import { getBaseListPoint,getPipeMonitorRun,getWaterloggingPointRelation } from "@/api/MonitorAssetsOnMap"; import { supervisionRealinformationList } from "@/api/internetVehicles"; import useUserStore from "@/store/modules/user"; import { reactive, onMounted, onBeforeUnmount, nextTick, defineProps, watch } from "vue"; @@ -150,7 +150,7 @@ // clearTemporaryData(); proxy.$emit("map-click1", lngLat, properties, layerId); const { town, hupo, gangqu, hb_wh_dhgx_merge, psfq, point } = default_params; - const { setLayerVisible, setHighlight, setGeoJSON, removeMapDatas } = events_params; + const { setLayerVisible, setHighlight, setGeoJSON, removeMapDatas,beansToMap } = events_params; (() => { setHighlight_(properties); @@ -185,12 +185,17 @@ (( { [point.key]: () => { - const { outlet_info2 } = point.children; - let kk = _.replace(outlet_info2.key, /\d+/g, ""); - if (properties.type.includes(kk)) { - clearRouteMethod(); - outletRouteMethod(properties); - } + ({ + "waterlog_community_text": () => waterloggingPointRelation(properties), + "waterlog_community": () => waterloggingPointRelation(properties) + }[properties.type] || (()=>{ + const { outlet_info2 } = point.children; + let kk = _.replace(outlet_info2.key, /\d+/g, ""); + if (properties.type.includes(kk)) { + clearRouteMethod(); + outletRouteMethod(properties); + } + }))() }, [psfq.key]: () => { [ @@ -428,7 +433,27 @@ psfq.prevIds.push(properties); } + async function waterloggingPointRelation(properties) { + let keys = ['waterloggingPointRelation','outlet_info',"lake_water_level"]; + busEmit(removeMapDatas.key,[keys[0]]); + let {data} = await getWaterloggingPointRelation({id:properties.id}); + let {relationDataList} = data; + busEmit(beansToMap.key, { + beans: relationDataList.filter(i => i.dataCode != keys[2]).map(i => ({...i,_image:i.dataCode})), + fields: { geometry: "geometry", name: "dataName" }, + type: keys[0], + }); + + let outlet = relationDataList.filter(i => i.dataCode == keys[1])[0]; + outlet && outletRouteMethod({id:String(outlet.dataId)},false); + + let lake = relationDataList.filter(i => i.dataCode == keys[2])[0]; + let features = newfiberMap.map.getSource("point")._data.features.filter(i => i.properties.id == lake.relationId && i.properties.type == keys[2]); + features.forEach(k => (k.properties.type = undefined)) + lake && busEmit(setGeoJSON.key, { json: turf.featureCollection(features), key: keys[0] }); + busEmit(setLayerVisible.key, { layername: keys[0], isCheck: true }); + } function showOutletInfo(properties) { const key = "outlet_info"; @@ -449,8 +474,9 @@ busEmit(setLayerVisible.key, { layername: key + 2, isCheck: true }); } - function outletRouteMethod(properties) { + function outletRouteMethod(properties,isShowSite=true) { const _keys = ["排口流向", "排口流向1", "rainwater_pipeline_quality1"]; + busEmit(removeMapDatas.key,[_keys[0]]); let kk = _.replace(_keys[2], /\d+/g, ""); let routes = turf.featureCollection( outlet_route.features.filter((i) => @@ -469,12 +495,9 @@ .map((i) => ({ ...i, properties: { ...i.properties, type: undefined } })) ); // debugger; - newfiberMap - .getLayers() - .filter((i) => i.newfiberId == _keys[1])[0] - .setData(routes); + newfiberMap.getLayers().filter((i) => i.newfiberId == _keys[1])[0].setData(routes); busEmit(setGeoJSON.key, { json: routes, key: _keys[0] }); - busEmit(setGeoJSON.key, { json: sites, key: _keys[2] }); + isShowSite && busEmit(setGeoJSON.key, { json: sites, key: _keys[2] }); _keys.forEach((k) => busEmit(setLayerVisible.key, { layername: k, isCheck: true })); } @@ -796,12 +819,19 @@ const colors = [{value:0,color:"rgba(52,176,0,1)"},{value:60,color:"rgba(254,203,0,1)"},{value:70,color:"rgba(223,1,0,1)"},{value:90,color:"rgba(142,14,11,1)"}]; return (colors.filter((i,idx) => idx!= colors.length-1 && i.value{ + return (({ + lake_water_level:()=>{ + return `${item.siteData[0].valueName}:【${item.siteData[0].value}${item.siteData[0].unit}】` + } + })[item.pointType] || (()=> item.name))(); + } const data_default_params = { sites: { method: getBaseListPoint, fields: { geometry: "geometry", name: "name" }, groupMethod: (data) => - _.groupBy(data.map((i) => i.data).flat().filter((i) => i.geometry).map((item) => ({ ...item, _image: (item.warnList || [])[0] })), (v) => v.pointType + (v.connectType ? "_" + v.connectType : "")+(v.name.includes('停用')?"_stop":"")), + _.groupBy(data.map((i) => i.data).flat().filter((i) => i.geometry).map((item) => ({ ...item,name:nameConcat(item), _image: (item.warnList || [])[0] })), (v) => v.pointType + (v.connectType ? "_" + v.connectType : "")+(v.name.includes('停用')?"_stop":"")), others: { outlet_info: { method: (data) => @@ -812,7 +842,7 @@ }, }, }, - //车辆 +/* //车辆 cheliang: { method: supervisionRealinformationList, fields: { lng: "longitude", lat: "latitude", name: "plateNumber" }, @@ -822,7 +852,7 @@ method:getPipeMonitorRun, fields:{geometry:"pipelineGeometry",name:"name"}, groupMethod:(data)=> _.groupBy(data.filter(k => k.pipelineGeometry).map(o => ({...o,width:4,type:`fullness_${o.pipeSystem}`,name:`管径:${o.pipelineDiameter}\n充满度:${o.fullness}`,color:fullnessColor(o.fullness)})),(v)=>v.type) - } + }*/ }; const other_data_params = {}; let keys = Object.keys(params || data_default_params); @@ -975,6 +1005,7 @@ "outlet_info1", "outlet_info2", "temporary", + "waterloggingPointRelation", "highlight_linestring", "highlight_polygon", "highlight_point", diff --git a/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue b/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue index d0b7bd6..b4a2f65 100644 --- a/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue +++ b/src/views/pictureOnMap/page/FloodControlAndDrainage/Fuzhujuece/SchedulingAidedDecisionRight/index.vue @@ -73,7 +73,7 @@ const events_params = { setLayerVisible: { key: "setLayerVisible" }, - beansToMap: {key: 'beansToMap',id:['waterlog_community'],colors:['rgba(255,0,0,0.5)']}, + beansToMap: {key: 'beansToMap',id:['waterlog_community','waterloggingPointRelation',"排口流向","排口流向1"],colors:['rgba(255,0,0,0.5)']}, removeMapDatas: { key: 'removeMapDatas' }, } function eachDataClick(item) { diff --git a/src/views/pictureOnMap/page/FloodControlAndDrainage/index.vue b/src/views/pictureOnMap/page/FloodControlAndDrainage/index.vue index e91f71f..0cc5d4b 100644 --- a/src/views/pictureOnMap/page/FloodControlAndDrainage/index.vue +++ b/src/views/pictureOnMap/page/FloodControlAndDrainage/index.vue @@ -93,12 +93,18 @@ label: "辅助决策", value: "Fuzhujuece", keys: [ - { key: "雨水系统流向", visible: true }, - { key: "雨水分区", visible: true }, - { key: "雨水系统流向1", visible: true }, - { key: "waterlog_community", visible: false }, - { key: "rain_water_pump_station_info", visible: true }, - { key: "storehouse", visible: true }, + // { key: "雨水系统流向", visible: true }, + // { key: "雨水分区", visible: true }, + // { key: "雨水系统流向1", visible: true }, + { key: "newfiber-XYZLayer", visible: true }, + { key: "高清地图", visible: true }, + { key: "rain_water_pump_station_info", visible: false }, + { key: "storehouse", visible: false }, + { key: "排口流向", visible: true,clear:true }, + { key: "排口流向1", visible: true,clear:true }, + { key: "waterlog_community", visible: true,clear:true }, + { key: "waterlog_community_text", visible: true,clear:true }, + { key: "waterloggingPointRelation", visible: true,clear:true}, ], }, { @@ -130,6 +136,7 @@ ]); const events_params = { + removeMapDatas: { key: "removeMapDatas" }, setHighlight: { key: "setHighlight" }, setLayerVisible: { key: "setLayerVisible" }, }; @@ -145,13 +152,14 @@ }; const closeAllLayer = () => { - const { setLayerVisible, setHighlight } = events_params; - tabArr.value - .map((i) => i.keys) - .filter(Boolean) - .flat() - .forEach((i) => bus.emit(setLayerVisible.key, { layername: i.key, isCheck: false })); + let clearKeys = []; + const { setLayerVisible, setHighlight,removeMapDatas } = events_params; + tabArr.value.map((i) => i.keys).filter(Boolean).flat().forEach((i) => { + bus.emit(setLayerVisible.key, { layername: i.key, isCheck: false }); + i.clear && clearKeys.push(i.key); + }); bus.emit(setHighlight.key, []); + bus.emit(removeMapDatas.key, clearKeys); }; let allData = reactive({