Pārlūkot izejas kodu

永久基本农田接口联调

maxiaoxiao 4 mēneši atpakaļ
vecāks
revīzija
fecb5c88b4

+ 64 - 5
src/api/ghss/gdbhadd.js

@@ -1,5 +1,64 @@
 import request from '@/utils/request.js'
+// 耕地
 
+export function GetGdDate(params) {
+    return request({
+        url: '/apply/gdbh/gd/server/list',
+        method: 'get',
+        params
+    })
+}
+//永久基本农田
+export function GetYjjbntDate(params) {
+    return request({
+        url: '/apply/gdbh/yjjbnt/server/list',
+        method: 'get',
+        params
+    })
+}
+// 耕地总量
+export function GetYjjbntZl(params) {
+    return request({
+        url: '/apply/gdbh/yjjbnt/ntzl',
+        method: 'get',
+        params
+    })
+}
+// 类型分类
+export function GetYjjbntFl(params) {
+    return request({
+        url: '/apply/gdbh/yjjbnt/ntzlfl',
+        method: 'get',
+        params
+    })
+}
+// 变化情况
+export function GetYjjbntBhqk(params) {
+    return request({
+        url: '/apply/gdbh/yjjbnt/ntzlbhqk',
+        method: 'get',
+        params
+    })
+}
+// 历年变化情况
+export function GetYjjbntLnbhqk(params) {
+    return request({
+        url: '/apply/gdbh/yjjbnt/ntzllnbhqk',
+        method: 'get',
+        params
+    })
+}
+// 区县分类
+export function GetYjjbntQxfl(params) {
+    return request({
+        url: '/apply/gdbh/yjjbnt/ntzlqxfl',
+        method: 'get',
+        params
+    })
+}
+
+
+//检测图斑
 export function GetJctbDate(params) {
     return request({
         url: '/apply/gdbh/jctb/date/list',
@@ -40,11 +99,11 @@ export function QueryGdbhJg(params) {
 // 删除报建模型
 export function DeleteGdbh(bsm) {
     return request({
-      url: "/apply/gdbh/DeleteGdbh/" + bsm,
-      method: "delete",
+        url: "/apply/gdbh/DeleteGdbh/" + bsm,
+        method: "delete",
     });
-  }
-  export function getYZ(params) {
+}
+export function getYZ(params) {
     return request({
         url: '/apply/gdbh/QueryGdbhJg/yz',
         method: 'get',
@@ -58,7 +117,7 @@ export function getgeoms(params) {
         params
     })
 }
-  export function getOneDetail(params) {
+export function getOneDetail(params) {
     return request({
         url: '/apply/gdbh/QueryGdbhJg/id',
         method: 'get',

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

@@ -353,7 +353,7 @@ export default {
         } else {
           switch (obj.type) {
             case "S3M": //场景
-              let s = viewer.scene.open(obj.url, undefined, {
+              let s = viewer.scene.open(obj.url, obj.title, {
                 autoSetView: false, // obj.title != "倾斜摄影",
               });
               this.vectorlayerlist.push(obj);

+ 1 - 1
src/components/echartsTemplate/bar.vue

@@ -15,7 +15,7 @@ let option = {
     },
   },
   grid: {
-    left: "5%",
+    left: "10%",
     right: "4%",
     bottom: "5%",
     top: "20%",

+ 10 - 2
src/views/farmlandProtection/components/statistics.vue

@@ -6,8 +6,8 @@
     <div class="cityList" :style="{ height: height + 'px' }">
       <div class="listCon" v-for="(item, i) in cityList" :key="i">
         <div class="listArea">
-          <span>{{ item.name }}</span>
-          <span>{{ item.area }}{{ item.unit }}</span>
+          <span>{{ item.name||item.xqdmc }}</span>
+          <span>{{ item[prop] }}{{ item.unit || unit }}</span>
         </div>
         <div class="listItem">
           <div class="itemBg"></div>
@@ -32,6 +32,14 @@ export default {
     cityList: {
       type: Array,
     },
+    prop: {
+      type: String,
+      default: "area",
+    },
+    unit: {
+      type: String,
+      default: "km²",
+    },
     text: {
       type: String,
       default: "图斑数",

+ 3 - 3
src/views/farmlandProtection/config.js

@@ -23,9 +23,9 @@ export const zzForm = [
   ]
 ]
 export const legends = [
-  { label: "水田", color: '#caf982' },
-  { label: "水浇地", color: '#80ffff' },
-  { label: "旱地", color: '#facd91' }
+  { id: '0101', label: "水田", color: '#caf982' },
+  { id: '0102', label: "水浇地", color: '#80ffff' },
+  { id: '0103', label: "旱地", color: '#facd91' }
 ]
 
 export const reasonList = [

+ 206 - 131
src/views/farmlandProtection/gdzl/index.vue

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

+ 2 - 2
src/views/farmlandProtection/indexNew.vue

@@ -17,7 +17,7 @@
     </div>
     <Gdzl
       v-show="activeIndex == 0 || activeIndex == 1"
-      :type="activeIndex"
+      :pageType="activeIndex"
       ref="gdzl"
     ></Gdzl>
     <Jctb v-show="activeIndex == 2" ref="jctb"></Jctb>
@@ -77,7 +77,7 @@ export default {
         { title: "监测图斑" },
         { title: "辅助研判" },
       ],
-      activeIndex: 2,
+      activeIndex: 1,
       iscontrast: false,
       legends: legends,
     };

+ 1 - 0
vue.config.js

@@ -144,5 +144,6 @@ module.exports = {
             },
         },
     },
+    productionSourceMap: false,
 };