月球大数据地理空间分析展示平台-【中台】
Surpriseplus
2023-08-11 1653112f53e17dbbd8a5b7230b096da8902b3337
src/views/datamanage/layerManagement.vue
@@ -105,22 +105,7 @@
            class="demo-form-inline"
            label-width="150px"
          >
            <!-- 菜单名称 -->
            <el-form-item :label="$t('dataManage.layerObj.layerName')">
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt1')"
                style="width: 60%;"
                v-model="formInline.cnName"
              ></el-input>
            </el-form-item>
            <!-- 英文名称 -->
            <el-form-item :label="$t('dataManage.layerObj.englishName')">
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt6')"
                style="width: 60%;"
                v-model="formInline.enName"
              ></el-input>
            </el-form-item>
            <!-- 菜单类型 -->
            <el-form-item :label="$t('dataManage.layerObj.layerType')">
              <el-select
@@ -138,6 +123,44 @@
                ></el-option>
              </el-select>
            </el-form-item>
            <!-- 服务资源-->
            <el-form-item
              v-show="formInline.isLayer == 1"
              :label="$t('dataManage.layerObj.serviceResources')"
            >
              <el-button
                size="small"
                class="serviceButton"
                @click="setServiceChange('0')"
                :class="{serviceActive: formInline.service === '0'}"
              >{{$t('dataManage.layerObj.isfalse')}}</el-button>
              <el-button
                size="small"
                class="serviceButton"
                @click="setServiceChange('1')"
                :class="{serviceActive: formInline.service === '1'}"
              >{{$t('dataManage.layerObj.istrue')}}</el-button>
            </el-form-item>
            <!-- 菜单名称 -->
            <el-form-item :label="$t('dataManage.layerObj.layerName')">
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt1')"
                style="width: 60%;"
                v-model="formInline.cnName"
                :disabled="formInline.service =='1'"
              ></el-input>
            </el-form-item>
            <!-- 英文名称 -->
            <el-form-item :label="$t('dataManage.layerObj.englishName')">
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt6')"
                style="width: 60%;"
                v-model="formInline.enName"
                :disabled="formInline.service =='1'"
              ></el-input>
            </el-form-item>
            <!-- 数据类型 -->
            <el-form-item
              v-show="formInline.isLayer == 1"
@@ -147,6 +170,7 @@
                style="width: 60%;"
                v-model="formInline.type"
                :placeholder="$t('dataManage.layerObj.prompt3')"
                :disabled="formInline.service =='1'"
              >
                <el-option
                  v-for="item in dataType"
@@ -166,19 +190,9 @@
                :placeholder="$t('dataManage.layerObj.prompt4')"
                style="width: 60%;"
                v-model="formInline.url"
                :disabled="formInline.service =='1'"
              ></el-input>
            </el-form-item>
            <!-- 英文表名 -->
            <!-- <el-form-item
              v-show="formInline.isLayer == 1 && formInline.type =='WMS'"
              :label="$t('dataManage.layerObj.enTableName')"
            >
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt6')"
                style="width: 60%;"
                v-model="formInline.enName"
              ></el-input>
            </el-form-item> -->
            <!-- 是否显示 -->
            <el-form-item
@@ -236,22 +250,6 @@
          class="demo-form-inline"
          label-width="150px"
        >
          <!-- 菜单名称 -->
          <el-form-item :label="$t('dataManage.layerObj.layerName')">
            <el-input
              :placeholder="$t('dataManage.layerObj.prompt1')"
              style="width: 60%;"
              v-model="insertData.cnName"
            ></el-input>
          </el-form-item>
          <!-- 英文名称 -->
          <el-form-item :label="$t('dataManage.layerObj.englishName')">
            <el-input
              :placeholder="$t('dataManage.layerObj.prompt6')"
              style="width: 60%;"
              v-model="insertData.enName"
            ></el-input>
          </el-form-item>
          <!-- 菜单类型 -->
          <el-form-item :label="$t('dataManage.layerObj.layerType')">
            <el-select
