月球大数据地理空间分析展示平台-【中台】
Surpriseplus
2023-08-25 fe774d1b86848f213e766fa40f96e753802a642d
资源查询前端页面修改
已添加4个文件
已修改7个文件
已删除1个文件
4703 ■■■■ 文件已修改
public/config/config.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/d.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/展开菜单.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/收起菜单.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapView/moonMap.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/auth.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataUpdata copy 2.vue 3183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataUpdata copy.vue 989 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataUpdata.vue 199 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/resourceQuery/resourceQuery.vue 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/config/config.js
@@ -1,13 +1,13 @@
//var isWeb = location.hostname.indexOf("103.85.165.") > -1;
var isWeb = false;
var isWeb = location.hostname.indexOf("103.85.165.") > -1;
// var isWeb = false;
var is_production = false;//判断是否为生产环境
var webHost = isWeb ? "103.85.165.99" + ":8052" : '192.168.20.83' + ":8088";
var webHost = isWeb ? "103.85.165.99" + ":28888" : '192.168.20.83' + ":8888";
// var webHost = isWeb ? "103.85.165.99" + ":8052" : '192.168.20.106' + ":9000";
var fmeHost = isWeb ? "103.85.165.99" + ":8051" : '192.168.20.83' + ":88";
var iisHost = isWeb ? "103.85.165.99" + ":8050" : '192.168.20.83' + ":80";
const webUrl = true ? "/middle" : "";
//SDK许可
var StaticFileBaseUrl = webUrl + "/CIMSDK/";
src/assets/img/d.png
src/assets/img/Õ¹¿ª²Ëµ¥.png
src/assets/img/ÊÕÆð²Ëµ¥.png
src/assets/lang/en.js
@@ -184,6 +184,7 @@
      UploadType: 'Receipt Type',
      dataSpecialty: 'Data Specialty',
      storageDirectory: 'Storage Directory',
      resourceDirectory: 'Resource Directory',
      dataVersion: 'Data Version',
      selectData: 'Select Data',
      selectMetadata: 'Select Metadata',
@@ -192,7 +193,10 @@
      coordinateSystem: 'Coordinate System',
      fileExtension: "File extension",
      inspectionItems: "Inspection items",
      code: 'Code'
      code: 'Code',
      sensorType: 'Sensor Type',
      collectionTime: 'Collection Time',
      metadataType: 'Metadata Type'
    },
    metadataManage: 'information management',
    uploadManage: 'Release management',
src/assets/lang/zh.js
@@ -175,6 +175,8 @@
      UploadType: '入库类型',
      dataSpecialty: '数据专业',
      storageDirectory: '存储目录',
      resourceDirectory: '资源目录',
      dataVersion: '数据版本',
      selectData: '选择数据',
      selectMetadata: '选择元数据',
@@ -183,7 +185,10 @@
      coordinateSystem: '坐标系',
      fileExtension: "文件扩展名",
      inspectionItems: "检查项",
      code: '编码'
      code: '编码',
      sensorType: '传感器类型',
      collectionTime: '采集时间',
      metadataType: '元数据类型'
    },
    metadataManage: '信息管理',
src/components/MapView/moonMap.vue
@@ -102,7 +102,7 @@
          ellipsoid: Cesium.Ellipsoid.MOON,
        }),
      });
      console.log(urlTemplateImageryProvider);
      // this.layerList.push({
      //   id: id,
      //   layerData: urlTemplateImageryProvider._primitive,
@@ -133,7 +133,7 @@
      );
      //页面初始化
      this.earthCtrl = new SmartEarth.EarthCtrl("cesiumContainer", {
        StaticFileBaseUrl: StaticFileBaseUrl,
        //  StaticFileBaseUrl: StaticFileBaseUrl,
        ellipsoidCoordinates: "MOON",
      });
      this.earthCtrl.environment.disableAllEffect();
