管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-05-28 fb5bc4314a4da6fc83a6403f3a70c0af25b8d20e
src/components/mapsdk.vue
@@ -78,13 +78,22 @@
              label-width="50px"
            >
              <el-form-item label="经度:">
                <el-input v-model="coordFrom.lon"></el-input>
                <el-input
                  v-model="coordFrom.lon"
                  placeholder="请输入经度"
                ></el-input>
              </el-form-item>
              <el-form-item label="纬度:">
                <el-input v-model="coordFrom.lat"></el-input>
                <el-input
                  v-model="coordFrom.lat"
                  placeholder="请输入维度"
                ></el-input>
              </el-form-item>
              <el-form-item label="高度:">
                <el-input v-model="coordFrom.height"></el-input>
                <el-input
                  v-model="coordFrom.height"
                  placeholder="请输入高度"
                ></el-input>
              </el-form-item>
              <el-form-item>
                <el-button
@@ -161,6 +170,7 @@
                <el-input
                  style="width: 160px"
                  v-model="comprehensive.name"
                  placeholder="请输入地名...."
                ></el-input>
              </el-form-item>
              <el-form-item>
@@ -409,6 +419,20 @@
                </div>
              </td>
            </tr>
            <tr>
              <td>淤泥质土</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(75,74,78,1)">
                </div>
              </td>
            </tr>
            <tr>
              <td>其他</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(225,225,225,1)">
                </div>
              </td>
            </tr>
          </table>
        </el-card>
      </div>
@@ -493,6 +517,7 @@
      <div
        class="propertiesPop"
        style="right:22%"
        v-if="$store.state.propertiesFlag == '2'"
      >
        <el-card class="box-card">
@@ -656,7 +681,9 @@
  select_Comprehensive_ByPageAndCount,
  select_Comprehensive_SelectWktById,
  comprehensive_selectRoute,
  dataLib_selectFiles, dataQuery_selectFields, dataQuery_selectDomains, dataQuery_selectByPage
  dataLib_selectFiles, dataQuery_selectFields, dataQuery_selectDomains,
  dataQuery_selectByPage,
  comprehensive_selectPubById, comprehensive_selectModelByGuid
} from '../api/api'
import { getToken } from '@/utils/auth'
@@ -721,9 +748,9 @@
        val: 50,
      },
      coordFrom: {
        lon: 116.3911,
        lat: 39.9115,
        height: 100000,
        lon: "",
        lat: "",
        height: "",
      },
      listData: {
        name: null,
@@ -808,27 +835,83 @@
      window.pickedColor;
      window.modeCatchHandler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas);
      window.modeCatchHandler.setInputAction((event) => {
        window.pickedFeature && (window.pickedFeature.color = window.pickedColor);
        if (window.pickedColor) { window.pickedFeature && (window.pickedFeature.color = window.pickedColor); }
        // window.pickedFeature && (window.pickedFeature.color = window.pickedColor);
        window.pickedFeature = sgworld.Viewer.scene.pick(event.position);
        if (Cesium.defined(window.pickedFeature)) {
          if (window.pickedFeature.primitive instanceof Cesium.Cesium3DTileset) {
            if (window.pickedFeature && window.pickedFeature.getProperty) {
            if (window.pickedFeature) {
              window.pickedColor = window.pickedFeature.color
              window.pickedFeature.color = Cesium.Color.RED.withAlpha(0.3);
              // this.$store.state.catModel = true;
              that.$store.state.catModelInfo = {
                id: pickedFeature.getProperty("id"),
                name: pickedFeature.getProperty("name"),
                layerId: pickedFeature.primitive.layerId,
                layerName: pickedFeature.primitive.id
              };
              that.$refs && that.$refs.modelProperty && that.$refs.modelProperty.open();
              that.setModelInfoData(window.pickedFeature);
            }
          }
        }
      }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
    },
    async setModelInfoData(result) {
      var modelKey = 'id';
      var modelid;
      debugger
      if (result.tileset) {
        if (result.tileset.pubid && parseInt(result.tileset.pubid) > 0) {
          const data = await comprehensive_selectPubById({ id: result.tileset.pubid })
          if (data.code != 200) {
            return
          } else {
            modelKey = JSON.parse(data.result.json).modelid
          }
          if (!modelKey) {
            return this.$message('没有模型主键ID,无法查询数据');
          }
          modelid = pickedFeature.getProperty(modelKey);
        }
      } else {
        modelid = '3dml' + result.primitive.id;
      }
      var that = this
      if (!modelid) {
        modelid = "noAuto_" + pickedFeature.primitive.layerId;
      }
      var obj = {
        layerid: pickedFeature.primitive.layerId,
        modelid: modelid
      }
      const data1 = await comprehensive_selectModelByGuid(obj);
      if (data1.code != 200) {
        return;
      }
      var name = null;
      var bak = null;
      var type = null;
      if (data1.result) {
        name = data1.result.name;
        bak = data1.result.bak;
        type = data1.result.type;
      }
      that.$store.state.catModelInfo = {
        id: modelid,
        name: name,
        type: type,
        bak: bak,
        layerId: pickedFeature.primitive.layerId,
        layerName: pickedFeature.primitive.id
      };
      that.$refs && that.$refs.modelProperty && that.$refs.modelProperty.open();
    },
    drawTerrainLevel() {
      this.clearTerrainLevel()
      var deep = parseFloat(this.terrainFrom.height)
@@ -858,8 +941,13 @@
        licenseServer: window.sceneConfig.licenseServer,
      });
      window.Viewer = window.sgworld._Viewer;
      if (is_production) {
        Viewer.imageryLayers.removeAll();
      }
      //定位
      // sgworld.Navigate.jumpTo({
      //   //跳转视角
