From a96e9c262ebadc2e7e731b28aa5035b0dd2a7aad Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 15 十一月 2023 17:13:13 +0800
Subject: [PATCH] 1.0

---
 src/page/index/sidebar/sidebarItem.vue |   96 +++++++++++++++++++++++++-----------------------
 1 files changed, 50 insertions(+), 46 deletions(-)

diff --git a/src/page/index/sidebar/sidebarItem.vue b/src/page/index/sidebar/sidebarItem.vue
index e988793..0054d3c 100644
--- a/src/page/index/sidebar/sidebarItem.vue
+++ b/src/page/index/sidebar/sidebarItem.vue
@@ -1,48 +1,27 @@
 <template>
   <div class="menu-wrapper">
-    <template v-for="item in menu">
-      <el-menu-item
-        v-if="validatenull(item[childrenKey]) && vaildRoles(item)"
-        :index="item[pathKey]"
-        :key="item[labelKey]"
-        :class="{'is-active':vaildAvtive(item)}"
-        @click="open(item)">
-        <i :class="item[iconKey]"/>
-        <span
-          slot="title"
-          :alt="item[pathKey]">{{ item[labelKey] }}</span>
+    <template v-for="(item, index) in menu">
+      <el-menu-item v-if="validatenull(item[childrenKey]) && vaildRoles(item)" :index="item[pathKey]" :key="index"
+        :class="{ 'is-active': vaildAvtive(item) }" @click="open(item)">
+        <i :class="item[iconKey]" />
+        <span slot="title" :alt="item[pathKey]">{{ item[labelKey] }}</span>
       </el-menu-item>
-      <el-submenu
-        v-else-if="!validatenull(item[childrenKey])&&vaildRoles(item)"
-        :index="item[pathKey]"
-        :key="item[labelKey]">
+      <el-submenu v-else-if="!validatenull(item[childrenKey]) && vaildRoles(item)" :index="item[pathKey]" :key="index">
         <template slot="title">
-          <i :class="item[iconKey]"/>
-          <span
-            slot="title"
-            :class="{'el-menu--display':collapse && first}">{{ item[labelKey] }}</span>
+          <i :class="item[iconKey]" />
+          <span slot="title" :class="{ 'el-menu--display': collapse && first }">{{ item[labelKey] }}</span>
         </template>
-        <template v-for="(child,cindex) in item[childrenKey]">
-          <el-menu-item
-            v-if="validatenull(child[childrenKey])"
-            :index="child[pathKey],cindex"
-            :class="{'is-active':vaildAvtive(child)}"
-            :key="child[labelKey]"
-          >
+        <template v-for="(child, cindex) in item[childrenKey]">
+          <el-menu-item v-if="validatenull(child[childrenKey])" :index="child[pathKey], cindex"
+            :class="{ 'is-active': vaildAvtive(child) }" :key="cindex">
             <!--<a slot="title" draggable="true" @dragend ="dragOpen(child)" style="display: block;" >
               <span>{{ child[labelKey] }}</span>
             </a>-->
-            <a slot="title" :href="'#'+child[pathKey]" @click.prevent="open(child)" style="display: block;" >
+            <a slot="title" :href="'#' + child[pathKey]" @click.prevent="open(child)" style="display: block;">
               <span>{{ child[labelKey] }}</span>
             </a>
           </el-menu-item>
-          <sidebar-item
-            v-else
-            :menu="[child]"
-            :key="cindex"
-            :props="props"
-            :screen="screen"
-            :collapse="collapse"/>
+          <sidebar-item v-else :menu="[child]" :key="cindex" :props="props" :screen="screen" :collapse="collapse" />
         </template>
       </el-submenu>
     </template>
@@ -77,11 +56,17 @@
   },
   data() {
     return {
-      config: config
+      config: config,
+      menus: [],
     }
   },
-  created() {},
-  mounted() {},
+  created() {
+    //杩囨护鍩虹涓嶈鐨勮彍鍗�
+    // this.filterMenus('鍩虹',['POC','鐩樺叿缁存姢','IFS鏃ュ織'])
+  },
+  mounted() {
+    // this.filterMenus('鍩虹',['POC','鐩樺叿缁存姢','IFS鏃ュ織'])
+  },
   computed: {
     ...mapGetters(['roles']),
     labelKey() {
@@ -101,12 +86,31 @@
     }
   },
   methods: {
-    dragOpen(item){
-      var routeData=this.$router.resolve({
-        name:item[this.labelKey],
+    filterMenus(fatherName, childrens) {
+      this.menus = this.menu
+      let start_menu = JSON.parse(JSON.stringify(this.menus));
+      let base = start_menu.filter(item => {
+        return item.label === fatherName
+      })[0]
+      let up_base = base.children.filter(item => {
+        return !childrens.includes(item.label);
+      })
+      this.menus.forEach(element => {
+        if (element.label === '鍩虹') {
+          element.children = []
+          element.children = up_base
+        }
+      });
+    },
+    filterFatherMenus(menuName) {
+
+    },
+    dragOpen(item) {
+      var routeData = this.$router.resolve({
+        name: item[this.labelKey],
         query: item.query
       });
-      window.open(routeData.href,'_blank');
+      window.open(routeData.href, '_blank');
     },
     vaildAvtive(item) {
       const groupFlag = (item['group'] || []).some(ele =>
@@ -126,24 +130,24 @@
       console.log(item[this.pathKey])
       if (this.screen <= 1) this.$store.commit('SET_COLLAPSE');
       this.$router.$avueRouter.group = item.group;
-      if(item[this.labelKey]=='宸ヤ綔鍙�'){
+      if (item[this.labelKey] == '宸ヤ綔鍙�') {
         /*this.$router.push({
           name:item[this.labelKey],
           query: item.query
         }).catch(() => {})*/
-        var routeData=this.$router.resolve({
-          name:item[this.labelKey],
+        var routeData = this.$router.resolve({
+          name: item[this.labelKey],
           query: item.query
         });
         window.open(routeData.href, '_blank');
-      }else{
+      } else {
         this.$router.push({
           path: this.$router.$avueRouter.getPath({
             name: item[this.labelKey],
             src: item[this.pathKey]
           }),
           query: item.query
-        }).catch(() => {})
+        }).catch(() => { })
       }
     }
   }

--
Gitblit v1.9.3