ソースを参照

Merge branch 'master' of http://192.168.60.6:3000/siwei_shuma/real3d-portalsite

lkk 10 ヶ月 前
コミット
ac3e50b194

+ 26 - 0
src/api/Idleland.js

@@ -67,3 +67,29 @@ export function idleLandList(data) {
 }
 
 
+// 统计
+export function overview(params) {
+    return request({
+        url: `/apply/tdtj/overview`,
+        method: 'get',
+        params
+    })
+}
+export function district(params) {
+    return request({
+        url: `/apply/tdtj/district`,
+        method: 'get',
+        params
+    })
+}
+export function reason(params) {
+    return request({
+        url: `/apply/tdtj/reason`,
+        method: 'get',
+        params
+    })
+}
+
+
+
+

+ 1 - 1
src/components/Combinations/LayerManage/LayerManageSplit.vue

@@ -386,7 +386,7 @@ export default {
 
           store.state.tempResourceTree = res.data;
         } else {
-          console.log(e);
+          console.log(res);
         }
       });
     },

+ 1 - 0
src/components/mapView/tablePage.vue

@@ -21,6 +21,7 @@
         :key="index"
         show-overflow-tooltip
         :width="item.width || null"
+        :fixed="item.fixed"
       >
         <template #default="scope">
           <slot

+ 17 - 16
src/views/Idleland/components/config.js

