Bläddra i källkod

首页自然资源分布

Bella 2 år sedan
förälder
incheckning
bfbe93f9be

+ 3 - 0
public/static/config/config.js

@@ -48,3 +48,6 @@ var customModelIdMap = new Map();
 
 // 上传数据集合
 var uploadDataIdArr = [];
+
+// 图层有权限与否集合
+var layerAuthorityMap = new Map()

+ 0 - 7
src/components/chart/BarChart.vue

@@ -3,7 +3,6 @@
 </template>
 <script>
 import * as echarts from "echarts";
-import { street, soilData, waterData, forestryData } from "../../config/common";
 export default {
   name: "barChart",
   data() {
@@ -62,12 +61,6 @@ export default {
   },
   methods: {
     initEchart(categoryData, soil, water, forestry) {
-      // console.log(categoryData,"街道");
-      // console.log(soil,"土");
-      // console.log(water,"水");
-      // console.log(forestry,"林业");
-
-
       if (!this.barChart) {
         this.barChart = echarts.init(this.$refs.barChart);
       }

+ 91 - 8
src/components/common/BottomForm/CustomModelDialog.vue

@@ -128,13 +128,6 @@
         叠置分析
       </div>
     </div>
-    <!-- <input
-      v-if="overlayBtnShow"
-      type="button"
-      value="叠置分析"
-      class="overlay-btn"
-      @click="executeOverlay"
-    /> -->
     <span slot="footer" class="dialog-footer">
       <el-button @click="clearDialogVisible()">取 消</el-button>
       <el-button type="primary" @click="saveModel()">保存模型</el-button>
@@ -153,6 +146,7 @@ export default {
   components: {},
   data() {
     return {
+      classTextToIndex: {},
       overlayBtnChecked: false,
       outerDialogVisible: false,
       innerDialogVisible: false,
@@ -221,10 +215,16 @@ export default {
 
       console.log(val, "checkedList");
     },
+    
   },
   created() {
     this.checkedKeysArr = [];
     this.getColumnList();
+    // DMS - 任务类型
+    // 水资源 - 2;林地资源 - 3;生态资源 - 4; 土地资源 - 1
+    this.classDictQuery("0", "c_task_type", "任务类型");
+    // DMS - 浦东行政区划
+    this.classDictQuery("0", "浦东新区行政区划", "浦东新区行政区划");
   },
   mounted() {
     // 监听自定义模型
@@ -238,6 +238,11 @@ export default {
     this.$bus.$on("updateModel", (node) => {
       console.log("监听模型中");
       console.log(node, "节点数据");
+      this.$nextTick(() => {
+        if (this.$refs.transferTree) {
+          this.$refs.transferTree.setCheckedKeys([]);
+        }
+      });
       this.checkedKeysArr = [];
       this.checkArr = [];
       this.checkedList = [];
@@ -270,6 +275,22 @@ export default {
     this.overlayBtnShow = false;
   },
   methods: {
+    classDictQuery(type, cName, keyName) {
+      let params = new FormData();
+      params = {
+        type: type,
+        cName: cName,
+      };
+      this.$Post(this.urlsCollection.selectByCNameAType, params).then((res) => {
+        if (res.code === 200 && res.content.length > 0) {
+          this.classTextToIndex[keyName] = new Map();
+          res.content.forEach((v) => {
+            this.classTextToIndex[keyName].set(v.name, v.index + "");
+          });
+          // console.log(this.classTextToIndex[keyName], keyName);
+        }
+      });
+    },
     getColumnList() {
       this.transferData = [];
       this.$Post(this.urlsCollection.getColumnList).then((res) => {
@@ -352,6 +373,61 @@ export default {
           if (!this.checkedKeysArr.includes(data.id)) {
             this.checkedKeysArr.push(data.id);
           }
+
+          // 判断图层是否有权限
+          if (data.mainType === "所有图层") {
+            let searchParam = [];
+            let targetTown = this.classTextToIndex["浦东新区行政区划"].get(
+              data.town
+            );
+            let targetType = this.classTextToIndex["任务类型"].get(data.type);
+            let paramUser = {
+              field: "c_user_id",
+              searchType: "2",
+              content: {
+                value: localStorage.getItem("USER_ID"),
+              },
+            };
+            searchParam.push(paramUser);
+            let paramTown = {
+              field: "c_area_code",
+              searchType: "1",
+              content: {
+                value: targetTown,
+              },
+            };
+            searchParam.push(paramTown);
+            let paramType = {
+              field: "c_task_type",
+              searchType: "1",
+              content: {
+                value: targetType,
+              },
+            };
+            searchParam.push(paramType);
+            let params = new FormData();
+            params = {
+              columnId: 61,
+              states: "2,3",
+              pageSize: 10,
+              page: 0,
+              search: JSON.stringify(searchParam),
+            };
+            this.$Post(this.urlsCollection.selectContentList, params)
+              .then((res) => {
+                if (res.code === 202 && res.content === "数据不存在") {
+                  this.$message.info("当前图层无权限!");
+                  layerAuthorityMap.set(data.id, "无权限");
+                }
+                if (res.code === 200 && res.content.data.length > 0) {
+                  layerAuthorityMap.set(data.id, "有权限");
+                  console.log("有权限");
+                }
+              })
+              .catch((err) => {
+                console.log(err, "接口请求失败,我的任务 - selectContentList");
+              });
+          }
         } else {
           console.log(data.id);
           console.log(this.checkedKeysArr, "previous");
@@ -372,7 +448,14 @@ export default {
       this.createModelParams.title = this.inputName;
       this.createModelParams.c_user_id = localStorage.getItem("USER_ID") || 4;
 
-      this.createModelParams.c_bind_layer = JSON.stringify(this.checkedList);
+      let newData = this.checkedList.filter((v) => {
+        if (layerAuthorityMap.has(v) && layerAuthorityMap.get(v) === "有权限") {
+          return v;
+        }
+      });
+      console.log(newData, "可以进行叠置分析的图层");
+
+      this.createModelParams.c_bind_layer = JSON.stringify(newData);
       let params = new FormData();
       params = {
         columnId: 89,

+ 2 - 0
src/views/ComprehensiveAnalysis.vue

@@ -860,9 +860,11 @@ export default {
                 // debugger
                 if (res.code === 202 && res.content === "数据不存在") {
                   this.$message.info("当前用户无权限!");
+                  layerAuthorityMap.set(data.id, "无权限");
                 }
 
                 if (res.code === 200 && res.content.data.length > 0) {
+                  layerAuthorityMap.set(data.id, "有权限");
                   console.log("有权限");
                   console.log(data, "有权限的图层");
                   this.$store.state.treeDataCollection.set(data.id, {

+ 100 - 62
src/views/HomeView.vue

@@ -122,6 +122,7 @@
           </div>
           <div class="bar-content">
             <BarChart
+              ref="barChartRef"
               class="bar"
               :categoryData="categoryData"
               :soilValueData="soil"
@@ -176,7 +177,7 @@ import {
   soilData,
   waterData,
   forestryData,
-  menusMap
+  menusMap,
 } from "@/config/common";
 import publicFun from "@/utils/publicFunction.js";
 import TagCard from "@/components/common/TagCard";
@@ -258,6 +259,10 @@ export default {
         },
       ],
       btnChecked: "A",
+      soil: [],
+      water: [],
+      forestry: [],
+      categoryData: [],
       AData: {
         soil: [],
         water: [],
@@ -304,6 +309,7 @@ export default {
           this.water = this.AData.water;
           this.forestry = this.AData.forestry;
           this.categoryData = this.AData.categoryData;
+
           break;
         case "B":
           this.soil = this.BData.soil;
@@ -339,77 +345,109 @@ export default {
         map2DViewer.map.fitBounds(polygon.getBounds());
       }
     },
-  },
-  created() {
-    this.menus = menusMap;
-    // 目录
-    let category = Object.keys(streetLocation);
-    // 默认A类
-    this.soil = [];
-    this.water = [];
-    this.forestry = [];
-
-    let ADataArr = [];
-    let BDataArr = [];
-    let CDataArr = [];
-    // 街道排序
-    for (let i in category) {
-      let ADataSum =
-        soilData[category[i]].A +
-        waterData[category[i]].A +
-        forestryData[category[i]].A;
-      let BDataSum =
-        soilData[category[i]].B +
-        waterData[category[i]].B +
-        forestryData[category[i]].B;
-
-      let CDataSum =
-        soilData[category[i]].C +
-        waterData[category[i]].C +
-        forestryData[category[i]].C;
-      ADataArr.push({ name: category[i], sum: ADataSum });
-      BDataArr.push({ name: category[i], sum: BDataSum });
-      CDataArr.push({ name: category[i], sum: CDataSum });
-    }
+    // 获取自然资源分类数据接口(24个镇的数据)
+    getSourcesData() {
+      // town_type -- A:1; B:2; C:3;
+      let params = new FormData();
+      params = {
+        columnId: 90,
+        states: 3,
+        pageSize: 30,
+        page: 0,
+      };
+      this.$Post(this.urlsCollection.selectContentList, params)
+        .then((res) => {
+          if (res.code === 200 && res.content.data.length > 0) {
+            // console.log(res.content.data, "getSourcesData接口获取成功");
+            this.soil = [];
+            this.water = [];
+            this.forestry = [];
+            let data = res.content.data;
+            let ADataArr = [];
+            let BDataArr = [];
+            let CDataArr = [];
+            data.map((v) => {
+              if (v.c_town_type === "1") {
+                ADataArr.push({
+                  name: v.title,
+                  soil: v.c_land_area,
+                  water: v.c_water_area,
+                  forest: v.c_forest_area,
+                  sum: v.c_land_area + v.c_water_area + v.c_forest_area,
+                });
+              }
+              if (v.c_town_type === "2") {
+                BDataArr.push({
+                  name: v.title,
+                  soil: v.c_land_area,
+                  water: v.c_water_area,
+                  forest: v.c_forest_area,
+                  sum: v.c_land_area + v.c_water_area + v.c_forest_area,
+                });
+              }
+              if (v.c_town_type === "3") {
+                CDataArr.push({
+                  name: v.title,
+                  soil: v.c_land_area,
+                  water: v.c_water_area,
+                  forest: v.c_forest_area,
+                  sum: v.c_land_area + v.c_water_area + v.c_forest_area,
+                });
+              }
+            });
 
-    ADataArr.sort(publicFun.compare("sum"));
-    BDataArr.sort(publicFun.compare("sum"));
-    CDataArr.sort(publicFun.compare("sum"));
+            ADataArr.sort(publicFun.compare("sum"));
+            BDataArr.sort(publicFun.compare("sum"));
+            CDataArr.sort(publicFun.compare("sum"));
 
-    // 按A,B,C分出各自资源的排序数组
-    ADataArr.forEach((item) => {
-      this.AData.soil.push(soilData[item.name].A);
-      this.AData.water.push(waterData[item.name].A);
-      this.AData.forestry.push(forestryData[item.name].A);
-      this.AData.categoryData.push(item.name);
-    });
+            // 按A,B,C分出各自资源的排序数组
+            ADataArr.forEach((item) => {
+              this.AData.soil.push(item.soil);
+              this.AData.water.push(item.water);
+              this.AData.forestry.push(item.forest);
+              this.AData.categoryData.push(item.name);
+            });
+            BDataArr.forEach((item) => {
+              this.BData.soil.push(item.soil);
+              this.BData.water.push(item.water);
+              this.BData.forestry.push(item.forest);
+              this.BData.categoryData.push(item.name);
+            });
 
-    BDataArr.forEach((item) => {
-      this.BData.soil.push(soilData[item.name].B);
-      this.BData.water.push(waterData[item.name].B);
-      this.BData.forestry.push(forestryData[item.name].B);
-      this.BData.categoryData.push(item.name);
-    });
+            CDataArr.forEach((item) => {
+              this.CData.soil.push(item.soil);
+              this.CData.water.push(item.water);
+              this.CData.forestry.push(item.forest);
+              this.CData.categoryData.push(item.name);
+            });
 
-    CDataArr.forEach((item) => {
-      this.CData.soil.push(soilData[item.name].C);
-      this.CData.water.push(waterData[item.name].C);
-      this.CData.forestry.push(forestryData[item.name].C);
-      this.CData.categoryData.push(item.name);
-    });
-
-    this.soil = this.AData.soil;
-    this.water = this.AData.water;
-    this.forestry = this.AData.forestry;
-    this.categoryData = this.AData.categoryData;
-
-    // 街道下拉框
+            this.$nextTick(() => {
+              if (this.$refs.barChartRef) {
+                this.$refs.barChartRef.initEchart(
+                  this.AData.categoryData,
+                  this.AData.soil,
+                  this.AData.water,
+                  this.AData.forestry
+                );
+              }
+            });
+          }
+        })
+        .catch((error) => {
+          console.log(error, "getSourcesData");
+        });
+    },
+  },
+  created() {
+    this.menus = menusMap;
+    //   // 街道下拉框
     for (let key in street) {
       this.streetOptions.push({
         value: street[key],
         label: street[key],
       });
     }
+    this.getSourcesData();
   },
 };
 </script>