src/utils/auth.js
@@ -26,7 +26,7 @@
const TokenKey = 'Admin-Token';
export function getToken() {
  console.log(window.sessionStorage.getItem(TokenKey));
  // console.log(window.sessionStorage.getItem(TokenKey));
  return window.sessionStorage.getItem(TokenKey);
}
src/views/datamanage/dataUpdata copy 2.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3183 @@
<template>
  <div
    class="subpage_Box"
    v-loading="loading"
    element-loading-background="rgba(0, 0, 0, 0.8)"
    :element-loading-text="loadText"
  >
    <My-bread :list="[
        `${$t('dataManage.dataManage')}`,
        `${$t('dataManage.dataUpdata')}`,
      ]"></My-bread>
    <el-divider />
    <el-tabs
      type="card"
      v-model="activeTabName"
      @tab-click="handleTabClick"
    >
      <!-- ä¸Šä¼ æ•°æ® -->
      <el-tab-pane
        :label="$t('dataManage.dataUpObj.uploaddata')"
        name="first"
      >
        <div
          class="inquire subpage_Div"
          ref="container"
        >
          <el-form
            :inline="true"
            :model="formInline"
            class="demo-form-inline"
          >
            <!-- å…¥åº“类型 -->
            <el-form-item
              :label="$t('dataManage.dataUpObj.UploadType')"
              style="margin-right: 2%"
              size="small"
            >
              <el-select
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.uploadType"
                @change="uploadTypeChange"
                :popper-append-to-body="false"
                placeholder="请选择"
              >
                <!--                <el-option
                                  v-for="item in uploadOption"
                                  :key="item.value"
                                  :label="item.label"
                                  :value="item.value"
                                ></el-option>-->
                <el-option
                  :label="$t('shuJuGuanLi.pselect.dFile')"
                  value="v1"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.dFiles')"
                  value="v2"
                />
              </el-select>
            </el-form-item>
            <!-- å­˜å‚¨ç›®å½• -->
            <el-form-item
              style="margin-right: 2%"
              v-show="uploadFlag"
              :label="$t('dataManage.dataUpObj.storageDirectory')"
              size="small"
            >
              <el-select
                ref="multiSelect"
                :popper-append-to-body="false"
                v-model="formInline.dirName"
                :disabled="tableData.length == 0 ? false : true"
              >
                <el-option
                  :value="formInline.dirid"
                  :label="formInline.dirName"
                  style=" height:auto"
                >
                  <el-tree
                    ref="tree"
                    :data="catalogOption"
                    node-key="id"
                    :props="cascader"
                    @node-click="catalogChange"
                  />
                </el-option>
              </el-select>
              <!-- <el-cascader
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.dirid"
                :options="catalogOption"
                @change="catalogChange"
                ref="selectcascader"
                :props="cascader"
              ></el-cascader>  -->
            </el-form-item>
            <!-- é¡¹ç›®åç§° -->
            <el-form-item
              style="margin-right: 2%"
              v-show="!uploadFlag"
              :label="$t('dataManage.dataUpObj.entryName')"
              size="small"
            >
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.entryId"
                @change="entryNameChange"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in entryOption"
                  :key="item.id"
                  :label="item.name"
                  :value="item.name"
                ></el-option>
              </el-select>
            </el-form-item>
            <!-- æ•°æ®ç‰ˆæœ¬ -->
            <el-form-item
              :label="$t('dataManage.dataUpObj.dataVersion')"
              style="margin-right: 2%"
              size="small"
            >
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.verid"
                :placeholder="$t('common.choose')"
                size="small"
              >
                <el-option
                  v-for="item in verOption"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <!-- æ•°æ®ä¸“业 -->
            <!-- <el-form-item
              :label="$t('dataManage.dataUpObj.dataSpecialty')"
              style="margin-right: 2%"
              size="small"
            >
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.specialtyId"
                :placeholder="$t('common.choose')"
              >
                <el-option
                  :label="$t('shuJuGuanLi.pselect.SurveyingAndMapping')"
                  value="测量专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.SurveysDiscipline')"
                  value="勘察专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.GeologicalDisasterSpecialty')"
                  value="地灾专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.CavernSpecialty')"
                  value="洞库专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.LineDiscipline')"
                  value='线路专业'
                />
              </el-select>
            </el-form-item> -->
            <!-- åæ ‡ç³» -->
            <el-form-item
              v-show="false"
              :label="$t('dataManage.dataUpObj.coordinateSystem')"
              style="margin-right: 3%"
              size="small"
            >
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.coordinateId"
                :placeholder="$t('common.choose')"
              >
                <el-option
                  v-for="item in coordinateOption"
                  :key="item.epsgcode"
                  :label="item.coordinate"
                  :value="item.epsgcode"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <div class="flex_box">
              <div style="margin-right: auto">
                <!-- é€‰æ‹©æ•°æ® -->
                <el-form-item size="small">
                  <el-link
                    :disabled="tableData.length == 0 ? false : true"
                    v-show="formInline.specialtyData == '请选择数据'"
                    @click="setSelectFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('dataManage.dataUpObj.selectData') }}
                  </el-link>
                  <el-link
                    v-show="formInline.specialtyData != '请选择数据'"
                    @click="restSelectFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('common.reset') }}
                  </el-link>
                  <input
                    size="small"
                    id="selectDataFile"
                    type="file"
                    name="file"
                    multiple="multiple"
                    :accept="formInline.selectFileType"
                    @change="handleSelectFileChange"
                    style="display: none"
                  ></input>
                </el-form-item>
                <el-form-item size="small">
                  <el-input
                    :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')"
                    v-model="formInline.specialtyData"
                    style="width:200px;"
                    disabled
                  >
                  </el-input>
                </el-form-item>
                <!-- é€‰æ‹©å…ƒæ•°æ® -->
                <el-form-item
                  v-show="uploadFlag"
                  style="padding-left: 16px"
                >
                  <el-link
                    :disabled="tableData.length == 0 ? false : true"
                    v-show="formInline.metaData == '请选择元数据'"
                    @click="setMetaFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('dataManage.dataUpObj.selectMetadata') }}
                  </el-link>
                  <el-link
                    v-show="formInline.metaData != '请选择元数据'"
                    @click="restMetaFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('common.reset') }}
                  </el-link>
                  <input
                    id="metaDataFile"
                    type="file"
                    name="file"
                    multiple="multiple"
                    accept=".xls,.xlsx"
                    style="display: none"
                    @change="handleMetaFileChange"
                  ></input>
                </el-form-item>
                <el-form-item
                  v-show="uploadFlag"
                  size="small"
                >
                  <el-input
                    :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')"
                    v-model="formInline.metaData"
                    style="width:200px;"
                    disabled
                  >
                  </el-input>
                </el-form-item>
                <!-- é€‰æ‹©WBS数据 -->
                <el-form-item v-show="!uploadFlag">
                  <el-link
                    :disabled="tableData.length == 0 ? false : true"
                    v-show="formInline.wbsData == '请选择WBS数据'"
                    @click="setWBSFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('dataManage.dataUpObj.selectWBSData') }}
                  </el-link>
                  <el-link
                    :disabled="tableData.length == 0 ? false : true"
                    v-show="formInline.wbsData != '请选择WBS数据'"
                    @click="restWBSFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('common.reset') }}
                  </el-link>
                  <input
                    id="wbsDataFile"
                    type="file"
                    name="file"
                    multiple="multiple"
                    accept=".xls,.xlsx"
                    style="display: none"
                    @change="handleWBSFileChange"
                  ></input>
                </el-form-item>
                <el-form-item v-show="!uploadFlag">
                  <el-input
                    placeholder="请选择WBS数据"
                    v-model="formInline.wbsData"
                    style="width:210px;"
                    disabled
                  >
                  </el-input>
                </el-form-item>
              </div>
              <div>
                <el-form-item>
                  <!-- ä¸Šä¼  -->
                  <el-button
                    v-if="menuStatus.upload"
                    :disabled="tableData.length == 0 ? false : true"
                    @click="setFileUpload"
                    size="small"
                    icon="el-icon-upload"
                    type="success"
                  >{{
                      $t('common.upload')
                    }}
                  </el-button>
                  <!-- åˆ é™¤ -->
                  <el-button
                    v-if="menuStatus.delete"
                    :disabled="multipleSelection.length == 0 ? true : false"
                    icon="el-icon-delete"
                    size="small"
                    @click="setFileDelete"
                    type="danger"
                  >{{ $t('common.delete') }}
                  </el-button>
                  <!-- å…¥åº“ -->
                  <el-button
                    v-if="menuStatus.insert"
                    @click="setFileWare"
                    size="small"
                    :disabled="tableData.length == 0 ?  true: false"
                    icon="el-icon-folder-add"
                    type="warning"
                  >{{ $t('common.Warehousin') }}
                  </el-button>
                  <!-- è´¨æ£€ -->
                  <el-button
                    style="margin-right:-9px"
                    v-if="menuStatus.insert"
                    :disabled="multipleSelection.length == 0 ? true : false"
                    type="info"
                    size="small"
                    icon="el-icon-folder-checked"
                    @click="handleQuayTestClick()"
                  >{{ $t('common.quayTest') }}
                  </el-button>
                </el-form-item>
              </div>
            </div>
          </el-form>
        </div>
        <!-- ä¸Šä¼ æ•°æ®åˆ—表 -->
        <div class="dividing-line"></div>
        <div
          class="table_box"
          :style="styleVar"
        >
          <el-table
            style="width:100%"
            border
            :data="tableData"
            @selection-change="handleSelectionChange"
            height="calc(100% - 57px)"
          >
            <el-table-column
              type="selection"
              width="55"
            />
            <el-table-column
              align="center"
              type="index"
              :label="$t('common.index')"
              width="70px"
            />
            <el-table-column
              align="center"
              prop="name"
              :label="$t('common.name')"
            />
            <el-table-column
              align="center"
              prop="sizes"
              :label="$t('common.size')"
              :formatter="changeSizeFile"
            />
            <el-table-column
              align="center"
              prop="status"
              label="状态"
            />
            <el-table-column
              align="center"
              prop="code"
              label="状态"
              v-if="false"
            />
            <el-table-column
              label="操作"
              width="120"
            >
              <template slot-scope="scope">
                <el-button
                  v-if="menuStatus.download"
                  v-show="scope.row.code != null"
                  @click="handerLogClick(scope.row)"
                  type="primary"
                  size="mini"
                  plain
                > æ—¥å¿—
                </el-button>
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-tab-pane>
      <!-- å…¥åº“数据清单 -->
      <el-tab-pane
        :label="$t('dataManage.dataUpObj.receiptdata')"
        name="second"
      >
        <div
          class="inquire subpage_Div"
          ref="container1"
        >
          <el-form
            :inline="true"
            :model="formWarehousing"
            class="demo-form-inline"
          >
            <div class="flex_box">
              <div style="margin-right: auto">
                <el-form-item
                  size="small"
                  :label="$t('dataManage.dataUpObj.describe')"
                >
                  <el-input
                    v-model="formWarehousing.name"
                    :placeholder="$t('shuJuGuanLi.lable1')"
                    style="width: 200px;"
                  ><i
                      slot="suffix"
                      class="el-icon-search"
                      @click="setWarehouseSearch"
                      style="padding-right: 8px"
                    ></i></el-input>
                </el-form-item>
              </div>
              <div>
                <el-form-item>
                  <el-button
                    v-if="menuStatus.upload"
                    :disabled="multipleDelete.length == 0 ? true : false"
                    @click="setEnclosure"
                    icon="el-icon-folder-opened"
                    type="success"
                    size="small"
                  >{{ $t('common.enclosure') }}
                  </el-button>
                  <el-button
                    v-if="menuStatus.delete"
                    @click="setWarehouseDel"
                    icon="el-icon-folder-delete"
                    type="danger"
                    size="small"
                  >{{ $t('common.delete') }}
                  </el-button>
                  <!--                  <el-button
                      @click="setWarehouseSearch"
                      icon="el-icon-upload"
                      size="small"
                      class="primary"
                  >{{
                      $t('common.iquery')
                    }}
                  </el-button>-->
                  <el-button
                    @click="setWarehouseReset"
                    icon="el-icon-folder-add"
                    size="small"
                    type="info"
                  >{{ $t('common.reset') }}
                  </el-button>
                </el-form-item>
              </div>
            </div>
          </el-form>
        </div>
        <!-- å…¥åº“ -->
        <div class="dividing-line"></div>
        <div
          class="table_box"
          :style="styleVar1"
        >
          <el-table
            ref="filterTable"
            :data="waretableData"
            style="width: 100%"
            border
            height="calc(100% - 57px)"
            @selection-change="handleDelteChange"
          >
            <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>
            <el-table-column
              align="center"
              :label="$t('common.name')"
              width="120"
            >
              <template slot-scope="scope">
                <span v-if="scope.row.ismeta > 0">
                  <el-link
                    style="color:#409eff"
                    title="源数据查询"
                    @click="setQueryMetaData(scope.row)"
                    target="_blank"
                  >{{ scope.row.name }}</el-link>
                </span>
                <span v-else-if="scope.row.metaid > 0">
                  <el-link
                    style="color:#409eff"
                    title="元数据查询"
                    @click="setMetaDataQuery(scope.row)"
                    target="_blank"
                  >{{ scope.row.name }}</el-link>
                </span>
                <span v-else>{{ scope.row.name }}</span>
              </template>
            </el-table-column>
            <el-table-column
              align="center"
              prop="dirName"
              :label="$t('dataManage.dataUpObj.catalogue')"
              width="300"
            />
            <el-table-column
              align="center"
              prop="depName"
              :label="$t('dataManage.dataUpObj.company')"
              width="200"
            />
            <el-table-column
              align="center"
              prop="verName"
              :label="$t('dataManage.dataUpObj.versionNo')"
            />
            <el-table-column
              align="center"
              prop="type"
              :label="$t('common.type')"
            />
            <el-table-column
              align="center"
              prop="sizes"
              :label="$t('common.size')"
              :formatter="changeSizeFile"
            />
            <el-table-column
              align="center"
              :label="$t('dataManage.dataUpObj.tableName')"
            >
              <template slot-scope="scope">
                <a
                  class="scopeRowColor"
                  @click="detail(scope.row)"
                >{{ scope.row.tab }}</a>
              </template>
            </el-table-column>
            <el-table-column
              align="center"
              prop="rows"
              :label="$t('common.lineNuber')"
            />
            <el-table-column
              align="center"
              :label="$t('common.dataStatus')"
              :formatter="stateFormat"
            >
            </el-table-column>
            <el-table-column
              align="
                  center"
              prop="desc"
              :label="$t('dataManage.dataUpObj.describe')"
            />
            <el-table-column
              align="center"
              prop="uname"
              :label="$t('dataManage.vmobj.createonuser')"
            />
            <el-table-column
              align="center"
              prop="createTime"
              :label="$t('dataManage.vmobj.createontime')"
              :formatter="changetimeFile"
              width="100"
            />
          </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="count"
            >
            </el-pagination>
          </div>
        </div>
      </el-tab-pane>
    </el-tabs>
    <!-- è´¨æ£€å¼¹çª— -->
    <el-dialog
      title="数据质检"
      :visible.sync="quayTestVisible"
      width="70%"
      :modal="false"
      :before-close="handleQuayTestCloseDown"
    >
      <div class="dialogDiv">
        <el-form
          :inline="true"
          :model="quayTestForms "
          class="demo-form-inline"
        >
          <el-form-item :label="$t('dataManage.dataUpObj.dataSpecialty')">
            <el-input
              disabled
              v-model="quayTestForms.sjzy"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.dataUpObj.storageDirectory')">
            <el-input
              disabled
              style="width:400px"
              v-model="quayTestForms.names"
            ></el-input>
          </el-form-item>
        </el-form>
        <el-divider />
        <div class="dialogContent">
          <div
            class="ContBox"
            v-show="quayTestShow.checkAttrs"
          >
            <el-checkbox
              checked
              disabled
            >属性检查:(*dlg*.gdb+*地形图**.dwg)
            </el-checkbox>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkMath"
          >
            <el-checkbox
              checked
              disabled
            >数学基础检查:(.shp,.dlg)
            </el-checkbox>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkDecorate"
          >
            <el-checkbox
              checked
              disabled
            >图面整饰检查:(.dwg)
            </el-checkbox>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkXls"
          >
            <el-checkbox
              checked
              disabled
            >表格数据检查:(.xls/.xlsx)
            </el-checkbox>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkOrigin"
          >
            <el-checkbox
              checked
              disabled
            >原点检查:(*剖面图*.dwg)
            </el-checkbox>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkMeta"
          >
            <el-checkbox
              checked
              disabled
            >元数据检查:(*元数据*.xls/.xlsx)
            </el-checkbox>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkTopology"
          >
            <el-form
              ref="quayForms"
              :model="quayTestForms"
              class="demo-form-inline"
            >
              <el-form-item>
                <el-checkbox
                  checked
                  disabled
                >拓扑检查:(*地形图*.dwg)
                </el-checkbox>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">容差(默认0.001):</div>
                  <div>
                    <el-input v-model="quayTestForms.tolerance"></el-input>
                  </div>
                </div>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">高程点间距上限(默认20):</div>
                  <div>
                    <el-input v-model="quayTestForms.gcdOffset"></el-input>
                  </div>
                </div>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">测区范围(默认200):</div>
                  <div>
                    <el-input v-model="quayTestForms.rangeOffset"></el-input>
                  </div>
                </div>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">控制点间距上限(默认100):</div>
                  <div>
                    <el-input v-model="quayTestForms.kzdOffset"></el-input>
                  </div>
                </div>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">悬挂线最大距离(默认0.005):</div>
                  <div>
                    <el-input v-model="quayTestForms.xgMax"></el-input>
                  </div>
                </div>
              </el-form-item>
            </el-form>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkDom"
          >
            <el-form
              ref="quayForms"
              :model="quayTestForms"
              class="demo-form-inline"
            >
              <el-form-item>
                <el-checkbox
                  checked
                  disabled
                >栅格检查:(.tif/.img)
                </el-checkbox>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">坐标系:</div>
                  <div>
                    <el-input v-model="quayTestForms.coordinateSystem"></el-input>
                  </div>
                </div>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">分辨率(默认0.2):</div>
                  <div>
                    <el-input v-model="quayTestForms.imgResolution"></el-input>
                  </div>
                </div>
              </el-form-item>
            </el-form>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkDem"
          >
            <el-form
              ref="quayForms"
              :model="quayTestForms"
              class="demo-form-inline"
            >
              <el-form-item>
                <el-checkbox
                  checked
                  disabled
                >高程检查:(.tif/.img)
                </el-checkbox>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">高程中误差(默认5):</div>
                  <div>
                    <el-input v-model="quayTestForms.demTolerance"></el-input>
                  </div>
                </div>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">高程值突变率(默认200):</div>
                  <div>
                    <el-input v-model="quayTestForms.demChangeRate"></el-input>
                  </div>
                </div>
              </el-form-item>
            </el-form>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkLaz"
          >
            <el-form
              ref="quayForms"
              :model="quayTestForms"
              class="demo-form-inline"
            >
              <el-form-item>
                <el-checkbox
                  checked
                  disabled
                >点云检查:(.laz + *激光点云*.xls/.xlsx)
                </el-checkbox>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">点云密度(默认1):</div>
                  <div>
                    <el-input v-model="quayTestForms.lazDensity"></el-input>
                  </div>
                </div>
              </el-form-item>
            </el-form>
          </div>
          <div
            class="ContBox"
            v-show="quayTestShow.checkOsgb"
          >
            <el-form
              ref="quayForms"
              :model="quayTestForms"
              class="demo-form-inline"
            >
              <el-form-item>
                <el-checkbox
                  checked
                  disabled
                >OSGB检查:(.osgb + *倾斜摄影*.xls/.xlsx)
                </el-checkbox>
              </el-form-item>
              <el-form-item>
                <div class="ContDiv">
                  <div class="contLable">高程中误差(默认0.2):</div>
                  <div>
                    <el-input v-model="quayTestForms.imgResolution"></el-input>
                  </div>
                </div>
              </el-form-item>
            </el-form>
          </div>
        </div>
      </div>
      <span
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          class="elBotton"
          size="small"
          @click="quayTestVisible = false"
        >取 æ¶ˆ</el-button>
        <el-button
          class="elBotton"
          size="small"
          @click="commonQuayTest"
        >ç¡® å®š</el-button>
      </span>
    </el-dialog>
    <!-- æ•´ä½“文件质检弹窗 -->
    <el-dialog
      title="数据质检"
      :visible.sync="testQuayVisible"
      :modal="false"
      :before-close="handleTestQuayCloseDown"
    >
      <el-form
        :model="formCheckAll"
        label-position="top"
      >
        <el-form-item label="项目名称">
          <el-input
            disabled
            v-model="formCheckAll.xmmc"
            style="width:85%"
          ></el-input>
        </el-form-item>
        <el-form-item label="所属专业">
          <el-input
            disabled
            v-model="formCheckAll.sjzy"
            style="width:85%"
          ></el-input>
        </el-form-item>
        <el-form-item
          v-show="formCheckAll.isDiZai"
          label="地灾类型"
        >
          <el-select
            v-model="formCheckAll.diZaiType"
            placeholder="请选择"
            style="width:85%"
          >
            <el-option
              v-for="item in disOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <span
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          class="elBotton"
          size="small"
          @click="testQuayVisible = false"
        >取 æ¶ˆ</el-button>
        <el-button
          class="elBotton"
          size="small"
          @click="commonTestQuay()"
        >ç¡® å®š</el-button>
      </span>
    </el-dialog>
    <!-- ifream下载文件地址 -->
    <iframe
      id="downFrame"
      src=""
      style="display: none; border: 0; padding: 0; height: 0; width: 0"
    ></iframe>
    <!-- æ•°æ®åŒ¹é… -->
    <el-dialog
      :title="$t('dataManage.datawarehousing')"
      :visible.sync="dialogWarehousing"
      width="70%"
    >
      <div class="dialogBox">
        <div
          class="transFarBox subpage_Div"
          style="border: 1px solid #E4E7ED;"
        >
          <ul>
            <li
              @click="singleElection(item)"
              v-for="(item, i) in tableWareOne"
              :class="{ active: activeName == item.eventid }"
            >{{ item.tab }} ({{ item.type }})
            </li>
          </ul>
        </div>
        <div class="tarnsbtton">
          <div>
            <div style="padding:2%">
              <el-link><i class="el-icon-plus"></i></el-link>
            </div>
          </div>
        </div>
        <div
          class="transFarBox subpage_Div"
          style="border: 1px solid #E4E7ED;"
        >
          <ul>
            <li
              @click="singleElection2(item)"
              v-for="(item, i) in tableWareTwo"
              :class="{ active: activeName2 == item.entity }"
            >{{ item.tabDesc }} ( {{ item.ns }}.{{ item.tab }})
            </li>
          </ul>
        </div>
        <div class="tarnsbtton">
          <div>
            <div style="padding:2%">
              <el-link @click="setWareTableChangeLeft"><i class="el-icon-d-arrow-left"></i></el-link>
            </div>
            <br />
            <div style="padding:2%">
              <el-link><i
                  @click="setWareTableChangeRight"
                  class="el-icon-d-arrow-right"
                ></i></el-link>
            </div>
          </div>
        </div>
        <div
          class="transFarBox subpage_Div"
          style="border: 1px solid #E4E7ED;"
        >
          <ul>
            <li
              @click="singleElection3(i)"
              v-for="(item, i) in tableWareThree"
              :class="{ active: activeName3 ==( item.tab+i)}"
            >{{ item.tab }} ( {{ item.tabDesc }} {{ item.ns }}.{{ item.tabs }} )
            </li>
          </ul>
        </div>
      </div>
      <span
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          size="small"
          @click="autoMatchWare"
          type="primary"
        >自动匹配</el-button>
        <el-button
          size="small"
          type="info"
          @click="setInsrtWareTableClose "
        >取 æ¶ˆ</el-button>
        <el-button
          size="small"
          type="primary"
          @click="setInsrtWareTable"
        >ç¡® å®š</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :title="$t('common.details')"
      :visible.sync="dialogVisible"
      width="70%"
    >
      <div style="height: 500px; overflow: auto">
        <el-table
          ref="filterTable"
          :data="dbTableData"
          height="90%"
          border
          style="width: 100%"
        >
          <el-table-column
            width="60"
            type="index"
            :label="$t('common.index')"
          />
          <el-table-column
            v-for="(item, index) in attributeData"
            :key="index"
            :label="item.alias"
            :prop="item.field"
            show-overflow-tooltip
            align="center"
          ></el-table-column>
        </el-table>
        <div
          style="margin-top: 15px"
          class="pagination_box"
        >
          <el-pagination
            @size-change="handleLoaderSizeChange"
            @current-change="handleLoaderCurrentChange"
            :current-page="listLoader.pageIndex"
            :page-sizes="[10, 50, 100, 200]"
            :page-size="listLoader.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="count1"
          >
          </el-pagination>
        </div>
      </div>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      :title="sc.label1"
      :visible.sync="jindudialogVisible"
      width="30%"
    >
      <div>
        <div>
          {{sc.label2}}
        </div>
        <div>
          <el-progress
            :percentage="jindutiao"
            :format="format"
          ></el-progress>
        </div>
      </div>
    </el-dialog>
    <el-dialog
      :title="$t('common.details')"
      :visible.sync="enclosureVisible"
      :show-close="false"
    >
      <span
        style="font-size:20px"
        class="scopeRowColor"
      >{{ enclosureTitle }}不能上传附件是否继续</span>
      <span
        slot="footer"
        class="dialog-footer"
      >
        <el-button @click="enclosureVisible = false">取 æ¶ˆ</el-button>
        <el-button
          type="primary"
          @click="uploadAnFiles"
        >ç»§ç»­</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :title="fromQueryMeta.title"
      :visible.sync="queryMetaFlag"
      width="70%"
    >
      <div style="height: 500px; overflow: auto;width:100%; ">
        <el-form
          :inline="true"
          :model="fromQueryMeta"
          class="demo-form-inline"
        >
          <el-form-item>
            <el-input
              size="small"
              v-model="fromQueryMeta.name"
              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')"
              suffix-icon="el-icon-edit"
            ></el-input>
          </el-form-item>
          <el-form-item>
            <el-button
              type="primary"
              size="small"
              @click="setSearchMetaData()"
            >查询</el-button>
            <el-button
              type="info"
              size="small"
              @click="setRestMetaData()"
            >重置</el-button>
          </el-form-item>
        </el-form>
        <el-table
          ref="filterTable"
          :data="metaDataTable"
          style="width: 100%"
          height="calc(100% - 130px)"
        >
          <el-table-column
            align="center"
            type="index"
            :label="$t('common.index')"
            width="70px"
          ></el-table-column>
          <el-table-column
            align="center"
            prop="name"
            :label="$t('common.name')"
            width="120"
          >
          </el-table-column>
          <el-table-column
            align="center"
            prop="dirName"
            :label="$t('dataManage.dataUpObj.catalogue')"
            width="300"
          />
          <el-table-column
            align="center"
            prop="depName"
            :label="$t('dataManage.dataUpObj.company')"
            width="200"
          />
          <el-table-column
            align="center"
            prop="verName"
            :label="$t('dataManage.dataUpObj.versionNo')"
          />
          <el-table-column
            align="center"
            prop="type"
            :label="$t('common.type')"
          />
          <el-table-column
            align="center"
            prop="sizes"
            :label="$t('common.size')"
            :formatter="changeSizeFile"
          />
          <el-table-column
            align="center"
            :label="$t('dataManage.dataUpObj.tableName')"
          >
            <template slot-scope="scope">
              <a
                class="scopeRowColor"
                @click="detail(scope.row)"
              >{{ scope.row.tab }}</a>
            </template>
          </el-table-column>
          <el-table-column
            align="center"
            prop="rows"
            :label="$t('common.lineNuber')"
          />
          <el-table-column
            align="center"
            prop="desc"
            :label="$t('dataManage.dataUpObj.describe')"
          />
        </el-table>
        <div
          style="margin-top: 15px"
          class="pagination_box"
        >
          <el-pagination
            @size-change="handleMetaSizeChange"
            @current-change="handMetaCurrentChange"
            :current-page="listMetaData.pageIndex"
            :page-sizes="[10, 50, 100, 200]"
            :page-size="listMetaData.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="listMetaData.count"
          >
          </el-pagination>
        </div>
      </div>
    </el-dialog>
    <el-dialog
      :title="fromQueryMeta.title"
      :visible.sync="queryMetaFlag1"
      width="70%"
    >
      <div style="height: 65vh; width: 100%">
        <el-table
          ref="filterTable"
          :data="metaDataTable1"
          style="width: 100%"
          height="100%"
        >
          <el-table-column
            align="center"
            type="index"
            :label="$t('common.index')"
            width="70px"
          ></el-table-column>
          <el-table-column
            align="center"
            prop="name"
            :label="$t('common.name')"
            width="120"
          >
          </el-table-column>
          <el-table-column
            align="center"
            prop="dirName"
            :label="$t('dataManage.dataUpObj.catalogue')"
            width="300"
          />
          <el-table-column
            align="center"
            prop="depName"
            :label="$t('dataManage.dataUpObj.company')"
            width="200"
          />
          <el-table-column
            align="center"
            prop="verName"
            :label="$t('dataManage.dataUpObj.versionNo')"
          />
          <el-table-column
            align="center"
            prop="type"
            :label="$t('common.type')"
          />
          <el-table-column
            align="center"
            prop="sizes"
            :label="$t('common.size')"
            :formatter="changeSizeFile"
          />
          <el-table-column
            align="center"
            :label="$t('dataManage.dataUpObj.tableName')"
          >
            <template slot-scope="scope">
              <a
                class="scopeRowColor"
                @click="detail(scope.row)"
              >{{
                  scope.row.tab
                }}</a>
            </template>
          </el-table-column>
          <el-table-column
            align="center"
            prop="rows"
            :label="$t('common.lineNuber')"
          />
          <el-table-column
            align="center"
            prop="desc"
            :label="$t('dataManage.dataUpObj.describe')"
          />
        </el-table>
      </div>
    </el-dialog>
    <el-dialog
      :title="fromQueryMeta.title"
      :visible.sync="warehouseDialog"
      width="70%"
      :close-on-click-modal="false"
      :before-close="handleWarehouseClose"
    >
      <div style="height:65vh">
        <el-table
          ref="wareTable"
          :data="wareData"
          style="width: 100%"
          height="calc(100% - 1px)"
        >
          <el-table-column
            align="center"
            prop="name"
            :label="$t('common.name')"
          />
          <el-table-column
            align="center"
            prop="sizes"
            :label="$t('common.size')"
            :formatter="changeSizeFile"
          />
          <el-table-column
            align="center"
            prop="type"
            :label="$t('common.type')"
          />
          <el-table-column
            align="center"
            prop="msg"
            :label="$t('common.warehousResults')"
          />
        </el-table>
      </div>
    </el-dialog>
    <input
      name="file1"
      :accept="'.zip'"
      type="file"
      id="editimageFile"
      multiple="multiple"
      style="display: none"
      @change="uploadAnFilesChange"
    />
  </div>
