Prechádzať zdrojové kódy

耕地保护分析结果

lkk 8 mesiacov pred
rodič
commit
2d1cfaaed0

+ 22 - 2
src/api/ghss/gdbh.js

@@ -19,7 +19,7 @@ export function AddGdbh(data) {
     return request({
         url: '/apply/gdbh/AddGdbh',
         method: 'post',
-        data:data
+        data: data
     })
 }
 //历史记录查询
@@ -30,4 +30,24 @@ export function SelectGdbhList(params) {
         params
     })
 }
-
+export function QueryGdbhJg(params) {
+    return request({
+        url: '/apply/gdbh/QueryGdbhJg',
+        method: 'get',
+        params
+    })
+}
+// 删除报建模型
+export function DeleteGdbh(bsm) {
+    return request({
+      url: "/apply/gdbh/DeleteGdbh/" + bsm,
+      method: "delete",
+    });
+  }
+  export function getYZ(params) {
+    return request({
+        url: '/apply/gdbh/QueryGdbhJg/yz',
+        method: 'get',
+        params
+    })
+}

+ 9 - 3
src/views/complianceAnalysis/components/lsjl.vue

@@ -71,7 +71,7 @@
             <span
               class="button"
               @click.stop="del(item)"
-              v-if="item.rwzt == 2 || item.rwzt == 3 || item.rwzt == 99"
+              v-if="item.rwzt == 2 || item.rwzt == 3 || item.rwzt == 99 || type == 'gdbh'"
               >删除</span
             >
           </div>
@@ -87,7 +87,7 @@ import { GetPage, Delect } from "@/api/ghss/hgxfx.js";
 import { Message, MessageBox } from "element-ui";
 import { rest } from "lodash";
 import { GetXzResList, DelXzRes } from "../../../api/ghss/ghxz.js";
-import { SelectGdbhList } from "../../../api/ghss/gdbh.js";
+import { SelectGdbhList,DeleteGdbh } from "../../../api/ghss/gdbh.js";
 let dataSources;
 export default {
   props: {
@@ -159,7 +159,13 @@ export default {
               }
             });
           } else if (this.$props.type == "gdbh") {
-            console.log("耕地保护删除");
+            console.log("耕地保护删除",item.bsm);
+            DeleteGdbh(item.bsm).then((res) => {
+              if (res.success) {
+                Message.success("删除成功!");
+                this.changeForm();
+              }
+            });
           }
         })
         .catch(() => {});

+ 135 - 127
src/views/farmlandProtection/components/fxjg.vue

@@ -1,129 +1,85 @@
 <template>
-  <div class="fxjg">
-    <div class="downloadDiv">
-      <div>
-        <span class="xmmc">
-          项目名称:
-          <span class="text">{{ fxjgObj.xmmc }}</span>
-        </span>
-        <span class="export" @click="download">导出报告</span>
-      </div>
-    </div>
-    <div class="divrow">
-      <div class="divCol">
-        <div class="divImg">
-          <img :src="imgs.zd1" style="height: 2.5rem; width: 2.5rem" />
-        </div>
-        <div class="divText">
-          <span style="color: #fff">图斑数(个)</span>
-          <span color="#2d8cf0">{{ 203 }}</span>
-        </div>
-      </div>
-      <div class="divCol">
-        <div class="divImg">
-          <img :src="imgs.zd1" style="height: 2.5rem; width: 2.5rem" />
-        </div>
-        <div class="divText">
-          <span style="color: #fff">图斑面积(㎡)</span>
-          <span color="#2d8cf0">{{ 20314.52 }}平方米</span>
+  <div >
+    <div class="fxjg">
+      <div class="downloadDiv">
+        <div>
+          <span class="xmmc">
+            项目名称:
+            <span class="text">{{ fxjgObj.xmmc }}</span>
+          </span>
+          <span class="export" @click="download">导出报告</span>
         </div>
       </div>
-    </div>
-    <div class="site-title">
-      <div class="siteCon">
-        <div class="site_Icon"></div>
-        <span>现状情况</span>
-      </div>
-      <el-button size="mini" @click="zdyModel">图表切换</el-button>
-    </div>
-    <div>
-      <pie
-        class="echart"
-        unit="平方千米"
-        @echartClick="(name) => echartClick(name, item.value)"
-        :ref="`echartRef`"
-      ></pie>
-    </div>
-
-    <div class="site-title">
-      <div class="siteCon">
-        <div class="site_Icon"></div>
-        <span>套合结果</span>
-      </div>
-    </div>
-    <div class="Integration">
-      <!-- <div></div> -->
-      <div class="Integration_list">
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压耕地图斑数</span>
-            <span color="#2d8cf0">{{ 203 }}个</span>
+      <div class="divrow">
+        <div class="divCol">
+          <div class="divImg">
+            <img :src="imgs.zd1" style="height: 2.5rem; width: 2.5rem" />
           </div>
