From 91f7d642ffa2fb5c776b4ac3ae18cdf8204ed44c Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 07 十一月 2024 17:54:24 +0800 Subject: [PATCH] 表单定义修只读必填绑定值&&预览功能样式变更 --- 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.9.3