</template>
<script>
import $ from "jquery";
import MyBread from "../../components/MyBread.vue";
import { getToken } from "@/utils/auth";
import {
  dataUpload_deleteMetas,
  dataUpload_insertFiles,
  dataUpload_selectByPageForUpload,
  dataUpload_selectCoords,
  dataUpload_selectDbData,
  dataUpload_selectFields,
  dataUpload_selectMappers,
  dataUpload_selectPageAndCountByPid,
  dataUpload_selectProject,
  dataUpload_selectTabs,
  dataUpload_selectTaskStatus,
  dataUpload_uploadChecks,
  dataUploadDeleteFiles,
  dataUploadSelectFiles,
  dataUploadSelectPath,
  dataUploadSelectVerByDirid,
  dataUpload_selectMetaById,
  selectdirTab,
} from "../../api/api";
export default {
  name: "dataUpdata",
  components: {
    MyBread,
  },
  data() {
    return {
      coordinateOption: [],
      disOptions: [
        {
          name: "崩塌治理",
          value: "崩塌治理",
        },
        {
          name: "不稳定斜坡治理",
          value: "不稳定斜坡治理",
        },
        {
          name: "地面塌陷治理",
          value: "地面塌陷治理",
        },
        {
          name: "高陡边坡治理",
          value: "高陡边坡治理",
        },
        {
          name: "泥石流治理",
          value: "泥石流治理",
        },
        {
          name: "水毁治理",
          value: "水毁治理",
        },
        {
          name: "滑坡治理",
          value: "滑坡治理",
        },
      ],
      testQuayVisible: false,
      formCheckAll: {
        names: null,
        sjzy: null,
        diZaiType: null,
        xmmc: null,
        isDiZai: null,
      },
      quayTestForms: {
        xmmc: null,
        names: null,
        sjzy: null,
        tolerance: "0.001",
        gcdOffset: "20",
        rangeOffset: "200",
        kzdOffset: "100",
        xgMax: "0.005",
        coordinateSystem: "CGCS2000/degree",
        imgResolution: "0.2",
        demTolerance: "5",
        demChangeRate: "200",
        lazDensity: "1",
      },
      quayTestShow: {
        checkOsgb: false,
        checkXls: false,
        checkLaz: false,
        checkDem: false,
        checkAttrs: false,
        checkTopology: false,
        checkDecorate: false,
        checkOrigin: false,
        checkDom: false,
        checkMath: false,
        checkMeta: false,
        checkMain: false,
      },
      quayTestVisible: false,
      multipleDelete: [],
      waretableData: [],
      listData: {
        pageIndex: 1,
        pageSize: 10,
        name: null,
      },
      count: 0,
      formWarehousing: { name: "" },
      multipleSelection: [],
      tableData: [],
      entryOption: [],
      uploadFlag: true,
      verOption: [],
      catalogOption: [],
      activeTabName: "first",
      uploadOption: [
        {
          value: "v1",
          label: "单文件上传",
        },
        {
          value: "v2",
          label: "项目整体上传",
        },
      ],
      formInline: {
        uploadType: "v1",
        dirid: null,
        specialtyId: "测量专业",
        specialtyData: "请选择数据",
        metaData: "请选择元数据",
        wbsData: "请选择WBS数据",
        entryId: null,
        selectFileType: "*.*",
        coordinateId: null,
        path: null,
        verid: null,
      },
      cascader: {
        label: "name",
        value: "id",
        children: "children",
        emitPath: false,
      },
      specialtyOption: [
        {
          value: "测量专业",
          label: "测量专业",
        },
        {
          value: "勘察专业",
          label: "勘察专业",
        },
        {
          value: "地灾专业",
          label: "地灾专业",
        },
        {
          value: "洞库专业",
          label: "洞库专业",
        },
      ],
      fileType: [],
      pathBak: null,
      progress: 0,
      setIntel: null,
      taskStatus: 0,
      dialogWarehousing: false,
      tableWareOne: [],
      tableWareTwo: [],
      tableWareThree: [],
      wareSelectOne: null,
      wareSelectTwo: null,
      activeName: "",
      activeName2: "",
      activeName3: "",
      wareTableFlag: null,
      insertWareList: null,
      loading: false,
      loadText: '',
      dbTableData: [],
      dialogVisible: false,
      listLoader: {
        dirid: null,
        pageIndex: 1,
        pageSize: 10,
      },
      count1: 0,
      attributeData: [],
      menuStatus: {
        delete: false,
        insert: false,
        update: false,
        upload: false,
        download: false,
      },
      jindutiao: 0,
      jindudialogVisible: false,
      jindutiaoname: [],
      enclosureData: [],
      enclosureVisible: false,
      enclosureTitle: "",
      tableHeight: 0,
      timer: 0,
      styleVar: {
        height: "calc(100% - 109px)",
      },
      styleVar1: {
        height: "calc(100% - 109px)",
      },
      metaFileData: [],
      listMetaData: {
        metaid: 0,
        name: "",
        pageIndex: 1,
        pageSize: 10,
        count: 0,
      },
      queryMetaFlag: false,
      fromQueryMeta: {
        title: "",
        name: "",
      },
      metaDataTable: [],
      queryMetaFlag1: false,
      metaDataTable1: [],
      getCheckedKeys: null,
      sc: {
        label1: '上传',
        label2: '文件上传进度:'
      },
      warehouseDialog: false,
      wareData: [],
    };
  },
  mounted() {
    //获取坐标系
    this.setCoordinateSystem();
    //获取项目名称
    this.setProjectName();
    //获取文件上传路径
    this.getFilePath();
    //权限获取
    this.getPerms();
    window.addEventListener("resize", this.onResize);
    this.calHeight();
    //获取目录
    this.getSelectdirTab();
  },
  beforeDestroy() {
    this.timer && clearTimeout(this.timer);
    window.removeEventListener("resize", this.onResize);
  },
  watch: {},
  methods: {
    stateFormat(row, column) {
      var val = ['shp', 'gdb', 'xls', 'xlsx']
      if (val.indexOf(row.type) > -1 && row.rows > 0) {
        return '已上传,已入库'
      } else if (val.indexOf(row.type) > -1 && row.rows == 0) {
        return '已上传,未入库'
      } else {
        return '已上传'
      }
    },
    setRestMetaData() {
      this.fromQueryMeta.name = "";
      this.listMetaData.name = this.fromQueryMeta.name;
      this.listMetaData.pageIndex = 1;
      this.listMetaData.pageSize = 10;
      this.startQueryMetaData();
    },
    setSearchMetaData() {
      this.listMetaData.name = this.fromQueryMeta.name;
      this.listMetaData.pageIndex = 1;
      this.listMetaData.pageSize = 10;
      this.startQueryMetaData();
    },
    //元数据页面切换
    handleMetaSizeChange(val) {
      this.listMetaData.pageIndex = 1;
      this.listMetaData.pageSize = val;
      this.startQueryMetaData();
    },
    //元数据页面切换
    handMetaCurrentChange(val) {
      this.listMetaData.pageIndex = val;
      this.startQueryMetaData();
    },
    //元数据查询
    async setMetaDataQuery(row) {
      this.fromQueryMeta.title = row.name;
      this.listMetaData = {
        id: row.metaid,
      };
      const data = await dataUpload_selectMetaById(this.listMetaData);
      if (data.code != 200) {
        return;
      }
      this.queryMetaFlag1 = true;
      this.metaDataTable1 = [data.result];
    },
    //元数据查询
    setQueryMetaData(row) {
      this.fromQueryMeta.title = row.name;
      this.listMetaData = {
        metaid: row.id,
        name: "",
        pageIndex: 1,
        pageSize: 10,
        count: 0,
      };
      this.startQueryMetaData();
      this.queryMetaFlag = true;
    },
    async startQueryMetaData() {
      const data = await dataUpload_selectPageAndCountByPid(this.listMetaData);
      if (data.code != 200) {
        return;
      }
      this.metaDataTable = data.result;
      this.listMetaData.count = data.count;
    },
    onResize() {
      this.timer && clearTimeout(this.timer);
      this.timer = setTimeout(() => {
        this.calHeight();
      }, 500);
    },
    calHeight() {
      this.$nextTick(() => {
        const rect = this.$refs.container.getBoundingClientRect();
        const rect1 = this.$refs.container1.getBoundingClientRect();
        this.tableHeight = `${rect.height + 40}px`;
        this.styleVar["height"] = `calc(100% - ${rect.height + 28}px)`;
        this.styleVar1["height"] = `calc(100% - ${rect1.height + 28}px)`;
      });
    },
    editFromDataClose() {
      this.updateFormdialog = false;
      this.$nextTick(() => {
        this.editForm = JSON.parse(this.initialForm);
      });
    },
    //附件变化
    uploadAnFilesChange() {
      var formData = new FormData();
      var fs = document.getElementById("editimageFile");
      if (fs.files.length == 0) {
        this.$message.error("请选择要上传的文件");
        return;
      }
      for (var i = 0, c = fs.files.length; i < c; i++) {
        formData.append("file", fs.files[i]); // fs.files[i].name,file
      }
      for (var i in this.enclosureData) {
        formData.append("ids", this.enclosureData[i]);
      }
      const that = this;
      this.sc = {
        label1: '上传',
        label2: '文件上传进度:'
      }
      that.jindudialogVisible = true;
      that.$set(this, "jindutiaoname", "附件上传");
      that.$set(this, "jindutiao", 0);
      this.loading = true;
      $.ajax(
        BASE_URL +
        "/dataUpload/uploadXlsAnnex?token=" +
        getToken() +
        "&path=" +
        this.formInline.path,
        {
          type: "post",
          data: formData,
          async: true,
          cache: false,
          processData: false,
          contentType: false,
          success: (rs) => {
            this.loading = false;
            if (rs.code != 200) {
              return this.$message.error("附件上传失败");
            }
            this.$set(this, "jindutiao", 100);
            this.$message({
              message: "附件上传成功",
              type: "success",
            });
          },
          error: (rs) => {
            this.loading = false;
            this.$message.error("附件上传失败");
          },
          xhr: function () {
            var myXhr = $.ajaxSettings.xhr();
            if (myXhr.upload) {
              //检查upload属性是否存在
              myXhr.upload.addEventListener(
                "progress",
                that.progressHandlingFunction,
                false
              ); //绑定progress事件的回调函数
            }
            return myXhr; //xhr对象返回给jQuery使用
          },
        }
      );
    },
    //选择上传附件的文件
    uploadAnFiles() {
      $("#editimageFile").click();
    },
    //上传附件
    uploadAnnex() {
    },
    //附件上传
    setEnclosure() {
      var enclosureData = [
        "bd.b_pac_hydrogeology",
        "bd.b_pac_frozensoil",
        "bd.b_pac_geologic_hazard",
        "bd.b_pac_marine_meteorological",
        "bd.b_pac_meteorological",
        "bs.m_equipment_nameplate",
        "bs.m_hydraulic_protection",
        "bs.m_marker",
        "bs.s_explorationpoint",
      ];
      var std = [];
      this.enclosureData = [];
      this.enclosureTitle = "";
      for (var i in this.multipleDelete) {
        var row = this.multipleDelete[i];
        if (row.tab && row.rows && enclosureData.indexOf(row.tab) > -1) {
          this.enclosureData.push(row.id);
        } else {
          std.push(row.name);
        }
      }
      if (std.length != 0) {
        this.enclosureTitle = std.toString();
        this.enclosureVisible = true;
      } else {
        this.uploadAnFiles();
      }
    },
    //权限配置
    showPermsMenu(res) {
      switch (res.tag) {
        case "/delete":
          this.menuStatus.delete = true;
          break;
        case "/insert":
          this.menuStatus.insert = true;
          break;
        case "/update":
          this.menuStatus.update = true;
          break;
        case "/upload":
          this.menuStatus.upload = true;
          break;
        case "/download":
          this.menuStatus.download = true;
          break;
      }
    },
    getPerms() {
      var val = this.$store.state.currentPerms;
      var permsEntity = this.$store.state.permsEntity;
      if (!permsEntity || !permsEntity.length) {
        getPerms().then((res) => {
          if (res.code == 200) {
            permsEntity = res.result;
          }
        });
      }
      for (var i = 0; i < permsEntity.length; i++) {
        if (val === permsEntity[i].perms) {
          this.showPermsMenu(permsEntity[i]);
        }
      }
    },
    //数据列表清单-table ç‚¹å‡»
    handleLoaderSizeChange(val) {
      this.listLoader.pageIndex = 1;
      this.listLoader.pageSize = val;
      this.getDataLoaderSelectDbData();
    },
    handleLoaderCurrentChange(val) {
      this.listLoader.pageIndex = val;
      this.getDataLoaderSelectDbData();
    },
    async detail(res) {
      var val = res.tab.split(".");
      const data = await dataUpload_selectFields({
        ns: val[0],
        tab: val[1],
      });
      if (data.code != 200) {
        this.$message.error("字段列表调用失败");
        return;
      }
      var val_data = data.result;
      for (var i in val_data) {
        if (val_data[i].alias.indexOf("ID") != -1) {
          val_data[i].alias = val_data[i].alias.replace("ID", "");
        }
      }
      this.dialogVisible = true;
      this.attributeData = val_data;
      this.listLoader = {
        id: res.id,
        pageIndex: 1,
        pageSize: 10,
      };
      this.getDataLoaderSelectDbData();
    },
    async getDataLoaderSelectDbData() {
      const data1 = await dataUpload_selectDbData(this.listLoader);
      if (data1.code != 200) {
        this.$message.error("字段列表调用失败");
        return;
      }
      var val = data1.result;
      for (var i in val) {
        val[i].createuser = val[i].createName;
        val[i].depid = val[i].depName;
        val[i].dirid = val[i].dirName;
        val[i].verid = val[i].verName;
        val[i].updateuser = val[i].updateName;
        if (val[i].createtime != null) {
          val[i].createtime = this.changetimeLayer(val[i].createtime);
        }
        if (val[i].updatetime != null) {
          val[i].updatetime = this.changetimeLayer(val[i].updatetime);
        }
      }
      this.dbTableData = data1.result;
      this.count1 = data1.count;
    },
    changetimeLayer(res) {
      var time = new Date(res);
      var y = time.getFullYear();
      var m = time.getMonth() + 1;
      var d = time.getDate();
      var h = time.getHours();
      var mm = time.getMinutes();
      var s = time.getSeconds();
      return (
        y +
        '-' +
        this.add0(m) +
        '-' +
        this.add0(d) +
        ' ' +
        h +
        ':' +
        mm +
        ':' +
        s
      );
    },
    //自动匹配取消
    setInsrtWareTableClose() {
      this.dialogWarehousing = false;
      this.activeName = "";
      this.activeName2 = "";
      this.activeName3 = "";
      this.tableWareThree = [];
      this.tableWareTwo = [];
      this.tableWareOne = [];
      this.insertWareList = null;
      this.tableData = [];
    },
    //自动匹配确认
    async setInsrtWareTable() {
      this.loading = true;
      this.dialogWarehousing = false;
      this.loadText = "数据入库中,请等待..."
      if (this.tableWareThree.length != 0) {
        for (var i in this.tableWareThree) {
          var tabs = this.tableWareThree[i].tabs;
          for (var j in this.insertWareList) {
            if (this.insertWareList[j].tabs == tabs) {
              this.insertWareList[j].entity = this.tableWareThree[i].entity;
            }
          }
        }
      }
      for (var i in this.metaFileData) {
        this.insertWareList.filter((res) => {
          if (res.name == this.metaFileData[i]) {
            res.isMeta = true;
          }
        });
      }
      const res = await dataUpload_insertFiles(
        JSON.stringify(this.insertWareList)
      );
      if (res.code != 200) {
        this.$message.error("数据入库失败");
        return;
      }
      this.$message({
        message: "数据入库成功",
        type: "success",
      });
      this.loading = false;
      this.loadText = ""
      if (res.result.length > 0) {
        this.warehouseDialog = true;
        this.wareData = res.result;
      }
      this.setInsrtWareTableClose();
    },
    handleWarehouseClose() {
      this.warehouseDialog = false;
      this.wareData = [];
    },
    //自动匹配
    autoMatchWare() {
      var val1 = this.tableWareOne;
      var val2 = this.tableWareTwo;
      var std = [];
      for (var i = 0; i < val1.length; i++) {
        const stdTab = this.setSplitWare(val1[i].tab);
        for (var j = 0; j < val2.length; j++) {
          if (val2[j].tab == stdTab) {
            std.push(val1[i].tab);
            val1[i].entity = val2[j].entity;
            val1[i].tabDesc = val2[j].tabDesc;
            val1[i].tabs = val2[j].tab;
            val1[i].ns = val2[j].ns;
            this.tableWareThree.push(val1[i]);
          }
        }
      }
      std.forEach((item) => {
        this.tableWareOne = this.tableWareOne.filter(
          (items) => items.tab !== item
        );
      });
    },
    setSplitWare(res) {
      if (res.indexOf(".shp") != -1) {
        return res.split(".shp").join("");
      } else if (res.indexOf(".mdb") != -1) {
        return res.split(".mdb").join("");
      } else if (res.indexOf(".gdb") != -1) {
        return res.split(".gdb").join("");
      } else {
        return res;
      }
    },
    //数据匹配向左
    setWareTableChangeLeft() {
      var res = this.wareTableFlag;
      var value1 = this.tableWareThree[res];
      value1.entity = null;
      value1.tabDesc = null;
      if (this.tableWareOne.indexOf(value1) != -1) {
      } else {
        this.tableWareOne.push(value1);
        this.tableWareThree.splice(res, 1);
        this.activeName = "";
        this.activeName2 = "";
        this.activeName3 = "";
      }
    },
    //数据匹配向右
    setWareTableChangeRight() {
      this.wareSelectOne.entity = this.wareSelectTwo.entity;
      this.wareSelectOne.tabDesc = this.wareSelectTwo.tabDesc;
      this.wareSelectOne.tabs =
        this.wareSelectTwo.ns + "." + this.wareSelectTwo.tab;
      if (this.tableWareThree.indexOf(this.wareSelectOne) != -1) {
      } else {
        this.tableWareThree.push(this.wareSelectOne);
        this.tableWareOne.forEach((value, index, array) => {
          if (value.tab == this.wareSelectOne.tab) {
            this.tableWareOne.splice(index, 1);
          }
        });
        this.activeName = "";
        this.activeName2 = "";
        this.activeName3 = "";
      }
    },
    //查询所有的表
    async getDataLoaderSelectTabs() {
      const res = await dataUpload_selectTabs();
      if (res.code != 200) {
        this.$message.error("数据请求失败");
        return;
      }
      this.tableWareTwo = res.result;
    },
    //数据匹配左侧点击事件
    singleElection(row) {
      this.wareSelectOne = row;
      this.activeName = row.eventid;
    },
    //数据匹配左侧中间点击事件
    singleElection2(row) {
      this.wareSelectTwo = row;
      this.activeName2 = row.entity;
    },
    //数据匹配左侧右侧点击事件
    singleElection3(res) {
      this.wareTableFlag = res;
      this.activeName3 = this.tableWareThree[res].tab + res;
    },
    //开启数据匹配
    showWareHousing() {
      this.getDataLoaderSelectTabs();
      this.dialogWarehousing = true;
    },
    //数据入库
    async setFileWare() {
      if (this.pathBak != null) {
        //是否有质检方案
        if (this.formInline.uploadType == "v1") {
          //单文件上传
          var std = [];
          for (var i in this.tableData) {
            if (this.tableData[i].name.indexOf(".zip") != -1) {
              if (this.tableData[i].code != null) {
                std.push(this.tableData[i].name);
              }
            }
          }
          if (std.length != 0) {
            return this.$message.error(
              std.toString() + ",未质检或质检失败,不能入库"
            );
          }
        } else if (this.formInline.uploadType == "v2") {
          //整体项目上传
          if (this.tableData.length != 2) {
            return this.$message.error("请保留一个zip数据,一个WBS数据进行入库");
          }
          var std = [];
          for (var i in this.tableData) {
            if (this.tableData[i].code != null) {
              std.push(this.tableData[i].name);
            }
          }
          if (std.length != 0) {
            return this.$message.error(
              std.toString() + ",未质检或质检失败,不能入库"
            );
          }
        }
      }
      this.loading = true;
      var obj = {
        dirid: this.formInline.dirid,
        epsgCode: this.formInline.coordinateId,
        path: this.formInline.path,
        verid: this.formInline.verid,
      };
      this.loadText = "数据映射查询中,请等待..."
      //查询映射
      const data = await dataUpload_selectMappers(obj);
      if (data.code != 200) {
        return this.$message.error("数据映射失败");
      }
      this.loading = false;
      this.loadText = " "
      var std = [];
      var result = data.result;
      this.insertWareList = data.result;
      for (var i in result) {
        if (result[i].type == "shp" || result[i].type == "gdb") {
          std.push(result[i]);
        }
      }
      if (std.length != 0) {
        this.tableWareOne = std;
        this.showWareHousing();
      } else {
        this.setInsrtWareTable();
      }
    },
    //下载日志
    handerLogClick(res) {
      for (var i in res.code) {
        var url =
          BASE_URL +
          "/dataUpload/downloadResult?token=" +
          getToken() +
          "&id=" +
          res.code[i];
        $("#downFrame").attr("src", url).click();
      }
    },
    //整体文件质检提交
    commonTestQuay() {
      this.testQuayVisible = false;
      // if (this.formCheckAll.diZaiType != "NO") {
      //   this.formCheckAll.isDiZai = "YES";
      // }
      this.sc = {
        label1: '质检',
        label2: '文件质检进度:'
      }
      this.jindudialogVisible = true;
      this.loading = false;
      this.$set(this, "jindutiao", 0);
      this.getStartTestQuayTaskStatus();
    },
    //整体文件多条数据质检
    async getStartTestQuayTaskStatus() {
      if (
        this.multipleSelection == 0 ||
        this.taskStatus == this.multipleSelection.length
      ) {
        this.jindudialogVisible = false;
        this.loading = false;
        return;
      }
      for (var i in this.multipleSelection) {
        var name = this.multipleSelection[i].name;
        var path = this.multipleSelection[i].path;
        if (name.indexOf(".zip") != -1) {
          this.formCheckAll.zipPath = path;
        } else if (name.indexOf(".xls") != -1) {
          this.formCheckAll.wbsPath = path;
        } else if (name.indexOf(".xlsx") != -1) {
          this.formCheckAll.wbsPath = path;
        }
      }
      this.formCheckAll.sjfl = '数字化成果'
      const data = await dataUpload_uploadChecks(this.formCheckAll);
      if (data.code != 200) {
        this.$message.error("数据质检提交失败");
        this.taskStatus++;
        this.getStartTestQuayTaskStatus();
        return;
      }
      var reset = data.result;
      this.progress = 0;
      this.setIntel = setInterval(() => {
        this.sendTaskStatus(reset);
      }, 5000);
    },
    //单文件数据质检提交
    async commonQuayTest() {
      // this.loading = true;
      this.quayTestVisible = false;
      this.taskStatus = 0;
      this.getStartTaskStatus();
      this.sc = {
        label1: '质检',
        label2: '文件质检进度:'
      }
      this.jindudialogVisible = true;
      this.$set(this, "jindutiao", 0);
    },
    //单文件多条数据质检
    async getStartTaskStatus() {
      const that = this;
      if (
        this.multipleSelection == 0 ||
        this.taskStatus == this.multipleSelection.length
      ) {
        this.loading = false;
        that.jindudialogVisible = false;
        return;
      }
      this.quayTestForms.zipPath = this.multipleSelection[this.taskStatus].path;
      if (this.quayTestForms.zipPath.indexOf(".zip") == -1) {
        this.taskStatus++;
        this.getStartTaskStatus();
      } else {
        this.quayTestForms.names = this.pathBak;
        var value = this.getCheckedKeys
        var bak = value.data.fullName.split("\\");
        this.quayTestForms.xmmc = bak[this.taskStatus];
        this.quayTestForms.sjzy = this.formInline.specialtyId;
        this.quayTestForms.zipPath =
          this.multipleSelection[this.taskStatus].path;
        this.quayTestForms.sjfl = '数字化成果'
        const data = await dataUpload_uploadChecks(this.quayTestForms);
        if (data.code != 200) {
          this.$message.error("数据质检提交失败");
          this.taskStatus++;
          this.getStartTaskStatus();
          return;
        }
        var reset = data.result;
        this.progress = 0;
        this.setIntel = setInterval(() => {
          this.getselectTaskStatus(reset);
        }, 5000);
      }
    },
    async getselectTaskStatus(res) {
      var std = 0;
      for (var i = 0; i < res.length; i++) {
        const data = await dataUpload_selectTaskStatus({ id: res[i] });
        std += data.progress;
        if (data.status == 5) {
        } else {
          if (data.status == 1 && data.resultFile == null) {
            //质检成功
            for (var i in this.tableData) {
              if (
                this.tableData[i].path ==
                this.multipleSelection[this.taskStatus].path
              ) {
                this.tableData[i].status = "质检成功";
              }
            }
            // if (this.progress == 1) {
            clearInterval(this.setIntel);
            this.setIntel = null;
            this.taskStatus++;
            this.getStartTaskStatus();
            // }
          } else {
            //任务失败
            for (var i in this.tableData) {
              if (
                this.tableData[i].path ==
                this.multipleSelection[this.taskStatus].path
              ) {
                this.tableData[i].status = "质检失败";
              }
            }
            for (var i in this.tableData) {
              for (var j in this.multipleSelection) {
                if (this.tableData[i].path == this.multipleSelection[j].path) {
                  this.tableData[i].code = res;
                }
              }
            }
            clearInterval(this.setIntel);
            this.setIntel = null;
            this.taskStatus++;
            this.getStartTaskStatus();
          }
        }
      }
      this.progress = std / (res.length * 100);
      for (var i in this.tableData) {
        if (
          this.tableData[i].path == this.multipleSelection[this.taskStatus].path
        ) {
          this.$set(this, "jindutiao", parseInt(this.progress * 100));
          this.tableData[i].status = parseInt(this.progress * 100) + "%";
        }
      }
    },
    async sendTaskStatus(res) {
      var std = 0;
      for (var i = 0; i < res.length; i++) {
        const data = await dataUpload_selectTaskStatus({ id: res[i] });
        std += data.progress;
        if (data.status == 5) {
        } else {
          if (data.status == 1 && data.resultFile == null) {
            //质检成功
            for (var i in this.tableData) {
              for (var j in this.multipleSelection) {
                if (this.tableData[i].path == this.multipleSelection[j].path) {
                  this.tableData[i].status = "质检成功";
                }
              }
            }
            // if (this.progress == 1) {
            clearInterval(this.setIntel);
            this.setIntel = null;
            this.loading = false;
            // }
          } else {
            //任务失败
            for (var i in this.tableData) {
              for (var j in this.multipleSelection) {
                if (this.tableData[i].path == this.multipleSelection[j].path) {
                  this.tableData[i].status = "质检失败";
                }
              }
            }
            for (var i in this.tableData) {
              for (var j in this.multipleSelection) {
                if (this.tableData[i].path == this.multipleSelection[j].path) {
                  this.tableData[i].code = res;
                }
              }
            }
            clearInterval(this.setIntel);
            this.setIntel = null;
            this.loading = false;
            // this.taskStatus++;
            // this.getStartTestQuayTaskStatus()
          }
        }
      }
      this.progress = std / (res.length * 100);
      // for (var i in this.tableData) {
      //   if (this.tableData[i].path == this.multipleSelection[this.taskStatus].path) {
      //     this.tableData[i].status = parseInt(this.progress * 100) + "%";
      //   }
      // }
      this.$set(this, "jindutiao", parseInt(this.progress * 100));
      for (var i in this.tableData) {
        for (var j in this.multipleSelection) {
          if (this.tableData[i].path == this.multipleSelection[j].path) {
            this.tableData[i].status = parseInt(this.progress * 100) + "%";
          }
        }
      }
      //   if (data.resultFile != null) {
      //     sdr.push(res[i])
      //   }
      //   if (data.resultFile != null || data.status == 0 || data.status == 3 || data.status == 7) {
      //     clearInterval(this.setIntel)
      //     this.setIntel = null;
      //     for (var i in this.tableData) {
      //       for (var j in this.multipleSelection) {
      //         if (this.tableData[i].path == this.multipleSelection[j].path) {
      //           this.tableData[i].status = "任务失败";
      //         }
      //       }
      //     }
      //   }
      //   std += data.progress
      // }
      // this.progress = std / (res.length * 100);
      // for (var i in this.tableData) {
      //   for (var j in this.multipleSelection) {
      //     if (this.tableData[i].path == this.multipleSelection[j].path) {
      //       this.tableData[i].status = parseInt(this.progress * 100) + "%";
      //     }
      //   }
      // }
      // if (this.progress == 1) {
      //   this.loading = false;
      //   if (sdr.length != 0) {
      //     for (var i in this.tableData) {
      //       for (var j in this.multipleSelection) {
      //         if (this.tableData[i].path == this.multipleSelection[j].path) {
      //           this.tableData[i].code = sdr;
      //         }
      //       }
      //     }
      //   }
      //   clearInterval(this.setIntel)
      //   this.setIntel = null;
    },
    //删除上传的文件
    async setFileDelete() {
      var data = JSON.stringify(this.multipleSelection);
      const res = await dataUploadDeleteFiles(data);
      if (res.code != 200) {
        this.$message.error("删除失败");
        return;
      }
      this.getFileLength();
    },
    //清除所有input File;
    clearFileSelect() {
      this.formInline.specialtyData = "请选择数据";
      document.getElementById("selectDataFile").value = "";
      this.formInline.metaData = "请选择元数据";
      document.getElementById("metaDataFile").value = "";
      this.formInline.wbsData = "请选择WBS数据";
      document.getElementById("wbsDataFile").value = "";
    },
    //获取上传文件数量
    async getFileLength() {
      const res = await dataUploadSelectFiles(this.formInline.path);
      if (res.code != 200) {
        this.$message.error("文件上传数据获取失败");
        return;
      }
      if (res.result == null) {
        this.tableData = [];
      } else {
        for (var i in res.result) {
          res.result[i].status = "--";
          res.result[i].code = null;
        }
        this.tableData = res.result;
      }
    },
    //上传文件
    setFileUpload() {
      var token = getToken();
      var formData = new FormData();
      var fs1 = document.getElementById("selectDataFile");
      if (fs1.files.length == 0) {
        return this.$message.error("请选择需要上传的数据文件");
      }
      var fs2 = null;
      if (this.formInline.uploadType == "v1") {
        //单文件项目上传
        fs2 = document.getElementById("metaDataFile");
        if (this.pathBak != null && this.pathBak.indexOf("checkMain") > -1) {
          if (fs2.files.length == 0) {
            return this.$message.error("请选择需要上传的元数据文件");
          }
        }
      } else if (this.formInline.uploadType == "v2") {
        //整体项目上传
        fs2 = document.getElementById("wbsDataFile");
        if (fs2.files.length == 0) {
          return this.$message.error("请选择需要上传的WBS数据文件");
        }
      }
      for (var i = 0, c = fs1.files.length; i < c; i++) {
        formData.append(fs1.files[i].name, fs1.files[i]);
        this.fileType.push({ name: fs1.files[i].name, type: "selectData" });
      }
      if (fs2 != null) {
        for (var i = 0, c = fs2.files.length; i < c; i++) {
          formData.append(fs2.files[i].name, fs2.files[i]);
          if (this.formInline.uploadType == "v1") {
            this.fileType.push({ name: fs2.files[i].name, type: "metaData" });
          } else if (this.formInline.uploadType == "v2") {
            this.fileType.push({ name: fs2.files[i].name, type: "wbsData" });
          }
        }
      }
      const that = this;
      that.jindudialogVisible = true;
      let listval = [];
      formData.forEach((key, val) => {
        listval.push({
          name: val,
        });
      });
      that.$set(this, "jindutiaoname", listval);
      that.$set(this, "jindutiao", 0);
      // this.loading = true;
      $.ajax(
        BASE_URL +
        "/dataUpload/uploadFiles?token=" +
        token +
        "&path=" +
        this.formInline.path,
        {
          type: "post",
          data: formData,
          async: true,
          cache: false,
          processData: false,
          contentType: false,
          success: (rs) => {
            this.loading = false;
            if (rs.code != 200) {
              return this.$message.error("数据上传失败");
            }
            this.getFileLength();
            this.$set(this, "jindutiao", 100);
            this.$message({
              message: "上传成功",
              type: "success",
            });
            this.clearFileSelect();
          },
          error: (rs) => {
            this.loading = false;
            this.$message.error("数据上传失败");
          },
          xhr: function () {
            var myXhr = $.ajaxSettings.xhr();
            if (myXhr.upload) {
              //检查upload属性是否存在
              myXhr.upload.addEventListener(
                "progress",
                that.progressHandlingFunction,
                false
              ); //绑定progress事件的回调函数
            }
            return myXhr; //xhr对象返回给jQuery使用
          },
        }
      );
    },
    progressHandlingFunction(event) {
      var loaded = event.loaded; //已上传
      var loaded = Math.floor(100 * (event.loaded / event.total) - 1); //计算已经上传的百分比
      $("#prog").html(loaded + "%"); //应用到显示UI,可根据自己需要修改
      this.jindutiao = loaded;
      this.$set(this, "jindutiao", loaded);
    },
    format(percentage) {
      // return percentage === 100 ? "上传完毕" : `${percentage}%`;
      var label;
      if (this.sc.label1 == "上传") {
        label = "上传完毕"
      } else {
        label = `${percentage}%`
      }
      return percentage === 100 ? label : `${percentage}%`;
    },
    //获取文件上传路径
    async getFilePath() {
      const res = await dataUploadSelectPath();
      if (res.code != 200) {
        this.$message.error("文件上传路径获取失败");
        return;
      }
      this.formInline.path = res.result;
    },
    //项目名称切换
    entryNameChange(res) {
      var val = this.entryOption.filter((rs) => {
        if (rs.name == res) {
          return rs;
        }
      });
      this.pathBak = val[0].checks;
      this.formInline.dirid = val[0].id;
      this.getselectVerByDirid();
    },
    //获取项目名称
    async setProjectName() {
      const data = await dataUpload_selectProject();
      if (data.code != 200) {
        this.$message.error("项目列表获取失败");
        return;
      }
      this.entryOption = data.result;
      if (this.entryOption.length > 0) {
        this.formInline.entryId = this.entryOption[0].name;
        this.formInline.dirid = this.entryOption[0].id;
      }
      this.getselectVerByDirid();
    },
    //获取所有坐标系
    async setCoordinateSystem() {
      const data = await dataUpload_selectCoords();
      if (data.code != 200) {
        this.$message.error("坐标系列表获取失败");
        return;
      }
      this.coordinateOption = data.result;
      this.formInline.coordinateId = this.coordinateOption[0].epsgcode;
    },
    //WBS数据选择
    setWBSFile() {
      $("#wbsDataFile").click();
    },
    //重置WPS选择
    restWBSFile() {
      this.formInline.wbsData = "请选择WBS数据";
      document.getElementById("wbsDataFile").value = "";
    },
    //WBS数据Change事件
    handleWBSFileChange(event) {
      var std = [];
      var len = event.currentTarget.files.length;
      for (var i = 0; i < len; i++) {
        var f = event.currentTarget.files[i];
        std.push(f.name);
      }
      this.formInline.wbsData = std.toString();
    },
    //数据质检弹窗关闭--项目整体
    handleTestQuayCloseDown() {
      this.$confirm("确认关闭?")
        .then((_) => {
          this.closeTestQuayCloseDialog();
        })
        .catch((_) => {
        });
    },
    closeTestQuayCloseDialog() {
      this.testQuayVisible = false;
    },
    //数据质检弹窗关闭--单文件
    handleQuayTestCloseDown() {
      this.$confirm("确认关闭?")
        .then((_) => {
          this.closeQuayTestCloseDialog();
        })
        .catch((_) => {
        });
    },
    closeQuayTestCloseDialog() {
      this.quayTestVisible = false;
    },
    //数据质检点击事件
    handleQuayTestClick() {
      if (this.pathBak == null) {
        return this.$message("无质检方案");
      }
      if (this.multipleSelection.length == 0) {
        return this.$message("请选择需要质检的文件");
      }
      if (this.formInline.uploadType == "v1") {
        var value = this.getCheckedKeys
        var fileType = value.data.fullName;
        this.quayTestForms.names = fileType;
        this.quayTestForms.sjzy = this.formInline.specialtyId;
        this.quayTestVisible = true;
      } else if (this.formInline.uploadType == "v2") {
        var fileZip = [];
        var fileExcel = [];
        for (var i in this.multipleSelection) {
          if (this.multipleSelection[i].name.indexOf(".zip") != -1) {
            fileZip.push(this.multipleSelection[i].name);
          } else if (this.multipleSelection[i].name.indexOf(".xls") != -1) {
            fileExcel.push(this.multipleSelection[i].name);
          } else if (this.multipleSelection[i].name.indexOf(".xlsx") != -1) {
            fileExcel.push(this.multipleSelection[i].name);
          }
        }
        if (fileZip.length != 1) {
          return this.$message("请选择一个整体项目文件");
        }
        if (fileExcel.length != 1) {
          return this.$message("请选择一个WBS文件");
        }
        this.formCheckAll.names = this.pathBak;
        var val = this.entryOption.filter((res) => {
          if (res.id == this.formInline.dirid) {
            return res;
          }
        });
        this.formCheckAll.xmmc = val[0].name;
        this.formCheckAll.sjzy = this.formInline.specialtyId;
        if (this.formCheckAll.sjzy.indexOf("地灾") != -1) {
          this.formCheckAll.isDiZai = "YES";
          this.formCheckAll.diZaiType = this.disOptions[0].value;
        } else {
          this.formCheckAll.isDiZai = "NO";
          this.formCheckAll.diZaiType = "NO";
        }
        this.testQuayVisible = true;
      }
    },
    //上传数据列表清单删除
    async setWarehouseDel() {
      this.loading = true;
      var std = [];
      for (var i in this.multipleDelete) {
        std.push(this.multipleDelete[i].id);
      }
      const res = await dataUpload_deleteMetas({ ids: std.toString() });
      this.loading = false;
      if (res.code != 200) {
        this.$message.error("删除失败");
      } else {
        this.$message({
          message: "删除成功",
          type: "success",
        });
        this.setStartWareTable();
      }
    },
    //上传数据列表清单查询
    setWarehouseSearch() {
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
        name: this.formWarehousing.name,
      };
      this.getAllWareTable();
    },
    //上传数据列表重置
    setWarehouseReset() {
      this.formWarehousing.name = "";
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
        name: null,
      };
      this.getAllWareTable();
    },
    //格式化时间
    changetimeFile(res) {
      var time = new Date(res.createTime);
      var y = time.getFullYear();
      var m = time.getMonth() + 1;
      var d = time.getDate();
      var h = time.getHours();
      var mm = time.getMinutes();
      var s = time.getSeconds();
      return (
        y +
        "-" +
        this.add0(m) +
        "-" +
        this.add0(d) +
        " " +
        h +
        ":" +
        mm +
        ":" +
        s
      );
    },
    //格式化时间
    add0(m) {
      return m < 10 ? "0" + m : m;
    },
    //大小值改变
    changeSizeFile(row, column, cellValue, index) {
      if (cellValue >= 1024) {
        return parseFloat(cellValue / 1204).toFixed(3) + "GB";
      } else {
        return cellValue + "MB";
      }
    },
    //上传数据列表清单选择
    handleDelteChange(val) {
      this.multipleDelete = val;
    },
    //上传数据列表清单初始化
    setStartWareTable() {
      // this.listData = {
      //   pageIndex: 1,
      //   pageSize: 10,
      //   name: null,
      // };
      this.listData.pageIndex = 1;
      this.listData.name = null;
      this.getAllWareTable();
    },
    //获取数据上传列表清单
    async getAllWareTable() {
      const res = await dataUpload_selectByPageForUpload(this.listData);
      if (res.code != 200) {
        this.$message.error("列表数据获取失败");
        return;
      }
      this.count = res.count;
      this.waretableData = res.result;
    },
    //数据上传列表清单page Count åˆ‡æ¢
    handleSizeChange(val) {
      this.listData.pageIndex = 1;
      this.listData.pageSize = val;
      this.getAllWareTable();
    },
    //数据上传列表清单page切换
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getAllWareTable();
    },
    //上传数据表格选择
    handleSelectionChange(res) {
      this.multipleSelection = res;
    },
    //选择数据文件切换
    handleSelectFileChange(event) {
      var std = [];
      var len = event.currentTarget.files.length;
      for (var i = 0; i < len; i++) {
        var f = event.currentTarget.files[i];
        std.push(f.name);
      }
      this.formInline.specialtyData = std.toString();
    },
    //选择元数据
    setMetaFile() {
      $("#metaDataFile").click();
    },
    //重置元数据
    restMetaFile() {
      this.formInline.metaData = "请选择元数据";
      document.getElementById("metaDataFile").value = "";
    },
    //选择元数据文件切换
    handleMetaFileChange(event) {
      var std = [];
      var len = event.currentTarget.files.length;
      for (var i = 0; i < len; i++) {
        var f = event.currentTarget.files[i];
        std.push(f.name);
      }
      this.formInline.metaData = std.toString();
      this.metaFileData = std;
    },
    //From表单初始化
    setFromStart() {
      this.formInline.verid = null;
      this.formInline.specialtyId = "测量专业";
      this.formInline.specialtyData = "请选择数据";
      this.formInline.metaData = "请选择元数据";
      this.formInline.entryId = null;
      this.formInline.selectFileType = "*.*";
      this.formInline.coordinateId = this.coordinateOption[0].epsgcode;
    },
    //选择数据
    setSelectFile() {
      $("#selectDataFile").click();
    },
    //重置数据
    restSelectFile() {
      this.formInline.specialtyData = "请选择数据";
      document.getElementById("selectDataFile").value = "";
    },
    //入库类型切换
    uploadTypeChange(res) {
      this.setFromStart();
      if (res == "v2") {
        this.uploadFlag = false;
        this.formInline.selectFileType = ".zip";
        this.formInline.entryId = this.entryOption[0].name;
        this.formInline.dirid = this.entryOption[0].id;
        this.getselectVerByDirid();
        this.pathBak = this.entryOption[0].checks;
      } else {
        this.getStartDirChecked(this.catalogOption);
        this.getselectVerByDirid();
        this.uploadFlag = true;
      }
      this.formInline.uploadType = res;
    },
    //版本号获取
    async getselectVerByDirid() {
      this.verOption = [];
      const res = await dataUploadSelectVerByDirid({
        dirid: this.formInline.dirid,
      });
      if (res.code != 200) {
        this.$message.error("版本列表获取失败");
        return;
      }
      this.verOption = res.result;
      this.formInline.verid = res.result[0].id;
    },
    //目录列表获取
    async getSelectdirTab() {
      const res = await selectdirTab();
      if (res.code != 200) {
        this.$message.error("目录列表获取失败");
        return;
      }
      this.catalogOption = this.treeData(res.result);
      this.formInline.dirName = this.catalogOption[0].name;
      this.formInline.dirid = this.catalogOption[0].id;
      // this.getStartDirChecked(this.catalogOption);
      this.getselectVerByDirid();
    },
    getStartDirChecked(res) {
      if (res.length != 0) {
        if (res[0].children == null || res[0].children == undefined) {
          this.formInline.dirid = res[0].id;
        } else {
          this.getStartDirChecked(res[0].children);
        }
      }
    },
    //单文件质检弹窗初始化
    startQuayTestForms() {
      (this.quayTestForms = {
        tolerance: "0.001",
        gcdOffset: "20",
        rangeOffset: "200",
        kzdOffset: "100",
        xgMax: "0.005",
        coordinateSystem: "CGCS2000/degree",
        imgResolution: "0.2",
        demTolerance: "5",
        demChangeRate: "200",
        lazDensity: "1",
        imgResolution: "0.2",
      }),
        (this.quayTestShow = {
          checkOsgb: false,
          checkXls: false,
          checkLaz: false,
          checkDem: false,
          checkAttrs: false,
          checkTopology: false,
          checkDecorate: false,
          checkOrigin: false,
          checkDom: false,
          checkMath: false,
          checkMeta: false,
          checkMain: false,
        });
    },
    //目录切换
    catalogChange(data, node, nodeData) {
      this.startQuayTestForms();
      // this.$refs['selectcascader'].dropDownVisible = false
      // var value = this.$refs['selectcascader'].getCheckedNodes();
      var bak = node.data.checks;
      this.getCheckedKeys = node
      this.pathBak = bak;
      if (bak != null) {
        for (var key in this.quayTestShow) {
          if (bak.indexOf(key) != -1) {
            this.quayTestShow[key] = true;
          }
        }
      }
      var fileType = node.data.exts;
      if (fileType == null) {
        fileType = "*.*";
      }
      this.formInline.selectFileType = fileType;
      this.formInline.dirid = node.data.id;
      this.formInline.dirName = node.data.name;
      this.getselectVerByDirid();
      setTimeout(() => {
        this.$refs.multiSelect.blur()
      }, 100)
    },
    //Tabsq切换
    handleTabClick(tab, event) {
      if (tab.name == "second") {
        this.setStartWareTable();
      }
      this.calHeight();
    },
    //树列表生成
    treeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ•°æ®æ·±åº¦å…‹éš†
      return cloneData.filter((father) => {
        // å¾ªçŽ¯æ‰€æœ‰é¡¹
        let branchArr = cloneData.filter((child) => father.id == child.pid); // å¯¹æ¯”ID,分别上下级菜单,并返回数据
        branchArr.length > 0 ? (father.children = branchArr) : ""; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
        return father.pid == 0; // è¿”回一级菜单
      });
    },
  },
};
</script>
<style lang="less" scoped>
.bottom {
  width: 100%;
  margin-top: 0.5%;
  // height: 74%;
  height: 570px;
  display: flex;
  justify-content: space-between;
  .rightTable {
    width: 98%;
    height: 92%;
    border-radius: 5px;
    padding: 1%;
    .table_box {
      width: 100%;
      height: 93%;
      margin: 0 auto;
      overflow: auto;
    }
  }
  /deeep/ .el-loading-mask {
    z-index: 9999;
  }
}
.inquire {
  padding: 8px;
  //margin-top: 20px;
  border-radius: 5px;
  //margin-bottom: 20px;
  .el-form-item {
    margin: 5px;
  }
}
.el-tabs {
  height: calc(100% - 18px);
}
/deep/ .el-tabs__content {
  height: calc(100% - 49px);
}
/deep/ .el-tab-pane {
  height: 100%;
}
.text-center {
  text-align: center;
}
/deep/ .el-tabs--card > .el-tabs__header .el-tabs__nav {
  border: none !important;
}
/deep/ .el-tabs--card > .el-tabs__header .el-tabs__item {
  border: none !important;
}
</style>
src/views/datamanage/dataUpdata copy.vue
ÎļþÒÑɾ³ý
src/views/datamanage/dataUpdata.vue
@@ -29,43 +29,12 @@
            :model="formInline"
            class="demo-form-inline"
          >
            <!-- å…¥åº“类型 -->
            <el-form-item
              :label="$t('dataManage.dataUpObj.UploadType')"
              style="margin-right: 2%"
              size="small"
            >
              <el-select
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.uploadType"
                @change="uploadTypeChange"
                :popper-append-to-body="false"
                placeholder="请选择"
              >
                <!--                <el-option
                                  v-for="item in uploadOption"
                                  :key="item.value"
                                  :label="item.label"
                                  :value="item.value"
                                ></el-option>-->
                <el-option
                  :label="$t('shuJuGuanLi.pselect.dFile')"
                  value="v1"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.dFiles')"
                  value="v2"
                />
              </el-select>
            </el-form-item>
            <!-- å­˜å‚¨ç›®å½• -->
            <el-form-item
              style="margin-right: 2%"
              v-show="uploadFlag"
              :label="$t('dataManage.dataUpObj.storageDirectory')"
              :label="$t('dataManage.dataUpObj.resourceDirectory')"
              size="small"
            >
              <el-select
