|
@@ -16,7 +16,7 @@
|
|
|
<el-row :gutter="10" style="display: flex; align-items: center">
|
|
|
<el-col :span="24">
|
|
|
土地用途:
|
|
|
- <el-select
|
|
|
+ <!-- <el-select
|
|
|
size="mini"
|
|
|
v-model="jzdj_LandUse"
|
|
|
placeholder="请选择土地用途"
|
|
@@ -29,7 +29,22 @@
|
|
|
:label="dict.label"
|
|
|
:value="dict.value"
|
|
|
/>
|
|
|
- </el-select>
|
|
|
+ </el-select> -->
|
|
|
+
|
|
|
+ <el-cascader
|
|
|
+ placeholder="请选择土地用途"
|
|
|
+ v-model="jzdj_LandUse"
|
|
|
+ :options="landUseNatureRelation"
|
|
|
+ :show-all-levels="false"
|
|
|
+ clearable
|
|
|
+ @change="handleChange"
|
|
|
+ :props="{
|
|
|
+ value: 'tdyt',
|
|
|
+ label: 'tdyt',
|
|
|
+ children: 'children',
|
|
|
+ emitPath: false,
|
|
|
+ }"
|
|
|
+ ></el-cascader>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
@@ -52,7 +67,7 @@
|
|
|
style="justify-content: flex-start"
|
|
|
>
|
|
|
<div class="con-col" style="align-items: flex-start">
|
|
|
- <a style="color: white">分析面积(亩)</a>
|
|
|
+ <a style="color: white">分析范围(亩)</a>
|
|
|
<a style="font-weight: bold; color: rgba(2, 167, 240, 1)">{{
|
|
|
(Number(formData.fxzmj) / 666.67).toFixed(2)
|
|
|
}}</a>
|
|
@@ -146,6 +161,64 @@
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
+ <el-row :gutter="10">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-row :gutter="10" class="container_center">
|
|
|
+ <el-col
|
|
|
+ :span="8"
|
|
|
+ class="container_center"
|
|
|
+ style="
|
|
|
+ height: 3rem;
|
|
|
+ background-color: rgba(2, 167, 240, 1);
|
|
|
+ border-radius: 6px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <i style="font-size: 2rem" class="el-icon-discount"></i>
|
|
|
+ </el-col>
|
|
|
+ <el-col
|
|
|
+ :span="16"
|
|
|
+ class="container_center"
|
|
|
+ style="justify-content: flex-start"
|
|
|
+ >
|
|
|
+ <div class="con-col" style="align-items: flex-start">
|
|
|
+ <a style="color: white">国有建设</a>
|
|
|
+ <a style="color: white">用地面积(亩)</a>
|
|
|
+ <a style="font-weight: bold; color: rgba(2, 167, 240, 1)">{{
|
|
|
+ (formData.gyzmj / 666.67).toFixed(2)
|
|
|
+ }}</a>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-row :gutter="10" class="container_center">
|
|
|
+ <el-col
|
|
|
+ :span="8"
|
|
|
+ class="container_center"
|
|
|
+ style="
|
|
|
+ height: 3rem;
|
|
|
+ background-color: rgba(2, 167, 240, 1);
|
|
|
+ border-radius: 6px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <i style="font-size: 2rem" class="el-icon-price-tag"></i>
|
|
|
+ </el-col>
|
|
|
+ <el-col
|
|
|
+ :span="16"
|
|
|
+ class="container_center"
|
|
|
+ style="justify-content: flex-start"
|
|
|
+ >
|
|
|
+ <div class="con-col" style="align-items: flex-start">
|
|
|
+ <a style="color: white">集体建设</a>
|
|
|
+ <a style="color: white">用地面积(亩)</a>
|
|
|
+ <a style="font-weight: bold; color: rgba(2, 167, 240, 1)">{{
|
|
|
+ (formData.jtzmj / 666.67).toFixed(2)
|
|
|
+ }}</a>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
<!-- <el-row :gutter="10" style="display: flex; align-items: center">
|
|
|
<el-col :span="24">
|
|
|
土地用途:
|
|
@@ -218,6 +291,7 @@ export default {
|
|
|
getEntitiesHandler: {},
|
|
|
tooltip: createTooltip(document.body),
|
|
|
zt_jzdj_LandUse: window.dict.zt_jzdj_LandUse,
|
|
|
+ landUseNatureRelation: window.landUseNatureRelation,
|
|
|
jzdj_LandUse: "商服用地",
|
|
|
GYmyChart: null,
|
|
|
JTmyChart: null,
|
|
@@ -226,12 +300,14 @@ export default {
|
|
|
zdj: 0,
|
|
|
gyzdj: 0, //国有总地价
|
|
|
jtzdj: 0, //集体总地价
|
|
|
+ gyzmj: 0, //国有总面积
|
|
|
+ jtzmj: 0, //集体面积
|
|
|
},
|
|
|
LayerData: {
|
|
|
GYData: [],
|
|
|
JTData: [],
|
|
|
GHDKData: [],
|
|
|
- JZDJData: [],
|
|
|
+ JZDJData: { GY: [], JT: [] },
|
|
|
},
|
|
|
};
|
|
|
},
|
|
@@ -347,13 +423,14 @@ export default {
|
|
|
}
|
|
|
let polygonPs = polygon([DataPs]);
|
|
|
let areaPs = area(polygonPs);
|
|
|
- this.formData.fxzmj += +Number(areaPs).toFixed(2);
|
|
|
+ this.formData.fxzmj += Number(areaPs).toFixed(2);
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
* 计算基准地价
|
|
|
*/
|
|
|
async CalculateJZDJ() {
|
|
|
+ debugger;
|
|
|
let that = this;
|
|
|
if (that.jzdj_LandUse) {
|
|
|
let landUseNatureRelation = flatten(window.landUseNatureRelation).find(
|
|
@@ -429,17 +506,11 @@ export default {
|
|
|
ps.push(element.x);
|
|
|
ps.push(element.y);
|
|
|
}
|
|
|
- // var orangePolygon1 = viewer.entities.add({
|
|
|
- // id: uuidv4(),
|
|
|
- // polygon: {
|
|
|
- // hierarchy: Cesium.Cartesian3.fromDegreesArray(ps),
|
|
|
- // material: Cesium.Color.FUCHSIA.withAlpha(0.4),
|
|
|
- // outline: true,
|
|
|
- // outlineColor: Cesium.Color.BLACK,
|
|
|
- // outlineWidth: 2.0,
|
|
|
- // },
|
|
|
- // });
|
|
|
- that.LayerData.JZDJData.push(layerData);
|
|
|
+ if (layerinfo.qsTYPE == "JT") {
|
|
|
+ that.LayerData.JZDJData.JT.push(layerData);
|
|
|
+ } else if (layerinfo.qsTYPE == "GY") {
|
|
|
+ that.LayerData.JZDJData.GY.push(layerData);
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
@@ -459,7 +530,7 @@ export default {
|
|
|
};
|
|
|
// 循环国有土地
|
|
|
that.LayerData.GYData.forEach((Data) => {
|
|
|
- that.LayerData.JZDJData.forEach((JZDJ) => {
|
|
|
+ that.LayerData.JZDJData.GY.forEach((JZDJ) => {
|
|
|
let area = that.calculateIntersectArea(
|
|
|
Data.geometry,
|
|
|
JZDJ.geometry,
|
|
@@ -483,9 +554,9 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
- // 循环国有土地
|
|
|
+ // 循环集体土地
|
|
|
that.LayerData.JTData.forEach((Data) => {
|
|
|
- that.LayerData.JZDJData.forEach((JZDJ) => {
|
|
|
+ that.LayerData.JZDJData.JT.forEach((JZDJ) => {
|
|
|
let area = that.calculateIntersectArea(
|
|
|
Data.geometry,
|
|
|
JZDJ.geometry,
|
|
@@ -532,44 +603,51 @@ export default {
|
|
|
},
|
|
|
//计算国有和集体分别总地价
|
|
|
gyjtzdj() {
|
|
|
+ debugger;
|
|
|
this.formData.zdj = 0;
|
|
|
this.formData.gyzdj = 0;
|
|
|
this.formData.jtzdj = 0;
|
|
|
+ this.formData.jtzmj = 0;
|
|
|
+ this.formData.gyzmj = 0;
|
|
|
this.LayerData.GYData.forEach((gyelement) => {
|
|
|
gyelement.fromData.forEach((element) => {
|
|
|
+ this.formData.gyzmj += element.area;
|
|
|
this.formData.gyzdj += element.zdj;
|
|
|
});
|
|
|
});
|
|
|
this.LayerData.JTData.forEach((jtelement) => {
|
|
|
jtelement.fromData.forEach((element) => {
|
|
|
+ this.formData.jtzmj += element.area;
|
|
|
this.formData.jtzdj += element.zdj;
|
|
|
});
|
|
|
});
|
|
|
- // 循环得出总地价
|
|
|
- //转换成超图格式面
|
|
|
- let HZgeometry = {
|
|
|
- partTopo: [1],
|
|
|
- parts: [this.BenchmarkLandPrice.ProjectScope.length],
|
|
|
- points: this.BenchmarkLandPrice.ProjectScope,
|
|
|
- };
|
|
|
- this.LayerData.JZDJData.forEach((JZDJ) => {
|
|
|
- let area = this.calculateIntersectArea(JZDJ.geometry, HZgeometry);
|
|
|
- if (Number(area) > 0) {
|
|
|
- //单价
|
|
|
- let djval = JZDJ.data.find(
|
|
|
- (c) => c.label == JZDJ.layerInfo.ydlxPriceField
|
|
|
- );
|
|
|
- if (djval) {
|
|
|
- this.formData.zdj += Number(area * Number(djval.value));
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ this.formData.zdj = this.formData.gyzdj + this.formData.jtzdj;
|
|
|
+ // // 循环得出总地价
|
|
|
+ // //转换成超图格式面
|
|
|
+ // let HZgeometry = {
|
|
|
+ // partTopo: [1],
|
|
|
+ // parts: [this.BenchmarkLandPrice.ProjectScope.length],
|
|
|
+ // points: this.BenchmarkLandPrice.ProjectScope,
|
|
|
+ // };
|
|
|
+ // this.LayerData.JZDJData.forEach((JZDJ) => {
|
|
|
+ // let area = this.calculateIntersectArea(JZDJ.geometry, HZgeometry);
|
|
|
+ // if (Number(area) > 0) {
|
|
|
+ // //单价
|
|
|
+ // let djval = JZDJ.data.find(
|
|
|
+ // (c) => c.label == JZDJ.layerInfo.ydlxPriceField
|
|
|
+ // );
|
|
|
+ // if (djval) {
|
|
|
+ // this.formData.zdj += Number(area * Number(djval.value));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // });
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 查询区域内国有土地权属
|
|
|
*/
|
|
|
async getGYLandOwnership() {
|
|
|
+ debugger;
|
|
|
let that = this;
|
|
|
//查询国有使用权
|
|
|
let layer = flatten(window.layerTree).find(
|
|
@@ -659,13 +737,14 @@ export default {
|
|
|
* 查询区域内集体土地权属
|
|
|
*/
|
|
|
async getJTLandOwnership() {
|
|
|
+ debugger;
|
|
|
let that = this;
|
|
|
//查询集体使用权
|
|
|
- let layer = flatten(window.layerTree).find(
|
|
|
+ var layer = flatten(window.layerTree).find(
|
|
|
(item) => item.core == "007002"
|
|
|
);
|
|
|
- let points = this.BenchmarkLandPrice.ProjectScope;
|
|
|
- let geo = {
|
|
|
+ var points = this.BenchmarkLandPrice.ProjectScope;
|
|
|
+ var geo = {
|
|
|
id: 0,
|
|
|
style: null,
|
|
|
parts: [points.length],
|
|
@@ -675,7 +754,7 @@ export default {
|
|
|
epsgCode: null,
|
|
|
},
|
|
|
};
|
|
|
- let queryByGeometryParameters = {
|
|
|
+ var queryByGeometryParameters = {
|
|
|
getFeatureMode: "SPATIAL",
|
|
|
datasetNames: [
|
|
|
layer.date_server.dataSourceName +
|
|
@@ -686,13 +765,13 @@ export default {
|
|
|
spatialQueryMode: "INTERSECT",
|
|
|
hasGeometry: "true",
|
|
|
};
|
|
|
- let e = await mapQuery(
|
|
|
+ var e = await mapQuery(
|
|
|
layer.date_server.url + "/featureResults.json?returnContent=true",
|
|
|
queryByGeometryParameters
|
|
|
);
|
|
|
if (e && e.totalCount > 0) {
|
|
|
e.features.forEach((feature) => {
|
|
|
- let featureData = {
|
|
|
+ var featureData = {
|
|
|
id: uuidv4(),
|
|
|
layerInfo: layer,
|
|
|
data: [],
|
|
@@ -701,7 +780,7 @@ export default {
|
|
|
};
|
|
|
|
|
|
feature.fieldNames.forEach((fieldName, i) => {
|
|
|
- let Field = e.datasetInfos
|
|
|
+ var Field = e.datasetInfos
|
|
|
? e.datasetInfos[0].fieldInfos.find(
|
|
|
(c) =>
|
|
|
c.name &&
|
|
@@ -718,9 +797,9 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- let ps = [];
|
|
|
+ var ps = [];
|
|
|
for (
|
|
|
- let index = 0;
|
|
|
+ var index = 0;
|
|
|
index < featureData.geometry.points.length;
|
|
|
index++
|
|
|
) {
|
|
@@ -743,6 +822,90 @@ export default {
|
|
|
that.LayerData.JTData.push(featureData);
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ //查询集体使用权
|
|
|
+ var layer = flatten(window.layerTree).find(
|
|
|
+ (item) => item.core == "007003"
|
|
|
+ );
|
|
|
+ var points = this.BenchmarkLandPrice.ProjectScope;
|
|
|
+ var geo = {
|
|
|
+ id: 0,
|
|
|
+ style: null,
|
|
|
+ parts: [points.length],
|
|
|
+ points: points,
|
|
|
+ type: "REGION",
|
|
|
+ prjCoordSys: {
|
|
|
+ epsgCode: null,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ var queryByGeometryParameters = {
|
|
|
+ getFeatureMode: "SPATIAL",
|
|
|
+ datasetNames: [
|
|
|
+ layer.date_server.dataSourceName +
|
|
|
+ ":" +
|
|
|
+ layer.date_server.datasetName,
|
|
|
+ ],
|
|
|
+ geometry: geo,
|
|
|
+ spatialQueryMode: "INTERSECT",
|
|
|
+ hasGeometry: "true",
|
|
|
+ };
|
|
|
+ var e = await mapQuery(
|
|
|
+ layer.date_server.url + "/featureResults.json?returnContent=true",
|
|
|
+ queryByGeometryParameters
|
|
|
+ );
|
|
|
+ if (e && e.totalCount > 0) {
|
|
|
+ e.features.forEach((feature) => {
|
|
|
+ var featureData = {
|
|
|
+ id: uuidv4(),
|
|
|
+ layerInfo: layer,
|
|
|
+ data: [],
|
|
|
+ fromData: [],
|
|
|
+ geometry: feature.geometry,
|
|
|
+ };
|
|
|
+
|
|
|
+ feature.fieldNames.forEach((fieldName, i) => {
|
|
|
+ var Field = e.datasetInfos
|
|
|
+ ? e.datasetInfos[0].fieldInfos.find(
|
|
|
+ (c) =>
|
|
|
+ c.name &&
|
|
|
+ c.name.toUpperCase() == fieldName.toUpperCase() &&
|
|
|
+ c.name.toUpperCase().indexOf("SM") == -1
|
|
|
+ )
|
|
|
+ : null;
|
|
|
+ if (Field) {
|
|
|
+ featureData.data.push({
|
|
|
+ label: fieldName,
|
|
|
+ labelCN: Field ? Field.caption : fieldName,
|
|
|
+ value: e.features[0].fieldValues[i],
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ var ps = [];
|
|
|
+ for (
|
|
|
+ var index = 0;
|
|
|
+ index < featureData.geometry.points.length;
|
|
|
+ index++
|
|
|
+ ) {
|
|
|
+ const element = featureData.geometry.points[index];
|
|
|
+ ps.push(element.x);
|
|
|
+ ps.push(element.y);
|
|
|
+ }
|
|
|
+
|
|
|
+ var orangePolygon1 = viewer.entities.add({
|
|
|
+ id: "JTSYTD-" + featureData.id,
|
|
|
+ polygon: {
|
|
|
+ hierarchy: Cesium.Cartesian3.fromDegreesArray(ps),
|
|
|
+ material: Cesium.Color.ORANGE.withAlpha(0.4),
|
|
|
+ outline: true,
|
|
|
+ outlineColor: Cesium.Color.BLACK,
|
|
|
+ outlineWidth: 2.0,
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+ that.LayerData.JTData.push(featureData);
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
initEntitiesHandler() {
|
|
@@ -753,6 +916,12 @@ export default {
|
|
|
this.getEntitiesHandler.setInputAction(function (click) {
|
|
|
let pick = viewer.scene.pick(click.position);
|
|
|
let id, info;
|
|
|
+ //集体使用权信息弹窗
|
|
|
+ if (pick && pick.id.id && pick.id.id.indexOf("JTSYTD") !== -1) {
|
|
|
+ id = pick.id.id.split("JTSYTD-")[1];
|
|
|
+ info = that.LayerData.JTData.find((c) => c.id == id);
|
|
|
+ that.openOBJInfo("集体使用权详情", info.data);
|
|
|
+ }
|
|
|
//集体所有权信息弹窗
|
|
|
if (pick && pick.id.id && pick.id.id.indexOf("JTTD") !== -1) {
|
|
|
id = pick.id.id.split("JTTD-")[1];
|
|
@@ -969,6 +1138,7 @@ export default {
|
|
|
for (let index = 0; index < this.LayerData.JTData.length; index++) {
|
|
|
const element = this.LayerData.JTData[index];
|
|
|
viewer.entities.removeById("JTTD-" + element.id);
|
|
|
+ viewer.entities.removeById("JTSYTD-" + element.id);
|
|
|
}
|
|
|
this.LayerData.JTData = [];
|
|
|
//删除规划地块图层
|
|
@@ -1028,7 +1198,7 @@ export default {
|
|
|
series: [
|
|
|
{
|
|
|
type: "pie",
|
|
|
- radius: ["40%", "70%"],
|
|
|
+ radius: ["50%", "80%"],
|
|
|
center: ["35%", "50%"], // 将饼图的中心点向左调整到容器宽度的30%,纵坐标保持在中心
|
|
|
avoidLabelOverlap: false,
|
|
|
itemStyle: {
|
|
@@ -1118,7 +1288,7 @@ export default {
|
|
|
series: [
|
|
|
{
|
|
|
type: "pie",
|
|
|
- radius: ["40%", "70%"],
|
|
|
+ radius: ["50%", "80%"],
|
|
|
center: ["35%", "50%"], // 将饼图的中心点向左调整到容器宽度的30%,纵坐标保持在中心
|
|
|
avoidLabelOverlap: false,
|
|
|
itemStyle: {
|
|
@@ -1165,13 +1335,15 @@ export default {
|
|
|
//先清空数据
|
|
|
this.formData.gyzdj = 0;
|
|
|
this.formData.jtzdj = 0;
|
|
|
+ this.formData.gyzmj = 0;
|
|
|
+ this.formData.jtzmj = 0;
|
|
|
this.LayerData.GYData.forEach((element) => {
|
|
|
element.fromData = [];
|
|
|
});
|
|
|
this.LayerData.JTData.forEach((element) => {
|
|
|
element.fromData = [];
|
|
|
});
|
|
|
- this.LayerData.JZDJData = [];
|
|
|
+ this.LayerData.JZDJData = { GY: [], JT: [] };
|
|
|
|
|
|
await this.CalculateJZDJ();
|
|
|
await this.initGY();
|
|
@@ -1245,6 +1417,6 @@ export default {
|
|
|
}
|
|
|
.EchartsWH {
|
|
|
width: 100%;
|
|
|
- height: 16rem;
|
|
|
+ height: 13rem;
|
|
|
}
|
|
|
</style>
|