李林
2023-12-28 5229a61ca5250e1bd24399258e05ada2e7c4253a
src/view/index.vue
@@ -261,17 +261,17 @@
      </div>
      <div class="left" :style="`width: ${leftOpen?'92':'0'}px;`">
         <div v-for="(a, ai) in menu" :key="ai">
            <div :class="`box ${activeBox == a.c[0].k ? 'active_box' : ''}`" @click="addTab(a.c[0], -1)" v-if="a.self">
            <div :class="`box ${activeBox == a.c[0].k ? 'active_box' : ''}`" @click="addTab(a.c[0], -1)" v-if="a.self && getPower(a.c[0].p)">
               <i :class="a.i"></i>
               <div>{{a.v}}</div>
            </div>
            <el-popover placement="right-start" width="90" trigger="click" v-if="a.self != true">
            <el-popover placement="right-start" width="90" trigger="click" v-if="a.self != true && getPower(a.p)">
               <div :class="`box ${activeBox == a.k ? 'active_box' : ''}`" slot="reference">
                  <i :class="a.i"></i>
                  <div>{{ a.v }}</div>
               </div>
               <div class="small_menu">
                  <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b, a.k)">
                  <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b, a.k)" v-if="getPower(b.p)">
                     <i :class="b.i"></i>
                     <span>{{ b.v }}</span>
                  </p>
@@ -292,7 +292,7 @@
            <i class="el-icon-delete" @click="allDel" title="删除所有标签页"></i>
         </div>
         <div class="component_view">
            <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="index"
            <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="com.k"
               v-show="com.k == tabActive" :ref="`com-${com.k}`">
            </component>
         </div>
@@ -332,94 +332,104 @@
            menu: [{
                  k: 0,
                  v: "首页",
                  i: "font icon-a-Group1124",
                  i: "font icon-shouyefill",
                  self: true,
                  c: [{
                     k: 0,
                     v: "首页",
                     i: "font icon-a-Group1124",
                     i: "font icon-shouyefill",
                     u: "index-index"
                  }]
               },
               {
                  k: 2,
                  v: "数据上报",
                  i: "font icon-a-Group1124",
                  i: "font icon-a-Group1118",
                  self: true,
                  c: [{
                     k: 2,
                     v: "数据上报",
                     i: "font icon-a-Group1124",
                     u: "data-reporting"
                     i: "font icon-a-Group1118",
                     u: "data-reporting",
                     p: "selectDataReportingList"
                  }]
               },
               {
                  k: 3,
                  v: "数据统计",
                  i: "font icon-a-Group1124",
                  i: "font icon-a-Group1120",
                  p: "selectProductCountDtoPageList selectRegistrantCountDtoPageList",
                  c: [{
                     k: 9,
                     v: "项目数据统计",
                     i: "font icon-a-Group1124",
                     u: "index-index"
                     i: "font icon-24gl-clipboardList",
                     u: "product-count",
                     p: "selectProductCountDtoPageList"
                  },{
                     k: 10,
                     v: "员工数据统计",
                     i: "font icon-a-Group1124",
                     u: "index-index"
                     i: "font icon-24gl-clipboardList",
                     u: "registrant-count",
                     p: "selectRegistrantCountDtoPageList"
                  }]
               },
               {
                  k: 5,
                  v: "进粉上报",
                  i: "font icon-a-Group1124",
                  i: "font icon-a-Group1122",
                  self: true,
                  c: [{
                     k: 5,
                     v: "进粉上报",
                     i: "font icon-a-Group1124",
                     u: "index-index"
                     i: "font icon-a-Group1122",
                     u: "fans-submit",
                     p: "selectFansSubmitList"
                  }]
               },
               {
                  k: 6,
                  v: "财务上报",
                  i: "font icon-a-Group1124",
                  i: "font icon-a-Group1236",
                  self: true,
                  c: [{
                     k: 6,
                     v: "财务上报",
                     i: "font icon-a-Group1124",
                     u: "index-index"
                     i: "font icon-a-Group1236",
                     u: "finance-submit",
                     p: "selectFinanceSubmitList"
                  }]
               },
               {
                  k: 7,
                  v: "角色管理",
                  i: "font icon-a-Group1124",
                  i: "font icon-a-Group1126",
                  self: true,
                  c: [{
                     k: 7,
                     v: "角色管理",
                     i: "font icon-a-Group1124",
                     u: "role-manage"
                     i: "font icon-a-Group1126",
                     u: "role-manage",
                     p: "selectRoleLists"
                  }]
               },
               {
                  k: 4,
                  v: "数据字典",
                  i: "font icon-a-Group1124",
                  i: "font icon-odbc-full",
                  p: "selectCustomEnumLists selectProductEnumLists",
                  c: [{
                        k: 4,
                        v: "客户管理",
                        i: "font icon-a-Group1124",
                        u: ""
                        i: "font icon-24gl-clipboardList",
                        u: "custom-enum",
                        p: "selectCustomEnumLists"
                     },
                     {
                        k: 5,
                        v: "病种管理",
                        i: "font icon-a-Group1124",
                        u: ""
                        k: 11,
                        v: "项目管理",
                        i: "font icon-24gl-clipboardList",
                        u: "product-enum",
                        p: "selectProductEnumLists"
                     }
                  ]
               },
@@ -432,7 +442,8 @@
                     k: 8,
                     v: "人员管理",
                     i: "font icon-a-Group1124",
                     u: "person-manage"
                     u: "person-manage",
                     p: "selectUserList"
                  }]
               }
            ],
@@ -446,12 +457,15 @@
               u: "index-index"
            }],
            upIndex: 0,
            activeIndex: 0
            activeIndex: 0,
            power: []
         };
      },
      created() {},
      mounted() {
         this.userName = JSON.parse(localStorage.getItem("user")).name;
         this.power = JSON.parse(sessionStorage.getItem('power'))
         this.getPower()
      },
      methods: {
         addTab(ob, self) {
@@ -527,6 +541,18 @@
            setTimeout(()=>{
               this.tabs.splice(this.activeIndex, 0, thing[0])
            }, 0)
         },
         // 权限分配
         getPower(p){
            if(p==undefined) return true
            let str = p.split(' ')
            for (var a = 0; a < str.length; a++) {
               for (var i = 0; i < this.power.length; i++) {
                  if(this.power[i].menuMethod == str[a]) {
                     return true
                  }
               }
            }
         }
      }
   };