@@ -883,12 +971,31 @@
      //显示fps
      Viewer.scene.debugShowFramesPerSecond = false;
      //导航控件
      window.sgworld.navControl("nav", false);
      // window.sgworld.navControl("nav", false);
      //比例尺
      window.sgworld.navControl("scale", false);
      // window.sgworld.navControl("scale", false);
      //开启深度检测
      // sgworld.Analysis.depthTestAgainstTerrain(true)
      Viewer.scene.globe.depthTestAgainstTerrain = true;
      if (is_production) {
        var base_ulr = window.sceneConfig.baseUrl;
        if (base_ulr.indexOf('{host}') > -1) {
          base_ulr = base_ulr.replace("{host}", iisHost)
        }
        Viewer.imageryLayers.addImageryProvider(
          new Cesium.UrlTemplateImageryProvider({
            url: base_ulr,
            maximumLevel: 9
          })
        );
        window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider(
          new Cesium.UrlTemplateImageryProvider({
            url: base_ulr,
          })
        );
      }
      var option = {
        url: window.sceneConfig.SGUrl,
@@ -896,7 +1003,7 @@
        requestVertexNormals: true,
      };
      window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, "");
      window.terrainFlag = 'MPT'
      window.elevationTool = new SmartEarth.ElevationTool(window.sgworld);
      elevationTool.setContourColor("#F1D487");
@@ -921,7 +1028,8 @@
        window.terrainLayer = null;
        window.terrainLayer = new Cesium.CesiumTerrainProvider({
          url: LFData + '/3d/terrain/dem20230321'
          // url: LFData + '/3d/terrain/dem20230321'
          url: demLayer
        });
        Viewer.terrainProvider = window.terrainLayer
        Viewer.camera.flyTo({
@@ -1101,13 +1209,20 @@
    },
    //定位
    setCoordLocal() {
      var lon = parseFloat(this.coordFrom.lon);
      var lat = parseFloat(this.coordFrom.lat);
      var height = parseFloat(this.coordFrom.height);
      if (!this.coordFrom.lon) {
        return this.$message('请输入经度');
      }
      if (!this.coordFrom.lat) {
        return this.$message('请输入纬度');
      }
      var lon = parseFloat(this.coordFrom.lon)
      var lat = parseFloat(this.coordFrom.lat)
      var height = parseFloat(this.coordFrom.height) == NaN ? parseFloat(this.coordFrom.height) : 100;
      var position = {
        X: lon,
        Y: lat,
        Altitude: 2000,
        Altitude: height,
      };
      if (this.imagePoint != null) {
        sgworld.Creator.DeleteObject(this.imagePoint);
@@ -1449,7 +1564,7 @@
        return
      }
      if (res.result.length <= 0) {
        this.$message.error('暂无附件');
        this.$message('暂无附件');
        return
      }
@@ -1459,7 +1574,21 @@
    //是否显示查看按钮
    showAttachDetailBtn(row) {
      var name = row.name;
      if (name.indexOf('.pdf') != -1 || name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) {
      if (
        name.indexOf('.pdf') != -1
        || name.indexOf('.jpg') != -1
        || name.indexOf('.gif') != -1
        || name.indexOf('.png') != -1
        || name.indexOf('.jpeg') != -1
        || name.indexOf('.PDF') != -1
        || name.indexOf('.JPG') != -1
        || name.indexOf('.GIF') != -1
        || name.indexOf('.PNG') != -1
        || name.indexOf('.JPEG') != -1
        || name.indexOf('.BMP') != -1
        || name.indexOf('.bmp') != -1
      ) {
        return true;
      }
      return false;
@@ -1475,13 +1604,24 @@
    showAttachDetail(row) {
      this.refreshAttatchDetail();
      var name = row.name;
      if (name.indexOf('.pdf') != -1) {
      if (name.indexOf('.pdf') != -1 || name.indexOf('.PDF') != -1) {
        this.dialog.dialogVisible = true;
        this.dialog.isPdf = true;
        var url = BASE_URL + "/comprehensive/downloadForView?guid=" + row.guid + "&token=" + getToken();
        this.dialog.src = url
      }
      else if (name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) {
      else if (
        name.indexOf('.jpg') != -1
        || name.indexOf('.gif') != -1
        || name.indexOf('.png') != -1
        || name.indexOf('.jpeg') != -1
        || name.indexOf('.JPG') != -1
        || name.indexOf('.GIF') != -1
        || name.indexOf('.PNG') != -1
        || name.indexOf('.JPEG') != -1
        || name.indexOf('.BMP') != -1
        || name.indexOf('.bmp') != -1
      ) {
        this.dialog.dialogVisible = true;
        this.dialog.isJpg = true;
        var url = BASE_URL + "/comprehensive/downloadForView?guid=" + row.guid + "&token=" + getToken();