月球大数据地理空间分析展示平台-【前端】-月球2期前端
surprise
2023-11-29 36fbd1e5a40e319e6ac5f43d11c99ba4b66e93a3
src/views/layer/layerManage.vue
@@ -46,6 +46,8 @@
                      @click.native="clickdTemporary(2, data)">删除</el-dropdown-item>
                    <el-dropdown-item v-if="data.shpType == 'temporaryLayer'"
                      @click.native="clickdTemporary(3, data)">定位</el-dropdown-item>
                    <el-dropdown-item v-if="data.shpType == 'temporaryLayer'" @click.native="clickdTemporary(4, data)">下载
                      [ Shp ]</el-dropdown-item>
                  </el-dropdown-menu>
                </template>
              </el-dropdown>
@@ -72,6 +74,7 @@
  nextTick,
  watch,
} from "vue";
import $ from "jquery";
import layerSet from "./layerSet";
import attributeList from "./attributeList";
import layerDetail from "./layerDetail";
@@ -82,12 +85,14 @@
  mark_insert,
  mark_deletes,
  mark_update,
  comprehensive_downloadShp,
} from "@/api/api";
import server from "@/assets/js/Map/server";
import { ElMessage } from "element-plus";
import temporaryTool from "@/assets/js/Map/temporaryTools";
import json from "@/assets/js/colorValue";
import menuTool from "@/assets/js/Map/menuTool";
import { removeToken, getToken } from "@/utils/auth";
const store = useStore(); // 该方法用于返回store 实例
const stretchValue = ref("");
const emits = defineEmits(["setCloseLayer"]);
@@ -187,8 +192,56 @@
      return ElMessage(data.cnName + "图层没有勾选,无法进行定位");
    }
    temporaryTool.locationTemporaryLayer(data);
  } else if (res == 4) {
    var name = null;
    if (res.type == 'label') {
        name = data.text;
    } else {
      name = data.cnName;
    }
    var obj = {
      bak: null,
      fillColor: data.material,
      id: data.sid,
      name: name,
      opacity: data.materialAlpha,
      type: data.type,
      wkt: temporaryTool.getWKT(data),
    }
    downLoadShp(obj)
  }
};
const downLoadShp = (res) => {
  $.ajax({
    url: config.proxy + "/comprehensive/downloadShp?token=" + getToken(),
    type: "POST",
    data: JSON.stringify([res]),
    dataType: "json", // html、json、jsonp、script、text
    contentType: "application/json", // "application/x-www-form-urlencoded"
    success: (rs) => {
      if (rs && rs.code == 200) {
        var a = document.createElement("a"); // 创建一个a标签元素
        a.style.display = "none"; // 设置元素不可见
        a.href =
          config.proxy +
          "/comprehensive/downloadFile?token=" +
          getToken() +
          "&guid=" +
          rs.result;
        document.body.appendChild(a); // 加入
        a.click(); // 触发点击,下载
        document.body.removeChild(a); // 释放
      }
    },
    error: function (e) { },
  });
}
//选择图层
const handleCheckChange = (data, checked) => {
  layerAttributeIsshow.value = false;
@@ -483,8 +536,9 @@
        }
      }
    }
    treeData.value.unshift({
      cnName: "临时图层",
      cnName: "自定义图层",
      level: 1,
      pid: 0,
      isLayer: 0,