@@ -88,37 +57,8 @@
                  />
                </el-option>
              </el-select>
              <!-- <el-cascader
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.dirid"
                :options="catalogOption"
                @change="catalogChange"
                ref="selectcascader"
                :props="cascader"
              ></el-cascader>  -->
            </el-form-item>
            <!-- é¡¹ç›®åç§° -->
            <el-form-item
              style="margin-right: 2%"
              v-show="!uploadFlag"
              :label="$t('dataManage.dataUpObj.entryName')"
              size="small"
            >
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.entryId"
                @change="entryNameChange"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in entryOption"
                  :key="item.id"
                  :label="item.name"
                  :value="item.name"
                ></el-option>
              </el-select>
            </el-form-item>
            <!-- æ•°æ®ç‰ˆæœ¬ -->
            <el-form-item
              :label="$t('dataManage.dataUpObj.dataVersion')"
@@ -141,59 +81,46 @@
                </el-option>
              </el-select>
            </el-form-item>
            <!-- æ•°æ®ä¸“业 -->
            <!-- <el-form-item
              :label="$t('dataManage.dataUpObj.dataSpecialty')"
            <!-- ä¼ æ„Ÿå™¨ç±»åž‹ -->
            <el-form-item
              :label="$t('dataManage.dataUpObj.dataVersion')"
              style="margin-right: 2%"
              size="small"
            >
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.specialtyId"
                v-model="formInline.verid"
                :placeholder="$t('common.choose')"
                size="small"
              >
                <el-option
                  :label="$t('shuJuGuanLi.pselect.SurveyingAndMapping')"
                  value="测量专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.SurveysDiscipline')"
                  value="勘察专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.GeologicalDisasterSpecialty')"
                  value="地灾专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.CavernSpecialty')"
                  value="洞库专业"
                />
                <el-option
                  :label="$t('shuJuGuanLi.pselect.LineDiscipline')"
                  value='线路专业'
                />
                  v-for="item in verOption"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
              </el-select>
            </el-form-item> -->
            <!-- åæ ‡ç³» -->
            </el-form-item>
            <!-- å…ƒæ•°æ®ç±»åž‹ -->
            <el-form-item
              v-show="false"
              :label="$t('dataManage.dataUpObj.coordinateSystem')"
              style="margin-right: 3%"
              :label="$t('dataManage.dataUpObj.dataVersion')"
              style="margin-right: 2%"
              size="small"
            >
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.coordinateId"
                v-model="formInline.verid"
                :placeholder="$t('common.choose')"
                size="small"
              >
                <el-option
                  v-for="item in coordinateOption"
                  :key="item.epsgcode"
                  :label="item.coordinate"
                  :value="item.epsgcode"
                  v-for="item in verOption"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
              </el-select>
