From f088e6887fe88f0be698892c9883521e9e57d5c3 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 25 七月 2023 09:31:53 +0800 Subject: [PATCH] 信息管理 GDB数据修改 --- src/views/datamanage/metadataManage.vue | 2219 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 1,737 insertions(+), 482 deletions(-) diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue index 1ab29bd..8ee4f93 100644 --- a/src/views/datamanage/metadataManage.vue +++ b/src/views/datamanage/metadataManage.vue @@ -1,187 +1,399 @@ <template> <div class="authorityManagement_box"> - <My-bread - :list="[ + <My-bread :list="[ `${$t('dataManage.dataManage')}`, `${$t('dataManage.metadataManage')}`, - ]" - ></My-bread> + ]"></My-bread> <el-divider /> - <div class="inquire"> - <el-form ref="queryForm" :model="queryForm" :inline="true"> - <el-form-item :label="$t('dataManage.vmobj.keyword')" prop="name"> - <el-input - v-model="queryForm.name" - :placeholder="$t('common.pleaseInput')" - /> - </el-form-item> - <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> - <el-button - @click="resetInfo('queryForm')" - icon="el-icon-refresh" - type="info" - size="small" - >{{ $t('common.reset') }}</el-button - > - </el-form-item> + <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 v-if="btnStatus.insert"> - <el-button - type="success" - size="small" - @click="showAddDialog" - icon="el-icon-plus" - >{{ $t('common.append') }}</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="bottom"> - <div class="rightTable"> - <div class="table_box"> - <el-table - :data="tableData" - style="width: 100%" - @selection-change="handleSelectionChange" - height="99%" - > - <el-table-column type="selection" width="55" /> - <el-table-column prop="name" :label="$t('common.name')" /> - <el-table-column prop="format" :label="$t('common.format')" /> - <el-table-column prop="sizes" :label="$t('common.size')" /> - <el-table-column - prop="createUser" - :label="$t('dataManage.vmobj.createonuser')" - /> - <el-table-column - prop="createTime" - :label="$t('dataManage.vmobj.createontime')" - /> - <el-table-column - prop="cs" - :label="$t('dataManage.vmobj.coordSystem')" - /> - <el-table-column - prop="scale" - :label="$t('dataManage.vmobj.scale')" - /> - <el-table-column - prop="resolution" - :label="$t('dataManage.vmobj.resolpower')" - /> + <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="descr" - :label="$t('dataManage.vmobj.describe')" - /> - <el-table-column min-width="100" :label="$t('common.operate')"> - <template slot-scope="scope"> - <el-link style="color: white" @click="showDetail(scope.row)">{{ - $t('common.details') - }}</el-link> - <el-link - @click="editInfo(scope.row)" - style="margin-left: 10px; color: white" - >{{ $t('common.edit') }}</el-link - > - </template> - </el-table-column> - </el-table> - </div> - <div style="margin-top: 10px" class="pagination_box"> - <el-pagination - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - :current-page="currentPage" - :page-sizes="[10, 20, 50, 100]" - :page-size="10" - layout="total, sizes, prev, pager, next, jumper" - :total="count" - > - </el-pagination> - </div> + <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> + </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" v-show="showinfoBox"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>{{ $t('common.details') }}</span> - <div style="float: right; cursor: pointer" @click="closeDetial"> + <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> - <div class="contentBox"> - <p>{{ $t('dataManage.vmobj.name') }}锛歿{ itemdetail.name }}</p> + <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.type') }}锛歿{ itemdetail.type }}</p> + <p>{{ $t("dataManage.vmobj.format") }}锛歿{ itemdetail.type }}</p> <el-divider></el-divider> - <p>{{ $t('common.format') }}锛歿{ itemdetail.format }}</p> + <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.createontime') }}锛歿{ - itemdetail.createTime + {{ $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.createonuser') }}锛歿{ - itemdetail.createUser + {{ $t("dataManage.vmobj.depName") }}锛歿{ + setInfoBoxTime(itemdetail.updateTime) }} - </p> - <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.updateontime') }}锛歿{ - itemdetail.updateTime - }} - </p> - <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.updateonuser') }}锛歿{ - itemdetail.updateUser - }} - </p> - <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.coordSystem') }}锛歿{ itemdetail.cs }}</p> - <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.scale') }}锛歿{ itemdetail.scale }}</p> - <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.resolpower') }}锛歿{ itemdetail.resolution }} - </p> - <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.describe') }}锛歿{ itemdetail.descr }}</p> + </p> --> </div> - </el-card> + </div> </div> + <el-dialog - width="510px" + width="80vh" top="5vh" :title=" behavior == '鏂板鐢ㄦ埛' @@ -191,73 +403,200 @@ :visible.sync="dialogFormVisible" :before-close="handleClose" > - <el-form :model="editForm" ref="editForm"> + <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-input + v-model="editForm.name" + autocomplete="off" + ></el-input> </el-form-item> <el-form-item - :label="$t('dataManage.vmobj.type')" + :label="$t('dataManage.vmobj.format')" :label-width="formLabelWidth" > - <el-input v-model="editForm.type" autocomplete="off"></el-input> + <el-input + v-model="editForm.type" + autocomplete="off" + ></el-input> </el-form-item> <el-form-item - :label="$t('common.format')" + :label="$t('dataManage.vmobj.size')" :label-width="formLabelWidth" > - <el-input v-model="editForm.format" autocomplete="off"></el-input> + <el-input + v-model="editForm.sizes" + autocomplete="off" + ></el-input> </el-form-item> <el-form-item - :label="$t('dataManage.vmobj.coordSystem')" + :label="$t('dataManage.vmobj.depName')" :label-width="formLabelWidth" > - <el-input v-model="editForm.cs" autocomplete="off"></el-input> + <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.scale')" + :label="$t('dataManage.vmobj.dirName')" :label-width="formLabelWidth" > - <el-input v-model="editForm.scale" autocomplete="off"></el-input> - </el-form-item> - <el-form-item - :label="$t('dataManage.vmobj.resolpower')" - :label-width="formLabelWidth" - > - <el-input v-model="editForm.resolution" autocomplete="off"></el-input> + <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.descr" autocomplete="off"></el-input> + <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="medium" @click="cancelEdit()">閲嶇疆</el-button> + <div + v-if="behavior == '淇敼淇℃伅'" + slot="footer" + class="dialog-footer" + > <el-button - size="medium" + size="small" + @click="cancelEdit()" + >{{ $t("common.reset") }} + </el-button> + <el-button + size="small" type="primary" @click="sendEdit('editForm')" v-loading.fullscreen.lock="fullscreenLoading" - >鎻愪氦</el-button - > + >{{ $t("common.submit") }} + </el-button> </div> - <div v-else slot="footer" class="dialog-footer"> - <el-button size="medium" @click="cancelAdd('editForm')">閲嶇疆</el-button> + <div + v-else + slot="footer" + class="dialog-footer" + > <el-button - size="medium" + size="small" + @click="cancelAdd('editForm')" + >{{ $t("common.reset") }} + </el-button> + <el-button + size="small" type="primary" @click="sendAdd('editForm')" v-loading.fullscreen.lock="fullscreenLoading" - >鎻愪氦</el-button - > + >{{ $t("common.submit") }} + </el-button> </div> </el-dialog> - <div class="downloadBox" v-if="showCodeBox"> - <h4 style="padding: 20px">璇疯緭鍏ヤ笅杞藉寘瀵嗙爜</h4> + <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" @@ -265,74 +604,562 @@ label-width="100px" class="codeForm" > - <el-form-item label="瀵嗙爜" prop="password"> - <el-input type="password" v-model="codeForm.password"></el-input> + <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="纭瀵嗙爜" prop="repassword"> - <el-input type="password" v-model="codeForm.repassword"></el-input> + <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 type="primary" size="small" @click="download('codeForm')" - >纭畾</el-button - > - <el-button type="info" size="small" @click="closeDown('codeForm')" - >鍙栨秷</el-button - > + <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]" + :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%" + > + <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> </template> <script> +import $ from "jquery"; +import { getToken } from "@/utils/auth"; import { - select_meta_ByPageAndCount, - // queryDataCount, - updateMeta, + encr, deleteMeta, insertMeta, -} from '../../api/api'; -import MyBread from '../../components/MyBread.vue'; + 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, +} from "../../api/api"; + +import MyBread from "../../components/MyBread.vue"; + export default { - name: 'metadataManage', + name: "metadataManage", components: { MyBread }, data() { var repasswordValidator = (rule, value, callback) => { - if (value === '') { - callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + if (value === "") { + callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�")); } else if (value !== this.codeForm.password) { - callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + 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', + formLabelWidth: "120px", dialogFormVisible: false, editForm: {}, showinfoBox: false, fullscreenLoading: false, itemdetail: {}, queryForm: { - name: '', + name: "", + dirid: "", + depid: "", + verid: "", + depName: "", + }, - behavior: '', - initialForm: '', + behavior: "", + initialForm: "", codeForm: { - password: '', - repassword: '', + password: "", + repassword: "", }, rules: { - password: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' }], + password: [ + { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" }, + { validator: passwordValidator, trigger: "blur" }, + ], repassword: [ - { required: true, message: '璇疯緭鍏ョ‘璁ゅ瘑鐮�', trigger: 'blur' }, - { validator: repasswordValidator, trigger: 'blur' }, + { required: true, message: "璇疯緭鍏ョ‘璁ゅ瘑鐮�", trigger: "blur" }, + { validator: repasswordValidator, trigger: "blur" }, ], }, tableData: [], + dbTableData: [], count: 0, currentPage: 1, pageSize: 10, @@ -345,16 +1172,421 @@ 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, }; }, created() { - this.getMetaData({ - pageIndex: 1, - pageSize: 10, - }); + // 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鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲 + 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; @@ -363,72 +1595,76 @@ .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' - ); - }, + // 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(params) { - select_meta_ByPageAndCount(params).then((res) => { + 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() { - let searchData = { - name: this.queryForm.name.trim(), - pageIndex: this.pageIndex, - pageSize: this.pageSize, - }; - select_meta_ByPageAndCount(searchData).then((res) => { - if (res.code == 200) { - this.tableData = res.result; - this.count = res.count; - } else { - console.log('鏌ヨ鎺ュ彛鎶ラ敊'); - this.$notify.error({ - title: res.code, - message: res.result, - }); - } - }); + 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.behavior = "鏂板鐢ㄦ埛"; this.editForm = {}; this.dialogFormVisible = true; }, @@ -439,17 +1675,18 @@ sendAdd(formName) { this.$refs[formName].validate((valid) => { if (valid) { - console.log(this.editForm); this.fullscreenLoading = true; insertMeta(this.editForm) .then((res) => { setTimeout(() => { this.fullscreenLoading = false; if (res.code == 200) { - this.getMetaData({ pageIndex: 1, pageSize: 10 }); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.getMetaData(); this.$message({ - message: '娣诲姞鎴愬姛', - type: 'success', + message: "娣诲姞鎴愬姛", + type: "success", }); this.editForm = {}; this.dialogFormVisible = false; @@ -457,11 +1694,11 @@ }, 500); }) .catch((res) => { - alert('淇敼澶辫触锛岃閲嶈瘯锛�'); + alert("淇敼澶辫触锛岃閲嶈瘯锛�"); this.fullscreenLoading = false; }); } else { - console.log('error submit!!'); + console.log("error submit!!"); return false; } }); @@ -472,10 +1709,10 @@ }, // 鍒犻櫎澶氭潯 deleteMetaInfo() { - this.$confirm('纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning', + this.$confirm("纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", }) .then(() => { var std = []; @@ -485,19 +1722,21 @@ deleteMeta({ ids: std.toString() }).then((res) => { if (res.code == 200) { this.$message({ - type: 'success', - message: '鍒犻櫎鎴愬姛!', + type: "success", + message: "鍒犻櫎鎴愬姛!", }); this.multipleSelection = []; - this.getMetaData({ pageIndex: 1, pageSize: 10 }); + // this.listData.pageSize = 10 + this.listData.pageIndex = 1; + this.getMetaData(); } else { - this.$message.error('鍒犻櫎澶辫触'); + this.$message.error("鍒犻櫎澶辫触"); this.multipleSelection = []; } }); }) .catch(() => { - this.$message('宸插彇娑堝垹闄�'); + this.$message("宸插彇娑堝垹闄�"); }); }, @@ -505,7 +1744,9 @@ showDetail(row) { // console.log(index, row); this.showinfoBox = true; + this.itemdetail = row; + }, // 鍏抽棴鏌ョ湅 closeDetial() { @@ -520,25 +1761,26 @@ delete row.updateUser; delete row.updateUser; this.initialForm = JSON.stringify(row); //澶囦唤 - this.behavior = '淇敼淇℃伅'; + this.behavior = "淇敼淇℃伅"; this.editForm = JSON.parse(JSON.stringify(row)); this.dialogFormVisible = true; + this.getSelectDictTab(); }, handleClose(done) { - this.$confirm('纭鍏抽棴锛�') + this.$confirm("纭鍏抽棴锛�") .then((_) => { this.editForm = {}; done(); }) - .catch((_) => {}); + .catch((_) => { }); }, // 鎻愪氦淇敼 sendEdit() { - this.$confirm('鏄惁纭畾缂栬緫?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning', + this.$confirm("鏄惁纭畾缂栬緫?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", }) .then(() => { this.dialogFormVisible = false; @@ -546,10 +1788,19 @@ setTimeout(() => { this.fullscreenLoading = false; if (res.code == 200) { - this.getMetaData({ pageIndex: 1, pageSize: 10 }); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + + if (this.gdbDialog) { + this.getSelectGdbByGuid(); + } else { + this.getMetaData(); + } + + this.$message({ - message: '淇敼鎴愬姛', - type: 'success', + message: "淇敼鎴愬姛", + type: "success", }); this.editForm = {}; this.dialogFormVisible = false; @@ -558,37 +1809,194 @@ }); }) .catch(() => { - alert('淇敼澶辫触锛岃閲嶈瘯锛�'); + alert("淇敼澶辫触锛岃閲嶈瘯锛�"); this.fullscreenLoading = false; }); + }, cancelEdit() { this.$nextTick(() => { this.editForm = JSON.parse(this.initialForm); }); }, - download() {}, + 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 = ''; + this.codeForm.password = ""; + this.codeForm.repassword = ""; }, downFormData() { if (this.multipleSelection.length == 0) { - alert('璇峰厛閫夋嫨瑕佷笅杞界殑鏂囦欢'); + alert("璇峰厛閫夋嫨瑕佷笅杞界殑鏂囦欢"); return; } this.showCodeBox = true; }, handleSizeChange(val) { - this.pageSize = val; - this.queryInfo(); + this.listData.pageSize = val; + this.listData.pageIndex = 1; + this.getMetaData(); }, handleCurrentChange(val) { - this.pageIndex = val; - this.currentPage = val; - this.queryInfo(); + 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) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� + 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 + ); + }, + 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; }, }, }; @@ -596,66 +2004,19 @@ <style lang="less" scoped> //@import url(); 寮曞叆鍏叡css绫� .authorityManagement_box { - height: 81%; - width: 97%; - position: absolute; - box-sizing: border-box; + height: 98%; + width: 98%; + padding: 0.5%; .inquire { - position: relative; - overflow: auto; - padding-bottom: 8px; - border: 1px solid white; + padding: 8px; + //margin-top: 20px; + border-radius: 5px; - padding: 1%; + + //margin-bottom: 20px; .el-form-item { margin: 5px; - } - } - .bottom { - width: 98%; - margin-top: 1%; - height: 77%; - padding: 1%; - border: 1px solid white; - border-radius: 5px; - .rightTable { - height: 100%; - width: 100%; - .table_box { - width: 100%; - height: 93%; - margin: 0 auto; - overflow: auto; - } - } - } - .infoBox { - width: 500px; - position: absolute; - z-index: 100; - top: 10%; - right: 25%; - background: #303030; - color: #fff; - .el-card { - background-color: transparent; - color: #fff; - span { - color: #fff; - font-size: 16px; - font-weight: 600; - } - } - .contentBox { - margin: 0 aotu 10px; - height: 500px; - overflow: auto; - p { - // background-color: #bfa; - // margin-bottom: 10px; - font-size: 14px; - } } } @@ -666,137 +2027,31 @@ display: block; margin-left: 10px; //杩欎釜鐢ㄤ簬鍦嗙偣灞呬腑 } + .downloadBox { position: absolute; top: 20%; - left: 50%; + left: 40%; padding: 20px; - width: 20%; - border: 1px solid #000; + width: 30%; + border-radius: 10px; } - /*淇敼table 琛ㄤ綋鐨勮儗鏅鑹插拰鏂囧瓧棰滆壊*/ - /deep/ .el-table { - background-color: transparent; - - th, - td { - background-color: transparent; - } - .el-table__expanded-cell { - background-color: transparent !important; - } - - // 琛ㄥご鑳屾櫙鑹� - th.el-table__cell { - background-color: #303030; - color: #fff; - } - tr > td { - background-color: #303030; - color: #fff; - } - - // hover鏁堟灉 - tr:hover > td { - background-color: rgba(255, 255, 255, 0.3) !important; - } - - tbody tr:hover { - background-color: rgba(255, 255, 255, 0.3) !important; - // text-align: center; - } - - // 婊氬姩鏉″楂� - .el-table__body-wrapper::-webkit-scrollbar { - width: 5px; - height: 5px; - } - - .el-table__body-wrapper::-webkit-scrollbar { - width: 5px; - /*婊氬姩鏉″搴�*/ - height: 5px; - /*婊氬姩鏉¢珮搴�*/ - } - /*瀹氫箟婊氬姩鏉¤建閬� 鍐呴槾褰�+鍦嗚*/ - .el-table__body-wrapper::-webkit-scrollbar-track { - box-shadow: 0px 1px 3px #216fe6 inset; - /*婊氬姩鏉$殑鑳屾櫙鍖哄煙鐨勫唴闃村奖*/ - border-radius: 10px; - } - - /*瀹氫箟婊戝潡 鍐呴槾褰�+鍦嗚*/ - .el-table__body-wrapper::-webkit-scrollbar-thumb { - box-shadow: 0px 1px 3px #216fe6 inset; - border-radius: 6px; - background-color: #216fe6; + .preview-dialog { + .pdfClass { + height: 70vh; + width: 100%; + position: relative; } } - /deep/.el-form-item__label { - color: white; + .el-divider--horizontal { + margin: 15px 0; } - // 璁剧疆杈撳叆妗嗙殑鑳屾櫙鑹层�佸瓧浣撻鑹层�佽竟妗嗗睘鎬ц缃紱 - /deep/.el-input__inner { - background-color: transparent !important ; - color: #fff; - border: 1px solid; - } - /deep/ .el-dialog { - background: #303030; - } - /deep/.el-range-editor.is-active, - .el-range-editor.is-active:hover, - .el-select .el-input.is-focus .el-input__inner { - border: 1px solid; - } - /deep/.el-dialog__title { - color: white; - } - /deep/ .el-select .el-input__inner { - border-color: #fff !important; - } - .pagination_box { - margin-top: 20px; - /deep/.el-input__inner { - background-color: transparent !important; - border: 1px solid; - color: white; - } - /deep/.el-pagination__total { - color: white; - } - /deep/.el-pagination__jump { - color: white; - } - /deep/.el-pager li.active { - color: #409eff; - } - /deep/.el-pager li { - color: white; - background: transparent; - } - /deep/.el-pager li { - color: white; - } - /deep/.btn-prev { - background: transparent; - } - /deep/.btn-next { - background: transparent; - } - /deep/.btn-next i { - color: white; - } - /deep/.btn-prev i { - color: white; - } - } - .primary { - background: #409eff; - border: #409eff; - color: white; + .gdbTableBox { + width: 100%; + height: 740px; + overflow-y: auto; } } </style> -- Gitblit v1.9.3