管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-02-09 731d894cf232d98b547df2bd006795de74fb16a7
src/views/datamanage/dataUpdata.vue
@@ -1,605 +1,2281 @@
<template>
  <div class="authorityManagement_box">
    <My-bread :list="['数据管理', '数据上传']"></My-bread>
  <div
    class="subpage_Box"
    v-loading="loading"
    element-loading-background="rgba(0, 0, 0, 0.8)"
  >
    <My-bread :list="[
        `${$t('dataManage.dataManage')}`,
        `${$t('dataManage.dataUpdata')}`,
      ]"></My-bread>
    <el-divider />
    <div class="inquire">
      <el-form ref="formData1" :model="updateForm" :inline="true">
        <el-form-item>
          <el-button type="primary" size="small" @click="showCatalog()"
            >目录</el-button
    <el-tabs
      v-model="activeTabName"
      @tab-click="handleTabClick"
    >
      <!-- 上传数据 -->
      <el-tab-pane
        :label="$t('dataManage.dataUpObj.uploaddata')"
        name="first"
      >
        <div class="subpage_Iquery subpage_Div">
          <el-form
            :inline="true"
            :model="formInline"
            class="demo-form-inline"
          >
        </el-form-item>
        <el-form-item>
          <el-tooltip
            :content="
              updateForm.cataName == '' ? '未选择目录' : updateForm.cataName
            "
            placement="top-start"
          >
            <el-input
              v-model="updateForm.cataName"
              disabled
              class="firstInput"
            />
          </el-tooltip> </el-form-item
        ><el-form-item>
          <span>类型选择</span>
        </el-form-item>
        <el-form-item>
          <el-select v-model="updateForm.type" clearable placeholder="请选择">
            <el-option
              v-for="item in options"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <span>版本</span>
        </el-form-item>
        <el-form-item>
          <el-input v-model="updateForm.version" />
        </el-form-item>
        <el-form-item>
          <input
            name="file1"
            :accept="acceptItem"
            type="file"
            id="uploading"
            style="display: none"
            multiple="multiple"
            @change="clearFileList"
          />
          <el-button
            @click="clearFileList"
            icon="el-icon-thumb"
            type="primary"
            size="small"
            >选择</el-button
          >
          <p class="show"></p>
          <el-button
            v-if="btnStatus.upload"
            @click="uploadFile"
            icon="el-icon-thumb"
            type="success"
            size="small"
            >上传</el-button
          >
          <!-- <el-row>
            <el-col :span="2">
              <el-link
                title="添加数据"
                :underline="false"
                @click="uploadFile"
                style="margin-left: 10px"
                ><i class="el-icon-plus"></i
              ></el-link>
            </el-col>
          </el-row> -->
          <!-- <el-upload
            id="uploading"
            :on-remove="handleRemove"
            :http-request="uploadFile"
            :file-list="fileList"
            multiple
            ref="upload"
            class="upload"
            action="http://192.168.20.106/LFServer/Meta/Upload"
            :auto-upload="false"
            :headers="headers"
            :accept="acceptItem"
          >
            <template #trigger>
              <el-button
                @click="clearFileList"
                icon="el-icon-thumb"
                type="primary"
                size="small"
                >选择</el-button
            <!-- 入库类型 -->
            <el-form-item :label="$t('dataManage.dataUpObj.UploadType')">
              <el-select
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.uploadType"
                @change="uploadTypeChange"
                :popper-append-to-body="false"
                placeholder="请选择"
              >
            </template>
            <el-button
              class="ml-3"
              @click="submitUpload"
              icon="el-icon-upload2"
              type="success"
              size="small"
                <el-option
                  v-for="item in uploadOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <!-- 存储目录 -->
            <el-form-item
              v-show="uploadFlag"
              :label="$t('dataManage.dataUpObj.storageDirectory')"
            >
              上传
            </el-button>
          </el-upload> -->
              <el-select
                :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
              v-show="!uploadFlag"
              :label="$t('dataManage.dataUpObj.entryName')"
            >
              <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')">
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.verid"
                :placeholder="$t('common.choose')"
              >
                <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')">
              <el-select
                :popper-append-to-body="false"
                :disabled="tableData.length == 0 ? false : true"
                v-model="formInline.specialtyId"
                :placeholder="$t('common.choose')"
              >
                <el-option
                  v-for="item in specialtyOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <!-- 坐标系 -->
            <el-form-item :label="$t('dataManage.dataUpObj.coordinateSystem')">
              <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>
            <!-- 选择数据 -->
            <el-form-item>
              <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
                id="selectDataFile"
                type="file"
                name="file"
                multiple="multiple"
                :accept="formInline.selectFileType"
                @change="handleSelectFileChange"
                style="display: none"
              ></input>
            </el-form-item>
            <el-form-item>
              <el-input
                placeholder="请输入内容"
                v-model="formInline.specialtyData"
                style="width:350px;"
                disabled
              >
              </el-input>
            </el-form-item>
            <!-- 选择元数据 -->
            <el-form-item v-show="uploadFlag">
              <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">
              <el-input
                placeholder="请输入内容"
                v-model="formInline.metaData"
                style="width:350px;"
                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:350px;"
                disabled
              >
              </el-input>
            </el-form-item>
            <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"
                :disabled="multipleSelection.length == 0 ? true : false"
                type="info"
                size="small"
                icon="el-icon-folder-checked"
                @click="handleQuayTestClick()"
              >{{$t('common.quayTest')}}
              </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-form-item>
          </el-form>
          </el-form>
        </div>
        <!-- 上传数据列表 -->
        <div class="subpage_Content subpage_Div">
          <el-table
            :data="tableData"
            @selection-change="handleSelectionChange"
          >
            <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="text"
                  size="mini"
                  style="font-size: 14px;"
                > 日志
                </el-button>
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-tab-pane>
      <!-- 入库数据清单 -->
      <el-tab-pane
        :label="$t('dataManage.dataUpObj.receiptdata')"
        name="second"
      >
        <div class="subpage_Iquery subpage_Div">
          <el-form
            :inline="true"
            :model="formWarehousing"
            class="demo-form-inline"
          >
            <el-form-item :label="$t('dataManage.dataUpObj.describe')">
              <el-input
                v-model="formWarehousing.name"
                placeholder="请输入内容"
              ></el-input>
            </el-form-item>
            <el-form-item>
              <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-button
                v-if="menuStatus.delete"
                @click="setWarehouseDel"
                icon="el-icon-folder-delete"
                type="danger"
                size="small"
              >{{ $t('common.delete') }}</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div
          class="subpage_Content subpage_Div"
          style="min-height:330px"
        >
          <div class="contentTable">
            <el-table
              ref="multipleTable"
              :data="waretableData"
              tooltip-effect="dark"
              style="width: 100%"
              @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"
                prop="name"
                :label="$t('common.name')"
                width="100"
              />
              <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 @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-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>
          <div>
            <el-pagination
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page="listData.pageIndex"
              :page-sizes="[10, 20, 30, 40]"
              :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%"
      top="10vh"
      :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"
      width="50%"
      top="15vh"
      :modal="false"
      :before-close="handleTestQuayCloseDown"
      label-width="80px"
    >
      <el-form :model="formCheckAll">
        <el-form-item label="项目名称">
          <el-col :span="20">
            <el-input
              disabled
              v-model="formCheckAll.xmmc"
            ></el-input>
          </el-col>
        </el-form-item>
        <el-form-item label="所属专业">
          <el-col :span="20">
            <el-input
              disabled
              v-model="formCheckAll.sjzy"
              width="100px"
            ></el-input>
          </el-col>
        </el-form-item>
        <el-form-item
          v-show="formCheckAll.isDiZai"
          label="所属专业"
        >
          <el-col :span="20">
            <el-select
              v-model="formCheckAll.diZaiType"
              placeholder="请选择"
              style="width:100%"
            >
              <el-option
                v-for="item in disOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-col>
        </el-form-item>
      </el-form>
    </div>
    <div class="table_box">
      <el-table
        :data="tableData"
        border
        style="width: 100%"
        fit
        height="99%"
        @selection-change="handleSelectionChange"
      <span
        slot="footer"
        class="dialog-footer"
      >
        <el-table-column width="50" type="index" label="序号" />
        <el-table-column min-width="150" prop="name" label="数据名称" />
        <el-table-column min-width="200" prop="path" label="所属目录" />
        <el-table-column min-width="100" prop="create_time" label="创建时间" />
        <el-table-column min-width="80" prop="create_user" label="创建人员" />
        <el-table-column min-width="50" prop="type" label="数据类型" />
        <el-table-column min-width="50" prop="format" label="数据格式" />
        <el-table-column min-width="80" prop="up_unit" label="上传单位" />
        <el-table-column min-width="50" prop="status" label="数据状态" />
        <el-table-column min-width="50" prop="version" label="数据版本" />
      </el-table>
    </div>
    <div class="pagination_box" style="margin-top: 20px; margin-left: 400px">
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage"
        :page-sizes="[10, 20, 50, 100]"
        :page-size="10"
        layout="total, sizes, prev, pager, next, jumper"
        :total="count"
        <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">
          <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">
          <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">
          <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-pagination>
    </div>
    <div class="leftTree" v-show="showCata">
      <div class="treeBox">
        <catalogueTree></catalogueTree>
      </div>
      <div class="btnBox">
        <el-button type="primary" size="small" @click="selectCataName"
          >确定</el-button
        <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%"
      top="10vh"
    >
      <div style="height:550px">
        <el-table
          ref="filterTable"
          :data="dbTableData"
          height="90%"
          border
          style="width: 100%"
        >
        <el-button type="primary" size="small" @click="closeCata"
          >取消</el-button
          <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: 10px"
          class="pagination_box"
        >
          <el-pagination
            @size-change="handleLoaderSizeChange"
            @current-change="handleLoaderCurrentChange"
            :current-page="listLoader.pageIndex"
            :page-sizes="[10, 20, 30, 40]"
            :page-size="listLoader.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="count1"
          >
          </el-pagination>
        </div>
      </div>
    </div>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      title="上传进度"
      :visible.sync="jindudialogVisible"
      width="30%"
    >
      <div>
        <div>
          文件传输进度:
        </div>
        <div>
          <el-progress
            :percentage="jindutiao"
            :format="format"
          ></el-progress>
        </div>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import $ from "jquery";
