From f6ebd1820968db8521bed86d25b183efe7eb877b Mon Sep 17 00:00:00 2001 From: lxl <lixuliang_hd@126.com> Date: 星期四, 27 十月 2022 16:01:40 +0800 Subject: [PATCH] 权限 --- src/views/datamanage/versionManage.vue | 659 +++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 386 insertions(+), 273 deletions(-) diff --git a/src/views/datamanage/versionManage.vue b/src/views/datamanage/versionManage.vue index 4d87b53..39c0286 100644 --- a/src/views/datamanage/versionManage.vue +++ b/src/views/datamanage/versionManage.vue @@ -1,76 +1,111 @@ <template> <div class="authorityManagement_box"> - <My-bread :list="['鏁版嵁绠$悊', '鐗堟湰绠$悊']"></My-bread> + <My-bread + :list="[ + `${$t('dataManage.dataManage')}`, + `${$t('dataManage.versionManage')}`, + ]" + ></My-bread> <el-divider /> <div class="searchComp"> <el-form ref="ruleForm" :model="ruleForm" :inline="true"> - <el-form-item label="鍏抽敭瀛�" prop="name"> - <el-input v-model="ruleForm.name" placeholder="璇疯緭鍏�" /> + <el-form-item :label="$t('dataManage.vmobj.keyword')" prop="name"> + <el-input + v-model="ruleForm.name" + :placeholder="$t('common.pleaseInput')" + /> </el-form-item> <el-form-item> <el-button - @click="submitForm('ruleForm')" + @click="onSubmit('ruleForm')" icon="el-icon-search" - type="primary" size="small" - >鏌ヨ</el-button + >{{ $t("common.iquery") }}</el-button > - <!-- <el-button + <el-button + v-if="btnStatus.insert" + @click="InsertFormdialog = true" + icon="el-icon-plus" + size="small" + >{{ $t("common.append") }}</el-button + > + <el-button @click="resetForm('ruleForm')" - icon="el-icon-refresh" - type="info" + icon="el-icon-delete" size="small" - >閲嶇疆</el-button + >{{ $t("common.empty") }}</el-button > - <span style="display:none">{{ pathId }}</span> --> </el-form-item> </el-form> </div> <div class="bottom"> <div class="leftTree"> - <catalogueTree></catalogueTree> + <ver-dir-tree></ver-dir-tree> </div> <div class="rightTable"> <div class="table_box"> - <el-table - :data="tableData" - border - style="width: 100%" - fit - height="99%" - > + <el-table :data="tableData" stripe style="width: 100%" height="99%"> <!-- <el-table-column type="selection" width="40" /> --> - <el-table-column width="50" type="index" label="搴忓彿" /> - <el-table-column min-width="130" prop="name" label="鏁版嵁鍚嶇О" /> - <el-table-column min-width="160" prop="path" label="鎵�灞炵洰褰�" /> <el-table-column - min-width="100" - prop="create_time" - label="鍒涘缓鏃堕棿" + align="center" + type="index" + :label="$t('dataManage.vmobj.index')" + width="70px" + /> + <el-table-column align="center" prop="id" v-if="false" /> + <el-table-column + align="center" + prop="name" + :label="$t('dataManage.vmobj.name')" /> <el-table-column - min-width="50" - prop="create_user" - label="鍒涘缓浜哄憳" + align="center" + prop="depName" + :label="$t('dataManage.vmobj.catalogue')" /> - <el-table-column min-width="80" prop="up_unit" label="涓婁紶鍗曚綅" /> - <el-table-column min-width="50" prop="status" label="鏁版嵁鐘舵��" /> - <el-table-column min-width="50" prop="version" label="鏁版嵁鐗堟湰" /> - <el-table-column min-width="50" label="鎿嶄綔"> + <el-table-column + align="center" + prop="descr" + :label="$t('dataManage.vmobj.describe')" + /> + <el-table-column + align="center" + prop="createUser" + :label="$t('dataManage.vmobj.createonuser')" + /> + <el-table-column + align="center" + prop="createTime" + :label="$t('dataManage.vmobj.createontime')" + :formatter="formatTime" + /> + <el-table-column + align="center" + prop="UpdateUser" + :label="$t('dataManage.vmobj.updateonuser')" + /> + <el-table-column + align="center" + prop="updateTime" + :label="$t('dataManage.vmobj.updateontime')" + :formatter="formatTime" + /> + <el-table-column min-width="150" :label="$t('common.operate')"> <template slot-scope="scope"> - <!-- <el-link @click="showDetail(scope.$index, scope.row)" - >鏌ョ湅</el-link - > --> - <el-link + <el-button + v-if="btnStatus.update" @click="handleEdit(scope.$index, scope.row)" - style="margin-left: 10px" - >淇敼</el-link + type="warning" + size="small" + >{{ $t("common.update") }}</el-button > - <!-- <el-link + <el-button + v-if="btnStatus.delete" @click="handleDelete(scope.$index, scope.row)" - style="margin-left: 10px" - >鍒犻櫎</el-link - > --> + type="danger" + size="small" + >{{ $t("common.delete") }}</el-button + > </template> </el-table-column> </el-table> @@ -82,9 +117,9 @@ <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" - :current-page="currentPage" - :page-sizes="[10, 20, 50, 100]" - :page-size="10" + :current-page="listData.pageIndex" + :page-sizes="[10, 20, 30, 40]" + :page-size="listData.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="count" > @@ -96,7 +131,7 @@ <el-card class="box-card"> <div slot="header" class="clearfix"> <span>璇︾粏淇℃伅</span> - <div style="float: right; cursor: pointer" @click="closeDetial"> + <div style="float: right; cursor: pointer"> <i class="el-icon-close"></i> </div> </div> @@ -117,101 +152,150 @@ </div> </el-card> </div> - <el-dialog title="淇敼璇︽儏" :visible.sync="dialogFormVisible"> + <el-dialog + :title="$t('dataManage.vmobj.editVersion')" + :visible.sync="dialogFormVisible" + > <el-form :model="upform"> - <el-form-item label="鏁版嵁鍚嶇О" :label-width="formLabelWidth"> + <el-form-item + :label="$t('dataManage.vmobj.name')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.name" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('dataManage.vmobj.catalogue')" + :label-width="formLabelWidth" + > <el-input - v-model="upform.name" + v-model="upform.depName" autocomplete="off" disabled ></el-input> + <el-button style="margin-left: 20px" @click="showVerTree(2)">{{ + $t("common.choose") + }}</el-button> </el-form-item> - <el-form-item label="鎵�灞炵洰褰�" :label-width="formLabelWidth"> - <el-input - v-model="upform.path" - autocomplete="off" - disabled - ></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%" - disabled - > - </el-date-picker> - </el-form-item> - <el-form-item label="鍒涘缓浜哄憳" :label-width="formLabelWidth"> - <el-input - v-model="upform.create_user" - autocomplete="off" - disabled - ></el-input> - </el-form-item> - <el-form-item label="涓婁紶鍗曚綅" :label-width="formLabelWidth"> - <el-input - v-model="upform.up_unit" - autocomplete="off" - disabled - ></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鐘舵��" :label-width="formLabelWidth"> - <el-input - v-model="upform.status" - autocomplete="off" - disabled - ></el-input> - </el-form-item> - <el-form-item label="鏁版嵁鐗堟湰" :label-width="formLabelWidth"> - <el-input v-model="upform.version" autocomplete="off"></el-input> + <el-form-item + :label="$t('dataManage.vmobj.describe')" + :label-width="formLabelWidth" + > + <el-input v-model="upform.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> + <el-button @click="editFromDataClose">{{ + $t("common.close") + }}</el-button> + <el-button @click="editFromData" type="primary">{{ + $t("common.confirm") + }}</el-button> </div> </el-dialog> + <el-dialog + :title="$t('dataManage.vmobj.addVersion')" + :visible.sync="InsertFormdialog" + > + <el-form :model="insertform"> + <el-form-item + :label="$t('dataManage.vmobj.name')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.name" autocomplete="off"></el-input> + </el-form-item> + <el-form-item + :label="$t('dataManage.vmobj.catalogue')" + :label-width="formLabelWidth" + > + <el-input + v-model="insertform.path" + autocomplete="off" + disabled + ></el-input> + <el-button style="margin-left: 20px" @click="showVerTree(3)">{{ + $t("common.choose") + }}</el-button> + </el-form-item> + + <el-form-item + :label="$t('dataManage.vmobj.describe')" + :label-width="formLabelWidth" + > + <el-input v-model="insertform.descr" autocomplete="off"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="insertFromDataClose">{{ + $t("common.close") + }}</el-button> + <el-button @click="insertFromData" type="primary">{{ + $t("common.confirm") + }}</el-button> + </div> + </el-dialog> + <div class="leftTrees" v-if="showCata"> + <div class="treeBox"> + <ver-dir-trees></ver-dir-trees> + </div> + <div class="btnBox"> + <el-button type="primary" size="small" @click="selectCataName">{{ + $t("common.confirm") + }}</el-button> + <el-button type="primary" size="small" @click="showCata = false">{{ + $t("common.close") + }}</el-button> + </div> + </div> </div> </template> <script> import { - queryMetaData, - queryDataCount, - updateMetaData, - dltMetaDatas, + select_Ver_ByPageAndCount, + insertVersion, + deleteVersion, + updateVersion, } from "../../api/api"; -import catalogueTree from "../../components/catalogueTree.vue"; +import verDirTree from "./verDirTree.vue"; import MyBread from "../../components/MyBread.vue"; +import verDirTrees from "./verDirTrees.vue"; +import moment from "moment"; export default { name: "versionManage", - components: { MyBread, catalogueTree }, + components: { MyBread, verDirTree, verDirTrees }, data() { return { - multipleSelection: [], - formLabelWidth: "120px", + showCata: false, + formLabelWidth: "100px", dialogFormVisible: false, - upform: {}, + InsertFormdialog: false, showinfoBox: false, itemdetail: {}, - ruleForm: { - name: "", - }, - count: 0, - pageSize: 10, - pageNum: 1, - nowPid: -1, + upform: {}, + ruleForm: {}, + insertform: {}, tableData: [], - currentPage: 1, - searchName: "", + count: 0, + rowFlag: null, + listData: { + name: null, + depName: null, + pageIndex: 1, + pageSize: 10, + }, + btnStatus: { + select: false, + delete: false, + upload: false, + download: false, + insert: false, + update: false, + }, }; }, created() { - this.getMetaData(10, 1, "", -1); - this.getMetaCount("", -1); + this.getRoleTabelData(); + this.showPermsBtn(); }, computed: { pathId() { @@ -219,140 +303,147 @@ }, }, methods: { - // 璇锋眰鏁版嵁鍐呭 - getMetaData(size, num, name, pid) { - queryMetaData(size, num, name, pid).then((res) => { - this.tableData = res.data; - }); + 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)); }, - // 璇锋眰鏁版嵁鏁伴噺 - getMetaCount(name, pid) { - queryDataCount(name, pid).then((res) => { - this.count = res.data; - }); + resetForm() { + this.ruleForm = {}; + this.$store.state.verCateNode = {}; + this.$bus.$emit("clearTressLabel", true); + this.getRoleTabelData(); }, - // 鍏抽敭瀛楁煡璇� - submitForm(formName) { - this.$refs[formName].validate((valid) => { - if (valid) { - this.searchName = this.ruleForm.name.trim(); - this.getMetaData(10, 1, this.searchName); - this.getMetaCount(this.searchName); - } else { - console.log("error submit!!"); - return false; - } - }); + onSubmit() { + this.getRoleTabelData(); }, - // 閲嶇疆鏌ヨ - resetForm(formName) { - this.getMetaData(10, 1, "", -1); - this.getMetaCount(""); - this.searchName = ""; - this.$refs[formName].resetFields(); + async getRoleTabelData() { + if (this.listData.tab == "") { + delete this.listData.tab; + } + + this.listData.name = this.ruleForm.name; + this.listData.depName = this.$store.state.verCateNode.name; + const data = await select_Ver_ByPageAndCount(this.listData); + + if (data.code != 200) { + this.$message.error("鍒楄〃璋冪敤澶辫触"); + } + this.tableData = data.result; + this.count = data.count; }, - // 鑾峰彇澶氶�夐�変腑鐨勫璞� - handleSelectionChange(val) { - this.multipleSelection = val; - console.log(val); + handleSizeChange(val) { + this.listData.pageSize = val; + this.getRoleTabelData(); }, - // 鏌ョ湅鐣岄潰 - showDetail(index, row) { - // console.log(index, row); - this.showinfoBox = true; - this.itemdetail = row; + handleCurrentChange(val) { + this.listData.pageIndex = val; + this.getRoleTabelData(); }, - // 鍏抽棴鏌ョ湅 - closeDetial() { - this.showinfoBox = false; - this.itemdetail = {}; + showVerTree(res) { + this.showCata = true; + this.rowFlag = res; }, - // 淇敼鐣岄潰 + selectCataName() { + this.showCata = false; + if (this.rowFlag == 3) { + this.insertform.path = this.$store.state.verCateNodes.name; + this.insertform.dirid = this.$store.state.verCateNodes.id; + } else if (this.rowFlag == 2) { + this.upform.depName = this.$store.state.verCateNodes.name; + this.upform.dirid = this.$store.state.verCateNodes.id; + } + }, + editFromDataClose() { + this.dialogFormVisible = false; + this.upform = {}; + }, + async editFromData() { + if (this.upform.depName == null) { + this.$message({ + message: "璇烽�夋嫨瑙掕壊鎵�灞炲崟浣�", + type: "warning", + }); + return; + } + const data = await updateVersion(this.upform); + if (data.code == 200) { + this.dialogFormVisible = false; + this.upform = {}; + this.$message({ + message: "淇敼鎴愬姛锛�", + type: "success", + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: "淇敼澶辫触锛�", + type: "warning", + }); + } + }, + insertFromDataClose() { + this.InsertFormdialog = false; + this.insertform = {}; + }, + async insertFromData() { + if (this.insertform.dirid == null) { + this.$message({ + message: "璇烽�夋嫨瑙掕壊鎵�灞炲崟浣�", + type: "warning", + }); + return; + } + const data = await insertVersion(this.insertform); + if (data.code == 200) { + this.InsertFormdialog = false; + this.insertform = {}; + this.$message({ + message: "娣诲姞鎴愬姛锛�", + type: "success", + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: "娣诲姞澶辫触锛�", + type: "warning", + }); + } + }, + formatTime(row, column) { + let date = row[column.property]; + if (date === undefined || date === null) { + return ""; + } + return moment(parseInt(date)).format("YYYY-MM-DD HH:mm:ss"); + }, + async handleDelete(index, row) { + const data = await deleteVersion(row.id); + if (data.code == 200) { + this.InsertFormdialog = false; + this.$message({ + message: "鍒犻櫎鎴愬姛锛�", + type: "success", + }); + this.getRoleTabelData(); + } else { + this.$message({ + message: "鍒犻櫎澶辫触锛�", + type: "warning", + }); + } + }, handleEdit(index, row) { this.dialogFormVisible = true; - this.upform = JSON.parse(JSON.stringify(row)); - }, - // 鎻愪氦淇敼 - updateForm() { - this.$confirm("鏄惁纭畾缂栬緫?", "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(() => { - this.dialogFormVisible = false; - updateMetaData(this.upform).then((res) => { - if (res.data == 1) { - this.$message({ - message: "淇敼鎴愬姛", - type: "success", - }); - } - this.getMetaData(10, 1); - }); - }) - .catch(() => {}); - }, - // 鍒犻櫎 - handleDelete(index, row) { - // console.log(index, row); - this.$confirm("纭畾鏄惁鍒犻櫎?", "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(() => { - dltMetaDatas({ id: row.id }).then((res) => { - if (res.data == 1) { - this.$message({ - type: "success", - message: "鍒犻櫎鎴愬姛!", - }); - this.getMetaData(10, 1, ""); - this.getMetaCount(""); - } - }); - // 澶氶�夊垹闄� - // if (this.multipleSelection.length > 1) { - // let ids = ""; - // this.multipleSelection.forEach((e) => { - // ids += `id=${e.id}&`; - // }); - // let res = ids.substring(0, ids.length - 1); - // dltMetaDatas(res).then((res) => { - // console.log(res); - // }); - // } - }) - .catch(() => {}); - }, - - // 鏉℃暟淇敼 - handleSizeChange(val) { - this.pageSize = val; - this.getMetaData(this.pageSize, 1, this.searchName, this.nowPid); - this.getMetaCount(this.searchName, this.nowPid); - }, - // 椤垫暟淇敼 - handleCurrentChange(val) { - this.pageNum = val; - this.getMetaData( - this.pageSize, - this.pageNum, - this.searchName, - this.nowPid - ); - this.getMetaCount(this.searchName, this.nowPid); + this.upform = row; }, }, watch: { pathId: { immediate: true, - handler(val) { - if (val) this.nowPid = val; - this.getMetaData(10, 1, "", this.nowPid); - this.getMetaCount("", this.nowPid); - }, + handler(val) {}, }, }, }; @@ -365,6 +456,31 @@ height: 100%; padding: 10px; box-sizing: border-box; + .el-input { + width: 300px !important; + } + .leftTrees { + position: absolute; + z-index: 9999; + top: 9%; + left: 37%; + width: 400px; + height: 600px; + background: #f0f2f5; + border: 1px solid #000; + .treeBox { + height: 550px; + overflow: auto; + /deep/ .el-tree-node__content:hover { + background-color: rgb(153, 153, 153); + } + } + .btnBox { + width: 123px; + margin: 10px auto 0; + // background-color: red; + } + } .searchComp { margin: 10px auto; background: #fff; @@ -372,9 +488,6 @@ border: 1px solid rgb(202, 201, 204); .el-form-item { margin: 5px; - } - .el-input { - width: 467px; } } .bottom { @@ -397,43 +510,43 @@ margin: 0 auto; overflow: auto; background: #fff; - .el-table { - height: 100%; - } - .el-table /deep/ .el-table__header-wrapper tr th { - background-color: rgb(255, 255, 255) !important; - color: rgb(0, 0, 0); - } - // 淇敼姣忚鏍峰紡锛� - .el-table /deep/ .el-table__row { - background-color: rgba(255, 255, 255) !important; - color: rgb(0, 0, 0); - } - .el-table /deep/ .el-table__body tr.current-row > td { - background-color: rgb(211, 211, 211) !important; - } - .el-table /deep/ .el-table__body tr:hover > td { - background-color: rgb(211, 211, 211) !important; - } - // 淇敼琛ㄦ牸姣忚杈规鐨勬牱寮忥細 - .el-table /deep/ td, - .el-table /deep/ th.is-leaf { - border-bottom: 1px solid #eee; - border-right: 1px solid #eee; - } - .el-table /deep/ .el-table__cell { - padding: 0; - } + // .el-table { + // height: 100%; + // } + // .el-table /deep/ .el-table__header-wrapper tr th { + // background-color: rgb(255, 255, 255) !important; + // color: rgb(0, 0, 0); + // } + // // 淇敼姣忚鏍峰紡锛� + // .el-table /deep/ .el-table__row { + // background-color: rgba(255, 255, 255) !important; + // color: rgb(0, 0, 0); + // } + // .el-table /deep/ .el-table__body tr.current-row > td { + // background-color: rgb(211, 211, 211) !important; + // } + // .el-table /deep/ .el-table__body tr:hover > td { + // background-color: rgb(211, 211, 211) !important; + // } + // // 淇敼琛ㄦ牸姣忚杈规鐨勬牱寮忥細 + // .el-table /deep/ td, + // .el-table /deep/ th.is-leaf { + // border-bottom: 1px solid #eee; + // border-right: 1px solid #eee; + // } + // .el-table /deep/ .el-table__cell { + // padding: 0; + // } // 璁剧疆琛ㄦ牸姣忚鐨勯珮搴︼細 - .el-table /deep/ .el-table__header tr, - .el-table /deep/ .el-table__header th { - height: 40px; - } - .el-table__body tr, - .el-table__body td { - height: 40px; - padding: 0; - } + // .el-table /deep/ .el-table__header tr, + // .el-table /deep/ .el-table__header th { + // height: 40px; + // } + // .el-table__body tr, + // .el-table__body td { + // height: 40px; + // padding: 0; + // } // 璁剧疆琛ㄦ牸杈规棰滆壊锛� .el-table--border::after, @@ -474,7 +587,7 @@ } } /deep/ .el-dialog { - width: 500px !important; + width: 620px !important; margin-top: 10vh !important; } @@ -486,7 +599,7 @@ } /deep/ .el-dialog__footer { padding-top: 0 !important; - width: 200px; + width: 600px; display: flex; margin: 0 auto; justify-content: center; -- Gitblit v1.9.3