From 50178aa6cf8abe1395f76c2d3e3cda55baddc3eb Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期六, 08 十月 2022 17:07:36 +0800 Subject: [PATCH] 1 --- src/api/api.js | 27 + src/assets/lang/zh.js | 13 src/store/index.js | 14 public/config/config.js | 3 src/views/datamanage/verDirTree.vue | 354 ++++++++++++++ src/views/datamanage/versionManage.vue | 647 +++++++++++++++----------- src/assets/lang/en.js | 13 src/views/datamanage/verDirTrees.vue | 352 ++++++++++++++ src/views/userManage/roleDepTree.vue | 1 src/views/userManage/roleManage.vue | 7 10 files changed, 1,145 insertions(+), 286 deletions(-) diff --git a/public/config/config.js b/public/config/config.js index dde48f8..db65adf 100644 --- a/public/config/config.js +++ b/public/config/config.js @@ -1,5 +1,4 @@ - -const BASE_URL = 'http://192.168.20.39:12316'; +const BASE_URL = 'http://192.168.20.55:12316'; var gisUrl = 'http://183.162.245.49:3301'; var ifreamUrl = 'http://192.168.20.39:12306/'; diff --git a/src/api/api.js b/src/api/api.js index 2f67fd9..3ddb3cc 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -64,3 +64,30 @@ //璇锋眰鍦板潃 return request.get('/dep/selectDep', { params: params }); } + +//鐩綍绠$悊鍒楄〃 +export function selectdirTab(params) { + //璇锋眰鍦板潃 + return request.get('/dir/selectDirAll', { params: params }); +} +//鐗堟湰绠$悊鍒楄〃 +export function select_Ver_ByPageAndCount(params) { + //璇锋眰鍦板潃 + return request.get('/version/selectByPageAndCount', { params: params }); +} +//鐗堟湰绠$悊鏂板 +export function insertVersion(params) { + //璇锋眰鍦板潃 + return request.post('/version/insertVersion', params); +} +//鐗堟湰绠$悊鍒犻櫎 +export function deleteVersion(params) { + //璇锋眰鍦板潃 + console.log(params); + return request.get('/version/deleteVersion?id=' + params); +} +//鐗堟湰绠$悊淇敼 +export function updateVersion(params) { + //璇锋眰鍦板潃 + return request.post('/version/updateVersion', params); +} diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 8fa9a3a..4568101 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -26,6 +26,19 @@ dataLoading: 'dataLoading', SpatialData: 'SpatialData', versionManage: 'versionManage', + vmobj: { + keyword: 'Keyword', + describe: 'Describe', + index: 'Index', + name: 'Name', + catalogue: 'Catalogue', + createontime: 'Creation Time', + createonuser: 'Creation Personne', + updateontime: 'Update Time', + updateonuser: 'Update Personnel', + editVersion: 'Modify version information', + addVersion: 'Add version information', + }, dictionaryManage: 'dictionaryManage', dictionaryManageObj: { tableName: 'table name', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index 24bb436..5b3d1c9 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -26,6 +26,19 @@ dataLoading: '鏁版嵁鍏ュ簱', SpatialData: '绌洪棿鏁版嵁绠$悊', versionManage: '鐗堟湰绠$悊', + vmobj: { + keyword: '鍏抽敭瀛�', + describe: '鎻忚堪', + index: '搴忓彿', + name: '鍚嶇О', + catalogue: '鐩綍', + createontime: '鍒涘缓鏃堕棿', + createonuser: '鍒涘缓浜哄憳', + updateontime: '淇敼鏃堕棿', + updateonuser: '淇敼浜哄憳', + editVersion: '淇敼鐗堟湰淇℃伅', + addVersion: '娣诲姞鐗堟湰淇℃伅', + }, dictionaryManage: '瀛楀吀绠$悊', dictionaryManageObj: { tableName: '琛ㄥ悕绉�', diff --git a/src/store/index.js b/src/store/index.js index dd17777..9fc8327 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,12 +1,14 @@ -import Vue from "vue"; -import Vuex from "vuex"; +import Vue from 'vue'; +import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { - catalogueName: "", + catalogueName: '', cataNode: {}, + verCateNode: {}, + verCateNodes: {}, }, mutations: { // 鑾峰彇瀹屾暣闈㈠寘灞戣矾寰� @@ -17,6 +19,12 @@ changeNode(state, msg) { state.cataNode = msg; }, + verChangeNode(state, msg) { + state.verCateNode = msg; + }, + verChangeNodes(state, msg) { + state.verCateNodes = msg; + }, }, actions: {}, modules: {}, diff --git a/src/views/datamanage/verDirTree.vue b/src/views/datamanage/verDirTree.vue new file mode 100644 index 0000000..701cbfc --- /dev/null +++ b/src/views/datamanage/verDirTree.vue @@ -0,0 +1,354 @@ +<template> + <div class="wrap"> + <div class="bread"> + <el-breadcrumb separator="el-icon-arrow-right"> + <el-breadcrumb-item>{{ breadLabel }}</el-breadcrumb-item> + </el-breadcrumb> + </div> + <div class="treeBox"> + <el-tree + ref="tree" + :props="defaultProps" + node-key="id" + :data="dirData" + :expand-on-click-node="false" + :default-expanded-keys="[1, 2, 3, 4, 5, 6, 7, 8, 9]" + :draggable="draggable" + @node-drag-start="handleDragStart" + @node-click="handleNodeClick" + @node-drop="handleDrop" + > + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span class="btnBox" v-show="showEdit"> + <el-button type="text" size="mini" @click="() => append(data)"> + <i class="el-icon-circle-plus"></i> + </el-button> + <el-button + type="text" + size="mini" + @click="() => remove(node, data)" + > + <i class="el-icon-delete-solid"></i> + </el-button> + </span> + </span> + </el-tree> + <!-- <div style="margin-left:130px;"> + <el-button @click="sendChange">淇濆瓨</el-button> + </div> --> + </div> + </div> +</template> + +<script> +import { selectdirTab } from '../../api/api'; +export default { + name: 'catalogueTree', + props: ['showBtn'], + data() { + return { + draggable: false, + id: null, + showEdit: false, + showBread: false, + oriData: [], //鍘熷鏍戞暟鎹� + dirData: [], //el鏍戞暟鎹� + old_dirDat: [], //el鏍戞暟鎹�(鎷栧姩鍓�) + newData: [], //鎷栧姩鍚庡師濮嬫暟鎹� + breadList: [], //闈㈠寘灞戞暟缁� + breadLabel: '', //闈㈠寘灞戞枃瀛� + filterText: '', + defaultProps: { + children: 'children', + label: 'name', + }, + }; + }, + + methods: { + // 璇锋眰鐩綍鏍� + async getDirTree() { + this.selectData = []; + const data = await selectdirTab(); + if (data.code != 200) { + this.$message.error('涓嬫媺璋冪敤澶辫触'); + } else { + this.oriData = data.result; + this.newData = data.result; + this.dirData = this.treeData(data.result); + } + }, + 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灞炴�э紝骞惰祴鍊� + // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛� + // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋� + return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� + }); + }, + append(data) { + this.$prompt('璇疯緭鍏ュ悕绉�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + }) + .then(({ value }) => { + const newChild = { + id: this.id + 1, + name: value, + pid: data.id, + // children: [], + oid: data.children ? data.children.length + 1 : 1, + }; + this.id = newChild.id; //淇敼鏂扮殑鏈�澶 + console.log(newChild); + + if (!data.children) { + this.$set(data, 'children', []); + } + data.children.push(newChild); + this.newData.push(newChild); + this.sendChange(); + }) + .catch(() => { + this.$message({ + type: 'info', + message: '鍙栨秷杈撳叆', + }); + }); + }, + remove(node, data) { + this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ヨ妭鐐�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + const parent = node.parent; + const children = parent.data.children || parent.data; + const index = children.findIndex((d) => d.id === data.id); + let res = children.splice(index, 1); + var std = []; + for (var i in res) { + std.push(res[i].id); + } + deleteDirTree(std); + this.getDirTree(); + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛!', + }); + }) + .catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�', + }); + }); + // this.dialogMessage="鏄惁鍒犻櫎" + // this.dialogFlag = 1; + // this.dialogFrom ={ + // node:node, + // val:data + // } + // this.dialogVisible=true;//鐩綍鏍戞洿鏀瑰脊绐� + // const parent = node.parent; + // const children = parent.data.children || parent.data; + // const index = children.findIndex((d) => d.id === data.id); + // let res = children.splice(index, 1); + // // console.log(res); + // // console.log(data); + // console.log(this.flaten(res)); + }, + flaten(arr) { + return arr.reduce((p, v, i) => { + for (let i = 0; i < p.length; i++) { + if (p[i].children) { + delete p[i].children; + } + } + return p.concat(v.children ? this.flaten(v.children).concat(v) : v); + }, []); + }, + handleNodeClick(data) { + // console.log(data); + this.$store.commit('verChangeNode', data); + this.breadList = []; + this.getTreeNode(this.$refs.tree.getNode(data.id)); + }, + getTreeNode(node) { + if (node && node.label) { + this.breadList.unshift(node.label); + this.getTreeNode(node.parent); //閫掑綊 + this.breadLabel = this.breadList.join('>'); + this.$store.commit('changeCata', this.breadLabel); + } + }, + handleDragStart(node, ev) { + this.old_dirDat = JSON.parse(JSON.stringify(this.dirData)); //灏嗗浠界殑dir閲嶆柊璧嬪�� + }, + + handleDrop(draggingNode, dropNode, dropType, ev) { + // console.log("琚嫋鎷借妭鐐�", draggingNode); + // console.log("杩涘叆鐨勮妭鐐�", dropNode); + // console.log("鏀剧疆浣嶇疆", dropType); + // console.log("浜嬩欢", ev); + // if (dropType !== "inner") { + // // 1.淇敼鐖惰妭鐐筽id + // draggingNode.data.pid = dropNode.data.pid; + // dropNode.parent.childNodes.forEach((item, index) => { + // // 2.淇敼鑷韩椤哄簭oid + // item.data.oid = index + 1; + // }); + // } + // // console.log(draggingNode.data.id); + // let res = this.oriData.filter((item) => item.id == draggingNode.data.id); + // console.log(res); + this.$confirm('姝ゆ搷浣滃皢淇濆瓨鐩綍鏇存敼, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + let paramData = []; + let data = dropType != 'inner' ? dropNode.parent.data : dropNode.data; + let nodeData = + dropNode.level == 1 && dropType != 'inner' ? data : data.children; + let pid = ''; + nodeData.forEach((item, i) => { + if (dropType != 'inner') { + if (draggingNode.data.pid === dropNode.data.pid) { + pid = item.pid; + } else { + pid = dropNode.data.pid; + } + } else { + pid = data.id; + } + let collection = { + id: item.id, + name: item.name, + pid, + oid: i + 1, + }; + paramData.push(collection); + }); + // console.log(paramData); + let arr = []; + this.oriData.forEach((e) => { + paramData.forEach((item) => { + if (item.id === e.id) { + e = item; + } + }); + arr.push(e); + }); + this.newData = arr; + this.sendChange(); + this.$message({ + type: 'success', + message: '鏇存敼鎴愬姛!', + }); + }) + .catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堟洿鏀�', + }); + this.dirData = this.old_dirDat; //灏嗗浠界殑dir閲嶆柊璧嬪�� + }); + }, + + sendChange() { + updateDirTree(this.newData).then((res) => { + console.log(res); + if (res.status == 200) { + this.$message({ + type: 'success', + message: '鏇存柊鎴愬姛!', + }); + } + }); + }, + }, + mounted() { + this.getDirTree(); + this.$bus.$on('clearTressLabel', (e) => { + this.breadLabel = ''; + }); + }, + watch: { + showBtn: { + immediate: true, + handler(val) { + if (val) { + this.showEdit = val; + this.draggable = val; + } + }, + }, + showBread: { + immediate: true, + handler(val) { + if (val) this.showBread = val; + }, + }, + }, +}; +</script> + +<style lang="less" scoped> +.wrap { + width: 98.5%; + height: 100%; + + .bread { + width: 100%; + height: 5%; + margin: 0 auto; + overflow: auto; + } + + .treeBox { + margin-top: 1%; + width: 100%; + height: 94%; + overflow: auto; + + .el-tree { + background: transparent; + font-size: 15px; + font-family: Microsoft YaHei; + font-weight: 400; + color: #000000; + + // /deep/ .el-tree-node__label { + // font-size: 18px; + // } + /deep/ .el-tree-node { + padding-top: 10px; + // padding-bottom: 10px; + } + + /deep/ .el-tree-node:focus > .el-tree-node__content { + background-color: #b9b9b9; + } + + /deep/ .el-tree-node__content:hover { + background-color: rgb(153, 153, 153); + } + + .btnBox { + margin-left: 5px; + + .el-button + .el-button { + margin-left: 5px; + } + } + } + } +} +</style> diff --git a/src/views/datamanage/verDirTrees.vue b/src/views/datamanage/verDirTrees.vue new file mode 100644 index 0000000..6656c82 --- /dev/null +++ b/src/views/datamanage/verDirTrees.vue @@ -0,0 +1,352 @@ +<template> + <div class="wrap"> + <div class="bread"> + <el-breadcrumb separator="el-icon-arrow-right"> + <el-breadcrumb-item>{{ breadLabel }}</el-breadcrumb-item> + </el-breadcrumb> + </div> + <div class="treeBox"> + <el-tree + ref="tree" + :props="defaultProps" + node-key="id" + :data="dirData" + :expand-on-click-node="false" + :default-expanded-keys="[1, 2, 3, 4, 5, 6, 7, 8, 9]" + :draggable="draggable" + @node-drag-start="handleDragStart" + @node-click="handleNodeClick" + @node-drop="handleDrop" + > + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span class="btnBox" v-show="showEdit"> + <el-button type="text" size="mini" @click="() => append(data)"> + <i class="el-icon-circle-plus"></i> + </el-button> + <el-button + type="text" + size="mini" + @click="() => remove(node, data)" + > + <i class="el-icon-delete-solid"></i> + </el-button> + </span> + </span> + </el-tree> + <!-- <div style="margin-left:130px;"> + <el-button @click="sendChange">淇濆瓨</el-button> + </div> --> + </div> + </div> +</template> + +<script> +import { selectdirTab } from '../../api/api'; + +export default { + name: 'catalogueTree', + props: ['showBtn'], + data() { + return { + draggable: false, + id: null, + showEdit: false, + showBread: false, + oriData: [], //鍘熷鏍戞暟鎹� + dirData: [], //el鏍戞暟鎹� + old_dirDat: [], //el鏍戞暟鎹�(鎷栧姩鍓�) + newData: [], //鎷栧姩鍚庡師濮嬫暟鎹� + breadList: [], //闈㈠寘灞戞暟缁� + breadLabel: '', //闈㈠寘灞戞枃瀛� + filterText: '', + defaultProps: { + children: 'children', + label: 'name', + }, + }; + }, + + methods: { + // 璇锋眰鐩綍鏍� + async getDirTree() { + this.selectData = []; + const data = await selectdirTab(); + if (data.code != 200) { + this.$message.error('涓嬫媺璋冪敤澶辫触'); + } else { + this.oriData = data.result; + this.newData = data.result; + this.dirData = this.treeData(data.result); + } + }, + 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灞炴�э紝骞惰祴鍊� + // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛� + // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋� + return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� + }); + }, + append(data) { + this.$prompt('璇疯緭鍏ュ悕绉�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + }) + .then(({ value }) => { + const newChild = { + id: this.id + 1, + name: value, + pid: data.id, + // children: [], + oid: data.children ? data.children.length + 1 : 1, + }; + this.id = newChild.id; //淇敼鏂扮殑鏈�澶 + console.log(newChild); + + if (!data.children) { + this.$set(data, 'children', []); + } + data.children.push(newChild); + this.newData.push(newChild); + this.sendChange(); + }) + .catch(() => { + this.$message({ + type: 'info', + message: '鍙栨秷杈撳叆', + }); + }); + }, + remove(node, data) { + this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ヨ妭鐐�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + const parent = node.parent; + const children = parent.data.children || parent.data; + const index = children.findIndex((d) => d.id === data.id); + let res = children.splice(index, 1); + var std = []; + for (var i in res) { + std.push(res[i].id); + } + deleteDirTree(std); + this.getDirTree(); + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛!', + }); + }) + .catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�', + }); + }); + // this.dialogMessage="鏄惁鍒犻櫎" + // this.dialogFlag = 1; + // this.dialogFrom ={ + // node:node, + // val:data + // } + // this.dialogVisible=true;//鐩綍鏍戞洿鏀瑰脊绐� + // const parent = node.parent; + // const children = parent.data.children || parent.data; + // const index = children.findIndex((d) => d.id === data.id); + // let res = children.splice(index, 1); + // // console.log(res); + // // console.log(data); + // console.log(this.flaten(res)); + }, + flaten(arr) { + return arr.reduce((p, v, i) => { + for (let i = 0; i < p.length; i++) { + if (p[i].children) { + delete p[i].children; + } + } + return p.concat(v.children ? this.flaten(v.children).concat(v) : v); + }, []); + }, + handleNodeClick(data) { + // console.log(data); + this.$store.commit('verChangeNodes', data); + this.breadList = []; + this.getTreeNode(this.$refs.tree.getNode(data.id)); + }, + getTreeNode(node) { + if (node && node.label) { + this.breadList.unshift(node.label); + this.getTreeNode(node.parent); //閫掑綊 + this.breadLabel = this.breadList.join('>'); + this.$store.commit('verchangeCatas', this.breadLabel); + } + }, + handleDragStart(node, ev) { + this.old_dirDat = JSON.parse(JSON.stringify(this.dirData)); //灏嗗浠界殑dir閲嶆柊璧嬪�� + }, + + handleDrop(draggingNode, dropNode, dropType, ev) { + // console.log("琚嫋鎷借妭鐐�", draggingNode); + // console.log("杩涘叆鐨勮妭鐐�", dropNode); + // console.log("鏀剧疆浣嶇疆", dropType); + // console.log("浜嬩欢", ev); + // if (dropType !== "inner") { + // // 1.淇敼鐖惰妭鐐筽id + // draggingNode.data.pid = dropNode.data.pid; + // dropNode.parent.childNodes.forEach((item, index) => { + // // 2.淇敼鑷韩椤哄簭oid + // item.data.oid = index + 1; + // }); + // } + // // console.log(draggingNode.data.id); + // let res = this.oriData.filter((item) => item.id == draggingNode.data.id); + // console.log(res); + this.$confirm('姝ゆ搷浣滃皢淇濆瓨鐩綍鏇存敼, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + let paramData = []; + let data = dropType != 'inner' ? dropNode.parent.data : dropNode.data; + let nodeData = + dropNode.level == 1 && dropType != 'inner' ? data : data.children; + let pid = ''; + nodeData.forEach((item, i) => { + if (dropType != 'inner') { + if (draggingNode.data.pid === dropNode.data.pid) { + pid = item.pid; + } else { + pid = dropNode.data.pid; + } + } else { + pid = data.id; + } + let collection = { + id: item.id, + name: item.name, + pid, + oid: i + 1, + }; + paramData.push(collection); + }); + // console.log(paramData); + let arr = []; + this.oriData.forEach((e) => { + paramData.forEach((item) => { + if (item.id === e.id) { + e = item; + } + }); + arr.push(e); + }); + this.newData = arr; + this.sendChange(); + this.$message({ + type: 'success', + message: '鏇存敼鎴愬姛!', + }); + }) + .catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堟洿鏀�', + }); + this.dirData = this.old_dirDat; //灏嗗浠界殑dir閲嶆柊璧嬪�� + }); + }, + + sendChange() { + updateDirTree(this.newData).then((res) => { + console.log(res); + if (res.status == 200) { + this.$message({ + type: 'success', + message: '鏇存柊鎴愬姛!', + }); + } + }); + }, + }, + mounted() { + this.getDirTree(); + }, + watch: { + showBtn: { + immediate: true, + handler(val) { + if (val) { + this.showEdit = val; + this.draggable = val; + } + }, + }, + showBread: { + immediate: true, + handler(val) { + if (val) this.showBread = val; + }, + }, + }, +}; +</script> + +<style lang="less" scoped> +.wrap { + width: 98.5%; + height: 100%; + + .bread { + width: 100%; + height: 5%; + margin: 0 auto; + overflow: auto; + } + + .treeBox { + margin-top: 1%; + width: 100%; + height: 94%; + overflow: auto; + + .el-tree { + background: transparent; + font-size: 15px; + font-family: Microsoft YaHei; + font-weight: 400; + color: #000000; + + // /deep/ .el-tree-node__label { + // font-size: 18px; + // } + /deep/ .el-tree-node { + padding-top: 10px; + // padding-bottom: 10px; + } + + /deep/ .el-tree-node:focus > .el-tree-node__content { + background-color: #b9b9b9; + } + + /deep/ .el-tree-node__content:hover { + background-color: rgb(153, 153, 153); + } + + .btnBox { + margin-left: 5px; + + .el-button + .el-button { + margin-left: 5px; + } + } + } + } +} +</style> diff --git a/src/views/datamanage/versionManage.vue b/src/views/datamanage/versionManage.vue index 4d87b53..c23135d 100644 --- a/src/views/datamanage/versionManage.vue +++ b/src/views/datamanage/versionManage.vue @@ -1,76 +1,108 @@ <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 + @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 @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 @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 +114,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 +128,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 +149,141 @@ </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, -} from "../../api/api"; -import catalogueTree from "../../components/catalogueTree.vue"; -import MyBread from "../../components/MyBread.vue"; + select_Ver_ByPageAndCount, + insertVersion, + deleteVersion, + updateVersion, +} from '../../api/api'; +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 }, + name: 'versionManage', + 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, + }, }; }, created() { - this.getMetaData(10, 1, "", -1); - this.getMetaCount("", -1); + this.getRoleTabelData(); }, computed: { pathId() { @@ -219,140 +291,141 @@ }, }, methods: { - // 璇锋眰鏁版嵁鍐呭 - getMetaData(size, num, name, pid) { - queryMetaData(size, num, name, pid).then((res) => { - this.tableData = res.data; - }); + resetForm() { + this.ruleForm = {}; + this.$store.state.verCateNode = {}; + this.$bus.$emit('clearTressLabel', true); + this.getRoleTabelData(); }, - // 璇锋眰鏁版嵁鏁伴噺 - getMetaCount(name, pid) { - queryDataCount(name, pid).then((res) => { - this.count = res.data; - }); + onSubmit() { + 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; - } - }); + async getRoleTabelData() { + if (this.listData.tab == '') { + delete this.listData.tab; + } + + this.listData.name = this.ruleForm.name; + this.listData.depName = this.$store.state.verCateNode.name; + console.log(this.listData); + const data = await select_Ver_ByPageAndCount(this.listData); + console.log(data); + if (data.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + } + this.tableData = data.result; + this.count = data.count; }, - // 閲嶇疆鏌ヨ - resetForm(formName) { - this.getMetaData(10, 1, "", -1); - this.getMetaCount(""); - this.searchName = ""; - this.$refs[formName].resetFields(); + handleSizeChange(val) { + this.listData.pageSize = val; + this.getRoleTabelData(); }, - // 鑾峰彇澶氶�夐�変腑鐨勫璞� - handleSelectionChange(val) { - this.multipleSelection = val; - console.log(val); + handleCurrentChange(val) { + this.listData.pageIndex = val; + this.getRoleTabelData(); }, - // 鏌ョ湅鐣岄潰 - showDetail(index, row) { - // console.log(index, row); - this.showinfoBox = true; - this.itemdetail = row; + showVerTree(res) { + this.showCata = true; + this.rowFlag = res; }, - // 鍏抽棴鏌ョ湅 - closeDetial() { - this.showinfoBox = false; - this.itemdetail = {}; + 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 +438,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 +470,6 @@ border: 1px solid rgb(202, 201, 204); .el-form-item { margin: 5px; - } - .el-input { - width: 467px; } } .bottom { @@ -397,43 +492,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 +569,7 @@ } } /deep/ .el-dialog { - width: 500px !important; + width: 620px !important; margin-top: 10vh !important; } @@ -486,7 +581,7 @@ } /deep/ .el-dialog__footer { padding-top: 0 !important; - width: 200px; + width: 600px; display: flex; margin: 0 auto; justify-content: center; diff --git a/src/views/userManage/roleDepTree.vue b/src/views/userManage/roleDepTree.vue index 5bc0272..dc2bd87 100644 --- a/src/views/userManage/roleDepTree.vue +++ b/src/views/userManage/roleDepTree.vue @@ -104,7 +104,6 @@ oid: data.children ? data.children.length + 1 : 1, }; this.id = newChild.id; //淇敼鏂扮殑鏈�澶 - console.log(newChild); if (!data.children) { this.$set(data, 'children', []); diff --git a/src/views/userManage/roleManage.vue b/src/views/userManage/roleManage.vue index 6c5b752..f3d9e30 100644 --- a/src/views/userManage/roleManage.vue +++ b/src/views/userManage/roleManage.vue @@ -294,10 +294,12 @@ }, methods: { formatTime(row, column) { - let date = row[column.property]; // 鎴戣繖閲岀殑crtime=1657528899鎵�浠ヨ繖閲�*1000 + let date = row[column.property]; + if (date === undefined || date === null) { return ''; } + return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss'); }, showDepTree(res) { @@ -339,7 +341,6 @@ this.listData.name = this.roleForm.username; this.listData.depName = this.roleForm.value; const data = await select_Role_ByPageAndCount(this.listData); - console.log(data.result); if (data.code != 200) { this.$message.error('鍒楄〃璋冪敤澶辫触'); } @@ -438,7 +439,6 @@ this.getRoleTabelData(); }, handleCurrentChange(val) { - console.log(`褰撳墠椤�: ${val}`); this.listData.pageIndex = val; this.getRoleTabelData(); }, @@ -449,7 +449,6 @@ this.UpdateFormdialog = true; }, onSubmit() { - console.log(this.roleForm); this.getRoleTabelData(); }, resetForm(formName) { -- Gitblit v1.9.3