@@ -269,12 +267,50 @@
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            v-show="insertData.isLayer == 1"
            :label="$t('dataManage.layerObj.serviceResources')"
          >
            <el-button
              size="small"
              class="serviceButton"
              @click="setServiceChange('0')"
              :class="{serviceActive: insertData.service === '0'}"
            >{{$t('dataManage.layerObj.isfalse')}}</el-button>
            <el-button
              size="small"
              class="serviceButton"
              @click="setServiceChange('1')"
              :class="{serviceActive: insertData.service === '1'}"
            >{{$t('dataManage.layerObj.istrue')}}</el-button>
          </el-form-item>
          <!-- 菜单名称 -->
          <el-form-item :label="$t('dataManage.layerObj.layerName')">
            <el-input
              :disabled="insertData.service =='1'"
              :placeholder="$t('dataManage.layerObj.prompt1')"
              style="width: 60%;"
              v-model="insertData.cnName"
            ></el-input>
          </el-form-item>
          <!-- 英文名称 -->
          <el-form-item :label="$t('dataManage.layerObj.englishName')">
            <el-input
              :disabled="insertData.service =='1'"
              :placeholder="$t('dataManage.layerObj.prompt6')"
              style="width: 60%;"
              v-model="insertData.enName"
            ></el-input>
          </el-form-item>
          <!-- 数据类型 -->
          <el-form-item
            v-show="insertData.isLayer == 1"
            :label="$t('dataManage.layerObj.serviceType')"
          >
            <el-select
              :disabled="insertData.service =='1'"
              style="width: 60%;"
              v-model="insertData.type"
              :placeholder="$t('dataManage.layerObj.prompt3')"
@@ -294,26 +330,17 @@
            :label="$t('dataManage.layerObj.serviceAddress')"
          >
            <el-input
              :disabled="insertData.service =='1'"
              :placeholder="$t('dataManage.layerObj.prompt4')"
              style="width: 60%;"
              v-model="insertData.url"
            ></el-input>
          </el-form-item>
          <!-- 英文表名 -->
          <!-- <el-form-item :label="$t('dataManage.layerObj.enTableName')">
            <el-input
              :placeholder="$t('dataManage.layerObj.prompt6')"
              style="width: 60%;"
              v-model="insertData.enName"
            ></el-input>
          </el-form-item> -->
          <!-- 是否显示 -->
          <el-form-item
            v-show="insertData.isLayer == 1"
            :label="$t('dataManage.layerObj.displayOrNot')"
          >
            <el-radio
              v-model="insertData.status"
              label="0"
@@ -341,10 +368,99 @@
            <el-button
              type="info"
              size="small"
              @click="submitCancel( )"
            >{{$t('common.cancel')}}</el-button>
          </el-form-item>
        </el-form>
      </div>
    </el-dialog>
    <el-dialog
      :visible.sync="dialogService"
      width="50%"
      :show-close="false"
    >
      <div style="width: 100%;max-height: 63vh;overflow-y: auto; ">
        <div style="  display: flex; justify-content: space-between;">
          <div> <el-input
              size="small"
              v-model="listData.name"
            > <i
                slot="suffix"
                class="el-input__icon el-icon-search"
                @click="setServiceQuery"
              ></i></el-input></div>
          <div>
            <el-button
              type="info"
              size="small"
              @click="setServiceRest"
            >{{$t('common.reset')}}</el-button>
            <el-button
              type="primary"
              size="small"
              @click="setServiceConfirm"
            >{{$t('common.confirm')}}</el-button>
            <el-button
              type="info"
              size="small"
              @click="setServiceCanel"
            >{{$t('common.cancel')}}</el-button>
          </div>
        </div>
        <el-table
          ref="multipleTable"
          :data="tableData"
          @select="selectChange"
        >
          <el-table-column
            type="selection"
            width="55"
          >
          </el-table-column>
          <el-table-column
            align="center"
            type="index"
            :label="$t('common.index')"
            width="70px"
          />
          <el-table-column
            align="center"
            prop="cnName"
            :label="$t('dataManage.layerObj.resourceName')"
          />
          <el-table-column
            align="center"
            prop="category"
            :label="$t('dataManage.layerObj.serviceType')"
            :formatter="setResCategory"
          />
          <el-table-column
            align="center"
            prop="type"
            :label="$t('dataManage.layerObj.dataType')"
            :formatter="setResType"
          />
        </el-table>
        <div
          class="pagination_box"
          style="margin-top: 15px"
        >
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="listData.pageIndex"
            :page-sizes="[10, 50,100,200]"
            :page-size="listData.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="listData.count"
          >
          </el-pagination>
        </div>
      </div>
    </el-dialog>
  </div>
