<template>
|
<div class="authorityManagement_box">
|
<My-bread :list="[
|
`${$t('dataManage.dataManage')}`,
|
`${$t('dataManage.metadataManage')}`,
|
]"></My-bread>
|
<el-divider />
|
<div class="inquire subpage_Div"
|
ref="container">
|
<el-form ref="queryForm"
|
:model="queryForm"
|
:inline="true">
|
<div class="flex_box">
|
<div style="margin-right: auto">
|
<el-form-item size="small">
|
<el-select :popper-append-to-body="false"
|
v-model="queryForm.depName"
|
ref="treeSelect">
|
<el-option :value="queryForm.depid"
|
:label="queryForm.depName"
|
style="height: auto">
|
<el-tree ref="tree"
|
:data="companyOption1"
|
node-key="id"
|
:props="cascader"
|
@node-click="handleChange1" />
|
</el-option>
|
</el-select>
|
<!-- <el-cascader
|
v-model="queryForm.depid"
|
:show-all-levels="false"
|
:options="companyOption1"
|
@change="handleChange1"
|
:props="{
|
label: 'name',
|
value: 'id',
|
children: 'children',
|
checkStrictly: true,
|
emitPath: false,
|
}"
|
></el-cascader> -->
|
</el-form-item>
|
<el-form-item size="small">
|
<el-select :popper-append-to-body="false"
|
v-model="queryForm.dirName"
|
ref="treeSelect1">
|
<el-option :value="queryForm.dirid"
|
:label="queryForm.dirName"
|
style="height: auto">
|
<el-tree ref="tree"
|
:data="companyOption"
|
node-key="id"
|
:props="cascader"
|
@node-click="handleChange" />
|
</el-option>
|
</el-select>
|
<!-- <el-cascader
|
v-model="queryForm.dirid"
|
:show-all-levels="false"
|
:options="companyOption"
|
@change="handleChange"
|
:props="{
|
label: 'name',
|
value: 'id',
|
children: 'children',
|
checkStrictly: true,
|
emitPath: false,
|
}"
|
></el-cascader> -->
|
</el-form-item>
|
<el-form-item size="small">
|
<el-select :popper-append-to-body="false"
|
v-model="queryForm.verid"
|
placeholder="请选择"
|
@change="verHandleChange($event)">
|
<el-option v-for="item in verOptions"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item prop="name"
|
size="small">
|
<!-- suffix-icon="el-icon-edit" :placeholder="$t('common.pleaseInput')"-->
|
<el-input v-model="queryForm.name"
|
:placeholder="$t('shuJuGuanLi.lable2')"
|
style="width: 200px"><i slot="suffix"
|
class="el-icon-search"
|
@click="queryInfo()"
|
style="padding-right: 8px"></i></el-input>
|
</el-form-item>
|
</div>
|
<div>
|
<!-- <el-form-item>
|
<el-button
|
@click="queryInfo()"
|
icon="el-icon-search"
|
class="primary"
|
size="small"
|
>{{ $t("common.iquery") }}
|
</el-button
|
>
|
</el-form-item>-->
|
<el-form-item v-if="btnStatus.delete">
|
<el-button type="danger"
|
size="small"
|
@click="deleteMetaInfo"
|
icon="el-icon-delete">{{ $t("common.delete") }}
|
</el-button>
|
</el-form-item>
|
<el-form-item v-if="btnStatus.download">
|
<el-button @click="downFormData"
|
icon="el-icon-download"
|
type="success"
|
size="small">{{ $t("common.download") }}
|
</el-button>
|
</el-form-item>
|
|
<el-form-item>
|
<el-button @click="resetInfo('queryForm')"
|
icon="el-icon-refresh"
|
type="info"
|
size="small">{{ $t("common.reset") }}
|
</el-button>
|
</el-form-item>
|
</div>
|
</div>
|
</el-form>
|
</div>
|
<div class="dividing-line"></div>
|
<div class="table_box subpage_Div"
|
:style="styleVar">
|
<el-table :data="tableData"
|
style="width: 100%"
|
border
|
@selection-change="handleSelectionChange"
|
height="calc(100% - 57px)">
|
<el-table-column type="selection"
|
width="55" />
|
<el-table-column :label="$t('dataManage.dictionaryManageObj.number')"
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column :label="$t('dataManage.vmobj.name')">
|
<template slot-scope="scope">
|
<span v-if="scope.row.ismeta > 0">
|
<el-link style="color: #409eff"
|
title="源数据查询"
|
@click="setQueryMetaData(scope.row)"
|
target="_blank">{{ scope.row.name }}</el-link>
|
</span>
|
<span v-else-if="scope.row.metaid > 0">
|
<el-link style="color: #409eff"
|
title="元数据查询"
|
@click="setMetaDataQuery(scope.row)"
|
target="_blank">{{ scope.row.name }}</el-link>
|
</span>
|
<span v-else>{{ scope.row.name }}</span>
|
</template>
|
</el-table-column>
|
|
<el-table-column prop="type"
|
:label="$t('dataManage.vmobj.format')">
|
<template slot-scope="scope">
|
<span v-if="scope.row.type == 'gdb'">
|
<el-link @click="setSelectGdbByGuid(scope.row)"
|
style="color: #409eff">
|
{{ scope.row.type }}
|
</el-link>
|
</span>
|
<span v-else>
|
|
{{ scope.row.type }}
|
</span>
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="sizes"
|
:label="$t('dataManage.vmobj.size')"
|
:formatter="stateFormatSizes" />
|
<el-table-column prop="depName"
|
:label="$t('dataManage.vmobj.depName')" />
|
<el-table-column prop="dirName"
|
:label="$t('dataManage.vmobj.dirName')"
|
width="200" />
|
<el-table-column prop="verName"
|
:label="$t('dataManage.vmobj.versionNumber')" />
|
<el-table-column :label="$t('dataManage.dataUpObj.tableName')">
|
<template slot-scope="scope">
|
<!-- <span ></span> -->
|
<el-link></el-link>
|
<el-link :underline="false"
|
@click="detail(scope.row)">{{
|
scope.row.tab
|
}}</el-link>
|
</template>
|
</el-table-column>
|
|
<!-- <el-table-column
|
prop="tab"
|
:label="$t('dataManage.vmobj.tab')"
|
:formatter="formatData"
|
/> -->
|
<el-table-column prop="rows"
|
:label="$t('dataManage.vmobj.row')" />
|
|
<el-table-column :label="$t('common.dataStatus')"
|
:formatter="stateFormat">
|
|
</el-table-column>
|
<el-table-column prop="uname"
|
:label="$t('dataManage.vmobj.createonuser')" />
|
<el-table-column prop="createTime"
|
:label="$t('dataManage.vmobj.createontime')"
|
:formatter="formatData" />
|
<el-table-column min-width="210"
|
:label="$t('common.operate')">
|
<template slot-scope="scope">
|
<el-button @click="showDetail(scope.row)"
|
type="primary"
|
plain
|
size="small">{{ $t("common.details") }}
|
</el-button>
|
<el-button type="warning"
|
plain
|
size="small"
|
v-if="btnStatus.update"
|
@click="editInfo(scope.row)"
|
style="margin-left: 10px">{{ $t("common.edit") }}
|
</el-button>
|
<el-button plain
|
size="small"
|
v-if="showPreview(scope.row)"
|
@click="handlePreview(scope.row)"
|
style="margin-left: 10px">{{ $t("common.preview") }}
|
</el-button>
|
<!-- <el-button plain
|
size="small"
|
type="success"
|
v-if="showCAD(scope.row)"
|
@click="handleCAD(scope.row)"
|
style="margin-left: 10px">
|
{{ $t('common.preview') }}</el-button> -->
|
</template>
|
</el-table-column>
|
</el-table>
|
<div class="pagination_box"
|
style="margin-top: 15px">
|
<el-pagination @size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="listData.pageIndex"
|
:page-sizes="[10, 50, 100, 200]"
|
:page-size="listData.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="count">
|
</el-pagination>
|
</div>
|
</div>
|
<div class="infoBox_box"
|
v-show="showinfoBox"
|
style="z-index:99999">
|
<div class="infoBox box_div">
|
<div slot="header"
|
class="clearfix">
|
<span>{{ $t("common.details") }}</span>
|
<div style="float: right; cursor: pointer"
|
@click="closeDetial">
|
<i class="el-icon-close"></i>
|
</div>
|
</div>
|
<el-divider></el-divider>
|
<div class="contentBox"
|
style="padding: 1%">
|
<p>{{ $t("dataManage.vmobj.name") }}:{{ itemdetail.name }}</p>
|
<el-divider></el-divider>
|
<p>{{ $t("dataManage.vmobj.format") }}:{{ itemdetail.type }}</p>
|
<el-divider></el-divider>
|
<p>{{ $t("common.size") }}:{{ setInfoBoxSize(itemdetail.sizes) }}</p>
|
<el-divider></el-divider>
|
<p>{{ $t("dataManage.vmobj.depName") }}:{{ itemdetail.depName }}</p>
|
<el-divider></el-divider>
|
<p>{{ $t("dataManage.vmobj.dirName") }}:{{ itemdetail.dirName }}</p>
|
<el-divider></el-divider>
|
<p>
|
{{ $t("dataManage.vmobj.versionNumber") }}:{{ itemdetail.verName }}
|
</p>
|
<el-divider></el-divider>
|
<p>{{ $t("dataManage.vmobj.tab") }}:{{ itemdetail.tab }}</p>
|
<el-divider></el-divider>
|
<p>{{ $t("dataManage.vmobj.row") }}:{{ itemdetail.rows }}</p>
|
<el-divider></el-divider>
|
<p>
|
{{ $t("dataManage.vmobj.createonuser") }}:{{ itemdetail.uname }}
|
</p>
|
<el-divider></el-divider>
|
<p>
|
{{ $t("dataManage.vmobj.createontime") }}:{{
|
setInfoBoxTime(itemdetail.createTime)
|
}}
|
</p>
|
<el-divider></el-divider>
|
<!-- <p>
|
{{ $t("dataManage.vmobj.depName") }}:{{ itemdetail.updateUser }}
|
</p>
|
<el-divider></el-divider>
|
<p>
|
{{ $t("dataManage.vmobj.depName") }}:{{
|
setInfoBoxTime(itemdetail.updateTime)
|
}}
|
</p> -->
|
</div>
|
</div>
|
</div>
|
|
<el-dialog width="80vh"
|
top="5vh"
|
:title="
|
behavior == '新增用户'
|
? `${$t('common.append')}`
|
: `${$t('common.update')}`
|
"
|
:visible.sync="dialogFormVisible"
|
:before-close="handleClose">
|
<el-form :model="editForm"
|
ref="editForm">
|
<el-form-item :label="$t('dataManage.vmobj.name')"
|
:label-width="formLabelWidth">
|
<el-input v-model="editForm.name"
|
autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item :label="$t('dataManage.vmobj.format')"
|
:label-width="formLabelWidth">
|
<el-input v-model="editForm.type"
|
autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item :label="$t('dataManage.vmobj.size')"
|
:label-width="formLabelWidth">
|
<el-input v-model="editForm.sizes"
|
autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item :label="$t('dataManage.vmobj.depName')"
|
:label-width="formLabelWidth">
|
<el-select style="width: 100%"
|
:popper-append-to-body="false"
|
v-model="editForm.depName">
|
<el-option :value="editForm.depid"
|
:label="editForm.depName"
|
style="height: auto">
|
<el-tree ref="tree"
|
:data="companyOption1"
|
node-key="id"
|
:props="cascader"
|
@node-click="handleChange2" />
|
</el-option>
|
</el-select>
|
<!-- <el-cascader
|
v-model="editForm.depid"
|
:options="companyOption"
|
:props="cascader"
|
style="width:350px"
|
></el-cascader> -->
|
</el-form-item>
|
<el-form-item :label="$t('dataManage.vmobj.dirName')"
|
:label-width="formLabelWidth">
|
<el-select style="width: 100%"
|
:popper-append-to-body="false"
|
v-model="editForm.dirName">
|
<el-option :value="editForm.dirid"
|
:label="editForm.dirName"
|
style="height: auto">
|
<el-tree ref="tree"
|
:data="dirComPanyOption"
|
node-key="id"
|
:props="cascader"
|
@node-click="handleChange3" />
|
</el-option>
|
</el-select>
|
<!-- <el-cascader
|
v-model="editForm.dirid"
|
:options="dirComPanyOption"
|
:props="cascader"
|
style="width:350px"
|
></el-cascader> -->
|
</el-form-item>
|
<el-form-item :label="$t('dataManage.vmobj.describe')"
|
:label-width="formLabelWidth">
|
<el-input v-model="editForm.describe"
|
autocomplete="off"></el-input>
|
</el-form-item>
|
<!-- <el-form-item
|
:label="$t('dataManage.vmobj.gather')"
|
:label-width="formLabelWidth"
|
>
|
<el-input v-model="editForm.gather" autocomplete="off"></el-input>
|
</el-form-item> -->
|
</el-form>
|
<div v-if="behavior == '修改信息'"
|
slot="footer"
|
class="dialog-footer">
|
<el-button size="small"
|
@click="cancelEdit()">{{ $t("common.reset") }}
|
</el-button>
|
<el-button size="small"
|
type="primary"
|
@click="sendEdit('editForm')"
|
v-loading.fullscreen.lock="fullscreenLoading">{{ $t("common.submit") }}
|
</el-button>
|
</div>
|
<div v-else
|
slot="footer"
|
class="dialog-footer">
|
<el-button size="small"
|
@click="cancelAdd('editForm')">{{ $t("common.reset") }}
|
</el-button>
|
<el-button size="small"
|
type="primary"
|
@click="sendAdd('editForm')"
|
v-loading.fullscreen.lock="fullscreenLoading">{{ $t("common.submit") }}
|
</el-button>
|
</div>
|
</el-dialog>
|
<el-dialog :title="$t('common.details')"
|
:visible.sync="dialogVisible"
|
width="70%">
|
<div style="height: 600px">
|
<el-table ref="filterTable"
|
:data="dbTableData"
|
height="90%"
|
border
|
style="width: 100%">
|
<el-table-column width="60"
|
align="center"
|
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, 50, 100, 200]"
|
:page-size="listLoader.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="count1">
|
</el-pagination>
|
</div>
|
</div>
|
</el-dialog>
|
<div class="downloadBox box_div subpage_Div"
|
v-if="showCodeBox">
|
<h4 style="padding: 20px">{{ $t("common.passworld") }}</h4>
|
<el-form :model="codeForm"
|
:rules="rules"
|
ref="codeForm"
|
label-width="100px"
|
class="codeForm">
|
<el-form-item :label="$t('common.passworld')"
|
prop="password">
|
<el-input type="password"
|
v-model="codeForm.password"
|
show-password></el-input>
|
</el-form-item>
|
<el-form-item :label="$t('common.SPassword')"
|
prop="repassword">
|
<el-input type="password"
|
v-model="codeForm.repassword"
|
show-password></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button class="primary"
|
size="small"
|
@click="download('codeForm')">{{ $t("common.confirm") }}
|
</el-button>
|
<el-button type="info"
|
size="small"
|
@click="closeDown('codeForm')">{{ $t("common.cancel") }}
|
</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
<el-dialog :title="fromQueryMeta.title"
|
:visible.sync="queryMetaFlag"
|
width="70%">
|
<div style="height: 65vh; width: 100%">
|
<el-form :inline="true"
|
:model="fromQueryMeta"
|
class="demo-form-inline">
|
<el-form-item>
|
<el-input size="small"
|
v-model="fromQueryMeta.name"></el-input>
|
</el-form-item>
|
|
<el-form-item>
|
<el-button type="primary"
|
size="small"
|
@click="setSearchMetaData()">查询
|
</el-button>
|
<el-button type="info"
|
size="small"
|
@click="setRestMetaData()">重置
|
</el-button>
|
</el-form-item>
|
</el-form>
|
<el-table ref="filterTable"
|
:data="metaDataTable"
|
style="width: 100%"
|
height="calc(100% - 100px)">
|
<el-table-column align="center"
|
type="index"
|
:label="$t('common.index')"
|
width="70px"></el-table-column>
|
<el-table-column align="center"
|
prop="name"
|
:label="$t('common.name')"
|
width="120">
|
</el-table-column>
|
<el-table-column align="center"
|
prop="dirName"
|
:label="$t('dataManage.dataUpObj.catalogue')"
|
width="300" />
|
<el-table-column align="center"
|
prop="depName"
|
:label="$t('dataManage.dataUpObj.company')"
|
width="200" />
|
<el-table-column align="center"
|
prop="verName"
|
:label="$t('dataManage.dataUpObj.versionNo')" />
|
<el-table-column align="center"
|
prop="type"
|
:label="$t('common.type')" />
|
<el-table-column align="center"
|
prop="sizes"
|
:label="$t('common.size')"
|
:formatter="changeSizeFile" />
|
<el-table-column align="center"
|
:label="$t('dataManage.dataUpObj.tableName')">
|
<template slot-scope="scope">
|
<a class="scopeRowColor"
|
@click="detail(scope.row)">{{
|
scope.row.tab
|
}}</a>
|
</template>
|
</el-table-column>
|
<el-table-column align="center"
|
prop="rows"
|
:label="$t('common.lineNuber')" />
|
<el-table-column align="center"
|
prop="desc"
|
:label="$t('dataManage.dataUpObj.describe')" />
|
</el-table>
|
<div class="pagination_box"
|
style="margin-top: 15px">
|
<el-pagination @size-change="handleMetaSizeChange"
|
@current-change="handMetaCurrentChange"
|
:current-page="listMetaData.pageIndex"
|
:page-sizes="[10, 50, 100, 200,500]"
|
:page-size="listMetaData.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="listMetaData.count">
|
</el-pagination>
|
</div>
|
</div>
|
</el-dialog>
|
<el-dialog :title="fromQueryMeta.title"
|
:visible.sync="queryMetaFlag1"
|
width="70%">
|
<div style="height: 65vh; width: 100%">
|
<el-table ref="filterTable"
|
:data="metaDataTable1"
|
style="width: 100%"
|
height="100%">
|
<el-table-column align="center"
|
type="index"
|
:label="$t('common.index')"
|
width="70px"></el-table-column>
|
<el-table-column align="center"
|
prop="name"
|
:label="$t('common.name')"
|
width="120">
|
</el-table-column>
|
<el-table-column align="center"
|
prop="dirName"
|
:label="$t('dataManage.dataUpObj.catalogue')"
|
width="300" />
|
<el-table-column align="center"
|
prop="depName"
|
:label="$t('dataManage.dataUpObj.company')"
|
width="200" />
|
<el-table-column align="center"
|
prop="verName"
|
:label="$t('dataManage.dataUpObj.versionNo')" />
|
<el-table-column align="center"
|
prop="type"
|
:label="$t('common.type')" />
|
<el-table-column align="center"
|
prop="sizes"
|
:label="$t('common.size')"
|
:formatter="changeSizeFile" />
|
<el-table-column align="center"
|
:label="$t('dataManage.dataUpObj.tableName')">
|
<template slot-scope="scope">
|
<a class="scopeRowColor"
|
@click="detail(scope.row)">{{
|
scope.row.tab
|
}}</a>
|
</template>
|
</el-table-column>
|
<el-table-column align="center"
|
prop="rows"
|
:label="$t('common.lineNuber')" />
|
<el-table-column align="center"
|
prop="desc"
|
:label="$t('dataManage.dataUpObj.describe')" />
|
</el-table>
|
</div>
|
</el-dialog>
|
<el-dialog custom-class="preview-dialog"
|
title="预览"
|
:append-to-body="false"
|
:visible.sync="dialog.dialogVisible"
|
width="70%"
|
:close-on-click-modal="false">
|
<div v-if="dialog.isPdf"
|
class="pdfClass">
|
<iframe :src="dialog.src"
|
type="application/x-google-chrome-pdf"
|
width="100%"
|
height="100%">
|
</iframe>
|
</div>
|
<div v-if="dialog.isJpg"
|
class="pdfClass">
|
<el-image style="width: 100%; height: 100%"
|
:src="dialog.src"
|
:preview-src-list="[dialog.src]">
|
</el-image>
|
</div>
|
</el-dialog>
|
<el-dialog title="数据申请"
|
:visible.sync="dialogInsertFile"
|
width="30%"
|
top="10vh"
|
:modal="false"
|
:close-on-click-modal="false"
|
:show-close="false">
|
<el-form ref="form"
|
:model="fileFrom"
|
label-width="100px">
|
<el-form-item label="审核单位">
|
<div>
|
<ul>
|
<li v-for="item in fileFrom.depid">
|
{{ item.name }}
|
</li>
|
</ul>
|
</div>
|
</el-form-item>
|
|
<el-form-item label="描述">
|
<el-input type="textarea"
|
placeholder="请输入内容"
|
v-model="fileFrom.descr"
|
maxlength="50"
|
show-word-limit>
|
</el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button class="primary"
|
size="small"
|
@click="getFileInsertApply()">{{ $t("common.confirm") }}</el-button>
|
<el-button type="info"
|
size="small"
|
@click="handleInsertFileClose()">{{ $t("common.cancel") }}</el-button>
|
</el-form-item>
|
</el-form>
|
</el-dialog>
|
<el-dialog title=""
|
:visible.sync="gdbDialog"
|
width="80%"
|
top="8vh"
|
:modal="false"
|
:close-on-click-modal="false">
|
<div class="gdbTableBox">
|
<el-table :data="gdbData"
|
style="width: 100%"
|
max-height="38.54167vw">
|
<el-table-column type="selection"
|
width="55" />
|
<el-table-column :label="$t('dataManage.dictionaryManageObj.number')"
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column :label="$t('dataManage.vmobj.name')">
|
<template slot-scope="scope">
|
<span v-if="scope.row.ismeta > 0">
|
<el-link style="color: #409eff"
|
title="源数据查询"
|
@click="setQueryMetaData(scope.row)"
|
target="_blank">{{ scope.row.name }}</el-link>
|
</span>
|
<span v-else-if="scope.row.metaid > 0">
|
<el-link style="color: #409eff"
|
title="元数据查询"
|
@click="setMetaDataQuery(scope.row)"
|
target="_blank">{{ scope.row.name }}</el-link>
|
</span>
|
<span v-else>{{ scope.row.name }}</span>
|
</template>
|
</el-table-column>
|
|
<el-table-column prop="type"
|
:label="$t('dataManage.vmobj.format')">
|
|
</el-table-column>
|
|
<el-table-column prop="sizes"
|
:label="$t('dataManage.vmobj.size')"
|
:formatter="stateFormatSizes" />
|
<el-table-column prop="depName"
|
:label="$t('dataManage.vmobj.depName')" />
|
<el-table-column prop="dirName"
|
:label="$t('dataManage.vmobj.dirName')"
|
width="200" />
|
<el-table-column prop="verName"
|
:label="$t('dataManage.vmobj.versionNumber')" />
|
<el-table-column :label="$t('dataManage.dataUpObj.tableName')">
|
<template slot-scope="scope">
|
|
<el-link></el-link>
|
<el-link :underline="false"
|
@click="detail(scope.row)">{{
|
scope.row.tab
|
}}</el-link>
|
</template>
|
</el-table-column>
|
|
<el-table-column prop="rows"
|
:label="$t('dataManage.vmobj.row')" />
|
|
<el-table-column :label="$t('common.dataStatus')"
|
:formatter="stateFormat">
|
|
</el-table-column>
|
<el-table-column prop="uname"
|
:label="$t('dataManage.vmobj.createonuser')" />
|
<el-table-column prop="createTime"
|
:label="$t('dataManage.vmobj.createontime')"
|
:formatter="formatData" />
|
<el-table-column min-width="210"
|
:label="$t('common.operate')">
|
<template slot-scope="scope">
|
<el-button @click="showDetail(scope.row)"
|
type="primary"
|
plain
|
size="small">{{ $t("common.details") }}
|
</el-button>
|
<el-button type="warning"
|
plain
|
size="small"
|
v-if="btnStatus.update"
|
@click="editInfo(scope.row)"
|
style="margin-left: 10px">{{ $t("common.edit") }}
|
</el-button>
|
<el-button plain
|
size="small"
|
v-if="showPreview(scope.row)"
|
@click="handlePreview(scope.row)"
|
style="margin-left: 10px">{{ $t("common.preview") }}
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
|
</el-dialog>
|
<iframe id="downFrame"
|
src=""
|
style="display: none; border: 0; padding: 0; height: 0; width: 0"></iframe>
|
|
<div class="loadBox"
|
v-if="loadDialogVisible">
|
<div style="widht:100%; margin:20px; color:white">
|
<div style="margin-left:99%">
|
<!-- <el-link
|
@click="setloadDialogVisible()"
|
style="color:white"
|
> X</el-link> -->
|
</div>
|
</div>
|
<div v-loading="true"
|
element-loading-background="rgba(0, 0, 0, 0.0) "
|
element-loading-text="数据删除中"
|
style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); ">
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import $ from "jquery";
|
import { getToken } from "@/utils/auth";
|
import {
|
encr,
|
deleteMeta,
|
insertMeta,
|
meta_downloadReq,
|
meta_selectByPageForUpload,
|
meta_selectDownloadFile,
|
meta_selectFields,
|
meta_selectPageAndCountByPid,
|
meta_selectVerByDirid,
|
select_meta_ByPageAndCount,
|
selectdepTab,
|
selectdirTab,
|
sign_getPublicKey,
|
updateMeta,
|
meta_selectById,
|
meta_selectMetaOverflowDep,
|
meta_selectDepsByCodes,
|
apply_insertApply,
|
meta_selectGdbByGuid,
|
meta_selectConvertToDwg
|
} from "../../api/api";
|
|
import MyBread from "../../components/MyBread.vue";
|
|
export default {
|
name: "metadataManage",
|
components: { MyBread },
|
data () {
|
var repasswordValidator=(rule,value,callback) => {
|
if(value==="") {
|
callback(new Error("请再次输入密码"));
|
} else if(value!==this.codeForm.password) {
|
callback(new Error("两次输入密码不一致!"));
|
} else {
|
callback();
|
}
|
};
|
var passwordValidator=(rule,value,callback) => {
|
var passwordreg=
|
/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/;
|
if(!passwordreg.test(value)) {
|
callback(new Error("密码必须由数字、字母、特殊字符组合,请输入13-20位"));
|
} else {
|
callback();
|
}
|
};
|
return {
|
verOptions: [],
|
defaultProps: {
|
children: "children",
|
label: "name",
|
},
|
dirComPanyOption: [],
|
companyOption: [],
|
companyOption1: [],
|
activeName: "",
|
optionCount: [],
|
showCodeBox: false,
|
value: true,
|
multipleSelection: [],
|
formLabelWidth: "120px",
|
dialogFormVisible: false,
|
editForm: {},
|
showinfoBox: false,
|
fullscreenLoading: false,
|
itemdetail: {},
|
queryForm: {
|
name: "",
|
dirid: "",
|
depid: "",
|
verid: "",
|
depName: "",
|
|
},
|
behavior: "",
|
initialForm: "",
|
codeForm: {
|
password: "",
|
repassword: "",
|
},
|
rules: {
|
password: [
|
{ required: true,message: "请输入密码",trigger: "blur" },
|
{ validator: passwordValidator,trigger: "blur" },
|
],
|
repassword: [
|
{ required: true,message: "请输入确认密码",trigger: "blur" },
|
{ validator: repasswordValidator,trigger: "blur" },
|
],
|
},
|
tableData: [],
|
dbTableData: [],
|
count: 0,
|
currentPage: 1,
|
pageSize: 10,
|
pageIndex: 1,
|
btnStatus: {
|
select: false,
|
delete: false,
|
upload: false,
|
download: false,
|
insert: false,
|
update: false,
|
},
|
listData: {
|
pageSize: 10,
|
pageIndex: 1,
|
name: null,
|
dirid: null,
|
depid: null,
|
},
|
cascader: {
|
label: "name",
|
value: "id",
|
children: "children",
|
checkStrictly: true,
|
emitPath: false,
|
},
|
dialogVisible: false,
|
listLoader: {
|
id: null,
|
pageIndex: 1,
|
pageSize: 10,
|
},
|
count1: 0,
|
attributeData: [],
|
tableHeight: 0,
|
timer: 0,
|
styleVar: {
|
height: "calc(100% - 109px)",
|
},
|
listMetaData: {
|
metaid: 0,
|
name: "",
|
pageIndex: 1,
|
pageSize: 10,
|
count: 0,
|
},
|
queryMetaFlag: false,
|
fromQueryMeta: {
|
title: "",
|
name: "",
|
},
|
metaDataTable: [],
|
queryMetaFlag1: false,
|
metaDataTable1: [],
|
dialog: {
|
dialogVisible: false,
|
isPdf: false,
|
isJpg: false,
|
src: "",
|
},
|
dialogInsertFile: false,
|
fileFrom: {
|
descr: null,
|
depid: null,
|
ids: null,
|
pwd: null,
|
depcodes: null,
|
},
|
gdbData: [],
|
gdbDialog: false,
|
gdbGuid: null,
|
loadDialogVisible: false
|
};
|
},
|
created () {
|
// this.getSelectDictTab();
|
this.showPermsBtn();
|
this.getQueryDepTree();
|
|
this.signGetPublicKey();
|
},
|
beforeDestroy () {
|
this.timer&&clearTimeout(this.timer);
|
window.removeEventListener("resize",this.onResize);
|
},
|
|
mounted () {
|
window.addEventListener("resize",this.onResize);
|
this.calHeight();
|
},
|
watch: {
|
"queryForm.depName" () {
|
|
this.$refs.treeSelect.visible=false;
|
},
|
"queryForm.dirid" () {
|
|
this.$refs.treeSelect1.visible=false;
|
},
|
},
|
methods: {
|
//gdb 点击事件
|
setSelectGdbByGuid (row) {
|
this.gdbGuid=row.guid
|
this.getSelectGdbByGuid();
|
},
|
async getSelectGdbByGuid () {
|
if(!this.gdbGuid) return
|
const data=await meta_selectGdbByGuid({ guid: this.gdbGuid })
|
if(data.code!=200) {
|
return this.$message.error("根据GUID查询GDB数据失败");
|
}
|
if(data.count<=0) {
|
return this.$message("查无更多数据");
|
}
|
this.gdbData=data.result;
|
this.gdbDialog=true;
|
|
},
|
|
|
stateFormat (row,column) {
|
var val=['shp','gdb','xls','xlsx']
|
if(val.indexOf(row.type)>-1&&row.rows>0) {
|
return '已上传,已入库'
|
} else if(val.indexOf(row.type)>-1&&row.rows==0) {
|
return '已上传,未入库'
|
} else {
|
return '已上传'
|
}
|
},
|
//大小值改变
|
changeSizeFile (row,column,cellValue,index) {
|
if(cellValue>=1024) {
|
return parseFloat(cellValue/1204).toFixed(3)+"GB";
|
} else {
|
return cellValue+"MB";
|
}
|
},
|
setRestMetaData () {
|
this.fromQueryMeta.name="";
|
this.listMetaData.name=this.fromQueryMeta.name;
|
this.listMetaData.pageIndex=1;
|
this.listMetaData.pageSize=10;
|
|
this.startQueryMetaData();
|
},
|
setSearchMetaData () {
|
this.listMetaData.name=this.fromQueryMeta.name;
|
this.listMetaData.pageIndex=1;
|
this.listMetaData.pageSize=10;
|
|
this.startQueryMetaData();
|
},
|
//源数据页面切换
|
handleMetaSizeChange (val) {
|
this.listMetaData.pageIndex=1;
|
this.listMetaData.pageSize=val;
|
this.startQueryMetaData();
|
},
|
//源数据页面切换
|
handMetaCurrentChange (val) {
|
this.listMetaData.pageIndex=val;
|
this.startQueryMetaData();
|
},
|
//元数据查询
|
async setMetaDataQuery (row) {
|
this.fromQueryMeta.title=row.name;
|
this.listMetaData={
|
id: row.metaid,
|
|
};
|
const data=await meta_selectById(this.listMetaData);
|
if(data.code!=200) {
|
return;
|
}
|
|
this.queryMetaFlag1=true;
|
this.metaDataTable1=[data.result];
|
// this.listMetaData.count = data.count;
|
},
|
|
|
//源数据查询
|
setQueryMetaData (row) {
|
this.fromQueryMeta.title=row.name;
|
this.listMetaData={
|
metaid: row.id,
|
name: "",
|
pageIndex: 1,
|
pageSize: 10,
|
count: 0,
|
};
|
this.startQueryMetaData();
|
this.queryMetaFlag=true;
|
},
|
async startQueryMetaData () {
|
const data=await meta_selectPageAndCountByPid(this.listMetaData);
|
if(data.code!=200) {
|
return;
|
}
|
this.metaDataTable=data.result;
|
this.listMetaData.count=data.count;
|
},
|
|
onResize () {
|
this.timer&&clearTimeout(this.timer);
|
this.timer=setTimeout(() => {
|
this.calHeight();
|
},500);
|
},
|
calHeight () {
|
this.$nextTick(() => {
|
const rect=this.$refs.container.getBoundingClientRect();
|
this.tableHeight=`${rect.height+97}px`;
|
this.styleVar["height"]=`calc(100% - ${rect.height+28}px)`;
|
});
|
},
|
async detail (res) {
|
var val=res.tab.split(".");
|
const data=await meta_selectFields({
|
ns: val[0],
|
tab: val[1],
|
});
|
|
if(data.code!=200) {
|
this.$message.error("字段列表调用失败");
|
return;
|
}
|
|
this.dialogVisible=true;
|
|
this.attributeData=data.result;
|
|
this.listLoader={
|
id: res.id,
|
pageIndex: 1,
|
pageSize: 10,
|
};
|
this.getDataLoaderSelectDbData();
|
},
|
|
async getDataLoaderSelectDbData () {
|
const data1=await meta_selectByPageForUpload(this.listLoader);
|
if(data1.code!=200) {
|
this.$message.error("字段列表调用失败");
|
return;
|
}
|
|
var option=data1.result;
|
for(var i in option) {
|
option[i].dirid=option[i].dirName;
|
option[i].depid=option[i].depName;
|
option[i].createuser=option[i].createName;
|
option[i].updateuser=option[i].updateName;
|
option[i].verid=option[i].verName;
|
if(option[i].createtime!=null) {
|
option[i].createtime=this.setInfoBoxTime(option[i].createtime);
|
}
|
if(option[i].updatetime!=null) {
|
option[i].updatetime=this.setInfoBoxTime(option[i].updatetime);
|
}
|
}
|
this.dbTableData=data1.result;
|
this.count1=data1.count;
|
},
|
handleLoaderSizeChange (val) {
|
this.listLoader.pageIndex=1;
|
this.listLoader.pageSize=val;
|
this.getDataLoaderSelectDbData();
|
},
|
handleLoaderCurrentChange (val) {
|
this.listLoader.pageIndex=val;
|
this.getDataLoaderSelectDbData();
|
},
|
|
async signGetPublicKey () {
|
const res=await sign_getPublicKey();
|
if(res&&res.code==200) {
|
window.encrypt=new JSEncrypt();
|
encrypt.setPublicKey(res.result);
|
}
|
},
|
//单位列表获取
|
async getQueryDepTree () {
|
const res=await selectdepTab();
|
if(res.code!=200) {
|
this.$message.error("单位列表获取失败");
|
return;
|
}
|
this.companyOption1=this.treeData(res.result);
|
this.queryForm.depcode=this.companyOption1[0].code;
|
this.queryForm.depName=this.companyOption1[0].name;
|
this.getQueryDirTree();
|
},
|
|
async getQueryDirTree () {
|
const res=await selectdirTab();
|
if(res.code!=200) {
|
this.$message.error("单位列表获取失败");
|
return;
|
}
|
this.companyOption=this.treeData(res.result);
|
this.queryForm.dirid=this.companyOption[0].id;
|
this.queryForm.dircode=this.companyOption[0].code;
|
this.queryForm.dirName=this.companyOption[0].name;
|
this.getQueryVerList();
|
},
|
|
async getQueryVerList () {
|
const data=await meta_selectVerByDirid({ dirid: this.queryForm.dirid });
|
if(data.code!=200) {
|
this.$message.error("版本列表获取失败");
|
return;
|
}
|
this.verOptions=data.result;
|
this.queryForm.verid=data.result[0].id;
|
this.getMetaData();
|
},
|
verHandleChange (val) {
|
this.queryForm.verid=val;
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
this.getMetaData();
|
},
|
handleChange (data,node,nodeData) {
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
this.queryForm.dircode=data.code;
|
this.queryForm.dirid=data.id;
|
this.queryForm.dirName=data.name;
|
this.getQueryVerList();
|
},
|
handleChange1 (data,node,nodeData) {
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
this.queryForm.depcode=data.code;
|
this.queryForm.depName=data.name;
|
|
this.getMetaData();
|
},
|
handleChange2 (data,node,nodeData) {
|
this.editForm.depid=data.id;
|
this.editForm.depcode=data.code;
|
this.editForm.depName=data.name;
|
},
|
handleChange3 (data,node,nodeData) {
|
this.editForm.dirid=data.id;
|
this.editForm.dircode=data.code;
|
this.editForm.dirName=data.name;
|
},
|
//格式化列表
|
formatData (row,column) {
|
let data=row[column.property];
|
if(data==null) {
|
return data;
|
}
|
return this.format(data);
|
},
|
setInfoBoxTime (res) {
|
if(res==null) {
|
return res;
|
}
|
return this.format(res);
|
},
|
setInfoBoxSize (res) {
|
if(res>=1024) {
|
return parseFloat(res/1024).toFixed(3)+" GB";
|
} else {
|
return res+" MB";
|
}
|
},
|
//格式化时间
|
format (shijianchuo) {
|
//shijianchuo是整数,否则要parseInt转换
|
var time=new Date(shijianchuo);
|
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;
|
},
|
//单位转换
|
stateFormatSizes (row,column) {
|
if(row.sizes>=1024) {
|
const val=parseFloat(row.sizes/1024).toFixed(3);
|
return val+" GB";
|
} else {
|
return row.sizes+" MB";
|
}
|
},
|
//目录树获取
|
async getSelectDictTab () {
|
const res=await selectdirTab();
|
if(res.code!=200) {
|
this.$message.error("列表调用失败");
|
}
|
this.optionCount=this.treeData(res.result);
|
this.dirComPanyOption=this.treeData(res.result);
|
this.listData.depcode=this.optionCount[0].code;
|
},
|
handleNodeClick (data) {
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
this.listData.dirid=data.id;
|
this.getMetaData();
|
},
|
getTableDesc (res) {
|
this.activeName=res.tab;
|
},
|
//显示权限按钮
|
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));
|
},
|
// ShowWindowFly(res) {
|
// console.log(res);
|
// if (res == '') return;
|
// if (res.indexOf('.xls') != -1) {
|
// this.showMetadata(res, true);
|
// } else if (res.indexOf('.doc') != -1) {
|
// this.showMetadata(res, true);
|
// } else if (res.indexOf('.png') != -1) {
|
// this.showMetadata(res, true);
|
// } else if (res.indexOf('.jpg') != -1) {
|
// this.showMetadata(res, true);
|
// } else if (res.indexOf('.pdf') != -1) {
|
// this.showMetadata(res, true);
|
// } else if (res.indexOf('.fly') != -1) {
|
// this.showMetadata(res, false);
|
// } else if (res.indexOf('.mpt') != -1) {
|
// this.showMetadata(res, false);
|
// }
|
// },
|
// showMetadata(res, flag) {
|
// var metaUrl;
|
// if (flag == true) {
|
// metaUrl = res;
|
// } else if (flag == false) {
|
// metaUrl = ifreamUrl + '/LFWeb/MetaPop.html?name=' + res;
|
// }
|
// window.open(
|
// metaUrl,
|
// '',
|
// 'height=800, width=1500, top=150, left=350, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no'
|
// );
|
// },
|
// 请求数据内容
|
getMetaData () {
|
this.listData.depcode=this.queryForm.depcode;
|
this.listData.dircode=this.queryForm.dircode;
|
|
this.listData.verid=this.queryForm.verid;
|
// this.listData.dirid = 57
|
|
select_meta_ByPageAndCount(this.listData).then((res) => {
|
this.tableData=res.result;
|
this.count=res.count;
|
});
|
},
|
// 查询
|
queryInfo () {
|
this.listData.name=this.queryForm.name.trim();
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
this.getMetaData();
|
},
|
// 重置查询
|
resetInfo (formName) {
|
this.$refs[formName].resetFields();
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
this.listData.name=null;
|
this.queryForm.dirid=this.companyOption[0].id;
|
this.queryForm.depid=this.companyOption1[0].id;
|
this.queryForm.dircode=this.companyOption[0].code;
|
this.queryForm.depcode=this.companyOption1[0].code;
|
this.queryForm.dirName=this.companyOption[0].name;
|
this.queryForm.depName=this.companyOption1[0].name;
|
this.getQueryVerList();
|
this.getMetaData();
|
},
|
//新增按钮
|
showAddDialog () {
|
this.behavior="新增用户";
|
this.editForm={};
|
this.dialogFormVisible=true;
|
},
|
cancelAdd (formName) {
|
this.editForm={};
|
this.$refs[formName].resetFields();
|
},
|
sendAdd (formName) {
|
this.$refs[formName].validate((valid) => {
|
if(valid) {
|
this.fullscreenLoading=true;
|
insertMeta(this.editForm)
|
.then((res) => {
|
setTimeout(() => {
|
this.fullscreenLoading=false;
|
if(res.code==200) {
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
this.getMetaData();
|
this.$message({
|
message: "添加成功",
|
type: "success",
|
});
|
this.editForm={};
|
this.dialogFormVisible=false;
|
}
|
},500);
|
})
|
.catch((res) => {
|
alert("修改失败,请重试!");
|
this.fullscreenLoading=false;
|
});
|
} else {
|
console.log("error submit!!");
|
return false;
|
}
|
});
|
},
|
// 获取多选选中的对象
|
handleSelectionChange (val) {
|
this.multipleSelection=val;
|
},
|
// 删除多条
|
deleteMetaInfo () {
|
if(this.multipleSelection.length<=0) {
|
return this.$message("请选择要删除的数据");
|
}
|
this.$confirm("确定是否删除所选内容?","提示",{
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
var std=[];
|
for(var i in this.multipleSelection) {
|
std.push(this.multipleSelection[i].id);
|
}
|
this.loadDialogVisible=true;
|
deleteMeta({ ids: std.toString() }).then((res) => {
|
if(res.code==200) {
|
this.loadDialogVisible=false;
|
this.$message({
|
type: "success",
|
message: "删除成功!",
|
});
|
this.multipleSelection=[];
|
// this.listData.pageSize = 10
|
this.listData.pageIndex=1;
|
|
this.getMetaData();
|
} else {
|
this.loadDialogVisible=false;
|
this.$message.error("删除失败");
|
|
this.multipleSelection=[];
|
}
|
});
|
})
|
.catch(() => {
|
this.$message("已取消删除");
|
});
|
},
|
|
// 查看界面
|
showDetail (row) {
|
// console.log(index, row);
|
this.showinfoBox=true;
|
|
this.itemdetail=row;
|
|
},
|
// 关闭查看
|
closeDetial () {
|
this.showinfoBox=false;
|
this.itemdetail={};
|
},
|
// 修改界面
|
editInfo (row) {
|
// console.log(row);
|
delete row.createTime;
|
delete row.createUser;
|
delete row.updateUser;
|
delete row.updateUser;
|
this.initialForm=JSON.stringify(row); //备份
|
this.behavior="修改信息";
|
this.editForm=JSON.parse(JSON.stringify(row));
|
this.dialogFormVisible=true;
|
this.getSelectDictTab();
|
},
|
handleClose (done) {
|
this.$confirm("确认关闭?")
|
.then((_) => {
|
this.editForm={};
|
done();
|
})
|
.catch((_) => { });
|
},
|
|
// 提交修改
|
sendEdit () {
|
this.$confirm("是否确定编辑?","提示",{
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
this.dialogFormVisible=false;
|
updateMeta(this.editForm).then((res) => {
|
setTimeout(() => {
|
this.fullscreenLoading=false;
|
if(res.code==200) {
|
this.listData.pageSize=10;
|
this.listData.pageIndex=1;
|
|
if(this.gdbDialog) {
|
this.getSelectGdbByGuid();
|
} else {
|
this.getMetaData();
|
}
|
|
|
this.$message({
|
message: "修改成功",
|
type: "success",
|
});
|
this.editForm={};
|
this.dialogFormVisible=false;
|
}
|
},500);
|
});
|
})
|
.catch(() => {
|
alert("修改失败,请重试!");
|
this.fullscreenLoading=false;
|
});
|
|
},
|
cancelEdit () {
|
this.$nextTick(() => {
|
this.editForm=JSON.parse(this.initialForm);
|
});
|
},
|
async download () {
|
var ids=[];
|
for(var i in this.multipleSelection) {
|
ids.push(this.multipleSelection[i].id);
|
}
|
var obj={
|
ids: ids,
|
};
|
const data=await meta_selectMetaOverflowDep(obj);
|
if(data.code!=200) {
|
return;
|
}
|
var password=this.codeForm.repassword;
|
if(data.result.length==0) {
|
var obj={
|
pwd: encrypt.encrypt(this.codeForm.repassword),
|
ids: ids,
|
};
|
const res=await meta_downloadReq(JSON.stringify(obj));
|
if(res.code!=200) {
|
this.$message.error("下载请求失败");
|
return;
|
}
|
|
var downObj={
|
guid: res.result,
|
pwd: encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)),
|
};
|
const data1=await meta_selectDownloadFile(downObj);
|
if(data1.code!=200) {
|
this.$message.error("下载请求失败");
|
return;
|
}
|
var token=getToken();
|
var url=
|
BASE_URL+
|
"/meta/downloadFile?token="+
|
token+
|
"&guid="+
|
res.result+
|
"&pwd="+
|
encodeURIComponent(encrypt.encrypt(this.codeForm.repassword));
|
|
$("#downFrame").attr("src",url).click();
|
} else {
|
var val="";
|
var std=[];
|
for(var i in data.result) {
|
if(val=="") {
|
val+="codes="+data.result[i];
|
} else {
|
val+="&codes="+data.result[i];
|
}
|
std.push({
|
name: data.result[i],
|
});
|
}
|
const data1=await meta_selectDepsByCodes(val);
|
if(data1.code!=200) {
|
return;
|
}
|
|
this.fileFrom.depid=data1.result;
|
this.fileFrom.ids=ids;
|
this.fileFrom.pwd=encr(password);
|
this.fileFrom.depcodes=data.result;
|
this.dialogInsertFile=true;
|
}
|
|
this.closeDown();
|
},
|
|
async getFileInsertApply () {
|
this.dialogInsertFile=false;
|
|
var obj={
|
ids: this.fileFrom.ids,
|
pwd: this.fileFrom.pwd,
|
tabs: ["元数据表"],
|
entities: ["sysmeta"],
|
descr: this.fileFrom.descr,
|
depcodes: this.fileFrom.depcodes,
|
};
|
|
const data=await apply_insertApply(JSON.stringify(obj));
|
this.handleInsertFileClose();
|
if(data.code!=200) {
|
this.$message.error("数据申请失败");
|
return;
|
}
|
this.$message({
|
message: "数据申请成功",
|
type: "success",
|
});
|
},
|
handleInsertFileClose () {
|
this.dialogInsertFile=false;
|
this.fileFrom={
|
descr: null,
|
depid: null,
|
ids: null,
|
pwd: null,
|
depcodes: null,
|
};
|
},
|
|
closeDown () {
|
this.showCodeBox=false;
|
this.codeForm.password="";
|
this.codeForm.repassword="";
|
},
|
downFormData () {
|
if(this.multipleSelection.length==0) {
|
alert("请先选择要下载的文件");
|
return;
|
}
|
this.showCodeBox=true;
|
},
|
|
handleSizeChange (val) {
|
this.listData.pageSize=val;
|
this.listData.pageIndex=1;
|
this.getMetaData();
|
},
|
handleCurrentChange (val) {
|
this.listData.pageIndex=val;
|
this.getMetaData();
|
},
|
//树列表生成
|
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; // 返回一级菜单
|
});
|
},
|
showPreview (row) {
|
let name=row.name;
|
if(!name) return false;
|
return (
|
name.indexOf("pdf")!=-1||
|
name.indexOf("jpg")!=-1||
|
name.indexOf("gif")!=-1||
|
name.indexOf("png")!=-1||
|
name.indexOf("jpeg")!=-1
|
);
|
},
|
showCAD (row) {
|
let name=row.name;
|
if(!name) return false;
|
return (
|
name.indexOf("dwg")!=-1
|
|
);
|
},
|
async handleCAD (row) {
|
const data=await meta_selectConvertToDwg({
|
id: row.id,type: false
|
})
|
if(data.result) {
|
var url=iisHost+"/dwg/cad/browse/?file=data/"+data.result;
|
window.open(url)
|
} else {
|
return this.$message("数据转换失败,无法预览");
|
}
|
|
},
|
handlePreview (row) {
|
let name=row.name;
|
this.refreshAttatchDetail();
|
|
if(name.indexOf(".pdf")!=-1) {
|
this.dialog.isPdf=true;
|
} else if(
|
name.indexOf(".jpg")!=-1||
|
name.indexOf(".gif")!=-1||
|
name.indexOf(".png")!=-1||
|
name.indexOf(".jpeg")!=-1
|
) {
|
this.dialog.isJpg=true;
|
}
|
this.dialog.dialogVisible=true;
|
|
var url=
|
BASE_URL+
|
"/inquiry/downloadForView?guid="+
|
row.guid+
|
"&token="+
|
getToken();
|
this.dialog.src=url;
|
},
|
refreshAttatchDetail () {
|
this.dialog.src="";
|
this.dialog.dialogVisible=false;
|
this.dialog.isPdf=false;
|
this.dialog.isJpg=false;
|
},
|
},
|
};
|
</script>
|
<style lang="less" scoped>
|
//@import url(); 引入公共css类
|
.authorityManagement_box {
|
height: 98%;
|
width: 98%;
|
padding: 0.5%;
|
|
.inquire {
|
padding: 8px;
|
//margin-top: 20px;
|
|
border-radius: 5px;
|
|
//margin-bottom: 20px;
|
.el-form-item {
|
margin: 5px;
|
}
|
}
|
|
.dotClass {
|
width: 10px;
|
height: 10px;
|
border-radius: 50%;
|
display: block;
|
margin-left: 10px; //这个用于圆点居中
|
}
|
|
.downloadBox {
|
position: absolute;
|
top: 20%;
|
left: 40%;
|
padding: 20px;
|
|
width: 30%;
|
|
border-radius: 10px;
|
}
|
.preview-dialog {
|
.pdfClass {
|
height: 70vh;
|
width: 100%;
|
position: relative;
|
}
|
}
|
.el-divider--horizontal {
|
margin: 15px 0;
|
}
|
.gdbTableBox {
|
width: 100%;
|
height: 740px;
|
overflow-y: auto;
|
}
|
.loadBox {
|
position: fixed;
|
z-index: 2002;
|
background: rgba(0, 0, 0, 0.2);
|
width: 100%;
|
height: 100%;
|
top: 0;
|
left: 0;
|
.el-loading-mask {
|
background: transparent !important;
|
}
|
}
|
}
|
</style>
|