|  | @@ -0,0 +1,193 @@
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div id="screenDiv" style="position: absolute; height: 100%; width: 100%">
 | 
	
		
			
				|  |  | +    <div
 | 
	
		
			
				|  |  | +      v-for="(k, i) in layers"
 | 
	
		
			
				|  |  | +      :key="k"
 | 
	
		
			
				|  |  | +      class="splitScreen"
 | 
	
		
			
				|  |  | +      :class="{
 | 
	
		
			
				|  |  | +        w50: type == 1 || type == 2,
 | 
	
		
			
				|  |  | +        h50: type == -1 || type == -2,
 | 
	
		
			
				|  |  | +      }"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <li
 | 
	
		
			
				|  |  | +        class="sm-btn sm-tool-btn"
 | 
	
		
			
				|  |  | +        title="资源目录"
 | 
	
		
			
				|  |  | +        @click="$set(layers, i, !layers[i])"
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  | +        <span class="iconfont icontuceng"></span>
 | 
	
		
			
				|  |  | +      </li>
 | 
	
		
			
				|  |  | +      <layer-manage-split
 | 
	
		
			
				|  |  | +        ref="splitManage"
 | 
	
		
			
				|  |  | +        type="roller"
 | 
	
		
			
				|  |  | +        :splitId="k"
 | 
	
		
			
				|  |  | +        :isshow="layers[i]"
 | 
	
		
			
				|  |  | +        :checkedKeys="checkedKeys[i]"
 | 
	
		
			
				|  |  | +        @close="$set(layers, i, false)"
 | 
	
		
			
				|  |  | +        @handleCheckChange="handleCheckChange"
 | 
	
		
			
				|  |  | +      ></layer-manage-split>
 | 
	
		
			
				|  |  | +      <input v-model="toolTitle[i]" type="text" class="sm-toolTitle" />
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  name: "rollerScreen",
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      layers: [],
 | 
	
		
			
				|  |  | +      checkedKeys: [],
 | 
	
		
			
				|  |  | +      toolTitle: [],
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    type() {
 | 
	
		
			
				|  |  | +      return store.state.rollerType;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  watch: {
 | 
	
		
			
				|  |  | +    type() {
 | 
	
		
			
				|  |  | +      this.layers = Array(2);
 | 
	
		
			
				|  |  | +      this.checkedKeys = Array(2);
 | 
	
		
			
				|  |  | +      this.toolTitle = Array(2);
 | 
	
		
			
				|  |  | +      this.setCheckeds();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  // inject: ["checkedChange"],
 | 
	
		
			
				|  |  | +  mounted() {},
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    setCheckeds() {
 | 
	
		
			
				|  |  | +      if (!store.state.checkedData) return;
 | 
	
		
			
				|  |  | +      for (let i = 0; i < this.checkedKeys.length; i++) {
 | 
	
		
			
				|  |  | +        this.checkedKeys[i] = [store.state.checkedData.id];
 | 
	
		
			
				|  |  | +        this.toolTitle[i] = [store.state.checkedData.title];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.$set(this.checkedKeys, this.checkedKeys);
 | 
	
		
			
				|  |  | +      this.$set(this.toolTitle, this.toolTitle);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    handleCheckChange(obj, checked, splitId) {
 | 
	
		
			
				|  |  | +      if (obj.children && obj.children.length > 0) {
 | 
	
		
			
				|  |  | +        for (let i = 0; i < obj.children.length; i++) {
 | 
	
		
			
				|  |  | +          this.handleCheckChange(obj.children[i], checked);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        if (checked) {
 | 
	
		
			
				|  |  | +          store.setCheckedData(obj);
 | 
	
		
			
				|  |  | +          this.$set(this.toolTitle, splitId - 1, obj.title);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let sceneLayer = store.state.layerparamslist[obj.id];
 | 
	
		
			
				|  |  | +        if (sceneLayer) {
 | 
	
		
			
				|  |  | +          this.setImageryRollerMode([sceneLayer]);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          this.bus.$emit("checkedChange", obj);
 | 
	
		
			
				|  |  | +          if (obj.checked) {
 | 
	
		
			
				|  |  | +            for (let i = 0; i < this.checkedKeys.length; i++) {
 | 
	
		
			
				|  |  | +              if (!this.checkedKeys[i]) {
 | 
	
		
			
				|  |  | +                this.checkedKeys[i] = [];
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              if (i != splitId - 1) {
 | 
	
		
			
				|  |  | +                this.checkedKeys[i].push(obj.id);
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            this.$set(this.checkedKeys, this.checkedKeys);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    setImageryRollerMode(imageryLayers) {
 | 
	
		
			
				|  |  | +      // let imageryLayers = viewer.imageryLayers;
 | 
	
		
			
				|  |  | +      if (this.imageryRoller) {
 | 
	
		
			
				|  |  | +        for (let i = 0; i < imageryLayers.length; i++) {
 | 
	
		
			
				|  |  | +          // let imageryLayer =imageryLayers[i] //imageryLayers.get(i);
 | 
	
		
			
				|  |  | +          switch (rollerShutterConfig.splitDirection) {
 | 
	
		
			
				|  |  | +            case Cesium.SplitDirection.LEFT:
 | 
	
		
			
				|  |  | +              imageryLayer.splitDirection = new Cesium.Cartesian2(
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.RIGHT,
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.NONE
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +              break;
 | 
	
		
			
				|  |  | +            case Cesium.SplitDirection.RIGHT:
 | 
	
		
			
				|  |  | +              imageryLayer.splitDirection = new Cesium.Cartesian2(
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.LEFT,
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.NONE
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +              break;
 | 
	
		
			
				|  |  | +            case Cesium.SplitDirection.TOP:
 | 
	
		
			
				|  |  | +              imageryLayer.splitDirection = new Cesium.Cartesian2(
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.NONE,
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.BOTTOM
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +              break;
 | 
	
		
			
				|  |  | +            case Cesium.SplitDirection.BOTTOM:
 | 
	
		
			
				|  |  | +              imageryLayer.splitDirection = new Cesium.Cartesian2(
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.NONE,
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.TOP
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +              break;
 | 
	
		
			
				|  |  | +            default:
 | 
	
		
			
				|  |  | +              imageryLayer.splitDirection = new Cesium.Cartesian2(
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.NONE,
 | 
	
		
			
				|  |  | +                Cesium.ImagerySplitDirection.NONE
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +              break;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        for (let i = 0; i < imageryLayers.length; i++) {
 | 
	
		
			
				|  |  | +          let imageryLayer = imageryLayers.get(i);
 | 
	
		
			
				|  |  | +          imageryLayer.splitDirection = new Cesium.Cartesian2(
 | 
	
		
			
				|  |  | +            Cesium.ImagerySplitDirection.NONE,
 | 
	
		
			
				|  |  | +            Cesium.ImagerySplitDirection.NONE
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +<style lang="scss" >
 | 
	
		
			
				|  |  | +.splitScreen {
 | 
	
		
			
				|  |  | +  float: left;
 | 
	
		
			
				|  |  | +  height: 100%;
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  position: relative;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .sm-btn {
 | 
	
		
			
				|  |  | +    position: absolute;
 | 
	
		
			
				|  |  | +    top: 60px;
 | 
	
		
			
				|  |  | +    background-color: transparent;
 | 
	
		
			
				|  |  | +    // font-size: 30px;
 | 
	
		
			
				|  |  | +    z-index: 100;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  .sm-panel {
 | 
	
		
			
				|  |  | +    max-width: 300px;
 | 
	
		
			
				|  |  | +    height: 400px; //75%;
 | 
	
		
			
				|  |  | +    max-height: 80%;
 | 
	
		
			
				|  |  | +    top: 60px;
 | 
	
		
			
				|  |  | +    left: 50px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.w50 {
 | 
	
		
			
				|  |  | +  width: 50%;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.h50 {
 | 
	
		
			
				|  |  | +  height: 50%;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.sm-toolTitle {
 | 
	
		
			
				|  |  | +  width: 400px;
 | 
	
		
			
				|  |  | +  // height: 80px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  position: absolute;
 | 
	
		
			
				|  |  | +  top: 100px;
 | 
	
		
			
				|  |  | +  left: calc(50% - 300px);
 | 
	
		
			
				|  |  | +  z-index: 100;
 | 
	
		
			
				|  |  | +  text-align: center;
 | 
	
		
			
				|  |  | +  font-size: 24px;
 | 
	
		
			
				|  |  | +  color: aqua;
 | 
	
		
			
				|  |  | +  background: transparent;
 | 
	
		
			
				|  |  | +  border-color: transparent;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 | 
	
		
			
				|  |  | +
 |