管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-03-14 d0405cc50cab4c389d3203428408ecf15b5a0409
src/views/Synthesis/LeftMenu.vue
@@ -90,10 +90,11 @@
            >
              <el-form-item :label="$t('common.name')">
                <el-input v-model="formInline.name"></el-input>
                <!-- <el-input v-model="formInline.name"></el-input> -->
                {{formInline.name}}
              </el-form-item>
              <el-form-item :label="$t('common.type')">
                <el-select
                <!-- <el-select
                  v-model="formInline.type"
                  style="width:100%"
                >
@@ -104,13 +105,15 @@
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
                </el-select> -->
                {{formInline.type}}
              </el-form-item>
              <el-form-item :label="$t('common.bak')">
                <el-input v-model="formInline.bak"></el-input>
                <!-- <el-input v-model="formInline.bak"></el-input> -->
                {{formInline.bak}}
              </el-form-item>
              <el-form-item>
              <!-- <el-form-item>
                <el-button
                  v-show="isShowModel"
                  type="success"
@@ -119,14 +122,14 @@
                  @click="InsertData"
                >{{$t('common.increase')}}</el-button>
                <el-button
                  v-show="!isShowModel"
                  v-show=" isShowModel"
                  type="info"
                  plain
                  size="small"
                  @click="EditData"
                >{{$t('common.update')}}</el-button>
              </el-form-item>
              </el-form-item>
              </el-form-item> -->
            </el-form>
          </el-tab-pane>
@@ -134,6 +137,7 @@
            label="附件"
            name="second"
          >
            <el-table
              :data="tableData"
              ref="filterTable"
