{"remainingRequest":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/components/main/components/tags-nav/tags-nav.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/components/main/components/tags-nav/tags-nav.vue","mtime":1618306924000},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":1665684022107},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":1665684010704},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":1665684022107},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/vue-loader/lib/index.js","mtime":1665684006084}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { showTitle, routeEqual } from '@/libs/util';\nimport beforeClose from '@/router/before-close';\nexport default {\n name: 'TagsNav',\n props: {\n value: Object,\n list: {\n type: Array,\n\n default() {\n return [];\n }\n\n }\n },\n\n data() {\n return {\n tagBodyLeft: 0,\n rightOffset: 40,\n outerPadding: 4,\n contextMenuLeft: 0,\n contextMenuTop: 0,\n visible: false,\n menuList: {\n others: '关闭其他',\n all: '关闭所有'\n }\n };\n },\n\n computed: {\n currentRouteObj() {\n const {\n name,\n params,\n query\n } = this.value;\n return {\n name,\n params,\n query\n };\n }\n\n },\n methods: {\n handlescroll(e) {\n var type = e.type;\n let delta = 0;\n\n if (type === 'DOMMouseScroll' || type === 'mousewheel') {\n delta = e.wheelDelta ? e.wheelDelta : -(e.detail || 0) * 40;\n }\n\n this.handleScroll(delta);\n },\n\n handleScroll(offset) {\n const outerWidth = this.$refs.scrollOuter.offsetWidth;\n const bodyWidth = this.$refs.scrollBody.offsetWidth;\n\n if (offset > 0) {\n this.tagBodyLeft = Math.min(0, this.tagBodyLeft + offset);\n } else {\n if (outerWidth < bodyWidth) {\n if (this.tagBodyLeft < -(bodyWidth - outerWidth)) {\n this.tagBodyLeft = this.tagBodyLeft;\n } else {\n this.tagBodyLeft = Math.max(this.tagBodyLeft + offset, outerWidth - bodyWidth);\n }\n } else {\n this.tagBodyLeft = 0;\n }\n }\n },\n\n handleTagsOption(type) {\n if (type.includes('all')) {\n // 关闭所有,除了home\n let res = this.list.filter(item => item.name === this.$config.homeName);\n this.$emit('on-close', res, 'all');\n } else if (type.includes('others')) {\n // 关闭除当前页和home页的其他页\n let res = this.list.filter(item => routeEqual(this.currentRouteObj, item) || item.name === this.$config.homeName);\n this.$emit('on-close', res, 'others', this.currentRouteObj);\n setTimeout(() => {\n this.getTagElementByName(this.currentRouteObj.name);\n }, 100);\n }\n },\n\n handleClose(current) {\n if (current.meta && current.meta.beforeCloseName && current.meta.beforeCloseName in beforeClose) {\n new Promise(beforeClose[current.meta.beforeCloseName]).then(close => {\n if (close) {\n this.close(current);\n }\n });\n } else {\n this.close(current);\n }\n },\n\n close(route) {\n let res = this.list.filter(item => !routeEqual(route, item));\n this.$emit('on-close', res, undefined, route);\n },\n\n handleClick(item) {\n this.$emit('input', item);\n },\n\n showTitleInside(item) {\n return showTitle(item, this);\n },\n\n isCurrentTag(item) {\n return routeEqual(this.currentRouteObj, item);\n },\n\n moveToView(tag) {\n const outerWidth = this.$refs.scrollOuter.offsetWidth;\n const bodyWidth = this.$refs.scrollBody.offsetWidth;\n\n if (bodyWidth < outerWidth) {\n this.tagBodyLeft = 0;\n } else if (tag.offsetLeft < -this.tagBodyLeft) {\n // 标签在可视区域左侧\n this.tagBodyLeft = -tag.offsetLeft + this.outerPadding;\n } else if (tag.offsetLeft > -this.tagBodyLeft && tag.offsetLeft + tag.offsetWidth < -this.tagBodyLeft + outerWidth) {\n // 标签在可视区域\n this.tagBodyLeft = Math.min(0, outerWidth - tag.offsetWidth - tag.offsetLeft - this.outerPadding);\n } else {\n // 标签在可视区域右侧\n this.tagBodyLeft = -(tag.offsetLeft - (outerWidth - this.outerPadding - tag.offsetWidth));\n }\n },\n\n getTagElementByName(route) {\n this.$nextTick(() => {\n this.refsTag = this.$refs.tagsPageOpened;\n this.refsTag.forEach((item, index) => {\n if (routeEqual(route, item.$attrs['data-route-item'])) {\n let tag = this.refsTag[index].$el;\n this.moveToView(tag);\n }\n });\n });\n },\n\n contextMenu(item, e) {\n if (item.name === this.$config.homeName) {\n return;\n }\n\n this.visible = true;\n const offsetLeft = this.$el.getBoundingClientRect().left;\n this.contextMenuLeft = e.clientX - offsetLeft + 10;\n this.contextMenuTop = e.clientY - 64;\n },\n\n closeMenu() {\n this.visible = false;\n }\n\n },\n watch: {\n '$route'(to) {\n this.getTagElementByName(to);\n },\n\n visible(value) {\n if (value) {\n document.body.addEventListener('click', this.closeMenu);\n } else {\n document.body.removeEventListener('click', this.closeMenu);\n }\n }\n\n },\n\n mounted() {\n setTimeout(() => {\n this.getTagElementByName(this.$route);\n }, 200);\n }\n\n};",{"version":3,"sources":["tags-nav.vue"],"names":[],"mappings":"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","sourcesContent":["\n \n \n \n \n \n \n \n 关闭所有\n 关闭其他\n \n \n \n \n {{item}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ showTitleInside(item) }}\n \n \n \n \n\n\n\n\n\n"],"sourceRoot":"src/components/main/components/tags-nav"}]}