浏览代码

Merge branch 'dev' into dev-2.0

# Conflicts:
#	data-ui/src/views/data/digitalwater/river/index.vue
#	src/main/java/com/sooka/sponest/data/digitalwater/service/impl/CenterdataTHydraulicRiverServiceImpl.java
lyq 1 年之前
父节点
当前提交
4c0a12156e
共有 100 个文件被更改,包括 2911 次插入612 次删除
  1. 16 0
      data-ui/src/api/data/digitalresources/info.js
  2. 8 0
      data-ui/src/api/data/generalbusiness/keyProjects/projects.js
  3. 220 0
      data-ui/src/components/ImageUpload/dataUpload.vue
  4. 7 0
      data-ui/src/views/components/FileUpload/index.vue
  5. 791 0
      data-ui/src/views/components/supermap-2.5d-multiple.vue
  6. 10 12
      data-ui/src/views/components/supermap-2.5d.vue
  7. 23 7
      data-ui/src/views/data/basicdata/firehydrant/index.vue
  8. 16 0
      data-ui/src/views/data/basicdata/watercrane/index.vue
  9. 17 1
      data-ui/src/views/data/basicdata/waterintake/index.vue
  10. 12 0
      data-ui/src/views/data/common/ISuperMap.vue
  11. 202 24
      data-ui/src/views/data/common/ISuperMapAreaMarker.vue
  12. 1 1
      data-ui/src/views/data/common/ISuperMapTemp.vue
  13. 44 5
      data-ui/src/views/data/common/supermap.vue
  14. 23 7
      data-ui/src/views/data/digitalagriculture/agricultural_cooperatives/index.vue
  15. 23 7
      data-ui/src/views/data/digitalagriculture/botany_protect_info/index.vue
  16. 6 6
      data-ui/src/views/data/digitalagriculture/breedingFarm/index.vue
  17. 10 3
      data-ui/src/views/data/digitalagriculture/enterprise/index.vue
  18. 12 0
      data-ui/src/views/data/digitalagriculture/excrementdispose/index.vue
  19. 18 8
      data-ui/src/views/data/digitalagriculture/filingsLivestock/index.vue
  20. 12 7
      data-ui/src/views/data/digitalagriculture/greenhousefilm/index.vue
  21. 12 12
      data-ui/src/views/data/digitalagriculture/information/index.vue
  22. 18 8
      data-ui/src/views/data/digitalagriculture/livestock/index.vue
  23. 12 0
      data-ui/src/views/data/digitalagriculture/modification/index.vue
  24. 17 8
      data-ui/src/views/data/digitalemergency/enterprises/index.vue
  25. 17 7
      data-ui/src/views/data/digitalemergency/team/index.vue
  26. 17 7
      data-ui/src/views/data/digitalemergency/warehouse/index.vue
  27. 20 7
      data-ui/src/views/data/digitalenvironment/keyenterprise/index.vue
  28. 18 7
      data-ui/src/views/data/digitalenvironment/monitor/index.vue
  29. 11 1
      data-ui/src/views/data/digitalenvironment/sewageoutlet/index.vue
  30. 12 1
      data-ui/src/views/data/digitalenvironment/sourcepollution/index.vue
  31. 17 7
      data-ui/src/views/data/digitalfirecontrol/basiclinkageforce/index.vue
  32. 34 7
      data-ui/src/views/data/digitalfirecontrol/fireforce/index.vue
  33. 17 7
      data-ui/src/views/data/digitalfirecontrol/foamliquid/index.vue
  34. 33 8
      data-ui/src/views/data/digitalfirecontrol/fulltimestation/index.vue
  35. 11 5
      data-ui/src/views/data/digitalfirecontrol/keyplaces/index.vue
  36. 17 7
      data-ui/src/views/data/digitalfirecontrol/otherlinkageforce/index.vue
  37. 13 12
      data-ui/src/views/data/digitalfirecontrol/sensor/index.vue
  38. 56 45
      data-ui/src/views/data/digitalforest/afforestationarea/index.vue
  39. 38 23
      data-ui/src/views/data/digitalforest/afforestationtask/index.vue
  40. 22 7
      data-ui/src/views/data/digitalforest/channel/index.vue
  41. 16 1
      data-ui/src/views/data/digitalforest/fireteam/index.vue
  42. 22 7
      data-ui/src/views/data/digitalforest/keyFireproofPlots/index.vue
  43. 22 7
      data-ui/src/views/data/digitalforest/landing/index.vue
  44. 21 11
      data-ui/src/views/data/digitalresources/construction/index.vue
  45. 11 1
      data-ui/src/views/data/digitalresources/deposit/index.vue
  46. 13 12
      data-ui/src/views/data/digitalresources/farm/farmland/index.vue
  47. 12 12
      data-ui/src/views/data/digitalresources/farm/info/index.vue
  48. 11 3
      data-ui/src/views/data/digitalresources/hazard/index.vue
  49. 11 1
      data-ui/src/views/data/digitaltraffic/bridge/index.vue
  50. 11 1
      data-ui/src/views/data/digitaltraffic/culvert/index.vue
  51. 1 1
      data-ui/src/views/data/digitaltraffic/level/IForm.vue
  52. 11 1
      data-ui/src/views/data/digitaltraffic/warningSign/index.vue
  53. 12 1
      data-ui/src/views/data/digitalwater/battlefield/index.vue
  54. 14 1
      data-ui/src/views/data/digitalwater/channelblueline/index.vue
  55. 14 1
      data-ui/src/views/data/digitalwater/garbagestation/index.vue
  56. 21 8
      data-ui/src/views/data/digitalwater/outletsewage/index.vue
  57. 14 1
      data-ui/src/views/data/digitalwater/reach/index.vue
  58. 14 2
      data-ui/src/views/data/digitalwater/reservoir/index.vue
  59. 14 2
      data-ui/src/views/data/digitalwater/river/index.vue
  60. 20 7
      data-ui/src/views/data/digitalwater/wadebridgeculvert/index.vue
  61. 21 8
      data-ui/src/views/data/digitalwater/watergate/index.vue
  62. 28 29
      data-ui/src/views/data/generalbusiness/importarea/index.vue
  63. 327 147
      data-ui/src/views/data/generalbusiness/keyProjects/index.vue
  64. 1 1
      data-ui/src/views/data/generalbusiness/leaveCount/index.vue
  65. 3 1
      data-ui/src/views/data/generalbusiness/leaveSelect/index.vue
  66. 32 4
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestFirehydrant.java
  67. 12 0
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWatercrane.java
  68. 27 0
      src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWaterintake.java
  69. 5 0
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestFirehydrantServiceImpl.java
  70. 8 3
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWatercraneServiceImpl.java
  71. 8 3
      src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWaterintakeServiceImpl.java
  72. 3 0
      src/main/java/com/sooka/sponest/data/commandcenter/domian/CommandCenterBO.java
  73. 6 0
      src/main/java/com/sooka/sponest/data/commandcenter/domian/ProjectBody.java
  74. 9 0
      src/main/java/com/sooka/sponest/data/commandcenter/service/impl/ICommandCenterServiceImpl.java
  75. 14 3
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmComplexModificationController.java
  76. 18 1
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmEnterpriseController.java
  77. 6 1
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmExcrementDisposeController.java
  78. 6 1
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmFilingsLivestockController.java
  79. 6 1
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmGreenhouseFilmController.java
  80. 6 1
      src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmLivestockController.java
  81. 16 4
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmAgriculturalCooperatives.java
  82. 16 4
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmBotanyProtectInfo.java
  83. 4 4
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmBreedingFarm.java
  84. 10 1
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmComplexModification.java
  85. 11 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmEnterprise.java
  86. 10 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmExcrementDispose.java
  87. 14 5
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmFilingsLivestock.java
  88. 10 8
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmGreenhouseFilm.java
  89. 14 4
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmLivestock.java
  90. 3 3
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmPesticideInformation.java
  91. 14 4
      src/main/java/com/sooka/sponest/data/digitalagriculture/domain/vo/CenterdataTFarmGreenhouseFilmVo.java
  92. 5 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmAgriculturalCooperativesServiceImpl.java
  93. 5 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmBotanyProtectInfoServiceImpl.java
  94. 6 0
      src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmComplexModificationServiceImpl.java
  95. 4 2
      src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmPesticideInformationServiceImpl.java
  96. 5 2
      src/main/java/com/sooka/sponest/data/digitalemergency/controller/CenterdataTEmergencyMaterialController.java
  97. 18 4
      src/main/java/com/sooka/sponest/data/digitalemergency/domain/CenterdataTEmergencyEnterprises.java
  98. 16 4
      src/main/java/com/sooka/sponest/data/digitalemergency/domain/CenterdataTEmergencyTeam.java
  99. 16 4
      src/main/java/com/sooka/sponest/data/digitalemergency/domain/CenterdataTEmergencyWarehouse.java
  100. 0 0
      src/main/java/com/sooka/sponest/data/digitalemergency/service/impl/CenterdataTEmergencyEnterprisesServiceImpl.java

+ 16 - 0
data-ui/src/api/data/digitalresources/info.js

@@ -73,6 +73,22 @@ export function delRegionalFlag(eventId) {
   return request({
     url:'/sooka-sponest-center-data/info/delRegionalFlag/' + eventId,
     method: 'delete'
+  })
+}
+
 
+// 删除单个区域标记
+export function delRegionalFlagByFlagType(eventId,flagType) {
+  return request({
+    url:'/sooka-sponest-center-data/info/delRegionalFlagByFlagType/' + eventId +'/'+flagType,
+    method: 'delete'
+  })
+}
+// 修改区域标识名称
+export function updateRegionalFlag(data) {
+  return request({
+    url: 'center-data/info/updateRegionalFlag',
+    method: 'put',
+    data: data
   })
 }

+ 8 - 0
data-ui/src/api/data/generalbusiness/keyProjects/projects.js

@@ -72,3 +72,11 @@ export function deleteSchedule(scheduleId){
     method: 'delete'
   })
 }
+
+export function selectPark(data){
+  return request({
+    url: '/system/dept/getDeptsByDeptType',
+    method: 'post',
+    data: data
+  })
+}

+ 220 - 0
data-ui/src/components/ImageUpload/dataUpload.vue