@@ -237,85 +164,7 @@
                  >
                  </el-input>
                </el-form-item>
                <!-- é€‰æ‹©å…ƒæ•°æ® -->
                <el-form-item
                  v-show="uploadFlag"
                  style="padding-left: 16px"
                >
                  <el-link
                    :disabled="tableData.length == 0 ? false : true"
                    v-show="formInline.metaData == '请选择元数据'"
                    @click="setMetaFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('dataManage.dataUpObj.selectMetadata') }}
                  </el-link>
                  <el-link
                    v-show="formInline.metaData != '请选择元数据'"
                    @click="restMetaFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('common.reset') }}
                  </el-link>
                  <input
                    id="metaDataFile"
                    type="file"
                    name="file"
                    multiple="multiple"
                    accept=".xls,.xlsx"
                    style="display: none"
                    @change="handleMetaFileChange"
                  ></input>
                </el-form-item>
                <el-form-item
                  v-show="uploadFlag"
                  size="small"
                >
                  <el-input
                    :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')"
                    v-model="formInline.metaData"
                    style="width:200px;"
                    disabled
                  >
                  </el-input>
                </el-form-item>
                <!-- é€‰æ‹©WBS数据 -->
                <el-form-item v-show="!uploadFlag">
                  <el-link
                    :disabled="tableData.length == 0 ? false : true"
                    v-show="formInline.wbsData == '请选择WBS数据'"
                    @click="setWBSFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('dataManage.dataUpObj.selectWBSData') }}
                  </el-link>
                  <el-link
                    :disabled="tableData.length == 0 ? false : true"
                    v-show="formInline.wbsData != '请选择WBS数据'"
                    @click="restWBSFile"
                    :underline="false"
                    type="primary"
                  >{{ $t('common.reset') }}
                  </el-link>
                  <input
                    id="wbsDataFile"
                    type="file"
                    name="file"
                    multiple="multiple"
                    accept=".xls,.xlsx"
                    style="display: none"
                    @change="handleWBSFileChange"
                  ></input>
                </el-form-item>
                <el-form-item v-show="!uploadFlag">
                  <el-input
                    placeholder="请选择WBS数据"
                    v-model="formInline.wbsData"
                    style="width:210px;"
                    disabled
                  >
                  </el-input>
                </el-form-item>
              </div>
              <div>
                <el-form-item>
