liuyg
2021-09-01 5896ee2177035e0558ce7b4fb4a64310270bce28
进入的首页权限
3 files modified
164 ■■■■■ changed files
src/page/index/tags.vue 128 ●●●●● patch | view | raw | blame | history
src/router/views/index.js 29 ●●●● patch | view | raw | blame | history
src/views/securityGuard/securityGuardDetail.vue 7 ●●●●● patch | view | raw | blame | history
src/page/index/tags.vue
@@ -1,55 +1,68 @@
<template>
  <div class="avue-tags"
       v-if="showTag">
  <div class="avue-tags" v-if="showTag">
    <!-- tag盒子 -->
    <div v-if="contextmenuFlag"
    <div
      v-if="contextmenuFlag"
         class="avue-tags__contentmenu"
         :style="{left:contentmenuX+'px',top:contentmenuY+'px'}">
      <div class="item"
           @click="clearCacheTags">{{$t('tagsView.clearCache')}}
      :style="{ left: contentmenuX + 'px', top: contentmenuY + 'px' }"
    >
      <div class="item" @click="clearCacheTags">
        {{ $t("tagsView.clearCache") }}
      </div>
      <div class="item"
           @click="closeOthersTags">{{$t('tagsView.closeOthers')}}
      <div class="item" @click="closeOthersTags">
        {{ $t("tagsView.closeOthers") }}
      </div>
      <div class="item"
           @click="closeAllTags">{{$t('tagsView.closeAll')}}
      <div class="item" @click="closeAllTags">
        {{ $t("tagsView.closeAll") }}
      </div>
    </div>
    <div class="avue-tags__box"
         :class="{'avue-tags__box--close':!website.isFirstPage}">
      <el-tabs v-model="active"
    <div
      class="avue-tags__box"
      :class="{ 'avue-tags__box--close': !website.isFirstPage }"
    >
      <el-tabs
        v-model="active"
               type="card"
               @contextmenu.native="handleContextmenu"
               :closable="tagLen!==1"
               @tab-click="openTag"
               @edit="menuTag">
        <el-tab-pane :key="item.value"
        @edit="menuTag"
      >
        <el-tab-pane
          :key="item.value"
                     v-for="item in tagList"
                     :label="generateTitle(item)"
                     :name="item.value">
          :name="item.value"
        >
        </el-tab-pane>
      </el-tabs>
      <el-dropdown class="avue-tags__menu">
        <el-button type="primary"
                   size="mini">
          {{$t('tagsView.menu')}}
        <el-button type="primary" size="mini">
          {{ $t("tagsView.menu") }}
          <i class="el-icon-arrow-down el-icon--right"></i>
        </el-button>
        <el-dropdown-menu slot="dropdown">
          <el-dropdown-item @click.native="$parent.isSearch=true">{{$t('tagsView.search')}}</el-dropdown-item>
          <el-dropdown-item @click.native="closeOthersTags">{{$t('tagsView.closeOthers')}}</el-dropdown-item>
          <el-dropdown-item @click.native="closeAllTags">{{$t('tagsView.closeAll')}}</el-dropdown-item>
          <el-dropdown-item @click.native="clearCacheTags">{{$t('tagsView.clearCache')}}</el-dropdown-item>
          <el-dropdown-item @click.native="$parent.isSearch = true">{{
            $t("tagsView.search")
          }}</el-dropdown-item>
          <el-dropdown-item @click.native="closeOthersTags">{{
            $t("tagsView.closeOthers")
          }}</el-dropdown-item>
          <el-dropdown-item @click.native="closeAllTags">{{
            $t("tagsView.closeAll")
          }}</el-dropdown-item>
          <el-dropdown-item @click.native="clearCacheTags">{{
            $t("tagsView.clearCache")
          }}</el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
    </div>
  </div>
</template>
<script>
  import {mapGetters, mapState} from "vuex";
  import {clearCache} from "@/api/user";
