执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js!D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\源码\\vue-element-admin-master\\src\\layout\\components\\TagsView\\ScrollPane.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\layout\\components\\TagsView\\ScrollPane.vue","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\babel.config.js","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC1pbmRleC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCnZhciB0YWdBbmRUYWdTcGFjaW5nID0gNDsgLy8gdGFnQW5kVGFnU3BhY2luZwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdTY3JvbGxQYW5lJywKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgbGVmdDogMAogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICBzY3JvbGxXcmFwcGVyOiBmdW5jdGlvbiBzY3JvbGxXcmFwcGVyKCkgewogICAgICByZXR1cm4gdGhpcy4kcmVmcy5zY3JvbGxDb250YWluZXIuJHJlZnMud3JhcDsKICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB0aGlzLnNjcm9sbFdyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5lbWl0U2Nyb2xsLCB0cnVlKTsKICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICB0aGlzLnNjcm9sbFdyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5lbWl0U2Nyb2xsKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGhhbmRsZVNjcm9sbDogZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKGUpIHsKICAgICAgdmFyIGV2ZW50RGVsdGEgPSBlLndoZWVsRGVsdGEgfHwgLWUuZGVsdGFZICogNDA7CiAgICAgIHZhciAkc2Nyb2xsV3JhcHBlciA9IHRoaXMuc2Nyb2xsV3JhcHBlcjsKICAgICAgJHNjcm9sbFdyYXBwZXIuc2Nyb2xsTGVmdCA9ICRzY3JvbGxXcmFwcGVyLnNjcm9sbExlZnQgKyBldmVudERlbHRhIC8gNDsKICAgIH0sCiAgICBlbWl0U2Nyb2xsOiBmdW5jdGlvbiBlbWl0U2Nyb2xsKCkgewogICAgICB0aGlzLiRlbWl0KCdzY3JvbGwnKTsKICAgIH0sCiAgICBtb3ZlVG9UYXJnZXQ6IGZ1bmN0aW9uIG1vdmVUb1RhcmdldChjdXJyZW50VGFnKSB7CiAgICAgIHZhciAkY29udGFpbmVyID0gdGhpcy4kcmVmcy5zY3JvbGxDb250YWluZXIuJGVsOwogICAgICB2YXIgJGNvbnRhaW5lcldpZHRoID0gJGNvbnRhaW5lci5vZmZzZXRXaWR0aDsKICAgICAgdmFyICRzY3JvbGxXcmFwcGVyID0gdGhpcy5zY3JvbGxXcmFwcGVyOwogICAgICB2YXIgdGFnTGlzdCA9IHRoaXMuJHBhcmVudC4kcmVmcy50YWc7CiAgICAgIHZhciBmaXJzdFRhZyA9IG51bGw7CiAgICAgIHZhciBsYXN0VGFnID0gbnVsbDsgLy8gZmluZCBmaXJzdCB0YWcgYW5kIGxhc3QgdGFnCgogICAgICBpZiAodGFnTGlzdC5sZW5ndGggPiAwKSB7CiAgICAgICAgZmlyc3RUYWcgPSB0YWdMaXN0WzBdOwogICAgICAgIGxhc3RUYWcgPSB0YWdMaXN0W3RhZ0xpc3QubGVuZ3RoIC0gMV07CiAgICAgIH0KCiAgICAgIGlmIChmaXJzdFRhZyA9PT0gY3VycmVudFRhZykgewogICAgICAgICRzY3JvbGxXcmFwcGVyLnNjcm9sbExlZnQgPSAwOwogICAgICB9IGVsc2UgaWYgKGxhc3RUYWcgPT09IGN1cnJlbnRUYWcpIHsKICAgICAgICAkc2Nyb2xsV3JhcHBlci5zY3JvbGxMZWZ0ID0gJHNjcm9sbFdyYXBwZXIuc2Nyb2xsV2lkdGggLSAkY29udGFpbmVyV2lkdGg7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gZmluZCBwcmVUYWcgYW5kIG5leHRUYWcKICAgICAgICB2YXIgY3VycmVudEluZGV4ID0gdGFnTGlzdC5maW5kSW5kZXgoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtID09PSBjdXJyZW50VGFnOwogICAgICAgIH0pOwogICAgICAgIHZhciBwcmV2VGFnID0gdGFnTGlzdFtjdXJyZW50SW5kZXggLSAxXTsKICAgICAgICB2YXIgbmV4dFRhZyA9IHRhZ0xpc3RbY3VycmVudEluZGV4ICsgMV07IC8vIHRoZSB0YWcncyBvZmZzZXRMZWZ0IGFmdGVyIG9mIG5leHRUYWcKCiAgICAgICAgdmFyIGFmdGVyTmV4dFRhZ09mZnNldExlZnQgPSBuZXh0VGFnLiRlbC5vZmZzZXRMZWZ0ICsgbmV4dFRhZy4kZWwub2Zmc2V0V2lkdGggKyB0YWdBbmRUYWdTcGFjaW5nOyAvLyB0aGUgdGFnJ3Mgb2Zmc2V0TGVmdCBiZWZvcmUgb2YgcHJldlRhZwoKICAgICAgICB2YXIgYmVmb3JlUHJldlRhZ09mZnNldExlZnQgPSBwcmV2VGFnLiRlbC5vZmZzZXRMZWZ0IC0gdGFnQW5kVGFnU3BhY2luZzsKCiAgICAgICAgaWYgKGFmdGVyTmV4dFRhZ09mZnNldExlZnQgPiAkc2Nyb2xsV3JhcHBlci5zY3JvbGxMZWZ0ICsgJGNvbnRhaW5lcldpZHRoKSB7CiAgICAgICAgICAkc2Nyb2xsV3JhcHBlci5zY3JvbGxMZWZ0ID0gYWZ0ZXJOZXh0VGFnT2Zmc2V0TGVmdCAtICRjb250YWluZXJXaWR0aDsKICAgICAgICB9IGVsc2UgaWYgKGJlZm9yZVByZXZUYWdPZmZzZXRMZWZ0IDwgJHNjcm9sbFdyYXBwZXIuc2Nyb2xsTGVmdCkgewogICAgICAgICAgJHNjcm9sbFdyYXBwZXIuc2Nyb2xsTGVmdCA9IGJlZm9yZVByZXZUYWdPZmZzZXRMZWZ0OwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfTs="},{"version":3,"mappings":";;;;;;;AAOA,yB,CAAA;;AAEA;EACAA,kBADA;EAEAC,IAFA,kBAEA;IACA;MACAC;IADA;EAGA,CANA;EAOAC;IACAC,aADA,2BACA;MACA;IACA;EAHA,CAPA;EAYAC,OAZA,qBAYA;IACA;EACA,CAdA;EAeAC,aAfA,2BAeA;IACA;EACA,CAjBA;EAkBAC;IACAC,YADA,wBACAC,CADA,EACA;MACA;MACA;MACAC;IACA,CALA;IAMAC,UANA,wBAMA;MACA;IACA,CARA;IASAC,YATA,wBASAC,UATA,EASA;MACA;MACA;MACA;MACA;MAEA;MACA,mBAPA,CASA;;MACA;QACAC;QACAC;MACA;;MAEA;QACAL;MACA,CAFA,MAEA;QACAA;MACA,CAFA,MAEA;QACA;QACA;UAAA;QAAA;QACA;QACA,wCAJA,CAMA;;QACA,iGAPA,CASA;;QACA;;QAEA;UACAA;QACA,CAFA,MAEA;UACAA;QACA;MACA;IACA;EA9CA;AAlBA","names":["name","data","left","computed","scrollWrapper","mounted","beforeDestroy","methods","handleScroll","e","$scrollWrapper","emitScroll","moveToTarget","currentTag","firstTag","lastTag"],"sourceRoot":"src/layout/components/TagsView","sources":["ScrollPane.vue"],"sourcesContent":["<template>\n  <el-scrollbar ref=\"scrollContainer\" :vertical=\"false\" class=\"scroll-container\" @wheel.native.prevent=\"handleScroll\">\n    <slot />\n  </el-scrollbar>\n</template>\n\n<script>\nconst tagAndTagSpacing = 4 // tagAndTagSpacing\n\nexport default {\n  name: 'ScrollPane',\n  data() {\n    return {\n      left: 0\n    }\n  },\n  computed: {\n    scrollWrapper() {\n      return this.$refs.scrollContainer.$refs.wrap\n    }\n  },\n  mounted() {\n    this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)\n  },\n  beforeDestroy() {\n    this.scrollWrapper.removeEventListener('scroll', this.emitScroll)\n  },\n  methods: {\n    handleScroll(e) {\n      const eventDelta = e.wheelDelta || -e.deltaY * 40\n      const $scrollWrapper = this.scrollWrapper\n      $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4\n    },\n    emitScroll() {\n      this.$emit('scroll')\n    },\n    moveToTarget(currentTag) {\n      const $container = this.$refs.scrollContainer.$el\n      const $containerWidth = $container.offsetWidth\n      const $scrollWrapper = this.scrollWrapper\n      const tagList = this.$parent.$refs.tag\n\n      let firstTag = null\n      let lastTag = null\n\n      // find first tag and last tag\n      if (tagList.length > 0) {\n        firstTag = tagList[0]\n        lastTag = tagList[tagList.length - 1]\n      }\n\n      if (firstTag === currentTag) {\n        $scrollWrapper.scrollLeft = 0\n      } else if (lastTag === currentTag) {\n        $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth\n      } else {\n        // find preTag and nextTag\n        const currentIndex = tagList.findIndex(item => item === currentTag)\n        const prevTag = tagList[currentIndex - 1]\n        const nextTag = tagList[currentIndex + 1]\n\n        // the tag's offsetLeft after of nextTag\n        const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing\n\n        // the tag's offsetLeft before of prevTag\n        const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing\n\n        if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {\n          $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth\n        } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {\n          $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\n        }\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.scroll-container {\n  white-space: nowrap;\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n  ::v-deep {\n    .el-scrollbar__bar {\n      bottom: 0px;\n    }\n    .el-scrollbar__wrap {\n      height: 49px;\n    }\n  }\n}\n</style>\n"]}]}