管道基础大数据平台系统开发-【前端】-新系統界面
修改发布影像白色无法选择;修改空间搜索选择后,上面的框类显示目录结构最高层级的名称;下拉框的收回机制修改;图层管理移动修改;管线输送介质,图层管理-属性表-翻译错误修改;3D切换到2D,底图切换失效修改;模板管理修改;
已修改15个文件
412 ■■■■ 文件已修改
public/SmartEarthSDK/Workers/path/Path.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/config.css 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapView/mapMenuTop.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapView/mapSpacePop.vue 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapol.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/LeftMenu.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/AddOnlineMap.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/LayerTree.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/maplayer.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataUpdata.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/layerManagement.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/uploadmanage.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userManage/templateManage.vue 173 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/SmartEarthSDK/Workers/path/Path.html
@@ -249,7 +249,7 @@
        var fly = null;
        var sgworld = parent.sgworld;
        var routeData = parent.PathAnimationData.flyData;
        var url = parent.SmartEarthRootUrl + "Workers/Model/xiaoche.glb";
        var url = parent.SmartEarthRootUrl + "Workers/Model/car_samll.glb";
        $('#start').hide();
        $('#stop').show();
        var form, element, slider;
src/assets/css/config.css
@@ -525,4 +525,8 @@
.Black_theme .el-icon-crop {
    color: #fff !important;
}
.Black_theme .box-card {
    background: rgba(48, 48, 48, 0.95) !important;
}
src/assets/lang/en.js
@@ -59,7 +59,8 @@
    attribute: 'Attribute',
    id: "ID",
    info: 'Info',
    warehousResults: 'Warehousing results'
    warehousResults: 'Warehousing results',
    templateType: 'Template Type'
  },
  dataManage: {
src/assets/lang/zh.js
@@ -59,7 +59,8 @@
    attribute: '属性',
    id: "ID",
    info: '信息',
    warehousResults: '入库结果'
    warehousResults: '入库结果',
    templateType: '模板类型'
  },
  dataManage: {
    dataManage: '数据管理',
src/components/MapView/mapMenuTop.vue
@@ -389,17 +389,22 @@
    getCheckedNodes() {
      this.layerTabe = [];
      var valTree = this.$refs.tree.getCheckedNodes()
      var parentIds = this.$refs.tree.getHalfCheckedKeys(true)
      if (valTree.length == 0) return
      this.menuTopFrom.queryLayer = null;
      this.$store.state.propertiesName = valTree[0];
      this.treeChange = [];
      this.menuTopFrom.queryLayer = null;
      if (parentIds.length > 0) {
        this.menuTopFrom.queryLayer = this.$refs.tree.getNode(parentIds[0]).data.label
      } else {
        this.menuTopFrom.queryLayer = valTree[0].label
      }
      this.$store.state.propertiesName = valTree[0];
      for (var i = 0; i < valTree.length; i++) {
        if (valTree[i].entity) {
          if (!this.menuTopFrom.queryLayer) {
            this.menuTopFrom.queryLayer = valTree[i].tabDesc;
          }
          // if (!this.menuTopFrom.queryLayer) {
          //   this.menuTopFrom.queryLayer = valTree[i].tabDesc;
          // }
          this.layerTabe.push(valTree[i])
          // this.treeChange.push(valTree[i])
        }
src/components/MapView/mapSpacePop.vue
@@ -500,23 +500,54 @@
      if (data.code != 200) {
        this.$message.error("列表调用失败")
      }
      this.filedsOption = [];
      const data1 = await inquiry_selectDomains({ name: this.spaceLayer })
      if (data1.code != 200) {
        this.$message.error("列表调用失败")
      }
      this.optionx = []
      this.attributeData = []
      var valadata = data.result
      var laydomain = data1.result
      this.optionx = data1.result
      for (var i in valadata) {
        if (valadata[i].showtype == 1) {
          if (
            valadata[i].domainNa != null &&
            valadata[i].domainNa != undefined
          ) {
            valadata[i].domainNa = this.getMatchDomainNa(valadata[i].domainNa)
            for (var j in laydomain) {
              if (laydomain[j].domName == valadata[i].domainNa) {
                // valadata[i].domainNa = laydomain[j].codeDesc
              }
            }
          }
          this.optionx.push(valadata[i])
          this.filedsOption.push(valadata[i])
          // this.attributeData.push(valadata[i])
          // this.optionx.push(valadata[i])
          this.attributeData.push(valadata[i])
        }
      }
      this.startFiledAndcondition();
      // this.filedsOption = [];
      // this.optionx = []
      // var valadata = data.result
      // for (var i in valadata) {
      //   if (valadata[i].showtype == 1) {
      //     if (
      //       valadata[i].domainNa != null &&
      //       valadata[i].domainNa != undefined
      //     ) {
      //       valadata[i].domainNa = this.getMatchDomainNa(valadata[i].domainNa)
      //     }
      //   }
      // }
      // this.startFiledAndcondition();
      this.showSpacePopLayer()
    },
    appendQueryFilter() {
@@ -645,21 +676,41 @@
      })
      var val_Data = data.result
      this.count = data.count
      for (var i in val_Data) {
        var valste = val_Data[i]
        for (var j in this.optionx) {
          if (
            this.optionx[j].domainNa != null &&
            this.optionx[j].domainNa != undefined
          ) {
            valste[this.optionx[j].field] = this.optionx[j].domainNa
      for (var i in val) {
        var meson = this.optionx.filter(res => {
          if (res.domCode == val[i].medium) {
            return res
          }
        })
        if (meson.length > 0) {
          val[i].medium = meson[0].codeDesc
        } else {
          val[i].medium = ''
        }
      }
      }
      // debugger
      // // debugger
      // // // for (var i in val_Data) {
      // // //   var valste = val_Data[i]
      // // //   for (var j in this.optionx) {
      // // //     if (
      // // //       this.optionx[j].domainNa != null &&
      // // //       this.optionx[j].domainNa != undefined
      // // //     ) {
      // // //       console.log(this.optionx[j])
      // // //       // valste[this.optionx[j].field] = this.optionx[j].domainNa
      // // //     }
      // // //   }
      // // // }
      // // for (var j in this.optionx) {
      // //   console.log(this.optionx[j].domainNa)
      // //   // if (this.optionx[j].alias == '输送介质') {
      // //   //   console.log(this.optionx[j].domainNa)
      // //   // }
      // // }
      this.tableData = val
      this.$refs.filterTable.doLayout()
src/components/mapol.vue
@@ -98,17 +98,17 @@
    init2DMap() {
      var layerBase = [];
      if (!is_production) {
        var vectorLayer = new TileLayer({
          source: new XYZ({
            url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
          }),
        })
        var imageLayer = new TileLayer({
        // window.vectorLayer = new TileLayer({
        //   source: new XYZ({
        //     url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
        //   }),
        // })
        window.vectorLayer = new TileLayer({
          source: new XYZ({
            url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=6&x={x}&y={y}&z={z}",
          }),
        })
        layerBase = [vectorLayer, imageLayer]
        layerBase = [vectorLayer]
      }
      window.map = new Map({
        target: "mapol",
src/views/Synthesis/LeftMenu.vue
@@ -2779,10 +2779,6 @@
        }
      }
      arr['eventid'] = valste.eventid
src/views/Tools/AddOnlineMap.vue
@@ -248,6 +248,11 @@
        window.BaseMapLayer
      );
      window.map.removeLayer(window.olBaseMapLayer);
      if (!is_production) {
        if (window.vectorLayer) {
          window.map.removeLayer(window.vectorLayer);
        }
      }
    },
    addImageLayer(map, mapCollection) {
@@ -273,6 +278,7 @@
        window.map.addLayer(window.olBaseMapLayer);
        return;
      } else if (mapCollection.sourceType === "tdmap") {
        var tokne = mapCollection.tokne;
        //添加天地图影像
@@ -283,6 +289,7 @@
          format: "image/jpeg",
          tileMatrixSetID: "GoogleMapsCompatible",
        }))
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
src/views/Tools/LayerTree.vue
@@ -1041,7 +1041,7 @@
      var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(vm.yaw), 0, 0);
      var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter);
      tileset._root.transform = matrix;
      Viewer.flyTo(tileset);
      // Viewer.flyTo(tileset);
    },
    tileSet(tileset, height) {
      //3dtile模型的边界球体
@@ -1055,7 +1055,7 @@
      var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3());
      //修改模型矩阵
      tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
      Viewer.flyTo(tileset);
      // Viewer.flyTo(tileset);
    },
    setTreeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆
