田源
2025-01-02 3defe8e0363bc3511169cc2432bcfe1a02b820db
Source/plt-web/plt-web-ui/src/page/index/sidebar/sidebarItem.vue
@@ -6,17 +6,22 @@
                    :class="{'is-active':vaildActive(item)}"
                    :index="item[pathKey]"
                    @click="open(item)">
        <i :class="item[iconKey]"></i>
        <span slot="title"
              :alt="item[pathKey]">{{ generateTitle(item) }}</span>
        <div style="display: flex">
          <icon-show :name="item[iconKey]" class="iconShowSpan" :style="{ height: iconSize, width: iconSize }"></icon-show>
          <span slot="title"
                :alt="item[pathKey]"
                :class="{'el-menu--display':collapse && first}">{{ generateTitle(item) }}</span>
        </div>
      </el-menu-item>
      <el-submenu v-else-if="!validatenull(item[childrenKey])&&vaildRoles(item)"
                  :key="item[labelKey]"
                  :index="item[pathKey]">
        <template slot="title">
          <i :class="item[iconKey]"></i>
          <span slot="title"
                :class="{'el-menu--display':collapse && first}">{{ generateTitle(item) }}</span>
          <div style="display: flex">
            <icon-show :name="item[iconKey]" class="iconShowSpan" :style="{ height: iconSize, width: iconSize }"></icon-show>
            <span slot="title"
                  :class="{'el-menu--display':collapse && first}">{{ generateTitle(item) }}</span>
          </div>
        </template>
        <template v-for="(child,cindex) in item[childrenKey]">
          <el-menu-item v-if="validatenull(child[childrenKey])"
@@ -24,8 +29,10 @@
                        :class="{'is-active':vaildActive(child)}"
                        :index="child[pathKey],cindex"
                        @click="open(child)">
            <i :class="child[iconKey]"></i>
            <span slot="title">{{ generateTitle(child) }}</span>
            <div style="display: flex">
              <icon-show :name="child[iconKey]" class="iconShowSpan" :style="{ height: iconSize, width: iconSize }"></icon-show>
              <span slot="title">{{ generateTitle(child) }}</span>
            </div>
          </el-menu-item>
          <sidebar-item v-else
                        :key="cindex"
@@ -77,6 +84,9 @@
  },
  computed: {
    ...mapGetters(["roles"]),
    iconSize() {
      return this.collapse ? '20px' : '16px';
    },
    labelKey() {
      return this.props.label || this.config.propsDefault.label;
    },
@@ -125,6 +135,10 @@
      }
    },
    open(item) {
      const query = {
        ...item.query,
        id:item.id
      }
      if (this.screen <= 1) this.$store.commit("SET_COLLAPSE");
      if (this.validIsOpen(item)) {
        window.open(item[this.pathKey]);
@@ -136,7 +150,7 @@
            name: item[this.labelKey],
            src: item[this.pathKey]
          }, item.meta),
          query: item.query
          query: query
        });
      }
    }
@@ -148,6 +162,19 @@
  outline: 0;
  background-color: #060708;
}
.iconShowSpan{
  display: inline-block;
  margin-top: -2px;
  margin-right: 10px;
  color: rgba(255, 255, 255, 0.7);
}
.el-submenu__title:hover .iconShowSpan{
  color: #ffffff;
}
.el-submenu__title:hover .iconShowSpan svg{
  fill: #ffffff;
}
</style>