<template>
|
<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 />
|
<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 :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="请选择"
|
>
|
<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-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 style="float: right;">
|
<!-- 上传 -->
|
<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
|
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>
|
</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-item>
|
<el-button
|
v-if="menuStatus.upload"
|
:disabled="multipleDelete.length == 0 ? true : false"
|
@click="setEnclosure"
|
icon="el-icon-folder-opened"
|
type="warning"
|
size="small"
|
>{{ $t('common.enclosure') }}</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
|
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-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, 50, 100]"
|
: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>
|
<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">
|
<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-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-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, 50, 100]"
|
: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="上传进度"
|
:visible.sync="jindudialogVisible"
|
width="30%"
|
>
|
<div>
|
<div>
|
文件传输进度:
|
</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>
|
<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 {
|
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',
|
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',
|
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: [],
|
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,
|
insert: false,
|
update: false,
|
upload: false,
|
download: false,
|
|
},
|
jindutiao: 0,
|
jindudialogVisible: false,
|
jindutiaoname: [],
|
enclosureData: [],
|
enclosureVisible: false,
|
enclosureTitle: '',
|
}
|
},
|
|
mounted() {
|
//获取目录
|
this.getSelectdirTab();
|
//获取坐标系
|
this.setCoordinateSystem();
|
//获取项目名称
|
this.setProjectName();
|
//获取文件上传路径
|
this.getFilePath();
|
//权限获取
|
this.getPerms();
|
},
|
watch: {
|
|
},
|
methods: {
|
//附件变化
|
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
|
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_borehole'
|
];
|
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;
|
},
|
//自动匹配取消
|
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);
|
});
|
},
|
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.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();
|
},
|
|
//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.formInline.dirName = this.catalogOption[0].name
|
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>
|
|