@@ -0,0 +1,220 @@
+<template>
+  <div class="component-upload-image">
+    <el-upload
+      multiple
+      :action="uploadImgUrl"
+      list-type="picture-card"
+      :on-success="handleUploadSuccess"
+      :before-upload="handleBeforeUpload"
+      :on-error="handleUploadError"
+      :on-exceed="handleExceed"
+      name="file"
+      :on-remove="handleRemove"
+      :show-file-list="true"
+      :headers="headers"
+      :file-list="fileList"
+      :on-preview="handlePictureCardPreview"
+      :class="{hide: this.fileList.length >= this.limit}"
+    >
+      <!--      :limit="limit"-->
+      <i class="el-icon-plus"></i>
+    </el-upload>
+
+    <!-- 上传提示 -->
+    <div class="el-upload__tip" slot="tip" v-if="showTip">
+      请上传
+      <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
+      <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
+      的文件
+    </div>
+
+    <el-dialog
+      :visible.sync="dialogVisible"
+      title="预览"
+      width="800"
+      append-to-body
+    >
+      <img
+        :src="dialogImageUrl"
+        style="display: block; max-width: 100%; margin: 0 auto"
+      />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getToken } from "@/utils/auth";
+
+export default {
+  name: 'DataImageUpload',
+  props: {
+    ImageUpload: Function,
+    value: [String, Object, Array],
+    // 图片数量限制
+    // limit: {
+    //   type: Number,
+    //   default: 1,
+    // },
+    // 大小限制(MB)
+    fileSize: {
+      type: Number,
+      default: 10,
+    },
+    // 文件类型, 例如['png', 'jpg', 'jpeg']
+    fileType: {
+      type: Array,
+      default: () => ["png", "jpg", "jpeg"],
+    },
+    // 是否显示提示
+    isShowTip: {
+      type: Boolean,
+      default: true
+    }
+  },
+  data() {
+    return {
+      number: 0,
+      uploadList: [],
+      dialogImageUrl: "",
+      dialogName: "",
+      dialogVisible: false,
+      hideUpload: false,
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/file/upload", // 上传的图片服务器地址
+      headers: {
+        Authorization: "Bearer " + getToken(),
+      },
+      fileList: []
+    };
+  },
+  watch: {
+    value: {
+      handler(val) {
+        if (val) {
+          // 首先将值转为数组
+          const list = Array.isArray(val) ? val : this.value.split(',');
+          // 然后将数组转为对象数组
+          this.fileList = list.map(item => {
+            if (typeof item === "string") {
+              item = { name: item, url: item };
+            }
+            return item;
+          });
+        } else {
+          this.fileList = [];
+          return [];
+        }
+      },
+      deep: true,
+      immediate: true
+    }
+  },
+  computed: {
+    // 是否显示提示
+    showTip() {
+      return this.isShowTip && (this.fileType || this.fileSize);
+    },
+  },
+
+  methods: {
+    clear: function(){
+      alert('2')
+
+
+    },
+    // 删除图片
+    handleRemove(file, fileList) {
+      const findex = this.fileList.map(f => f.name).indexOf(file.name);
+      if(findex > -1) {
+        this.fileList.splice(findex, 1);
+        this.$emit("input", this.listToString(this.fileList));
+        // this.ImageUpload.setUrl("")
+      }
+    },
+    // 上传成功回调
+    handleUploadSuccess(res) {
+      this.uploadList.push({ name: res.data.url, url: res.data.webUrl });
+      if (this.uploadList.length === this.number) {
+        this.fileList = this.fileList.concat(this.uploadList);
+        this.uploadList = [];
+        this.number = 0;
+        this.dialogName = res.data.url;
+        // this.ImageUpload.setUrl(res.data.url)
+        this.$emit("input", this.listToString(this.fileList));
+        // this.$emit("input", JSON.stringify(this.fileList));
+        this.$modal.closeLoading();
+      }
+    },
+    // 上传前loading加载
+    handleBeforeUpload(file) {
+      let isImg = false;
+      if (this.fileType.length) {
+        let fileExtension = "";
+        if (file.name.lastIndexOf(".") > -1) {
+          fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
+        }
+        isImg = this.fileType.some(type => {
+          if (file.type.indexOf(type) > -1) return true;
+          if (fileExtension && fileExtension.indexOf(type) > -1) return true;
+          return false;
+        });
+      } else {
+        isImg = file.type.indexOf("image") > -1;
+      }
+
+      if (!isImg) {
+        this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}图片格式文件!`);
+        return false;
+      }
+      if (this.fileSize) {
+        const isLt = file.size / 1024 / 1024 < this.fileSize;
+        if (!isLt) {
+          this.$modal.msgError(`上传头像图片大小不能超过 ${this.fileSize} MB!`);
+          return false;
+        }
+      }
+      this.$modal.loading("正在上传图片,请稍候...");
+      this.number++;
+    },
+    // 文件个数超出
+    handleExceed() {
+      this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
+    },
+    // 上传失败
+    handleUploadError() {
+      this.$modal.msgError("上传图片失败,请重试");
+      this.$modal.closeLoading();
+    },
+    // 预览
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+    },
+    // 对象转成指定字符串分隔
+    listToString(list, separator) {
+      let strs = "";
+      separator = separator || ",";
+      for (let i in list) {
+        strs += list[i].url + separator;
+      }
+      return strs != '' ? strs.substr(0, strs.length - 1) : '';
+    }
+  }
+};
+</script>
+<style scoped lang="scss">
+// .el-upload--picture-card 控制加号部分
+::v-deep.hide .el-upload--picture-card {
+  display: none;
+}
+// 去掉动画效果
+::v-deep .el-list-enter-active,
+::v-deep .el-list-leave-active {
+  transition: all 0s;
+}
+
+::v-deep .el-list-enter, .el-list-leave-active {
+  opacity: 0;
+  transform: translateY(0);
+}
+</style>
+

+ 7 - 0
data-ui/src/views/components/FileUpload/index.vue

@@ -174,6 +174,13 @@
                         return false;
                     }
                 }
+                if (file.name){
+                  const isName = file.name;
+                  if (isName.indexOf("+") != -1){
+                    this.$modal.msgError(`上传文件的文件名中不能包含'+'!`);
+                    return false;
+                  }
+                }
                 this.$modal.loading("正在上传文件,请稍候...");
                 this.number++;
                 return true;

+ 791 - 0
data-ui/src/views/components/supermap-2.5d-multiple.vue

@@ -0,0 +1,791 @@
+<template>
+  <div id="cesiumContainer" style="width: 100%; height: 100%;background: none;">
+  </div>
+</template>
+
+<script>
+  import {
+    iconList,
+    getDeviceList
+  } from '@/api/components/supermap.js'
+  import {
+    getConfigKey
+  } from '@/api/system/config'
+  import Cookies from 'js-cookie'
+
+  export default {
+    name: 'supermap-2.5d',
+    data() {
+      return {
+        chooseMode: [
+          Cesium.DrawMode.Line,
+          Cesium.DrawMode.Polygon,
+        ],
+        markerList: [],
+        bindPopupHtml: null,
+        mapshow: false,
+        superMapRootUrl: null,
+        layerList: [],
+        viewer: null,
+        scene: null,
+        handler: null,
+        pick: null,
+        back_position: null,
+        type: null,
+        content: null,
+        mvtMap0: null,
+        shuixi_name: null,
+        mvtMap1: null,
+        mvtMap2: null,
+        mvtMap3: null,
+        road_name: null,
+        layer_xiangzhenjie_name: null,
+        markerboxEntity: [],//地图落点实体
+        connectBoxEntity: null,//地图线实体
+        graphicsBoxEntity: null,//地图面实体
+        markerboxEntityRadius: [],//地图落点实体
+        connectBoxEntityTwo: null,//地图线实体
+        /*************************原地图属性*********************/
+        isEditableLayers: false, //绘图控件
+
+        /*************************原地图属性*********************/
+        aac: null,
+        queryParams: {
+          name: null,
+          mapData: null,
+          mapName: null
+        },
+      }
+    },
+    watch: {},
+    created() {
+    },
+    mounted() {
+      // this.superMapInfo();
+    },
+    props: {
+      putSmUserID_layer: null,
+    },
+    methods: {
+      superMapInfo(type, obj,NB) {
+        getConfigKey('superMap.iServer').then(response => {
+          this.superMapRootUrl = response.msg;
+          this.onload(type, obj,NB);
+        })
+      },
+      //清除所有
+      clearAll() {
+        this.viewer.entities.removeAll()
+      },
+      //移除之前添加的点
+      clearMRadius() {
+        if (this.markerboxEntityRadius != null && this.markerboxEntityRadius.length > 0) {
+          for (let i = 0; i < this.markerboxEntityRadius.length; i++) {
+            this.viewer.entities.remove(this.markerboxEntityRadius[i])
+          }
+          this.markerboxEntityRadius = []
+        }
+      },
+      //移除之前添加的线
+      clearTwoC() {
+        if (this.connectBoxEntityTwo != null) {
+          this.viewer.entities.remove(this.connectBoxEntityTwo)
+          this.connectBoxEntityTwo = null
+        }
+      },
+      /**
+       * 地图落点-覆盖范围
+       */
+      setMarkersRadius(makerList) {
+        let that = this
+        that.handler = new Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas)
+        for (let i in makerList) {
+          let longitude = makerList[i].lng;
+          let latitude = makerList[i].lat;
+          let marker = that.viewer.entities.add({
+            name: "",
+            position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
+            billboard: {
+              image: iconList[makerList[i].icon],
+              width: 48,
+              height: 48,
+              heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+              disableDepthTestDistance: Number.POSITIVE_INFINITY
+            },
+            description: makerList[i].bindPopupHtml,
+            click: makerList[i].click,
+            parameter: makerList[i].parameter
+          })
+          that.markerboxEntityRadius.push(marker)
+          //绘制摄像头的圈(覆盖范围)
+          let markerRadius = that.viewer.entities.add({
+            position: Cesium.Cartesian3.fromDegrees(makerList[i].lng, makerList[i].lat, 2),
+            ellipse: {
+              semiMinorAxis: makerList[i].radius,
+              semiMajorAxis: makerList[i].radius,
+              height: 0.0,
+              material: Cesium.Color.DODGERBLUE.withAlpha(0.4),
+              outline: true,
+              outlineColor: Cesium.Color.DEEPSKYBLUE.withAlpha(1),
+              outlineWidth: 1,
+            },
+          });
+          that.markerboxEntityRadius.push(markerRadius)
+        }
+        that.viewer.scene.globe.depthTestAgainstTerrain = false
+        that.createLeftClickDescription()
+        that.createRightClickDescription()
+      },
+      /**
+       * 地图画线(贴地)
+       */
+      setConnectTwoList(connectList, color, withAlpha) {
+        let that = this
+        //Cesium.Color.fromCssColorString('#67ADDF')   16进制颜色设置
+        let material = Cesium.Color.fromCssColorString(color).withAlpha(withAlpha);
+        that.connectBoxEntityTwo = that.viewer.entities.add({
+          Type: 'Polyline',
+          polyline: {
+            positions: Cesium.Cartesian3.fromDegreesArray(connectList),
+            clampToGround: true,//贴地 true,不贴地  false
+            width: 5,
+            material: material
+          }
+        })
+      },
+      //移除之前添加的点
+      clearM() {
+        if (this.markerboxEntity != null && this.markerboxEntity.length > 0) {
+          for (let i = 0; i < this.markerboxEntity.length; i++) {
+            this.viewer.entities.remove(this.markerboxEntity[i])
+          }
+          this.markerboxEntity = []
+        }
+      },
+      clearAllByQin(val) {
+
+        this.viewer.entities.removeAll();
+        this.entityHandler(val-2)
+      },
+      //移除之前添加的线
+      clearC() {
+        if (this.connectBoxEntity != null) {
+          this.viewer.entities.remove(this.connectBoxEntity)
+          this.connectBoxEntity = null
+        }
+      },
+      //移除之前添加的面
+      clearG() {
+        if (this.graphicsBoxEntity != null) {
+          this.viewer.entities.remove(this.graphicsBoxEntity)
+          this.graphicsBoxEntity = null
+        }
+      },
+      reload(list) {
+        this.removeAll();
+        this.layerList = list;
+        for (let i = 0; i < this.layerList.length; i++) {
+          if (this.layerList[i] == "lindi") {
+            this.loadLindi();
+          } else if (this.layerList[i] == "shuixi") {
+            this.loadShuixi();
+          } else if (this.layerList[i] == "road") {
+            this.loadRoad();
+          } else if (this.layerList[i] == "nongtian") {
+            this.loadNongtian();
+          }
+        }
+      },
+      loadShuixi() {//水系
+        let that = this;
+        if (that.mvtMap0 != null) {
+          that.mvtMap0.show = true;
+          that.shuixi_name.then(function (layers) {
+            let textlayer = that.viewer.scene.layers.find('ShuiXi@SiPing#1');//文字图层
+            textlayer.visible = true;
+          });
+        }
+      },
+      loadLindi() {//林地
+        if (this.mvtMap1 != null) {
+          this.mvtMap1.show = true;
+        }
+      },
+      loadNongtian() {//农田
+        if (this.mvtMap2 != null) {
+          this.mvtMap2.show = true;
+        }
+      },
+      loadRoad() {//路网
+        let that = this;
+        if (that.mvtMap3 != null) {
+          that.mvtMap3.show = true;
+          that.road_name.then(function (layers) {
+            let provinceRoad_textLayer = that.viewer.scene.layers.find('ProvinceRoad_L@SiPing#1');//文字图层
+            let countyRoad_textLayer = that.viewer.scene.layers.find('CountyRoad_L@SiPing#1');//文字图层
+            let stateRoad_textLayer = that.viewer.scene.layers.find('StateRoad_L@SiPing#1');//文字图层
+            provinceRoad_textLayer.visible = true;
+            countyRoad_textLayer.visible = true;
+            stateRoad_textLayer.visible = true;
+          });
+        }
+      },
+      removeAll() {
+        let that = this;
+        // 移除方法,暂存:this.viewer.scene.removeVectorTilesMap(this.mvtMap3.name);
+        if (that.mvtMap0 != null) {
+          that.mvtMap0.show = false;
+          //that
+          that.shuixi_name.then(function (layers) {
+            let textlayer = that.viewer.scene.layers.find('ShuiXi@SiPing#1');//文字图层
+            textlayer.visible = false;
+          });
+        }
+        if (that.mvtMap1 != null) {
+          that.mvtMap1.show = false
+        }
+        if (that.mvtMap2 != null) {
+          that.mvtMap2.show = false
+        }
+        if (that.mvtMap3 != null) {
+          that.mvtMap3.show = false
+
+          //NAME隐藏
+          that.road_name.then(function (layers) {
+            let provinceRoad_textLayer = that.viewer.scene.layers.find('ProvinceRoad_L@SiPing#1');//文字图层
+            let countyRoad_textLayer = that.viewer.scene.layers.find('CountyRoad_L@SiPing#1');//文字图层
+            let stateRoad_textLayer = that.viewer.scene.layers.find('StateRoad_L@SiPing#1');//文字图层
+            provinceRoad_textLayer.visible = false;
+            countyRoad_textLayer.visible = false;
+            stateRoad_textLayer.visible = false;
+          });
+        }
+      },
+      onload(type, obj,NB) {
+        let that = this;
+        //1.添加地形数据
+        that.viewer = new Cesium.Viewer('cesiumContainer', {
+          //创建地形服务提供者的实例,url为SuperMap iServer发布的TIN地形服务
+          terrainProvider: new Cesium.CesiumTerrainProvider({
+            url: that.superMapRootUrl + "/3D-sipingchangjing/rest/realspace/datas/dem@spyx4326",
+            //isSct : false,//地形服务源自SuperMap iServer发布时需设置isSct为true
+            invisibility: true
+          }),
+          infoBox: false,
+          navigation: false
+        }, {
+          contextOptions: {
+            msaaLevel: 4,
+            requestWebgl2: true
+          },
+          orderIndependentTranslucency: false
+        });
+        let scene = that.viewer.scene;
+        that.viewer.cesiumWidget.creditContainer.style.display = "none" // 去掉超图logo水印
+
+        //2.添加SuperMap iServer发布的影像服务
+        let layer = that.viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+          url: that.superMapRootUrl + "/3D-sipingchangjing/rest/realspace/datas/siping_2m@spyx4326",
+        }));
+
+        //3.添加SuperMap 建筑场景
+        let aaaa = that.superMapRootUrl + "/3D-local3DCache-Data3/rest/realspace";
+        scene.open(aaaa);
+
+        //飞行值坐标点,每3秒推进一级
+        //heading-代表镜头左右方向,正值为右,负值为左
+        //pitch-代表镜头上下方向,正值为上,负值为下.
+        //roll-代表镜头左右倾斜,正值,向右倾斜,负值向左倾斜
+        setTimeout(function () {
+          that.viewer.camera.flyTo({
+            destination: Cesium.Cartesian3.fromDegrees(124.49980650138238, 43.428263986216815, 950000),
+            orientation: {
+              // heading :  Cesium.Math.toRadians(346.4202942851978),
+              // pitch : Cesium.Math.toRadians(-56.74026687972041),
+              // roll : Cesium.Math.toRadians(0)
+            }
+          });
+
+        }, 3000);
+        setTimeout(function () {
+          that.viewer.camera.flyTo({
+            destination: Cesium.Cartesian3.fromDegrees(124.49980650138238, 43.428263986216815, 650000),
+            orientation: {
+              // heading :  Cesium.Math.toRadians(346.4202942851978),
+              // pitch : Cesium.Math.toRadians(-56.74026687972041),
+              // roll : Cesium.Math.toRadians(0)
+            }
+          });
+
+        }, 3000);
+        setTimeout(function () {
+          that.viewer.camera.flyTo({
+            destination: Cesium.Cartesian3.fromDegrees(124.49980650138238, 43.428263986216815, 350000),
+            orientation: {
+              // heading :  Cesium.Math.toRadians(346.4202942851978),
+              // pitch : Cesium.Math.toRadians(-56.74026687972041),
+              // roll : Cesium.Math.toRadians(0)
+            }
+          });
+
+        }, 3000);
+
+        //开始加载专题图等数据,8秒后开始执行
+        setTimeout(function () {
+          //3.水系
+          let shuixi = that.superMapRootUrl + "/map-mvt-shuixiMian/restjsr/v1/vectortile/maps/shuixi_Mian";
+          that.mvtMap0 = scene.addVectorTilesMap({
+            url: shuixi,
+            canvasWidth: 512,
+            name: 'mvt_map0',
+            viewer: that.viewer
+          });
+          that.mvtMap0.selectedColor = new Cesium.Color(6, 169, 254, 0.5);
+          that.mvtMap0.show = false;
+
+          //4.林地
+          let lindi = that.superMapRootUrl + "/map-mvt-lindi/restjsr/v1/vectortile/maps/lindi";
+          that.mvtMap1 = scene.addVectorTilesMap({
+            url: lindi,
+            canvasWidth: 512,
+            name: 'mvt_map1',
+            viewer: that.viewer
+          });
+          that.mvtMap1.selectedColor = new Cesium.Color(6, 254, 181, 0.5);
+          that.mvtMap1.show = false;
+
+          //5.农田
+          let nongtian = that.superMapRootUrl + "/map-mvt-nongtian/restjsr/v1/vectortile/maps/nongtian";
+          that.mvtMap2 = scene.addVectorTilesMap({
+            url: nongtian,
+            canvasWidth: 512,
+            name: 'mvt_map2',
+            viewer: that.viewer
+          });
+          that.mvtMap2.selectedColor = new Cesium.Color(250, 236, 246, 1.0);
+          that.mvtMap2.show = false;
+
+          //6.路网
+          let road = that.superMapRootUrl + "/map-mvt-roadXian/restjsr/v1/vectortile/maps/road_Xian";
+          that.mvtMap3 = scene.addVectorTilesMap({
+            url: road,
+            canvasWidth: 512,
+            name: 'mvt_map3',
+            viewer: that.viewer
+          });
+          that.mvtMap3.show = false;
+
+          //7.添加路网NAME
+          let road_name_url = that.superMapRootUrl + '/3D-road_Name_S/rest/realspace';
+          that.road_name = scene.open(road_name_url);
+
+          that.road_name.then(function (layers) {
+            let provinceRoad_textLayer = scene.layers.find('ProvinceRoad_L@SiPing#1');//文字图层
+            let countyRoad_textLayer = scene.layers.find('CountyRoad_L@SiPing#1');//文字图层
+            let stateRoad_textLayer = scene.layers.find('StateRoad_L@SiPing#1');//文字图层
+            //加载后隐藏
+            provinceRoad_textLayer.visible = false;
+            countyRoad_textLayer.visible = false;
+            stateRoad_textLayer.visible = false;
+            //关闭避让
+            provinceRoad_textLayer.isOverlapDisplayed = true;
+            countyRoad_textLayer.isOverlapDisplayed = true;
+            stateRoad_textLayer.isOverlapDisplayed = true;
+          });
+          // 8.添加水系NAME
+          let shuixi_name_url = that.superMapRootUrl + '/3D-shuixi_Name/rest/realspace';
+          that.shuixi_name = scene.open(shuixi_name_url);
+          that.shuixi_name.then(function (layers) {
+            let textlayer = scene.layers.find('ShuiXi@SiPing#1');//文字图层
+            //加载后隐藏
+            textlayer.visible = false;
+            //关闭避让
+            textlayer.isOverlapDisplayed = true;
+          });
+
+          //9.添加县界和乡镇界
+          let layer_xianjie = that.viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+            url: that.superMapRootUrl + "/map-SIPING/rest/maps/XianJie_XiangZhenJie",
+          }));
+
+          //10.添加区县乡镇村名称
+          let layer_xiangzhenjie_name = that.superMapRootUrl + '/3D-Name_he/rest/realspace';
+          scene.open(layer_xiangzhenjie_name);
+          that.road_name.then(function (layers) {
+            let xianJie_textLayer = scene.layers.find('XianJie@SiPing#1');//区县文字图层
+            let xiangZhenJie_textLayer = scene.layers.find('XiangZhenJie@SiPing#2');//乡镇文字图层
+            let cun_textLayer = scene.layers.find('Cun@SiPing#1');//村文字图层
+            //关闭避让
+            xianJie_textLayer.isOverlapDisplayed = true;
+            xiangZhenJie_textLayer.isOverlapDisplayed = true;
+            cun_textLayer.isOverlapDisplayed = true;
+          });
+
+          // //9.添加乡镇界
+          // let layer_xiangzhenjie = that.viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+          //   url : that.superMapRootUrl+"/map-SIPING/rest/maps/XiangZhenJie",
+          // }));
+          //
+          // //10.添加县界
+          // let layer_xianjie = that.viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+          //   url : that.superMapRootUrl+"/map-SIPING/rest/maps/XianJie",
+          // }));
+
+          // //11.添加县界名称 此处要先添加县界名称 否则县界名会不显示
+          // let layer_xianjie_name = that.superMapRootUrl+'/3D-XianJie_Name/rest/realspace';
+          // scene.open(layer_xianjie_name);
+          //
+          // //12.添加乡镇界名称
+          // let layer_xiangzhenjie_name = that.superMapRootUrl+'/3D-XiangZhenJie_Name/rest/realspace';
+          // scene.open(layer_xiangzhenjie_name);
+
+        }, 3000);
+        if (NB!='NB') {
+          if (type == 1) {//拾取点位
+            that.getLeftClickDescription(obj);
+          }
+          if (type == 2) {//标线
+            that.entityHandler(0);
+            that.setConnectList(obj.graphicsList, obj.color, obj.withAlpha);
+          }
+          if (type == 3) {//标面
+            that.entityHandler(1);
+            that.setGraphicsList1(obj.graphicsList, obj.color, obj.withAlpha);
+          }
+        }
+        if (NB=='NB' && type == 2){
+          // console.log(obj)
+          that.entityHandler(0);
+          // that.setConnectList(obj.graphicsList, obj.color, obj.withAlpha);
+          for (let i = 0; i < obj.length; i++) {
+            let arrayBlue = [];
+            let arrayRed = [];
+            // if (Array.isArray(obj[i].params)){
+              for (let j = 0; j < obj[i].params.length; j++) {
+                if (obj[i].id===666){
+                  arrayBlue.push(obj[i].params[j].lng);
+                  arrayBlue.push(obj[i].params[j].lat);
+                }
+                else {
+                  arrayRed.push(obj[i].params[j].lng);
+                  arrayRed.push(obj[i].params[j].lat);
+                }
+              }
+              that.setConnectTwoList(
+                Array.isArray(arrayRed) && arrayRed.length > 0 ? arrayRed : [],
+                "rgba(232,14,14,0)",
+                0.8
+              );
+            that.setConnectTwoList(
+              Array.isArray(arrayBlue) && arrayBlue.length > 0 ? arrayBlue : [],
+              "rgba(14,25,231,0)",
+              0.8
+            );
+            // }
+          }
+        }
+        that.viewer.selectedEntityChanged.addEventListener(function (entity) {
+          if (entity != undefined && Reflect.has(entity, 'layerID')) {
+            that.putSmUserID_layer(entity);
+          }
+        });
+      },
+      entityHandler(chooseDrawMode) {
+        let that = this;
+        that.markerList = [];
+        that.handler = new Cesium.DrawHandler(that.viewer, that.chooseMode[chooseDrawMode]);
+        that.handler.activeEvt.addEventListener(function (isActive) {
+          if (isActive == true) {
+            that.viewer.enableCursorStyle = false;
+            that.viewer._element.style.cursor = '';
+          } else {
+            that.viewer.enableCursorStyle = true;
+          }
+        });
+        that.viewer.scene.globe.depthTestAgainstTerrain = false
+        that.handler.activate();
+        var newhandler = new Cesium.ScreenSpaceEventHandler(that.viewer.scene.canvas);
+        newhandler.setInputAction(function (event) {
+          // 屏幕坐标转世界坐标——关键点
+          var ellipsoid = that.viewer.scene.globe.ellipsoid;
+          var cartesian = that.viewer.camera.pickEllipsoid(event.position, ellipsoid);
+          //将笛卡尔坐标转换为地理坐标
+          var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
+          //将弧度转为度的十进制度表示
+          var lon = Cesium.Math.toDegrees(cartographic.longitude);
+          var lat = Cesium.Math.toDegrees(cartographic.latitude);
+          let draw = {lng: 0, lat: 0};
+          draw.lng = lon;
+          draw.lat = lat;
+          if (!that.markerList.includes(draw)) {
+            that.markerList.push(draw);
+            that.$emit("showLatLng", {markerList: that.markerList});
+          }
+        }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
+      },
+      getLeftClickDescription(obj) {
+        let that = this
+        that.handler = new Cesium.ScreenSpaceEventHandler(that.viewer.scene.canvas);
+        if (obj.longitude) {
+          //在点击位置添加对应点
+          that.viewer.entities.add({
+            name: '',
+            position: Cesium.Cartesian3.fromDegrees(obj.longitude, obj.latitude),
+            billboard: {
+              image: iconList['marker'],
+              width: 48,
+              height: 48,
+              disableDepthTestDistance: Number.POSITIVE_INFINITY
+            },
+          })
+        }
+        //设置鼠标左键单击回调事件
+        that.handler.setInputAction(function (e) {
+          //首先移除之前添加的点
+          that.viewer.entities.removeAll();
+          //获取点击位置笛卡尔坐标
+          let position = that.viewer.scene.pickPosition(e.position);
+          //将笛卡尔坐标转化为经纬度坐标
+          let cartographic = Cesium.Cartographic.fromCartesian(position);
+          let longitude = Cesium.Math.toDegrees(cartographic.longitude);
+          let latitude = Cesium.Math.toDegrees(cartographic.latitude);
+          that.$emit("showLatLng", {latitude: latitude, longitude: longitude})
+          //在点击位置添加对应点
+          that.viewer.entities.add({
+            name: '',
+            position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
+            billboard: {
+              image: iconList['marker'],
+              width: 48,
+              height: 48,
+              heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+              disableDepthTestDistance: Number.POSITIVE_INFINITY
+            },
+          })
+          that.markerboxEntity.push(marker)
+          that.viewer.scene.globe.depthTestAgainstTerrain = false
+        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+      },
+      /**
+       * 地图落点
+       */
+      setMarkers(makerList) {
+        let that = this
+        that.handler = new Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas)
+        for (let i in makerList) {
+          let longitude = makerList[i].lng;
+          let latitude = makerList[i].lat;
+          let marker = that.viewer.entities.add({
+            name: "",
+            position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
+            billboard: {
+              image: iconList[makerList[i].icon],
+              width: 48,
+              height: 48,
+              heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+              disableDepthTestDistance: Number.POSITIVE_INFINITY
+            },
+            description: makerList[i].bindPopupHtml,
+            click: makerList[i].click,
+            parameter: makerList[i].parameter
+          })
+          that.markerboxEntity.push(marker)
+        }
+        that.viewer.scene.globe.depthTestAgainstTerrain = false
+        that.createLeftClickDescription()
+        that.createRightClickDescription()
+      },
+      /**
+       *鼠标左击事件是原来的气泡
+       */
+      createLeftClickDescription() {
+        let that = this;
+        that.handler.setInputAction(function (movement) {
+          that.pick = that.viewer.scene.pick(movement.position);
+          if (that.pick && that.pick) {
+            let id = Cesium.defaultValue(that.viewer.scene.pick(movement.position).id, that.viewer.scene.pick(
+              movement.position).primitive.id);
+
+            let html = id._description;
+            if (html != undefined && html._value != null && html._value != '') {
+              that.bindPopupHtml = html
+              that.mapshow = true
+            } else {
+              that.mapshow = false
+            }
+          } else {
+            that.mapshow = false
+          }
+        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+      },
+      /**
+       *鼠标右击事件是原来的点击
+       */
+      createRightClickDescription() {
+        let that = this;
+        that.handler.setInputAction(function (movement) {
+          that.mapshow = false
+          // 监听鼠标的当前位置坐标,然后根据当前坐标去动态更新气泡窗口div的显示位置;
+          that.pick = that.viewer.scene.pick(movement.position);
+          if (that.pick && that.pick) {
+            let id = Cesium.defaultValue(that.viewer.scene.pick(movement.position).id, that.viewer.scene.pick(movement.position).primitive.id);
+            let clickName = id._click;
+            that.$emit(clickName, id._parameter)
+          }
+        }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
+      },
+      /**
+       * 落点定位
+       */
+      dropLocation(lat, lng) {
+        this.viewer.camera.flyTo({
+          destination: Cesium.Cartesian3.fromDegrees(lng, lat, 3000),
+        });
+      },
+      /**
+       * 地图画线(贴地)
+       */
+
+      setGraphicsList1(graphicsList, color, withAlpha) {
+        let that = this;
+        that.viewer.entities.removeAll(); // 移除地图标点
+        let material = Cesium.Color.fromCssColorString(color).withAlpha(withAlpha);
+        for (let i = 0; i < graphicsList.length; i++) {
+          let positions = Cesium.Cartesian3.fromDegreesArray(graphicsList[i].latLng);
+          let name = graphicsList[i].name.toString();
+          let center = Cesium.BoundingSphere.fromPoints(positions).center;
+          let namePosition = Cesium.Cartographic.fromCartesian(center);
+          namePosition.height = 0; // 将名称高度设置为0,使其贴地显示
+
+          that.graphicsBoxEntity = that.viewer.entities.add({
+            polygon: {
+              hierarchy: positions,
+              clampToGround: true,
+              width: 5,
+              material: material
+            }
+          });
+
+          that.viewer.entities.add({
+            position: center,
+            label: {
+              text: name ,
+              font: 'Bold 12px sans-serif',
+              fillColor: Cesium.Color.BLACK,
+              outlineColor: Cesium.Color.WHITE,
+              outlineWidth: 2,
+              pixelOffset: new Cesium.Cartesian2(0, 0),
+              heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+              disableDepthTestDistance: Number.POSITIVE_INFINITY
+            }
+          });
+        }
+      },
+      // setTimeout(() => {
+      //   if(graphicsList!=null&&Array.isArray(graphicsList)&&graphicsList.length>0){
+      //     that.viewer.camera.flyTo({
+      //       destination: Cesium.Cartesian3.fromDegrees(graphicsLists[0],graphicsLists[1],6500),
+      //       complete: function () {
+      //         // 飞行结束后设置相机的高度
+      //         var newHeight = 6500;
+      //         var destination = that.viewer.camera.position.clone();
+      //         destination.z = newHeight;
+      //       }
+      //     });
+      //   }
+      // }, 3000);
+      /**
+       * 地图图形(贴地)
+       */
+      setGraphicsList(graphicsList, color, withAlpha) {
+        let that = this
+        //Cesium.Color.fromCssColorString('#67ADDF')   16进制颜色设置
+        console.log(graphicsList)
+        let material = Cesium.Color.fromCssColorString(color).withAlpha(withAlpha);
+        for (let i = 0; i < graphicsList.length; i++) {
+          that.graphicsBoxEntity = that.viewer.entities.add({
+            polygon: {
+              hierarchy: Cesium.Cartesian3.fromDegreesArray(graphicsList[i].latLng),
+              clampToGround: true,//贴地 true,不贴地  false
+              width: 5,
+              material: material
+            }
+          })
+        }
+        // setTimeout(() => {
+        //   if(graphicsList!=null&&Array.isArray(graphicsList)&&graphicsList.length>0){
+        //     that.viewer.camera.flyTo({
+        //       destination: Cesium.Cartesian3.fromDegrees(graphicsList[0],graphicsList[1],6500),
+        //       complete: function () {
+        //         // 飞行结束后设置相机的高度
+        //         var newHeight = 6500;
+        //         var destination = that.viewer.camera.position.clone();
+        //         destination.z = newHeight;
+        //       }
+        //     });
+        //   }
+        // }, 3000);
+      }
+    },
+  }
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+  .map-tit {
+    position: absolute;
+    top: 90px;
+    left: 50%;
+    transform: translatex(-50%);
+    border: 1px solid #15519b;
+    z-index: 9999;
+    background: linear-gradient(rgba(4, 23, 62, 0.6), rgba(0, 28, 70, 0.6));
+    min-width: 300px;
+
+    .top-tit {
+      width: 100%;
+      height: 28px;
+      line-height: 28px;
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      background: #15519b80;
+      padding: 0px 10px;
+      align-items: center;
+
+      i {
+        color: #10ccff;
+        font-size: 18px;
+        text-shadow: 0px 0px 5px #23b3b3;;
+      }
+
+      span img {
+        display: block;
+        width: 12px;
+        height: 12px;
+        color: #fff;
+        cursor: pointer;
+      }
+    }
+
+    .map-txt {
+      padding: 10px 15px;
+      color: #fff;
+      line-height: 20px;
+      font-size: 12px;
+
+      .d-l-con {
+      }
+    }
+  }
+
+  .fade-enter-active,
+  .fade-leave-active {
+    transition: 1s;
+  }
+
+  .fade-enter,
+  .fade-leave-to {
+    opacity: 0;
+    transform: translateY(-10rem);
+  }
+</style>

+ 10 - 12
data-ui/src/views/components/supermap-2.5d.vue

@@ -4,17 +4,11 @@
 </template>
 
 <script>
-  import {
-    iconList,
-    getDeviceList
-  } from '@/api/components/supermap.js'
-  import {
-    getConfigKey
-  } from '@/api/system/config'
-  import Cookies from 'js-cookie'
-
-  export default {
-    name: 'supermap-2.5d',
+import {iconList} from '@/api/components/supermap.js'
+import {getConfigKey} from '@/api/system/config'
+
+export default {
+    name: 'supermap-camera-2.5d',
     data() {
       return {
         chooseMode: [
@@ -75,7 +69,11 @@
       },
       //清除所有
       clearAll() {
-        this.viewer.entities.removeAll()
+        this.viewer.entities.removeAll();
+      },
+      clearAllByQin(val) {
+        this.viewer.entities.removeAll();
+        this.entityHandler(val-2)
       },
       //移除之前添加的点
       clearMRadius() {

+ 23 - 7
data-ui/src/views/data/basicdata/firehydrant/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="消火栓名称" prop="name" label-width="120px">
+      <el-form-item label="名称" prop="name" label-width="120px">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入消火栓名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -142,7 +142,7 @@
     <el-table v-loading="loading" :data="firehydrantList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--      <el-table-column label="主键id" align="center" prop="id" />-->
-      <el-table-column label="消火栓名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="消火栓类型" align="center" prop="firehydrantType">
         <template slot-scope="scope">
           <dict-tag :options="dict.type.firehydrant" :value="scope.row.firehydrantType"/>
@@ -206,7 +206,7 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入消火栓名称" maxlength="32"/>
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="32"/>
             </el-form-item>
             <el-form-item label="联系人" prop="firehydrantPerson">
               <el-input v-model="form.firehydrantPerson" placeholder="请输入联系人" maxlength="20"/>
@@ -263,6 +263,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -277,7 +285,7 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入消火栓名称" :disabled="true"/>
+              <el-input v-model="form.name" placeholder="请输入名称" :disabled="true"/>
             </el-form-item>
             <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
               <el-input v-model="form.longitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
@@ -341,13 +349,15 @@
   import {checkLon, checkLat, validPhoneMobile} from "@/api/rules/rules";
   import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
   import ISuperMap from "@/views/data/common/ISuperMap";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     components: {
       deptselector,
       Treeselect,
       supermap,
-      ISuperMap
+      ISuperMap,
+      DataImageUpload
     },
     name: "Firehydrant",
     dicts: ['firehydrant'],
@@ -399,7 +409,7 @@
         // 表单校验
         rules: {
           name: [
-            {required: true, message: '消火栓名称不能为空', trigger: 'blur'},
+            {required: true, message: '名称不能为空', trigger: 'blur'},
             {min: 1, max: 255, trigger: 'blur'}
           ],
           firehydrantType: [
@@ -437,6 +447,12 @@
       });
     },
     methods: {
+      getUrl(url) {
+        //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+        this.form.attachPaths = url
+        //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+        // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 16 - 0
data-ui/src/views/data/basicdata/watercrane/index.vue

@@ -221,6 +221,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -319,9 +327,11 @@
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import ISuperMap from "@/views/data/common/ISuperMap";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     components: {
+      DataImageUpload,
       deptselector,
       supermap,
       Treeselect,
@@ -409,6 +419,12 @@
       });
     },
     methods: {
+      getUrl(url) {
+        //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+        this.form.attachPaths = url
+        //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+        // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+      },
       /** 查询部门下拉树结构 */
       getTreeselect() {
         treeselect().then(response => {

+ 17 - 1
data-ui/src/views/data/basicdata/waterintake/index.vue

@@ -221,6 +221,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-show=!disabled>确 定</el-button>
@@ -257,12 +265,14 @@
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import ISuperMap from "@/views/data/common/ISuperMap";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     components: {
       deptselector,
       supermap,
       Treeselect,
-      ISuperMap
+      ISuperMap,
+      DataImageUpload
 
     },
     name: "Waterintake",
@@ -342,6 +352,12 @@
       });
     },
     methods: {
+      getUrl(url) {
+        //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+        this.form.attachPaths = url
+        //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+        // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+      },
       /** 查询部门下拉树结构 */
       getTreeselect() {
         treeselect().then(response => {

+ 12 - 0
data-ui/src/views/data/common/ISuperMap.vue

@@ -77,6 +77,18 @@
         this.obj.longitude = lng;
       },
       init(sign, form,NB,type) {
+        const regex = /^\d+(\.\d+)?$/;
+        if (this.$parent.form.latitude == null||this.$parent.form.longitude == null) {
+
+        }else{
+          if (!regex.test(form.longitude) && !regex.test(form.latitude)) {
+            this.$message.warning('无效字符');
+            this.visible = false;
+            this.$parent.ISuperMapvisible = false;
+            this.$parent.form.latitude = null;
+            this.$parent.form.longitude = null;
+          }
+        }
         if(NB=='NB'){
           getConfigKey('supermapKey').then(response => {
             let isN = response.msg;

+ 202 - 24
data-ui/src/views/data/common/ISuperMapAreaMarker.vue

@@ -13,29 +13,111 @@
             <el-button type="primary" @click="closeDialog">确定</el-button>
     </el-dialog>
     <el-dialog title="区域坐标" :visible.sync="showLongitudeq" @close='close' width="80%">
-      <Supermap ref="areaSupermap" style="width: 100%;height:75vh"
-                :mapDiv="uuid" :mapSite="{doubleClickZoom:false}" :codes="['9fa5']"
-                :isSideBySide="false" :showAreaLatLng="showAreaLatLng"></Supermap>
-            <el-button type="primary" @click="closeDialog">确定</el-button>
+      <div style="width: 100%; display: flex;">
+        <div style="width: 20%; float: left;">
+          <el-table ref="table" v-loading="loading" :data="tableData" height="100%"  v-if="sign===3" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55" align="center"/>
+            <el-table-column prop="name" label="区域名称" width="180"></el-table-column>
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="['farm:farmland:edit']"
+                >修改
+                </el-button>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-delete"
+                  @click="handleDelete(scope.row)"
+                >删除
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
 
+        <div style="width: 80%; float: left;">
+          <Supermap ref="areaSupermap" style="width: 100%;height:75vh"
+                    :mapDiv="uuid" :mapSite="{doubleClickZoom:false}" :codes="['9fa5']"
+                    :isSideBySide="false" :showAreaLatLng="showAreaLatLng"></Supermap>
+        </div>
+      </div>
+      <el-button type="primary" @click="closeDialog">确定</el-button>
+      <el-button @click="clearAway">清除</el-button>
     </el-dialog>
     <el-dialog :title="(sign===1?'经纬度':(sign===2?'线坐标':'区域坐标'))" :visible.sync="visible" append-to-body
                width="90%"
                height="60%"
                @close='close'>
-      <supermap ref="supermap" style="width: 100%; height: 75vh" :putSmUserID_layer="putSmUserID_layer"
-                @showLatLng="showLatLng"></supermap>
+      <div style="width: 100%; display: flex;">
+        <div style="width: 20%; float: left;">
+          <el-table ref="table" v-loading="loading" :data="tableData" height="100%"  v-if="sign===3" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55" align="center"/>
+            <el-table-column prop="name" label="区域名称" width="180"></el-table-column>
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="['farm:farmland:edit']"
+                >修改
+                </el-button>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-delete"
+                  @click="handleDelete(scope.row)"
+                >删除
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+
+        <div style="width: 80%; float: left;">
+          <supermap ref="supermap" style="width: 100%; height: 75vh;" :putSmUserID_layer="putSmUserID_layer" @showLatLng="showLatLng"></supermap>
+        </div>
+      </div>
             <el-button type="primary" @click="closeDialog">确定</el-button>
-    </el-dialog></div>
+            <el-button @click="clearAway">清除</el-button>
+    </el-dialog>
+
+
+  <el-dialog :title="title" :visible.sync="visibleName" append-to-body  width="400px">
+    <el-form ref="obj" :model="obj" :rules="rules" label-width="100px">
+      <el-form-item label="区域名称" prop="name">
+        <el-input v-model="obj.name" placeholder="请输入区域名称" maxlength="20"/>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm">确 定</el-button>
+      <el-button @click="cancel">取 消</el-button>
+    </div>
+  </el-dialog>
+</div>
 </template>
 
 
 <script>
 import {getConfigKey} from "@/api/system/config";
+
+import {
+  delRegionalFlagByFlagType,
+  getRegionalFlag,
+  updateInfo,
+  updateRegionalFlag
+} from '@/api/data/digitalresources/info'
 import request from '@/utils/request'
 const uuidv4 = require("uuid/v4")
-import supermap from '@/views/components/supermap-2.5d';
-import Supermap from './supermap';
+import supermap from '@/views/components/supermap-2.5d-multiple';
+import Supermap from '@/views/data/common/supermap';
+import { delFarmland, getFarmland, updateFarmland } from '@/api/data/digitalresources/farmland'
 export default {
   name: "ISuperMapArearAndCameras",
   components: {supermap, Supermap},
@@ -44,6 +126,13 @@ export default {
   // },
   data() {
     return {
+      // 遮罩层
+      loading: true,
+      eventId:null,
+      visibleName:false,
+      id:null,
+      arr:[],
+      tableData:[],
       cameraMarkersList:[],
       visuForestCloudCameraBOList:[],
       visuForestCloudCameraBOListSearch:[],
@@ -58,9 +147,18 @@ export default {
         longitude: undefined,
         latitude: undefined,
         xiantude: undefined,
+        name:undefined,
+      },
+      rules: {
+        name: [
+          {required: true, message: "区域名称不能为空", trigger: "change" }
+        ],
       }
     };
   },
+  created() {
+    this.getRegionalFlag();
+  },
   methods: {
     putSmUserID_layer: function (entity) {
 
@@ -68,6 +166,26 @@ export default {
     showAreaLatLng: function (latlng) {
       this.obj.xiantude = JSON.stringify(latlng);
     },
+
+    /** 区域标记按钮操作 */
+    getRegionalFlag() {
+      this.loading = true;
+      getRegionalFlag(this.eventId).then(response => {
+        this.tableData = response.data;
+        this.loading = false;
+      })
+    },
+    //删除
+    handleDelete(row){
+      this.$modal.confirm('是否确认删除选中的数据项?').then(function () {
+        return delRegionalFlagByFlagType(row.eventId,row.flagType);
+      }).then(() => {
+        this.clearAway();
+        this.getRegionalFlag();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
     showLatLng: function (val) {
       if (this.sign === 1) {
         this.obj.longitude = val.longitude;
@@ -81,12 +199,19 @@ export default {
       this.obj.latitude = lat;
       this.obj.longitude = lng;
     },
-    initP(sign, form) {
+    clearAway(){
+      this.$refs.table.clearSelection();
+      if (this.showLongitudeq == true) this.$refs.areaSupermap.clearAll();
+      if (this.visible == true)this.$refs.supermap.clearAllByQin(this.sign)
+      this.obj.xiantude = null;
+    },
+    initP(sign, form,eventId) {
       getConfigKey('supermapKey').then(response => {
         let isN = response.msg;
         if (isN === 'true') this.visible = true;
         if (isN === 'false') sign === 2 ? this.showLongitudex = true : (sign === 1 ? this.showLongitude = true : this.showLongitudeq = true);
         this.sign = sign;
+        this.eventId = eventId
         this.uuid = uuidv4();
         this.$nextTick(() => {
             //2d 点
@@ -115,15 +240,12 @@ export default {
             }
             //2.5d 线/区域
             if ((this.sign === 2 && this.visible === true) || (this.sign === 3 && this.visible === true)) {
-              const arr = JSON.parse(form.xiantude == undefined || form.xiantude == null ? "[]" : form.xiantude);
-              const array = [];
-              for (let i = 0; i < arr.length; i++) {
-                array.push(arr[i].lng);
-                array.push(arr[i].lat);
-              }
+              // const arr = JSON.parse(form.xiantude == undefined || form.xiantude == null ? "[]" : form.xiantude);
+              // console.log(arr)
+              this.getRegionalFlag();
               setTimeout(() => {
                 this.$refs.supermap.superMapInfo(this.sign, {
-                  graphicsList: array && array.length > 0 ? array : [],
+                  graphicsList: this.arr && this.arr.length > 0 ? this.arr : [],
                   color: "rgba(250,4,4,0)",
                   withAlpha: 0.8
                 });
@@ -138,10 +260,11 @@ export default {
             }
             //2d 区域
             if (this.sign === 3 && this.showLongitudeq === true) {
-              const arr = JSON.parse(form.xiantude);
+              this.getRegionalFlag();
+              // const arr = JSON.parse(form.xiantude);
               setTimeout(() => {
                 this.$refs.areaSupermap.setGraphicsList(
-                  arr && arr.length > 0 ? arr : [],
+                  this.arr && this.arr.length > 0 ? this.arr : [],
                   "#1a1919");
               }, 2000)
             }
@@ -149,13 +272,68 @@ export default {
         )
       })
     },
+    handleSelectionChange(selection) {
+      if ((this.sign === 2 && this.visible === true) || (this.sign === 3 && this.visible === true)) {
+        this.$refs.supermap.entityHandler(1);
+        this.$refs.supermap.setGraphicsList1(selection, "rgba(250,4,4,0)", 0.8);
+      }
 
+      if (this.sign === 3 && this.showLongitudeq === true) {
+        this.$refs.areaSupermap.clearAll();
+        for (let i = 0; i < selection.length; i++) {
+          let graphicsList = [];
+
+          for (let j = 0; j < selection[i].latLng.length; j+=2) {
+            graphicsList.push({lng:selection[i].latLng[j],lat:selection[i].latLng[j+1]});
+          }
+          this.$refs.areaSupermap.setGraphicsList(graphicsList, "#1a1919",selection[i].name);
+        }
+        // this.$refs.areaSupermap.setGraphicsList([{lat:"124",lng:"42"},{lat:"24",lng:"142"},{lat:"11",lng:"42"},{lat:"2",lng:"1"},{lat:"124",lng:"42"}], "#1a1919");
+        // this.$refs.areaSupermap.setGraphicsList([{lat:"122.552490234375",lng:"45.78276229037425"},{lat:"131.275634765625",lng:"45.716885087220255"},{lat:"127.96875",lng:"42.53282026811079"},{lat:"122.67333984375",lng:"43.19159229965069"}], "#1a1919");
+      }
+    },
+    submitForm(){
+      this.$refs["obj"].validate(valid => {
+          if (valid) {
+            if (this.id) {
+              updateRegionalFlag(this.obj).then(response => {
+                this.$modal.msgSuccess("修改成功");
+                this.getRegionalFlag();
+              });
+            } else {
+              this.$emit('send', this.obj);
+            }
+            this.visibleName = false;
+            this.clearAway();
+            // this.visible = false;
+            this.showLongitude = false;
+            this.showLongitudex = false;
+            // this.showLongitudeq = false;
+          }
+      });
+    },
+    cancel(){
+      this.obj.name = null;
+      this.visibleName = false;
+      this.clearAway();
+    },
+    reset() {
+      this.obj.name=null,
+      this.resetForm("obj");
+    },
+        handleUpdate(row) {
+        this.reset();
+        this.obj.eventId = this.eventId
+        this.obj.flagType = row.flagType
+        this.id = 1;//修改表标识
+        this.visibleName = true;
+        this.title = "修改区域标记";
+    },
     closeDialog() {
-      if (this.obj.longitude || (this.obj.xiantude && JSON.parse(this.obj.xiantude).length > 0)) this.$emit('send', this.obj);
-      this.visible = false;
-      this.showLongitude = false;
-      this.showLongitudex = false;
-      this.showLongitudeq = false;
+      this.reset();
+      this.id = null;
+      this.title = "添加区域标记";
+      if (this.obj.longitude || (this.obj.xiantude && JSON.parse(this.obj.xiantude).length > 0))this.visibleName = true;
     },
     closeDialogsend() {
       this.$emit('send', 666);

+ 1 - 1
data-ui/src/views/data/common/ISuperMapTemp.vue

@@ -35,7 +35,7 @@
   import {getConfigKey} from "@/api/system/config";
 
   const uuidv4 = require("uuid/v4")
-  import supermap from '@/views/components/supermap-2.5d';
+  import supermap from '@/views/components/supermap-2.5d-multiple';
   import Supermap from './supermap';
 
 

+ 44 - 5
data-ui/src/views/data/common/supermap.vue

@@ -256,6 +256,16 @@
           this.graphicsLayer.clearLayers();
         }
       },
+      //清除所有
+      clearAll() {
+        if (this.map) {
+          this.map.eachLayer(function (layer) {
+            if (layer instanceof window.L.Marker || layer instanceof window.L.Polygon) {
+              this.map.removeLayer(layer);
+            }
+          }, this);
+        }
+      },
       clearP: async function () {//清理点击事件落点
         if (this.latLngGroup != undefined && this.latLngGroup != false) {
           this.latLngGroup.clearLayers()
@@ -715,16 +725,45 @@
         _that.connectLayer = window.L.featureGroup().addTo(this.map);
         _that.connectLayer.addLayer(polyline);
       },
-      setGraphicsList: function (graphicsList, color) {//地图图形
+      // setGraphicsList: function (graphicsList, color) {//地图图形
+      //   const _that = this;
+      //   let points = [];
+      //   for (let i = 0; i < graphicsList.length; i++) {
+      //     points.push([graphicsList[i].lat, graphicsList[i].lng]);//创建点
+      //   }
+      //   let polygon = window.L.polygon(points, {color: color});
+      //   polygon.addTo(this.map);
+      //   _that.graphicsLayer = window.L.featureGroup().addTo(this.map);
+      //   _that.graphicsLayer.addLayer(polygon);
+      // },
+      setGraphicsList: function (graphicsList, color,name) {//地图图形
         const _that = this;
         let points = [];
+        let polygons = new Map(); // 使用 Map 记录 Polygon 和对应的 Popup
         for (let i = 0; i < graphicsList.length; i++) {
           points.push([graphicsList[i].lat, graphicsList[i].lng]);//创建点
         }
-        let polygon = window.L.polygon(points, {color: color});
-        polygon.addTo(this.map);
-        _that.graphicsLayer = window.L.featureGroup().addTo(this.map);
-        _that.graphicsLayer.addLayer(polygon);
+        if (name){
+          let polygon = window.L.polygon(points, {color: color}); // 创建 Polygon
+          let center = polygon.getBounds().getCenter();
+          let namePopup = window.L.popup().setLatLng([center.lat, center.lng])
+            .setContent(name); // 创建对应的 Popup
+          namePopup.addTo(this.map);
+          polygon.bindPopup(namePopup); // 将 Popup 绑定到 Polygon
+          polygon.addTo(this.map);
+          _that.graphicsLayer = window.L.featureGroup().addTo(this.map);
+          _that.graphicsLayer.addLayer(polygon);
+
+          polygons.set(polygon, namePopup); // 将 Polygon 和 Popup 记录在 Map 中
+          // 在需要移除时,可以通过 polygons.get(polygon).remove() 移除对应的 Popup
+        }else {
+            let polygon = window.L.polygon(points, {color: color});
+            polygon.addTo(this.map);
+            _that.graphicsLayer = window.L.featureGroup().addTo(this.map);
+            _that.graphicsLayer.addLayer(polygon);
+        }
+
+
       },
       dropLocation: function (lat, lng) {//落点定位
         this.controlLevel(10)

+ 23 - 7
data-ui/src/views/data/digitalagriculture/agricultural_cooperatives/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-if="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label-width="130px" label="单位名称" prop="name">
+      <el-form-item label-width="130px" label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入单位名称"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -150,7 +150,7 @@
     <el-table v-loading="loading" :data="CooperativesList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="${comment}" align="center" prop="id" />-->
-      <el-table-column label="单位名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <!--<el-table-column label="详细通讯地址" align="center" prop="address" />
       <el-table-column label="注册登记机关" align="center" prop="registrationAuthority" />-->
       <!--<el-table-column label="注册时间" align="center" prop="registerDate" width="180">
@@ -221,8 +221,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="150px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="单位名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入单位名称" maxlength="30"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="30"/>
             </el-form-item>
 
             <el-form-item label="经营规模" prop="registrationAuthority">
@@ -298,6 +298,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <!--<el-form-item label-width="auto" label="备注" prop="remarks">-->
         <!--<el-input v-model="form.remarks" placeholder="请输入备注" />-->
         <!--</el-form-item>-->
@@ -367,6 +375,7 @@
   import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
   import request from "@/utils/request";
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Cooperatives",
@@ -376,6 +385,7 @@
       Deptselector,
       Treeselect,
       supermap,
+      DataImageUpload
     },
     data() {
       return {
@@ -464,8 +474,8 @@
         // 表单校验
         rules: {
           name: [
-            {required: true, message: "单位名称不能为空", trigger: "blur"},
-            {min: 2, max: 20, message: '单位名称长度必须介于 2 和 20 之间', trigger: 'blur'}
+            {required: true, message: "名称不能为空", trigger: "blur"},
+            {min: 2, max: 20, message: '名称长度必须介于 2 和 20 之间', trigger: 'blur'}
           ],
           legalPerson: [
             {required: true, message: "法人姓名不能为空", trigger: "blur"},
@@ -505,6 +515,12 @@
       this.getTreeselect();
     },
     methods: {
+      getUrl(url) {
+        //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+        this.form.attachPaths = url
+        //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+        // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 23 - 7
data-ui/src/views/data/digitalagriculture/botany_protect_info/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-if="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label-width="130px" label="单位名称" prop="name">
+      <el-form-item label-width="130px" label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入单位名称"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -159,7 +159,7 @@
     <el-table v-loading="loading" :data="BotanyProtectInfoList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="${comment}" align="center" prop="id" />-->
-      <el-table-column label="单位名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="详细通讯地址" align="center" prop="address" />
       <!--<el-table-column label="注册登记机关" align="center" prop="registrationAuthority" />-->
       <!--<el-table-column label="注册时间" align="center" prop="registerDate" width="180">-->
@@ -224,8 +224,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="单位名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入单位名称" maxlength="20"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="20"/>
             </el-form-item>
             <el-form-item label="详细通讯地址" prop="address">
               <el-input v-model="form.address" placeholder="请输入详细通讯地址" maxlength="20"/>
@@ -287,6 +287,14 @@
             <!--</el-form-item>-->
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -357,6 +365,7 @@
   import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
   import request from "@/utils/request";
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "BotanyProtectInfo",
@@ -365,6 +374,7 @@
       Deptselector,
       Treeselect,
       supermap,
+      DataImageUpload
     },
     data() {
       return {
@@ -446,8 +456,8 @@
           //   {required: true, message: "法人姓名不能为空", trigger: "blur"},
           // ],
           name: [
-            {required: true, message: "单位名称不能为空", trigger: "blur"},
-            {min: 2, max: 20, message: '单位名称长度必须介于 2 和 20 之间', trigger: 'blur'}
+            {required: true, message: "名称不能为空", trigger: "blur"},
+            {min: 2, max: 20, message: '名称长度必须介于 2 和 20 之间', trigger: 'blur'}
           ],
           membersNum: [
             {required: true, message: "从业人数不能为空", trigger: "blur"},
@@ -483,6 +493,12 @@
       this.getTreeselect();
     },
     methods: {
+      getUrl(url) {
+        //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+        this.form.attachPaths = url
+        //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+        // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+      },
       setDataDeptId(e) {
         this.form.deptId = e.deptId;
         this.form.deptName = e.deptName;

+ 6 - 6
data-ui/src/views/data/digitalagriculture/breedingFarm/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="true" label-width="90px" @submit.native.prevent>
-      <el-form-item label="户主名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入户主名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -67,7 +67,7 @@
 
     <el-table v-loading="loading" :data="breedingFarmList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="户主名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="年份" align="center" prop="year"/>
       <el-table-column label="数量" align="center" prop="number"/>
       <el-table-column label="种类" align="center" prop="varieties">
@@ -139,8 +139,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="户主名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入户主名称名称" maxlength="32"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称名称" maxlength="32"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -349,7 +349,7 @@
         // 表单校验
         rules: {
           name: [
-            {required: true, message: "户主名称名称不能为空", trigger: "blur"}
+            {required: true, message: "名称名称不能为空", trigger: "blur"}
           ],
           deptId: [
             {required: true, message: "所属部门不能为空", trigger: "change"}

+ 10 - 3
data-ui/src/views/data/digitalagriculture/enterprise/index.vue

@@ -230,6 +230,13 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :file-type="['png','jpg','jpeg']" :value="form.attachPaths" @input="getUrl"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -265,11 +272,11 @@
   import Treeselect from '@riophae/vue-treeselect'
   import '@riophae/vue-treeselect/dist/vue-treeselect.css'
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
-
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue"
   export default {
     name: "Enterprise",
     dicts: ['sys_dept_type'],
-    components: {ISuperMap, Deptselector, Supermap,fileUpload , Treeselect},
+    components: {ISuperMap, Deptselector, Supermap,fileUpload , Treeselect ,DataImageUpload},
     data() {
       return {
         ISuperMapvisible: false,
@@ -395,7 +402,7 @@
         this.$refs.form.validateField('deptId');
       },
       getUrl(url) {
-        alert('0');
+        this.form.attachPaths = url
       },
       setFileName(fileName) {
         let that = this

+ 12 - 0
data-ui/src/views/data/digitalagriculture/excrementdispose/index.vue

@@ -176,6 +176,13 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :file-type="['png','jpg','jpeg']" :value="form.attachPaths" @input="getUrl"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -214,10 +221,12 @@
   import Treeselect from '@riophae/vue-treeselect'
   import '@riophae/vue-treeselect/dist/vue-treeselect.css'
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Excrementdispose",
     components: {
+      DataImageUpload,
       ISuperMap,
       Deptselector,
       Treeselect,
@@ -325,6 +334,9 @@
           })
         })
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       send(val) {
         if (val===true){
           this.ISuperMapvisible = false;

+ 18 - 8
data-ui/src/views/data/digitalagriculture/filingsLivestock/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px" @submit.native.prevent>
-      <el-form-item label="养殖场名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入养殖场名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -83,7 +83,7 @@
 
     <el-table v-loading="loading" :data="filingsLivestockList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="养殖场名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="详细通讯地址" align="center" prop="address"/>
       <el-table-column label="所属部门" align="center" prop="deptName"/>
       <el-table-column label="经度" align="center" prop="longitude"/>
@@ -148,8 +148,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="养殖场名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入养殖场名称" maxlength="50"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="50"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -250,6 +250,13 @@
               <el-input v-model="form.dataSource" placeholder="请输入数据来源" maxlength="200"/>
             </el-form-item>
           </el-col>
+      </el-row >
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :file-type="['png','jpg','jpeg']" :value="form.attachPaths" @input="getUrl"/>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -285,11 +292,11 @@
   import Treeselect from '@riophae/vue-treeselect'
   import '@riophae/vue-treeselect/dist/vue-treeselect.css'
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
-
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue"
   export default {
     name: "FilingsLivestock",
     dicts: ['centerdata_breeding_variety', 'sys_dept_type'],
-    components: {ISuperMap, Treeselect, Deptselector,supermap},
+    components: {ISuperMap, Treeselect, Deptselector,supermap,DataImageUpload},
     data() {
       return {
         ISuperMapvisible: false,
@@ -344,7 +351,7 @@
         // 表单校验
         rules: {
           name: [
-            {required: true, message: "养殖场名称不能为空", trigger: "blur"}
+            {required: true, message: "名称不能为空", trigger: "blur"}
           ],
           deptId: [
             {required: true, message: "所属部门不能为空", trigger: "change"}
@@ -496,6 +503,9 @@
         this.single = selection.length !== 1
         this.multiple = !selection.length
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       /** 新增按钮操作 */
       handleAdd() {
         this.reset();

+ 12 - 7
data-ui/src/views/data/digitalagriculture/greenhousefilm/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="98px" @submit.native.prevent>
-      <el-form-item label="棚膜园区名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入棚膜园区名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -83,7 +83,7 @@
 
     <el-table v-loading="loading" :data="greenhousefilmList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="棚膜园区名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="园区地址" align="center" prop="address"/>
       <el-table-column label="经营主体名称" align="center" prop="operateName"/>
       <el-table-column label="园区总栋数" align="center" prop="parkBuilds"/>
@@ -128,8 +128,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="110px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="棚膜园区名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入棚膜园区名称" maxlength="20"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="20"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -259,8 +259,8 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="图片" prop="parkUrl">
-              <image-upload v-model="form.parkUrl" :limit="1" :is-show-tip="false" :allow-upload="false"/>
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :file-type="['png','jpg','jpeg']" :value="form.attachPaths" @input="getUrl"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -301,11 +301,13 @@
   import Treeselect from '@riophae/vue-treeselect'
   import '@riophae/vue-treeselect/dist/vue-treeselect.css'
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Greenhousefilm",
     dicts: ['park_nature', 'plant_category'],
     components: {
+      DataImageUpload,
       ISuperMap,
       Deptselector,
       Treeselect,
@@ -448,6 +450,9 @@
         // if (this.sign === 2 || this.sign === 3) this.form.longitude = val.xiantude;
         this.ISuperMapvisible = false
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       /** 查询部门下拉树结构 */
       getTreeselect() {
         treeselect().then(response => {

+ 12 - 12
data-ui/src/views/data/digitalagriculture/information/index.vue

@@ -1,11 +1,11 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="计划使用量" prop="planUsage" label-width="100px">
-        <el-input v-model="queryParams.planUsage" placeholder="请输入计划使用量" maxlength="20"/>
+      <el-form-item label="计划使用量(吨)" prop="planUsage" label-width="125px">
+        <el-input v-model="queryParams.planUsage" placeholder="请输入计划使用量(吨)" maxlength="15"/>
       </el-form-item>
-      <el-form-item label="实际使用量" prop="realityUsage" label-width="100px">
-        <el-input v-model="queryParams.realityUsage" placeholder="请输入实际使用量" maxlength="20"/>
+      <el-form-item label="实际使用量(吨)" prop="realityUsage" label-width="125px">
+        <el-input v-model="queryParams.realityUsage" placeholder="请输入实际使用量(吨)" maxlength="15"/>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -66,8 +66,8 @@
     <el-table v-loading="loading" :data="informationList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="所属部门" align="center" prop="deptName"/>
-      <el-table-column label="计划使用量" align="center" prop="planUsage"/>
-      <el-table-column label="实际使用量" align="center" prop="realityUsage"/>
+      <el-table-column label="计划使用量(吨)" align="center" prop="planUsage"/>
+      <el-table-column label="实际使用量(吨)" align="center" prop="realityUsage"/>
       <el-table-column label="创建人" align="center" prop="createName" />
       <el-table-column label="创建时间" align="center" prop="createTime" />
       <el-table-column label="修改人" align="center" prop="updateName" />
@@ -104,17 +104,17 @@
 
     <!-- 添加或修改农药信息对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="125px">
         <el-form-item label="所属部门" prop="deptId" class="form-style">
 <!--          <Deptselector :setValue=setDataDeptId :dataDeptId="form.deptId"/>-->
           <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true" :noResultsText="'空'" :noOptionsText="'空'"
                       placeholder="请选择部门" @select="hx"/>
         </el-form-item>
-        <el-form-item label="计划使用量" prop="planUsage">
-          <el-input v-model="form.planUsage" placeholder="请输入计划使用量" maxlength="20"/>
+        <el-form-item label="计划使用量(吨)" prop="planUsage">
+          <el-input v-model="form.planUsage" placeholder="请输入计划使用量(吨)" maxlength="15"/>
         </el-form-item>
-        <el-form-item label="实际使用量" prop="realityUsage">
-          <el-input v-model="form.realityUsage" placeholder="请输入实际使用量" maxlength="20"/>
+        <el-form-item label="实际使用量(吨)" prop="realityUsage">
+          <el-input v-model="form.realityUsage" placeholder="请输入实际使用量(吨)" maxlength="15"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -143,7 +143,7 @@
   export default {
     name: "Information",
     dicts: ['sys_dept_type'],
-    components: {Treeselect, Deptselector},
+    components: { Treeselect, Deptselector},
     data() {
       return {
         // 部门名称

+ 18 - 8
data-ui/src/views/data/digitalagriculture/livestock/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px" @submit.native.prevent>
-      <el-form-item label="养殖场名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入养殖场名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -70,7 +70,7 @@
       <el-table-column label="所属部门" align="center" prop="deptName"/>
       <el-table-column label="经度" align="center" prop="longitude"/>
       <el-table-column label="纬度" align="center" prop="latitude"/>
-      <el-table-column label="养殖场名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="详细通讯地址" align="center" prop="address"/>
       <el-table-column label="联系人" align="center" prop="contacts"/>
       <el-table-column label="联系电话" align="center" prop="phone"/>
@@ -135,8 +135,8 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="养殖场名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入养殖场名称" maxlength="32"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="32"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -224,6 +224,13 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :file-type="['png','jpg','jpeg']" :value="form.attachPaths" @input="getUrl"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -258,11 +265,11 @@
   import Treeselect from '@riophae/vue-treeselect'
   import '@riophae/vue-treeselect/dist/vue-treeselect.css'
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
-
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Livestock",
     dicts: ['centerdata_breeding_variety', 'sys_dept_type'],
-    components: {ISuperMap, Treeselect, Deptselector,supermap},
+    components: {DataImageUpload, ISuperMap, Treeselect, Deptselector,supermap},
     data() {
       return {
         ISuperMapvisible: false,
@@ -320,7 +327,7 @@
             {required: true, message: "所属部门不能为空", trigger: "change"}
           ],
           name: [
-            {required: true, message: "养殖场名称不能为空", trigger: "blur"}
+            {required: true, message: "名称不能为空", trigger: "blur"}
           ],
           breedVarieties: [
             {required: true, message: "养殖品种不能为空", trigger: "change"}
@@ -396,6 +403,9 @@
         // if (this.sign === 2 || this.sign === 3) this.form.longitude = val.xiantude;
         this.ISuperMapvisible = false
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       /** 查询部门下拉树结构 */
       getTreeselect() {
         treeselect().then(response => {

+ 12 - 0
data-ui/src/views/data/digitalagriculture/modification/index.vue

@@ -173,6 +173,13 @@
             </el-form-item>
           </el-col>-->
         </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :file-type="['png','jpg','jpeg']" :value="form.attachPaths" @input="getUrl"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -209,10 +216,12 @@
   import Treeselect from '@riophae/vue-treeselect'
   import '@riophae/vue-treeselect/dist/vue-treeselect.css'
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Modification",
     components: {
+      DataImageUpload,
       Deptselector,
       Treeselect,
       supermap,
@@ -352,6 +361,9 @@
         this.open = false;
         this.reset();
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       // 表单重置
       reset() {
         this.form = {

+ 17 - 8
data-ui/src/views/data/digitalemergency/enterprises/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="true" label-width="90px" @submit.native.prevent>
-      <el-form-item label="企业名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入企业名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -67,7 +67,7 @@
 
     <el-table v-loading="loading" :data="enterprisesList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="企业名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="负责人" align="center" prop="contacts"/>
       <el-table-column label="联系电话" align="center" prop="phone"/>
       <el-table-column label="企业类别" align="center" prop="category">
@@ -130,8 +130,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="企业名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入企业名称" maxlength="32"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="32"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -195,10 +195,15 @@
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="备注" prop="remark">
-              <!--              <el-input v-model="form.remark" placeholder="备注" maxlength="255"/>-->
               <el-input v-model="form.remark" type="textarea" placeholder="请输入备注"  maxlength="255"/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -228,11 +233,12 @@
   import ISuperMap from "@/views/data/common/ISuperMap.vue";
   import {validPhoneMobile} from "../../../../api/rules/rules";
   import {selectCenterMonitorlList} from "../../../../api/data/digitalforest/animal/animal";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Enterprises",
     dicts: ['sys_dept_type', 'enterprises_type'],
-    components: {ISuperMap, Treeselect, Deptselector,supermap},
+    components: {ISuperMap, Treeselect, Deptselector,supermap, DataImageUpload},
     data() {
       return {
         ISuperMapvisible: false,
@@ -280,7 +286,7 @@
         // 表单校验
         rules: {
           name: [
-            {required: true, message: "企业名称名称不能为空", trigger: "blur"}
+            {required: true, message: "名称名称不能为空", trigger: "blur"}
           ],
           deptId: [
             {required: true, message: "所属部门不能为空", trigger: "change"}
@@ -320,6 +326,9 @@
           })
         })
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       send(val) {
         if (val===true){
           this.ISuperMapvisible = false;

+ 17 - 7
data-ui/src/views/data/digitalemergency/team/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="队伍名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入队伍名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -70,7 +70,7 @@
       <!--<el-table-column label="主键ID" align="center" prop="id"/>
       <el-table-column label="数据所属部门(政或党的id)" align="center" prop="dataDeptId"/>
       <el-table-column label="数据状态(1-可用 2-不可用 )" align="center" prop="dataStatus"/>-->
-      <el-table-column label="队伍名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <!--<el-table-column label="类别(字典项目)" align="center" prop="teamType"/>-->
       <el-table-column label="队伍性质" align="center" prop="teamNature">
         <template slot-scope="scope">
@@ -127,8 +127,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="150px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="队伍名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入队伍名称" maxlength="30"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="30"/>
             </el-form-item>
             <el-form-item label="队伍人数(正式)" prop="personnumberZ">
               <el-input v-model="form.personnumberZ" placeholder="请输入队伍人数(正式)" maxlength="5"/>
@@ -189,6 +189,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -221,10 +227,11 @@ import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import ISuperMap from "@/views/data/common/ISuperMap";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "Team",
-  components: {deptselector, supermap, ISuperMap, Treeselect},
+  components: {deptselector, supermap, ISuperMap, Treeselect, DataImageUpload},
   dicts: ['emergency_team_nature'],
   data() {
     return {
@@ -285,7 +292,7 @@ export default {
       // 表单校验
       rules: {
         name: [
-          {required: true, message: '队伍名称不能为空', trigger: 'change'}
+          {required: true, message: '名称不能为空', trigger: 'change'}
         ],
         teamNature: [
           {required: true, message: '队伍性质不能为空', trigger: 'change'}
@@ -337,6 +344,9 @@ export default {
         this.deptOptions = response.data
       })
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     hx(node) {
       this.form.dataDeptId = node.id
       this.form.deptId = node.id

+ 17 - 7
data-ui/src/views/data/digitalemergency/warehouse/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="仓库名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入仓库名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -68,7 +68,7 @@
     <el-table v-loading="loading" :data="warehouseList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="主键ID" align="center" prop="id"/>-->
-      <el-table-column label="仓库名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="经度" align="center" prop="longitude"/>
       <el-table-column label="纬度" align="center" prop="latitude"/>
       <!--<el-table-column label="所属部门id" align="center" prop="deptId"/>-->
@@ -110,8 +110,8 @@
     <!-- 添加或修改仓库信息对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="600px" class="form-style">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="仓库名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入仓库名称" maxlength="50"/>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" maxlength="50"/>
         </el-form-item>
         <el-form-item label="所属部门" prop="deptId">
           <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true" :noResultsText="'空'" :noOptionsText="'空'"
@@ -145,6 +145,12 @@
             </el-select>
           </el-form-item>
         </el-col>
+        <el-col :span="24">
+          <el-form-item label="图片" prop="attachPaths">
+            <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                             @input="getUrl"></DataImageUpload>
+          </el-form-item>
+        </el-col>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -181,12 +187,13 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   components: {
     Treeselect,
     deptselector,
-    supermap, ISuperMap
+    supermap, ISuperMap, DataImageUpload
   },
   name: "Warehouse",
   data() {
@@ -239,7 +246,7 @@ export default {
       // 表单校验
       rules: {
         name: [
-          {required: true, message: '仓库名称不能为空', trigger: 'change'}
+          {required: true, message: '名称不能为空', trigger: 'change'}
         ],
         deptId: [
           {required: true, message: '所属部门不能为空', trigger: 'change'}
@@ -265,6 +272,9 @@ export default {
         this.deptOptions = response.data
       })
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     hx(node) {
       this.form.dataDeptId = node.id
       this.form.deptId = node.id

+ 20 - 7
data-ui/src/views/data/digitalenvironment/keyenterprise/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="企业名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入企业名称"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -96,7 +96,7 @@
     <el-table v-loading="loading" :data="keyenterpriseList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="主键id" align="center" prop="id"/>-->
-      <el-table-column label="企业名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="企业代码" align="center" prop="code"/>
       <el-table-column label="企业联系人" align="center" prop="legalPerson"/>
       <el-table-column label="联系电话" align="center" prop="contactsPhone"/>
@@ -144,8 +144,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="企业名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入企业名称" maxlength="50"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="50"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -210,6 +210,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -236,9 +244,10 @@
   import ISuperMap from "@/views/data/common/ISuperMap";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Keyenterprise",
-    components: {Deptselector, Supermap,Treeselect,ISuperMap},
+    components: {DataImageUpload, Deptselector, Supermap,Treeselect,ISuperMap},
     data() {
       return {
 
@@ -278,7 +287,7 @@
         // 表单校验
         rules: {
           name: [
-            {required: true, message: '企业名称不能为空', trigger: 'blur'}
+            {required: true, message: '名称不能为空', trigger: 'blur'}
           ],
           code: [
             {required: true, message: '企业代码不能为空', trigger: 'blur'}
@@ -319,6 +328,10 @@
       });
     },
     methods: {
+      /** 上传 */
+      getUrl(url) {
+        this.form.attachPaths=url
+      },
       getTreeselect() {
         treeselect().then(response => {
           this.deptOptions = response.data

+ 18 - 7
data-ui/src/views/data/digitalenvironment/monitor/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="断面名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入断面名称"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -69,7 +69,7 @@
     <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="所属部门名称" align="center" prop="deptName"/>
-      <el-table-column label="断面名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="经度" align="center" prop="longitude"/>
       <el-table-column label="纬度" align="center" prop="latitude"/>
       <el-table-column label="县(市)区" align="center" prop="district"/>
@@ -125,8 +125,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="160px">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="断面名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入断面名称" maxlength="32"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="32"/>
             </el-form-item>
 
           </el-col>
@@ -224,6 +224,12 @@
               <el-input v-model="form.remarks" placeholder="请输入备注" type="textarea" maxlength="255"/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -245,11 +251,12 @@
   import Treeselect from "@riophae/vue-treeselect";
   import {checkLon, checkLat} from "@/api/rules/rules";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Monitor",
     dicts: ['centerdata_monitor_cycle'],
-    components: {Deptselector,Supermap, Treeselect, ISuperMap},
+    components: {Deptselector,Supermap, Treeselect, ISuperMap, DataImageUpload},
     data() {
       return {
         // 遮罩层
@@ -312,7 +319,7 @@
             {validator: checkLat, trigger: 'blur'}
           ],
           name: [
-            {required: true, message: "断面名称不能为空", trigger: "blur"}
+            {required: true, message: "名称不能为空", trigger: "blur"}
           ],
           districtHead: [
             {required: true, message: "县(区)负责人不能为空", trigger: "blur"}
@@ -339,6 +346,10 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
+
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 11 - 1
data-ui/src/views/data/digitalenvironment/sewageoutlet/index.vue

@@ -222,6 +222,12 @@
               <el-input v-model="form.notes" type="textarea" placeholder="请输入内容" maxlength="500"/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -249,10 +255,11 @@ import {treeselect} from "@/api/system/dept";
 import ISuperMap from "@/views/data/common/ISuperMap";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 export default {
   name: "Sewageoutlet",
   dicts: ['centerdata_sewage_twoclassification', 'centerdata_sewage_oneclassification', 'centerdata_sewage_type'],
-  components: {Deptselector, Supermap,Treeselect,ISuperMap},
+  components: {Deptselector, Supermap,Treeselect,ISuperMap, DataImageUpload},
   data() {
     return {
       // 遮罩层
@@ -346,6 +353,9 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField("deptId")
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     showMap() {
       this.ISuperMapvisible = true;
       this.$nextTick(() => {

+ 12 - 1
data-ui/src/views/data/digitalenvironment/sourcepollution/index.vue

@@ -171,6 +171,12 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-col :span="24">
+          <el-form-item label="图片" prop="attachPaths">
+            <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                             @input="getUrl"></DataImageUpload>
+          </el-form-item>
+        </el-col>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -197,9 +203,10 @@
   import ISuperMap from "@/views/data/common/ISuperMap";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Sourcepollution",
-    components: {Deptselector, Supermap,Treeselect,ISuperMap},
+    components: {Deptselector, Supermap,Treeselect,ISuperMap, DataImageUpload},
     dicts: ['centerdata_sourcepollution_type'],
     data() {
       return {
@@ -275,6 +282,10 @@
           this.deptOptions = response.data
         })
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
+
       hx(node) {
         this.form.dataDeptId = node.id
         this.form.deptId = node.id

+ 17 - 7
data-ui/src/views/data/digitalfirecontrol/basiclinkageforce/index.vue

@@ -10,10 +10,10 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="单位名称" prop="company">
+      <el-form-item label="名称" prop="company">
         <el-input
           v-model="queryParams.company"
-          placeholder="请输入单位名称"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -124,7 +124,7 @@
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="主键id" align="center" prop="id"/>-->
       <el-table-column label="所属机构" align="center" prop="institutionName"/>
-      <el-table-column label="单位名称" align="center" prop="company"/>
+      <el-table-column label="名称" align="center" prop="company"/>
       <el-table-column label="经度" align="center" prop="longitude"/>
       <el-table-column label="纬度" align="center" prop="latitude"/>
       <el-table-column label="铲车数量" align="center" prop="forkliftNum"/>
@@ -190,8 +190,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="单位名称" prop="company">
-              <el-input v-model="form.company" placeholder="请输入单位名称" maxlength="20"/>
+            <el-form-item label="名称" prop="company">
+              <el-input v-model="form.company" placeholder="请输入名称" maxlength="20"/>
             </el-form-item>
             <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
               <el-input v-model="form.latitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
@@ -219,6 +219,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
 
 
@@ -258,10 +264,11 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "Basiclinkageforce",
-  components: {Deptselector, Supermap, Treeselect, ISuperMap},
+  components: {Deptselector, Supermap, Treeselect, ISuperMap, DataImageUpload},
   data() {
     return {
       titleLongitude: '经纬度',
@@ -321,7 +328,7 @@ export default {
           {required: true, message: '所属机构不能为空', trigger: 'change'}
         ],
         company: [
-          {required: true, message: '单位名称不能为空', trigger: 'blur'}
+          {required: true, message: '名称不能为空', trigger: 'blur'}
         ],
         longitude: [
           {required: true, message: "经度不能为空", trigger: [ 'blur', 'change' ]},
@@ -376,6 +383,9 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField('deptId');
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     showMap() {
       this.ISuperMapvisible = true;
       this.$nextTick(() => {

+ 34 - 7
data-ui/src/views/data/digitalfirecontrol/fireforce/index.vue

@@ -1,6 +1,15 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"  @submit.native.prevent>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item label="所在乡镇" prop="village">
         <el-input
           v-model="queryParams.village"
@@ -122,7 +131,7 @@
 
     <el-table v-loading="loading" :data="fireforceList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <!--<el-table-column label="主键id" align="center" prop="id"/>-->
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="所在乡镇" align="center" prop="village"/>
       <el-table-column label="地址" align="center" prop="address"/>
       <el-table-column label="总载水量" align="center" prop="totalLoadofWater"/>
@@ -173,11 +182,8 @@
 
         <el-row>
           <el-col :span="12">
-            <el-form-item label="所属部门" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true" :noResultsText="'空'" :noOptionsText="'空'"
-                          placeholder="请选择部门" @select="hx"/>
-<!--            <el-form-item label="所属部门" prop="deptId">-->
-<!--              <Deptselector :setValue=setDataDeptId :dataDeptId="form.deptId"/>-->
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="20"/>
             </el-form-item>
             <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
               <el-input v-model="form.longitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
@@ -191,6 +197,12 @@
             <el-form-item label="负责人2" prop="principalTwo">
               <el-input v-model="form.principalTwo" placeholder="请输入负责人" maxlength="20"/>
             </el-form-item>
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true" :noResultsText="'空'" :noOptionsText="'空'"
+                          placeholder="请选择部门" @select="hx"/>
+              <!--            <el-form-item label="所属部门" prop="deptId">-->
+              <!--              <Deptselector :setValue=setDataDeptId :dataDeptId="form.deptId"/>-->
+            </el-form-item>
           </el-col>
 
           <el-col :span="12">
@@ -222,6 +234,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -258,10 +276,11 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "Fireforce",
-  components: {Deptselector, Supermap, Treeselect, ISuperMap},
+  components: {Deptselector, Supermap, Treeselect, ISuperMap, DataImageUpload},
   data() {
     return {
       titleLongitude:'经纬度',
@@ -292,6 +311,7 @@ export default {
       open: false,
       // 查询参数
       queryParams: {
+        name: null,
         pageNum: 1,
         pageSize: 10,
         village: null,
@@ -317,6 +337,9 @@ export default {
       checkPositiveDecimal: checkPositiveDecimal,
       // 表单校验
       rules: {
+        name: [
+          {required: true, message: '名称不能为空', trigger: 'blur'}
+        ],
         village: [
           {required: true, message: '所在乡镇不能为空', trigger: 'blur'}
         ],
@@ -372,6 +395,10 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField('deptId');
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
+
     getCenterMonitorlList() {
       selectCenterMonitorlList({pageNum: 1, pageSize: 10}).then(response => {
         this.deviceList = response.data;

+ 17 - 7
data-ui/src/views/data/digitalfirecontrol/foamliquid/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="单位名称" prop="company">
+      <el-form-item label="名称" prop="company">
         <el-input
           v-model="queryParams.company"
-          placeholder="请输入单位名称"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -78,7 +78,7 @@
     <el-table v-loading="loading" :data="foamliquidList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="主键id" align="center" prop="id"/>-->
-      <el-table-column label="单位名称" align="center" prop="company"/>
+      <el-table-column label="名称" align="center" prop="company"/>
       <el-table-column label="泡沫液储量" align="center" prop="reserves"/>
       <el-table-column label="联系人" align="center" prop="contacts"/>
       <el-table-column label="联系电话" align="center" prop="contactsPhone"/>
@@ -133,8 +133,8 @@
 
         <el-row>
           <el-col :span="12">
-            <el-form-item label="单位名称" prop="company">
-              <el-input v-model="form.company" placeholder="请输入单位名称" maxlength="20"/>
+            <el-form-item label="名称" prop="company">
+              <el-input v-model="form.company" placeholder="请输入名称" maxlength="20"/>
             </el-form-item>
             <el-form-item label="联系人" prop="contacts">
               <el-input v-model="form.contacts" placeholder="请输入联系人" maxlength="20"/>
@@ -173,6 +173,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -209,10 +215,11 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "Foamliquid",
-  components: {Deptselector, Supermap, Treeselect, ISuperMap},
+  components: {Deptselector, Supermap, Treeselect, ISuperMap, DataImageUpload},
   data() {
     return {
       deptOptions: undefined,
@@ -263,7 +270,7 @@ export default {
       // 表单校验
       rules: {
         company: [
-          {required: true, message: '单位名称不能为空', trigger: 'blur'}
+          {required: true, message: '名称不能为空', trigger: 'blur'}
         ],
         contacts: [
           {required: true, message: '联系人不能为空', trigger: 'blur'}
@@ -307,6 +314,9 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField('deptId');
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     // setDataDeptId(e) {
     //   this.form.deptId = e.deptId;
     //   this.form.deptName = e.deptName;

+ 33 - 8
data-ui/src/views/data/digitalfirecontrol/fulltimestation/index.vue

@@ -1,6 +1,15 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"  @submit.native.prevent>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item label="地址" prop="address">
         <el-input
           v-model="queryParams.address"
@@ -78,6 +87,7 @@
     <el-table v-loading="loading" :data="fulltimestationList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="主键id" align="center" prop="id"/>-->
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="地址" align="center" prop="address"/>
       <el-table-column label="负责人" align="center" prop="principal"/>
       <el-table-column label="联系电话" align="center" prop="contactsPhone"/>
@@ -123,18 +133,24 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="12">
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="20"/>
+            </el-form-item>
             <el-form-item label="负责人" prop="principal">
               <el-input v-model="form.principal" placeholder="请输入负责人" maxlength="20"/>
             </el-form-item>
             <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
               <el-input v-model="form.longitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
             </el-form-item>
-            <el-form-item label="地址" prop="address">
-              <el-input v-model="form.address" placeholder="请输入地址" maxlength="20"/>
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true" :noResultsText="'空'" :noOptionsText="'空'"
+                          placeholder="请选择部门" @select="hx"/>
             </el-form-item>
-
           </el-col>
           <el-col :span="12">
+            <el-form-item label="地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入地址" maxlength="20"/>
+            </el-form-item>
             <el-form-item label="联系电话" prop="contactsPhone">
               <el-input v-model="form.contactsPhone" placeholder="请输入联系电话" maxlength="20"/>
             </el-form-item>
@@ -142,10 +158,6 @@
             <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
               <el-input v-model="form.latitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
             </el-form-item>
-            <el-form-item label="所属部门" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true" :noResultsText="'空'" :noOptionsText="'空'"
-                          placeholder="请选择部门" @select="hx"/>
-            </el-form-item>
 <!--            <el-form-item label="所属部门" prop="deptId">-->
 <!--              <Deptselector :setValue=setDataDeptId :dataDeptId="form.deptId"/>-->
 <!--            </el-form-item>-->
@@ -163,6 +175,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -199,10 +217,11 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "Fulltimestation",
-  components: {Deptselector, Supermap, Treeselect, ISuperMap},
+  components: {Deptselector, Supermap, Treeselect, ISuperMap, DataImageUpload},
   data() {
     return {
       deptOptions: undefined,
@@ -249,6 +268,9 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        name: [
+          {required: true, message: '名称不能为空', trigger: 'blur'}
+        ],
         address: [
           {required: true, message: '地址不能为空', trigger: 'blur'}
         ],
@@ -290,6 +312,9 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField('deptId');
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     // setDataDeptId(e) {
     //   this.form.deptId = e.deptId;
     //   this.form.deptName = e.deptName;

+ 11 - 5
data-ui/src/views/data/digitalfirecontrol/keyplaces/index.vue

@@ -156,6 +156,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -193,13 +199,12 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   components: {
     deptselector,
-    supermap, Treeselect, ISuperMap
-
-
+    supermap, Treeselect, ISuperMap, DataImageUpload
   },
   name: "Keyplaces",
   data() {
@@ -306,8 +311,9 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField('deptId');
     },
-
-
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     showMap() {
       this.ISuperMapvisible = true;
       this.$nextTick(() => {

+ 17 - 7
data-ui/src/views/data/digitalfirecontrol/otherlinkageforce/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="单位" prop="company">
+      <el-form-item label="名称" prop="company">
         <el-input
           v-model="queryParams.company"
-          placeholder="请输入单位"
+          placeholder="请输入名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -114,7 +114,7 @@
     <el-table v-loading="loading" :data="otherlinkageforceList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="主键id" align="center" prop="id"/>-->
-      <el-table-column label="单位" align="center" prop="company"/>
+      <el-table-column label="名称" align="center" prop="company"/>
       <el-table-column label="单位电话" align="center" prop="companyPhone"/>
       <el-table-column label="联系人" align="center" prop="contacts"/>
       <el-table-column label="联系人电话" align="center" prop="contactsPhone"/>
@@ -167,8 +167,8 @@
 <!--        </el-row>-->
         <el-row>
           <el-col :span="12">
-            <el-form-item label="单位" prop="company">
-              <el-input v-model="form.company" placeholder="请输入单位" maxlength="20"/>
+            <el-form-item label="名称" prop="company">
+              <el-input v-model="form.company" placeholder="请输入名称" maxlength="20"/>
             </el-form-item>
             <el-form-item label="联系人" prop="contacts">
               <el-input v-model="form.contacts" placeholder="请输入联系人" maxlength="20"/>
@@ -207,6 +207,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -243,10 +249,11 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "Otherlinkageforce",
-  components: {Deptselector, Supermap, Treeselect, ISuperMap},
+  components: {Deptselector, Supermap, Treeselect, ISuperMap, DataImageUpload},
   data() {
     return {
       titleLongitude: '经纬度',
@@ -297,7 +304,7 @@ export default {
       // 表单校验
       rules: {
         company: [
-          {required: true, message: '单位不能为空', trigger: 'blur'}
+          {required: true, message: '名称不能为空', trigger: 'blur'}
         ],
         companyPhone: [
           {required: true, message: '单位电话不能为空', trigger: 'blur'},
@@ -341,6 +348,9 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField('deptId');
     },
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     // setDataDeptId(e) {
     //   this.form.deptId = e.deptId;
     //   this.form.deptName = e.deptName;

+ 13 - 12
data-ui/src/views/data/digitalfirecontrol/sensor/index.vue

@@ -68,7 +68,7 @@
 
     <el-table v-loading="loading" :data="sensorList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="传感器名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="安装位置" align="center" prop="address"/>
       <el-table-column label="编号" align="center" prop="number"/>
       <el-table-column label="设置参数" align="center" prop="parameters"/>
@@ -113,7 +113,7 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="名称" prop="name" label-width="120px">
-              <el-input v-model="form.name" placeholder="请输入传感器名称" maxlength="20"/>
+              <el-input v-model="form.name" placeholder="请输入名称" maxlength="20"/>
             </el-form-item>
             <el-form-item label="负责人" prop="contacts" label-width="120px">
               <el-input v-model="form.contacts" placeholder="请输入负责人名称" maxlength="20"/>
@@ -159,6 +159,12 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -189,11 +195,12 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   components: {
     deptselector,
-    supermap, Treeselect, ISuperMap
+    supermap, Treeselect, ISuperMap, DataImageUpload
   },
   name: "Sensor",
   data() {
@@ -295,15 +302,9 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField('deptId');
     },
-    // setDataDeptId(e) {
-    //   this.form.deptId = e.deptId
-    //   this.form.deptName = e.deptName
-    // },
-    // hx(node) {
-    //   //   this.form.deptId = node.id
-    //   this.form.deptName = node.label
-    // },
-
+    getUrl(url) {
+      this.form.attachPaths = url
+    },
     showMap() {
       this.ISuperMapvisible = true;
       this.$nextTick(() => {

+ 56 - 45
data-ui/src/views/data/digitalforest/afforestationarea/index.vue

@@ -155,6 +155,9 @@
       <el-table-column label="修改时间" align="center" prop="updateTime"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-document" @click="regionalFlagAdd(scope.row)"
+          >区域标记
+          </el-button>
           <el-button
             size="mini"
             type="text"
@@ -244,12 +247,12 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap1">
               <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap1">
               <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度"/>
             </el-form-item>
           </el-col>
@@ -280,16 +283,6 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="维护植树造林区域" prop="points" @dblclick.native="showMapTwo">
-              <el-input v-model="form.points" placeholder="鼠标双击选择区域" :disabled="disabled" maxlength="50" disabled/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-
-          </el-col>
-        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-show=!disabled>确 定</el-button>
@@ -297,25 +290,12 @@
       </div>
     </el-dialog>
 
-    <el-dialog :title="titleLongitude" :visible.sync="showLongitude" append-to-body>
-      <el-input v-show="false" v-model="form.longitude" disabled></el-input>
-      <el-input v-show="false" v-model="form.latitude" disabled></el-input>
-      <supermap style="width: 100%;height: 500px;" :mapDiv="'afforestationareaMap'" :mapSite="{doubleClickZoom:false}"
-                :codes="['9fa5']" :isSideBySide="false" :showLatLng="showLatLng"></supermap>
-      <el-button type="primary" @click="showLongitude=false">确定</el-button>
-    </el-dialog>
 
     <!-- 添加区域标记 -->
-    <el-dialog title="区域坐标" :visible.sync="showLongitudetwo" width="1000px" append-to-body>
-      <supermap ref="fireAreaSupermap" v-if="showLongitudetwo" style="width: 100%;height:74vh"
-                :mapDiv="'afforestationareaSuperMap'" :mapSite="{doubleClickZoom:false}" :codes="['9fa5']"
-                :isSideBySide="false"
-                :showAreaLatLng="showAreaLatLng"></supermap>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="showLongitudetwo=false">确定</el-button>
-      </div>
-    </el-dialog>
-    <ISuperMap ref="ISuperMap" v-if="ISuperMapvisible" @send="send"/>
+
+    <ISuperMap ref="ISuperMap1" v-if="ISuperMapvisible" @send="send1"/>
+
+    <ISuperMapAreaMarker ref="ISuperMap" v-if="regionalFlagOpen" @send="send"/>
   </div>
 </template>
 
@@ -337,19 +317,28 @@ import supermap from '@/views/components/supermap'
 import {listAfforestationPlan} from "@/api/data/digitalforest/afforestation/afforestation";
 import {checkPositiveDecimal, checkLat, checkLon} from "@/api/rules/rules";
 import ISuperMap from "@/views/data/common/ISuperMap";
+import { addRegionalFlag } from '@/api/data/digitalresources/info'
+import ISuperMapAreaMarker from "@/views/data/common/ISuperMapAreaMarker";
 
 export default {
   name: "Afforestationarea",
-  components: {ISuperMap, deptselector, Treeselect, supermap},
+  components: {ISuperMap, deptselector, Treeselect, supermap,ISuperMapAreaMarker},
   dicts: ['forest_type', 'forest_regional_division'],
   data() {
     return {
-      sign: 1,
+      //区域标记
+      regionalFlagObj: {
+        eventId: null,
+        latLngs: [],
+        type: '4',
+        name:null,
+      },
+      sign:3,
+      sign1: 1,
       ISuperMapvisible: false,
       disabled: false,
       // 信息弹出层上的坐标弹层
       showLongitude: false,
-      showLongitudetwo: false,
       regionalFlagOpen: false,
       titleLongitude: '经纬度',
       titleLongitudeTwo: '',
@@ -365,7 +354,6 @@ export default {
       multiple: true,
       // 显示搜索条件
       showSearch: true,
-      regionalFlag: false,
       // 总条数
       total: 0,
       // 植树造林区域管理表格数据
@@ -437,7 +425,6 @@ export default {
     this.getList();
     this.getTreeselect();
     this.getWarehouseIds();
-    this.regionalFlag = true;
   },
   methods: {
     hx(node) {
@@ -446,10 +433,10 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField("deptId")
     },
-    showMap() {
+    showMap1() {
       this.ISuperMapvisible = true;
       this.$nextTick(() => {
-        this.$refs.ISuperMap.init(this.sign, {
+        this.$refs.ISuperMap1.init(this.sign1, {
           id: this.form.id,
           longitude: this.form.longitude,
           latitude: this.form.latitude,
@@ -459,14 +446,28 @@ export default {
     },
     send(val) {
       if (val===true){
+        this.regionalFlagOpen = false;
+        return;
+      }
+      if (this.sign === 2 || this.sign === 3) this.regionalFlagObj.latLngs = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+      this.regionalFlagObj.name = val.name;
+      addRegionalFlag(this.regionalFlagObj).then(res =>{
+        this.$modal.msgSuccess(res.msg);
+        this.$refs.ISuperMap.getRegionalFlag();
+      });
+      // this.regionalFlagOpen = false
+
+    },
+    send1(val) {
+      if (val===true){
         this.ISuperMapvisible = false;
         return;
       }
-      if (this.sign === 1) {
+      if (this.sign1 === 1) {
         this.form.longitude = val.longitude;
         this.form.latitude = val.latitude;
       }
-      if (this.sign === 2 || this.sign === 3) this.form.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+      if (this.sign1 === 2 || this.sign1 === 3) this.form.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
       this.ISuperMapvisible = false
     },
     getWarehouseIds() {
@@ -487,11 +488,22 @@ export default {
     },
     /** 区域标记按钮操作 */
     regionalFlagAdd(row) {
-      this.regionalFlagOpen = true;
+      const eventId = row.id;
+      this.regionalFlagObj.eventId= eventId;
+      this.showMap(eventId)
+      // getRegionalFlag(eventId).then(response => {
+      //   this.regionalFlagObj1 = response.data;
+      // })
     },
-    /** 区域标记按钮操作 */
-    cancelRegionalFlag() {
-      this.regionalFlagOpen = false;
+    showMap(eventId) {
+      this.regionalFlagOpen = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.initP(this.sign, {
+          longitude: undefined,
+          latitude: undefined,
+          xiantude: undefined
+        },eventId)
+      })
     },
     /** 区域标记按钮操作 */
     submitRegionalFlag() {
@@ -521,9 +533,6 @@ export default {
       this.form.latitude = lat;
       this.form.longitude = lng;
     },
-    showMapTwo() {
-      this.showLongitudetwo = true;
-    },
     /** 查询部门下拉树结构 */
     getTreeselect() {
       treeselect().then(response => {
@@ -590,6 +599,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.getWarehouseIds();
       this.open = true;
       this.title = "添加植树造林区域管理";
       this.disabled = false;
@@ -597,6 +607,7 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.getWarehouseIds();
       const id = row.id || this.ids
       getAfforestationarea(id).then(response => {
         this.form = response.data;

+ 38 - 23
data-ui/src/views/data/digitalforest/afforestationtask/index.vue

@@ -246,19 +246,19 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap1">
               <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度" :disabled="disabled"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap1">
               <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度" :disabled="disabled"/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="区域" prop="points" @dblclick.native="showMapTwo">
+            <el-form-item label="区域" prop="points" @dblclick.native="showMap">
               <el-input v-model="form.points" placeholder="鼠标双击选择区域" :disabled="disabled" disabled/>
             </el-form-item>
           </el-col>
@@ -289,19 +289,6 @@
       <el-button type="primary" @click="showLongitude=false">确定</el-button>
     </el-dialog>
 
-    <!-- 添加区域标记 -->
-    <el-dialog :title="titleLongitudeTwo" :visible.sync="showLongitudetwo" width="1000px">
-      区域坐标
-      <!-- <el-input v-model="form.points"></el-input>-->
-      <supermap ref="fireAreaSupermap" v-if="showLongitudetwo" style="width: 100%;height:74vh"
-                :mapDiv="'fireAreaSuperMap'" :mapSite="{doubleClickZoom:false}" :codes="['9fa5']" :isSideBySide="false"
-                :showAreaLatLng="showAreaLatLng"></supermap>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="showLongitudetwo=false">确定</el-button>
-      </div>
-    </el-dialog>
-
-
     <!--查看-->
     <el-dialog :title="title" :visible.sync="openSeeStatus" width="800px" class="form-style">
       <div class="app-container">
@@ -448,6 +435,8 @@
         <el-button @click="cancelSee">取 消</el-button>
       </div>
     </el-dialog>
+    <ISuperMap ref="ISuperMap1" v-if="ISuperMapvisible1" @send="send1"/>
+
     <ISuperMap ref="ISuperMap" v-if="ISuperMapvisible" @send="send"/>
   </div>
 </template>
@@ -473,14 +462,15 @@
     components: {ISuperMap, deptselector,Treeselect,treeDept,supermap},
     data() {
       return {
-        sign: 1,
+        sign1: 1,//类型是点位
+        sign: 3,//类型是区域
+        ISuperMapvisible1: false,
         ISuperMapvisible: false,
         disabled: false,
         // 遮罩层
         loading: true,
         // 信息弹出层上的坐标弹层
         showLongitude: false,
-        showLongitudetwo: false,
         regionalFlagOpen: false,
         titleLongitude: '经纬度',
         titleLongitudeTwo: '',
@@ -615,6 +605,30 @@
       }
     },
     methods: {
+      showMap1() {
+        this.ISuperMapvisible1 = true;
+        this.$nextTick(() => {
+          this.$refs.ISuperMap1.init(this.sign1, {
+            id: this.form.id,
+            longitude: this.form.longitude,
+            latitude: this.form.latitude,
+            xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+          })
+        })
+      },
+      send1(val) {
+        if (val===true){
+          this.ISuperMapvisible1 = false;
+          return;
+        }
+        if (this.sign1 === 1) {
+          this.form.longitude = val.longitude;
+          this.form.latitude = val.latitude;
+        }
+        if (this.sign1 === 2 || this.sign1 === 3) this.form.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+        this.ISuperMapvisible1 = false
+      },
+
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {
@@ -622,7 +636,7 @@
             id: this.form.id,
             longitude: this.form.longitude,
             latitude: this.form.latitude,
-            xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+            xiantude: this.form.points//this.form.longitude换成每个页面对应线或者面对应的字段
           })
         })
       },
@@ -635,9 +649,12 @@
           this.form.longitude = val.longitude;
           this.form.latitude = val.latitude;
         }
-        if (this.sign === 2 || this.sign === 3) this.form.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+        if (this.sign === 2 || this.sign === 3){
+          this.form.points = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+        }
         this.ISuperMapvisible = false
       },
+
       showAreaLatLng: function (latlng) {
         this.form.points = JSON.stringify(latlng);
       },
@@ -673,9 +690,7 @@
         this.form.latitude = lat;
         this.form.longitude = lng;
       },
-      showMapTwo() {
-        this.showLongitudetwo = true;
-      },
+
       /** 查询植树造林任务管理列表 */
       getList() {
         this.loading = true;

+ 22 - 7
data-ui/src/views/data/digitalforest/channel/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
-      <el-form-item label="渠道名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入渠道名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -140,7 +140,7 @@
     <el-table v-loading="loading" :data="channelList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--      <el-table-column label="主键id" align="center" prop="id" />-->
-      <el-table-column label="渠道名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="水源面积" align="center" prop="sourceArea"/>
       <el-table-column label="水量" align="center" prop="volume"/>
       <el-table-column label="联系人" align="center" prop="channelPerson"/>
@@ -203,8 +203,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="135px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="渠道名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入渠道名称" :disabled="disabled" maxlength="20"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" :disabled="disabled" maxlength="20"/>
             </el-form-item>
             <el-form-item label="水源面积" prop="sourceArea">
               <el-input v-model="form.sourceArea" placeholder="请输入水源面积" :disabled="disabled" maxlength="50"/>
@@ -279,6 +279,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-show=!disabled>确 定</el-button>
@@ -313,10 +321,11 @@
   import {checkPositiveDecimal,validPhoneMobile,checkLat,checkLon} from "@/api/rules/rules";
   import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
   import ISuperMap from "@/views/data/common/ISuperMap";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Channel",
-    components: {deptselector, Treeselect, supermap,ISuperMap},
+    components: {DataImageUpload, deptselector, Treeselect, supermap,ISuperMap},
     data() {
       return {
         sign: 1,
@@ -374,7 +383,7 @@
         // 表单校验
         rules: {
           name: [
-            {required: true, message: '渠道名称不能为空', trigger: 'blur'}
+            {required: true, message: '名称不能为空', trigger: 'blur'}
           ],
           sourceArea: [
             {validator: checkPositiveDecimal, trigger: 'blur'}
@@ -414,6 +423,12 @@
       });
     },
     methods: {
+      getUrl(url) {
+        //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+        this.form.attachPaths = url
+        //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+        // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+      },
       hx(node) {
         this.form.dataDeptId = node.id
         this.form.deptId = node.id

+ 16 - 1
data-ui/src/views/data/digitalforest/fireteam/index.vue

@@ -208,6 +208,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -268,10 +276,11 @@
   import supermap from '@/views/components/supermap';
   import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
   import ISuperMap from "@/views/data/common/ISuperMap";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
   export default {
     name: "Fireteam",
-    components: {Treeselect, deptselector, supermap, ISuperMap},
+    components: {Treeselect, deptselector, supermap, ISuperMap,DataImageUpload},
     dicts:['centerdata_forest_fire_zoning','centerdata_forest_fire_category','centerdata_forest_fire_reach_standard'],
     data() {
       return {
@@ -354,6 +363,12 @@
       });
     },
     methods: {
+      getUrl(url) {
+        //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+        this.form.attachPaths = url
+        //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+        // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+      },
       hx(node) {
         this.form.dataDeptId = node.id
         this.form.deptId = node.id

+ 22 - 7
data-ui/src/views/data/digitalforest/keyFireproofPlots/index.vue

@@ -2,10 +2,10 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90"
              @submit.native.prevent>
-      <el-form-item label="单位名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入单位名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -78,7 +78,7 @@
 
     <el-table v-loading="loading" :data="keyFireproofPlotsList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="单位名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="面积(公顷)" align="center" prop="plotsArea"/>
       <el-table-column label="经度" align="center" prop="longitude"/>
       <el-table-column label="纬度" align="center" prop="latitude"/>
@@ -129,8 +129,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="单位名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入单位名称" :disabled="disabled" maxlength="50"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" :disabled="disabled" maxlength="50"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -197,6 +197,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-show=!disabled>确 定</el-button>
@@ -224,11 +232,12 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {validPhoneMobile, checkPositiveInteger, checkLat, checkLon, checkPositiveDecimal} from "@/api/rules/rules";
 import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
 import ISuperMap from "@/views/data/common/ISuperMap.vue";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "KeyFireproofPlots",
   dicts: ['dominant_tree_species'],
-  components: {deptselector, Treeselect,ISuperMap,Deptselector},
+  components: {deptselector, Treeselect,ISuperMap,Deptselector,DataImageUpload},
   data() {
     return {
       disabled:true,
@@ -278,7 +287,7 @@ export default {
       // 表单校验
       rules: {
         name: [
-          {required: true, message: '单位名称不能为空', trigger: 'blur'}
+          {required: true, message: '名称不能为空', trigger: 'blur'}
         ],
         longitude: [
           {required: true, message: '经度不能为空', trigger: ['change', 'blur']},
@@ -305,6 +314,12 @@ export default {
     });
   },
   methods: {
+    getUrl(url) {
+      //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+      this.form.attachPaths = url
+      //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+      // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+    },
     hx(node) {
       this.form.dataDeptId = node.id
       this.form.deptId = node.id

+ 22 - 7
data-ui/src/views/data/digitalforest/landing/index.vue

@@ -34,10 +34,10 @@
       <!--          placeholder="请选择维护时间">-->
       <!--        </el-date-picker>-->
       <!--      </el-form-item>-->
-      <el-form-item label="起降点名称" prop="name">
+      <el-form-item label="名称" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入起降点名称"
+          placeholder="请输入名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -149,7 +149,7 @@
     <el-table v-loading="loading" :data="landingList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--<el-table-column label="主键id" align="center" prop="id"/>-->
-      <el-table-column label="起降点名称" align="center" prop="name"/>
+      <el-table-column label="名称" align="center" prop="name"/>
       <el-table-column label="负责人" align="center" prop="landingPerson"/>
       <el-table-column label="电话" align="center" prop="landingTel"/>
       <el-table-column label="维护周期" align="center" prop="landingCycle"/>
@@ -210,8 +210,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="起降点名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入起降点名称" :disabled="disabled" maxlength="20"/>
+            <el-form-item label="名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入名称" :disabled="disabled" maxlength="20"/>
             </el-form-item>
             <el-form-item label="负责人" prop="landingPerson">
               <el-input v-model="form.landingPerson" placeholder="请输入负责人" :disabled="disabled" maxlength="20"/>
@@ -270,6 +270,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-show=!disabled>确 定</el-button>
@@ -305,10 +313,11 @@ import supermap from '@/views/components/supermap';
 import {validPhoneMobile, checkPositiveInteger, checkLat, checkLon, checkPositiveDecimal} from "@/api/rules/rules";
 import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
 import ISuperMap from "@/views/data/common/ISuperMap.vue";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 
 export default {
   name: "Landing",
-  components: {deptselector, Treeselect, supermap,ISuperMap},
+  components: {deptselector, Treeselect, supermap,ISuperMap,DataImageUpload},
   data() {
     return {
       disabled:true,
@@ -361,7 +370,7 @@ export default {
       // 表单校验
       rules: {
         name: [
-          {required: true, message: '起降点名称不能为空', trigger: 'blur'}
+          {required: true, message: '名称不能为空', trigger: 'blur'}
         ],
         landingPerson: [
           {required: true, message: '负责人不能为空', trigger: 'blur'}
@@ -399,6 +408,12 @@ export default {
     });
   },
   methods: {
+    getUrl(url) {
+      //获取图片全路径  例:http://{{ ip }}:{{ port }}/group1/M00/00/07/wKgKEGVxMCiAZbvVAAJE9SGvagw915.jpg
+      this.form.attachPaths = url
+      //获取图片路径  例:group1/M00/00/07/wKgKEGVxL6eACFv2AAJE9SGvagw622.jpg
+      // this.form.attachPaths = this.$refs.ImageUpload.dialogName
+    },
     hx(node) {
       this.form.dataDeptId = node.id
       this.form.deptId = node.id

+ 21 - 11
data-ui/src/views/data/digitalresources/construction/index.vue

@@ -191,17 +191,24 @@
               :value="dict.id"
             ></el-option>
           </el-select>
-        </el-form-item></el-col>
+        </el-form-item>
+        </el-col>
         <!--        <el-form-item label="备注" prop="remark" label-width="120px">
                   <el-input v-model="form.remark" placeholder="请输入备注" maxlength="255" />
                 </el-form-item>-->
 
-          <el-col :span="24">
-            <el-form-item label="图片" prop="attachId" label-width="120px">
-              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachId"
-                           @input="getUrl"></ImageUpload>
-            </el-form-item>
-          </el-col>
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="图片" prop="attachId" label-width="120px">-->
+<!--              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachId"-->
+<!--                           @input="getUrl"></ImageUpload>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+        <el-col :span="24">
+          <el-form-item label="图片" prop="attachPaths">
+            <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                             @input="getUrl"></DataImageUpload>
+          </el-form-item>
+        </el-col>
 
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -229,12 +236,13 @@ import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
 import ISuperMap from "@/views/data/common/ISuperMap";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {treeselect} from "@/api/system/dept";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 export default {
   components: {
     deptselector,
     Treeselect,
     supermap,
-    ISuperMap
+    ISuperMap, DataImageUpload
   },
   dicts: ['centerdata_construction_type'],
   name: "Construction",
@@ -348,11 +356,13 @@ export default {
         this.deptOptions = response.data
       })
     },
-
     getUrl(url) {
-      this.form.dialogImageUrl = url;
-      this.form.attachId = url;
+      this.form.attachPaths = url
     },
+    // getUrl(url) {
+    //   this.form.dialogImageUrl = url;
+    //   this.form.attachId = url;
+    // },
     setDataDeptId(e) {
       this.form.deptId = e.deptId
       this.form.deptName = e.deptName

+ 11 - 1
data-ui/src/views/data/digitalresources/deposit/index.vue

@@ -227,6 +227,12 @@
         <el-form-item label="简介" prop="introduction" label-width="120px">
           <el-input v-model="form.introduction" type="textarea" placeholder="请输入内容" maxlength="2000"/>
         </el-form-item>
+        <el-col :span="24">
+          <el-form-item label="图片" prop="attachPaths">
+            <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                             @input="getUrl"></DataImageUpload>
+          </el-form-item>
+        </el-col>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -253,12 +259,13 @@
   import ISuperMap from "@/views/data/common/ISuperMap";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import {treeselect} from "@/api/system/dept";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     components: {
       deptselector,
       Treeselect,
       supermap,
-      ISuperMap
+      ISuperMap, DataImageUpload
     },
     name: "Deposit",
     dicts: ['centerdata_deposit_type'],
@@ -398,6 +405,9 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 13 - 12
data-ui/src/views/data/digitalresources/farm/farmland/index.vue

@@ -229,7 +229,9 @@
                 eventId: null,
                 latLngs: [],
                 type: '2',
+                name:null,
               },
+              regionalFlagObj1: [],
               regionalFlagOpen:false,
               sign:3,
               titleLongitude:'永久基本农田管理区域标记',
@@ -317,22 +319,20 @@
             /** 区域标记按钮操作 */
             regionalFlagAdd(row) {
               const eventId = row.id;
-              getRegionalFlag(eventId).then(response => {
-                this.regionalFlagObj.eventId = eventId;
-                this.regionalFlagObj.latLngs = response.data.latLngs;
-                this.showMap(this.regionalFlagObj.latLngs)
-              })
-
-              console.log(this.regionalFlagObj)
+              this.regionalFlagObj.eventId= eventId;
+              this.showMap(eventId)
+              // getRegionalFlag(eventId).then(response => {
+              //   this.regionalFlagObj1 = response.data;
+              // })
             },
-          showMap(params) {
+          showMap(eventId) {
             this.regionalFlagOpen = true;
             this.$nextTick(() => {
               this.$refs.ISuperMap.initP(this.sign, {
                 longitude: undefined,
                 latitude: undefined,
-                xiantude: params
-              })
+                xiantude: undefined
+              },eventId)
             })
           },
           send(val) {
@@ -341,11 +341,12 @@
               return;
             }
             if (this.sign === 2 || this.sign === 3) this.regionalFlagObj.latLngs = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+            this.regionalFlagObj.name = val.name;
             addRegionalFlag(this.regionalFlagObj).then(res =>{
               this.$modal.msgSuccess(res.msg);
-              this.getList()
+              this.$refs.ISuperMap.getRegionalFlag();
             });
-            this.regionalFlagOpen = false
+            // this.regionalFlagOpen = false
 
           },
 

+ 12 - 12
data-ui/src/views/data/digitalresources/farm/info/index.vue

@@ -250,6 +250,7 @@
           eventId: null,
           latLngs: [],
           type: '1',
+          name:null,
         },
         sign:3,
         regionalFlagOpen: false,
@@ -366,22 +367,20 @@
       /** 区域标记按钮操作 */
       regionalFlagAdd(row) {
         const eventId = row.id;
-        getRegionalFlag(eventId).then(response => {
-          this.regionalFlagObj.eventId = eventId;
-          this.regionalFlagObj.latLngs = response.data.latLngs;
-          this.showMap(this.regionalFlagObj.latLngs)
-        })
-
-        console.log(this.regionalFlagObj)
+        this.regionalFlagObj.eventId= eventId;
+        this.showMap(eventId)
+        // getRegionalFlag(eventId).then(response => {
+        //   this.regionalFlagObj1 = response.data;
+        // })
       },
-      showMap(params) {
+      showMap(eventId) {
         this.regionalFlagOpen = true;
         this.$nextTick(() => {
           this.$refs.ISuperMap.initP(this.sign, {
             longitude: undefined,
             latitude: undefined,
-            xiantude: params
-          })
+            xiantude: undefined
+          },eventId)
         })
       },
       send(val) {
@@ -390,11 +389,12 @@
           return;
         }
         if (this.sign === 2 || this.sign === 3) this.regionalFlagObj.latLngs = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+        this.regionalFlagObj.name = val.name;
         addRegionalFlag(this.regionalFlagObj).then(res =>{
           this.$modal.msgSuccess(res.msg);
-          this.getList()
+          this.$refs.ISuperMap.getRegionalFlag();
         });
-        this.regionalFlagOpen = false
+        // this.regionalFlagOpen = false
 
       },
 

+ 11 - 3
data-ui/src/views/data/digitalresources/hazard/index.vue

@@ -230,6 +230,12 @@
               <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" maxlength="255"/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
 
       </el-form>
@@ -252,12 +258,13 @@
   import ISuperMap from "@/views/data/common/ISuperMap";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import {treeselect} from "@/api/system/dept";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     components: {
       deptselector,
       Treeselect,
       supermap,
-      ISuperMap
+      ISuperMap, DataImageUpload
     },
     dicts: ['centerdata_disaster_type'],
     name: "Hazard",
@@ -369,8 +376,9 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
-
-
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 11 - 1
data-ui/src/views/data/digitaltraffic/bridge/index.vue

@@ -193,6 +193,12 @@
               <el-input v-model="form.remark" placeholder="请输入备注" type="textarea" maxlength="255" show-word-limit/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -215,9 +221,10 @@
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import {treeselect} from "@/api/system/dept";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "bridge",
-    components: {Treeselect, Deptselector, Supermap,ISuperMap},
+    components: {Treeselect, Deptselector, Supermap,ISuperMap, DataImageUpload},
     data() {
       return {
         deptOptions: undefined,
@@ -308,6 +315,9 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 11 - 1
data-ui/src/views/data/digitaltraffic/culvert/index.vue

@@ -200,6 +200,12 @@
               <el-input v-model="form.remark" placeholder="请输入备注" type="textarea" maxlength="255"/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -222,9 +228,10 @@
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import {treeselect} from "@/api/system/dept";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "culvert",
-    components: {Treeselect, Deptselector, Supermap,ISuperMap},
+    components: {Treeselect, Deptselector, Supermap,ISuperMap, DataImageUpload},
     data() {
       return {
         deptOptions: undefined,
@@ -315,6 +322,9 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 1 - 1
data-ui/src/views/data/digitaltraffic/level/IForm.vue

@@ -93,7 +93,7 @@
   import {getLevel} from "../../../../api/data/digitalresources/level";
 
   const uuidv4 = require("uuid/v4")
-  import supermap from "@/views/components/supermap-2.5d"; //超图
+  import supermap from "@/views/components/supermap-2.5d-multiple"; //超图
   import ITabs from './ITabs.vue'
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";

+ 11 - 1
data-ui/src/views/data/digitaltraffic/warningSign/index.vue

@@ -171,6 +171,12 @@
               <el-input v-model="form.remark" placeholder="请输入备注" type="textarea" maxlength="255" show-word-limit/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -192,9 +198,10 @@
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import {treeselect} from "@/api/system/dept";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "warningSign",
-    components: {Treeselect, Deptselector, Supermap,ISuperMap},
+    components: {Treeselect, Deptselector, Supermap,ISuperMap, DataImageUpload},
     data() {
       return {
         deptOptions: undefined,
@@ -272,6 +279,9 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       showMap() {
         // this.showLongitude = true;
         this.ISuperMapvisible = true;

+ 12 - 1
data-ui/src/views/data/digitalwater/battlefield/index.vue

@@ -229,6 +229,13 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :file-type="['png','jpg','jpeg']" :value="form.attachPaths" @input="getUrl"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -256,9 +263,10 @@
   import {treeselect} from "@/api/system/dept";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Battlefield",
-    components: {Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
+    components: {DataImageUpload, Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
     data() {
       return {
         // 遮罩层
@@ -405,6 +413,9 @@
         this.queryParams.pageNum = 1;
         this.getList();
       },
+      getUrl(url) {
+        this.form.attachPaths = url
+      },
       /** 重置按钮操作 */
       resetQuery() {
         this.resetForm("queryForm");

+ 14 - 1
data-ui/src/views/data/digitalwater/channelblueline/index.vue

@@ -266,6 +266,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -295,9 +303,10 @@
     import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
     import ISuperMap from "@/views/data/common/ISuperMap";
     import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+    import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
     export default {
         name: "Channelblueline",
-        components: {Deptselector, Supermap, Treeselect,ISuperMap},
+        components: {DataImageUpload, Deptselector, Supermap, Treeselect,ISuperMap},
         dicts: ['centerdata_attr_type'],
         data() {
             return {
@@ -394,6 +403,10 @@
           });
         },
         methods: {
+          /** 上传 */
+          getUrl(url) {
+            this.form.attachPaths=url
+          },
           riverLabel(river) {
             this.form.riverLabel = river.name
           },

+ 14 - 1
data-ui/src/views/data/digitalwater/garbagestation/index.vue

@@ -198,6 +198,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -224,9 +232,10 @@
   import {treeselect} from "@/api/system/dept";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Garbagestation",
-    components: {Deptselector, Supermap,ISuperMap,Treeselect},
+    components: {DataImageUpload, Deptselector, Supermap,ISuperMap,Treeselect},
     data() {
       return {
         // 遮罩层
@@ -296,6 +305,10 @@
       });
     },
     methods: {
+      /** 上传 */
+      getUrl(url) {
+        this.form.attachPaths=url
+      },
       setDataDeptId(e) {
         this.form.deptId = e.deptId;
         this.form.deptName = e.deptName;

+ 21 - 8
data-ui/src/views/data/digitalwater/outletsewage/index.vue

@@ -209,11 +209,19 @@
 <!--            </el-form-item>-->
 <!--          </el-col>-->
 <!--        </el-row>-->
+<!--        <el-row>-->
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="图片" prop="attachId">-->
+<!--              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachId"-->
+<!--                           @input="getUrl"></ImageUpload>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
         <el-row>
           <el-col :span="24">
-            <el-form-item label="图片" prop="attachId">
-              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachId"
-                           @input="getUrl"></ImageUpload>
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
             </el-form-item>
           </el-col>
         </el-row>
@@ -244,9 +252,10 @@
   import ISuperMap from "@/views/data/common/ISuperMap";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Outletsewage",
-    components: {Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
+    components: {DataImageUpload, Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
     dicts: ['centerdata_sewage_attr'],
     data() {
       return {
@@ -320,6 +329,10 @@
       });
     },
     methods: {
+      /** 上传 */
+      getUrl(url) {
+        this.form.attachPaths=url
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {
@@ -354,10 +367,10 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
-        getUrl(url) {
-            this.form.dialogImageUrl = url;
-            this.form.attachId = url;
-        },
+        // getUrl(url) {
+        //     this.form.dialogImageUrl = url;
+        //     this.form.attachId = url;
+        // },
       setDataDeptId(e) {
         this.form.deptId = e.deptId;
         this.form.deptName = e.deptName;

+ 14 - 1
data-ui/src/views/data/digitalwater/reach/index.vue

@@ -238,6 +238,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -259,9 +267,10 @@
   import {treeselect} from "@/api/system/dept";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Reach",
-    components: {Deptselector, Supermap,ISuperMap,Treeselect},
+    components: {DataImageUpload, Deptselector, Supermap,ISuperMap,Treeselect},
     data() {
       return {
         // 遮罩层
@@ -348,6 +357,10 @@
       });
     },
     methods: {
+      /** 上传 */
+      getUrl(url) {
+        this.form.attachPaths=url
+      },
       riverLabel(river) {
         this.form.riverLabel = river.name
       },

+ 14 - 2
data-ui/src/views/data/digitalwater/reservoir/index.vue

@@ -218,6 +218,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -245,9 +253,10 @@
   import {treeselect} from "@/api/system/dept";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Reservoir",
-    components: {Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
+    components: {DataImageUpload, Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
     data() {
       return {
         // 遮罩层
@@ -325,7 +334,10 @@
       });
     },
     methods: {
-
+      /** 上传 */
+      getUrl(url) {
+        this.form.attachPaths=url
+      },
       getTreeselect() {
         treeselect().then(response => {
           this.deptOptions = response.data

+ 14 - 2
data-ui/src/views/data/digitalwater/river/index.vue

@@ -218,7 +218,14 @@
             </el-form-item>
           </el-col>
         </el-row>
-
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -240,9 +247,10 @@
   import ISuperMap from "@/views/data/common/ISuperMap";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "River",
-    components: {Deptselector, Supermap,Treeselect,ISuperMap},
+    components: {DataImageUpload, Deptselector, Supermap,Treeselect,ISuperMap},
     data() {
       return {
         // 遮罩层
@@ -334,6 +342,10 @@
         this.form.hamletNumLabel.splice(node.label)
         console.log(this.form.hamletNum)
       },
+      /** 上传 */
+      getUrl(url) {
+        this.form.attachPaths=url
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {

+ 20 - 7
data-ui/src/views/data/digitalwater/wadebridgeculvert/index.vue

@@ -183,11 +183,19 @@
           </el-col>
         </el-row>
 
+<!--        <el-row>-->
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="图片" prop="attachIdPic">-->
+<!--              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachIdPic"-->
+<!--                           @input="getUrl"></ImageUpload>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
         <el-row>
           <el-col :span="24">
-            <el-form-item label="图片" prop="attachIdPic">
-              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachIdPic"
-                           @input="getUrl"></ImageUpload>
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
             </el-form-item>
           </el-col>
         </el-row>
@@ -218,9 +226,10 @@
   import ISuperMap from "@/views/data/common/ISuperMap";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
   export default {
     name: "Wadebridgeculvert",
-    components: {Deptselector, fileUpload, Supermap,Treeselect,ISuperMap},
+    components: {DataImageUpload, Deptselector, fileUpload, Supermap,Treeselect,ISuperMap},
     data() {
       return {
         // 遮罩层
@@ -291,6 +300,10 @@
       });
     },
     methods: {
+      /** 上传 */
+      getUrl(url) {
+        this.form.attachPaths=url
+      },
       showMap() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {
@@ -325,9 +338,9 @@
         this.form.deptName = node.label
         this.$refs.form.validateField("deptId")
       },
-        getUrl(url) {
-            this.form.attachIdPic = url;
-        },
+        // getUrl(url) {
+        //     this.form.attachIdPic = url;
+        // },
       setDataDeptId(e) {
         this.form.deptId = e.deptId;
         this.form.deptName = e.deptName;

+ 21 - 8
data-ui/src/views/data/digitalwater/watergate/index.vue

@@ -189,11 +189,19 @@
         <!--            </el-form-item>-->
         <!--          </el-col>-->
         <!--        </el-row>-->
+<!--        <el-row>-->
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="图片" prop="attachId">-->
+<!--              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachId"-->
+<!--                           @input="getUrl"></ImageUpload>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
         <el-row>
           <el-col :span="24">
-            <el-form-item label="图片" prop="attachId">
-              <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachId"
-                           @input="getUrl"></ImageUpload>
+            <el-form-item label="图片" prop="attachPaths">
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.attachPaths"
+                               @input="getUrl"></DataImageUpload>
             </el-form-item>
           </el-col>
         </el-row>
@@ -224,9 +232,10 @@ import ISuperMap from "@/views/data/common/ISuperMap";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
 export default {
   name: "Watergate",
-  components: {Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
+  components: {DataImageUpload,Deptselector, fileUpload, Supermap,ISuperMap,Treeselect},
   data() {
     return {
       // 遮罩层
@@ -298,6 +307,10 @@ export default {
     });
   },
   methods: {
+    /** 上传 */
+    getUrl(url) {
+      this.form.attachPaths=url
+    },
     getTreeselect() {
       treeselect().then(response => {
         this.deptOptions = response.data
@@ -309,10 +322,10 @@ export default {
       this.form.deptName = node.label
       this.$refs.form.validateField("deptId")
     },
-    getUrl(url) {
-      this.form.dialogImageUrl = url;
-      this.form.attachId = url;
-    },
+    // getUrl(url) {
+    //   this.form.dialogImageUrl = url;
+    //   this.form.attachId = url;
+    // },
     setDataDeptId(e) {
       this.form.deptId = e.deptId;
       this.form.deptName = e.deptName;

+ 28 - 29
data-ui/src/views/data/generalbusiness/importarea/index.vue

@@ -198,7 +198,7 @@
             <el-form-item label="区域名称" prop="areaName">
               <el-input v-model="form.areaName" placeholder="请输入区域名称" maxlength="50"/>
             </el-form-item>
-            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap1">
               <el-input v-model="form.longitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
             </el-form-item>
             <el-form-item label="绑定设备" prop="deviceList">
@@ -233,7 +233,7 @@
                 ></el-option>
               </el-select>
             </el-form-item>
-            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap1">
               <el-input v-model="form.latitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
             </el-form-item>
             <el-form-item label="区域类型" prop="projectType">
@@ -278,7 +278,7 @@
       <el-button type="primary" @click="showLongitude=false">确定</el-button>
     </el-dialog>-->
 
-    <ISuperMap ref="ISuperMap" v-if="ISuperMapvisible" @send="send"/>
+    <ISuperMap ref="ISuperMap1" v-if="ISuperMapvisible" @send="send1"/>
     <!-- 添加区域标记 -->
 <!--    <el-dialog :title="titleLongitude" :visible.sync="regionalFlagOpen" width="1000px">-->
 <!--      <areaSupermap ref="fireAreaSupermap" v-if="regionalFlagOpen" style="width: 100%;height:74vh"-->
@@ -289,21 +289,19 @@
 <!--        <el-button @click="cancelRegionalFlag">取 消</el-button>-->
 <!--      </div>-->
 <!--    </el-dialog>-->
-    <ISuperMapAreaMarker ref="ISuperMap" v-if="regionalFlagOpen" @send="send1"/>
+    <ISuperMapAreaMarker ref="ISuperMap" v-if="regionalFlagOpen" @send="send"/>
   </div>
 </template>
 
 <script>
   import {
     addImportarea,
-    addRegionalFlag,
     delImportarea,
-    delRegionalFlag,
     getImportarea,
-    getRegionalFlag,
     listImportarea,
     updateImportarea
   } from "@/api/data/generalbusiness/importarea/importarea";
+  import { addRegionalFlag} from "@/api/data/digitalresources/info";
   import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
   import deptselector from '@/views/components/deptselector.vue'
   import supermap from '@/views/components/supermap.vue'
@@ -326,10 +324,11 @@
           eventId: null,
           latLngs: [],
           type: '0',
+          name:null,
         },
-        sign: 1,
+        sign1: 1,
         ISuperMapvisible: false,
-        sign1:3,
+        sign:3,
         deptOptions: undefined,
         // 信息弹出层上的坐标弹层
         showLongitude: false,
@@ -425,29 +424,27 @@
       /** 区域标记按钮操作 */
       regionalFlagAdd(row) {
         const eventId = row.id;
-        getRegionalFlag(eventId).then(response => {
-          this.regionalFlagObj.eventId = eventId;
-          this.regionalFlagObj.latLngs = response.data.latLngs;
-          this.showMap1(this.regionalFlagObj.latLngs)
-        })
-
-        console.log(this.regionalFlagObj)
+        this.regionalFlagObj.eventId= eventId;
+        this.showMap(eventId)
+        // getRegionalFlag(eventId).then(response => {
+        //   this.regionalFlagObj1 = response.data;
+        // })
       },
-      showMap1(params) {
+      showMap(eventId) {
         this.regionalFlagOpen = true;
         this.$nextTick(() => {
-          this.$refs.ISuperMap.initP(this.sign1, {
+          this.$refs.ISuperMap.initP(this.sign, {
             longitude: undefined,
             latitude: undefined,
-            xiantude: params
-          })
+            xiantude: undefined
+          },eventId)
         })
       },
 
-      showMap() {
+      showMap1() {
         this.ISuperMapvisible = true;
         this.$nextTick(() => {
-          this.$refs.ISuperMap.init(this.sign, {
+          this.$refs.ISuperMap1.init(this.sign1, {
             id: this.form.id,
             longitude: this.form.longitude,
             latitude: this.form.latitude,
@@ -455,30 +452,32 @@
           })
         })
       },
-      send(val) {
+      send1(val) {
         if (val===true){
           this.ISuperMapvisible = false;
           return;
         }
-        if (this.sign === 1) {
+        if (this.sign1 === 1) {
           this.form.longitude = val.longitude;
           this.form.latitude = val.latitude;
         }
-        if (this.sign === 2 || this.sign === 3) this.regionalFlagObj.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+        if (this.sign1 === 2 || this.sign1 === 3) this.regionalFlagObj.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
         this.ISuperMapvisible = false
       },
 
-      send1(val) {
+      send(val) {
+        console.log(val)
         if (val===true){
           this.regionalFlagOpen = false;
           return;
         }
-        if (this.sign1 === 2 || this.sign1 === 3) this.regionalFlagObj.latLngs = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+        if (this.sign === 2 || this.sign === 3) this.regionalFlagObj.latLngs = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+        this.regionalFlagObj.name = val.name;
         addRegionalFlag(this.regionalFlagObj).then(res =>{
           this.$modal.msgSuccess(res.msg);
-          this.getList()
+          this.$refs.ISuperMap.getRegionalFlag();
         });
-        this.regionalFlagOpen = false
+        // this.regionalFlagOpen = false
 
       },
       setDataDeptId(e) {

+ 327 - 147
data-ui/src/views/data/generalbusiness/keyProjects/index.vue

@@ -22,13 +22,13 @@
         </el-select>
       </el-form-item>
       <el-form-item label="所属开发区" prop="park">
-        <el-select v-model="queryParams.park" placeholder="请选择所属开发区" clearable size="small">
+        <el-select v-model="queryParams.park" placeholder="请选择所属开发区">
           <el-option
-            v-for="dict in dict.type.centerdata_park"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
+            v-for="item in deptOptionsPark"
+            :key="item.deptId"
+            :label="item.deptName"
+            :value="item.deptId"
+          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -102,55 +102,51 @@
     <el-table v-loading="loading" :data="projectsList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="70" align="center"/>
       <el-table-column label="属地辖区" align="center" prop="territoriality"/>
-      <el-table-column label="所属开发区" align="center" prop="park" :show-overflow-tooltip="true">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.centerdata_park" :value="scope.row.park"/>
-        </template>
-      </el-table-column>
-<!--      <el-table-column label="开发区中心点经度" align="center" prop="parkLongitude"/>-->
-<!--      <el-table-column label="开发区中心点纬度" align="center" prop="parkLatitude"/>-->
+      <el-table-column label="所属开发区" align="center" prop="park" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column label="开发区中心点经度" align="center" prop="parkLongitude"/>-->
+      <!--      <el-table-column label="开发区中心点纬度" align="center" prop="parkLatitude"/>-->
       <el-table-column label="项目名称" align="center" prop="projectName" width="150" :show-overflow-tooltip="true"/>
-<!--      <el-table-column label="项目环境" align="center" prop="environment">-->
-<!--        <template slot-scope="scope">-->
-<!--          <dict-tag :options="dict.type.centerdata_environment" :value="scope.row.environment"/>-->
-<!--        </template>-->
-<!--      </el-table-column>-->
-<!--      <el-table-column label="法人单位" align="center" prop="legalUnit"/>-->
-<!--      <el-table-column label="工程目标" align="center" prop="projectTarget"/>-->
-<!--      <el-table-column label="工程属地" align="center" prop="projectLevel">-->
-<!--        <template slot-scope="scope">-->
-<!--          <dict-tag :options="dict.type.centerdata_project_level" :value="scope.row.projectLevel"/>-->
-<!--        </template>-->
-<!--      </el-table-column>-->
-<!--      <el-table-column label="建设单位" align="center" prop="constructionUnit"/>-->
+      <!--      <el-table-column label="项目环境" align="center" prop="environment">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <dict-tag :options="dict.type.centerdata_environment" :value="scope.row.environment"/>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
+      <!--      <el-table-column label="法人单位" align="center" prop="legalUnit"/>-->
+      <!--      <el-table-column label="工程目标" align="center" prop="projectTarget"/>-->
+      <!--      <el-table-column label="工程属地" align="center" prop="projectLevel">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <dict-tag :options="dict.type.centerdata_project_level" :value="scope.row.projectLevel"/>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
+      <!--      <el-table-column label="建设单位" align="center" prop="constructionUnit"/>-->
       <el-table-column label="负责人" align="center" prop="principal"/>
       <el-table-column label="联系电话" align="center" prop="phone"/>
       <el-table-column label="开复工时间" align="center" prop="startTime"/>
       <el-table-column label="计划竣工时间" align="center" prop="endTime"/>
-<!--      <el-table-column label="联系电话" align="center" prop="phone"/>-->
-<!--      <el-table-column label="建设地点" align="center" prop="constructionSite"/>-->
-<!--      <el-table-column label="在建性质" align="center" prop="nature">-->
-<!--        <template slot-scope="scope">-->
-<!--          <dict-tag :options="dict.type.centerdata_zj_nature" :value="scope.row.nature"/>-->
-<!--        </template>-->
-<!--      </el-table-column>-->
+      <!--      <el-table-column label="联系电话" align="center" prop="phone"/>-->
+      <!--      <el-table-column label="建设地点" align="center" prop="constructionSite"/>-->
+      <!--      <el-table-column label="在建性质" align="center" prop="nature">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <dict-tag :options="dict.type.centerdata_zj_nature" :value="scope.row.nature"/>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
       <el-table-column label="总投资(万元)" align="center" prop="totalInvest" width="120"/>
       <el-table-column label="年度计划投资(万元)" align="center" prop="yearInvest" width="100"/>
-<!--      <el-table-column label="产业类别" align="center" prop="industryType">-->
-<!--        <template slot-scope="scope">-->
-<!--          <dict-tag :options="dict.type.centerdata_industry_type" :value="scope.row.industryType"/>-->
-<!--        </template>-->
-<!--      </el-table-column>-->
-<!--      <el-table-column label="项目秘书" align="center" prop="secretary"/>-->
-<!--      <el-table-column label="项目秘书职务" align="center" prop="secretaryDuties"/>-->
-<!--      <el-table-column label="项目秘书手机" align="center" prop="secretaryPhone"/>-->
-<!--      <el-table-column label="建筑面积" align="center" prop="constructionArea"/>
-      <el-table-column label="所属分类" align="center" prop="cameraSystem">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.camera_system" :value="scope.row.cameraSystem"/>
-        </template>
-      </el-table-column>-->
-      <el-table-column label="所属部门" align="center" prop="deptName" />
+      <!--      <el-table-column label="产业类别" align="center" prop="industryType">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <dict-tag :options="dict.type.centerdata_industry_type" :value="scope.row.industryType"/>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
+      <!--      <el-table-column label="项目秘书" align="center" prop="secretary"/>-->
+      <!--      <el-table-column label="项目秘书职务" align="center" prop="secretaryDuties"/>-->
+      <!--      <el-table-column label="项目秘书手机" align="center" prop="secretaryPhone"/>-->
+      <!--      <el-table-column label="建筑面积" align="center" prop="constructionArea"/>
+            <el-table-column label="所属分类" align="center" prop="cameraSystem">
+              <template slot-scope="scope">
+                <dict-tag :options="dict.type.camera_system" :value="scope.row.cameraSystem"/>
+              </template>
+            </el-table-column>-->
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
       <el-table-column label="创建人" align="center" prop="createName" :show-overflow-tooltip="true"/>
       <el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true"/>
       <el-table-column label="修改人" align="center" prop="updateName" :show-overflow-tooltip="true"/>
@@ -177,25 +173,25 @@
               <el-dropdown-item command="remove" icon="el-icon-delete"
                                 v-hasPermi="['forest:keyProjects:remove']">删除
               </el-dropdown-item>
-<!--              <el-dropdown-item command="details" icon="el-icon-info"-->
-<!--                                v-hasPermi="['forest:keyProjects:edit']">详情-->
-<!--              </el-dropdown-item>-->
-<!--              <el-button-->
-<!--                size="mini"-->
-<!--                type="text"-->
-<!--                icon="el-icon-edit"-->
-<!--                @click="handleUpdate(scope.row)"-->
-<!--                v-hasPermi="['forest:keyProjects:edit']"-->
-<!--              >修改-->
-<!--              </el-button>-->
-<!--              <el-button-->
-<!--                size="mini"-->
-<!--                type="text"-->
-<!--                icon="el-icon-delete"-->
-<!--                @click="handleDelete(scope.row)"-->
-<!--                v-hasPermi="['forest:keyProjects:remove']"-->
-<!--              >删除-->
-<!--              </el-button>-->
+              <!--              <el-dropdown-item command="details" icon="el-icon-info"-->
+              <!--                                v-hasPermi="['forest:keyProjects:edit']">详情-->
+              <!--              </el-dropdown-item>-->
+              <!--              <el-button-->
+              <!--                size="mini"-->
+              <!--                type="text"-->
+              <!--                icon="el-icon-edit"-->
+              <!--                @click="handleUpdate(scope.row)"-->
+              <!--                v-hasPermi="['forest:keyProjects:edit']"-->
+              <!--              >修改-->
+              <!--              </el-button>-->
+              <!--              <el-button-->
+              <!--                size="mini"-->
+              <!--                type="text"-->
+              <!--                icon="el-icon-delete"-->
+              <!--                @click="handleDelete(scope.row)"-->
+              <!--                v-hasPermi="['forest:keyProjects:remove']"-->
+              <!--              >删除-->
+              <!--              </el-button>-->
             </el-dropdown-menu>
           </el-dropdown>
         </template>
@@ -223,13 +219,13 @@
             </el-form-item>
             <el-form-item label="属地辖区" prop="territoriality">
               <el-select v-model="form.territoriality" placeholder="请输入属地辖区" maxlength="32">
-                  <el-option
-                    v-for="item in options"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  ></el-option>
-                </el-select>
+                <el-option
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
             </el-form-item>
             <!--<el-form-item label="工程属地" prop="projectLevel">
               <el-select v-model="form.projectLevel" placeholder="请选择工程属地">
@@ -255,7 +251,7 @@
                               v-model="form.startTime"
                               type="month"
                               value-format="yyyy-MM"
-                              placeholder="请选择开复工时间" >
+                              placeholder="请选择开复工时间">
               </el-date-picker>
             </el-form-item>
             <el-form-item label="建设地点" prop="constructionSite">
@@ -277,6 +273,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="项目环境" prop="environment">
+
               <el-select v-model="form.environment" placeholder="请选择项目环境">
                 <el-option
                   v-for="dict in dict.type.centerdata_environment"
@@ -292,10 +289,10 @@
             <el-form-item label="所属开发区" prop="park">
               <el-select v-model="form.park" placeholder="请选择所属开发区">
                 <el-option
-                  v-for="dict in dict.type.centerdata_park"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
+                  v-for="item in deptOptionsPark"
+                  :key="item.deptId"
+                  :label="item.deptName"
+                  :value="item.deptId"
                 ></el-option>
               </el-select>
             </el-form-item>
@@ -399,7 +396,9 @@
 
     <!--  进度提交  -->
     <el-dialog :title="title" :visible.sync="scheduleUpload" width="800px" class="form-style"><!--:show-close="false"-->
-      <el-button style="float: right;z-index: 999; position: relative" type="primary" @click="submitFormToPicture">上  传</el-button>
+      <el-button style="float: right;z-index: 999; position: relative" type="primary" @click="submitFormToPicture">上
+        传
+      </el-button>
       <el-form ref="formUpload" :model="form" :rules="rules" label-width="80px">
         <el-row :gutter="24">
           <el-col :span="12">
@@ -429,17 +428,29 @@
 
     <el-dialog :title="title" :visible.sync="scheduleHistory" width="900px" class="form-style">
       <!-- 修改内容回显开始 -->
-      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
+      <!--<el-form ref="form" :model="form" :rules="rules" label-width="150px">
         <ul class="xg_cont">
             <li>
-              <h4 class="sjxtitle">项目名称</h4>
-              <span class="sjx_cont">{{form.projectName}}</span>
+              <el-form-item label="年度计划投资(万元)" prop="yearInvest">
+                <el-input v-model="form.yearInvest" placeholder="请输入年度计划投资" maxlength="32" disabled/>
+              </el-form-item>
             </li>
             <li>
-              <h4 class="sjxtitle">项目环境</h4>
+             &lt;!&ndash; <h4 class="sjxtitle">项目环境</h4>
               <span class="sjx_cont">
                 <dict-tag :options="dict.type.centerdata_environment" :value="form.environment"/>
-              </span>
+              </span>&ndash;&gt;
+
+              <el-form-item label="项目环境" prop="environment">
+                <el-select v-model="form.environment" placeholder="请选择项目环境" disabled>
+                  <el-option
+                    v-for="dict in dict.type.centerdata_environment"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
             </li>
             <li>
               <h4 class="sjxtitle">经度</h4>
@@ -455,10 +466,16 @@
             </li>
             <li>
               <h4 class="sjxtitle">所属开发区</h4>
-              <span class="sjx_cont">
-                <dict-tag :options="dict.type.centerdata_park" :value="form.park"/>
-              </span>
+              <span class="sjx_cont">{{form.parkName}}</span>
             </li>
+          <li>
+            <h4 class="sjxtitle">负责人</h4>
+            <span class="sjx_cont">{{form.principal}}</span>
+          </li>
+          <li>
+            <h4 class="sjxtitle">联系电话</h4>
+            <span class="sjx_cont">{{form.phone}}</span>
+          </li>
             <li>
               <h4 class="sjxtitle">开发区中心点经度</h4>
               <span class="sjx_cont">{{form.parkLongitude}}</span>
@@ -535,39 +552,153 @@
             </li>
             <li class="jiansheCont">
               <h4 class="sjxtitle">封面</h4>
-              <el-image
+              <el-image v-if="form.photoId!=null"
                 :src="form.photoId" style="width:150px;height:150px;"
                 :preview-src-list="[form.photoId]">
               </el-image>
             </li>
 
         </ul>
+      </el-form>-->
+
+      <el-form ref="form" :model="form" :rules="rules" label-width="160px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectName">
+              <el-input v-model="form.projectName" maxlength="50" readonly/>
+            </el-form-item>
+            <el-form-item label="经度" prop="longitude">
+              <el-input v-model="form.longitude" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="属地辖区" prop="territoriality">
+              <el-input v-model="form.territoriality" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="负责人" prop="principal">
+              <el-input v-model="form.principal" maxlength="20" readonly/>
+            </el-form-item>
+            <el-form-item label="开发区中心点经度" prop="parkLongitude" @dblclick.native="showMaptwo">
+              <el-input v-model="form.parkLongitude" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="开复工时间" prop="startTime">
+              <el-input v-model="form.startTime" readonly/>
+            </el-form-item>
+            <el-form-item label="建设地点" prop="constructionSite">
+              <el-input v-model="form.constructionSite" maxlength="255" readonly/>
+            </el-form-item>
+            <el-form-item label="总投资(万元)" prop="totalInvest">
+              <el-input v-model="form.totalInvest" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="法人单位" prop="legalUnit">
+              <el-input v-model="form.legalUnit" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="项目秘书职务" prop="secretaryDuties">
+              <el-input v-model="form.secretaryDuties" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="所属部门" prop="deptId">
+              <el-input v-model="form.deptName" readonly/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目环境" prop="environment">
+              <el-select v-model="form.environment" ref="selectRef0" @blur="modelClick()" @click.native="modelClick()"
+                         placeholder="">
+                <el-option
+                  v-for="dict in dict.type.centerdata_environment"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="所属开发区" prop="park">
+              <el-select v-model="form.park" placeholder="" ref="selectRef1" @blur="modelClick()"
+                         @click.native="modelClick()">
+                <el-option
+                  v-for="item in deptOptionsPark"
+                  :key="item.deptId"
+                  :label="item.deptName"
+                  :value="item.deptId"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="联系电话" prop="phone">
+              <el-input v-model="form.phone" maxlength="13" readonly/>
+            </el-form-item>
+            <el-form-item label="开发区中心点纬度" prop="parkLatitude" @dblclick.native="showMaptwo">
+              <el-input v-model="form.parkLatitude" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="计划竣工时间" prop="endTime">
+              <el-input v-model="form.endTime" readonly/>
+            </el-form-item>
+            <el-form-item label="在建性质" prop="nature">
+              <el-select v-model="form.nature" placeholder="" ref="selectRef2" @blur="modelClick()"
+                         @click.native="modelClick()">
+                <el-option
+                  v-for="dict in dict.type.centerdata_zj_nature"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="年度计划投资(万元)" prop="yearInvest">
+              <el-input v-model="form.yearInvest" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="项目秘书" prop="secretary">
+              <el-input v-model="form.secretary" maxlength="32" readonly/>
+            </el-form-item>
+            <el-form-item label="项目秘书手机" prop="secretaryPhone">
+              <el-input v-model="form.secretaryPhone" maxlength="13" readonly/>
+            </el-form-item>
+            <el-form-item label="产业类别" prop="industryType">
+             <el-select v-model="form.industryType" placeholder="" ref="selectRef3" @blur="modelClick()"
+                         @click.native="modelClick()">
+                <el-option
+                  v-for="dict in dict.type.centerdata_industry_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="绑定设备" prop="deviceList">
+              <el-select v-model="form.deviceList" multiple placeholder="" ref="selectRef4" @blur="modelClick()"
+                         @click.native="modelClick()" style="pointer-events: none;">
+                <el-option
+                  v-for="dict in cameraList"
+                  :key="dict.id"
+                  :label="dict.cameraName"
+                  :value="dict.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="建设内容" prop="introduction">
+              <el-input v-model="form.introduction" type="textarea" maxlength="500"
+                        :autosize="{ minRows: 5, maxRows: 5}" readonly/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="封面" prop="photoId">
+              <ImageUpload v-if="form.photoId!=null" ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']"
+                           :value="form.photoId"
+                           @input="getUrl"></ImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
-      <!-- 修改内容回显结束 -->
-<!--      <el-form ref="historyForm" :inline="true" :model="historyQueryParams" :rules="rules" label-width="80px">-->
-<!--        <el-form-item label="起始时间" prop="startTime">-->
-<!--          <el-date-picker clearable size="small"-->
-<!--                          :disabled="!scheduleHistory"-->
-<!--                          v-model="historyQueryParams.startTime"-->
-<!--                          type="date"-->
-<!--                          value-format="yyyy-MM-dd"-->
-<!--                          placeholder="选择起始时间">-->
-<!--          </el-date-picker>-->
-<!--        </el-form-item>-->
-<!--        <el-form-item label="终止时间" prop="endTime">-->
-<!--          <el-date-picker clearable size="small"-->
-<!--                          :disabled="!scheduleHistory"-->
-<!--                          v-model="historyQueryParams.endTime"-->
-<!--                          type="date"-->
-<!--                          value-format="yyyy-MM-dd"-->
-<!--                          placeholder="选择终止时间">-->
-<!--          </el-date-picker>-->
-<!--        </el-form-item>-->
-<!--        <el-form-item>-->
-<!--          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleHistoryQuery" :loading="loading1">搜索</el-button>-->
-<!--          <el-button icon="el-icon-refresh" size="mini" @click="resetHistoryQuery">重置</el-button>-->
-<!--        </el-form-item>-->
-<!--      </el-form>-->
       <b>{{ this.keyProjectsName }}</b><br><br>
       <div class="block" style="overflow: auto;">
         <el-timeline :reverse="!scheduleHistory">
@@ -584,7 +715,8 @@
                 @click="scheduleDeleteByOne(activity.scheduleId)"
                 v-hasPermi="['forest:keyProjects:remove']"
               >删除
-              </el-button><br>
+              </el-button>
+              <br>
               <span v-if="activity.scheduleRemark !== '' && activity.scheduleRemark != null">      (备注:{{
                   activity.scheduleRemark
                 }})</span>
@@ -592,7 +724,8 @@
             </div>
             <div v-if="activity.schedulePictures !== null">
               <template v-for="(imageUrl, imgIndex) in activity.schedulePictures.split(',')">
-                <el-image :src="imageUrl" :key="imgIndex" style="width:8rem; height: 8rem; margin:2px" :preview-src-list="[imageUrl]">
+                <el-image :src="imageUrl" :key="imgIndex" style="width:8rem; height: 8rem; margin:2px"
+                          :preview-src-list="[imageUrl]">
                 </el-image>
               </template>
             </div>
@@ -613,7 +746,7 @@ import {
   delProjects,
   getProjects, getProjectsSchedule,
   listProjects,
-  updateProjects, addProjectsScheduleInfo, getHistoryByTime, deleteSchedule
+  updateProjects, addProjectsScheduleInfo, getHistoryByTime, deleteSchedule, selectPark
 } from "@/api/data/generalbusiness/keyProjects/projects";
 import {selectCenterMonitorlList} from "@/api/data/digitalforest/animal/animal";
 import deptselector from '@/views/components/deptselector.vue'
@@ -628,7 +761,7 @@ import TreeDept from "../../../../components/treeDept";
 
 export default {
   name: "Projects",
-  dicts: ['project_type', "camera_system", 'centerdata_project_level','centerdata_zj_nature','centerdata_industry_type','centerdata_environment','centerdata_park'],
+  dicts: ['project_type', "camera_system", 'centerdata_project_level', 'centerdata_zj_nature', 'centerdata_industry_type', 'centerdata_environment', 'centerdata_park'],
   components: {TreeDept, deptselector, supermap, Treeselect, ISuperMap},
   data() {
     return {
@@ -636,7 +769,8 @@ export default {
       ISuperMapvisible: false,
       ISuperMapvisibletwo: false,
       deptOptions: undefined,
-      disabled:true,
+      deptOptionsPark: [],
+      disabled: true,
       // 遮罩层
       loading: true,
       loading1: false,
@@ -707,7 +841,7 @@ export default {
       }, {
         value: '双辽市',
         label: '双辽市'
-      },{
+      }, {
         value: '伊通县',
         label: '伊通县'
       }],
@@ -730,12 +864,15 @@ export default {
         constructionSite: [
           {required: true, message: "建设地点不能为空", trigger: "blur"}
         ],
-    /*    projectTarget: [
-          {required: true, message: "工程目标不能为空", trigger: "blur"}
+        nature: [
+          {required: true, message: "在建性质不能为空", trigger: "blur"}
         ],
-        projectLevel: [
-          {required: true, message: "工程属地不能为空", trigger: "change"}
-        ],*/
+        /*    projectTarget: [
+              {required: true, message: "工程目标不能为空", trigger: "blur"}
+            ],
+            projectLevel: [
+              {required: true, message: "工程属地不能为空", trigger: "change"}
+            ],*/
         longitude: [
           {required: true, message: "经度不能为空", trigger: ["blur", "change"]},
           {validator: checkLon, trigger: 'blur'}
@@ -781,13 +918,23 @@ export default {
     };
   },
   created() {
-    this.getList();
     this.getTreeselect();
+
     selectCenterMonitorlList(this.queryParams).then(response => {
       this.cameraList = response.data;
     });
   },
   methods: {
+    dictFormat(row, column) {
+      return this.selectDictLabel(this.dict.type.centerdata_industry_type, row.industryType);
+    },
+    modelClick() {
+      this.$refs.selectRef0.blur();
+      this.$refs.selectRef1.blur();
+      this.$refs.selectRef2.blur();
+      this.$refs.selectRef3.blur();
+      this.$refs.selectRef4.blur();
+    },
     handleClick() {
       alert('button click');
     },
@@ -813,16 +960,35 @@ export default {
       treeselect().then(response => {
         this.deptOptions = response.data
       })
+      selectPark({deptType:"sys_dept_type_27"}).then(response => {
+        let arr = response.data.map(item => {
+          item.deptId = item.deptId + ""
+          return item
+        })
+        this.deptOptionsPark = arr
+
+        this.getList();
+      })
     },
     hx(node) {
       this.form.deptId = node.id
       this.form.deptName = node.label
     },
     /** 查询重点工程列表 */
-    getList() {
+    async getList() {
       this.loading = true;
-      listProjects(this.queryParams).then(response => {
+      await listProjects(this.queryParams).then(response => {
         this.projectsList = response.rows;
+        let projectsList1 = []
+        this.projectsList.forEach(item1 => {
+          this.deptOptionsPark.forEach(item => {
+            if (item1.park == item.deptId) {
+              item1.park = item.deptName
+            }
+          })
+          projectsList1.push(item1)
+        })
+        this.projectsList = projectsList1;
         this.total = response.total;
         this.loading = false;
       });
@@ -954,7 +1120,7 @@ export default {
       this.resetForm("queryForm");
       this.handleQuery();
     },
-    resetHistoryQuery(){
+    resetHistoryQuery() {
       this.resetForm("historyForm");
       this.handleHistoryQuery();
     },
@@ -975,6 +1141,7 @@ export default {
       this.reset();
       const id = row.id || this.ids
       getProjects(id).then(response => {
+        response.data.park = response.data.park + ""
         this.form = response.data;
         this.open = true;
         this.title = "修改重点工程";
@@ -992,16 +1159,22 @@ export default {
     getScheduleHistory(row) {
       this.keyProjectsId = row.id || this.ids
       this.keyProjectsName = row.projectName;
-      getProjectsSchedule(this.keyProjectsId).then(response => {
-        this.activities = response.data;
+      getProjectsSchedule(this.keyProjectsId).then(res =>{
+        this.activities = res.data;
+      })
+      getProjects(this.keyProjectsId).then(response => {
+        let obj = {};
+        this.deptOptionsPark.forEach(item => {
+          if (item.deptId == response.data.park) {
+            obj["parkName"] = item.deptName
+          }
+        })
+
+        this.form = {...response.data, ...obj};
         this.scheduleHistory = true;
         this.title = "详情";
       })
       this.reset();
-      const id = row.id || this.ids
-      getProjects(id).then(response => {
-        this.form = response.data;
-      });
     },
     /** 提交按钮 */
     submitForm() {
@@ -1056,7 +1229,7 @@ export default {
     },
 
     /** 删除单条进度信息 */
-    scheduleDeleteByOne(scheduleId){
+    scheduleDeleteByOne(scheduleId) {
       this.$modal.confirm('是否删除选中的数据?').then(function () {
         return deleteSchedule(scheduleId);
       }).then(() => {
@@ -1074,34 +1247,39 @@ export default {
   justify-content: space-between;
   align-items: center;
   padding: 20px;
-/* background-color: #f5f7fa; border-bottom: 1px solid #ebeef5; */
+  /* background-color: #f5f7fa; border-bottom: 1px solid #ebeef5; */
 }
 
 .dialog-header span {
   font-size: 18px;
   font-weight: bold;
 }
-h4,ul,li{
+
+h4, ul, li {
   margin: 0;
   padding: 0;
 }
-.xg_cont{
-  padding:0;
+
+.xg_cont {
+  padding: 0;
   color: #606266;
   font-size: 14px;
   word-break: break-all;
   overflow: hidden;
 }
-.xg_cont li{
+
+.xg_cont li {
   list-style: none;
   width: 50%;
   float: left;
-  margin:0 0 10px 0;
+  margin: 0 0 10px 0;
 }
-.xg_cont li.jiansheCont{
-  width:100%;
+
+.xg_cont li.jiansheCont {
+  width: 100%;
 }
-.sjxtitle{
+
+.sjxtitle {
   width: 160px;
   line-height: 36px !important;
   font-weight: 700;
@@ -1111,7 +1289,8 @@ h4,ul,li{
   font-size: 14px;
   vertical-align: top;
 }
-.sjx_cont{
+
+.sjx_cont {
   color: #909295;
   line-height: 36px;
   width: 63%;
@@ -1119,7 +1298,8 @@ h4,ul,li{
   margin: 0 0 0 170px;
   vertical-align: top;
 }
-.js_cont{
+
+.js_cont {
   width: 81%;
 }
 </style>

+ 1 - 1
data-ui/src/views/data/generalbusiness/leaveCount/index.vue

@@ -89,7 +89,7 @@
   import { selectUserList } from "@/api/data/digitalforest/linleader/linleader";
 
   export default {
-    name: "Leave",
+    name: "LeaveCount",
     dicts: ["app_leave"],
     data() {
       return {

+ 3 - 1
data-ui/src/views/data/generalbusiness/leaveSelect/index.vue

@@ -122,7 +122,7 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
-  name: "Leave",
+  name: "LeaveSelect",
   components: { Treeselect },
   dicts: ["app_leave"],
   data() {
@@ -163,6 +163,7 @@ export default {
         deptName: null,
         leaveUserId: null,
         leaveUserName: null,
+        id:null
       },
       // 表单参数
       form: {},
@@ -199,6 +200,7 @@ export default {
       },
     };
   },
+
   created() {
     this.queryParams.type = this.$route.query.type;
     this.getList();

+ 32 - 4
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestFirehydrant.java

@@ -39,11 +39,11 @@ public class CenterdataTForestFirehydrant extends BaseBusinessEntity {
     private String firehydrantTypeLabel;
 
     /**
-     * 消火栓名称
+     * 名称
      */
-    @ApiModelProperty(value = "消火栓名称", required = false)
-    @Excel(name = "消火栓名称")
-    @NotBlank(message = "消火栓名称不能为空")
+    @ApiModelProperty(value = "名称", required = false)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -102,6 +102,34 @@ public class CenterdataTForestFirehydrant extends BaseBusinessEntity {
     private String deptName;
 
     /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
+
+    public String getAttachPaths() {
+        return attachPaths;
+    }
+
+    public void setAttachPaths(String attachPaths) {
+        this.attachPaths = attachPaths;
+    }
+
+    public String getBusSource() {
+        return busSource;
+    }
+
+    public void setBusSource(String busSource) {
+        this.busSource = busSource;
+    }
+
+    /**
      * 数据状态(1-可用 2-不可用 ) - 字典
      */
 //    @Excel(name = "数据状态(1-可用 2-不可用 ) - 字典")

+ 12 - 0
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWatercrane.java

@@ -93,6 +93,18 @@ public class CenterdataTForestWatercrane extends BaseBusinessEntity {
     @Excel(name = "具体位置")
     private String specificLocation;
 
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
+
 
 
     /**

+ 27 - 0
src/main/java/com/sooka/sponest/data/basicdata/domain/CenterdataTForestWaterintake.java

@@ -84,6 +84,33 @@ public class CenterdataTForestWaterintake extends BaseBusinessEntity {
     @NotBlank(message = "所属部门不能为空")
     private String deptName;
 
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
+
+    public String getAttachPaths() {
+        return attachPaths;
+    }
+
+    public void setAttachPaths(String attachPaths) {
+        this.attachPaths = attachPaths;
+    }
+
+    public String getBusSource() {
+        return busSource;
+    }
+
+    public void setBusSource(String busSource) {
+        this.busSource = busSource;
+    }
 
     public String getSpecificLocation() {
         return specificLocation;

+ 5 - 0
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestFirehydrantServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.basicdata.service.impl;
 
+import com.ruoyi.common.core.constant.DocumentNameConstants;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
@@ -13,6 +14,7 @@ import com.sooka.sponest.data.basicdata.service.ICenterdataTForestFirehydrantSer
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
 import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -57,6 +59,7 @@ public class CenterdataTForestFirehydrantServiceImpl extends BaseServiceImpl imp
         CenterdataTForestFirehydrant data = centerdataTForestFirehydrantMapper.selectCenterdataTForestFirehydrantById(id);
         data.setFirehydrantTypeLabel(DictUtils.getDictDataByValue("firehydrant",data.getFirehydrantType()));
         data.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        data.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
         return data;
     }
 
@@ -72,6 +75,7 @@ public class CenterdataTForestFirehydrantServiceImpl extends BaseServiceImpl imp
         centerdataTForestFirehydrant.setCreateBy(SecurityUtils.getUserId().toString());
         centerdataTForestFirehydrant.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTForestFirehydrant.setCreateTime(DateUtils.getNowDate());
+        DataAttachUtil.dataAttachUpload(centerdataTForestFirehydrant.getId(),centerdataTForestFirehydrant.getAttachPaths(), DocumentNameConstants.FOREST_FIREHYDRANT1, centerdataTForestFirehydrant.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTForestFirehydrant.getDeviceList())) {
             centerdataTForestFirehydrant.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
@@ -97,6 +101,7 @@ public class CenterdataTForestFirehydrantServiceImpl extends BaseServiceImpl imp
         centerdataTForestFirehydrant.setUpdateTime(DateUtils.getNowDate());
         centerdataTForestFirehydrant.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTForestFirehydrant.getId());
+        DataAttachUtil.dataAttachUpload(centerdataTForestFirehydrant.getId(),centerdataTForestFirehydrant.getAttachPaths(), DocumentNameConstants.FOREST_FIREHYDRANT1, centerdataTForestFirehydrant.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTForestFirehydrant.getDeviceList())) {
             centerdataTForestFirehydrant.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();

+ 8 - 3
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWatercraneServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.basicdata.service.impl;
 
+import com.ruoyi.common.core.constant.DocumentNameConstants;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
@@ -12,6 +13,7 @@ import com.sooka.sponest.data.basicdata.service.ICenterdataTForestWatercraneServ
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
 import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -53,9 +55,10 @@ public class CenterdataTForestWatercraneServiceImpl extends BaseServiceImpl impl
      */
     @Override
     public CenterdataTForestWatercrane selectCenterdataTForestWatercraneById(String id) {
-        CenterdataTForestWatercrane centerdataTForestWatercrane = centerdataTForestWatercraneMapper.selectCenterdataTForestWatercraneById(id);
-        centerdataTForestWatercrane.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
-        return centerdataTForestWatercrane;
+        CenterdataTForestWatercrane data = centerdataTForestWatercraneMapper.selectCenterdataTForestWatercraneById(id);
+        data.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        data.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return data;
     }
 
     /**
@@ -70,6 +73,7 @@ public class CenterdataTForestWatercraneServiceImpl extends BaseServiceImpl impl
         centerdataTForestWatercrane.setCreateBy(SecurityUtils.getUserId().toString());
         centerdataTForestWatercrane.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTForestWatercrane.setCreateTime(DateUtils.getNowDate());
+        DataAttachUtil.dataAttachUpload(centerdataTForestWatercrane.getId(),centerdataTForestWatercrane.getAttachPaths(), DocumentNameConstants.FOREST_WATERCRANE, centerdataTForestWatercrane.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTForestWatercrane.getDeviceList())) {
             centerdataTForestWatercrane.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
@@ -95,6 +99,7 @@ public class CenterdataTForestWatercraneServiceImpl extends BaseServiceImpl impl
         centerdataTForestWatercrane.setUpdateTime(DateUtils.getNowDate());
         centerdataTForestWatercrane.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTForestWatercrane.getId());
+        DataAttachUtil.dataAttachUpload(centerdataTForestWatercrane.getId(),centerdataTForestWatercrane.getAttachPaths(), DocumentNameConstants.FOREST_WATERCRANE, centerdataTForestWatercrane.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTForestWatercrane.getDeviceList())) {
             centerdataTForestWatercrane.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();

+ 8 - 3
src/main/java/com/sooka/sponest/data/basicdata/service/impl/CenterdataTForestWaterintakeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.basicdata.service.impl;
 
+import com.ruoyi.common.core.constant.DocumentNameConstants;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
@@ -12,6 +13,7 @@ import com.sooka.sponest.data.basicdata.service.ICenterdataTForestWaterintakeSer
 import com.sooka.sponest.data.digitalforest.domain.bo.VisuForestCloudEventTypeBO;
 import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
 import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -53,9 +55,10 @@ public class CenterdataTForestWaterintakeServiceImpl extends BaseServiceImpl imp
      */
     @Override
     public CenterdataTForestWaterintake selectCenterdataTForestWaterintakeById(String id) {
-        CenterdataTForestWaterintake centerdataTForestWaterintake = centerdataTForestWaterintakeMapper.selectCenterdataTForestWaterintakeById(id);
-        centerdataTForestWaterintake.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
-        return centerdataTForestWaterintake;
+        CenterdataTForestWaterintake data = centerdataTForestWaterintakeMapper.selectCenterdataTForestWaterintakeById(id);
+        data.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        data.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return data;
     }
 
     /**
@@ -70,6 +73,7 @@ public class CenterdataTForestWaterintakeServiceImpl extends BaseServiceImpl imp
         centerdataTForestWaterintake.setCreateBy(SecurityUtils.getUserId().toString());
         centerdataTForestWaterintake.setCreateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTForestWaterintake.setCreateTime(DateUtils.getNowDate());
+        DataAttachUtil.dataAttachUpload(centerdataTForestWaterintake.getId(),centerdataTForestWaterintake.getAttachPaths(), DocumentNameConstants.FOREST_WATERINTAKE, centerdataTForestWaterintake.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTForestWaterintake.getDeviceList())) {
             centerdataTForestWaterintake.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
@@ -95,6 +99,7 @@ public class CenterdataTForestWaterintakeServiceImpl extends BaseServiceImpl imp
         centerdataTForestWaterintake.setUpdateTime(DateUtils.getNowDate());
         centerdataTForestWaterintake.setUpdateName( SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTForestWaterintake.getId());
+        DataAttachUtil.dataAttachUpload(centerdataTForestWaterintake.getId(),centerdataTForestWaterintake.getAttachPaths(), DocumentNameConstants.FOREST_WATERINTAKE, centerdataTForestWaterintake.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTForestWaterintake.getDeviceList())) {
             centerdataTForestWaterintake.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();

+ 3 - 0
src/main/java/com/sooka/sponest/data/commandcenter/domian/CommandCenterBO.java

@@ -23,4 +23,7 @@ public class CommandCenterBO extends BaseBusinessEntity {
     private Integer pageNum;
     private Integer pageSize;
 
+    //判断显示绑定摄像头字段
+    private String state;
+
 }

+ 6 - 0
src/main/java/com/sooka/sponest/data/commandcenter/domian/ProjectBody.java

@@ -62,6 +62,9 @@ public class ProjectBody {
     //所属开发区
     private String park;
 
+    //所属开发区名称
+    private String parkName;
+
     //开发区中心点经度
     private String parkLongitude;
 
@@ -103,6 +106,9 @@ public class ProjectBody {
     //项目秘书手机
     private String secretaryPhone;
 
+    private String deptId;
+    private String deptName;
+
     /**
      * 数据列表
      */

+ 9 - 0
src/main/java/com/sooka/sponest/data/commandcenter/service/impl/ICommandCenterServiceImpl.java

@@ -186,6 +186,15 @@ public class ICommandCenterServiceImpl extends BaseServiceImpl implements IComma
                 project.getScheduleList().add(schedule);
             }
         }));
+        if ("true".equals(commandCenterBO.getState())){
+            List<ProjectBody> projectBodyList = new ArrayList<>();
+            projectBodies.forEach(project -> {
+                if (project.getCameraList().size()!=0) {
+                    projectBodyList.add(project);
+                }
+            });
+            return projectBodyList;
+        }
         return projectBodies;
     }
 

+ 14 - 3
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmComplexModificationController.java

@@ -12,6 +12,7 @@ import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.sooka.sponest.data.base.domain.ESVo;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmComplexModification;
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmComplexModificationService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import com.sooka.sponest.data.utils.DataProducerUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -68,7 +69,9 @@ public class CenterdataTFarmComplexModificationController extends BaseController
     @RequiresPermissions("modification:modification:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id) {
-        return AjaxResult.success(centerdataTFarmComplexModificationService.selectCenterdataTFarmComplexModificationById(id));
+        CenterdataTFarmComplexModification centerdataTFarmComplexModification = centerdataTFarmComplexModificationService.selectCenterdataTFarmComplexModificationById(id);
+        centerdataTFarmComplexModification.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return AjaxResult.success(centerdataTFarmComplexModification);
     }
 
     /**
@@ -79,8 +82,10 @@ public class CenterdataTFarmComplexModificationController extends BaseController
     @Log(title = "肉牛基层繁改站", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody CenterdataTFarmComplexModification centerdataTFarmComplexModification) {
+
         int result = centerdataTFarmComplexModificationService.insertCenterdataTFarmComplexModification(centerdataTFarmComplexModification);
-        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_COMPLEX_MODIFICATION,BusinessType.INSERT, JSON.toJSONString(centerdataTFarmComplexModification)));
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_COMPLEX_MODIFICATION,BusinessType.INSERT,
+                JSON.toJSONString(centerdataTFarmComplexModification)));
         return toAjax(result);
     }
 
@@ -93,7 +98,13 @@ public class CenterdataTFarmComplexModificationController extends BaseController
     @PutMapping
     public AjaxResult edit(@RequestBody CenterdataTFarmComplexModification centerdataTFarmComplexModification) {
         int result = centerdataTFarmComplexModificationService.updateCenterdataTFarmComplexModification(centerdataTFarmComplexModification);
-        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_COMPLEX_MODIFICATION,BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmComplexModification)));
+        DataAttachUtil.dataAttachUpload(centerdataTFarmComplexModification.getId(),
+                centerdataTFarmComplexModification.getAttachPaths(),
+                DocumentNameConstants.FARM_EXCREMENT_DISPOSE,
+                centerdataTFarmComplexModification.getBusSource());
+        DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_COMPLEX_MODIFICATION,
+                BusinessType.UPDATE,
+                JSON.toJSONString(centerdataTFarmComplexModification)));
         return toAjax(result);
     }
 

+ 18 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmEnterpriseController.java

@@ -11,6 +11,7 @@ import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.sooka.sponest.data.base.domain.ESVo;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmEnterprise;
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmEnterpriseService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import com.sooka.sponest.data.utils.DataProducerUtil;
 import com.sooka.sponest.data.utils.ExcelUtil;
 import io.swagger.annotations.Api;
@@ -69,7 +70,9 @@ public class CenterdataTFarmEnterpriseController extends BaseController {
     @RequiresPermissions("digitalagriculture:enterprise:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id) {
-        return AjaxResult.success(centerdataTFarmEnterpriseService.selectCenterdataTFarmEnterpriseById(id));
+        CenterdataTFarmEnterprise centerdataTFarmEnterprise = centerdataTFarmEnterpriseService.selectCenterdataTFarmEnterpriseById(id);
+        centerdataTFarmEnterprise.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return AjaxResult.success(centerdataTFarmEnterprise);
     }
 
     /**
@@ -81,6 +84,13 @@ public class CenterdataTFarmEnterpriseController extends BaseController {
     @PostMapping
     public AjaxResult add(@Validated @RequestBody CenterdataTFarmEnterprise centerdataTFarmEnterprise) {
         int result = centerdataTFarmEnterpriseService.insertCenterdataTFarmEnterprise(centerdataTFarmEnterprise);
+        if ("1".equals(centerdataTFarmEnterprise.getType())) {
+            DataAttachUtil.dataAttachUpload(centerdataTFarmEnterprise.getId(), centerdataTFarmEnterprise.getAttachPaths(), DocumentNameConstants.FARM_ENTERPRISE1, centerdataTFarmEnterprise.getBusSource());
+        }else if ("2".equals(centerdataTFarmEnterprise.getType())){
+            DataAttachUtil.dataAttachUpload(centerdataTFarmEnterprise.getId(), centerdataTFarmEnterprise.getAttachPaths(), DocumentNameConstants.FARM_ENTERPRISE2, centerdataTFarmEnterprise.getBusSource());
+        }else {
+            DataAttachUtil.dataAttachUpload(centerdataTFarmEnterprise.getId(), centerdataTFarmEnterprise.getAttachPaths(), DocumentNameConstants.FARM_ENTERPRISE3, centerdataTFarmEnterprise.getBusSource());
+        }
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_ENTERPRISE1, BusinessType.INSERT, JSON.toJSONString(centerdataTFarmEnterprise)));
         return toAjax(result);
     }
@@ -93,6 +103,13 @@ public class CenterdataTFarmEnterpriseController extends BaseController {
     @Log(title = "生鲜乳收购站、屠宰企业、饲料企业", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody CenterdataTFarmEnterprise centerdataTFarmEnterprise) {
+        if ("1".equals(centerdataTFarmEnterprise.getType())) {
+            DataAttachUtil.dataAttachUpload(centerdataTFarmEnterprise.getId(), centerdataTFarmEnterprise.getAttachPaths(), DocumentNameConstants.FARM_ENTERPRISE1, centerdataTFarmEnterprise.getBusSource());
+        }else if ("2".equals(centerdataTFarmEnterprise.getType())){
+            DataAttachUtil.dataAttachUpload(centerdataTFarmEnterprise.getId(), centerdataTFarmEnterprise.getAttachPaths(), DocumentNameConstants.FARM_ENTERPRISE2, centerdataTFarmEnterprise.getBusSource());
+        }else {
+            DataAttachUtil.dataAttachUpload(centerdataTFarmEnterprise.getId(), centerdataTFarmEnterprise.getAttachPaths(), DocumentNameConstants.FARM_ENTERPRISE3, centerdataTFarmEnterprise.getBusSource());
+        }
         int result = centerdataTFarmEnterpriseService.updateCenterdataTFarmEnterprise(centerdataTFarmEnterprise);
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_ENTERPRISE1, BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmEnterprise)));
         return toAjax(result);

+ 6 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmExcrementDisposeController.java

@@ -12,6 +12,7 @@ import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.sooka.sponest.data.base.domain.ESVo;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmExcrementDispose;
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmExcrementDisposeService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import com.sooka.sponest.data.utils.DataProducerUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -68,7 +69,9 @@ public class CenterdataTFarmExcrementDisposeController extends BaseController {
     @RequiresPermissions("excrementdispose:excrementdispose:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id) {
-        return AjaxResult.success(centerdataTFarmExcrementDisposeService.selectCenterdataTFarmExcrementDisposeById(id));
+        CenterdataTFarmExcrementDispose centerdataTFarmExcrementDispose = centerdataTFarmExcrementDisposeService.selectCenterdataTFarmExcrementDisposeById(id);
+        centerdataTFarmExcrementDispose.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return AjaxResult.success(centerdataTFarmExcrementDispose);
     }
 
     /**
@@ -80,6 +83,7 @@ public class CenterdataTFarmExcrementDisposeController extends BaseController {
     @PostMapping
     public AjaxResult add(@RequestBody CenterdataTFarmExcrementDispose centerdataTFarmExcrementDispose) {
         int result = centerdataTFarmExcrementDisposeService.insertCenterdataTFarmExcrementDispose(centerdataTFarmExcrementDispose);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmExcrementDispose.getId(), centerdataTFarmExcrementDispose.getAttachPaths(), DocumentNameConstants.FARM_EXCREMENT_DISPOSE, centerdataTFarmExcrementDispose.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_EXCREMENT_DISPOSE,BusinessType.INSERT, JSON.toJSONString(centerdataTFarmExcrementDispose)));
         return toAjax(result);
     }
@@ -93,6 +97,7 @@ public class CenterdataTFarmExcrementDisposeController extends BaseController {
     @PutMapping
     public AjaxResult edit(@RequestBody CenterdataTFarmExcrementDispose centerdataTFarmExcrementDispose) {
         int result = centerdataTFarmExcrementDisposeService.updateCenterdataTFarmExcrementDispose(centerdataTFarmExcrementDispose);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmExcrementDispose.getId(), centerdataTFarmExcrementDispose.getAttachPaths(), DocumentNameConstants.FARM_EXCREMENT_DISPOSE, centerdataTFarmExcrementDispose.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_EXCREMENT_DISPOSE,BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmExcrementDispose)));
         return toAjax(result);
     }

+ 6 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmFilingsLivestockController.java

@@ -12,6 +12,7 @@ import com.ruoyi.common.security.utils.DictUtils;
 import com.sooka.sponest.data.base.domain.ESVo;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmFilingsLivestock;
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmFilingsLivestockService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import com.sooka.sponest.data.utils.DataProducerUtil;
 import com.sooka.sponest.data.utils.ExcelUtil;
 import io.swagger.annotations.Api;
@@ -70,7 +71,9 @@ public class CenterdataTFarmFilingsLivestockController extends BaseController {
     @RequiresPermissions("digitalagriculture:filingsLivestock:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id) {
-        return AjaxResult.success(centerdataTFarmFilingsLivestockService.selectCenterdataTFarmFilingsLivestockById(id));
+        CenterdataTFarmFilingsLivestock centerdataTFarmFilingsLivestock = centerdataTFarmFilingsLivestockService.selectCenterdataTFarmFilingsLivestockById(id);
+        centerdataTFarmFilingsLivestock.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return AjaxResult.success(centerdataTFarmFilingsLivestock);
     }
 
     /**
@@ -82,6 +85,7 @@ public class CenterdataTFarmFilingsLivestockController extends BaseController {
     @PostMapping
     public AjaxResult add(@Validated @RequestBody CenterdataTFarmFilingsLivestock centerdataTFarmFilingsLivestock) {
         int result = centerdataTFarmFilingsLivestockService.insertCenterdataTFarmFilingsLivestock(centerdataTFarmFilingsLivestock);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmFilingsLivestock.getId(), centerdataTFarmFilingsLivestock.getAttachPaths(), DocumentNameConstants.FARM_FILINGS_LIVESTOCK, centerdataTFarmFilingsLivestock.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_FILINGS_LIVESTOCK,BusinessType.INSERT, JSON.toJSONString(centerdataTFarmFilingsLivestock)));
         return toAjax(result);
     }
@@ -95,6 +99,7 @@ public class CenterdataTFarmFilingsLivestockController extends BaseController {
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody CenterdataTFarmFilingsLivestock centerdataTFarmFilingsLivestock) {
         int result = centerdataTFarmFilingsLivestockService.updateCenterdataTFarmFilingsLivestock(centerdataTFarmFilingsLivestock);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmFilingsLivestock.getId(), centerdataTFarmFilingsLivestock.getAttachPaths(), DocumentNameConstants.FARM_FILINGS_LIVESTOCK, centerdataTFarmFilingsLivestock.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_FILINGS_LIVESTOCK,BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmFilingsLivestock)));
         return toAjax(result);
     }

+ 6 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmGreenhouseFilmController.java

@@ -14,6 +14,7 @@ import com.sooka.sponest.data.base.domain.ESVo;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmGreenhouseFilm;
 import com.sooka.sponest.data.digitalagriculture.domain.vo.CenterdataTFarmGreenhouseFilmVo;
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmGreenhouseFilmService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import com.sooka.sponest.data.utils.DataProducerUtil;
 import com.sooka.sponest.data.utils.ExcelUtil;
 import io.swagger.annotations.Api;
@@ -95,7 +96,9 @@ public class CenterdataTFarmGreenhouseFilmController extends BaseController {
     @RequiresPermissions("greenhousefilm:greenhousefilm:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id) {
-        return AjaxResult.success(centerdataTFarmGreenhouseFilmService.selectCenterdataTFarmGreenhouseFilmById(id));
+        CenterdataTFarmGreenhouseFilmVo centerdataTFarmGreenhouseFilmVo = centerdataTFarmGreenhouseFilmService.selectCenterdataTFarmGreenhouseFilmById(id);
+       centerdataTFarmGreenhouseFilmVo.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return AjaxResult.success(centerdataTFarmGreenhouseFilmVo);
     }
 
     /**
@@ -107,6 +110,7 @@ public class CenterdataTFarmGreenhouseFilmController extends BaseController {
     @PostMapping
     public AjaxResult add(@RequestBody CenterdataTFarmGreenhouseFilmVo centerdataTFarmGreenhouseFilm) {
         int result = centerdataTFarmGreenhouseFilmService.insertCenterdataTFarmGreenhouseFilm(centerdataTFarmGreenhouseFilm);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmGreenhouseFilm.getId(), centerdataTFarmGreenhouseFilm.getAttachPaths(), DocumentNameConstants.FARM_GREENHOUSE_FILM, centerdataTFarmGreenhouseFilm.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_GREENHOUSE_FILM,BusinessType.INSERT, JSON.toJSONString(centerdataTFarmGreenhouseFilm)));
         return toAjax(result);
     }
@@ -120,6 +124,7 @@ public class CenterdataTFarmGreenhouseFilmController extends BaseController {
     @PutMapping
     public AjaxResult edit(@RequestBody CenterdataTFarmGreenhouseFilmVo centerdataTFarmGreenhouseFilm) {
         int result = centerdataTFarmGreenhouseFilmService.updateCenterdataTFarmGreenhouseFilm(centerdataTFarmGreenhouseFilm);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmGreenhouseFilm.getId(), centerdataTFarmGreenhouseFilm.getAttachPaths(), DocumentNameConstants.FARM_GREENHOUSE_FILM, centerdataTFarmGreenhouseFilm.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_GREENHOUSE_FILM,BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmGreenhouseFilm)));
         return toAjax(result);
     }

+ 6 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/controller/CenterdataTFarmLivestockController.java

@@ -12,6 +12,7 @@ import com.ruoyi.common.security.utils.DictUtils;
 import com.sooka.sponest.data.base.domain.ESVo;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmLivestock;
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmLivestockService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import com.sooka.sponest.data.utils.DataProducerUtil;
 import com.sooka.sponest.data.utils.ExcelUtil;
 import io.swagger.annotations.Api;
@@ -70,7 +71,9 @@ public class CenterdataTFarmLivestockController extends BaseController {
     @RequiresPermissions("digitalagriculture:livestock:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id) {
-        return AjaxResult.success(centerdataTFarmLivestockService.selectCenterdataTFarmLivestockById(id));
+        CenterdataTFarmLivestock centerdataTFarmLivestock = centerdataTFarmLivestockService.selectCenterdataTFarmLivestockById(id);
+        centerdataTFarmLivestock.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
+        return AjaxResult.success(centerdataTFarmLivestock);
     }
 
     /**
@@ -82,6 +85,7 @@ public class CenterdataTFarmLivestockController extends BaseController {
     @PostMapping
     public AjaxResult add(@Validated @RequestBody CenterdataTFarmLivestock centerdataTFarmLivestock) {
         int result = centerdataTFarmLivestockService.insertCenterdataTFarmLivestock(centerdataTFarmLivestock);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmLivestock.getId(), centerdataTFarmLivestock.getAttachPaths(), DocumentNameConstants.FARM_LIVESTOCK, centerdataTFarmLivestock.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_LIVESTOCK,BusinessType.INSERT, JSON.toJSONString(centerdataTFarmLivestock)));
         return toAjax(result);
     }
@@ -95,6 +99,7 @@ public class CenterdataTFarmLivestockController extends BaseController {
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody CenterdataTFarmLivestock centerdataTFarmLivestock) {
         int result = centerdataTFarmLivestockService.updateCenterdataTFarmLivestock(centerdataTFarmLivestock);
+        DataAttachUtil.dataAttachUpload(centerdataTFarmLivestock.getId(), centerdataTFarmLivestock.getAttachPaths(), DocumentNameConstants.FARM_LIVESTOCK, centerdataTFarmLivestock.getBusSource());
         DataProducerUtil.getInstance().publish(new ESVo(DocumentNameConstants.FARM_LIVESTOCK,BusinessType.UPDATE, JSON.toJSONString(centerdataTFarmLivestock)));
         return toAjax(result);
     }

+ 16 - 4
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmAgriculturalCooperatives.java

@@ -29,11 +29,11 @@ public class CenterdataTFarmAgriculturalCooperatives extends BaseBusinessEntity
     private String id;
 
     /**
-     * 申请单位名称
+     * 名称
      */
-    @ApiModelProperty(value = "单位名称", required = true)
-    @Excel(name = "单位名称")
-    @NotBlank(message = "单位名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -192,4 +192,16 @@ public class CenterdataTFarmAgriculturalCooperatives extends BaseBusinessEntity
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
 
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
+
 }

+ 16 - 4
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmBotanyProtectInfo.java

@@ -29,11 +29,11 @@ public class CenterdataTFarmBotanyProtectInfo extends BaseBusinessEntity {
     private String id;
 
     /**
-     * 单位名称
+     * 名称
      */
-    @ApiModelProperty(value = "单位名称", required = true)
-    @Excel(name = "单位名称")
-    @NotBlank(message = "单位名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -161,4 +161,16 @@ public class CenterdataTFarmBotanyProtectInfo extends BaseBusinessEntity {
      */
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
+
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
 }

+ 4 - 4
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmBreedingFarm.java

@@ -30,11 +30,11 @@ public class CenterdataTFarmBreedingFarm extends BaseBusinessEntity {
     private String id;
 
     /**
-     * 户主名称
+     * 名称
      */
-    @ApiModelProperty(value = "户主名称", required = true)
-    @Excel(name = "户主名称")
-    @NotBlank(message = "户主名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**

+ 10 - 1
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmComplexModification.java

@@ -111,5 +111,14 @@ public class CenterdataTFarmComplexModification extends BaseBusinessEntity {
      */
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
-
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径",required = false)
+    private String attachPaths;
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源",required = false)
+    private String busSource;
 }

+ 11 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmEnterprise.java

@@ -166,4 +166,15 @@ public class CenterdataTFarmEnterprise extends BaseBusinessEntity {
 
     private List<String> fileUrlList;
     private List<String> fileNameList;
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径",required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源",required = false)
+    private String busSource;
 }

+ 10 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmExcrementDispose.java

@@ -112,4 +112,14 @@ public class CenterdataTFarmExcrementDispose extends BaseBusinessEntity {
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
 
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径",required = false)
+    private String attachPaths;
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源",required = false)
+    private String busSource;
 }

+ 14 - 5
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmFilingsLivestock.java

@@ -31,11 +31,11 @@ public class CenterdataTFarmFilingsLivestock extends BaseBusinessEntity {
     private String id;
 
     /**
-     * 养殖场名称
+     * 名称
      */
-    @ApiModelProperty(value = "养殖场名称", required = true)
-    @Excel(name = "养殖场名称")
-    @NotBlank(message = "养殖场名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -160,5 +160,14 @@ public class CenterdataTFarmFilingsLivestock extends BaseBusinessEntity {
      */
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
-
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径",required = false)
+    private String attachPaths;
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源",required = false)
+    private String busSource;
 }

+ 10 - 8
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmGreenhouseFilm.java

@@ -158,13 +158,6 @@ public class CenterdataTFarmGreenhouseFilm extends BaseBusinessEntity {
     private String phone;
 
     /**
-     * 图片(附件)
-     */
-    @ApiModelProperty(value = "图片地址", required = false)
-//    @Excel(name = "图片(附件)")
-    private String parkUrl;
-
-    /**
      * 备注
      */
 //    @Excel(name = "备注")
@@ -195,5 +188,14 @@ public class CenterdataTFarmGreenhouseFilm extends BaseBusinessEntity {
      */
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
-
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径",required = false)
+    private String attachPaths;
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源",required = false)
+    private String busSource;
 }

+ 14 - 4
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmLivestock.java

@@ -61,11 +61,11 @@ public class CenterdataTFarmLivestock extends BaseBusinessEntity {
     private String latitude;
 
     /**
-     * 养殖场名称
+     * 名称
      */
-    @ApiModelProperty(value = "养殖场名称", required = true)
-    @Excel(name = "养殖场名称")
-    @NotBlank(message = "养殖场名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -170,4 +170,14 @@ public class CenterdataTFarmLivestock extends BaseBusinessEntity {
      */
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径",required = false)
+    private String attachPaths;
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源",required = false)
+    private String busSource;
 }

+ 3 - 3
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/CenterdataTFarmPesticideInformation.java

@@ -8,6 +8,7 @@ import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.util.List;
 
 /**
  * 农药信息对象 centerdata_t_farm_pesticide_information
@@ -58,14 +59,13 @@ public class CenterdataTFarmPesticideInformation extends BaseBusinessEntity {
      * 计划使用量(吨)
      */
     @ApiModelProperty(value = "计划使用量", required = false)
-    @Excel(name = "计划使用量")
+    @Excel(name = "计划使用量" , suffix = "吨")
     private String planUsage;
 
     /**
      * 实际使用量(吨)
      */
     @ApiModelProperty(value = "实际使用量", required = false)
-    @Excel(name = "实际使用量")
+    @Excel(name = "实际使用量" , suffix = "吨")
     private String realityUsage;
-
 }

+ 14 - 4
src/main/java/com/sooka/sponest/data/digitalagriculture/domain/vo/CenterdataTFarmGreenhouseFilmVo.java

@@ -30,11 +30,11 @@ public class CenterdataTFarmGreenhouseFilmVo extends BaseBusinessEntity {
     private String id;
 
     /**
-     * 棚膜园区名称
+     * 名称
      */
-    @ApiModelProperty(value = "棚膜园区名称", required = true)
-    @Excel(name = "棚膜园区名称")
-    @NotBlank(message = "棚膜园区名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -203,5 +203,15 @@ public class CenterdataTFarmGreenhouseFilmVo extends BaseBusinessEntity {
      */
     @ApiModelProperty(value = "设备中间表主键", required = false)
     private List<String> deviceList;
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径",required = false)
+    private String attachPaths;
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源",required = false)
+    private String busSource;
 
 }

+ 5 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmAgriculturalCooperativesServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.digitalagriculture.service.impl;
 
+import com.ruoyi.common.core.constant.DocumentNameConstants;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -13,6 +14,7 @@ import com.sooka.sponest.data.digitalagriculture.mapper.CenterdataTFarmAgricultu
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmAgriculturalCooperativesService;
 import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
 import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -56,6 +58,7 @@ public class CenterdataTFarmAgriculturalCooperativesServiceImpl extends BaseServ
     public CenterdataTFarmAgriculturalCooperatives selectCenterdataTFarmAgriculturalCooperativesById(String id) {
         CenterdataTFarmAgriculturalCooperatives data = centerdataTFarmAgriculturalCooperativesMapper.selectCenterdataTFarmAgriculturalCooperativesById(id);
         data.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        data.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
         return data;
     }
 
@@ -71,6 +74,7 @@ public class CenterdataTFarmAgriculturalCooperativesServiceImpl extends BaseServ
         centerdataTFarmAgriculturalCooperatives.setCreateBy(SecurityUtils.getUserId().toString());
         centerdataTFarmAgriculturalCooperatives.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTFarmAgriculturalCooperatives.setCreateTime(DateUtils.getNowDate());
+        DataAttachUtil.dataAttachUpload(centerdataTFarmAgriculturalCooperatives.getId(),centerdataTFarmAgriculturalCooperatives.getAttachPaths(), DocumentNameConstants.FARM_AGRICULTURAL_COOPERATIVES, centerdataTFarmAgriculturalCooperatives.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTFarmAgriculturalCooperatives.getDeviceList())) {
             centerdataTFarmAgriculturalCooperatives.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
@@ -96,6 +100,7 @@ public class CenterdataTFarmAgriculturalCooperativesServiceImpl extends BaseServ
         centerdataTFarmAgriculturalCooperatives.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTFarmAgriculturalCooperatives.setUpdateTime(DateUtils.getNowDate());
         centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTFarmAgriculturalCooperatives.getId());
+        DataAttachUtil.dataAttachUpload(centerdataTFarmAgriculturalCooperatives.getId(),centerdataTFarmAgriculturalCooperatives.getAttachPaths(), DocumentNameConstants.FARM_AGRICULTURAL_COOPERATIVES, centerdataTFarmAgriculturalCooperatives.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTFarmAgriculturalCooperatives.getDeviceList())) {
             centerdataTFarmAgriculturalCooperatives.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();

+ 5 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmBotanyProtectInfoServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.digitalagriculture.service.impl;
 
+import com.ruoyi.common.core.constant.DocumentNameConstants;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -13,6 +14,7 @@ import com.sooka.sponest.data.digitalagriculture.mapper.CenterdataTFarmBotanyPro
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmBotanyProtectInfoService;
 import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
 import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -56,6 +58,7 @@ public class CenterdataTFarmBotanyProtectInfoServiceImpl extends BaseServiceImpl
     public CenterdataTFarmBotanyProtectInfo selectCenterdataTFarmBotanyProtectInfoById(String id) {
         CenterdataTFarmBotanyProtectInfo data = centerdataTFarmBotanyProtectInfoMapper.selectCenterdataTFarmBotanyProtectInfoById(id);
         data.setDeviceList(centerdataTEquipmentCameraService.selectCenterdataTEquipmentCameraByBusinessId(id));
+        data.setAttachPaths(DataAttachUtil.getDataAttachUpload(id));
         return data;
     }
 
@@ -71,6 +74,7 @@ public class CenterdataTFarmBotanyProtectInfoServiceImpl extends BaseServiceImpl
         centerdataTFarmBotanyProtectInfo.setCreateBy(SecurityUtils.getUserId().toString());
         centerdataTFarmBotanyProtectInfo.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTFarmBotanyProtectInfo.setCreateTime(DateUtils.getNowDate());
+        DataAttachUtil.dataAttachUpload(centerdataTFarmBotanyProtectInfo.getId(),centerdataTFarmBotanyProtectInfo.getAttachPaths(), DocumentNameConstants.FARM_BOTANY_PROTECT_INFO, centerdataTFarmBotanyProtectInfo.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTFarmBotanyProtectInfo.getDeviceList())) {
             centerdataTFarmBotanyProtectInfo.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();
@@ -96,6 +100,7 @@ public class CenterdataTFarmBotanyProtectInfoServiceImpl extends BaseServiceImpl
         centerdataTFarmBotanyProtectInfo.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTFarmBotanyProtectInfo.setUpdateTime(DateUtils.getNowDate());
         centerdataTEquipmentCameraService.deleteCenterdataTEquipmentCameraByBusinessId(centerdataTFarmBotanyProtectInfo.getId());
+        DataAttachUtil.dataAttachUpload(centerdataTFarmBotanyProtectInfo.getId(),centerdataTFarmBotanyProtectInfo.getAttachPaths(), DocumentNameConstants.FARM_BOTANY_PROTECT_INFO, centerdataTFarmBotanyProtectInfo.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTFarmBotanyProtectInfo.getDeviceList())) {
             centerdataTFarmBotanyProtectInfo.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();

+ 6 - 0
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmComplexModificationServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.data.digitalagriculture.service.impl;
 
+import com.ruoyi.common.core.constant.DocumentNameConstants;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
@@ -12,6 +13,7 @@ import com.sooka.sponest.data.digitalagriculture.mapper.CenterdataTFarmComplexMo
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmComplexModificationService;
 import com.sooka.sponest.data.system.equipment.domain.CenterdataTEquipmentCamera;
 import com.sooka.sponest.data.system.equipment.service.ICenterdataTEquipmentCameraService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -71,6 +73,10 @@ public class CenterdataTFarmComplexModificationServiceImpl extends BaseServiceIm
         centerdataTFarmComplexModification.setCreateBy(SecurityUtils.getUserId().toString());
         centerdataTFarmComplexModification.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
         centerdataTFarmComplexModification.setCreateTime(DateUtils.getNowDate());
+        DataAttachUtil.dataAttachUpload(centerdataTFarmComplexModification.getId(),
+                centerdataTFarmComplexModification.getAttachPaths(),
+                DocumentNameConstants.FARM_COMPLEX_MODIFICATION,
+                centerdataTFarmComplexModification.getBusSource());
         if (StringUtils.isNotEmpty(centerdataTFarmComplexModification.getDeviceList())) {
             centerdataTFarmComplexModification.getDeviceList().forEach(item -> {
                 CenterdataTEquipmentCamera camera = new CenterdataTEquipmentCamera();

+ 4 - 2
src/main/java/com/sooka/sponest/data/digitalagriculture/service/impl/CenterdataTFarmPesticideInformationServiceImpl.java

@@ -8,6 +8,8 @@ import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.digitalagriculture.domain.CenterdataTFarmPesticideInformation;
 import com.sooka.sponest.data.digitalagriculture.mapper.CenterdataTFarmPesticideInformationMapper;
 import com.sooka.sponest.data.digitalagriculture.service.ICenterdataTFarmPesticideInformationService;
+import com.sooka.sponest.data.system.attach.service.ICenterdataTAttachService;
+import com.sooka.sponest.data.utils.DataAttachUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -24,7 +26,6 @@ public class CenterdataTFarmPesticideInformationServiceImpl extends BaseServiceI
 
     @Autowired
     private CenterdataTFarmPesticideInformationMapper centerdataTFarmPesticideInformationMapper;
-
     /**
      * 查询农药信息列表
      *
@@ -46,7 +47,8 @@ public class CenterdataTFarmPesticideInformationServiceImpl extends BaseServiceI
      */
     @Override
     public CenterdataTFarmPesticideInformation selectCenterdataTFarmPesticideInformationById(String id) {
-        return centerdataTFarmPesticideInformationMapper.selectCenterdataTFarmPesticideInformationById(id);
+        CenterdataTFarmPesticideInformation centerdataTFarmPesticideInformation = centerdataTFarmPesticideInformationMapper.selectCenterdataTFarmPesticideInformationById(id);
+        return centerdataTFarmPesticideInformation;
     }
 
     /**

+ 5 - 2
src/main/java/com/sooka/sponest/data/digitalemergency/controller/CenterdataTEmergencyMaterialController.java

@@ -105,8 +105,11 @@ public class CenterdataTEmergencyMaterialController extends BaseController {
         if (!centerdataTEmergencyMaterialService.uniqueCheck("centerdata_t_emergency_material", keys, values)) {
             return AjaxResult.error("此部门下已存在该物资名称");
         }
-        int result = centerdataTEmergencyMaterialService.updateCenterdataTEmergencyMaterial(centerdataTEmergencyMaterial);
-        return toAjax(result);
+        int num = centerdataTEmergencyMaterialService.updateCenterdataTEmergencyMaterial(centerdataTEmergencyMaterial);
+        if (num == -1) {
+            return AjaxResult.error("生产日期不能大于当前日期");
+        }
+        return toAjax(num);
     }
 
     /**

+ 18 - 4
src/main/java/com/sooka/sponest/data/digitalemergency/domain/CenterdataTEmergencyEnterprises.java

@@ -47,11 +47,11 @@ public class CenterdataTEmergencyEnterprises extends BaseBusinessEntity {
     private String deptName;
 
     /**
-     * 企业名称
+     * 名称
      */
-    @ApiModelProperty(value = "企业名称", required = false)
-    @Excel(name = "企业名称")
-    @NotBlank(message = "企业名称不能为空")
+    @ApiModelProperty(value = "名称", required = false)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -113,6 +113,20 @@ public class CenterdataTEmergencyEnterprises extends BaseBusinessEntity {
     @ApiModelProperty(value = "技术状况(字典项目)", required = false)
     private String categoryLabel;
 
+
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
+
+
     @ApiModelProperty(value = "deviceList", required = true)
     @JsonProperty("deviceList")
     private List<String> deviceList;

+ 16 - 4
src/main/java/com/sooka/sponest/data/digitalemergency/domain/CenterdataTEmergencyTeam.java

@@ -44,11 +44,11 @@ public class CenterdataTEmergencyTeam extends BaseBusinessEntity {
     private String dataStatus;
 
     /**
-     * 队伍名称
+     * 名称
      */
-    @ApiModelProperty(value = "队伍名称", required = true)
-    @Excel(name = "队伍名称")
-    @NotBlank(message = "队伍名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -150,6 +150,18 @@ public class CenterdataTEmergencyTeam extends BaseBusinessEntity {
     @NotBlank(message = "纬度不能为空")
     private String latitude;
 
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
+
     @ApiModelProperty(value = "getCameraList", required = true)
     public List<String> getCameraList() {
         return deviceList;

+ 16 - 4
src/main/java/com/sooka/sponest/data/digitalemergency/domain/CenterdataTEmergencyWarehouse.java

@@ -44,11 +44,11 @@ public class CenterdataTEmergencyWarehouse extends BaseBusinessEntity {
     private String dataStatus;
 
     /**
-     * 仓库名称
+     * 名称
      */
-    @ApiModelProperty(value = "仓库名称", required = true)
-    @Excel(name = "仓库名称")
-    @NotBlank(message = "仓库名称不能为空")
+    @ApiModelProperty(value = "名称", required = true)
+    @Excel(name = "名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**
@@ -82,6 +82,18 @@ public class CenterdataTEmergencyWarehouse extends BaseBusinessEntity {
     @NotBlank(message = "所属部门名称不能为空")
     private String deptName;
 
+    /**
+     * 图片上传路径
+     */
+    @ApiModelProperty(value = "图片上传路径", required = false)
+    private String attachPaths;
+
+    /**
+     * 图片来源
+     */
+    @ApiModelProperty(value = "图片来源", required = false)
+    private String busSource;
+
 
     @ApiModelProperty(value = "setDeviceList", required = false)
     public List<String> getCameraList() {

+ 0 - 0
src/main/java/com/sooka/sponest/data/digitalemergency/service/impl/CenterdataTEmergencyEnterprisesServiceImpl.java


部分文件因为文件数量过多而无法显示