|
@@ -3,13 +3,13 @@
|
|
|
<div class="content">
|
|
|
<div class="item" v-for="(sd, index) in sdlist" :key="index">
|
|
|
<div class="icon">
|
|
|
- <div class="iicon" :class="sd.value"></div>
|
|
|
+ <div class="iicon" :class="sd.value">{{ sd.name }}</div>
|
|
|
</div>
|
|
|
<div class="text">
|
|
|
<p>土地面积(亩)</p>
|
|
|
- <span>{{ sdata[sd.prop].mj || 0 }} </span>
|
|
|
+ <span>{{ (sdata[sd.prop].area || 0).toFixed(2) }} </span>
|
|
|
<p>宗地数(宗)</p>
|
|
|
- <span>{{ sdata[sd.prop].zd || 0 }} </span>
|
|
|
+ <span>{{ sdata[sd.prop].count || 0 }} </span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -18,15 +18,18 @@
|
|
|
<ratio class="ratio_echart" ref="echartRef3"></ratio>
|
|
|
<ratio class="ratio_echart" ref="echartRef4"></ratio>
|
|
|
</div>
|
|
|
- <div class="echars">
|
|
|
+ <div class="echars" v-show="region == '4602'">
|
|
|
<div class="block-title">各区县闲置情况</div>
|
|
|
<barAndLine class="echart" ref="echartRef1"></barAndLine>
|
|
|
</div>
|
|
|
<div class="echars">
|
|
|
<div class="block-title">闲置原因</div>
|
|
|
- <pie unit="亿元" class="pie_echart" ref="echartRef2"></pie>
|
|
|
+ <pie unit="亩" class="pie_echart" ref="echartRef2"></pie>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="tip">
|
|
|
+ 提示:本页面土地闲置率和闲置处置率只统计2022年-2024年数据
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -34,15 +37,16 @@
|
|
|
import pie from "@/components/echartsTemplate/pie.vue";
|
|
|
import ratio from "@/components/echartsTemplate/ratio.vue";
|
|
|
import barAndLine from "@/views/cockpit/common/ThreeStackedBarAndLine.vue";
|
|
|
-import { QueryOne, QueryList } from "@/api/cockpitNew";
|
|
|
+import { overview, district, reason } from "@/api/Idleland.js";
|
|
|
export default {
|
|
|
+ props: {},
|
|
|
data() {
|
|
|
return {
|
|
|
- sdata: { ys: {}, rd: {}, ycz: {} },
|
|
|
+ sdata: { suspected: {}, confirm: {}, disposal: {} },
|
|
|
sdlist: [
|
|
|
- { name: "疑似闲置", prop: "ys" },
|
|
|
- { name: "认定闲置", prop: "rd" },
|
|
|
- { name: "已处置闲置", prop: "ycz" },
|
|
|
+ { name: "疑", prop: "suspected" },
|
|
|
+ { name: "闲", prop: "confirm" },
|
|
|
+ { name: "处", prop: "disposal" },
|
|
|
],
|
|
|
jdData: {
|
|
|
legend_data: ["认定闲置土地", "已处置闲置土地", "闲置率", "处置率"],
|
|
@@ -54,6 +58,8 @@ export default {
|
|
|
{ type: "line" },
|
|
|
],
|
|
|
yAxis: [{ name: "土地面积(亩)" }, { name: "比率(%)" }],
|
|
|
+ params: {},
|
|
|
+ region: "",
|
|
|
},
|
|
|
};
|
|
|
},
|
|
@@ -69,48 +75,55 @@ export default {
|
|
|
changeData(name, updata) {
|
|
|
this[name] = updata;
|
|
|
},
|
|
|
+ regionChange(region) {
|
|
|
+ this.region = region;
|
|
|
+ this.getData();
|
|
|
+ },
|
|
|
getData() {
|
|
|
this.$emit("updateParent", "loading", true);
|
|
|
- // this.GetQueryOne();
|
|
|
- this.GetQueryList();
|
|
|
+ this.params = {
|
|
|
+ districtCode: this.region,
|
|
|
+ // startTime: store.state.cockpit_date[0],
|
|
|
+ // endTime: store.state.cockpit_date[1],
|
|
|
+ };
|
|
|
+ this.GetOverview();
|
|
|
+ if (this.region == "4602") this.GetDistrict();
|
|
|
this.GetSumList();
|
|
|
- this.setEchart({ name: "土地闲置率", ratio: 56 }, 3);
|
|
|
- this.setEchart({ name: "闲置处置率", ratio: 56 }, 4);
|
|
|
},
|
|
|
- GetQueryOne() {
|
|
|
- let params = {
|
|
|
- jscType: `jsc_stxf_ztgh_ssxf`,
|
|
|
- id: 4602,
|
|
|
- };
|
|
|
- QueryOne(params).then((res) => {
|
|
|
+ GetOverview() {
|
|
|
+ overview(this.params).then((res) => {
|
|
|
this.sdata = res.data || {};
|
|
|
+ let xz = (res.data.idleRate * 100).toFixed(2);
|
|
|
+ let cz = (res.data.disposalRate * 100).toFixed(2);
|
|
|
+ this.setEchart({ name: "土地闲置率", ratio: xz }, 3);
|
|
|
+ this.setEchart({ name: "闲置处置率", ratio: cz }, 4);
|
|
|
+ this.$emit("updateParent", "loading", false);
|
|
|
});
|
|
|
},
|
|
|
- GetQueryList() {
|
|
|
+ GetDistrict() {
|
|
|
this.jdData.x_data = [];
|
|
|
this.jdData.result = [[], [], [], []];
|
|
|
- let params = { jscType: `jsc_stxf_ssxf_jdfq`, id: 4602 };
|
|
|
- QueryList(params).then((res) => {
|
|
|
+ district(this.params).then((res) => {
|
|
|
res.data.forEach((jdData) => {
|
|
|
- let jd = `${(jdData.dj - 1) * 20}-${jdData.dj * 20}`;
|
|
|
- this.jdData.x_data.push(jd);
|
|
|
- this.jdData.result[0].push(jdData.dj_number);
|
|
|
- this.jdData.result[1].push(jdData.tzje);
|
|
|
- this.jdData.result[2].push(20);
|
|
|
- this.jdData.result[3].push(30);
|
|
|
- this.$emit("updateParent", "loading", false);
|
|
|
+ this.jdData.x_data.push(jdData.districtName);
|
|
|
+ this.jdData.result[0].push(jdData.confirmAre.toFixed(2));
|
|
|
+ this.jdData.result[1].push(jdData.disposalArea.toFixed(2));
|
|
|
+ this.jdData.result[2].push((jdData.idleRate * 100).toFixed(2));
|
|
|
+ this.jdData.result[3].push((jdData.disposalRate * 100).toFixed(2));
|
|
|
});
|
|
|
this.setEchart(this.jdData, 1);
|
|
|
+ this.$emit("updateParent", "loading", false);
|
|
|
});
|
|
|
},
|
|
|
GetSumList() {
|
|
|
- let data = [
|
|
|
- { name: "政府原因", value: "13.45" },
|
|
|
- { name: "企业原因", value: "5" },
|
|
|
- { name: "非政府原因和不可抗力", value: "18.67" },
|
|
|
- { name: "其他", value: "18.67" },
|
|
|
- ];
|
|
|
- this.setEchart({ data, type: '"horizontal"' }, 2);
|
|
|
+ reason(this.params).then((res) => {
|
|
|
+ res.data.map((a) => {
|
|
|
+ a.name = a.reason;
|
|
|
+ a.value = a.area.toFixed(2);
|
|
|
+ });
|
|
|
+ this.setEchart({ data: res.data, type: '"horizontal"' }, 2);
|
|
|
+ this.$emit("updateParent", "loading", false);
|
|
|
+ });
|
|
|
},
|
|
|
setEchart(data, id) {
|
|
|
this.$nextTick(() => {
|
|
@@ -118,6 +131,11 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ region(newValue) {
|
|
|
+ console.log(newValue, "---");
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
</script>
|
|
|
|
|
@@ -135,26 +153,38 @@ export default {
|
|
|
.icon {
|
|
|
width: 100%;
|
|
|
height: 50px;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
+ // display: flex;
|
|
|
+ // justify-content: space-between;
|
|
|
}
|
|
|
.iicon {
|
|
|
background: no-repeat 50%;
|
|
|
- background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
+ // background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
width: 45px;
|
|
|
height: 45px;
|
|
|
- flex: 1;
|
|
|
- }
|
|
|
- .num {
|
|
|
- background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
+ margin: 0px 40px;
|
|
|
+ // flex: 1;
|
|
|
+
|
|
|
+ text-align: center;
|
|
|
+ line-height: 45px;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #68f4fb;
|
|
|
+ border: 1px solid #4682b4;
|
|
|
+ // rgba(0, 93, 207, 0.8)
|
|
|
+ background: linear-gradient(
|
|
|
+ to bottom,
|
|
|
+ transparent,
|
|
|
+ rgba(70, 130, 180, 0.8)
|
|
|
+ );
|
|
|
+ border-radius: 50%;
|
|
|
}
|
|
|
- .mj {
|
|
|
- background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
+ .confirm {
|
|
|
+ // background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
+ color: #62aded;
|
|
|
}
|
|
|
- .ztz {
|
|
|
+ .disposal {
|
|
|
background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
+ color: #dfe15a;
|
|
|
}
|
|
|
-
|
|
|
.text {
|
|
|
display: inline-block;
|
|
|
// border: #00FFFF 1px solid;
|
|
@@ -173,7 +203,7 @@ export default {
|
|
|
}
|
|
|
.echartlist {
|
|
|
width: 100%;
|
|
|
- height: calc(100% - 150px);
|
|
|
+ height: calc(100% - 165px);
|
|
|
overflow-y: auto;
|
|
|
overflow-x: hidden;
|
|
|
.ratio_echart {
|
|
@@ -188,5 +218,8 @@ export default {
|
|
|
height: 180px;
|
|
|
}
|
|
|
}
|
|
|
+ .tip {
|
|
|
+ color: #9b9b9b;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|