@@ -357,7 +473,8 @@
  layer_update,
  layer_updates,
  layer_insert,
  layer_delete
  layer_delete,
  res_selectByPageAndCount,
} from "../../api/api";
import $ from 'jquery'
import { getToken } from '../../utils/auth';
@@ -370,7 +487,6 @@
    MyBread,
  },
  data() {
    return {
      filterText: null,
      formInline: {
@@ -386,6 +502,7 @@
        isLayer: null,
        category: null,
        status: null,
        service: '0'
      },
      serveType: null,
      dataType: null,
@@ -408,6 +525,15 @@
      newNode: null,
      newData: [],
      oriData: [],
      dialogService: false,
      listData: {
        pageIndex: 1,
        pageSize: 10,
        count: 0,
        name: ''
      },
      tableData: [],
      multipleSelection: [],
    };
  },
  watch: {
@@ -416,6 +542,139 @@
    },
  },
  methods: {
    setServiceConfirm() {
      if (this.multipleSelection.length <= 0) {
        return this.$message("未选择资源数据");
      }
      var url;
      if (this.multipleSelection.status == 1) {
        url = this.multipleSelection.url;
      } else if (this.multipleSelection.status == 2) {
        var token = getToken()
        url = BASE_URL + this.multipleSelection.proxy.replaceAll('{token}', token);
      }
      if (this.dialogVisible) {
        this.insertData.cnName = this.multipleSelection.cnName;
        this.insertData.enName = this.multipleSelection.enName;
        this.insertData.type = this.multipleSelection.type;
        this.insertData.resid = this.multipleSelection.id
        this.insertData.url = url;
        this.insertData.service = '1'
      } else {
        this.formInline.cnName = this.multipleSelection.cnName;
        this.formInline.enName = this.multipleSelection.enName;
        this.formInline.type = this.multipleSelection.type;
        this.formInline.resid = this.multipleSelection.id
        this.formInline.url = url;
        this.formInline.service = '1'
      }
      this.dialogService = false
    },
    setServiceRest() {
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
        count: 0,
        name: ''
      }
      this.getServiceData();
    },
    setServiceQuery() {
      this.listData.pageIndex = 1;
      this.listData.pageSize = 10;
      this.listData.count = 0;
      this.getServiceData();
    },
    setServiceCanel() {
      this.dialogService = false;
      this.multipleSelection = [];
      this.tableData == [];
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
        count: 0,
        name: ''
      }
    },
    selectChange(selection, row) {
      this.multipleSelection = row
      if (selection.length > 1) {
        let del_row = selection.shift()
        this.$refs.multipleTable.toggleRowSelection(del_row, false)
      }
    },
    setResType(row, column) {
      switch (row.type) {
        case 0:
          return "URL"
          break;
        case 1:
          return "TMS"
          break;
        case 2:
          return "WMTS"
          break;
        case 3:
          return "WMS"
          break;
        case 4:
          return "WFS"
          break;
        case 5:
          return "Tileset"
          break;
        default:
          return ""
          break;
      }
    },
    setResCategory(row, column) {
      switch (row.category) {
        case 0:
          return "其他"
          break;
        case 1:
          return "GisServer"
          break;
        case 2:
          return "GeoServer"
          break;
        case 3:
          return "数简"
          break;
        default:
          return ""
          break;
      }
    },
    handleSizeChange(val) {
      this.listData.pageSize = val;
      this.getServiceData();
    },
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getServiceData();
    },
    setServiceChange(res) {
      if (res == '1') {
        this.setServiceRest()
      }
    },
    async getServiceData() {
      const data = await res_selectByPageAndCount(this.listData);
      if (data.code != 200) {
        return this.$message.error("资源数据获取失败");
      }
      this.tableData = data.result;
      this.listData.count = data.count;
      this.dialogService = true
    },
    //向上向下移动
    setEditNode(res) {
      let node = this.$refs.tree.getCurrentNode();
@@ -516,6 +775,10 @@
      this.getLayerTree();
    },
    submitCancel() {
      this.dialogVisible = false;
      this.insertStart();
    },
    async submitForm() {
      var val = this.insertData;
      val.status = parseInt(val.status);
@@ -579,6 +842,8 @@
        isLayer: null,
        category: null,
        status: null,
        service: '0',
        status: '1'
      }
    },
    //修改数据
@@ -637,6 +902,11 @@
      this.formInline = result;
      this.formInline.isLayer = res.isLayer.toString();
      this.formInline.status = result.status.toString();
      if (res.resid && res.resid > 0) {
        this.formInline.service = '1'
      } else {
        this.formInline.service = '0'
      }
      // this.formInline.isProject = result.isProject.toString();
    },
    //图层列表点击事件
@@ -780,6 +1050,15 @@
    }
  }
}
.serviceButton {
  background: transparent !important;
  color: #dcdfe6;
}
.serviceActive {
  background: transparent !important;
  color: #46a6ff;
  border: 1px solid #46a6ff;
}
/deep/ .el-input__suffix {
  top: 50%;
  transform: translateY(-50%);