src/views/resourceQuery/resourceQuery.vue
@@ -1,7 +1,16 @@
<template>
  <div class="resourceQuery">
    <moon-map></moon-map>
    <div class="left_box">
    <div
      class="left_menu"
      @click="leftDialog =true"
      v-show="!leftDialog"
    >
    </div>
    <div
      class="left_box"
      v-show="leftDialog"
    >
      <div class="top_box">
        <div class="input_box">
          <el-form
@@ -67,31 +76,62 @@
          <div class="KJCX">
            <div class="KJCX_title">空间查询</div>
            <div class="KJCX_btn_list">
              <div class="KJCX_btn">
              <div
                class="KJCX_btn"
                @click="setDrawMenu(1)"
              >
                <span>点</span>
                <div class="btn_bg d"></div>
              </div>
              <div
                class="KJCX_btn"
                @click="setDrawMenu(2)"
              >
                <span>线</span>
                <div class="btn_bg x"></div>
              </div>
              <div class="KJCX_btn">
              <div
                class="KJCX_btn"
                @click="setDrawMenu(3)"
              >
                <span>矩形</span>
                <div class="btn_bg jx"></div>
              </div>
              <div class="KJCX_btn">
              <div
                class="KJCX_btn"
                @click="setDrawMenu(4)"
              >
                <span>多边形</span>
                <div class="btn_bg db"></div>
              </div>
            </div>
          </div>
        </div>
        <div
          class="btn_close"
          @click="leftDialog = false"
        >
        </div>
        <div class="btn_box">
          <div class="btn">
            <el-button type="primary" class="btnbox">检索</el-button>
            <el-button
              type="primary"
              class="btnbox"
            >检索</el-button>
          </div>
          <div>
            <el-button type="primary" class="btnbox delbtn">重置</el-button>
            <el-button
              type="primary"
              class="btnbox delbtn"
            >重置</el-button>
          </div>
        </div>
      </div>
      <div class="pagination">
      <div v-show="listDialog">
      </div>
      <!-- <div class="pagination">
        <el-pagination
          small
          @size-change="handleSizeChange"
