|
@@ -2,15 +2,20 @@
|
|
|
<div class="innerContainer leftPane" v-drag>
|
|
|
<h2 class="Pangetitle darg-div el-col">
|
|
|
<span class="pange_text"
|
|
|
- >{{ type == "gdzl" ? "耕地总览" : "永久基本农田" }}
|
|
|
+ >{{ pageType == 0 ? "耕地总览" : "永久基本农田" }}
|
|
|
</span>
|
|
|
<div class="region">
|
|
|
- <el-select v-model="year" placeholder="请选择" size="mini">
|
|
|
+ <el-select
|
|
|
+ v-model="nowunit"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="mini"
|
|
|
+ @change="unitChange"
|
|
|
+ >
|
|
|
<el-option
|
|
|
- v-for="item in yearList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ v-for="item in unitList"
|
|
|
+ :key="item.code"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.code"
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
@@ -19,12 +24,17 @@
|
|
|
<div class="xz_box">
|
|
|
<div class="gdzl">
|
|
|
<div class="el-col headerSelect">
|
|
|
- <el-select v-model="year" placeholder="请选择" size="mini">
|
|
|
+ <el-select
|
|
|
+ v-model="nowyear"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="mini"
|
|
|
+ @change="regionChange"
|
|
|
+ >
|
|
|
<el-option
|
|
|
v-for="item in yearList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ :key="item.year"
|
|
|
+ :label="item.year"
|
|
|
+ :value="item.year"
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
@@ -42,13 +52,17 @@
|
|
|
emitPath: false,
|
|
|
}"
|
|
|
></el-cascader>
|
|
|
-
|
|
|
- <el-select v-model="gtype" placeholder="请选择" size="mini">
|
|
|
+ <el-select
|
|
|
+ v-model="dlbm"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="mini"
|
|
|
+ @change="dlbmChange"
|
|
|
+ >
|
|
|
<el-option
|
|
|
v-for="item in typeList"
|
|
|
- :key="item.label"
|
|
|
+ :key="item.id"
|
|
|
:label="item.label"
|
|
|
- :value="item.label"
|
|
|
+ :value="item.id"
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
@@ -64,22 +78,30 @@
|
|
|
<div class="icon">
|
|
|
<div class="iicon"></div>
|
|
|
</div>
|
|
|
- <div class="text">
|
|
|
+ <div class="text" v-if="dlbm == '01' && pageType">
|
|
|
+ <p>{{ zl.ntname }}</p>
|
|
|
+ <span class="cvalue">
|
|
|
+ {{ (zldata[zl.prop || uprops[nowunit]] || 0).toFixed(2) }}
|
|
|
+ {{ zl.ntunit || unitList[nowunit].unit }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="text" v-else>
|
|
|
<p>{{ zl.name }}</p>
|
|
|
- <span class="cvalue"
|
|
|
- >{{ (sdata.a || 0).toFixed(2) }} {{ zl.unit }}</span
|
|
|
+ <span class="cvalue">
|
|
|
+ {{ (zldata[zl.prop || uprops[nowunit]] || 0).toFixed(2) }}
|
|
|
+ {{ zl.unit || unitList[nowunit].unit }}</span
|
|
|
>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="content scontent" v-show="gtype == '耕地'">
|
|
|
- <div class="item" v-for="(sd, index) in sdlist" :key="index">
|
|
|
+ <div class="content scontent" v-show="dlbm == '01'">
|
|
|
+ <div class="item" v-for="(sd, index) in fldata" :key="index">
|
|
|
<div class="text">
|
|
|
- <p>{{ sd.name }}</p>
|
|
|
+ <p>{{ sd.dlmc }}</p>
|
|
|
<span class="cvalue">
|
|
|
- {{ (sdata[sd.prop] || 0).toFixed(2) }}
|
|
|
+ {{ (sd[uprops[nowunit]] || 0).toFixed(2) }}
|
|
|
</span>
|
|
|
- <span class="unit">{{ sd.unit }}</span>
|
|
|
+ <span class="unit">{{ unitList[nowunit].unit }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -94,13 +116,13 @@
|
|
|
v-model="tab"
|
|
|
placeholder="请选择"
|
|
|
:popper-append-to-body="false"
|
|
|
- @change="Getxzxx()"
|
|
|
+ @change="GetBhqk()"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in yearList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ :key="item.year"
|
|
|
+ :label="item.year"
|
|
|
+ :value="item.year"
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
@@ -109,11 +131,11 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="content scontent" v-show="gtype == '耕地'">
|
|
|
- <div class="item" v-for="(bh, index) in bhlist" :key="index">
|
|
|
+ <div class="item item50" v-for="(bh, index) in bhlist" :key="index">
|
|
|
<div class="text">
|
|
|
<p>{{ bh.name }}</p>
|
|
|
<span class="cvalue">
|
|
|
- {{ (sdata[bh.prop] || 0).toFixed(2) }}
|
|
|
+ {{ (bhdata[bh.prop || uprops[nowunit]] || 0).toFixed(2) }}
|
|
|
</span>
|
|
|
<span class="unit">{{ bh.unit }}</span>
|
|
|
</div>
|
|
@@ -126,6 +148,8 @@
|
|
|
<Statistics
|
|
|
:title="`各区${gtype}分布`"
|
|
|
:cityList="cityList"
|
|
|
+ :prop="uprops[nowunit]"
|
|
|
+ :unit="unitList[nowunit].unit"
|
|
|
:height="gtype == '耕地' ? 180 : 260"
|
|
|
:text="`占全市${gtype}`"
|
|
|
textunit="%"
|
|
@@ -140,82 +164,92 @@
|
|
|
<script>
|
|
|
import bar from "@/components/echartsTemplate/bar.vue";
|
|
|
import Statistics from "../components/statistics.vue";
|
|
|
-import { overview, district, reason } from "@/api/Idleland.js";
|
|
|
import { QueryOne, QueryList } from "@/api/cockpitNew";
|
|
|
-import { GetJctbDate, DeleteGdbh } from "@/api/ghss/gdbhadd.js";
|
|
|
+import {
|
|
|
+ GetGdDate,
|
|
|
+ GetYjjbntDate,
|
|
|
+ GetYjjbntZl,
|
|
|
+ GetYjjbntFl,
|
|
|
+ GetYjjbntBhqk,
|
|
|
+ GetYjjbntLnbhqk,
|
|
|
+ GetYjjbntQxfl,
|
|
|
+} from "@/api/ghss/gdbhadd.js";
|
|
|
import { legends } from "../config.js";
|
|
|
import { loadGeoJSON } from "@/utils/MapHelper/help.js";
|
|
|
export default {
|
|
|
props: {
|
|
|
- type: {
|
|
|
+ pageType: {
|
|
|
type: String,
|
|
|
},
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- year: "",
|
|
|
- region: "",
|
|
|
+ region: "4602",
|
|
|
+ dlbm: "01",
|
|
|
gtype: "耕地",
|
|
|
+ nowunit: 0,
|
|
|
+ unitList: [
|
|
|
+ { code: 0, name: "平方千米", unit: "km²" },
|
|
|
+ { code: 1, name: "平方米", unit: "m²" },
|
|
|
+ { code: 2, name: "亩", unit: "亩" },
|
|
|
+ ],
|
|
|
+ nowyear: "",
|
|
|
+ uprops: ["mj_qm", "mj", "mj_m"],
|
|
|
yearList: [],
|
|
|
typeList: [],
|
|
|
+ tab: "2023",
|
|
|
zllist: {
|
|
|
耕地: [
|
|
|
- { name: "耕地保有量", prop: "", unit: "km²" },
|
|
|
- { name: "耕地保有目标", prop: "", unit: "km²" },
|
|
|
+ { name: "耕地保有量", ntname: "永久基本农田" },
|
|
|
+ {
|
|
|
+ name: "耕地保有目标",
|
|
|
+ ntname: "占耕地比",
|
|
|
+ prop: "a",
|
|
|
+ unit: "km²",
|
|
|
+ ntunit: "%",
|
|
|
+ },
|
|
|
],
|
|
|
水田: [
|
|
|
- { name: "水田现状", prop: "", unit: "km²" },
|
|
|
- { name: "占耕地比", prop: "", unit: "%" },
|
|
|
+ { name: "水田现状" },
|
|
|
+ { name: "占耕地比", prop: "a", unit: "%" },
|
|
|
],
|
|
|
水浇地: [
|
|
|
- { name: "水浇地现状", prop: "", unit: "km²" },
|
|
|
- { name: "占耕地比", prop: "", unit: "%" },
|
|
|
+ { name: "水浇地现状" },
|
|
|
+ { name: "占耕地比", prop: "a", unit: "%" },
|
|
|
],
|
|
|
旱地: [
|
|
|
- { name: "旱地现状", prop: "", unit: "km²" },
|
|
|
- { name: "占耕地比", prop: "", unit: "%" },
|
|
|
- ,
|
|
|
+ { name: "旱地现状" },
|
|
|
+ { name: "占耕地比", prop: "a", unit: "%" },
|
|
|
],
|
|
|
},
|
|
|
- sdata: {},
|
|
|
- sdlist: [
|
|
|
- { name: "水田", prop: "试点面积", unit: "km²" },
|
|
|
- { name: "水浇地", prop: "整治面积", unit: "km²" },
|
|
|
- { name: "旱地", prop: "村庄个数", unit: "km²" },
|
|
|
- ],
|
|
|
bhlist: [
|
|
|
- { name: "变化幅度", prop: "试点面积", unit: "%" },
|
|
|
- { name: "增加面积", prop: "整治面积", unit: "km²" },
|
|
|
- { name: "减少面积", prop: "村庄个数", unit: "km²" },
|
|
|
- ],
|
|
|
- tab: "2024",
|
|
|
- xzlist: [
|
|
|
- { name: "农用地面积", prop: "nydmk", unit: "公顷" },
|
|
|
- { name: "建设用地面积", prop: "jsydmj", unit: "公顷" },
|
|
|
- { name: "未利用地面积", prop: "wlytmj", unit: "公顷" },
|
|
|
- { name: "耕地面积", prop: "gd", unit: "公顷" },
|
|
|
- { name: "永久基本农田", prop: "yjjbnt", unit: "公顷" },
|
|
|
- { name: "生态红线划定", prop: "sthxhdmj", unit: "公顷" },
|
|
|
+ { name: "变化幅度", prop: "mjbh", unit: "%" },
|
|
|
+ { name: "变化面积" },
|
|
|
],
|
|
|
- xzdata: {},
|
|
|
- tzdata: {},
|
|
|
+
|
|
|
+ zldata: {},
|
|
|
+ fldata: {},
|
|
|
+ bhdata: {},
|
|
|
+ lnbndata: [],
|
|
|
eData: {
|
|
|
xData: ["2020", "2021", "2022", "2023"],
|
|
|
yData: [[-10, 10, 10, 10]],
|
|
|
legend: [""],
|
|
|
},
|
|
|
cityList: [],
|
|
|
+ imagelayers: {},
|
|
|
};
|
|
|
},
|
|
|
components: {
|
|
|
bar,
|
|
|
Statistics,
|
|
|
},
|
|
|
- mounted() {
|
|
|
- this.getYear();
|
|
|
- this.GetData();
|
|
|
- this.typeList = [{ label: "耕地" }, ...legends];
|
|
|
+ created() {
|
|
|
+ // this.getYear();
|
|
|
+ // this.GetDate();
|
|
|
+ this.typeList = [{ id: "01", label: "耕地" }, ...legends];
|
|
|
},
|
|
|
+ mounted() {},
|
|
|
methods: {
|
|
|
changeData(name, updata) {
|
|
|
this[name] = updata;
|
|
@@ -228,76 +262,115 @@ export default {
|
|
|
this.yearList.push({ value: i, label: i + "年" });
|
|
|
}
|
|
|
},
|
|
|
- GetData() {
|
|
|
- GetJctbDate().then((res) => {
|
|
|
- this.xzdata = res.data;
|
|
|
- this.$emit("updateParent", "loading", false);
|
|
|
- });
|
|
|
+ unitChange() {
|
|
|
+ this.setLnbh(this.lnbndata);
|
|
|
+ },
|
|
|
+ dlbmChange() {
|
|
|
+ this.gtype = this.typeList.find((x) => x.id == this.dlbm).label;
|
|
|
+ this.regionChange();
|
|
|
},
|
|
|
- regionChange(region) {
|
|
|
- this.region = region;
|
|
|
+ async GetDate() {
|
|
|
+ let res = {};
|
|
|
+ if (this.$props.pageType == 0) {
|
|
|
+ res = await GetGdDate();
|
|
|
+ } else {
|
|
|
+ res = await GetYjjbntDate();
|
|
|
+ }
|
|
|
+ this.yearList = res.data || 0;
|
|
|
+ this.nowyear = this.yearList.length ? this.yearList[0].year : "";
|
|
|
+ this.setImager(this.yearList[0]);
|
|
|
+ // serverfwgzkj
|
|
|
+ // :
|
|
|
+ // "127_0_0_1_real3d"
|
|
|
+ // serverfwmc
|
|
|
+ // :
|
|
|
+ // "TB_YJJBNTBH"
|
|
|
+ // serverid
|
|
|
+ // :
|
|
|
+ // "409f15561ad347cf94181cfda488cdf7"
|
|
|
+ // serverurl
|
|
|
+ // :
|
|
|
+ // "http://192.168.60.2:8090/iserver/services/map-YinZiGongZuoKongJian/rest/maps/TB_YJJBNTBH_60.2"
|
|
|
+ // sjy
|
|
|
+ // :
|
|
|
+ // "TB_YJJBNTBH"
|
|
|
+ },
|
|
|
+ setImager(obj, isshow = true, fun) {
|
|
|
+ console.log(obj.year, isshow, this.imagelayers[obj.year], "---");
|
|
|
+
|
|
|
+ if (this.imagelayers[obj.year]) this.imagelayers[obj.year].show = isshow;
|
|
|
+ else if (isshow)
|
|
|
+ this.imagelayers[obj.year] = viewer.imageryLayers.addImageryProvider(
|
|
|
+ new Cesium.SuperMapImageryProvider({
|
|
|
+ url: obj.url || obj.serverurl,
|
|
|
+ name: obj.year,
|
|
|
+ })
|
|
|
+ );
|
|
|
+ if (obj.top) viewer.imageryLayers.raiseToTop(this.imagelayers[obj.year]);
|
|
|
+ fun && fun(this.imagelayers[obj.year]);
|
|
|
+ // viewer.flyTo(this.imagelayers[obj.year]);
|
|
|
+ },
|
|
|
+ async regionChange(region) {
|
|
|
+ // this.region = region;
|
|
|
+ if (!this.nowyear) await this.GetDate();
|
|
|
this.getData();
|
|
|
},
|
|
|
getData() {
|
|
|
this.$emit("updateParent", "loading", true);
|
|
|
this.Getzzxm();
|
|
|
- this.Getxzxx();
|
|
|
- this.Getkjxx();
|
|
|
- this.GetCityList();
|
|
|
+ // this.Getkjxx();
|
|
|
},
|
|
|
async Getzzxm() {
|
|
|
- let sdres = await QueryOne({
|
|
|
- jscType: "t_gdbh_jctb_tbzl",
|
|
|
- id: this.region,
|
|
|
- val0: "2024-02-17 00:00:00",
|
|
|
- val1: "2024-12-31 23:59:59",
|
|
|
- val2: "",
|
|
|
- });
|
|
|
- this.sdata = sdres.data;
|
|
|
- let lxres = await QueryList({
|
|
|
- jscType: "t_gdbh_jctb_jclx",
|
|
|
- id: this.region,
|
|
|
- });
|
|
|
-
|
|
|
- console.log(lxres, "lx");
|
|
|
+ let parms = { year: this.nowyear, xzqhdm: this.region, dlbm: this.dlbm };
|
|
|
+ if (this.$props.pageType == 0) {
|
|
|
+ GetGdDate().then((res) => {});
|
|
|
+ } else {
|
|
|
+ GetYjjbntZl(parms).then((res) => {
|
|
|
+ this.zldata = res.data;
|
|
|
+ });
|
|
|
+ GetYjjbntFl(parms).then((res) => {
|
|
|
+ this.fldata = res.data;
|
|
|
+ });
|
|
|
+ GetYjjbntQxfl(parms).then((res) => {
|
|
|
+ this.cityList = res.data;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.GetLnbhqk();
|
|
|
+ this.GetBhqk();
|
|
|
+ },
|
|
|
|
|
|
- let { data } = await QueryList({
|
|
|
- jscType: "jsc_stxf_ywfl_tdzz",
|
|
|
- id: this.region,
|
|
|
- });
|
|
|
- let num = 0;
|
|
|
+ GetLnbhqk() {
|
|
|
+ this.eData.xData = [];
|
|
|
+ this.eData.yData = [[]];
|
|
|
+ if (!this.$props.pageType) {
|
|
|
+ // GetGdDate(params).then((res) => {});
|
|
|
+ } else {
|
|
|
+ GetYjjbntLnbhqk({ xzqhdm: this.region }).then(({ data }) => {
|
|
|
+ this.lnbndata = data;
|
|
|
+ this.setLnbh(data);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setLnbh(data) {
|
|
|
data.forEach((res) => {
|
|
|
- res.name = res.zzlx;
|
|
|
- res.value = res.xmsl;
|
|
|
- num += res.xmsl;
|
|
|
+ this.eData.xData.push(res.year);
|
|
|
+ this.eData.yData.push(res[this.uprops[this.nowunit]]);
|
|
|
});
|
|
|
this.setEchart(this.eData, 0);
|
|
|
},
|
|
|
-
|
|
|
- async Getxzxx() {
|
|
|
- let res = await QueryOne({
|
|
|
- jscType: `qytuzz_sdzl_xzxx_${this.tab}`,
|
|
|
- id: this.region,
|
|
|
- });
|
|
|
- this.xzdata = res.data;
|
|
|
- this.$emit("updateParent", "loading", false);
|
|
|
- },
|
|
|
- async GetCityList() {
|
|
|
- this.cityList = [];
|
|
|
- let flres = await QueryList({
|
|
|
- jscType: "t_gdbh_jctb_qxfl",
|
|
|
- id: this.region,
|
|
|
- val0: "2024-02-17 00:00:00",
|
|
|
- val1: "2024-12-31 23:59:59",
|
|
|
- });
|
|
|
- flres.data.forEach((fl) => {
|
|
|
- this.cityList.push({
|
|
|
- name: fl.xzqmc,
|
|
|
- number: fl.jcgs,
|
|
|
- area: fl.jcmj,
|
|
|
- unit: "km²",
|
|
|
+ GetBhqk() {
|
|
|
+ let params = {
|
|
|
+ sourceyear: this.nowyear,
|
|
|
+ targeyear: this.tab,
|
|
|
+ xzqhdm: this.region,
|
|
|
+ };
|
|
|
+ if (!this.$props.pageType) {
|
|
|
+ GetGdDate(params).then((res) => {});
|
|
|
+ } else {
|
|
|
+ GetYjjbntBhqk(params).then((res) => {
|
|
|
+ this.bhdata = res.data;
|
|
|
});
|
|
|
- });
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
async Getkjxx() {
|
|
@@ -321,14 +394,8 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
reset() {
|
|
|
- if (!window.viewer) return;
|
|
|
- viewer.entities.removeAll();
|
|
|
- viewer.dataSources.removeAll();
|
|
|
- // viewer.dataSources._dataSources.forEach((das) => {
|
|
|
- // if (das.name == "LandConsolidation") {viewer.dataSources.remove(das);}
|
|
|
- // });
|
|
|
+ this.setImager({ year: this.nowyear }, false);
|
|
|
},
|
|
|
- changeCharts(e) {},
|
|
|
setEchart(data, id) {
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs[`echartRef${id}`].setOptions(data);
|
|
@@ -380,6 +447,9 @@ export default {
|
|
|
flex: 1;
|
|
|
}
|
|
|
}
|
|
|
+ .item50 {
|
|
|
+ width: 48%;
|
|
|
+ }
|
|
|
.text {
|
|
|
display: inline-block;
|
|
|
// border: #00FFFF 1px solid;
|
|
@@ -399,7 +469,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.gdzlc {
|
|
|
- height: 70px;
|
|
|
+ height: 65px;
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
.item {
|
|
@@ -432,9 +502,13 @@ export default {
|
|
|
// height: calc(100% - 120px);
|
|
|
// overflow-y: auto;
|
|
|
// overflow-x: hidden;
|
|
|
+ .echartTitle {
|
|
|
+ height: 35px;
|
|
|
+ }
|
|
|
.block-title {
|
|
|
width: calc(100% - 250px) !important;
|
|
|
}
|
|
|
+
|
|
|
.titlesel {
|
|
|
width: 250px;
|
|
|
display: flex;
|
|
@@ -450,12 +524,13 @@ export default {
|
|
|
text-align: center;
|
|
|
border: 1px solid #3f93f5;
|
|
|
border-top-right-radius: 10px;
|
|
|
- margin: 10px 20%;
|
|
|
+ margin: 10px 20% 0px 20%;
|
|
|
color: #3f93f5;
|
|
|
}
|
|
|
|
|
|
.pie_echart {
|
|
|
// width: 400px;
|
|
|
+ margin-top: 10px;
|
|
|
width: 21vw;
|
|
|
height: 140px;
|
|
|
}
|