-        </div>
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压耕地面积(㎡)</span>
-            <span color="#2d8cf0">{{ 20314.52 }}</span>
+          <div class="divText">
+            <span style="color: #fff">图斑数(个)</span>
+            <!-- <span color="#2d8cf0" v-if="xmxx">{{ xmxx.sumNumber }}</span> -->
+            <span color="#2d8cf0" v-if="resultData && resultData.xmxx"
+              >{{ resultData.xmxx.sumNumber }}个</span
+            >
           </div>
         </div>
-      </div>
-      <div class="Integration_list">
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压永久基本农田图斑数</span>
-            <span color="#2d8cf0">{{ 203 }}个</span>
+        <div class="divCol">
+          <div class="divImg">
+            <img :src="imgs.zd1" style="height: 2.5rem; width: 2.5rem" />
           </div>
-        </div>
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压永久基本农田面积(㎡)</span>
-            <span color="#2d8cf0">{{ 20314.52 }}</span>
+          <div class="divText">
+            <span style="color: #fff">图斑面积(㎡)</span>
+            <span color="#2d8cf0" v-if="resultData && resultData.xmxx"
+              >{{ resultData.xmxx.sumMj }}平方米</span
+            >
           </div>
         </div>
       </div>
-      <div class="Integration_list">
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压耕地图斑数</span>
-            <span color="#2d8cf0">{{ 203 }}个</span>
-          </div>
-        </div>
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压耕地面积(㎡)</span>
-            <span color="#2d8cf0">{{ 20314.52 }}</span>
-          </div>
-        </div>
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压耕地面积(㎡)</span>
-            <span color="#2d8cf0">{{ 20314.52 }}</span>
-          </div>
+      <div class="site-title">
+        <div class="siteCon">
+          <div class="site_Icon"></div>
+          <span>现状情况</span>
         </div>
+        <el-button size="mini" @click="zdyModel">图表切换</el-button>
       </div>
-      <div class="Integration_list">
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压生态保护红线图斑数</span>
-            <span color="#2d8cf0">{{ 203 }}个</span>
-          </div>
-        </div>
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压公益林面积(㎡)</span>
-            <span color="#2d8cf0">{{ 20314.52 }}</span>
-          </div>
-        </div>
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压自然保护地图斑数</span>
-            <span color="#2d8cf0">{{ 20314.52 }}个</span>
-          </div>
+      <div>
+        <pie
+          class="echart"
+          unit="平方米"
+          @echartClick="(name) => echartClick(name, item.value)"
+          :ref="`echartRef`"
+        ></pie>
+      </div>
+
+      <div class="site-title">
+        <div class="siteCon">
+          <div class="site_Icon"></div>
+          <span>套合结果</span>
         </div>
-        <div class="listCol">
-          <div class="listText">
-            <span style="color: #fff">占压自然保护地面积(㎡)</span>
-            <span color="#2d8cf0">{{ 20314.52 }}</span>
+      </div>
+      <div class="Integration">
+        <div
+          class="Integration_list"
+          v-for="(item, i) in resultData.yzjg"
+          :key="i"
+        >
+          <div v-for="(item2, c) in item.mx_data" :key="c" class="list_Cont">
+            <div class="list_item">
+              <div class="listText">
+                <span style="color: #fff">{{ item2.bsmmc }}图斑数</span>
+                <span
+                  style="color: #2d8cf0; font-weight: bold; cursor: pointer"
+                  @click="resultDeatils(item2,item.mx_bsm)"
+                  >{{ item2.sumcount }}个</span
+                >
+              </div>
+            </div>
+            <div class="list_item">
+              <div class="listText">
+                <span style="color: #fff">{{ item2.bsmmc }}面积(㎡)</span>
+                <span color="#80FFFF">{{ item2.sumvalue }}</span>
+              </div>
+            </div>
           </div>
         </div>
       </div>
@@ -133,31 +89,56 @@
 
 <script>
 import pie from "@/components/echartsTemplate/pieNew.vue";
