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