From 6f07da9344da3c3a2c099c33c3e98fb9e247fdeb Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期三, 09 八月 2023 15:48:43 +0800
Subject: [PATCH] 项目管理修改批量上传功能

---
 src/views/datamanage/catalogueManage.vue | 1416 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 1,070 insertions(+), 346 deletions(-)

diff --git a/src/views/datamanage/catalogueManage.vue b/src/views/datamanage/catalogueManage.vue
index 75590de..a6a4fe1 100644
--- a/src/views/datamanage/catalogueManage.vue
+++ b/src/views/datamanage/catalogueManage.vue
@@ -1,13 +1,17 @@
 <template>
-  <div class="cataLogBox">
+  <div class="subpage_Box">
     <My-bread :list="[
-        `${$t('dataManage.dataManage')}`,
-        `${$t('dataManage.catalogueManage')}`,
-      ]"></My-bread>
+          `${$t('dataManage.dataManage')}`,
+          `${$t('dataManage.projectManagement')}`,
+        ]"></My-bread>
     <el-divider />
-    <div class="cataLogContent">
-      <div class="cataLog_leftTree">
-        <div style="min-width:450px">
+    <div class="mainBox">
+
+      <div
+        class="cataLogContent leftTree subpage_Div"
+        style="border: 1px solid #dcdfe6;"
+      >
+        <div style="min-width: 450px">
           <el-tree
             ref="tree"
             :props="defaultProps"
@@ -15,83 +19,231 @@
             :data="dirList"
             :highlight-current="true"
             :expand-on-click-node="false"
-            :default-expand-all="true"
+            :default-expanded-keys="expandData"
             @node-click="handleNodeClick"
+            @node-contextmenu="openTreeMenu"
           >
-
           </el-tree>
-        </div>
-      </div>
-      <div class="cataLog_rightContent">
-        <div style="display:flex;justify-content:space-between">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item :to="{ path: '/' }">{{
-            $t('dataManage.dictionaryManageObj.particulars')
-          }}</el-breadcrumb-item>
-          </el-breadcrumb>
-          <div>
-            <el-button
-              :disabled="itemdetail.pid == null ? true : false"
-              @click="setEditNode(1)"
-              type="info"
-              icon="el-icon-top"
-              size="small"
-            >鍚戜笂绉诲姩</el-button>
-            <el-button
-              :disabled="itemdetail.pid == null ? true : false"
-              @click="setEditNode(2)"
-              type="info"
-              icon="el-icon-bottom"
-              size="small"
-            >鍚戜笅绉诲姩</el-button>
-            <el-button
-              :disabled="itemdetail.pid == null ? true : false"
-              @click="setNewNode(1)"
-              type="success"
-              icon="el-icon-plus"
-              size="small"
-            >鏂板鍚岀骇</el-button>
-            <el-button
-              :disabled="itemdetail.pid == null ? true : false"
-              @click="setNewNode(2)"
-              type="success"
-              icon="el-icon-plus"
-              size="small"
-            >鏂板瀛愮骇</el-button>
-            <el-button
-              @click="setDelNode()"
-              :disabled="itemdetail.pid == null ? true : false"
-              type="danger"
-              icon="el-icon-delete"
-              size="small"
-            >鍒犻櫎</el-button>
+          <div
+            class="right_menu box_divm"
+            id="menu"
+            v-show="showRightMenu"
+          >
+            <ul>
+              <li @click="setMenuDataCopy">澶嶅埗</li>
+              <li @click="setMenuDataPaste">绮樿创</li>
+            </ul>
           </div>
         </div>
-        <el-divider />
+      </div>
+      <div class="cataLog_rightContent right subpage_Div">
+        <div
+          class="inquire"
+          style="
+            align-items: center;
+            display: flex;
+            justify-content: space-between;
+          "
+        >
+          <el-breadcrumb separator="/">
+            <el-breadcrumb-item :to="{ path: '/' }">{{
+              
+            }}</el-breadcrumb-item>
+          </el-breadcrumb>
+          <div style="margin-right: -5px">
+            <div class="menuTop">
+              <el-form
+                :inline="true"
+                class="demo-form-inline"
+              >
+                <el-form-item>
+
+                  <el-button
+                    v-show="directoryFlag"
+                    icon="el-icon-download"
+                    type="info"
+                    size="small"
+                    @click="setDirectoryDownload"
+                  >{{ $t("shuJuGuanLi.butten.folderDownload") }}</el-button>
+                </el-form-item>
+                <el-form-item>
+
+                  <el-button
+                    icon="el-icon-download"
+                    type="info"
+                    size="small"
+                    @click="setTemplateDownload"
+                  >{{ $t("shuJuGuanLi.butten.templateDownload") }}</el-button>
+                </el-form-item>
+                <el-form-item>
+                  <el-upload
+                    action
+                    accept=".xlsx, .xls"
+                    :auto-upload="false"
+                    :show-file-list="false"
+                    :on-change="handleChange"
+                    :file-list="fileList"
+                  >
+                    <el-button
+                      type="success"
+                      icon="el-icon-plus"
+                      size="small"
+                    >{{ $t("shuJuGuanLi.butten.uploads") }}</el-button>
+                  </el-upload>
+                </el-form-item>
+                <el-form-item>
+                  <el-button
+                    v-if="menuStatus.insert"
+                    :disabled="itemdetail.pid == null ? true : false"
+                    @click="setNewNode(1)"
+                    type="success"
+                    icon="el-icon-plus"
+                    size="small"
+                  >{{ $t("shuJuGuanLi.butten.NewPeer") }}</el-button>
+                </el-form-item>
+                <el-form-item>
+                  <el-button
+                    v-if="menuStatus.insert"
+                    :disabled="itemdetail.pid == null ? true : false"
+                    @click="setNewNode(2)"
+                    type="success"
+                    icon="el-icon-plus"
+                    size="small"
+                  >{{ $t("shuJuGuanLi.butten.AddChild") }}</el-button>
+                </el-form-item>
+                <el-form-item>
+                  <el-button
+                    v-if="menuStatus.delete"
+                    @click="setDelNode()"
+                    :disabled="itemdetail.pid == null ? true : false"
+                    type="danger"
+                    icon="el-icon-delete"
+                    size="small"
+                  >{{ $t("shuJuGuanLi.butten.Delete") }}</el-button>
+                </el-form-item>
+                <el-form-item>
+                  <el-button
+                    v-if="menuStatus.update"
+                    :disabled="itemdetail.pid == null ? true : false"
+                    @click="setEditNode(1)"
+                    type="info"
+                    icon="el-icon-top"
+                    size="small"
+                  >{{ $t("shuJuGuanLi.butten.MoveUp") }}</el-button>
+                </el-form-item>
+                <el-form-item>
+                  <el-button
+                    v-if="menuStatus.update"
+                    :disabled="itemdetail.pid == null ? true : false"
+                    @click="setEditNode(2)"
+                    type="info"
+                    icon="el-icon-bottom"
+                    size="small"
+                  >{{ $t("shuJuGuanLi.butten.MoveDown") }}</el-button>
+                </el-form-item>
+              </el-form>
+            </div>
+          </div>
+
+        </div>
+        <div class="dividing-line"></div>
+
         <el-form
           :model="itemdetail"
           ref="itemdetail"
           :rules="rules"
