From 3e9b476525c1949577ac2454072e5d62c2a97e90 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 22 十一月 2024 15:13:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/plt-web/plt-web-ui/src/page/index/tags.vue | 303 +++++++++++++++++++++++++-------------------------
1 files changed, 152 insertions(+), 151 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/page/index/tags.vue b/Source/plt-web/plt-web-ui/src/page/index/tags.vue
index ab14485..673585c 100644
--- a/Source/plt-web/plt-web-ui/src/page/index/tags.vue
+++ b/Source/plt-web/plt-web-ui/src/page/index/tags.vue
@@ -1,46 +1,46 @@
<template>
- <div class="avue-tags"
- v-if="showTag">
+ <div v-if="showTag"
+ class="avue-tags">
<!-- tag鐩掑瓙 -->
<div v-if="contextmenuFlag"
- class="avue-tags__contentmenu"
- :style="{left:contentmenuX+'px',top:contentmenuY+'px'}">
+ :style="{left:contentmenuX+'px',top:contentmenuY+'px'}"
+ class="avue-tags__contentmenu">
<div class="item"
- @click="clearCacheTags">{{$t('tagsView.clearCache')}}
+ @click="clearCacheTags">{{ $t('tagsView.clearCache') }}
</div>
<div class="item"
- @click="closeOthersTags">{{$t('tagsView.closeOthers')}}
+ @click="closeOthersTags">{{ $t('tagsView.closeOthers') }}
</div>
<div class="item"
- @click="closeAllTags">{{$t('tagsView.closeAll')}}
+ @click="closeAllTags">{{ $t('tagsView.closeAll') }}
</div>
</div>
- <div class="avue-tags__box"
- :class="{'avue-tags__box--close':!website.isFirstPage}">
+ <div :class="{'avue-tags__box--close':!website.isFirstPage}"
+ class="avue-tags__box">
<el-tabs v-model="active"
- type="card"
- @contextmenu.native="handleContextmenu"
:closable="tagLen!==1"
- @tab-click="openTag"
- @edit="menuTag">
- <el-tab-pane :key="item.value"
- v-for="item in tagList"
+ type="card"
+ @edit="menuTag"
+ @contextmenu.native="handleContextmenu"
+ @tab-click="openTag">
+ <el-tab-pane v-for="item in tagList"
+ :key="item.value"
:label="generateTitle(item)"
: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 size="mini"
+ type="primary">
+ {{ $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>
@@ -48,139 +48,140 @@
</div>
</template>
<script>
- import {mapGetters, mapState} from "vuex";
- import {clearCache} from "@/api/user";
+import {mapGetters, mapState} from "vuex";
+import {clearCache} from "@/api/user";
- export default {
- name: "tags",
- data() {
- return {
- active: "",
- contentmenuX: "",
- contentmenuY: "",
- contextmenuFlag: false
- };
- },
- created() {
- },
- mounted() {
+export default {
+ name: "tags",
+ data() {
+ return {
+ active: "",
+ contentmenuX: "",
+ contentmenuY: "",
+ contextmenuFlag: false
+ };
+ },
+ created() {
+ },
+ mounted() {
+ this.setActive();
+ },
+ watch: {
+ tag() {
this.setActive();
},
- watch: {
- tag() {
- this.setActive();
- },
- contextmenuFlag() {
- window.addEventListener("mousedown", this.watchContextmenu);
- }
- },
- computed: {
- ...mapGetters(["tagWel", "tagList", "tag", "website"]),
- ...mapState({
- showTag: state => state.common.showTag
- }),
- tagLen() {
- return this.tagList.length || 0;
- }
- },
- methods: {
- generateTitle(item) {
- return this.$router.$avueRouter.generateTitle(
- item.label,
- (item.meta || {}).i18n
- );
- },
- watchContextmenu(event) {
- if (!this.$el.contains(event.target) || event.button !== 0) {
- this.contextmenuFlag = false;
- }
- window.removeEventListener("mousedown", this.watchContextmenu);
- },
- handleContextmenu(event) {
- let target = event.target;
- // 瑙e喅 https://github.com/d2-projects/d2-admin/issues/54
- let flag = false;
- if (target.className.indexOf("el-tabs__item") > -1) flag = true;
- else if (target.parentNode.className.indexOf("el-tabs__item") > -1) {
- target = target.parentNode;
- flag = true;
- }
- if (flag) {
- event.preventDefault();
- event.stopPropagation();
- this.contentmenuX = event.clientX;
- this.contentmenuY = event.clientY;
- this.tagName = target.getAttribute("aria-controls").slice(5);
- this.contextmenuFlag = true;
- }
- },
- //婵�娲诲綋鍓嶉�夐」
- setActive() {
- this.active = this.tag.value;
- },
- menuTag(value, action) {
- if (action === "remove") {
- let {tag, key} = this.findTag(value);
- this.$store.commit("DEL_TAG", tag);
- if (tag.value === this.tag.value) {
- tag = this.tagList[key === 0 ? key : key - 1]; //濡傛灉鍏抽棴鏈爣绛捐鍓嶆帹涓�涓�
- this.openTag(tag);
- }
- }
- },
- openTag(item) {
- let tag;
- if (item.name) {
- tag = this.findTag(item.name).tag;
- } else {
- tag = item;
- }
- this.$router.push({
- path: this.$router.$avueRouter.getPath({
- name: tag.label,
- src: tag.value
- }, tag.meta),
- query: tag.query
- });
- },
- closeOthersTags() {
- this.contextmenuFlag = false;
- this.$store.commit("DEL_TAG_OTHER");
- },
- findTag(value) {
- let tag, key;
- this.tagList.map((item, index) => {
- if (item.value === value) {
- tag = item;
- key = index;
- }
- });
- return {tag: tag, key: key};
- },
- closeAllTags() {
- this.contextmenuFlag = false;
- this.$store.commit("DEL_ALL_TAG");
- this.$router.push({
- path: this.$router.$avueRouter.getPath({
- src: this.tagWel.value
- }),
- query: this.tagWel.query
- });
- },
- clearCacheTags() {
- this.$confirm("鏄惁闇�瑕佹竻闄ょ紦瀛�?", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- }).then(() => {
- clearCache().then(() => {
- this.contextmenuFlag = false;
- this.$message.success('娓呴櫎瀹屾瘯');
- })
- });
- }
+ contextmenuFlag() {
+ window.addEventListener("mousedown", this.watchContextmenu);
}
- };
+ },
+ computed: {
+ ...mapGetters(["tagWel", "tagList", "tag", "website"]),
+ ...mapState({
+ showTag: state => state.common.showTag
+ }),
+ tagLen() {
+ return this.tagList.length || 0;
+ }
+ },
+ methods: {
+ generateTitle(item) {
+ return this.$router.$avueRouter.generateTitle(
+ item.label,
+ (item.meta || {}).i18n
+ );
+ },
+ watchContextmenu(event) {
+ if (!this.$el.contains(event.target) || event.button !== 0) {
+ this.contextmenuFlag = false;
+ }
+ window.removeEventListener("mousedown", this.watchContextmenu);
+ },
+ handleContextmenu(event) {
+ let target = event.target;
+ // 瑙e喅 https://github.com/d2-projects/d2-admin/issues/54
+ let flag = false;
+ if (target.className.indexOf("el-tabs__item") > -1) flag = true;
+ else if (target.parentNode.className.indexOf("el-tabs__item") > -1) {
+ target = target.parentNode;
+ flag = true;
+ }
+ if (flag) {
+ event.preventDefault();
+ event.stopPropagation();
+ this.contentmenuX = event.clientX;
+ this.contentmenuY = event.clientY;
+ this.tagName = target.getAttribute("aria-controls").slice(5);
+ this.contextmenuFlag = true;
+ }
+ },
+ //婵�娲诲綋鍓嶉�夐」
+ setActive() {
+ this.active = this.tag.value;
+ },
+ menuTag(value, action) {
+ if (action === "remove") {
+ let {tag, key} = this.findTag(value);
+ this.$store.commit("DEL_TAG", tag);
+ if (tag.value === this.tag.value) {
+ tag = this.tagList[key === 0 ? key : key - 1]; //濡傛灉鍏抽棴鏈爣绛捐鍓嶆帹涓�涓�
+ this.openTag(tag);
+ }
+ }
+ },
+ openTag(item) {
+ let tag;
+ if (item.name) {
+ tag = this.findTag(item.name).tag;
+ } else {
+ tag = item;
+ }
+ this.$router.push({
+ path: this.$router.$avueRouter.getPath({
+ name: tag.label,
+ src: tag.value
+ }, tag.meta),
+ query: tag.query
+ });
+ },
+ closeOthersTags() {
+ this.contextmenuFlag = false;
+ this.$store.commit("DEL_TAG_OTHER");
+ },
+ findTag(value) {
+ let tag, key;
+ this.tagList.map((item, index) => {
+ if (item.value === value) {
+ tag = item;
+ key = index;
+ }
+ });
+ return {tag: tag, key: key};
+ },
+ closeAllTags() {
+ this.contextmenuFlag = false;
+ this.$store.commit("DEL_ALL_TAG");
+ this.$router.push({
+ path: this.$router.$avueRouter.getPath({
+ src: this.tagWel.value
+ }),
+ query: this.tagWel.query
+ });
+ },
+ clearCacheTags() {
+ this.$confirm("鏄惁闇�瑕佹竻闄ょ紦瀛�?", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ }).then(() => {
+ // clearCache().then(() => {
+ // this.contextmenuFlag = false;
+ // this.$message.success('娓呴櫎瀹屾瘯');
+ // })
+ this.$message.success('娓呴櫎瀹屾瘯');
+ });
+ }
+ }
+};
</script>
--
Gitblit v1.10.0