+import { QueryGdbhJg } from "../../../api/ghss/gdbh.js";
 export default {
+  components: { pie },
   props: {
     fxjgObj: {
       type: Object,
     },
   },
 
-  components: { pie },
   data() {
     return {
       imgs: {
         loc: require("@/assets/images/loc.png"),
         zd1: require("@/assets/homeimg/1.png"),
       },
+      resultData: [],
     };
   },
+
   methods: {
-    GetSumList() {
-      let data = [
-        { name: "中央资金", value: "13.45" },
-        { name: "省级资金", value: "5" },
-        { name: "市级资金", value: "18.67" },
-      ];
-      // this.setEchart({ data, type: '"horizontal"', total: 37.12 }, 2);
-      this.$refs[`echartRef`].setOptions({ data, type: '"horizontal"' }, 2);
+    download() {},
+    resultDeatils(val,mxbsm) {
+      let obj = {
+        bsm:this.fxjgObj.bsm,
+        mxbsm:mxbsm,
+        yzbsm:val.bsm
+      }
+      console.log(obj,":objobjobj")
+      this.$emit("updateParent", "interObj", obj);
+
+    },
+    initData() {
+      QueryGdbhJg({ bsm: this.fxjgObj.bsm }).then((res) => {
+        let data = [];
+        if (res.statuscode == 200) {
+          if (res.data.sandiao.mx_data.length) {
+            res.data.sandiao.mx_data.forEach((el) => {
+              data.push({
+                name: el.groupvalue,
+                value: el.sumvalue,
+                geom: el.geom,
+              });
+            });
+          }
+          this.$refs.echartRef.setOptions({ data, type: "horizontal" }, 1);
+          this.resultData = res.data;
+        } else {
+          this.$message.error(res.message);
+        }
+      });
     },
     echartClick(name, { iseyes }) {
       console.log(name, ":name");
@@ -175,9 +156,7 @@ export default {
       // })
     },
   },
-  mounted() {
-    this.GetSumList();
-  },
+  mounted() {},
 };
 </script>
 
@@ -188,6 +167,7 @@ export default {
   overflow-x: hidden;
   padding-right: 10px;
   line-height: 40px;
+
   .echart {
     // width: 19rem;
     // height: 350px;
@@ -264,25 +244,27 @@ export default {
     max-height: 32vh;
     overflow: hidden;
     overflow-y: auto;
+
     .Integration_list {
-      // height: 50px;
       background-color: #0f7bc875;
       display: flex;
       justify-content: space-between;
-      // margin-bottom: 8px;
       margin-top: 8px;
       flex-wrap: wrap;
       padding: 10px;
+
       .listCol {
         width: 49%;
         display: flex;
         align-items: center;
         white-space: nowrap;
         margin-bottom: 5px;
+
         .listText {
           width: 100%;
           display: flex;
           flex-direction: column;
+
           span {
             height: 20px;
             height: 20px;
@@ -290,7 +272,33 @@ export default {
           }
         }
       }
+      .list_Cont {
+        width: 100%;
+        display: flex;
+        align-items: center;
+        white-space: nowrap;
+        margin-bottom: 5px;
+        .list_item {
+          width: 50%;
+          .listText {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+
+            span {
+              height: 20px;
+              line-height: 20px;
+            }
+          }
+        }
+      }
     }
   }
 }
+
+.sm-panel {
+    width: 400px;
+    height: 700px;
+    z-index: 999999;
+  }
 </style>

+ 6 - 3
src/views/farmlandProtection/components/fzjcyp.vue

@@ -25,7 +25,7 @@
         <el-button size="mini" @click="zdyModel">自定义模型</el-button>
       </div>
       <div class="treeDiv">
-        <el-table :data="anaModels" style="width: 100%" :show-header="false">
+        <el-table :data="anaModels" style="width: 100%" :show-header="false" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="33"> </el-table-column>
           <el-table-column prop="bsmmc" show-overflow-tooltip>
           </el-table-column>
@@ -81,6 +81,7 @@ export default {
       ],
       templateYZ: [], //用地性质模版因子
       editData:{},//编辑的对象
+      multipleSelection: []
     };
   },
   methods: {
@@ -117,7 +118,9 @@ export default {
       this.anaModels = this.templateYZ;
       this.$refs.zdyPop.yzTableData = this.templateYZ;
     },
-
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
     getCurrentDateTime() {
       return moment(new Date()).format("YYYYMMDDHHmmss");
       const now = new Date();
@@ -172,7 +175,7 @@ export default {
           let obj = {
             xzfw: this.$refs.range.fileDataID,
             xmmc: this.ruleForm.xmmc,
-            mxlist:this.anaModels
+            mxlist:this.multipleSelection
           };
 
           const loading = this.$loading({

+ 137 - 0
src/views/farmlandProtection/components/interDetails.vue

@@ -0,0 +1,137 @@
+<template>
+  <div>
+    {{ interObj }}
+    <div class="sm-panel sm-function-module-query" v-drag>
+      <div class="sm-panel-header">
+        <span> 占压图斑</span>
+      </div>
+      <div class="tableCon">
+        <el-table
+          :header-cell-style="{
+            background: 'rgba(10, 25, 38, 0.6)',
+            color: '#66b1ff',
+            fontSize: '14px',
+            fontFamily: 'Microsoft YaHei',
+            fontWeight: '400',
+          }"
+          :data="tableData"
+          style="width: 100%"
+        >
+          <el-table-column
+            show-overflow-tooltip="true"
+            prop="id"
+            label="图斑编号"
+          >
+          </el-table-column>
+          <el-table-column
+            show-overflow-tooltip="true"
+            prop="siweiarea"
+            label="图斑面积"
+          >
+          </el-table-column>
+          <el-table-column width="100" label="操作">
+            <template slot-scope="scope">
+              <!-- <span>编辑</span> -->
+              <el-button size="mini" type="text" @click="flyTo(scope.row)"
+                >定位</el-button
+              >
+              <el-button size="mini" type="text" @click="handleView(scope.row)"
+                >详情</el-button
+              >
+            </template>
+          </el-table-column></el-table
+        >
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getYZ } from "../../../api/ghss/gdbh.js";
+
+export default {
+  props: {
+    interObj: {
+      type: Object,
+    },
+  },
+  data() {
+    return {
+      tableData: [
+        {
+          id: 61,
+          siweiarea: 568605.55,
+        },
+        {
+          id: 69,
+          siweiarea: 93683.01,
+        },
+        {
+          id: 62,
+          siweiarea: 27863.95,
+        },
+      ],
+    };
+  },
+  methods: {
+    flyTo(val) {},
+    handleView(val) {},
+    init() {
+      getYZ(this.interObj).then((res) => {
+        if (res.statuscode == 200) {
+          console.log(1111, res);
+        } else {
+          this.$message.error(res.message);
+        }
+      });
+    },
+  },
+  mounted(){
+
+  },
+  watch: {
+    interObj(newValue) {
+        console.log('=======')
+      this.init();
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.tableCon {
+  height: 40rem;
+
+  /deep/ .el-table tr {
+    background: rgba(10, 25, 38, 0.5) !important;
+  }
+
+  /deep/ .el-table td.el-table__cell,
+  .el-table th.el-table__cell.is-leaf {
+    background: rgba(10, 25, 38, 0.5) !important;
+
+    border-bottom: 0px solid #ebeef5;
+  }
+
+  .el-table {
+    color: #fff;
+    background: rgba(10, 25, 38, 0.5) !important;
+  }
+
+  /deep/ .el-table__fixed-right::before,
+  .el-table__fixed::before {
+    background: rgba(10, 25, 38, 0.9) !important;
+  }
+
+  /deep/ .el-table__fixed-right-patch {
+    background: rgba(10, 25, 38, 0.9) !important;
+  }
+
+  /deep/ .el-table--border::after,
+  .el-table--group::after,
+  .el-table::before {
+    background: rgba(10, 25, 38, 0) !important;
+  }
+}
+</style>
+</style>

+ 13 - 4
src/views/farmlandProtection/index.vue

@@ -14,13 +14,14 @@
           </el-tab-pane>
           <el-tab-pane label="分析结果" :disabled="activeTabs != 'scjg'" name="fxjg">
             <div v-drag style="height: 100%;">
-              <FXJG :activeTabs="activeTabs" :loading="loading" :fxjgObj="nowObj"
+              <FXJG :activeTabs="activeTabs" :loading="loading" :fxjgObj="nowObj" ref="fxjg"
                 v-if="activeTabs == 'fxjg'"></FXJG>
             </div>
           </el-tab-pane>
         </el-tabs>
       </div>
-      <!-- <RzDtails :rzBsm="rzBsm" :rzMc="nowObj.xmmc" @updateParent="changeData"></RzDtails> -->
+      <!-- <RzDtails :rzBsm="rzBsm" @updateParent="changeData" :interObj="interObj"></RzDtails> -->
+    
     </div>
   </template>
   
@@ -28,13 +29,14 @@
   import FZJCYP from "./components/fzjcyp.vue";
   import FXJG from "./components/fxjg.vue";
   import Lsjl from "../complianceAnalysis/components/lsjl.vue";
-
+  import RzDtails from "./components/interDetails.vue";
   export default {
     name: "farmlandProtection",
     components: {
       FZJCYP,
       Lsjl,
-      FXJG
+      FXJG,
+      RzDtails
     },
     data() {
       return {
@@ -44,12 +46,14 @@
         nowObj: {},
         rzMc: "",
         loading: false,
+        interObj:{},//套合信息存储
       };
     },
     created() { },
     methods: {
       changeData(name, updata) {
         this[name] = updata;
+        console.log(this[name])
       },
       tabClick(evt) {
         this.activeTabs = evt.name;
@@ -65,6 +69,11 @@
           this.$refs.lsju.reset();
           this.$refs.lsju.changeForm();
         }
+        if (newValue == "fxjg") {
+        this.$nextTick(() => {
+          this.$refs.fxjg.initData();
+        });
+      }
       },
     },
   };