+          style="position: relative; padding-top: 18px"
         >
           <el-form-item
             prop="name"
-            :label="$t('dataManage.dataUpObj.directoryName')"
+            :label="$t('dataManage.dataUpObj.name')"
             :label-width="formLabelWidth"
           >
-            <el-input v-model="itemdetail.name" />
+            <el-input
+              v-model="itemdetail.name"
+              size="small"
+              style=" max-width: 420px"
+              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueName')"
+              clearable
+            />
+            <!--            style="max-width: 400px"-->
           </el-form-item>
           <el-form-item
-            :label="$t('dataManage.dataUpObj.catalogDescription')"
+            :label="$t('dataManage.dataUpObj.explain')"
             :label-width="formLabelWidth"
           >
             <el-input
               v-model="itemdetail.descr"
               type="textarea"
-              resize="none"
-              style="height: 100%; overflow: auto"
+              style=" max-width: 420px"
+              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexplain')"
+              clearable
             />
           </el-form-item>
           <el-form-item
+            :label="$t('dataManage.dataUpObj.inspectionItems')"
+            :label-width="formLabelWidth"
+          >
+            <el-select
+              style="width: 420px"
+              v-model="itemdetail.checks"
+              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexamine')"
+              multiple
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+            <!-- <el-input
+     
+              type="textarea"
+              style=" max-width: 420px"
+              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')"
+              clearable
+            /> -->
+            <!--            resize="none"-->
+            <!--            style="height: 100%; overflow: auto; max-width: 400px"-->
+          </el-form-item>
+          <el-form-item
+            :label="$t('dataManage.dataUpObj.fileExtension')"
+            :label-width="formLabelWidth"
+          >
+            <el-input
+              v-model="itemdetail.exts"
+              type="textarea"
+              style=" max-width: 420px"
+              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuesuffix')"
+              clearable
+            />
+          </el-form-item>
+          <!--          <el-form-item
+            :label="$t('dataManage.dataUpObj.inspectionItems')"
+            :label-width="formLabelWidth"
+          >
+            <el-input
+              v-model="itemdetail.checks"
+              type="textarea"
+              resize="none"
+              style="height: 100%; overflow: auto; max-width: 400px"
+            />
+          </el-form-item>-->
+          <el-form-item
+            :label="$t('dataManage.dataUpObj.code')"
+            :label-width="formLabelWidth"
+          >
+            <el-input
+              v-model="itemdetail.code"
+              disabled
+              type="textarea"
+              style=" max-width: 420px"
+              autosize
+            />
+          </el-form-item>
+          <!--          <el-form-item
             :label="$t('dataManage.dataUpObj.catalogRemarks')"
             :label-width="formLabelWidth"
           >
@@ -99,25 +251,43 @@
               v-model="itemdetail.bak"
               type="textarea"
               resize="none"
+              style="max-width: 400px"
             />
-          </el-form-item>
-          <div class="btnBox">
+          </el-form-item>-->
+          <!--          <div class="btnBox">
             <el-button
+              v-if="menuStatus.update"
               class="primary"
               size="small"
               @click="updCata('itemdetail')"
-            >{{
-              $t('common.preservation')
-            }}</el-button>
+              >{{ $t("common.preservation") }}</el-button
+            >
             <el-button
+              v-if="menuStatus.update"
               type="info"
               size="small"
               @click="reset"
-            >{{
-              $t('common.cancel')
-            }}</el-button>
-          </div>
+              >{{ $t("common.cancel") }}</el-button
+            >
+          </div>-->
         </el-form>
+        <div
+          slot="footer"
+          class="dialog-footer"
+          style="padding-left: 45% ;padding-top: 20px"
+        >
+          <el-button
+            v-if="menuStatus.update"
+            type="primary"
+            size="small"
+            @click="updCata('itemdetail')"
+          >{{ $t("common.preservation") }}</el-button>
+          <el-button
+            v-if="menuStatus.update"
+            size="small"
+            @click="reset"
+          >{{ $t("common.cancel") }}</el-button>
+        </div>
       </div>
     </div>
     <!-- <div class="cataSettings_tree"> -->
@@ -145,31 +315,84 @@
         :rules="rules"
       >
         <el-form-item
-          :label="$t('dataManage.dataUpObj.directoryName')"
+          :label="$t('dataManage.dataUpObj.name')"
           prop="name"
           :label-width="formLabelWidth"
         >
           <el-input
             v-model="ruleForm.name"
             autocomplete="off"
+            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueName')"
           ></el-input>
         </el-form-item>
         <el-form-item
-          :label="$t('dataManage.dataUpObj.catalogDescription')"
+          :label="$t('dataManage.dataUpObj.explain')"
           :label-width="formLabelWidth"
         >
           <el-input
             v-model="ruleForm.descr"
             autocomplete="off"
+            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexplain')"
           ></el-input>
         </el-form-item>
         <el-form-item
-          :label="$t('dataManage.dataUpObj.catalogRemarks')"
+          :label="$t('dataManage.dataUpObj.fileExtension')"
+          :label-width="formLabelWidth"
+        >
+          <el-input
+            v-model="ruleForm.exts"
+            type="textarea"
+            resize="none"
+            style="height: 100%; overflow: auto"
+            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuesuffix')"
+          />
+        </el-form-item>
+        <el-form-item
+          :label="$t('dataManage.dataUpObj.inspectionItems')"
+          :label-width="formLabelWidth"
+        >
+          <!-- <el-input
+            
+            type="textarea"
+            resize="none"
+         
+          /> -->
+          <el-select
+            v-model="ruleForm.checks"
+            multiple
+            style="width:100%;"
+            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexamine')"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+
+        </el-form-item>
+        <el-form-item
+          :label="$t('dataManage.dataUpObj.code')"
+          :label-width="formLabelWidth"
+        >
+          <el-input
+            v-model="ruleForm.code"
+            disabled
+            type="textarea"
+            resize="none"
+            style="height: 100%; overflow: auto"
+          />
+        </el-form-item>
+        <el-form-item
+          :label="$t('dataManage.dataUpObj.Remarks')"
           :label-width="formLabelWidth"
         >
           <el-input
             v-model="ruleForm.bak"
             autocomplete="off"