@@ -654,28 +658,28 @@
      activeName: "first",
      isShowModel: false,
      options: [
          {
        value: '倾斜模型',
        label: '倾斜模型'
      }, {
        value: 'BIM模型',
        label: 'BIM模型'
      }, {
        value: '点云模型',
        label: '点云模型'
      }, {
        value: '地质设计模型',
        label: '地质设计模型'
      }, {
        value: '人工模型',
        label: '人工模型'
      }, {
        value: '其他模型',
        label: '其他模型'
      }],
      modelClip:false,
      clippingPlanes:null,
      showPickUp:false,
        {
          value: '倾斜模型',
          label: '倾斜模型'
        }, {
          value: 'BIM模型',
          label: 'BIM模型'
        }, {
          value: '点云模型',
          label: '点云模型'
        }, {
          value: '地质设计模型',
          label: '地质设计模型'
        }, {
          value: '人工模型',
          label: '人工模型'
        }, {
          value: '其他模型',
          label: '其他模型'
        }],
      modelClip: false,
      clippingPlanes: null,
      showPickUp: false,
    };
  },
  methods: {
@@ -1400,18 +1404,18 @@
          this.$store.state.mapMenuBoolean = !this.$store.state.mapMenuBoolean;
          this.$store.state.mapMenuBoxFlag = "2";
          break;
          //拾取功能
        //拾取功能
        case "e3":
          this.$store.state.mapMenuBoolean = false;
          this.showPickUp = !this.showPickUp;
          if (this.showPickUp){
          if (this.showPickUp) {
            let that = this;
            Viewer.screenSpaceEventHandler.setInputAction(function (event) {
              let p = sgworld.Navigate.getMouseDegrees(event);
              console.log(p);
              that.getPickUpData(p);
            }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
          }else {
          } else {
            this.$refs.queryinfo.closeAll();
            Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
          }
@@ -1546,20 +1550,20 @@
          // } else {
          var that = this;
          that.modelClip = !that.modelClip;
          if (that.modelClip){
            if (window.model){
          if (that.modelClip) {
            if (window.model) {
              that.modelClipping();
            }
            else {
              var tileset = Viewer.scene.primitives.add(
                  new Cesium.Cesium3DTileset({
                    name: res.cnName,
                    url: modelUrl+ "/tileset/m/SN/tileset.json",
                    maximumScreenSpaceError: 64, // 最大屏幕空间错误:16
                    maximumMemoryUsage: 768, // 最大内存:512
                    dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false
                    skipLevelOfDetail: true, // 在遍历时候跳过详情:false
                  })
                new Cesium.Cesium3DTileset({
                  name: res.cnName,
                  url: modelUrl + "/tileset/m/SN/tileset.json",
                  maximumScreenSpaceError: 64, // 最大屏幕空间错误:16
                  maximumMemoryUsage: 768, // 最大内存:512
                  dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false
                  skipLevelOfDetail: true, // 在遍历时候跳过详情:false
                })
              );
              tileset.readyPromise.then((tileset) => {
                tileset.id = res.cnName;
@@ -1754,11 +1758,11 @@
      let clippingPlanes = new Cesium.ClippingPlaneCollection({
        planes: [ // ClippingPlane对象数组集合
          new Cesium.ClippingPlane( // 裁切面
              new Cesium.Cartesian3(0.0, 0.0, -1.0), // 法线方向
              0// 原点到平面的最短距离,设置0就好
            new Cesium.Cartesian3(0.0, 0.0, -1.0), // 法线方向
            0// 原点到平面的最短距离,设置0就好
          ),
        ],
        enabled:true,
        enabled: true,
        edgeWidth: 1.0, // 模型被裁切部分的截面线宽
      });
      let boundingSphere = window.model.boundingSphere;
@@ -1769,14 +1773,14 @@
          position: boundingSphere.center,
          plane: {
            dimensions: new Cesium.Cartesian2(
                boundingSphere.radius * 1.5,
                boundingSphere.radius * 1.5
              boundingSphere.radius * 1.5,
              boundingSphere.radius * 1.5
            ),
            material: Cesium.Color.WHITE.withAlpha(0.1),
            plane: new Cesium.CallbackProperty(
                // 添加绑定事件,不断调用
                createPlaneUpdateFunction(plane),
                false
              // 添加绑定事件,不断调用
              createPlaneUpdateFunction(plane),
              false
            ),
            outline: true,
            outlineColor: Cesium.Color.WHITE,
@@ -1790,13 +1794,13 @@
      // Select plane when mouse down
      // 绑定上移动事件
      const downHandler = new Cesium.ScreenSpaceEventHandler(
          Viewer.scene.canvas
        Viewer.scene.canvas
      );
      downHandler.setInputAction(function (movement) {
        const pickedObject = scene.pick(movement.position);
        if (
            Cesium.defined(pickedObject) &&
            Cesium.defined(pickedObject.id.plane)
          Cesium.defined(pickedObject) &&
          Cesium.defined(pickedObject.id.plane)
        ) {
          selectedPlane = pickedObject.id.plane;
          selectedPlane.material = Cesium.Color.WHITE.withAlpha(0.05);
@@ -1808,7 +1812,7 @@
      // Release plane on mouse up
      // 绑定下移动事件
      const upHandler = new Cesium.ScreenSpaceEventHandler(
          Viewer.scene.canvas
        Viewer.scene.canvas
      );
      upHandler.setInputAction(function () {
        if (Cesium.defined(selectedPlane)) {
@@ -1820,7 +1824,7 @@
      }, Cesium.ScreenSpaceEventType.LEFT_UP);
      // Update plane on mouse move
      const moveHandler = new Cesium.ScreenSpaceEventHandler(
          Viewer.scene.canvas
        Viewer.scene.canvas
      );
      moveHandler.setInputAction(function (movement) {
        if (Cesium.defined(selectedPlane)) {
@@ -1837,10 +1841,10 @@
    },
    //关闭管道信息弹窗
    closePipelinePop(){
    closePipelinePop() {
      this.$refs &&
      this.$refs.queryinfo &&
      this.$refs.queryinfo.close("queryinfo");
        this.$refs.queryinfo &&
        this.$refs.queryinfo.close("queryinfo");
    },
    setclippingModel() {
      if (window.model) {
@@ -2421,30 +2425,30 @@
      this.attacgSelection = val;
    },
    //拾取数据获取
    async getPickUpData(info){
    async getPickUpData(info) {
      let checkedLayers = JSON.parse(sessionStorage.getItem("checkedLayers"));
      let showPop = false;
      for (const item of checkedLayers) {
        let name = item.url.replaceAll("LF:","");
        name = name.replaceAll("_","");
        let name = item.url.replaceAll("LF:", "");
        name = name.replaceAll("_", "");
        let params = {
          buffer:10,
          limit:20,
          name:name,
          wkt:`POINT (${info.lon} ${info.lat})`,
          buffer: 10,
          limit: 20,
          name: name,
          wkt: `POINT (${info.lon} ${info.lat})`,
        }
        const res = await selectByBuffer(params);
        if (res.result && res.result.length > 0){
        if (res.result && res.result.length > 0) {
          this.$store.state.mapPopBoxFlag = "4";
          this.$store.state.pickUpPointInfo = info;
          this.$refs &&
          this.$refs.queryinfo &&
          this.$refs.queryinfo.open("拾取分析", null,);
            this.$refs.queryinfo &&
            this.$refs.queryinfo.open("拾取分析", null,);
          showPop = true;
          break;
        }
      }
      if (!showPop){
      if (!showPop) {
        this.$message.warning("暂无数据!");
      }
    }