执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\源码\\vue-element-admin-master\\src\\components\\BackToTop\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\components\\BackToTop\\index.vue","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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnQmFja1RvVG9wJywKICBwcm9wczogewogICAgdmlzaWJpbGl0eUhlaWdodDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDQwMAogICAgfSwKICAgIGJhY2tQb3NpdGlvbjogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDAKICAgIH0sCiAgICBjdXN0b21TdHlsZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICByaWdodDogJzUwcHgnLAogICAgICAgICAgYm90dG9tOiAnNTBweCcsCiAgICAgICAgICB3aWR0aDogJzQwcHgnLAogICAgICAgICAgaGVpZ2h0OiAnNDBweCcsCiAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLAogICAgICAgICAgJ2xpbmUtaGVpZ2h0JzogJzQ1cHgnLAogICAgICAgICAgYmFja2dyb3VuZDogJyNlN2VhZjEnCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgdHJhbnNpdGlvbk5hbWU6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAnZmFkZScKICAgIH0KICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB2aXNpYmxlOiBmYWxzZSwKICAgICAgaW50ZXJ2YWw6IG51bGwsCiAgICAgIGlzTW92aW5nOiBmYWxzZQogICAgfQogIH0sCiAgbW91bnRlZCgpIHsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZVNjcm9sbCkKICB9LAogIGJlZm9yZURlc3Ryb3koKSB7CiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVTY3JvbGwpCiAgICBpZiAodGhpcy5pbnRlcnZhbCkgewogICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpCiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBoYW5kbGVTY3JvbGwoKSB7CiAgICAgIHRoaXMudmlzaWJsZSA9IHdpbmRvdy5wYWdlWU9mZnNldCA+IHRoaXMudmlzaWJpbGl0eUhlaWdodAogICAgfSwKICAgIGJhY2tUb1RvcCgpIHsKICAgICAgaWYgKHRoaXMuaXNNb3ZpbmcpIHJldHVybgogICAgICBjb25zdCBzdGFydCA9IHdpbmRvdy5wYWdlWU9mZnNldAogICAgICBsZXQgaSA9IDAKICAgICAgdGhpcy5pc01vdmluZyA9IHRydWUKICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICBjb25zdCBuZXh0ID0gTWF0aC5mbG9vcih0aGlzLmVhc2VJbk91dFF1YWQoMTAgKiBpLCBzdGFydCwgLXN0YXJ0LCA1MDApKQogICAgICAgIGlmIChuZXh0IDw9IHRoaXMuYmFja1Bvc2l0aW9uKSB7CiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgdGhpcy5iYWNrUG9zaXRpb24pCiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpCiAgICAgICAgICB0aGlzLmlzTW92aW5nID0gZmFsc2UKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIG5leHQpCiAgICAgICAgfQogICAgICAgIGkrKwogICAgICB9LCAxNi43KQogICAgfSwKICAgIGVhc2VJbk91dFF1YWQodCwgYiwgYywgZCkgewogICAgICBpZiAoKHQgLz0gZCAvIDIpIDwgMSkgcmV0dXJuIGMgLyAyICogdCAqIHQgKyBiCiAgICAgIHJldHVybiAtYyAvIDIgKiAoLS10ICogKHQgLSAyKSAtIDEpICsgYgogICAgfQogIH0KfQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/components/BackToTop","sourcesContent":["<template>\n  <transition :name=\"transitionName\">\n    <div v-show=\"visible\" :style=\"customStyle\" class=\"back-to-ceiling\" @click=\"backToTop\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 17 17\" xmlns=\"http://www.w3.org/2000/svg\" class=\"Icon Icon--backToTopArrow\" aria-hidden=\"true\" style=\"height:16px;width:16px\"><path d=\"M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z\" /></svg>\n    </div>\n  </transition>\n</template>\n\n<script>\nexport default {\n  name: 'BackToTop',\n  props: {\n    visibilityHeight: {\n      type: Number,\n      default: 400\n    },\n    backPosition: {\n      type: Number,\n      default: 0\n    },\n    customStyle: {\n      type: Object,\n      default: function() {\n        return {\n          right: '50px',\n          bottom: '50px',\n          width: '40px',\n          height: '40px',\n          'border-radius': '4px',\n          'line-height': '45px',\n          background: '#e7eaf1'\n        }\n      }\n    },\n    transitionName: {\n      type: String,\n      default: 'fade'\n    }\n  },\n  data() {\n    return {\n      visible: false,\n      interval: null,\n      isMoving: false\n    }\n  },\n  mounted() {\n    window.addEventListener('scroll', this.handleScroll)\n  },\n  beforeDestroy() {\n    window.removeEventListener('scroll', this.handleScroll)\n    if (this.interval) {\n      clearInterval(this.interval)\n    }\n  },\n  methods: {\n    handleScroll() {\n      this.visible = window.pageYOffset > this.visibilityHeight\n    },\n    backToTop() {\n      if (this.isMoving) return\n      const start = window.pageYOffset\n      let i = 0\n      this.isMoving = true\n      this.interval = setInterval(() => {\n        const next = Math.floor(this.easeInOutQuad(10 * i, start, -start, 500))\n        if (next <= this.backPosition) {\n          window.scrollTo(0, this.backPosition)\n          clearInterval(this.interval)\n          this.isMoving = false\n        } else {\n          window.scrollTo(0, next)\n        }\n        i++\n      }, 16.7)\n    },\n    easeInOutQuad(t, b, c, d) {\n      if ((t /= d / 2) < 1) return c / 2 * t * t + b\n      return -c / 2 * (--t * (t - 2) - 1) + b\n    }\n  }\n}\n</script>\n\n<style scoped>\n.back-to-ceiling {\n  position: fixed;\n  display: inline-block;\n  text-align: center;\n  cursor: pointer;\n}\n\n.back-to-ceiling:hover {\n  background: #d5dbe7;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n  transition: opacity .5s;\n}\n\n.fade-enter,\n.fade-leave-to {\n  opacity: 0\n}\n\n.back-to-ceiling .Icon {\n  fill: #9aaabf;\n  background: none;\n}\n</style>\n"]}]}