+            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueRemarks')"
           ></el-input>
         </el-form-item>
       </el-form>
@@ -178,15 +401,41 @@
         class="dialog-footer"
       >
         <el-button @click="resetForm('ruleForm')">{{
-          $t('common.cancel')
+          $t("common.cancel")
         }}</el-button>
         <el-button
           class="primary"
           @click="submitForm('ruleForm')"
           v-loading.fullscreen.lock="fullscreenLoading"
-        >{{ $t('common.preservation') }}</el-button>
+        >{{ $t("common.preservation") }}</el-button>
       </div>
     </el-dialog>
+
+    <iframe
+      id="Iframe1"
+      src=""
+      style="display: none; border: 0; padding: 0; height: 0; width: 0"
+    ></iframe>
+    <div
+      class="loadBox"
+      v-if="loadDialogVisible"
+    >
+      <div style="widht:100%; margin:20px; color:white">
+        <div style="margin-left:99%">
+          <!-- <el-link
+            @click="setloadDialogVisible()"
+            style="color:white"
+          > X</el-link> -->
+        </div>
+      </div>
+      <div
+        v-loading="true"
+        element-loading-background="rgba(0, 0, 0, 0.0) "
+        element-loading-text="鐩綍涓婁紶涓�,璇风瓑寰�..."
+        style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); "
+      >
+      </div>
+    </div>
   </div>
 </template>
 
@@ -198,80 +447,409 @@
   updateDirTrees,
   insertDir,
   deleteDir,
