loulijun2021
2022-12-30 d1ce83391deac7bbafe7316e91ede5edd6ca30c9
src/layout/components/TagsView/index.vue
@@ -9,6 +9,7 @@
        :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
        tag="span"
        class="tags-view-item"
        :style="{background:isActive(tag)?$store.state.settings.theme:'',border:isActive(tag)?'1px solid'+$store.state.settings.theme:''}"
        @click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
        @contextmenu.prevent.native="openMenu(tag,$event)"
      >
@@ -22,6 +23,23 @@
      <li @click="closeOthersTags">关闭其他</li>
      <li @click="closeAllTags(selectedTag)">关闭所有</li>
    </ul>
    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="500px"
      :close-on-click-modal="false"
    >
      <div>
        现页签打开超过10个,请关闭其它标签
      </div>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button @click="dialogVisibleCancel">返回</el-button>
        </div>
      </span>
    </el-dialog>
  </div>
</template>
@@ -39,11 +57,17 @@
      top: 0,
      left: 0,
      selectedTag: {},
      affixTags: []
      affixTags: [],
      dialogVisible: false
    }
  },
  computed: {
    visitedViews() {
      // 暂时取消十个标签页限制提示
      // if (this.$store.state.tagsView.visitedViews.length > 10) {
      //   // eslint-disable-next-line vue/no-side-effects-in-computed-properties
      //   this.dialogVisible = true
      // }
      return this.$store.state.tagsView.visitedViews
    },
    routes() {
@@ -95,16 +119,22 @@
        this.$store.state.tagsView.visitedViews = oldViews
      }
    },
    // 对话框返回
    dialogVisibleCancel() {
      this.dialogVisible = false
    },
    isActive(route) {
      if (this.$route.path === '/scgl/sckbg') {
        const time = setInterval(() => {
          this.$nextTick(() => {
            $("input[name='produceCode']")[0].focus()
            $("input[name='WXproduceCode']")[0].focus()
            clearInterval(time)
          })
        })
      }
      // if (this.$route.path === '/scgl/sckbg') {
      //   const time = setInterval(() => {
      //     this.$nextTick(() => {
      //       $("input[name='produceCode']")[0].focus()
      //       $("input[name='WXproduceCode']")[0].focus()
      //       clearInterval(time)
      //     })
      //   })
      // }
      return route.path === this.$route.path
    },
    isAffix(tag) {
@@ -235,7 +265,7 @@
}
</script>
<style lang="scss" scoped>
<style lang="scss">
$main_color: #42b983;
.tags-view-container {
  height: 34px;