surprise
2024-01-10 8f85627f215bd0ee61db7a35ca9a83eaca1e892c
src/components/left/layerTree/messageInfo.vue
@@ -5,7 +5,8 @@
        <div>属性信息</div>
        <div class="modelmenu">
          <div v-show="showMenuGrid">
            <el-link style="color: white;font-size: 14x;">编辑</el-link>
            <el-link v-show="disabled" @click="disabled = false" style="color: white;font-size: 14x;">编辑</el-link>
            <el-link v-show="!disabled" @click="setObjSave" style="color: white;font-size: 14x;">保存</el-link>
          </div>
          <div class="modelClose" @click="$store.state.showMessageInfo = false"> X</div>
        </div>
@@ -21,7 +22,10 @@
        <div>{{ item.name }}</div>
        <div v-show="item.name == 'ID'">{{ item.value }}
        </div>
        <div v-show="item.name != 'ID'"><el-input style="width: 100%;" v-model="item.value" placeholder=""></el-input>
        <div v-show="item.name == 'type'">{{ item.value }}
        </div>
        <div v-show="item.name != 'ID' && item.name != 'type'"><el-input style="width: 100%;  text-align: center;"
            v-model="item.value" :disabled="disabled"></el-input>
        </div>
      </div>
    </div>
@@ -32,7 +36,7 @@
<script>
import model from '../../../assets/js/Layer/model';
import mapInfo from '../../../assets/js/Layer/mapInfo';
import {Grid_SelectById} from '@/api/api'
import { Grid_SelectById, Grid_UpdateById } from '../../../api/api'
export default {
  name: "modelEdit",
  components: {
@@ -43,6 +47,9 @@
    return {
      modelOption: null,
      showMenuGrid: false,
      disabled: true,
      gid: null,
      obj: null,
    };
  },
  mounted() {
@@ -52,41 +59,78 @@
  },
  methods: {
    setLayerStart() {
      this.obj = null;
      var data = mapInfo.mssageInfo;
      if (!data) {
        this.$store.state.showMessageInfo = false;
        return
      }
      var flag = false;
      var id=null;
      // for(var i in data){
      //   if(data[i].name == '类型' && data[i].value =='网格'){
      //     flag = true;
      //   }
      //   if(data[i].name =='ID'){
      //     id=data[i].value;
      //   }
      // }
      // if(flag){
      //   this.getInfoMessage(id)
      // }else{
      //   this.setInfoMesgData(data);
      // }
      for (var i in data) {
        if (data[i].name == "TYPE" && data[i].value == 'DrawGrid') {
          flag = true;
          break;
        }
      }
      if (flag) {
        for (var i in data) {
          if (data[i].name == "gid") {
            this.gid = data[i].value
            this.getInfoMessage(this.gid);
            break;
          }
        }
      } else {
      this.setInfoMesgData(data);
      }
    },
    setInfoMesgData(res) {
      this.modelOption = res
    },
    async setObjSave() {
      var properties = this.obj.features[0].properties;
      for (var key in properties) {
        for (var i in this.modelOption) {
          if (this.modelOption[i].name == key) {
            properties[key] = this.modelOption[i].value
          }
        }
      }
      const data = await Grid_UpdateById({
        id: this.gid,
        json: JSON.stringify(this.obj.features[0])
      });
      if (data.status == 200) {
        this.$message({
          message: "保存成功",
          type: "success",
        });
        this.disabled = true;
      }
    },
   async getInfoMessage(res){
      const data = await Grid_SelectById(res);
       if(data.status == 200){
        this.obj = data.data;
        var properties = this.obj.features[0].properties;
        console.log(data.data.features[0])
        var std = [];
        for (var key in properties) {
          std.push({
            name: key,
            value: properties[key]
          })
        }
        this.showMenuGrid = true
        this.modelOption = std;
       }
    }
  }
  },
};
</script>
@@ -131,6 +175,7 @@
      font-size: 14x;
      margin-left: 20px;
    }
  }
@@ -157,6 +202,7 @@
        // margin-bottom: 5%;
        line-height: 50px;
        border-right: 1px solid white;
        border-top: 1px solid white !important;
      }
      div:first-child {
@@ -167,8 +213,8 @@
    }
    .contentMessage:first-child {
      border-top: 1px solid white;
      ;
      border-top: 1px solid white !important;
    }
  }