From 3ffbf14664836032438b1fd496aefbd99187e2c9 Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期一, 22 四月 2024 15:17:54 +0800 Subject: [PATCH] 信息管理添加CAD查看 --- src/views/datamanage/metadataManage.vue | 2173 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 1,506 insertions(+), 667 deletions(-) diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue index 2ad33c1..d8699cc 100644 --- a/src/views/datamanage/metadataManage.vue +++ b/src/views/datamanage/metadataManage.vue @@ -1,279 +1,393 @@ <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="leftTree"> - <el-tree - ref="tree" - :props="defaultProps" - node-key="id" - :data="optionCount" - :default-expanded-keys="[1]" - :current-node-key="1" - :expand-on-click-node="false" - :default-expand-all="false" - draggable - @node-click="handleNodeClick" - > + <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> - </span> - </el-tree> - <!-- <ul> - <li - @click="getTableDesc(item)" - v-for="item in optionCount" - :class="{ active: activeName == item.tab }" - > - {{ item.tabDesc }}({{ item.tab }}) - </li> - </ul> --> - </div> - <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('dataManage.vmobj.name')" /> - <el-table-column - prop="type" - :label="$t('dataManage.vmobj.format')" - /> - <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')" - /> - <el-table-column - prop="gather" - :label="$t('dataManage.vmobj.gather')" - :formatter="formatData" - /> - <el-table-column - prop="describe" - :label="$t('dataManage.vmobj.describe')" - /> - <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 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> - <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="listData.pageIndex" - :page-sizes="[10, 20, 50, 100]" - :page-size="listData.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="count" - > - </el-pagination> - </div> + {{ 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" 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.format') }}锛歿{ itemdetail.type }}</p> + <p>{{ $t("dataManage.vmobj.format") }}锛歿{ itemdetail.type }}</p> <el-divider></el-divider> - <p>{{ $t('common.size') }}锛歿{ setInfoBoxSize(itemdetail.sizes) }}</p> + <p>{{ $t("common.size") }}锛歿{ setInfoBoxSize(itemdetail.sizes) }}</p> <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.depName') }}锛歿{ itemdetail.depName }}</p> + <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.gather') }}锛歿{ - setInfoBoxTime(itemdetail.gather) - }} + {{ $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.describe') }}锛歿{ itemdetail.describe }} - </p> - <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.createonuser') }}锛歿{ itemdetail.uname }} - </p> - <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.createontime') }}锛歿{ + {{ $t("dataManage.vmobj.createontime") }}锛歿{ setInfoBoxTime(itemdetail.createTime) }} </p> <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.updateonuser') }}锛歿{ - itemdetail.updateUser - }} + <!-- <p> + {{ $t("dataManage.vmobj.depName") }}锛歿{ itemdetail.updateUser }} </p> <el-divider></el-divider> <p> - {{ $t('dataManage.vmobj.updateontime') }}锛歿{ + {{ $t("dataManage.vmobj.depName") }}锛歿{ setInfoBoxTime(itemdetail.updateTime) }} - </p> + </p> --> </div> - </el-card> + </div> </div> - <el-dialog - width="510px" - top="5vh" - :title=" + + <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> + :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 :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 :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-input v-model="editForm.depName" autocomplete="off"></el-input> --> - <el-cascader + <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> + style="width:350px" + ></el-cascader> --> </el-form-item> - <el-form-item - :label="$t('dataManage.vmobj.dirName')" - :label-width="formLabelWidth" - > - <!-- <el-input v-model="editForm.depName" autocomplete="off"></el-input> --> - <el-cascader + <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-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 :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')" @@ -282,120 +396,510 @@ <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()">{{ - $t('common.reset') - }}</el-button> - <el-button - size="medium" - type="primary" - @click="sendEdit('editForm')" - v-loading.fullscreen.lock="fullscreenLoading" - >{{ $t('common.submit') }}</el-button - > + <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="medium" @click="cancelAdd('editForm')">{{ - $t('common.reset') - }}</el-button> - <el-button - size="medium" - type="primary" - @click="sendAdd('editForm')" - v-loading.fullscreen.lock="fullscreenLoading" - >{{ $t('common.submit') }}</el-button - > + <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> - <div class="downloadBox" v-if="showCodeBox"> - <h4 style="padding: 20px">璇疯緭鍏ヤ笅杞藉寘瀵嗙爜</h4> - <el-form - :model="codeForm" - :rules="rules" - ref="codeForm" - label-width="100px" - class="codeForm" - > - <el-form-item label="瀵嗙爜" prop="password"> - <el-input type="password" v-model="codeForm.password"></el-input> + <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="纭瀵嗙爜" 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,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 { - select_meta_ByPageAndCount, - // queryDataCount, - updateMeta, + encr, deleteMeta, insertMeta, - selectDictTab, + meta_downloadReq, + meta_selectByPageForUpload, + meta_selectDownloadFile, + meta_selectFields, + meta_selectPageAndCountByPid, + meta_selectVerByDirid, + select_meta_ByPageAndCount, + selectdepTab, selectdirTab, - queryDepTree, + sign_getPublicKey, + updateMeta, + meta_selectById, + meta_selectMetaOverflowDep, + meta_selectDepsByCodes, + apply_insertApply, + meta_selectGdbByGuid, + meta_selectConvertToDwg +} from "../../api/api"; -} from '../../api/api'; -import MyBread from '../../components/MyBread.vue'; +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('璇峰啀娆¤緭鍏ュ瘑鐮�')); - } else if (value !== this.codeForm.password) { - callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + 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 { - defaultProps: { - children: 'children', - label: 'name', + verOptions: [], + defaultProps: { + children: "children", + label: "name", }, -dirComPanyOption:[], + dirComPanyOption: [], companyOption: [], - activeName: '', + 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, @@ -412,119 +916,425 @@ pageSize: 10, pageIndex: 1, name: null, - dirid:null, + dirid: null, + depid: null, }, cascader: { - label: 'name', - value: 'id', - children: 'children', + 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(); + 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: { - //鍗曚綅鍒楄〃鑾峰彇 - async getQueryDepTree() { - const res = await queryDepTree(); - if (res.code != 200) { - this.$message.error('鍗曚綅鍒楄〃鑾峰彇澶辫触'); + //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.formInline.depid = 1; - this.companyOption = this.treeData(res.result); + + 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) { + formatData (row,column) { + let data=row[column.property]; + if(data==null) { return data; } return this.format(data); }, - setInfoBoxTime(res) { - if (res == null) { + setInfoBoxTime (res) { + if(res==null) { return res; } return this.format(res); }, - setInfoBoxSize(res) { - if (res >= 1024) { - return parseFloat(res / 1024).toFixed(3) + ' GB'; + setInfoBoxSize (res) { + if(res>=1024) { + return parseFloat(res/1024).toFixed(3)+" GB"; } else { - return res + ' MB'; + return res+" MB"; } }, //鏍煎紡鍖栨椂闂� - format(shijianchuo) { + 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(); + 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 + - ':' + + y+ + "-"+ + this.add0(m)+ + "-"+ + this.add0(d)+ + " "+ + h+ + ":"+ + mm+ + ":"+ s ); }, //鏍煎紡鍖栨椂闂� - add0(m) { - return m < 10 ? '0' + m : m; + 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'; + stateFormatSizes (row,column) { + if(row.sizes>=1024) { + const val=parseFloat(row.sizes/1024).toFixed(3); + return val+" GB"; } else { - return row.sizes + ' MB'; + return row.sizes+" MB"; } }, //鐩綍鏍戣幏鍙� - async getSelectDictTab() { - const res = await selectdirTab(); - if (res.code != 200) { - this.$message.error('鍒楄〃璋冪敤澶辫触'); + 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.dirid=this.optionCount[0].id; - this.getMetaData(); + this.optionCount=this.treeData(res.result); + this.dirComPanyOption=this.treeData(res.result); + this.listData.depcode=this.optionCount[0].code; }, - handleNodeClick(data) { + handleNodeClick (data) { this.listData.pageSize=10; - this.listData.pageIndex = 1; - this.listData.dirid = data.id; - this.getMetaData(); + this.listData.pageIndex=1; + this.listData.dirid=data.id; + this.getMetaData(); }, - getTableDesc(res) { - this.activeName = res.tab; + getTableDesc (res) { + this.activeName=res.tab; }, //鏄剧ず鏉冮檺鎸夐挳 - showPermsBtn() { - let currentPerms = this.$store.state.currentPerms; - let permsEntity = this.$store.state.permsEntity; + 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)); + .filter((item) => item.perms==currentPerms) + .map((item) => (this.btnStatus[item.tag.substr(1)]=true)); }, // ShowWindowFly(res) { // console.log(res); @@ -559,207 +1369,401 @@ // ); // }, // 璇锋眰鏁版嵁鍐呭 - getMetaData() { - select_meta_ByPageAndCount(this.listData).then((res) => { + getMetaData () { + this.listData.depcode=this.queryForm.depcode; + this.listData.dircode=this.queryForm.dircode; - this.tableData = res.result; - this.count = res.count; + 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; + queryInfo () { + this.listData.name=this.queryForm.name.trim(); + this.listData.pageSize=10; + this.listData.pageIndex=1; this.getMetaData(); }, // 閲嶇疆鏌ヨ - resetInfo(formName) { + resetInfo (formName) { this.$refs[formName].resetFields(); - this.listData.pageSize = 10; - this.listData.pageIndex = 1; - this.listData.name = null; + 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; + showAddDialog () { + this.behavior="鏂板鐢ㄦ埛"; + this.editForm={}; + this.dialogFormVisible=true; }, - cancelAdd(formName) { - this.editForm = {}; + cancelAdd (formName) { + this.editForm={}; this.$refs[formName].resetFields(); }, - sendAdd(formName) { + sendAdd (formName) { this.$refs[formName].validate((valid) => { - if (valid) { - console.log(this.editForm); - this.fullscreenLoading = true; + 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.fullscreenLoading=false; + if(res.code==200) { + this.listData.pageSize=10; + this.listData.pageIndex=1; this.getMetaData(); this.$message({ - message: '娣诲姞鎴愬姛', - type: 'success', + message: "娣诲姞鎴愬姛", + type: "success", }); - this.editForm = {}; - this.dialogFormVisible = false; + this.editForm={}; + this.dialogFormVisible=false; } - }, 500); + },500); }) .catch((res) => { - alert('淇敼澶辫触锛岃閲嶈瘯锛�'); - this.fullscreenLoading = false; + alert("淇敼澶辫触锛岃閲嶈瘯锛�"); + this.fullscreenLoading=false; }); } else { - console.log('error submit!!'); + console.log("error submit!!"); return false; } }); }, // 鑾峰彇澶氶�夐�変腑鐨勫璞� - handleSelectionChange(val) { - this.multipleSelection = val; + handleSelectionChange (val) { + this.multipleSelection=val; }, // 鍒犻櫎澶氭潯 - deleteMetaInfo() { - this.$confirm('纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning', + deleteMetaInfo () { + if(this.multipleSelection.length<=0) { + return this.$message("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁"); + } + this.$confirm("纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?","鎻愮ず",{ + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", }) .then(() => { - var std = []; - for (var i in this.multipleSelection) { + 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) { + if(res.code==200) { + this.loadDialogVisible=false; this.$message({ - type: 'success', - message: '鍒犻櫎鎴愬姛!', + type: "success", + message: "鍒犻櫎鎴愬姛!", }); - this.multipleSelection = []; - this.listData.pageSize = 10; - this.listData.pageIndex = 1; + this.multipleSelection=[]; + // this.listData.pageSize = 10 + this.listData.pageIndex=1; + this.getMetaData(); } else { - this.$message.error('鍒犻櫎澶辫触'); - this.multipleSelection = []; + this.loadDialogVisible=false; + this.$message.error("鍒犻櫎澶辫触"); + + this.multipleSelection=[]; } }); }) .catch(() => { - this.$message('宸插彇娑堝垹闄�'); + this.$message("宸插彇娑堝垹闄�"); }); }, // 鏌ョ湅鐣岄潰 - showDetail(row) { + showDetail (row) { // console.log(index, row); - this.showinfoBox = true; - this.itemdetail = row; + this.showinfoBox=true; + + this.itemdetail=row; + }, // 鍏抽棴鏌ョ湅 - closeDetial() { - this.showinfoBox = false; - this.itemdetail = {}; + closeDetial () { + this.showinfoBox=false; + this.itemdetail={}; }, // 淇敼鐣岄潰 - editInfo(row) { + 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.initialForm=JSON.stringify(row); //澶囦唤 + this.behavior="淇敼淇℃伅"; + this.editForm=JSON.parse(JSON.stringify(row)); + this.dialogFormVisible=true; + this.getSelectDictTab(); }, - handleClose(done) { - this.$confirm('纭鍏抽棴锛�') + handleClose (done) { + this.$confirm("纭鍏抽棴锛�") .then((_) => { - this.editForm = {}; + this.editForm={}; done(); }) - .catch((_) => {}); + .catch((_) => { }); }, // 鎻愪氦淇敼 - sendEdit() { - this.$confirm('鏄惁纭畾缂栬緫?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning', + sendEdit () { + this.$confirm("鏄惁纭畾缂栬緫?","鎻愮ず",{ + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", }) .then(() => { - this.dialogFormVisible = false; + this.dialogFormVisible=false; updateMeta(this.editForm).then((res) => { setTimeout(() => { - this.fullscreenLoading = false; - if (res.code == 200) { - this.listData.pageSize = 10; - this.listData.pageIndex = 1; - this.getMetaData(); + 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', + message: "淇敼鎴愬姛", + type: "success", }); - this.editForm = {}; - this.dialogFormVisible = false; + this.editForm={}; + this.dialogFormVisible=false; } - }, 500); + },500); }); }) .catch(() => { - alert('淇敼澶辫触锛岃閲嶈瘯锛�'); - this.fullscreenLoading = false; + alert("淇敼澶辫触锛岃閲嶈瘯锛�"); + this.fullscreenLoading=false; }); + }, - cancelEdit() { + cancelEdit () { this.$nextTick(() => { - this.editForm = JSON.parse(this.initialForm); + this.editForm=JSON.parse(this.initialForm); }); }, - download() {}, - closeDown() { - this.showCodeBox = false; - this.codeForm.password = ''; - this.codeForm.repassword = ''; - }, - downFormData() { - if (this.multipleSelection.length == 0) { - alert('璇峰厛閫夋嫨瑕佷笅杞界殑鏂囦欢'); + 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; } - this.showCodeBox = true; + 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(); }, - handleSizeChange(val) { - this.listData.pageSize = val; - this.listData.pageIndex = 1; + 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; + handleCurrentChange (val) { + this.listData.pageIndex=val; this.getMetaData(); }, //鏍戝垪琛ㄧ敓鎴� - treeData(source) { - let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 + 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; // 杩斿洖涓�绾ц彍鍗� + 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 + ); + }, + showCAD (row) { + let name=row.name; + if(!name) return false; + return ( + name.indexOf("dwg")!=-1 + + ); + }, + async handleCAD (row) { + const data=await meta_selectConvertToDwg(row.id) + 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; }, }, }; @@ -767,90 +1771,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: 100%; - margin-top: 1%; - height: 74%; - display: flex; - justify-content: space-between; - .leftTree { - width: 15%; - height: 100%; - border: 1px solid white; - border-radius: 5px; - padding: 1%; - max-height: 670px; - overflow-y: auto; - li { - color: white; - border-bottom: 1px solid white; - line-height: 30px; - text-align: center; - } - li:hover { - background: rgba(255, 255, 255, 0.3); - } - .active { - color: #409eff; - } - } - .rightTable { - width: 80%; - height: 100%; - border: 1px solid white; - - border-radius: 5px; - padding: 1%; - .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; - } } } @@ -861,137 +1794,43 @@ 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; + .gdbTableBox { + width: 100%; + height: 740px; + overflow-y: auto; } - /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; + .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; } - /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; } } </style> -- Gitblit v1.9.3