src/views/Tools/maplayer.vue
@@ -11,8 +11,18 @@
      :top="data.top || top + index * 42 + 'px'"
    >
      <div>
        <layer-tree />
        <div
          id="eagleMapContainer"
          style="width:300px;height:400px;"
          v-drag
          @mousedown="dragEagle"
        >
          <layer-tree />
        </div>
      </div>
      <!-- <div class="InfoPopupContianer">
      </div> -->
    </Popup>
  </div>
</template>
@@ -35,9 +45,79 @@
      top: 10,
    };
  },
  directives: {
    drag: {
      inserted: function (el) {
        const dragDom = el;
        dragDom.style.cursor = "nwse-resize";
        dragDom.onmousedown = (e) => {
          // 鼠标按下,计算当前元素距离可视区的距离
          const disX = e.clientX;
          const w = dragDom.clientWidth;
          const minW = 300;
          const maxW = 500;
          const disY = e.clientY;
          const h = dragDom.clientHeight;
          const minH = 300;
          const maxH = 700;
          var nw, nh;
          document.onmousemove = function (e) {
            // 通过事件委托,计算移动的距离
            const l = e.clientX - disX;
            const r = e.clientY - disY;
            // 改变当前元素宽度,不可超过最小最大值
            nw = w + l;
            nw = nw < minW ? minW : nw;
            nw = nw > maxW ? maxW : nw;
            dragDom.style.width = `${nw}px`;
            nh = h + r;
            nh = nh < minH ? minH : nh;
            nh = nh > maxH ? maxH : nh;
            dragDom.style.height = `${nh}px`;
          };
          document.onmouseup = function (e) {
            document.onmousemove = null;
            document.onmouseup = null;
          };
        };
      },
    },
  },
  computed: {},
  mounted() {},
  mounted() { },
  methods: {
    dragEagle: function (e) {
      var targetDiv = document.getElementById('eagleMapContainer');
      //得到点击时该地图容器的宽高:
      var targetDivHeight = targetDiv.offsetHeight;
      var startX = e.clientX;
      var startY = e.clientY;
      var _this = this;
      document.onmousemove = function (e) {
        e.preventDefault();
        //得到鼠标拖动的宽高距离:取绝对值
        var distX = Math.abs(e.clientX - startX);
        var distY = Math.abs(e.clientY - startY);
        //往上方拖动:
        if (e.clientY < startY) {
          targetDiv.style.height = targetDivHeight + distY + 'px';
        }
        //往下方拖动:
        if (e.clientX < startX && e.clientY > startY) {
          targetDiv.style.height = (targetDivHeight - distY) + 'px';
        }
        if (parseInt(targetDiv.style.height) >= 300) {
          targetDiv.style.height = 300 + 'px';
        }
        if (parseInt(targetDiv.style.height) <= 150) {
          targetDiv.style.height = 150 + 'px';
        }
      }
      document.onmouseup = function () {
        document.onmousemove = null;
      }
    },
    // 关闭所有
    closeAll() {
      this.PopupData.forEach((item) => {
src/views/datamanage/dataUpdata.vue
@@ -69,6 +69,7 @@
              size="small"
            >
              <el-select
                ref="multiSelect"
                :popper-append-to-body="false"
                v-model="formInline.dirName"
                :disabled="tableData.length == 0 ? false : true"
@@ -1689,6 +1690,7 @@
  },
  watch: {},
  methods: {
    setRestMetaData() {
      this.fromQueryMeta.name = "";
      this.listMetaData.name = this.fromQueryMeta.name;
@@ -3074,6 +3076,9 @@
      this.formInline.dirid = node.data.id;
      this.formInline.dirName = node.data.name;
      this.getselectVerByDirid();
      setTimeout(() => {
        this.$refs.multiSelect.blur()
      }, 100)
    },
    //Tabsq切换
    handleTabClick(tab, event) {
src/views/datamanage/layerManagement.vue
@@ -640,11 +640,13 @@
        // 循环所有项
        let branchArr = cloneData.filter((child) => father.id == child.pid);
        if (branchArr.length > 0) {
          branchArr.sort(function (a, b) {
            return a.orderNum - b.orderNum
            return b.orderNum - a.orderNum
          })
        }
        branchArr.length > 0 ? (father.children = branchArr) : ""; // 给父级添加一个children属性,并赋值
        // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2;
        // 由此循环多次后,就能形成相应的树形数据结构
src/views/datamanage/uploadmanage.vue
@@ -623,7 +623,7 @@
      detailsDialogVisible: false,
      itemdetail: {},
      insertDialogVisible: false,
      insertLayer: { name: '', number: null, min: 4, max: 18 },
      insertLayer: { name: '', number: null, min: 4, max: 18, noData: '0' },
      loadDialogVisible: false,
      options: [],
      isFullscreen: false,
@@ -700,7 +700,8 @@
        max: max,
        name: name,
        ids: std,
        type: this.formInline.type
        type: this.formInline.type,
        noData: this.insertLayer.noData
      }
      this.loadDialogVisible = true
      this.insertDialogVisible = false;
src/views/userManage/templateManage.vue
@@ -107,12 +107,13 @@
          <template slot-scope="scope">
            <span v-if="scope.row.type == 1">World模板 </span>
            <span v-else-if="scope.row.type == 2">Excel模板</span>
            <span v-else-if="scope.row.type == 3">Zip模板</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          prop="code"
          :label="$t('common.domCode')"
          :label="$t('common.templateType')"
          :formatter="codeData"
        />
        <!-- <el-table-column
@@ -201,25 +202,7 @@
              v-model=" editForm.name"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('common.fileType')">
            <el-select
              :popper-append-to-body="false"
              v-model="editForm.type"
              @change="selFileTypeChange"
              placeholder="请选择活动区域"
              style="width:85%"
            >
              <el-option
                label="World模板"
                value="1"
              ></el-option>
              <el-option
                label="Excel模板"
                value="2"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item :label="$t('common.domCode')">
          <el-form-item :label="$t('common.templateType')">
            <!-- <el-input
              style="width:100%"
              v-model=" editForm.code"
@@ -227,8 +210,9 @@
            <el-select
              :popper-append-to-body="false"
              style="width:85%"
              @change="selFileCodeChange"
              v-model="editForm.code"
              placeholder="请选择"
              placeholder="请选择文件类型"
            >
              <el-option
                v-for="item in options"
@@ -239,6 +223,36 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item :label="$t('common.fileType')">
            <el-select
              :popper-append-to-body="false"
              v-model="editForm.type"
              @change="selFileTypeChange"
              placeholder="请选择模板类型"
              style="width:85%"
            >
              <el-option
                v-for="item in typeOption"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
              <!-- <el-option
                label="World模板"
                value="1"
              ></el-option>
              <el-option
                label="Excel模板"
                value="2"
              ></el-option>
              <el-option
                label="Zip模板"
                value="3"
              ></el-option> -->
            </el-select>
          </el-form-item>
          <el-form-item :label="$t('common.filePath')">
            <div class="BoxFlex">
              <div class="BoxFlexinput">
@@ -347,7 +361,7 @@
          </p>
          <el-divider></el-divider>
          <p>
            <label> {{ $t('common.domCode') }}:</label>
            <label> {{ $t('common.templateType') }}:</label>
            <label class="boxlabel">{{ itemdetail.code }}</label>
          </p>
          <el-divider></el-divider>
@@ -418,8 +432,20 @@
          label: "服务调用量统计",
        },
        {
          value: "countOperates ",
          value: "countOperates",
          label: "用户流量统计",
        },
        {
          value: "dataTable",
          label: "上传数据表格模板",
        },
        {
          value: "uploadDir",
          label: "上传目录结构模板",
        },
        {
          value: "dirFolder",
          label: "目录结构文件夹模板",
        },
      ],
      itemdetail: {},
@@ -459,6 +485,7 @@
      styleVar: {
        height: "calc(100% - 109px)",
      },
      typeOption: [],
    };
  },
  created() {
@@ -529,14 +556,26 @@
        this.itemdetail.fileType = "World模板";
      } else if (parseInt(row.type) == 2) {
        this.itemdetail.fileType = "Excel模板";
      } else if (parseInt(row.type) == 3) {
        this.itemdetail.fileType = "Zip模板";
      }
      if (row.code.indexOf("countSizes") != -1) {
        this.itemdetail.code = "数据量统计";
      } else if (row.code.indexOf("countServices") != -1) {
        this.itemdetail.code = "服务调用量统计";
      } else if (row.code.indexOf("countOperates") != -1) {
        this.itemdetail.code = "用户流量统计";
      }
      var val = this.options.filter(res => {
        if (res.value == row.code) {
          return res
        }
      })
      this.itemdetail.code = val[0].label;
      // if (row.code.indexOf("countSizes") != -1) {
      //   this.itemdetail.code = "数据量统计";
      // } else if (row.code.indexOf("countServices") != -1) {
      //   this.itemdetail.code = "服务调用量统计";
      // } else if (row.code.indexOf("countOperates") != -1) {
      //   this.itemdetail.code = "用户流量统计";
      // } else if (row.code.indexOf("countOperates") != -1) {
      //   this.itemdetail.code = "用户流量统计";
      // } else if (row.code.indexOf("countOperates") != -1) {
      //   this.itemdetail.code = "用户流量统计";
      // }
      this.itemdetail.cTime = this.format(row.createTime);
      if (row.updateTime) {
@@ -575,8 +614,46 @@
        this.selectFileType = ".docx";
      } else if (parseInt(val) == 2) {
        this.selectFileType = ".xlsx";
      } else if (parseInt(val) == 3) {
        this.selectFileType = ".zip";
      }
    },
    selFileCodeChange(res) {
      var name;
      for (var i in this.options) {
        if (this.options[i].value == res) {
          name = this.options[i].label
          break;
        }
      }
      if (name.indexOf('统计') > -1) {
        this.typeOption = [{
          label: "World模板",
          value: "1"
        }, {
          label: "Excel模板",
          value: "2"
        }]
      } else {
        this.typeOption = [{
          label: "World模板",
          value: "1"
        }, {
          label: "Excel模板",
          value: "2"
        }, {
          label: "Zip模板",
          value: "3"
        }]
      }
      this.editForm.type = this.typeOption[0].value
    },
    //修改
    handleEdit(index, row) {
      this.behavior = "修改";
@@ -734,8 +811,44 @@
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    editFormStart() {
      this.editForm.code = "countSizes";
      var name;
      for (var i in this.options) {
        if (this.options[i].value == this.editForm.code) {
          name = this.options[i].label
          break;
        }
      }
      if (name.indexOf('统计') > -1) {
        this.typeOption = [{
          label: "World模板",
          value: "1"
        }, {
          label: "Excel模板",
          value: "2"
        }]
      } else {
        this.typeOption = [{
          label: "World模板",
          value: "1"
        }, {
          label: "Excel模板",
          value: "2"
        }, {
          label: "Zip模板",
          value: "3"
        }]
      }
      this.editForm.type = this.typeOption[0].value
    },
    //新增弹窗
    setTableInsert() {
      this.editFormStart();
      this.behavior = "新增";
      this.dialogVisible = true;
    },