import { queryUploadData, queryDataCount } from "../../api/api";
import catalogueTree from "../../components/catalogueTree.vue";
import MyBread from "../../components/MyBread.vue";
import $ from 'jquery';
import MyBread from '../../components/MyBread.vue';
import { getToken } from '@/utils/auth';
import {
  dataUploadSelectPath,
  selectdirTab,
  dataUploadSelectVerByDirid,
  dataUpload_selectByPageForUpload,
  dataUpload_deleteMetas,
  dataUpload_selectCoords,
  dataUpload_selectProject,
  dataUploadSelectFiles,
  dataUploadDeleteFiles,
  dataUpload_uploadChecks,
  dataUpload_selectTaskStatus,
  dataUpload_selectMappers,
  dataUpload_selectTabs,
  dataUpload_insertFiles,
  dataUpload_selectFields,
  dataUpload_selectDbData,
} from '../../api/api';
export default {
  name: "dataUpdata",
  name: 'dataUpdata',
  components: {
    MyBread,
    catalogueTree,
  },
  data() {
    return {
      options: [
        {
          value: "DEM",
          label: "高程数据",
        },
        {
          value: "DOM",
          label: "影像数据",
        },
        {
          value: "Terra",
          label: "地形数据",
        },
        {
          value: "Tilt",
          label: "倾斜模型",
        },
        {
          value: "PointCloud",
          label: "点云数据",
        },
        {
          value: "Geology",
          label: "地质模型",
        },
        {
          value: "BIM",
          label: "BIM模型",
        },
        {
          value: "manual",
          label: "手工模型",
        },
        {
          value: "line",
          label: "线划图数据",
        },
        {
          value: "Chart",
          label: "图表数据",
        },
        {
          value: "File",
          label: "文件数据",
        },
      ],
      value: "",
      showinfoBox: false,
      itemdetail: {},
      fileList: [],
      headers: { "Content-Type": "multipart/form-data" },
      acceptItem: "",
      showCata: false,
      updateForm: {
        path_id: "",
        cataName: "",
        version: "",
        type: "",
        name: "",
      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',
        imgResolution: '0.2',
      },
      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: [],
      count: 0,
      currentPage: 1,
      pageSize: 10,
      pageNum: 1,
      btnStatus: {
        select: false,
      entryOption: [],
      uploadFlag: true,
      verOption: [],
      catalogOption: [],
      activeTabName: "first",
      uploadOption: [{
        value: 'v1',
        label: '单文件上传'
      }, {
        value: 'v2',
        label: '项目整体上传'
      }],
      formInline: {
        uploadType: 'v1',
        dirid: null,
        verid: null,
        specialtyId: '测量专业',
        specialtyData: '请选择数据',
        metaData: '请选择元数据',
        wbsData: '请选择WBS数据',
        entryId: null,
        selectFileType: '*.*',
        coordinateId: null,
        path: 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,
      dbTableData: [],
      dialogVisible: false,
      listLoader: {
        id: null,
        pageSize: 1,
        pageSize: 10,
      },
      count1: 0,
      attributeData: [],
      menuStatus: {
        delete: false,
        upload: false,
        download: false,
        insert: false,
        update: false,
        upload: false,
        download: false,
      },
    };
      jindutiao: 0,
      jindudialogVisible: false,
      jindutiaoname: []
    }
  },
  watch: {
    "updateForm.type": {
      immediate: true,
      handler(val) {
        switch (val) {
          case "DEM":
            this.acceptItem = ".tif,.img";
            break;
          case "DOM":
            this.acceptItem = ".tif,.img";
            break;
          case "Terra":
            this.acceptItem = ".mpt";
            break;
          case "Tilt":
            this.acceptItem = ".3dml";
            break;
          case "PointCloud":
            this.acceptItem = ".cpt";
            break;
          case "Geology":
            this.acceptItem = ".3dml";
            break;
          case "BIM":
            this.acceptItem = ".3dml";
            break;
          case "manual":
            this.acceptItem = ".Max";
            break;
          case "Chart":
            this.acceptItem = ".xls,.mdb";
            break;
          case "line":
            this.acceptItem = ".mdb";
            break;
          case "File":
            this.acceptItem =
              ".xls,.mdb,.xls,.pdf,.dwg,.png,.jpg,.bmp,.avi,.mp4,.wmv,.mp3,.txt,.fly";
            break;
        }
      },
    },
  mounted() {
    //获取目录
    this.getSelectdirTab();
    //获取坐标系
    this.setCoordinateSystem();
    //获取项目名称
    this.setProjectName();
    //获取文件上传路径
    this.getFilePath();
    //权限获取
    this.getPerms();
  },
  created() {
    // this.getMetaData(10, 1);
    // this.getMetaCount("");
    this.showPermsBtn();
  watch: {
  },
  methods: {
    showPermsBtn() {
      let currentPerms = this.$store.state.currentPerms;
      let permsEntity = this.$store.state.permsEntity;
      permsEntity
        .filter((item) => item.perms == currentPerms)
        .map((item) => (this.btnStatus[item.tag.substr(1)] = true));
    },
    // 请求数据
    getMetaData(size, index) {
      queryUploadData(size, index).then((res) => {
        this.tableData = res.data;
      });
    },
    // 请求数据数量
    getMetaCount(name) {
      queryDataCount(name).then((res) => {
        this.count = res.data;
      });
    },
    // 获取多选
    handleSelectionChange(val) {
      this.multipleSelection = val;
      // console.log(val);
    },
    // 显示目录
    showCatalog() {
      this.showCata = true;
    },
    // 选择目录
    selectCataName() {
      this.updateForm.cataName = this.$store.state.catalogueName;
      this.updateForm.path_id = this.$store.state.cataNode.id;
      this.$store.commit("changeCata", ""); //清空state的面包屑
      this.$store.commit("changeNode", ""); //清空state的节点对象
      this.showCata = false;
    },
    closeCata() {
      this.showCata = false;
    },
    clearFileList() {
      $("#uploading").click();
      // var val = document.getElementById("uploading").files;
      // if (!val || !val.length) return;
    showPermsMenu(res) {
      // val.forEach((e) => {
      //   console.log(e.name);
      // });
    },
    submitUpload() {
      if (this.updateForm.path_id == "" || this.updateForm.type == "") {
        alert("请选择数据类型或上传目录");
        this.$refs.upload.abort();
        return false;
      } else {
        this.$refs.upload.submit();
      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;
      }
    },
    uploadFile(item) {
      var val = document.getElementById("uploading").files;
      if (!val || !val.length) return;
      // if (val.length != 0) {
      //   var i = val.length;
      //   for (var j = 0; j < i; j++) {
      //     FormDatas.append("file" + j, val[j]); // 文件对象
      //   }
      // }
      val.forEach((e) => {
        let FormDatas = new FormData();
        FormDatas.append("file", e, e.name); // 文件对
        let name = e.name;
        let path_id = this.updateForm.path_id;
        let version = this.updateForm.version;
        let type = this.updateForm.type;
        let url = `http://192.168.20.106/LFServer/Meta/Upload?path_id=${path_id}&type=${type}&version=${version}&name=${name}`;
        // console.log(url);
        this.$http({
          method: "post",
          url,
          headers: this.headers,
          timeout: 30000,
          data: FormDatas,
          // onUploadProgress: (progressEvent) => {
          //   const complete = parseInt(
          //     ((progressEvent.loaded / progressEvent.total) * 100) | 0,
          //     10
          //   );
          //   // 重点二:onProgress()方法需要以上方接收的形参来调用
          //   // 这个方法有一个参数"percent",给他进度值 complete 即可
          //   item.onProgress({ percent: complete });
          // },
        }).then((res) => {
          if (res.status == 200 && res.data.length != 0) {
            this.$message({
              message: "上传成功",
              type: "success",
            });
            this.getMetaData(10, 1);
            this.getMetaCount("");
          } else {
            alert("上传失败");
            console.log(res);
    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;
    },
    //自动匹配取消
    setInsrtWareTableClose() {
      this.dialogWarehousing = false;
      this.activeName = '';
      this.activeName2 = '';
      this.activeName3 = '';
      this.tableWareThree = [];
      this.tableWareTwo = [];
      this.tableWareOne = [];
      this.insertWareList = null;
      this.tableData = [];
    },
    //自动匹配确认
    async setInsrtWareTable() {
      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;
            }
          }
        }
      }
      this.loading = true;
      const res = await dataUpload_insertFiles(JSON.stringify(this.insertWareList));
      this.loading = false
      if (res.code != 200) {
        this.$message.error('数据入库失败');
        return;
      }
      this.$message({
        message: '数据入库成功',
        type: 'success'
      });
      this.setInsrtWareTableClose();
    },
    //自动匹配
    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);
      });
    },
    // 文件列表移除文件时的钩子
    handleRemove(file, fileList) {
      // console.log(file, fileList);
    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() + ",未质检或质检失败,不能入库");
          }
        }
      }
      var obj = {
        dirid: this.formInline.dirid,
        epsgCode: this.formInline.coordinateId,
        path: this.formInline.path,
        verid: this.formInline.verid,
      }
      //查询映射
      const data = await dataUpload_selectMappers(obj)
      if (data.code != 200) {
        return this.$message.error("数据映射失败");
      }
      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.loading = true;
      this.getStartTestQuayTaskStatus();
    },
    //整体文件多条数据质检
    async getStartTestQuayTaskStatus() {
      if (this.multipleSelection == 0 || this.taskStatus == this.multipleSelection.length) {
        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
        }
      }
      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();
    },
    //单文件多条数据质检
    async getStartTaskStatus() {
      if (this.multipleSelection == 0 || this.taskStatus == this.multipleSelection.length) {
        this.loading = 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.$refs['selectcascader'].getCheckedNodes();
        var bak = value[0].data.fullName.split("\\");
        this.quayTestForms.xmmc = bak[this.taskStatus];
        this.quayTestForms.sjzy = this.formInline.specialtyId;
        this.quayTestForms.zipPath = this.multipleSelection[this.taskStatus].path;
        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.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) + "%";
      //   }
      // }
      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}%`;
    },
    //获取文件上传路径
    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].bak;
      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;
      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.$refs['selectcascader'].getCheckedNodes();
        var fileType = value[0].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 = true;
          this.formCheckAll.diZaiType = this.disOptions[0].value
        } else {
          this.formCheckAll.isDiZai = false;
          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.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.pageSize = val;
      this.getMetaData(this.pageSize, 1);
      this.getMetaCount("");
      this.listData.pageIndex = 1;
      this.listData.pageSize = val;
      this.getAllWareTable();
    },
    // 页数修改
    //数据上传列表清单page切换
    handleCurrentChange(val) {
      this.pageNum = val;
      this.getMetaData(this.pageSize, this.pageNum);
      this.getMetaCount("");
      this.listData.pageIndex = val;
      this.getAllWareTable();
    },
    // showDetail(index, row) {
    //   // console.log(index, row);
    //   this.showinfoBox = true;
    //   this.itemdetail = row;
    // },
    // handleDelete(index, row) {
    //   // console.log(index, row);
    //   this.$confirm("确定是否删除?", "提示", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(() => {})
    //     .catch(() => {});
    // },
    // closeDetial() {
    //   this.showinfoBox = false;
    //   this.itemdetail = {};
    // },
  },
    //上传数据表格选择
    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();
    },
    //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].bak;
      } else {
        this.getStartDirChecked(this.catalogOption);
        this.getselectVerByDirid();
        this.uploadFlag = true
      }
      this.formInline.uploadType = res;
    },
    //版本号获取
    async getselectVerByDirid() {
      this.verOption = [];
      this.formInline.verid = "";
      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.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.bak;
      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.code;
      if (fileType == null) {
        fileType = "*.*"
      }
      this.formInline.selectFileType = fileType;
      this.formInline.dirid = node.data.id;
      this.formInline.dirName = node.data.name
      this.getselectVerByDirid();
    },
    //Tabsq切换
    handleTabClick(tab, event) {
      if (tab.name == "second") {
        this.setStartWareTable();
      }
    },
    //树列表生成
    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>
//@import url(); 引入公共css类
.authorityManagement_box {
  background: rgb(240, 242, 245);
  border-radius: 10px;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  .inquire {
    margin: 10px auto;
    background: #fff;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    height: 90px;
    .el-form-item {
      margin: 5px;
    }
    .el-input {
      width: 307px;
    }
    .ml-3 {
      margin-left: 10px;
    }
    .upload {
      /deep/ .el-upload-list {
        width: 79vw;
        height: 27px;
        margin: 0;
        margin-left: 0px;
        padding: 0;
        list-style: none;
        // background: #bfa;
        position: absolute;
        left: -53vw;
        top: 5vh;
        z-index: 10;
        overflow: auto;
        display: flex;
        flex-wrap: wrap;
      }
      /deep/ .el-upload-list__item {
        margin-top: 0px;
        transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
        font-size: 14px;
        color: #606266;
        line-height: 1.8;
        // margin-top: 5px;
        position: relative;
        box-sizing: border-box;
        border-radius: 4px;
        width: 15%;
      }
    }
  }
  .table_box {
    height: 73%;
    overflow: auto;
    padding: 10px;
    background: #fff;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    .el-table /deep/ .el-table__header-wrapper tr th {
      background-color: rgb(255, 255, 255) !important;
      color: rgb(0, 0, 0);
    }
    // 修改每行样式:
    .el-table /deep/ .el-table__row {
      background-color: rgba(255, 255, 255) !important;
      color: rgb(0, 0, 0);
    }
    .el-table /deep/ .el-table__body tr.current-row > td {
      background-color: rgb(211, 211, 211) !important;
    }
    .el-table /deep/ .el-table__body tr:hover > td {
      background-color: rgb(211, 211, 211) !important;
    }
    // 修改表格每行边框的样式:
    .el-table /deep/ td,
    .el-table /deep/ th.is-leaf {
      border-bottom: 1px solid #eee;
      border-right: 1px solid #eee;
    }
    .el-table /deep/ .el-table__cell {
      padding: 8px 0;
    }
    // 设置表格每行的高度:
    .el-table /deep/ .el-table__header tr,
    .el-table /deep/ .el-table__header th {
      height: 50px;
    }
    .el-table__body tr,
    .el-table__body td {
      height: 50px;
      padding: 0;
    }
    // 设置表格边框颜色:
    .el-table--border::after,
    .el-table--group::after {
      width: 0;
    }
    .el-table::before {
      height: 0;
    }
  }
  .leftTree {
    position: absolute;
    z-index: 10;
    top: 100px;
    left: 600px;
    width: 400px;
    height: 600px;
    background: #f0f2f5;
    border: 1px solid #000;
    .treeBox {
      height: 550px;
      overflow: auto;
      /deep/ .el-tree-node__content:hover {
        background-color: rgb(153, 153, 153);
      }
    }
    .btnBox {
      width: 123px;
      margin: 10px auto 0;
      // background-color: red;
    }
  }
  .infoBox {
    width: 500px;
    border: 1px solid #eee;
    position: absolute;
    z-index: 100;
    top: 15%;
    right: 25%;
    background-color: #fff;
    .el-card {
      background-color: transparent;
      span {
        font-size: 16px;
        font-weight: 600;
      }
    }
    .contentBox {
      margin: 0 aotu 10px;
      p {
        // background-color: #bfa;
        // margin-bottom: 10px;
        font-size: 14px;
      }
    }
  }
}
</style>