| @@ -76,10 +76,10 @@ | |||||
| <img src="../../../static/images/plotPremises/plotPremises_img.png" alt=""> | <img src="../../../static/images/plotPremises/plotPremises_img.png" alt=""> | ||||
| <div class="pop_content_zd_right"> | <div class="pop_content_zd_right"> | ||||
| <van-row type="flex" justify="space-between"> | |||||
| <!-- <van-row type="flex" justify="space-between"> | |||||
| <van-col>租地位置:</van-col> | <van-col>租地位置:</van-col> | ||||
| <van-col>{{deptName}}</van-col> | <van-col>{{deptName}}</van-col> | ||||
| </van-row> | |||||
| </van-row> --> | |||||
| <van-row type="flex" justify="space-between"> | <van-row type="flex" justify="space-between"> | ||||
| <van-col>租地编号:</van-col> | <van-col>租地编号:</van-col> | ||||
| <van-col class="num">{{ndItem.id}}</van-col> | <van-col class="num">{{ndItem.id}}</van-col> | ||||
| @@ -116,10 +116,10 @@ | |||||
| <img src="../../../static/images/plotPremises/plotPremises_img.png" alt=""> | <img src="../../../static/images/plotPremises/plotPremises_img.png" alt=""> | ||||
| <div class="pop_content_zd_right"> | <div class="pop_content_zd_right"> | ||||
| <van-row type="flex" justify="space-between"> | |||||
| <!-- <van-row type="flex" justify="space-between"> | |||||
| <van-col>租房位置:</van-col> | <van-col>租房位置:</van-col> | ||||
| <van-col>{{deptName}}</van-col> | <van-col>{{deptName}}</van-col> | ||||
| </van-row> | |||||
| </van-row> --> | |||||
| <van-row type="flex" justify="space-between"> | <van-row type="flex" justify="space-between"> | ||||
| <van-col>租房编号:</van-col> | <van-col>租房编号:</van-col> | ||||
| <van-col class="num">{{nfItem.id}}</van-col> | <van-col class="num">{{nfItem.id}}</van-col> | ||||
| @@ -235,6 +235,7 @@ export default { | |||||
| landLayer: "", // 地块图层 | landLayer: "", // 地块图层 | ||||
| homesteadLayer: "", // 宅基地图层 | homesteadLayer: "", // 宅基地图层 | ||||
| selectedLayer: "", // 选中的图层 | |||||
| deptInfo: { | deptInfo: { | ||||
| leader: null, // 联系人 | leader: null, // 联系人 | ||||
| phone: null // 电话 | phone: null // 电话 | ||||
| @@ -280,6 +281,7 @@ export default { | |||||
| getData(){ | getData(){ | ||||
| plotPremisesStatistics({deptId:this.deptId}).then(response => { | plotPremisesStatistics({deptId:this.deptId}).then(response => { | ||||
| this.detail = response.data; | this.detail = response.data; | ||||
| console.log(this.detail); | |||||
| }); | }); | ||||
| }, | }, | ||||
| onConfirmDept({ selectedOptions }){ | onConfirmDept({ selectedOptions }){ | ||||
| @@ -287,6 +289,13 @@ export default { | |||||
| this.deptName = selectedOptions.map((option) => option.label).join('/'); | this.deptName = selectedOptions.map((option) => option.label).join('/'); | ||||
| this.getData(); | this.getData(); | ||||
| this.showAddress = false; | this.showAddress = false; | ||||
| this.drawMap(selectedOptions); | |||||
| this.deptInfo.leader = null; | |||||
| this.deptInfo.phone = null; | |||||
| getDept(this.deptId).then(res => { | |||||
| this.deptInfo.leader = res.data.leader; | |||||
| this.deptInfo.phone = res.data.phone; | |||||
| }); | |||||
| }, | }, | ||||
| tabChange(name){ | tabChange(name){ | ||||
| @@ -294,12 +303,53 @@ export default { | |||||
| this.selectChooseOrder = -1; | this.selectChooseOrder = -1; | ||||
| }, | }, | ||||
| listChange(id,type,data){ | listChange(id,type,data){ | ||||
| console.log(data); | |||||
| this.selectChooseOrder = id; | this.selectChooseOrder = id; | ||||
| this.show = false; | this.show = false; | ||||
| this.showZF = false; | this.showZF = false; | ||||
| this.showZD = false; | this.showZD = false; | ||||
| if (type=='nf'){this.showZF = true;this.nfItem = data;} | |||||
| if (type=='nd'){this.showZD = true;this.ndItem = data;} | |||||
| if (type=='nf') { | |||||
| this.showZF = true; | |||||
| this.nfItem = data; | |||||
| } | |||||
| if (type=='nd') { | |||||
| this.showZD = true; | |||||
| this.ndItem = data; | |||||
| } | |||||
| if (this.selectedLayer) { | |||||
| this.map.removeLayer(this.selectedLayer); | |||||
| this.selectedLayer = ''; | |||||
| } | |||||
| if (data.theGeom) { | |||||
| this.selectedLayer = new ol.layer.Vector({ | |||||
| source: new ol.source.Vector({ | |||||
| features: new ol.format.GeoJSON().readFeatures("{\n" + | |||||
| " \"type\": \"Feature\",\n" + | |||||
| " \"geometry\":" + data.theGeom + ", \"properties\":" + JSON.stringify(data.id) + "}"), | |||||
| }), | |||||
| name: 'selectedLayer', | |||||
| style: new ol.style.Style({ | |||||
| fill: new ol.style.Fill({ | |||||
| //矢量图层填充颜色,以及透明度 | |||||
| color: "rgba(255, 84, 87, 0.5)", | |||||
| }), | |||||
| stroke: new ol.style.Stroke({ | |||||
| //边界样式 | |||||
| color: "#ff5457", | |||||
| width: 2, | |||||
| }), | |||||
| }), | |||||
| }); | |||||
| this.map.addLayer(this.selectedLayer); | |||||
| let center = ol.extent.getCenter(this.selectedLayer.getSource().getExtent()); | |||||
| this.map.getView().animate({ | |||||
| center: center, // 中心点 | |||||
| zoom: 17, // 缩放级别 | |||||
| rotation: undefined, // 缩放完成view视图旋转弧度 | |||||
| duration: 500, // 缩放持续时间,默认不需要设置 | |||||
| }); | |||||
| } | |||||
| }, | }, | ||||
| //获取geoserver的地址 | //获取geoserver的地址 | ||||
| getGeoServerUrl() { | getGeoServerUrl() { | ||||
| @@ -456,6 +506,13 @@ export default { | |||||
| this.addDeptLayer(deptNode.children); | this.addDeptLayer(deptNode.children); | ||||
| } | } | ||||
| } else if (deptLevel === '2') { | } else if (deptLevel === '2') { | ||||
| this.deptId = deptId; | |||||
| this.getData(); | |||||
| let parentNodes = []; | |||||
| this.findParentNode(this.addrOptions, deptId, parentNodes); | |||||
| console.log(parentNodes); | |||||
| this.villageValue = deptId; | |||||
| this.deptName = parentNodes.map(node => node.label).join('/'); | |||||
| this.currentDeptLevel = '2'; | this.currentDeptLevel = '2'; | ||||
| this.map.removeLayer(this.borderLayer); | this.map.removeLayer(this.borderLayer); | ||||
| this.borderLayer = ''; | this.borderLayer = ''; | ||||
| @@ -489,6 +546,16 @@ export default { | |||||
| }); | }); | ||||
| } | } | ||||
| } | } | ||||
| } else { | |||||
| const viewResolution = this.map.getView().getResolution(); | |||||
| const url1 = this.landLayer.getSource().getFeatureInfoUrl(evt.coordinate, viewResolution, 'EPSG:3857', {'INFO_FORMAT': 'application/json'}); | |||||
| if (url1) { | |||||
| this.fetchUrl(url1); | |||||
| } | |||||
| const url2 = this.homesteadLayer.getSource().getFeatureInfoUrl(evt.coordinate, viewResolution, 'EPSG:3857', {'INFO_FORMAT': 'application/json'}); | |||||
| if (url2) { | |||||
| this.fetchUrl(url2); | |||||
| } | |||||
| } | } | ||||
| }); | }); | ||||
| @@ -514,6 +581,10 @@ export default { | |||||
| this.landLayer = ""; | this.landLayer = ""; | ||||
| this.map.removeLayer(this.homesteadLayer); | this.map.removeLayer(this.homesteadLayer); | ||||
| this.homesteadLayer = ""; | this.homesteadLayer = ""; | ||||
| if (this.selectedLayer) { | |||||
| this.map.removeLayer(this.selectedLayer); | |||||
| this.selectedLayer = ""; | |||||
| } | |||||
| this.deptInfo.leader = null; | this.deptInfo.leader = null; | ||||
| this.deptInfo.phone = null; | this.deptInfo.phone = null; | ||||
| } else if (this.currentDeptLevel === '3' && zoom < 11) { | } else if (this.currentDeptLevel === '3' && zoom < 11) { | ||||
| @@ -560,6 +631,10 @@ export default { | |||||
| this.landLayer = ""; | this.landLayer = ""; | ||||
| this.map.removeLayer(this.homesteadLayer); | this.map.removeLayer(this.homesteadLayer); | ||||
| this.homesteadLayer = ""; | this.homesteadLayer = ""; | ||||
| if (this.selectedLayer) { | |||||
| this.map.removeLayer(this.selectedLayer); | |||||
| this.selectedLayer = ""; | |||||
| } | |||||
| this.deptInfo.leader = null; | this.deptInfo.leader = null; | ||||
| this.deptInfo.phone = null; | this.deptInfo.phone = null; | ||||
| } else if (this.currentDeptLevel === '3' && zoom < 11) { | } else if (this.currentDeptLevel === '3' && zoom < 11) { | ||||
| @@ -588,6 +663,76 @@ export default { | |||||
| } | } | ||||
| return null; | return null; | ||||
| }, | }, | ||||
| findParentNode(tree, deptId, result) { | |||||
| for (let node of tree) { | |||||
| if (node.id === deptId) { | |||||
| result.unshift(node); | |||||
| return true; | |||||
| } | |||||
| if (node.children && node.children.length > 0) { | |||||
| let isFind = this.findParentNode(node.children, deptId, result); | |||||
| if (isFind) { | |||||
| result.unshift(node); | |||||
| return true; | |||||
| } | |||||
| } | |||||
| } | |||||
| return false; | |||||
| }, | |||||
| fetchUrl(url) { | |||||
| fetch(url) | |||||
| .then(response => response.json()) | |||||
| .then(data => { | |||||
| if (data.features.length > 0) { | |||||
| let arr = data.features[0].id.split("."); | |||||
| let tableName = arr[0]; | |||||
| let id = arr[1]; | |||||
| this.show = false; | |||||
| this.showList = false; | |||||
| this.showZF = false; | |||||
| this.showZD = false; | |||||
| if (tableName.startsWith("t_homestead_zjdzdxx")) { | |||||
| this.showZF = true; | |||||
| this.nfItem = { | |||||
| id: id, | |||||
| zdmj: data.features[0].properties.ZDMJ, | |||||
| }; | |||||
| } | |||||
| if (tableName.startsWith("t_sys_dk")) { | |||||
| this.showZD = true; | |||||
| this.ndItem = { | |||||
| id: id, | |||||
| scmjm: data.features[0].properties.SCMJM, | |||||
| }; | |||||
| } | |||||
| if (this.selectedLayer) { | |||||
| this.map.removeLayer(this.selectedLayer); | |||||
| this.selectedLayer = ""; | |||||
| } | |||||
| this.selectedLayer = new ol.layer.Vector({ | |||||
| source: new ol.source.Vector({ | |||||
| features: new ol.format.GeoJSON().readFeatures(data) | |||||
| }), | |||||
| name: 'selectedLayer', | |||||
| style: new ol.style.Style({ | |||||
| fill: new ol.style.Fill({ | |||||
| //矢量图层填充颜色,以及透明度 | |||||
| color: "rgba(255, 84, 87, 0.3)", | |||||
| }), | |||||
| stroke: new ol.style.Stroke({ | |||||
| //边界样式 | |||||
| color: "#ff5457", | |||||
| width: 3, | |||||
| }), | |||||
| }) | |||||
| }); | |||||
| this.map.addLayer(this.selectedLayer); | |||||
| // this.map.getLayers().insertAt(4, this.selectedHomesteadLayer); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| // 添加区县边界 | // 添加区县边界 | ||||
| addCountyBorder() { | addCountyBorder() { | ||||
| this.borderLayer = new ol.layer.Image({ | this.borderLayer = new ol.layer.Image({ | ||||
| @@ -697,26 +842,6 @@ export default { | |||||
| }, | }, | ||||
| // 添加地块图层 | // 添加地块图层 | ||||
| addLandLayer(deptId) { | addLandLayer(deptId) { | ||||
| /* let params = {}; | |||||
| if (this.street === '全部' && this.cun === '全部') { | |||||
| params = { | |||||
| LAYERS: this.homesteadLayerName, | |||||
| SRID: 3857, | |||||
| }; | |||||
| } else if (this.street !== '全部' && this.cun === '全部') { | |||||
| let villageDeptIds = this.houseCunship.map(item => item.deptId); | |||||
| params = { | |||||
| LAYERS: this.homesteadLayerName, | |||||
| cql_filter: "dept_id in (" + villageDeptIds + ")", | |||||
| SRID: 3857, | |||||
| }; | |||||
| } else if (this.street !== '全部' && this.cun !== '全部') { | |||||
| params = { | |||||
| LAYERS: "zjd_dc:t_sys_dk", // 测试用的图层,正式使用时要换成自己发布的图层 | |||||
| cql_filter: "dept_id = '" + this.deptId + "'", | |||||
| SRID: 3857, | |||||
| }; | |||||
| } */ | |||||
| this.landLayer = new ol.layer.Image({ | this.landLayer = new ol.layer.Image({ | ||||
| source: new ol.source.ImageWMS({ | source: new ol.source.ImageWMS({ | ||||
| url: "http://218.59.175.43:8090/geoserver/zjd_dc/wms", // 测试用的geoserver服务器链接,正式使用时需要换掉 | url: "http://218.59.175.43:8090/geoserver/zjd_dc/wms", // 测试用的geoserver服务器链接,正式使用时需要换掉 | ||||
| @@ -733,26 +858,6 @@ export default { | |||||
| }, | }, | ||||
| // 添加宅基地图层 | // 添加宅基地图层 | ||||
| addHomesteadLayer(deptId) { | addHomesteadLayer(deptId) { | ||||
| /* let params = {}; | |||||
| if (this.street === '全部' && this.cun === '全部') { | |||||
| params = { | |||||
| LAYERS: this.homesteadLayerName, | |||||
| SRID: 3857, | |||||
| }; | |||||
| } else if (this.street !== '全部' && this.cun === '全部') { | |||||
| let villageDeptIds = this.houseCunship.map(item => item.deptId); | |||||
| params = { | |||||
| LAYERS: this.homesteadLayerName, | |||||
| cql_filter: "dept_id in (" + villageDeptIds + ")", | |||||
| SRID: 3857, | |||||
| }; | |||||
| } else if (this.street !== '全部' && this.cun !== '全部') { | |||||
| params = { | |||||
| LAYERS: "zjd_dc:t_sys_dk", // 测试用的图层,正式使用时要换成自己发布的图层 | |||||
| cql_filter: "dept_id = '" + this.deptId + "'", | |||||
| SRID: 3857, | |||||
| }; | |||||
| } */ | |||||
| this.homesteadLayer = new ol.layer.Image({ | this.homesteadLayer = new ol.layer.Image({ | ||||
| source: new ol.source.ImageWMS({ | source: new ol.source.ImageWMS({ | ||||
| url: "http://218.59.175.43:8090/geoserver/zjd_dc/wms", // 测试用的geoserver服务器链接,正式使用时需要换掉 | url: "http://218.59.175.43:8090/geoserver/zjd_dc/wms", // 测试用的geoserver服务器链接,正式使用时需要换掉 | ||||
| @@ -767,6 +872,53 @@ export default { | |||||
| this.map.addLayer(this.homesteadLayer); | this.map.addLayer(this.homesteadLayer); | ||||
| // this.map.getLayers().insertAt(3, this.homesteadLayer); | // this.map.getLayers().insertAt(3, this.homesteadLayer); | ||||
| }, | }, | ||||
| drawMap(selectedOptions) { | |||||
| const villageNode = selectedOptions[selectedOptions.length - 1]; | |||||
| const ids = selectedOptions.map(option => option.id); | |||||
| this.currentDeptLevel = '2'; | |||||
| this.townId = ids[ids.length - 2]; | |||||
| this.countyId = ids[ids.length - 3]; | |||||
| this.map.removeLayer(this.borderLayer); | |||||
| this.borderLayer = ''; | |||||
| // 添加村边界 | |||||
| const cqlFilter = "dept_id = '" + villageNode.id + "'"; | |||||
| this.addVillageBorder(cqlFilter); | |||||
| let villagePoint = { | |||||
| id: villageNode.id, | |||||
| label: villageNode.label, | |||||
| lng: villageNode.lng, | |||||
| lat: villageNode.lat, | |||||
| deptLevel: villageNode.deptLevel, | |||||
| }; | |||||
| let depts = []; | |||||
| depts.push(villagePoint); | |||||
| this.map.removeLayer(this.deptLayer); | |||||
| this.deptLayer = ''; | |||||
| this.addDeptLayer(depts); | |||||
| if (this.landLayer) { | |||||
| this.map.removeLayer(this.landLayer); | |||||
| this.landLayer = ''; | |||||
| } | |||||
| if (this.homesteadLayer) { | |||||
| this.map.removeLayer(this.homesteadLayer); | |||||
| this.homesteadLayer = ''; | |||||
| } | |||||
| if (this.selectedLayer) { | |||||
| this.map.removeLayer(this.selectedLayer); | |||||
| this.selectedLayer = ""; | |||||
| } | |||||
| this.addLandLayer(villageNode.id); | |||||
| this.addHomesteadLayer(villageNode.id); | |||||
| this.map.getView().animate({ | |||||
| center: ol.proj.fromLonLat([villageNode.lng, villageNode.lat]), // 中心点 | |||||
| zoom: 17, // 缩放级别 | |||||
| rotation: undefined, // 缩放完成view视图旋转弧度 | |||||
| duration: 1000, // 缩放持续时间,默认不需要设置 | |||||
| }); | |||||
| }, | |||||
| }, | }, | ||||
| }; | }; | ||||
| </script> | </script> | ||||