@@ -103,8 +143,8 @@
          :total="400"
        >
        </el-pagination>
      </div>
      <div class="list_box">
      </div> -->
      <!-- <div class="list_box">
        <div
          class="list"
          v-for="(e, i) in list"
@@ -125,49 +165,102 @@
              <span class="attribute_title">生产时间:</span>
              <span class="attribute_content">{{ e.data }}</span>
            </div>
            <div class="attribute" style="margin: 0">
            <div
              class="attribute"
              style="margin: 0"
            >
              <span class="attribute_title">数据大小:</span>
              <span class="attribute_content">dsadas</span>
            </div>
          </div>
          <div class="all_btn" v-on:click.stop="details(e)">
          <div
            class="all_btn"
            v-on:click.stop="details(e)"
          >
            <i class="el-icon-more"></i>
          </div>
        </div>
      </div>
      <div class="bottom_box">
        <span class="msg_box"
          >显示第{{ paginationData.pageNo }}到{{
      </div> -->
      <!-- <div class="bottom_box">
        <span class="msg_box">显示第{{ paginationData.pageNo }}到{{
            paginationData.pageSize
          }}条,共{{ list.length }}条记录,已选择{{
            listChecked.length
          }}条</span
        >
          }}条</span>
        <div class="bottom_btn">
          <el-button type="primary" class="btnbox">全选</el-button>
          <el-button type="primary" class="btnbox delbtn">取消</el-button>
          <el-button
            type="primary"
            class="btnbox"
          >全选</el-button>
          <el-button
            type="primary"
            class="btnbox delbtn"
          >取消</el-button>
        </div>
      </div>
      </div> -->
    </div>
    <div class="details_box" v-show="detailsBox">
    <div
      class="details_box"
      v-show="detailsBox"
    >
      <div class="details_t">
        <i class="el-icon-close" @click="detailsBox = false"></i>
        <i
          class="el-icon-close"
          @click="detailsBox = false"
        ></i>
      </div>
      <div class="details_table">
        <div class="table_header">
          <div class="table_td">属性</div>
          <div class="table_td">属性值</div>
        </div>
        <div class="table_tr" v-for="(e, i) in tableList" :key="i">
        <div
          class="table_tr"
          v-for="(e, i) in tableList"
          :key="i"
        >
          <div class="table_td">{{ e.name }}</div>
          <div class="table_td">{{ e.value }}</div>
        </div>
      </div>
    </div>
    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="20%"
      :before-close="handleClose"
    >
      <div class="dialogContent">
        <el-form ref="form">
          <el-form-item label="缓冲距离(M)">
            <el-input-number
              v-model="bufferNumber"
              :step="10"
            ></el-input-number>
          </el-form-item>
        </el-form>
      </div>
      <span
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          size="small"
          @click="dialogVisible = false"
        >取 æ¶ˆ</el-button>
        <el-button
          type="primary"
          size="small"
          @click="setCloseDialog"
        >ç¡® å®š</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import * as turf from "@turf/turf"
