From 7603c8db4fff083a3640c8a5129e7042972f26b0 Mon Sep 17 00:00:00 2001 From: lxl <lixuliang_hd@126.com> Date: 星期四, 27 十月 2022 14:13:41 +0800 Subject: [PATCH] 元数据 --- src/views/datamanage/metadataManage.vue | 508 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 259 insertions(+), 249 deletions(-) diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue index e916a6b..2b2f1fb 100644 --- a/src/views/datamanage/metadataManage.vue +++ b/src/views/datamanage/metadataManage.vue @@ -1,49 +1,61 @@ <template> <div class="authorityManagement_box"> - <My-bread :list="['鏁版嵁绠$悊', '鍏冩暟鎹鐞�']"></My-bread> + <My-bread + :list="[ + `${$t('dataManage.dataManage')}`, + `${$t('dataManage.metadataManage')}`, + ]" + ></My-bread> <el-divider /> - <div class="searchComp"> - <el-form ref="ruleForm" :model="ruleForm" :inline="true"> + <div class="inquire"> + <el-form ref="queryForm" :model="queryForm" :inline="true"> <el-form-item label="鍏抽敭瀛�" prop="name"> - <el-input v-model="ruleForm.name" placeholder="璇疯緭鍏�" /> + <el-input v-model="queryForm.name" placeholder="璇疯緭鍏�" /> </el-form-item> <el-form-item> <el-button - @click="submitForm('ruleForm')" + @click="queryInfo()" icon="el-icon-search" type="primary" size="small" >鏌ヨ</el-button > + </el-form-item> + <el-form-item> <el-button - @click="resetForm('ruleForm')" + @click="resetInfo('queryForm')" icon="el-icon-refresh" type="info" size="small" >閲嶇疆</el-button > + </el-form-item> + + <el-form-item v-if="btnStatus.insert"> <el-button - v-if="btnStatus.download" - @click="downFormData" - icon="el-icon-download" type="success" size="small" - >涓嬭浇</el-button + @click="showAddDialog" + icon="el-icon-plus" + >{{ $t("common.append") }}</el-button > - <!-- <el-button - @click="downFormData" - icon="el-icon-download" - type="success" - size="small" - >涓嬭浇</el-button - > --> + </el-form-item> + <el-form-item v-if="btnStatus.delete"> <el-button - v-if="btnStatus.delete" - @click="DelFormData" - icon="el-icon-delete" type="danger" size="small" - >鍒犻櫎</el-button + @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" + >涓嬭浇</el-button > </el-form-item> </el-form> @@ -60,7 +72,9 @@ height="99%" > <el-table-column type="selection" width="55" /> - <el-table-column min-width="150" prop="name" label="鏁版嵁鍚嶇О" /> + <el-table-column min-width="150" prop="name" label="鍚嶇О" /> + <el-table-column min-width="100" prop="format" label="鏍煎紡" /> + <el-table-column min-width="100" prop="sizes" label="澶у皬" /> <el-table-column min-width="100" prop="createUser" @@ -72,48 +86,15 @@ label="鍒涘缓鏃堕棿" /> <el-table-column min-width="100" prop="cs" label="鍧愭爣绯荤粺" /> - <el-table-column - min-width="100" - prop="scale" - label="姣斾緥灏�/鍒嗚鲸鐜�" - /> - <el-table-column min-width="100" prop="format" label="瀛樺偍鏍煎紡" /> - <el-table-column min-width="100" prop="version" label="鏁版嵁鐗堟湰" /> - <el-table-column prop="status" label="鍙戝竷" width="70%"> - <template slot-scope="scope"> - <span - slot="reference" - v-if="scope.row.s_url === '' || scope.row.s_url === null" - > - <i class="dotClass" style="background-color: gray"></i> - </span> - <span slot="reference" v-else> - <i class="dotClass" style="background-color: springgreen"></i> - </span> - </template> - </el-table-column> + <el-table-column min-width="100" prop="scale" label="姣斾緥灏�" /> + <el-table-column min-width="100" prop="resolution" label="鍒嗚鲸鐜�" /> + <el-table-column min-width="100" prop="descr" label="鎻忚堪" /> <el-table-column min-width="100" label="鎿嶄綔"> <template slot-scope="scope"> - <el-link @click="showDetail(scope.$index, scope.row)" - >鏌ョ湅</el-link - > - <el-link - @click="handleEdit(scope.$index, scope.row)" - style="margin-left: 10px" + <el-link @click="showDetail(scope.row)">鏌ョ湅</el-link> + <el-link @click="editInfo(scope.row)" style="margin-left: 10px" >淇敼</el-link - > - <el-link - v-if="scope.row.s_url === '' || scope.row.s_url === null" - @click="handleStart(scope.row)" - style="margin-left: 10px" - >鍙戝竷</el-link - > - <el-link - v-else - @click="handleStop(scope.row)" - style="margin-left: 10px" - >鍋滄</el-link > </template> </el-table-column> @@ -147,97 +128,81 @@ <div class="contentBox"> <p>鏁版嵁鍚嶇О锛歿{ itemdetail.name }}</p> <el-divider></el-divider> - <p> - 鏁版嵁鑼冨洿锛� - {{ itemdetail.x_min }}, {{ itemdetail.y_min }}锛� - {{ itemdetail.x_max }}, {{ itemdetail.y_max }} - </p> - <el-divider></el-divider> - <p>鍒涘缓鏃堕棿锛歿{ itemdetail.create_time }}</p> - <el-divider></el-divider> - <p>鍒涘缓浜哄憳锛歿{ itemdetail.create_user }}</p> - <el-divider></el-divider> - <p>鏇存柊鏃堕棿锛歿{ itemdetail.up_time }}</p> - <el-divider></el-divider> - <p>鏇存柊浜哄憳锛歿{ itemdetail.up_user }}</p> - <el-divider></el-divider> - <p>涓婁紶鍗曚綅锛歿{ itemdetail.up_unit }}</p> - <el-divider></el-divider> - <p>鏁版嵁鐘舵�侊細{{ itemdetail.status }}</p> - <el-divider></el-divider> - <p>鍧愭爣绯荤粺锛歿{ itemdetail.coor_sys }}</p> - <el-divider></el-divider> - <p>姣斾緥灏�/鍒嗚鲸鐜囷細{{ itemdetail.accuracy }}</p> - <el-divider></el-divider> - <p> - 鍙戝竷鍦板潃锛歿{ itemdetail.s_url }} - <el-link - @click="ShowWindowFly(itemdetail.s_url)" - :underline="false" - type="primary" - >璇︽儏</el-link - > - </p> - <el-divider></el-divider> - <p>鏁版嵁鐗堟湰锛歿{ itemdetail.version }}</p> - <el-divider></el-divider> <p>鏁版嵁绫诲瀷锛歿{ itemdetail.type }}</p> <el-divider></el-divider> <p>鏁版嵁鏍煎紡锛歿{ itemdetail.format }}</p> + <el-divider></el-divider> + <p>鍒涘缓鏃堕棿锛歿{ itemdetail.createTime }}</p> + <el-divider></el-divider> + <p>鍒涘缓浜哄憳锛歿{ itemdetail.createUser }}</p> + <el-divider></el-divider> + <p>鏇存柊鏃堕棿锛歿{ itemdetail.updateTime }}</p> + <el-divider></el-divider> + <p>鏇存柊浜哄憳锛歿{ itemdetail.updateUser }}</p> + <el-divider></el-divider> + <p>鍧愭爣绯荤粺锛歿{ itemdetail.cs }}</p> + <el-divider></el-divider> + <p>姣斾緥灏簕{ itemdetail.scale }}</p> + <el-divider></el-divider> + <p>鍒嗚鲸鐜噞{ itemdetail.resolution }}</p> + <el-divider></el-divider> + <p>鎻忚堪锛歿{ itemdetail.descr }}</p> </div> </el-card> </div> - <el-dialog title="淇敼璇︽儏" :visible.sync="dialogFormVisible"> - <el-form :model="upform"> + <el-dialog + width="510px" + top="5vh" + :title="behavior" + :visible.sync="dialogFormVisible" + :before-close="handleClose" + > + <el-form :model="editForm" ref="editForm"> <el-form-item label="鏁版嵁鍚嶇О" :label-width="formLabelWidth"> - <el-input v-model="upform.name" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鑼冨洿x_min" :label-width="formLabelWidth"> - <el-input v-model="upform.x_min" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鑼冨洿x_max" :label-width="formLabelWidth"> - <el-input v-model="upform.x_max" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鑼冨洿y_min" :label-width="formLabelWidth"> - <el-input v-model="upform.y_min" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鑼冨洿y_max" :label-width="formLabelWidth"> - <el-input v-model="upform.y_max" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿" :label-width="formLabelWidth"> - <el-date-picker - v-model="upform.create_time" - value-format="yyyy-MM-dd" - type="date" - placeholder="閫夋嫨鏃ユ湡" - style="width: 100%" - > - </el-date-picker> - </el-form-item> - <el-form-item label="鍧愭爣绯荤粺" :label-width="formLabelWidth"> - <el-input v-model="upform.coor_sys" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="姣斾緥灏�/鍒嗚鲸鐜�" :label-width="formLabelWidth"> - <el-input v-model="upform.accuracy" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鏍煎紡" :label-width="formLabelWidth"> - <el-input v-model="upform.format" autocomplete="off"></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鐗堟湰" :label-width="formLabelWidth"> - <el-input v-model="upform.version" autocomplete="off"></el-input> + <el-input v-model="editForm.name" autocomplete="off"></el-input> </el-form-item> <el-form-item label="鏁版嵁绫诲瀷" :label-width="formLabelWidth"> - <el-input v-model="upform.type" autocomplete="off"></el-input> + <el-input v-model="editForm.type" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鏁版嵁鏍煎紡" :label-width="formLabelWidth"> + <el-input v-model="editForm.format" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鍧愭爣绯荤粺" :label-width="formLabelWidth"> + <el-input v-model="editForm.cs" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="姣斾緥灏�" :label-width="formLabelWidth"> + <el-input v-model="editForm.scale" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鍒嗚鲸鐜�" :label-width="formLabelWidth"> + <el-input v-model="editForm.resolution" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鎻忚堪" :label-width="formLabelWidth"> + <el-input v-model="editForm.descr" autocomplete="off"></el-input> </el-form-item> </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="updateForm">纭� 瀹�</el-button> - <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button> + <div v-if="behavior == '淇敼淇℃伅'" slot="footer" class="dialog-footer"> + <el-button size="medium" @click="cancelEdit()">閲嶇疆</el-button> + <el-button + size="medium" + type="primary" + @click="sendEdit('editForm')" + v-loading.fullscreen.lock="fullscreenLoading" + >鎻愪氦</el-button + > + </div> + <div v-else slot="footer" class="dialog-footer"> + <el-button size="medium" @click="cancelAdd('editForm')">閲嶇疆</el-button> + <el-button + size="medium" + type="primary" + @click="sendAdd('editForm')" + v-loading.fullscreen.lock="fullscreenLoading" + >鎻愪氦</el-button + > </div> </el-dialog> <div class="downloadBox" v-if="showCodeBox"> <h4 style="padding: 20px">璇疯緭鍏ヤ笅杞藉寘瀵嗙爜</h4> - <el-form :model="codeForm" :rules="rules" @@ -268,10 +233,9 @@ import { select_meta_ByPageAndCount, // queryDataCount, - updateMetaData, - dltMetaDatas, - publishMeta, - unpublishMeta, + updateMeta, + deleteMeta, + insertMeta, } from "../../api/api"; import MyBread from "../../components/MyBread.vue"; export default { @@ -293,14 +257,15 @@ multipleSelection: [], formLabelWidth: "120px", dialogFormVisible: false, - InsertFormdialog: false, - insertform: {}, - upform: {}, + editForm: {}, showinfoBox: false, + fullscreenLoading: false, itemdetail: {}, - ruleForm: { + queryForm: { name: "", }, + behavior: "", + initialForm: "", codeForm: { password: "", repassword: "", @@ -316,8 +281,7 @@ count: 0, currentPage: 1, pageSize: 10, - pageNum: 1, - searchName: "", + pageIndex: 1, btnStatus: { select: false, delete: false, @@ -329,10 +293,14 @@ }; }, created() { - this.getMetaData(10, 1, ""); + this.getMetaData({ + pageIndex: 1, + pageSize: 10, + }); this.showPermsBtn(); }, methods: { + //鏄剧ず鏉冮檺鎸夐挳 showPermsBtn() { let currentPerms = this.$store.state.currentPerms; let permsEntity = this.$store.state.permsEntity; @@ -373,44 +341,113 @@ ); }, // 璇锋眰鏁版嵁鍐呭 - getMetaData(size, num, name) { - let params = { - name: name, - pageIndex: num, - pageSize: size, - }; + getMetaData(params) { select_meta_ByPageAndCount(params).then((res) => { - // console.log(res); this.tableData = res.result; this.count = res.count; }); }, - - // 鍏抽敭瀛楁煡璇� - submitForm(formName) { + // 鏌ヨ + 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, + }); + } + }); + }, + // 閲嶇疆鏌ヨ + resetInfo(formName) { + this.$refs[formName].resetFields(); + }, + //鏂板鎸夐挳 + showAddDialog() { + this.behavior = "鏂板鐢ㄦ埛"; + this.editForm = {}; + this.dialogFormVisible = true; + }, + cancelAdd(formName) { + this.editForm = {}; + this.$refs[formName].resetFields(); + }, + sendAdd(formName) { this.$refs[formName].validate((valid) => { if (valid) { - this.searchName = this.ruleForm.name.trim(); - this.getMetaData(10, 1, this.searchName); + 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.$message({ + message: "娣诲姞鎴愬姛", + type: "success", + }); + this.editForm = {}; + this.dialogFormVisible = false; + } + }, 500); + }) + .catch((res) => { + alert("淇敼澶辫触锛岃閲嶈瘯锛�"); + this.fullscreenLoading = false; + }); } else { console.log("error submit!!"); return false; } }); }, - // 閲嶇疆鏌ヨ - resetForm(formName) { - this.getMetaData(10, 1, ""); - this.searchName = ""; - this.$refs[formName].resetFields(); - }, // 鑾峰彇澶氶�夐�変腑鐨勫璞� handleSelectionChange(val) { this.multipleSelection = val; - // console.log(val); }, + // 鍒犻櫎澶氭潯 + deleteMetaInfo() { + this.$confirm("纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + var std = []; + for (var i in this.multipleSelection) { + std.push(this.multipleSelection[i].id); + } + deleteMeta({ ids: std.toString() }).then((res) => { + if (res.code == 200) { + this.$message({ + type: "success", + message: "鍒犻櫎鎴愬姛!", + }); + this.multipleSelection = []; + this.getMetaData({ pageIndex: 1, pageSize: 10 }); + } else { + this.$message.error("鍒犻櫎澶辫触"); + this.multipleSelection = []; + } + }); + }) + .catch(() => { + this.$message("宸插彇娑堝垹闄�"); + }); + }, + // 鏌ョ湅鐣岄潰 - showDetail(index, row) { + showDetail(row) { // console.log(index, row); this.showinfoBox = true; this.itemdetail = row; @@ -421,12 +458,28 @@ this.itemdetail = {}; }, // 淇敼鐣岄潰 - handleEdit(index, 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.upform = JSON.parse(JSON.stringify(row)); }, + handleClose(done) { + this.$confirm("纭鍏抽棴锛�") + .then((_) => { + this.editForm = {}; + done(); + }) + .catch((_) => {}); + }, + // 鎻愪氦淇敼 - updateForm() { + sendEdit() { this.$confirm("鏄惁纭畾缂栬緫?", "鎻愮ず", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", @@ -434,70 +487,38 @@ }) .then(() => { this.dialogFormVisible = false; - updateMetaData(this.upform).then((res) => { - if (res.data == 1) { - this.$message({ - message: "淇敼鎴愬姛", - type: "success", - }); - } - this.getMetaData(10, 1, ""); + updateMeta(this.editForm).then((res) => { + setTimeout(() => { + this.fullscreenLoading = false; + if (res.code == 200) { + this.getMetaData({ pageIndex: 1, pageSize: 10 }); + this.$message({ + message: "淇敼鎴愬姛", + type: "success", + }); + this.editForm = {}; + this.dialogFormVisible = false; + } + }, 500); }); }) - .catch(() => {}); + .catch(() => { + alert("淇敼澶辫触锛岃閲嶈瘯锛�"); + this.fullscreenLoading = false; + }); }, - - // 鍒犻櫎澶氭潯 - DelFormData() { - var std = []; - for (var i in this.multipleSelection) { - std.push(this.multipleSelection[i].id); - } - this.$confirm("纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?", "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(() => { - dltMetaDatas(std).then((res) => { - this.getMetaData(10, 1, ""); - this.$message({ - type: "success", - message: "鍒犻櫎鎴愬姛!", - }); - }); - }) - .catch(() => {}); - }, - download(formName) { - this.$refs[formName].validate((valid) => { - if (valid) { - let ids = ""; - this.multipleSelection.forEach((e) => { - ids += `id=${e.id}&`; - }); - let res = ids.substring(0, ids.length - 1); - // console.log(res); - let url = "http://192.168.20.106/LFServer/Meta/Downloads?" + res; - window.open(url); - this.closeDown(); - } else { - console.log("涓嬭浇澶辫触"); - this.closeDown(); - return false; - } + cancelEdit() { + this.$nextTick(() => { + this.editForm = JSON.parse(this.initialForm); }); }, + download() {}, closeDown() { this.showCodeBox = false; this.codeForm.password = ""; this.codeForm.repassword = ""; }, downFormData() { - // var std = []; - // for (var i in this.multipleSelection) { - // std.push(this.multipleSelection[i].id); - // } if (this.multipleSelection.length == 0) { alert("璇峰厛閫夋嫨瑕佷笅杞界殑鏂囦欢"); return; @@ -522,28 +543,15 @@ // }) // .catch(() => {}); }, - handleStart(row) { - // publishMeta(row.id).then((res) => { - // console.log(res); - // this.getMetaData(10, 1, ""); - // }); - }, - handleStop(row) { - console.log(row.id); - // unpublishMeta(row.id).then((res) => { - // console.log(res); - // this.getMetaData(10, 1, ""); - // }); - }, - // 鏉℃暟淇敼 + handleSizeChange(val) { this.pageSize = val; - this.getMetaData(this.pageSize, 1, this.searchName); + this.queryInfo(); }, - // 椤垫暟淇敼 handleCurrentChange(val) { - this.pageNum = val; - this.getMetaData(this.pageSize, this.pageNum, this.searchName); + this.pageIndex = val; + this.currentPage = val; + this.queryInfo(); }, }, }; @@ -556,21 +564,23 @@ height: 100%; padding: 10px; box-sizing: border-box; - .searchComp { - margin: 10px auto; + .inquire { + position: relative; + height: 50px; + overflow: auto; + padding: 8px; + margin-top: 20px; background: #fff; border-radius: 5px; border: 1px solid rgb(202, 201, 204); + margin-bottom: 20px; .el-form-item { margin: 5px; - } - .el-input { - width: 467px; } } .bottom { width: 100%; - height: 85%; + height: 83%; .rightTable { height: 100%; width: 100%; @@ -661,8 +671,8 @@ } } /deep/ .el-dialog { - width: 500px !important; - margin-top: 10vh !important; + // width: 500px !important; + // margin-top: 10vh !important; } /deep/.el-dialog .el-input__inner { -- Gitblit v1.9.3