| 1 |
- {"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":["<template>\n <div class=\"tags-nav\">\n <div class=\"close-con\">\n <Dropdown transfer @on-click=\"handleTagsOption\" style=\"margin-top:7px;\">\n <Button size=\"small\" type=\"text\">\n <Icon :size=\"18\" type=\"ios-close-circle-outline\" />\n </Button>\n <DropdownMenu slot=\"list\">\n <DropdownItem name=\"close-all\">关闭所有</DropdownItem>\n <DropdownItem name=\"close-others\">关闭其他</DropdownItem>\n </DropdownMenu>\n </Dropdown>\n </div>\n <ul v-show=\"visible\" :style=\"{left: contextMenuLeft + 'px', top: contextMenuTop + 'px'}\" class=\"contextmenu\">\n <li v-for=\"(item, key) of menuList\" @click=\"handleTagsOption(key)\" :key=\"key\">{{item}}</li>\n </ul>\n <div class=\"btn-con left-btn\">\n <Button type=\"text\" @click=\"handleScroll(240)\">\n <Icon :size=\"18\" type=\"ios-arrow-back\" />\n </Button>\n </div>\n <div class=\"btn-con right-btn\">\n <Button type=\"text\" @click=\"handleScroll(-240)\">\n <Icon :size=\"18\" type=\"ios-arrow-forward\" />\n </Button>\n </div>\n <div class=\"scroll-outer\" ref=\"scrollOuter\" @DOMMouseScroll=\"handlescroll\" @mousewheel=\"handlescroll\">\n <div ref=\"scrollBody\" class=\"scroll-body\" :style=\"{left: tagBodyLeft + 'px'}\">\n <transition-group name=\"taglist-moving-animation\">\n <Tag\n type=\"dot\"\n v-for=\"(item, index) in list\"\n ref=\"tagsPageOpened\"\n :key=\"`tag-nav-${index}`\"\n :name=\"item.name\"\n :data-route-item=\"item\"\n @on-close=\"handleClose(item)\"\n @click.native=\"handleClick(item)\"\n :closable=\"item.name !== $config.homeName\"\n :color=\"isCurrentTag(item) ? 'primary' : 'default'\"\n @contextmenu.prevent.native=\"contextMenu(item, $event)\"\n >{{ showTitleInside(item) }}</Tag>\n </transition-group>\n </div>\n </div>\n </div>\n</template>\n\n<script>\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 default () {\n return []\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 computed: {\n currentRouteObj () {\n const { name, params, query } = this.value\n return { name, params, query }\n }\n },\n methods: {\n handlescroll (e) {\n var type = e.type\n let delta = 0\n if (type === 'DOMMouseScroll' || type === 'mousewheel') {\n delta = (e.wheelDelta) ? e.wheelDelta : -(e.detail || 0) * 40\n }\n this.handleScroll(delta)\n },\n handleScroll (offset) {\n const outerWidth = this.$refs.scrollOuter.offsetWidth\n const bodyWidth = this.$refs.scrollBody.offsetWidth\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 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 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 close (route) {\n let res = this.list.filter(item => !routeEqual(route, item))\n this.$emit('on-close', res, undefined, route)\n },\n handleClick (item) {\n this.$emit('input', item)\n },\n showTitleInside (item) {\n return showTitle(item, this)\n },\n isCurrentTag (item) {\n return routeEqual(this.currentRouteObj, item)\n },\n moveToView (tag) {\n const outerWidth = this.$refs.scrollOuter.offsetWidth\n const bodyWidth = this.$refs.scrollBody.offsetWidth\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 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 contextMenu (item, e) {\n if (item.name === this.$config.homeName) {\n return\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 closeMenu () {\n this.visible = false\n }\n },\n watch: {\n '$route' (to) {\n this.getTagElementByName(to)\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 mounted () {\n setTimeout(() => {\n this.getTagElementByName(this.$route)\n }, 200)\n }\n}\n</script>\n\n<style lang=\"less\">\n@import './tags-nav.less';\n</style>\n"],"sourceRoot":"src/components/main/components/tags-nav"}]}
|