import moonMap from "../../components/MapView/moonMap.vue"; //地图
export default {
  components: {
@@ -248,6 +341,11 @@
        },
      ],
      detailsBox: false,
      listDialog: false,
      leftDialog: true,
      drawType: null,
      dialogVisible: false,
      bufferNumber: 100,
    };
  },
  methods: {
@@ -276,8 +374,138 @@
        }
      }
    },
    setDrawMenu(res) {
      this.bufferNumber = 100;
      switch (res) {
        case 1:
          this.drawType = 'point';
          this.dialogVisible = true;
          break;
        case 2:
          this.drawType = 'polyline';
          this.dialogVisible = true;
          break;
        case 3:
          this.drawType = 'rectangle';
          this.setDrawEntity();
          break;
        case 4:
          this.drawType = 'polygon';
          this.setDrawEntity();
          break
      }
    },
    handleClose() {
      this.$confirm('确认关闭?')
        .then(_ => {
          this.dialogVisible = false;
        })
        .catch(_ => { });
    },
    setCloseDialog() {
      this.dialogVisible = false;
      this.setDrawEntity();
    },
    setDrawEntity() {
      var config = {}
      if (this.drawType != 'point') {
        config = { showSize: false }
      }
      var that = this;
      sgworld.Creator.createSimpleGraphic(this.drawType, config, (entity) => {
        sgworld.Creator.SimpleGraphic.clear()
        that.querySatialQuery(entity);
      });
    },
    querySatialQuery(res) {
      var res_val;
      switch (this.drawType) {
        case 'point':
          res_val = res.position.getValue();
          break;
        case 'polyline':
          res_val = res.polyline.positions.getValue();
          break;
        case 'rectangle':
          res_val = res.rectangle.coordinates.getValue();
          break;
        case 'polygon':
          res_val = res.polygon.hierarchy.getValue().positions;
          break;
      }
      var val = this.getEntityGeometry(res_val, this.drawType)
      debugger
    },
    getEntityGeometry(res, type) {
      var res_val;
      var std = [];
      if (type == 'point') {
        var geom = this.setCartesianToEightFour(res);
        var point = turf.point([geom.lng, geom.lat]);
        res_val = this.setTurfBuffer(point, this.bufferNumber, 'circle')
      } else if (type == 'polyline') {
        for (var i in res) {
          var geom = this.setCartesianToEightFour(res[i]);
          std.push([geom.lng, geom.lat])
        }
        var line = turf.lineString(std, { name: "polyline" })
        res_val = this.setTurfBuffer(line, this.bufferNumber, 'buffer')
      } else if (type == 'rectangle') {
        var geom = new Cesium.Rectangle.subsample(
          res,
          Cesium.Ellipsoid.WGS84,
          res.height
        )
        for (var i in geom) {
          var rectangle = this.setCartesianToEightFour(geom[i]);
          std.push([rectangle.lng, rectangle.lat])
        }
        std.push(std[0])
        res_val = turf.polygon([std], { name: "polygon" })
      } else if (type == 'polygon') {
        for (var i in res) {
          var polygon = this.setCartesianToEightFour(res[i]);
          std.push([polygon.lng, polygon.lat])
        }
        std.push(std[0])
        res_val = turf.polygon([std], { name: "polygon" })
      }
      return this.setJonToWKT(res_val)
    },
    setJonToWKT(res) {
      let fixedVal = this.fixToPositon(res)
      var jsonToWkt = this.$wkt.convert(fixedVal.geometry)
      return jsonToWkt;
    },
    setTurfBuffer(geom, distance, type) {
      return turf.buffer(geom, distance, { units: 'miles' });
    },
    fixToPositon(restVal, digits = 6) {
      restVal.geometry.coordinates.forEach(coord => {
        if (Array.isArray(coord)) {
          coord.forEach(item => {
            if (item.length >= 2) {
              item[0] = Number(item[0].toFixed(digits))
              item[1] = Number(item[1].toFixed(digits))
            }
          })
        }
      })
      return restVal
    },
    setCartesianToEightFour(res) {
      var std = {}
      let ellipsoid = Viewer.scene.globe.ellipsoid
      let cartographic = ellipsoid.cartesianToCartographic(res)
      std.lat = Cesium.Math.toDegrees(cartographic.latitude)
      std.lng = Cesium.Math.toDegrees(cartographic.longitude)
      std.alt = cartographic.height
      return std
    }
  },
  created() {},
  created() { },
};
</script>
@@ -286,10 +514,19 @@
  width: 100%;
  height: 100%;
  position: relative;
  .left_menu {
    top: 10px;
    left: 10px;
    position: absolute;
    width: 20px;
    height: 20px;
    background: url("../../assets/img/展开菜单.png") no-repeat;
    background-size: 100% 100%;
  }
  .left_box {
    width: 427px;
    height: 780px;
    left: 20px;
    height: auto;
    left: 10px;
    top: 10px;
    background: rgba(7, 8, 14, 0.8);
    border: 1px solid #d6e4ff;
@@ -302,6 +539,15 @@
      display: flex;
      justify-content: space-between;
      align-items: center;
      .btn_close {
        top: 20px;
        right: 20px;
        position: absolute;
        width: 20px;
        height: 20px;
        background: url("../../assets/img/收起菜单.png") no-repeat;
        background-size: 100% 100%;
      }
      .btn_box {
        .btn {
          margin-bottom: 37px;
@@ -348,6 +594,10 @@
            height: 26px;
            cursor: pointer;
            margin-left: 7px;
          }
          .d {
            background: url("../../assets/img/d.png") no-repeat center;
            background-size: 100% 100%;
          }
          .x {
            background: url("../../assets/img/x.png") no-repeat center;
@@ -532,4 +782,7 @@
    }
  }
}
.dialogContent /deep/.el-icon-plus {
  color: #606266 !important;
}
</style>