import { getTopMenu, getRoutes } from "@/api/system/menu";
  export default {
    name: "tags",
@@ -58,13 +71,39 @@
        active: "",
        contentmenuX: "",
        contentmenuY: "",
        contextmenuFlag: false
      contextmenuFlag: false,
      };
    },
    created() {
    },
  created() {},
    mounted() {
      this.setActive();
    this.tagList.forEach((item, index) => {
      if (item.label == "首页" && this.userInfo.role_name == "培训公司管理员") {
        this.tagList.splice(index, 1);
        // getRoutes().then((res) => {
        //   const data = res.data.data;
        //   var child = {},
        //     findchild = (data) => {
        //       if (data.children != undefined) {
        //         findchild(data.children[0]);
        //       } else {
        //         child = data;
        //       }
        //     };
        //   findchild(data[0]);
        //   this.$router.push({ path: child.path });
        // });
        var d = this.$router.options.routes,
          path = "";
        for (var k in d) {
          if (d[k].peixun == true) {
            // console.log(d[k]);
            path = d[k].path;
          }
        }
        this.$router.push({ path: path });
      }
    });
    },
    watch: {
      tag() {
@@ -72,16 +111,16 @@
      },
      contextmenuFlag() {
        window.addEventListener("mousedown", this.watchContextmenu);
      }
    },
    },
    computed: {
      ...mapGetters(["tagWel", "tagList", "tag", "website"]),
    ...mapGetters(["tagWel", "tagList", "tag", "website", "userInfo", "menu"]),
      ...mapState({
        showTag: state => state.common.showTag
      showTag: (state) => state.common.showTag,
      }),
      tagLen() {
        return this.tagList.length || 0;
      }
    },
    },
    methods: {
      generateTitle(item) {
@@ -136,11 +175,14 @@
          tag = item;
        }
        this.$router.push({
          path: this.$router.$avueRouter.getPath({
        path: this.$router.$avueRouter.getPath(
          {
            name: tag.label,
            src: tag.value
          }, tag.meta),
          query: tag.query
            src: tag.value,
          },
          tag.meta
        ),
        query: tag.query,
        });
      },
      closeOthersTags() {
@@ -162,24 +204,24 @@
        this.$store.commit("DEL_ALL_TAG");
        this.$router.push({
          path: this.$router.$avueRouter.getPath({
            src: this.tagWel.value
          src: this.tagWel.value,
          }),
          query: this.tagWel.query
        query: this.tagWel.query,
        });
      },
      clearCacheTags() {
        this.$confirm("是否需要清除缓存?", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        type: "warning",
        }).then(() => {
          clearCache().then(() => {
            this.contextmenuFlag = false;
            this.$message.success('清除完毕');
          })
          this.$message.success("清除完毕");
        });
      }
    }
      });
    },
  },
  };
</script>
src/router/views/index.js
@@ -687,20 +687,21 @@
//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
//     }]
// },
// {
//     path: '/trainingRegistration',
//     component: Layout,
//     redirect: '/trainingRegistration/index',
//     children: [{
//         path: 'index',
//         name: '保安培训报名',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
//     }]
// },
{
    path: '/trainingRegistration',
    component: Layout,
    peixun: true,
    redirect: '/trainingRegistration/index',
    children: [{
        path: 'index',
        name: '培训报名列表',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
    }]
},
// {
//     path: '/trainExam',
//     component: Layout,
src/views/securityGuard/securityGuardDetail.vue
@@ -37,8 +37,8 @@
          <div class="baz-m-body" ref="baoanzheng">
            <div class="bmb-heard">保安员证</div>
            <div class="img">
              <div v-if="!obj0.myPicture">暂无照片</div>
              <img :src="obj0.myPicture" alt="" v-else />
              <div v-if="!obj0.avatar">暂无照片</div>
              <img :src="obj0.avatar" alt="" v-else />
            </div>
            <div class="imgs">
              <div v-if="erweima == ''">暂无二维码</div>
@@ -95,7 +95,7 @@
  updateExperience,
  getExperienceDetail,
  experienceRemove,
  getExperienceList
  getExperienceList,
} from "@/api/experience/experience";
import {
@@ -282,7 +282,6 @@
        this.loading2 = false;
      });
    },
    rowSave2(form, done, loading) {
      form.securityid = this.id;