|
@@ -0,0 +1,186 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="thzl">
|
|
|
|
+ <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>
|
|
|
|
+ <div class="text">
|
|
|
|
+ <p>土地面积(亩)</p>
|
|
|
|
+ <span>{{ sdata[sd.prop].mj || 0 }} </span>
|
|
|
|
+ <p>宗地数(宗)</p>
|
|
|
|
+ <span>{{ sdata[sd.prop].zd || 0 }} </span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="echartlist">
|
|
|
|
+ <div class="echars">
|
|
|
|
+ <ratio class="ratio_echart" ref="echartRef3"></ratio>
|
|
|
|
+ <ratio class="ratio_echart" ref="echartRef4"></ratio>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="echars">
|
|
|
|
+ <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>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+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";
|
|
|
|
+export default {
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ sdata: { ys: {}, rd: {}, ycz: {} },
|
|
|
|
+ sdlist: [
|
|
|
|
+ { name: "疑似闲置", prop: "ys" },
|
|
|
|
+ { name: "认定闲置", prop: "rd" },
|
|
|
|
+ { name: "已处置闲置", prop: "ycz" },
|
|
|
|
+ ],
|
|
|
|
+ jdData: {
|
|
|
|
+ legend_data: ["闲置率", "认定闲置土地", "已处置闲置土地"],
|
|
|
|
+ x_data: [],
|
|
|
|
+ line_data: [],
|
|
|
|
+ },
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ components: {
|
|
|
|
+ pie,
|
|
|
|
+ ratio,
|
|
|
|
+ barAndLine,
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+ this.getData();
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ changeData(name, updata) {
|
|
|
|
+ this[name] = updata;
|
|
|
|
+ },
|
|
|
|
+ getData() {
|
|
|
|
+ this.$emit("updateParent", "loading", true);
|
|
|
|
+ // this.GetQueryOne();
|
|
|
|
+ this.GetQueryList();
|
|
|
|
+ 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) => {
|
|
|
|
+ this.sdata = res.data || {};
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ GetQueryList() {
|
|
|
|
+ this.jdData.x_data = [];
|
|
|
|
+ this.jdData.line_data = [];
|
|
|
|
+ this.jdData.result = [[], []];
|
|
|
|
+ let params = { jscType: `jsc_stxf_ssxf_jdfq`, id: 4602 };
|
|
|
|
+ QueryList(params).then((res) => {
|
|
|
|
+ res.data.forEach((jdData) => {
|
|
|
|
+ let jd = `${(jdData.dj - 1) * 20}-${jdData.dj * 20}`;
|
|
|
|
+ this.jdData.x_data.push(jd);
|
|
|
|
+ this.jdData.line_data.push(jdData.zlmj);
|
|
|
|
+ this.jdData.result[0].push(jdData.dj_number);
|
|
|
|
+ this.jdData.result[1].push(jdData.tzje);
|
|
|
|
+ this.$emit("updateParent", "loading", false);
|
|
|
|
+ });
|
|
|
|
+ this.setEchart(this.jdData, 1);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ GetSumList() {
|
|
|
|
+ let data = [
|
|
|
|
+ { name: "政府原因", value: "13.45" },
|
|
|
|
+ { name: "企业原因", value: "5" },
|
|
|
|
+ { name: "非政府原因和不可抗力", value: "18.67" },
|
|
|
|
+ { name: "其他", value: "18.67" },
|
|
|
|
+ ];
|
|
|
|
+ this.setEchart({ data, type: '"horizontal"' }, 2);
|
|
|
|
+ },
|
|
|
|
+ setEchart(data, id) {
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs[`echartRef${id}`].setOptions(data);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+.thzl {
|
|
|
|
+ height: 100%;
|
|
|
|
+ .content {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 140px;
|
|
|
|
+ .item {
|
|
|
|
+ width: 32%;
|
|
|
|
+ height: 100px;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ position: relative;
|
|
|
|
+ .icon {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 50px;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ }
|
|
|
|
+ .iicon {
|
|
|
|
+ background: no-repeat 50%;
|
|
|
|
+ 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");
|
|
|
|
+ }
|
|
|
|
+ .mj {
|
|
|
|
+ background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
|
+ }
|
|
|
|
+ .ztz {
|
|
|
|
+ background-image: url("/static/images/overview/icon_yrkkg.png");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .text {
|
|
|
|
+ display: inline-block;
|
|
|
|
+ // border: #00FFFF 1px solid;
|
|
|
|
+ width: 100%;
|
|
|
|
+ margin-bottom: 4px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ margin-left: 0.3rem;
|
|
|
|
+ span {
|
|
|
|
+ font-family: "Arial Negreta", "Arial Normal", "Arial";
|
|
|
|
+ font-weight: 700;
|
|
|
|
+ font-style: normal;
|
|
|
|
+ color: #68f4fb;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .echartlist {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: calc(100% - 150px);
|
|
|
|
+ overflow-y: auto;
|
|
|
|
+ overflow-x: hidden;
|
|
|
|
+ .ratio_echart {
|
|
|
|
+ width: 180px;
|
|
|
|
+ height: 90px;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ }
|
|
|
|
+ .echart {
|
|
|
|
+ height: 200px !important;
|
|
|
|
+ }
|
|
|
|
+ .pie_echart {
|
|
|
|
+ height: 180px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|