@@ -3,17 +3,17 @@ export const ysForm = [
     {
       label: '',
       prop: 'key',
-      span: 12,
+      span: 20,
       component: 'ElInput',
       componentProps: {
         placeholder: '项目名称/土地使用人'
       }
     },
-    {
-      label: '',
-      prop: 'region',
-      span: 8
-    },
+    // {
+    //   label: '',
+    //   prop: 'region',
+    //   span: 8
+    // },
     {
       prop: 'action',
       span: 4
@@ -25,21 +25,21 @@ export const xzForm = [
     {
       label: '',
       prop: 'key',
-      span: 8,
+      span: 10,
       component: 'ElInput',
       componentProps: {
         placeholder: '土地使用人/土地证号'
       }
     },
-    {
-      label: '',
-      prop: 'region',
-      span: 6
-    },
+    // {
+    //   label: '',
+    //   prop: 'region',
+    //   span: 6
+    // },
     {
       label: '',
       prop: 'type',
-      span: 6
+      span: 10
     },
     {
       prop: 'action',
@@ -60,10 +60,11 @@ export const TableHeader = [
   { label: "操作", prop: "PHONE", slot: "action" },
 ]
 export const TableHeader2 = [
-  { label: "土地使用权人", prop: "srf", },
+  { label: "项目名称", prop: "xmmc" },
+  { label: "土地使用权人", prop: "srf",  },
   { label: "面积(亩)", prop: "crmj", width: '80px', slot: "mj" },
-  { label: "土地证号", prop: "cqzh" },
-  { label: "操作", prop: "PHONE", slot: "action" },
+  // { label: "土地证号", prop: "cqzh" },
+  { label: "操作", prop: "PHONE", slot: "action", fixed: "right", width: '100px' },
 ]
 
 // 详情字段

+ 1 - 2
src/views/Idleland/components/details.vue

@@ -65,13 +65,12 @@ export default {
     //关闭详情
     closeInster() {
       this.isShallow = false;
-      viewer.entities.removeAll();
-      viewer.dataSources.removeAll();
     },
 
     handleView(val, type) {
       this.isShallow = true;
       this.type = type;
+      this.jbxxData = [];
       GetDetail(val.id).then((res) => {
         if (res.statuscode == 200) {
           // this.jbxxData = res.data;

+ 18 - 7
src/views/Idleland/components/list.vue

@@ -118,6 +118,8 @@ export default {
         pageNum: 1,
         pageSize: 10,
         isDisposal: false,
+        startTime: "",
+        endTime: "",
       },
       datalist: [{}],
       formConfig: ysForm,
@@ -134,8 +136,7 @@ export default {
   mounted() {
     this.formConfig = this.$props.type == 0 ? ysForm : xzForm;
     this.cloumn = this.$props.type == 0 ? TableHeader : TableHeader2;
-    this.pageObj.isConfirm = this.$props.type != 0;
-    this.pageObj.isDisposal = this.$props.type == 2;
+    this.reset();
   },
   methods: {
     searchFun(page = {}) {
@@ -170,9 +171,14 @@ export default {
         });
       }
     },
+    tableRowClassName({ row, rowIndex }) {
+      // if (rowIndex === this.scrollTop_index) {
+      //   return "warning-row";
+      // }
+      // return "";
+    },
     active_tableData(newVal) {
       newVal.forEach((res, index) => {
-        res.type = "图斑上图";
         if (res.geom || res.st_asewkt)
           loadGeoJSON(
             res.geom || res.st_asewkt,
@@ -182,7 +188,7 @@ export default {
               geoSources[res.id] = data;
               data.name = "Idleland";
               data.entities.values.forEach((entity) => {
-                entity.properties = res;
+                entity.properties = { type: "图斑上图", id: res.id };
               });
             }
           );
@@ -199,11 +205,14 @@ export default {
         (data) => {
           data.name = "Idleland";
           geoSources[id] = data;
+          data.entities.values.forEach((entity) => {
+            entity.properties = { type: "图斑上图", id: item.id };
+          });
         }
       );
     },
     removeGeoJSON() {
-      if (!viewer) return;
+      if (!window.viewer) return;
       viewer.entities.removeAll();
       viewer.dataSources.removeAll();
       // viewer.dataSources._dataSources.forEach((das) => {
@@ -211,15 +220,17 @@ export default {
       // });
     },
 
-    reset() {
+    reset(xzqh) {
       this.pageObj = {
         key: "",
-        xzqh: "",
+        xzqh,
         idleReason: "",
         isConfirm: this.$props.type != 0,
         pageNum: 1,
         pageSize: 10,
         isDisposal: this.$props.type == 2,
+        // startTime: store.state.cockpit_date[0],
+        // endTime: store.state.cockpit_date[1],
       };
     },
     detail(row) {

+ 82 - 49
src/views/Idleland/components/tjzl.vue

@@ -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>

+ 15 - 10
src/views/Idleland/components/xzgl.vue

@@ -15,6 +15,11 @@
 </template>
 
 <script>
+let map = {
+  distrust: 0,
+  notHandle: 1,
+  handled: 2,
+};
 import List from "./list.vue";
 export default {
   components: {
@@ -24,6 +29,7 @@ export default {
   data() {
     return {
       activeTabs: "distrust",
+      region: "",
     };
   },
   mounted() {
@@ -33,22 +39,21 @@ export default {
   },
   methods: {
     reset() {},
+    getType() {
+      return map[this.activeTabs];
+    },
+    regionChange(region) {
+      this.region = region;
+      this.$refs[this.activeTabs].reset(region);
+      this.$refs[this.activeTabs].searchFun();
+    },
   },
   watch: {
     activeTabs(newValue) {
-      this.$refs[newValue].reset();
+      this.$refs[newValue].reset(this.region);
       this.$refs[newValue].searchFun();
     },
   },
-  beforeDestroy() {
-    this.pageObj = {
-      kssj: "",
-      sj: [],
-      jssj: "",
-      xmmc: "",
-      page: 1,
-    };
-  },
 };
 </script>
 

+ 82 - 28
src/views/Idleland/index.vue

@@ -1,9 +1,29 @@
 <!--闲置土地-->
 <template>
-  <div class="ghzc complianceAnalysis">
+  <div class="ghzc Idleland">
     <div class="innerContainer leftPane" v-drag>
-      <h2 class="Pangetitle darg-div">
-        <span class="pange_text">闲置土地</span>
+      <h2 class="Pangetitle darg-div el-col">
+        <span class="pange_text">闲置土地 </span>
+        <div class="region">
+          <!-- clearable -->
+          <el-cascader
+            v-model="xzqh"
+            :show-all-levels="false"
+            :options="store.state.region_tree"
+            @change="regionChange"
+            placeholder="行政区"
+            size="mini"
+            :props="{
+              checkStrictly: true,
+              expandTrigger: 'hover',
+              emitPath: false,
+            }"
+          ></el-cascader>
+        </div>
+        <span class="clearBtn" @click="cockpit">
+          <i class="el-icon-thumb"></i>
+          图斑详情查询
+        </span>
       </h2>
       <el-tabs type="border-card" class="xz_box" v-model="activeTabs" stretch>
         <el-tab-pane label="统计总览" name="tjzl">
@@ -31,8 +51,9 @@ import Tjzl from "./components/tjzl.vue";
 import Xzgl from "./components/xzgl.vue";
 import Details from "./components/details.vue";
 // import TabelView from "./components/tabelView.vue";
+import * as pick_cockpit_vector from "@/components/Query/clickQuery/pick_cockpit_vector.js";
 export default {
-  name: "complianceAnalysis",
+  name: "Idleland",
   components: {
     Tjzl,
     Xzgl,
@@ -42,11 +63,21 @@ export default {
   data() {
     return {
       loading: false,
-      activeTabs: "xzgl",
+      activeTabs: "tjzl",
+      xzqh: "",
     };
   },
-  created() {},
+  computed: {
+    computed_vectorData() {
+      return store.state.vectorData;
+    },
+  },
+  created() {
+    store.setCockpitDate(sessionStorage.getItem("cockpitDate").split(","));
+  },
   mounted() {
+    this.xzqh = store.state.cockpit_region.id;
+    this.regionChange();
     this.bus.$on("handleView", this.handleView);
   },
   methods: {
@@ -56,44 +87,67 @@ export default {
     handleView(row, type) {
       this.$refs.detailModal.handleView(row, type);
     },
+    regionChange() {
+      this.$refs.tjzl.regionChange(this.xzqh);
+      this.$refs.xzgl.regionChange(this.xzqh);
+    },
+    cockpit() {
+      console.log("----");
+      //驾驶舱矢量数据点选查询
+      pick_cockpit_vector.init_handler();
+    },
   },
   watch: {
     activeTabs(newValue) {
-      // if (newValue != "tjzl") this.$refs.tjzl.reset();
       if (newValue != "xzgl") this.$refs.xzgl.reset();
-
       if (newValue == "tjzl") this.$refs.tjzl.getData();
-      if (newValue == "xzgl") {
-        this.$refs.xzgl.reset();
-        this.$refs.xzgl.changeForm();
-      }
+      // if (newValue == "xzgl") this.$refs.xzgl.changeForm();
+    },
+    computed_vectorData(newVal) {
+      console.log(newVal, "newVal");
+      newVal.forEach((res) => {
+        if (res.name == "id") {
+          this.handleView({ id: res.value }, this.$refs.xzgl.getType());
+          // const TableRows = this.$refs.singleTable.bodyWrapper.querySelectorAll(
+          //   ".el-table__body tbody .el-table__row"
+          // );
+          // let scrollTop = 0;
+          // for (let i = 0; i < TableRows.length; i++) {
+          //   if (i === res.value) {
+          //     break;
+          //   }
+          //   scrollTop += TableRows[i].offsetHeight;
+          // }
+          // this.$refs.singleTable.bodyWrapper.scrollTop = scrollTop;
+          // this.scrollTop_index = res.value;
+        }
+      });
     },
   },
 };
 </script>
 
 <style lang="scss" scoped>
-.complianceAnalysis {
+.Idleland {
   .xz_box {
     padding-bottom: 0;
-    .title {
-      padding: 8px;
-      margin-bottom: 10px;
-      span {
-        color: #605e5e;
-        padding-left: 8px;
-        border-left: 3px solid #3a8ee6;
-      }
-      button {
-        padding: 0;
-        float: right;
-        margin-right: 5px;
-        min-height: unset;
-      }
-    }
+  }
+  .clearBtn {
+    cursor: pointer;
+    z-index: 200;
   }
 }
 </style>
 <style lang="scss">
+.Idleland {
+  .region {
+    width: 100px !important;
+    margin: 0 20px;
+  }
+  .el-cascader--mini {
+    top: 0px;
+    background: transparent;
+  }
+}
 @import "../complianceAnalysis/ghzc.scss";
 </style>

+ 1 - 0
src/views/cockpit/datePicker.vue

@@ -77,6 +77,7 @@ export default {
     dateChange() {
       this.$emit("dateChange", this.dateValue);
       store.setCockpitDate(this.dateValue);
+      sessionStorage.setItem("cockpitDate", this.dateValue);
     },
   },
 };

+ 55 - 32
src/views/cockpit/ydjc.vue

@@ -65,10 +65,9 @@
             <ThreeStackedBarAndLine class="qxjc_echart"></ThreeStackedBarAndLine>
         </div> -->
       <!-- 农专用地 -->
-
       <ThreeStackedBarAndLine
         :ref="`${value}_echart`"
-        v-show="xzqh_flag"
+        v-show="xzqh_flag&&value != 'xztd'"
         class="qxjc_echart"
       ></ThreeStackedBarAndLine>
       <!-- <XZQHPieChart v-show="!xzqh_flag"></XZQHPieChart> -->
@@ -103,27 +102,27 @@
       <div class="stacontent_ydjc">
         <div class="item cursor" @click="toIdleland">
           <span class="dlabel"> 闲置土地:</span>
-          <span class="dvalue">{{ title.tb_num || 0 }}宗</span>
+          <span class="dvalue">{{ sdata[value].count || 0 }}宗</span>
           <i style="pointer-events: all" :class="{ 'el-icon-view': true }"></i>
         </div>
         <div class="item">
           <span class="dlabel"> 闲置面积:</span>
-          <span class="dvalue">{{ title.tb_mj.toFixed(2) || 0 }}亩</span>
+          <span class="dvalue">{{ sdata[value].mj|| 0 }}亩</span>
         </div>
         <div class="item">
           <span class="dlabel">已处置面积:</span>
-          <span class="dvalue">{{ title.czmj }}亩</span>
+          <span class="dvalue">{{ sdata[value].czmj }}亩</span>
         </div>
         <div class="item">
           <span class="dlabel"> 处置率:</span>
-          <span class="dvalue">{{ title.czl }}</span>
+          <span class="dvalue">{{ sdata[value].czl }}%</span>
         </div>
       </div>
       <pie3d
         id="ydjc_echart_xztd"
         unit="亩"
         :legendFlag="true"
-        ref="xztd_echart"
+        ref="tdxz_echart"
       ></pie3d>
     </div>
   </div>
@@ -132,6 +131,7 @@
 <script>
 //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 import { QueryOne, QueryList } from "../../api/cockpitNew";
+import { overview, reason } from "@/api/Idleland.js";
 import ThreeStackedBarAndLine from "./common/ThreeStackedBarAndLine.vue";
 import XZQHPieChart from "./common/XZQHPieChart.vue";
 import pie3d from "../../components/echartsTemplate/3dPie.vue";
@@ -152,9 +152,8 @@ export default {
       ],
       value: "lsyd",
       xzqh_flag: true,
-      sdata: { lsyd: {}, nzyd: {} },
+      sdata: { lsyd: {}, nzyd: {} ,xztd:{}},
       list: [],
-      title: { tb_mj: 0 },
     };
   },
   //监听属性 类似于data概念
@@ -199,7 +198,6 @@ export default {
           else number_data.push(0);
         });
       }
-
       if (this.value == "nzyd") {
         let obj = {
           legend_data: ["农转用面积", "建设项目数"],
@@ -219,19 +217,6 @@ export default {
         this.$nextTick(() => {
           this.$refs.lsyd_echart.setOptions(obj);
         });
-      } else {
-        this.$nextTick(() => {
-          //data.data[0].ce_crmj
-          this.$refs.xztd.setOptions(
-            [
-              { name: "政府原因", value: 66 },
-              { name: "企业原因", value: 66 },
-              { name: "非政府原因和不可抗力", value: 20 },
-              { name: "其他", value: 100 },
-            ],
-            0.2
-          );
-        });
       }
     },
     GetQueryOne(params) {
@@ -288,20 +273,58 @@ export default {
       });
     },
     changeChartsLeft(e) {
-      this.GetQueryOne();
-      if (this.xzqh_flag) this.getqxfl();
-      else this.getInfo();
+      
+      if (this.value == "xztd") {
+        this.getxztd();
+      } else {
+        this.GetQueryOne();
+        if (this.xzqh_flag) this.getqxfl();
+        else this.getInfo();
+      }
     },
     switch_xzqh(value) {
-      this.GetQueryOne(value);
-      if (value.id == "4602") {
-        this.xzqh_flag = true;
-        this.getqxfl(value);
+      if (this.value == "xztd") {
+        this.getxztd(value);
       } else {
-        this.xzqh_flag = false;
-        this.getInfo(value);
+        this.GetQueryOne(value);
+        if (value.id == "4602") {
+          this.xzqh_flag = true;
+          this.getqxfl(value);
+        } else {
+          this.xzqh_flag = false;
+          this.getInfo(value);
+        }
       }
     },
+    getxztd(params) {
+      let param = {
+        districtCode: params ? params.id : store.state.cockpit_region.id,
+        startTime: params ? params.beginTime : store.state.cockpit_date[0],
+        endTime: params ? params.endTime : store.state.cockpit_date[1],
+      };
+      this.GetOverview(param);
+      this.GetSumList(param);
+    },
+    GetOverview(params) {
+      overview(params).then((res) => {
+        // this.sdata[this.value] = { sh_mj: 0, sj_number: 0 };
+        this.sdata[this.value] = {
+          count: res.data.confirm.count,
+          mj: res.data.confirm.area.toFixed(2),
+          czmj: res.data.disposal.area.toFixed(2),
+          czl: (res.data.disposalRate * 100).toFixed(2),
+        };
+      });
+    },
+    GetSumList(params) {
+      reason(params).then((res) => {
+        res.data.map((a) => {
+          a.name = a.reason;
+          a.value = a.area.toFixed(2);
+        });
+        this.$refs.tdxz_echart.setOptions(res.data, 0.2);
+      });
+    },
   },
   mounted() {},
   beforeUpdate() {}, //生命周期 - 更新之前