-} from '../../api/api';
-import MyBread from '../../components/MyBread.vue';
+  getPerms,
+} from "../../api/api";
+import * as XSLX from "xlsx";
+import MyBread from "../../components/MyBread.vue";
+import clone from "@turf/clone";
+import $ from 'jquery'
+import { getToken } from '../../utils/auth';
 export default {
-  name: 'catalogueManage',
+  name: "catalogueManage",
   components: {
     MyBread,
   },
   data() {
     let validName = (rule, value, callback) => {
-      if (value === '' || value === null || value === undefined) {
-        return callback(new Error('鐩綍鍚嶇О涓嶈兘涓虹┖'));
+      if (value === "" || value === null || value === undefined) {
+        return callback(new Error("鐩綍鍚嶇О涓嶈兘涓虹┖"));
       } else {
         callback();
       }
     };
     return {
+      directoryData: null,
+      directoryFlag: false,
+      menuStatus: {
+        delete: false,
+        insert: false,
+        update: false,
+      },
       defaultProps: {
-        children: 'children',
-        label: 'name',
+        children: "children",
+        label: "name",
       },
       fullscreenLoading: false,
       oriData: [], //鍘熷鏍戞暟鎹�
       dirList: [], //el鏍戞暟鎹�
       old_dirDat: [], //el鏍戞暟鎹�(鎷栧姩鍓�)
       newData: [], //鎷栧姩鍚庡師濮嬫暟鎹�
-      itemdetail: {},
-      backUpData: '',
-      formLabelWidth: '150px',
-      delChildID: '',
+      itemdetail: {
+        checks: [],
+      },
+      itemaName: null,
+      backUpData: "",
+      formLabelWidth: "150px",
+      delChildID: "",
       delChildIDs: [],
       dialogFormVisible: false,
       ruleForm: {
         level: null,
         orderNum: null,
         pid: null,
-        name: '',
-        descr: '',
-        bak: '',
+        name: "",
+        descr: "",
+        bak: "",
+        checks: []
       },
       rules: {
-        name: [{ required: true, validator: validName, trigger: 'blur' }],
+        name: [{ required: true, validator: validName, trigger: "blur" }],
       },
       newNode: null,
+      expandData: [],
+      fileList: [],
+      file: null,
+      tableData: [],
+      options: [
+        {
+          value: 'checkMain',
+          label: '鎬昏川妫�'
+        }, {
+          value: 'checkOsgb',
+          label: 'OSGB妫�鏌�'
+        }, {
+          value: 'checkXls',
+          label: '琛ㄦ牸鏁版嵁妫�鏌�'
+        }, {
+          value: 'checkLaz',
+          label: '鐐逛簯妫�鏌�'
+        }, {
+          value: 'checkDem',
+          label: '楂樼▼妫�鏌�'
+        }, {
+          value: 'checkAttrs',
+          label: '灞炴�ф鏌�'
+        }, {
+          value: 'checkTopology',
+          label: '鎷撴墤妫�鏌�'
+        }, {
+          value: 'checkDecorate',
+          label: '鍥鹃潰鏁撮グ妫�鏌�'
+        }, {
+          value: 'checkOrigin',
+          label: '鍘熺偣妫�鏌�'
+        }, {
+          value: 'checkDom',
+          label: '鏍呮牸妫�鏌�'
+        }, {
+          value: 'checkMath',
+          label: '鏁板鍩虹妫�鏌�'
+        }, {
+          value: 'checkMeta',
+          label: '鍏冩暟鎹鏌�'
+        }, {
+          value: 'checkLogical',
+          label: '閫昏緫涓�鑷存�ф鏌�'
+        }, {
+          value: 'checkSingleIntegrity',
+          label: '鍗曢」鎴愭灉瀹屾暣鎬ф鏌�'
+        }
+
+      ],
+      currentData: null,
+      showRightMenu: false,
+      checksData: null,
+      checksCopyData: null,
+      loadDialogVisible: false
     };
   },
   methods: {
+    // 澶嶅埗
+    setMenuDataCopy() {
+      this.checksCopyData = this.checksData;
+    },
+    //绮樿创
+    setMenuDataPaste() {
+      if (!this.checksCopyData) {
+        return this.$message('鏈�変腑瑕佸鍒剁殑鑺傜偣');
+      }
+      var val = this.$refs.tree.getNode(this.checksCopyData).data;
+
+      var level = this.$refs.tree.getNode(this.checksData).data.level + 1;
+      this.setInsertCopyData([val], this.checksData, level);
+    },
+    setInsertCopyData(val, pid, level) {
+      for (var i in val) {
+        var data = val[i];
+        var pchildNodes = [];
+
+        if (this.$refs.tree.getNode(pid) && this.$refs.tree.getNode(pid).childNodes) {
+          pchildNodes = this.$refs.tree.getNode(pid).childNodes
+        }
+        var orderNum = this.getMaxOrderNum(pchildNodes);
+        var obj = {
+          bak: data.bak,
+          level: level,
+          orderNum: orderNum + 1,
+          pid: pid,
+          checks: data.checks,
+          name: data.name,
+          descr: data.descr,
+          exts: data.exts,
+        }
+        insertDir(obj).then((res) => {
+          if (res.code == 200) {
+            this.getDirTree();
+            if (data.children && data.children.length > 0) {
+
+              this.setInsertCopyData(data.children, res.result, level + 1)
+            }
+          }
+        })
+      }
+    },
+
+
+
+
+
+    handleNodeClick(data, node) {
+      this.showRightMenu = false;
+      document.removeEventListener('click', this.closeRightMenu)
+      this.layerFormInline(data)
+
+    },
+    //鍙抽敭鑿滃崟
+    openTreeMenu(event, data, node, obj) {
+      this.showRightMenu = true;
+      let menu = document.getElementById('menu')
+      menu.style.left = event.clientX + 20 + 'px'
+      menu.style.top = event.clientY + 'px'
+      document.addEventListener('click', this.closeRightMenu)
+      this.checksData = data.id;
+      console.log(this.checksData)
+    },
+    closeRightMenu() {
+      this.showRightMenu = false;
+      document.removeEventListener('click', this.closeRightMenu)
+
+    },
+    setTemplateDownload() {
+      var url = window.location.href;
+      var testurl = window.location.origin + "/";
+      if (url.indexOf("web") != -1) {
+        testurl = testurl + "/web/";
+      }
+      testurl += dirTemplateFile
+      $("#Iframe1").attr("src", testurl).click()
+    },
+    handleChange(file, fileList) {
+      this.file = file;
+      if (fileList.length > 0) {
+        this.fileList = [fileList[fileList.length - 1]]; //杩欎竴姝ワ紝鏄� 灞曠ず鏈�鍚庝竴娆¢�夋嫨鏂囦欢;
+        this.handle();
+      }
+    },
+    async handle() {
+      let file = this.file?.raw;
+      if (!this.file) {
+        console.log("鏂囦欢鎵撳紑澶辫触");
+        return;
+      } else {
+        const reader = new FileReader();
+        let that = this;
+        reader.readAsArrayBuffer(file);
+        reader.onload = function () {
+          const buffer = reader.result;
+          const bytes = new Uint8Array(buffer);
+          const length = bytes.byteLength;
+          let binary = "";
+          for (let i = 0; i < length; i++) {
+            binary += String.fromCharCode(bytes[i]);
+          }
+          const XLSX = require("xlsx");
+          const wb = XLSX.read(binary, {
+            type: "binary",
+          });
+          const outdata = XLSX.utils.sheet_to_json(
+            wb.Sheets[wb.SheetNames[0]],
+            { defval: null }
+          ); // 榛樿绗竴琛屼笅涓虹┖涔熻兘瑙f瀽鍑虹涓�鍥涜
+          var data = [...outdata];
+          that.setLeToFc(data);
+        };
+      }
+    },
+
+    setLeToFc(res) {
+      var arr = [];
+      for (var i in res) {
+        var value = this.getNameAndPname(res[i], res, i)
+        arr.push({
+          name: value[0],
+          pname: value[1],
+          descr: res[i].explain,
+          checks: res[i].checks,
+          bak: res[i].bak,
+          exts: res[i].exts,
+          orderNum: null,
+          pid: null,
+          tid: parseInt(value[2]) + 1,
+          sid: parseInt(value[3]) + 1
+        })
+      }
+
+      this.tableData = arr;
+
+      this.setInsertData(this.tableData);
+    },
+    getNameAndPname(res, result, flag) {
+      var chLevel = null;
+      var faLevel = null;
+
+      for (var i = 1; i < 8; i++) {
+        var lel = 'L' + i;
+        if (res[lel] != null) {
+          chLevel = i
+        }
+      }
+      if (chLevel == 1) {
+        return [res['L' + chLevel], null, flag, -1]
+      } else {
+        faLevel = chLevel - 1;
+        for (var i = flag; i >= 0; i--) {
+          var val = result[i]
+          if (val['L' + faLevel]) {
+            return [res['L' + chLevel], val['L' + faLevel], flag, i]
+            break;
+          }
+        }
+      }
+    },
+    setInsertData(res) {
+      var list = this.excelData(res);
+      if (list.length != 0) {
+        if (list[0].pname != null) {
+          return this.$message.error("涓婁紶鏁版嵁閿欒锛岀涓�鏉℃暟鎹笉涓虹┖");
+        }
+        this.getAllNodeId(res);
+      }
+    },
+    async getAllNodeId(res) {
+      this.loadDialogVisible = true;
+      for (let i = 0; i < res.length; i++) {
+        var val = res[i];
+        if (val.pname == null) {
+          val.orderNum = this.dirList[this.dirList.length - 1].orderNum + 1;
+          val.pid = 0;
+        } else {
+          this.tableData.filter((child) => {
+            if (child.tid == val.sid) {
+              val.pid = child.id;
+              val.orderNum = i + 1;
+            }
+          });
+        }
+
+        const data = await insertDir(val);
+        if (data.code != 200) {
+          this.$message.error("鐩綍涓婁紶澶辫触" + data.msg);
+          this.loadDialogVisible = false;
+          break;
+        }
+
+        this.tableData.filter((child) => {
+
+          if (child.name == val.name && child.tid == val.tid) {
+            child.id = data.result;
+          }
+        });
+        this.itemaName = data.result;
+        // this.getDirTree();
+
+        // if (res[i].children) {
+        //   this.getAllNodeId(res[i].children);
+        // }
+      }
+      this.getDirTree();
+      this.loadDialogVisible = false;
+
+    },
+    excelData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      return cloneData.filter((father) => {
+        // 寰幆鎵�鏈夐」
+        let branchArr = cloneData.filter((child) => father.tid == child.sid); // 瀵规瘮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.sid == 0; // 杩斿洖涓�绾ц彍鍗�
+      });
+    },
+    readFile(file) {
+      //鏂囦欢璇诲彇
+      return new Promise((resolve) => {
+        let reader = new FileReader();
+        reader.readAsBinaryString(file); //浠ヤ簩杩涘埗鐨勬柟寮忚鍙�
+        reader.onload = (ev) => {
+          resolve(ev.target.result);
+        };
+      });
+    },
+
     // 璇锋眰鐩綍鏍�
-    getDirTree() {
+    async getDirTree() {
       //鑾峰彇鐩綍鏍戞渶澶D锛屾柊寤鸿妭鐐逛娇鐢�
       // queryMaxId().then((res) => {
       //   this.id = res.data;
       // });
       // 鑾峰彇鐩綍鏍戞暟鎹�
-      queryDirTree().then((res) => {
-        // console.log(res);
-        if (res.code == 200) {
-          this.oriData = res.result;
-          this.newData = res.result;
-          this.dirList = this.treeData(res.result);
+      const data = await queryDirTree();
 
-          if (this.itemdetail.id != null) {
-            this.$nextTick(() => {
-              this.$refs.tree.setCurrentKey(this.itemdetail.id);
-            });
-          }
+      if (data.code != 200) {
+        return this.$message.error("椤圭洰鍒楄〃鏌ヨ澶辫触");
+      }
+      this.oriData = data.result;
+      this.newData = data.result;
+      this.dirList = this.treeData(data.result);
 
 
-        } else {
-          console.log('鎺ュ彛鎶ラ敊');
-        }
+      var cdata;
+      if (this.currentData) {
+        var rs = JSON.parse(this.currentData);
+        cdata = this.$refs.tree.getNode(rs.id).data;
+      } else {
+        cdata = this.dirList[this.dirList.length - 1]
+      }
+      this.$nextTick(() => {
+        this.expandData = [cdata.id];
+        this.$refs.tree.setCurrentKey(cdata.id);
+        this.layerFormInline(cdata)
       });
+
+
+      // queryDirTree().then((res) => {
+      //   // console.log(res);
+
+
+      //   if (res.code == 200) {
+
+
+      //     //  this.$nextTick(() => {
+
+      //     //    this.expandData=[15]
+      //     //    this.$refs.tree.setCurrentKey(15);
+
+      //     //   });
+
+      //   } else {
+      //     console.log("鎺ュ彛鎶ラ敊");
+      //   }
+      // });
     },
     handleClose() {
-      this.$confirm('纭鍏抽棴锛�')
+      this.$confirm("鍏抽棴鍚庢棤娉曚繚瀛橈紝鏄惁鍏抽棴?")
         .then((_) => {
           this.resetForm();
         })
@@ -282,12 +860,19 @@
       return cloneData.filter((father) => {
         // 寰幆鎵�鏈夐」
         let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
-        branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+        if (branchArr.length > 0) {
+          branchArr.sort(function (a, b) {
+            return a.orderNum - b.orderNum
+          })
+        }
+
+        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; // 杩斿洖涓�绾ц彍鍗�
       });
     },
+    //鍚戜笂鍚戜笅绉诲姩
     setEditNode(res) {
       let node = this.$refs.tree.getCurrentNode();
       let pchildNodes = this.$refs.tree.getNode(node.id).parent.childNodes;
@@ -298,96 +883,131 @@
         }
       }
       switch (res) {
-        case 1://鍚戜笂绉诲姩
+        case 1: //鍚戜笂绉诲姩
           if (currentId != 0) {
             const tempChildrenNodex1 = pchildNodes[currentId - 1];
             const tempChildrenNodex2 = pchildNodes[currentId];
-            tempChildrenNodex2.orderNum = pchildNodes[currentId - 1].data.orderNum;
-            tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum
-            var arr = [];
-            this.oriData.filter(res => {
-              if (res.id == tempChildrenNodex2.data.id) {
-                res.orderNum = tempChildrenNodex2.orderNum;
-                arr.push(res)
-              } else if (res.id == tempChildrenNodex1.data.id) {
-                res.orderNum = tempChildrenNodex1.orderNum;
-                arr.push(res)
-              }
+            // tempChildrenNodex2.orderNum =
+            //   pchildNodes[currentId - 1].data.orderNum;
+            // tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum;
 
-            })
+            const arr = [];
+            this.oriData.filter((res) => {
+              if (res.id == tempChildrenNodex2.data.id) {
+                // res.orderNum = tempChildrenNodex2.orderNum;
+                arr.push(res);
+              } else if (res.id == tempChildrenNodex1.data.id) {
+                // res.orderNum = tempChildrenNodex1.orderNum;
+                arr.push(res);
+              }
+            });
+
+            const orderNum = arr[1].orderNum
+            arr[1].orderNum = arr[0].orderNum
+            arr[0].orderNum = orderNum
+
             this.newData = arr;
             this.sendChange();
           } else {
             this.$message({
-              message: '澶勪簬椤剁锛屼笉鑳界户缁笂绉�',
-              type: 'warning'
+              message: "澶勪簬椤剁锛屼笉鑳界户缁笂绉�",
+              type: "warning",
             });
           }
           break;
-        case 2://鍚戜笅绉诲姩
-          if (currentId < (pchildNodes.length - 1)) {
+        case 2: //鍚戜笅绉诲姩
+          if (currentId < pchildNodes.length - 1) {
             const tempChildrenNodex1 = pchildNodes[currentId + 1];
             const tempChildrenNodex2 = pchildNodes[currentId];
-            tempChildrenNodex2.orderNum = pchildNodes[currentId + 1].data.orderNum;
-            tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum;
-            var arr = [];
-            this.oriData.filter(res => {
+            // tempChildrenNodex2.orderNum =
+            //   pchildNodes[currentId + 1].data.orderNum;
+            // tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum;
+
+            const arr = [];
+            this.oriData.filter((res) => {
               if (res.id == tempChildrenNodex2.data.id) {
-                res.orderNum = tempChildrenNodex2.orderNum;
-                arr.push(res)
+                // res.orderNum = tempChildrenNodex2.orderNum;
+                arr.push(res);
               } else if (res.id == tempChildrenNodex1.data.id) {
-                res.orderNum = tempChildrenNodex1.orderNum;
-                arr.push(res)
+                // res.orderNum = tempChildrenNodex1.orderNum;
+                arr.push(res);
               }
-            })
+            });
+            const orderNum = arr[1].orderNum
+            arr[1].orderNum = arr[0].orderNum
+            arr[0].orderNum = orderNum
             this.newData = arr;
             this.sendChange();
           } else {
             this.$message({
-              message: '澶勪簬搴曠锛屼笉鑳界户缁笅绉�',
-              type: 'warning'
+              message: "澶勪簬搴曠锛屼笉鑳界户缁笅绉�",
+              type: "warning",
             });
-
           }
           break;
-
       }
     },
     setDelNode() {
-      this.remove(this.newNode, this.itemdetail)
+      this.$confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ョ洰褰�, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          this.remove(this.newNode, this.itemdetail);
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "宸插彇娑堝垹闄�",
+          });
+        });
+    },
+    insertStart() {
+      this.ruleForm = {
+        level: null,
+        orderNum: null,
+        pid: null,
+        name: "",
+        descr: "",
+        bak: "",
+        checks: []
+      }
     },
     setNewNode(res) {
+      this.insertStart();
+      var node = this.$refs.tree.getCurrentNode();
+      this.newNode = node;
       var id, lever, orderNum;
-      if (res == 1) {//鏂板鍚岀骇
+      if (res == 1) {
+        //鏂板鍚岀骇
         id = this.itemdetail.pid;
-        orderNum = this.getMaxOrderNum(this.newNode.parent.childNodes)
-
+        let pchildNodes = this.$refs.tree.getNode(this.newNode.id).parent.childNodes
+        orderNum = this.getMaxOrderNum(pchildNodes);
         lever = this.itemdetail.level;
-      } else if (res == 2) {//鏂板瀛愮骇
+      } else if (res == 2) {
+        //鏂板瀛愮骇
         id = this.itemdetail.id;
-        orderNum = this.getMaxOrderNum(this.newNode.childNodes)
-
+        let pchildNodes = this.$refs.tree.getNode(this.newNode.id).childNodes
+        orderNum = this.getMaxOrderNum(pchildNodes);
         lever = this.itemdetail.level + 1;
       }
 
       this.ruleForm.pid = id;
       this.ruleForm.level = lever;
-      this.ruleForm.orderNum = orderNum
+      this.ruleForm.orderNum = orderNum;
       this.dialogFormVisible = true;
     },
     getMaxOrderNum(res) {
       var val = -100;
       for (var i in res) {
         if (res[i].data.orderNum > val) {
-          val = res[i].data.orderNum
+          val = res[i].data.orderNum;
         }
       }
       val = val + 1;
       return val;
     },
-
-
-
     append(node, data) {
       this.dialogFormVisible = true;
       this.ruleForm.pid = data.id;
@@ -399,7 +1019,7 @@
       this.ruleForm = {};
       this.$nextTick(() => {
         this.ruleForm = {};
-        this.$refs[formName].resetFields();
+        // this.$refs[formName].resetFields();
       });
     },
     submitForm(formName) {
@@ -407,17 +1027,27 @@
         this.$refs[formName].validate((valid) => {
           if (valid) {
             this.fullscreenLoading = true;
-            insertDir(this.ruleForm)
+            var val = this.ruleForm;
+            if (this.ruleForm.checks) {
+              val.checks = this.ruleForm.checks.toString()
+            } else {
+              val.checks = ''
+            }
+            // var val = JSON.parse(JSON.stringify(this.ruleForm))
+            // this.itemdetail = val
+            insertDir(val)
               .then((res) => {
                 setTimeout(() => {
                   this.fullscreenLoading = false;
+
                   if (res.code == 200) {
                     this.$message({
-                      message: '娣诲姞鎴愬姛',
-                      type: 'success',
+                      message: "娣诲姞鎴愬姛",
+                      type: "success",
                     });
-                    this.itemdetail = {};
-                    this.ruleForm = {};
+
+                    // this.itemdetail = {};
+                    // this.ruleForm = {};
                     this.dialogFormVisible = false;
                     this.$refs[formName].resetFields();
                     this.getDirTree();
@@ -426,7 +1056,7 @@
               })
               .catch((res) => {
                 this.itemdetail = {};
-                this.$message.error('娣诲姞澶辫触');
+                this.$message.error("娣诲姞澶辫触");
                 this.fullscreenLoading = false;
                 console.log(res);
               });
@@ -438,10 +1068,12 @@
       });
     },
     remove(node, data) {
-      this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ヨ妭鐐�, 鏄惁缁х画?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning',
+      this.itemaName = node.parent.data.id;
+
+      this.$confirm("姝ゆ搷浣滃皢鍒犻櫎璇ヨ妭鐐�, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
       })
         .then(() => {
           //鍏勫紵閲嶆柊鎺掑簭
@@ -462,29 +1094,35 @@
             .then((res) => {
               if (res[0].code == 200 && res[1].code == 200) {
                 this.$message({
-                  type: 'success',
-                  message: '鍒犻櫎鎴愬姛!',
+                  type: "success",
+                  message: "鍒犻櫎鎴愬姛!",
                 });
+                let pchildNodes = this.$refs.tree.getNode(this.itemdetail.id).parent;
+                if (pchildNodes.data.id) {
+                  this.currentData = JSON.stringify(pchildNodes.data)
+                } else {
+                  this.currentData = null
+                }
                 this.itemdetail = {};
+
                 this.getDirTree();
               } else if (res[0].code == 200) {
-                this.$message.error('鍒犻櫎鎴愬姛锛屼綅缃皟鏁村け璐�');
+                this.$message.error("鍒犻櫎鎴愬姛锛屼綅缃皟鏁村け璐�");
               } else if (res[1].code == 200) {
-                this.$message.error('鍒犻櫎澶辫触,浣嶇疆璋冩暣鎴愬姛');
+                this.$message.error("鍒犻櫎澶辫触,浣嶇疆璋冩暣鎴愬姛");
               } else {
-                this.$message.error('鍒犻櫎澶辫触');
+                this.$message.error("鍒犻櫎澶辫触");
               }
             })
             .catch(() => {
-              this.$message.error('鍒犻櫎澶辫触');
-              this.itemdetail = {};
+              // this.$message.error("鍒犻櫎澶辫触");
+              // this.itemdetail = {};
             });
-
           //閲嶇疆瑕佸垹闄ょ殑瀛怚D
           this.delChildIDs = [];
         })
         .catch(() => {
-          this.$message('宸插彇娑堝垹闄�');
+          this.$message("宸插彇娑堝垹闄�");
         });
       // this.dialogMessage="鏄惁鍒犻櫎"
       // this.dialogFlag = 1;
@@ -526,20 +1164,20 @@
       this.old_dirDat = JSON.parse(JSON.stringify(this.dirList)); //灏嗗浠界殑dir閲嶆柊璧嬪��
     },
     handleDrop(draggingNode, dropNode, dropType, ev) {
-      this.$confirm('姝ゆ搷浣滃皢淇濆瓨鐩綍鏇存敼, 鏄惁缁х画?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning',
+      this.$confirm("姝ゆ搷浣滃皢淇濆瓨鐩綍鏇存敼, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
       })
         .then(() => {
           //鐖惰妭鐐�
-          let data = dropType != 'inner' ? dropNode.parent.data : dropNode.data;
+          let data = dropType != "inner" ? dropNode.parent.data : dropNode.data;
           // 鐖惰妭鐐逛腑鍏ㄩ儴瀛愯妭鐐�
           let nodeData =
-            dropNode.level == 1 && dropType != 'inner' ? data : data.children;
+            dropNode.level == 1 && dropType != "inner" ? data : data.children;
           //鍙樻洿鑺傜偣
           nodeData.forEach((item, i) => {
-            if (dropType != 'inner') {
+            if (dropType != "inner") {
               if (draggingNode.data.pid === dropNode.data.pid) {
                 item.pid = item.pid;
               } else {
@@ -550,8 +1188,7 @@
             }
             item.orderNum = i + 1;
           });
-          // console.log(nodeData);
-          //鏇存柊鍘熷鏁翠綋鏁版嵁
+
           let arr = [];
           this.oriData.forEach((e) => {
             nodeData.forEach((item) => {
@@ -563,208 +1200,295 @@
           this.sendChange();
         })
         .catch(() => {
-          this.$message('宸插彇娑堟洿鏀�');
+          this.$message("宸插彇娑堟洿鏀�");
           this.dirList = this.old_dirDat; //灏嗗浠界殑dir閲嶆柊璧嬪��
         });
     },
-    sendChange() {
-      updateDirTrees(this.newData)
-        .then((res) => {
-          if (res.code == 200) {
-            this.getDirTree();
-            return;
-          } else {
-            alert('璋冩暣澶辫触锛岃閲嶈瘯锛�');
-          }
-        })
-        .catch(() => {
-          alert('淇敼澶辫触锛岃閲嶈瘯锛�');
-        });
+    async sendChange() {
+      const data = await updateDirTrees(this.newData)
+
+      if (data.code != 200) {
+        return this.$message.error("绉诲姩澶辫触");
+      }
+      this.getDirTree();
+      // this.getLayerTree()
+      //   .then((res) => {
+      //     if (res.code == 200) {
+      //     
+      //       return;
+      //     } else {
+      //       this.$message.error("绉诲姩澶辫触锛岃閲嶈瘯锛�");
+      //     }
+      //   })
+      //   .catch(() => {
+      //     this.$message.error("绉诲姩澶辫触锛岃閲嶈瘯锛�");
+      //   });
     },
-    handleNodeClick(data, node) {
-      // console.log(data);
-      this.newNode = node;
+
+    setDirectoryDownload() {
+      var url = BASE_URL + '/dir/downloadDir?token=' + getToken() + '&id=' + this.directoryData.id
+      console.log(url)
+      $("#Iframe1").attr("src", url).click()
+    },
+
+    layerFormInline(data) {
+      if (data.pid == 0) {
+        this.directoryData = data;
+        this.directoryFlag = true;
+      } else {
+        this.directoryFlag = false;
+      }
+
+      this.newNode = this.$refs.tree.getNode(data.id);
       this.backUpData = JSON.stringify(data);
-      this.itemdetail = JSON.parse(JSON.stringify(data));
-    },
-    updCata(formName) {
-      this.$nextTick(() => {
-        this.$refs[formName].validate((valid) => {
-          if (valid) {
-            this.fullscreenLoading = true;
-            updateDirTree(this.itemdetail)
-              .then((res) => {
-                setTimeout(() => {
-                  this.fullscreenLoading = false;
-                  if (res.code == 200) {
-                    this.getDirTree();
-                    this.itemdetail = {};
-                    this.dialogFormVisible = false;
-                  }
-                }, 500);
-              })
-              .catch((res) => {
-                alert('淇敼澶辫触锛岃閲嶈瘯锛�');
-                this.fullscreenLoading = false;
-              });
-          } else {
-            return false;
+      var val = this.$refs.tree.getNode(data.id).data;
+      this.itemdetail = val;
+      this.currentData = JSON.stringify(data)
+
+      var checks = [];
+      if (val.checks) {
+        if (val.checks.indexOf(',') > -1) {
+          var value = val.checks.split(',');
+          for (var i in value) {
+            checks.push(value[i])
           }
-        });
+        } else if (val.checks.indexOf('[]') > -1) {
+
+        } else {
+          checks.push(val.checks)
+        }
+        this.itemdetail.checks = checks;
+      } else {
+        this.itemdetail.checks = []
+      }
+    },
+
+
+    async updCata(formName) {
+      this.fullscreenLoading = true;
+      var val = JSON.parse(JSON.stringify(this.itemdetail));
+      val.orderNum = this.newNode.data.orderNum;
+
+      var value = this.itemdetail.checks.toString()
+      val.checks = value;
+      const data = await updateDirTree(val);
+      this.currentData = JSON.stringify(this.itemdetail)
+
+      if (data.code != 200) {
+        this.fullscreenLoading = false;
+        return this.$message.error("淇敼澶辫触");
+      }
+      this.$message({
+        message: '淇敼鎴愬姛',
+        type: 'success'
       });
+      this.fullscreenLoading = false;
+      this.getDirTree();
+
+      // this.$nextTick(() => {
+      //   this.$refs[formName].validate((valid) => {
+      //     if (valid) {
+      //       
+
+      //       var val = this.itemdetail
+      //       var value = this.itemdetail.checks.toString()
+      //       val.checks = value;
+      //       
+      //       let res = JSON.parse(JSON.stringify(this.itemdetail));
+      //       this.itemdetail = res;
+      //       
+      //       updateDirTree(val)
+      //         .then((res) => {
+      //           setTimeout(() => {
+      //             this.fullscreenLoading = false;
+      //             if (res.code == 200) {
+      //               this.getDirTree();
+      //               // this.itemdetail = {};
+      //               this.dialogFormVisible = false;
+      //             }
+      //           }, 500);
+      //         })
+      //         .catch((res) => {
+      //           this.$message.error("淇敼澶辫触锛岃閲嶈瘯锛�");
+      //           this.fullscreenLoading = false;
+      //         });
+      //     } else {
+      //       return false;
+      //     }
+      //   });
+      // });
     },
     reset(formName) {
       this.itemdetail = {};
       // this.$refs[formName].resetFields();
-      if (this.backUpData != '') {
+      if (this.backUpData != "") {
         this.itemdetail = JSON.parse(this.backUpData);
+        var val = JSON.parse(this.backUpData);
+        var checks = [];
+        if (val.checks) {
+          if (val.checks.indexOf(',') > -1) {
+            var value = val.checks.split(',');
+            for (var i in value) {
+              checks.push(value[i])
+            }
+          } else {
+            checks.push(val.checks)
+          }
+          this.itemdetail.checks = checks;
+        } else {
+          this.itemdetail.checks = []
+        }
+      }
+    },
+    showPermsMenu(res) {
+      switch (res.tag) {
+        case "/delete":
+          this.menuStatus.delete = true;
+          break;
+        case "/insert":
+          this.menuStatus.insert = true;
+          break;
+        case "/update":
+          this.menuStatus.update = true;
+          break;
+      }
+    },
+    getPerms() {
+      var val = this.$store.state.currentPerms;
+      var permsEntity = this.$store.state.permsEntity;
+      if (!permsEntity || !permsEntity.length) {
+        getPerms().then((res) => {
+          if (res.code == 200) {
+            permsEntity = res.result;
+          }
+        });
+      }
+      for (var i = 0; i < permsEntity.length; i++) {
+        if (val === permsEntity[i].perms) {
+          this.showPermsMenu(permsEntity[i]);
+        }
       }
     },
   },
   mounted() {
     this.getDirTree();
+    this.getPerms();
   },
 };
 </script>
 
 <style lang="less" scoped>
-.cataLogBox {
-  height: 98%;
+.subpage_Box {
+  //height: 96%;
   width: 98%;
   padding: 1%;
-  .cataLogContent {
-    width: 100%;
-    height: 92%;
-    display: flex;
-    justify-content: space-between;
-    .cataLog_leftTree {
-      width: 15%;
-      height: 91%;
-      border: 1px solid white;
-      border-radius: 5px;
-      padding: 1%;
-      overflow-y: auto;
-    }
-    .cataLog_rightContent {
-      width: 80%;
-      height: 91%;
-      border: 1px solid white;
-      border-radius: 5px;
-      padding: 1%;
-    }
-  }
-  // .cataSettings_tree {
-  //   position: relative;
-  //   width: 344px;
+  border-radius: 10px;
+  // .cataLogContent {
+  //   width: 100%;
   //   height: 100%;
-  //   background: rgb(240, 242, 245);
-  //   padding: 20px;
-  //   border-radius: 10px;
-  //   box-sizing: border-box;
-  //   overflow: auto;
-  //   .saveBtn {
-  //     position: absolute;
-  //     left: 250px;
-  //     top: 23px;
-  //   }
-  //   .cataTreeBox {
-  //     height: 88%;
-  //     width: 100%;
-  //     overflow: auto;
-  //     .el-tree {
-  //       background: transparent;
-  //       font-size: 15px;
-  //       font-family: Microsoft YaHei;
-  //       font-weight: 400;
-  //       color: #000000;
-  //       /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: 0 10px 0 5px;
-  //         .el-button + .el-button {
-  //           margin-left: 5px;
-  //         }
-  //       }
-  //     }
-  //   }
-  // }
-  // .itemSettings {
-  //   width: calc(100% - 344px);
-  //   border-radius: 10px;
-  //   background: rgb(240, 242, 245);
-  //   margin-left: 10px;
-  //   height: 100%;
-  //   padding: 10px;
-  //   box-sizing: border-box;
-  //   .title_box {
-  //     background: #fff;
+  //   display: flex;
+  //   // align-items: center;
+  //   justify-content: space-between;
+  //   .cataLog_leftTree {
+  //     width: 30%;
+  //     height: 98%;
+  //     border-radius: 5px;
   //     padding: 10px;
-  //     margin-bottom: 24px;
-  //     display: flex;
-  //     border-radius: 10px;
-  //     border: 1px solid rgb(202, 201, 204);
-  //     box-sizing: border-box;
+  //     overflow-y: auto;
   //   }
-  //   .form_box {
-  //     border: 1px solid rgb(202, 201, 204);
-  //     border-radius: 10px;
-  //     background: #fff;
-  //     padding-top: 30px;
-  //     box-sizing: border-box;
-  //     width: 100%;
-  //     .el-input,
-  //     /deep/ .el-textarea {
-  //       width: 400px;
-  //     }
-  //     .btnBox {
-  //       margin: 0 270px 20px;
-  //       width: 200px;
-  //       display: flex;
-  //       justify-content: space-between;
+  //   .cataLog_rightContent {
+  //     width: 66%;
+  //     height: 98%;
+  //     border-radius: 5px;
+  //     padding: 10px;
+  //     .menuTop {
+  //       /deep/ .el-form-item {
+  //         margin-bottom: 0px;
+  //       }
   //     }
   //   }
   // }
-  // /deep/ .el-dialog__body {
-  //   padding: 0 30px 0 0;
-  // }
-  .el-icon-delete-solid {
-    color: gray;
+}
+
+.mainBox {
+  padding-top: 10px;
+  width: 100%;
+  height: calc(100% - 75px);
+  display: flex;
+  justify-content: space-around;
+  .leftTree {
+    width: calc(32% - 0px);
+    height: 100%;
+    padding: 10px;
+    border-radius: 5px;
+    box-sizing: border-box;
+    overflow-y: auto;
   }
-  .el-icon-circle-plus {
-    color: gray;
+  .right {
+    width: 65%;
+    height: 100%;
+    border-radius: 5px;
+    padding: 10px;
+    box-sizing: border-box;
+    border: 1px solid #dcdfe6;
+    .inquire {
+      // margin-bottom: 10px;
+      padding: 8px;
+      // margin-top: 10px;
+      border-radius: 5px;
+      //border: 1px solid #dcdfe6;
+      //margin-bottom: 20px;
+      .el-form-item {
+        margin: 5px;
+      }
+    }
   }
-  /deep/.el-form-item__label {
-    color: white;
+  .right_menu {
+    position: fixed;
+    display: block;
+    z-index: 10000;
+    padding: 10px;
+    border: 1px solid #ebeef5;
+    border-radius: 4px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    ul {
+      width: 100%;
+      height: 100%;
+      list-style: none;
+      margin: 0;
+      padding: 0;
+      border-radius: 2%;
+      li {
+        margin: 0 0 1px 0;
+        color: rgb(77, 77, 73);
+        text-align: center;
+        font-size: 14px;
+        padding: 4%;
+        width: 100%;
+        height: 9.7%;
+        float: left;
+      }
+      li:hover {
+        color: #409eff !important;
+      }
+    }
   }
-  // 璁剧疆杈撳叆妗嗙殑鑳屾櫙鑹层�佸瓧浣撻鑹层�佽竟妗嗗睘鎬ц缃紱
-  /deep/.el-input__inner {
-    background-color: transparent !important ;
-    color: #fff;
-    border: 1px solid;
+}
+.loadBox {
+  z-index: 2002;
+  background: rgba(0, 0, 0, 0.2);
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  position: absolute;
+  .el-loading-mask {
+    background: transparent !important;
   }
-  /deep/ .el-dialog {
-    background: #303030;
-  }
-  /deep/.el-range-editor.is-active,
-  .el-range-editor.is-active:hover,
-  .el-select .el-input.is-focus .el-input__inner {
-    border: 1px solid;
-  }
-  /deep/.el-dialog__title {
-    color: white;
-  }
-  .primary {
-    background: #409eff;
-    border: #409eff;
-    color: white;
-  }
+}
+.btnBox {
+  position: absolute;
+  bottom: 0;
+  right: 0;
 }
 </style>

--
Gitblit v1.9.3