执行过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\\components\\Breadcrumb\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\components\\Breadcrumb\\index.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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnN0YXJ0cy13aXRoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcudHJpbS5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCBwYXRoVG9SZWdleHAgZnJvbSAncGF0aC10by1yZWdleHAnOwpleHBvcnQgZGVmYXVsdCB7CiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGxldmVsTGlzdDogbnVsbAogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICAkcm91dGU6IGZ1bmN0aW9uICRyb3V0ZShyb3V0ZSkgewogICAgICAvLyBpZiB5b3UgZ28gdG8gdGhlIHJlZGlyZWN0IHBhZ2UsIGRvIG5vdCB1cGRhdGUgdGhlIGJyZWFkY3J1bWJzCiAgICAgIGlmIChyb3V0ZS5wYXRoLnN0YXJ0c1dpdGgoJy9yZWRpcmVjdC8nKSkgewogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgdGhpcy5nZXRCcmVhZGNydW1iKCk7CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRCcmVhZGNydW1iKCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBnZXRCcmVhZGNydW1iOiBmdW5jdGlvbiBnZXRCcmVhZGNydW1iKCkgewogICAgICAvLyBvbmx5IHNob3cgcm91dGVzIHdpdGggbWV0YS50aXRsZQogICAgICB2YXIgbWF0Y2hlZCA9IHRoaXMuJHJvdXRlLm1hdGNoZWQuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0ubWV0YSAmJiBpdGVtLm1ldGEudGl0bGU7CiAgICAgIH0pOwogICAgICB2YXIgZmlyc3QgPSBtYXRjaGVkWzBdOwoKICAgICAgaWYgKCF0aGlzLmlzRGFzaGJvYXJkKGZpcnN0KSkgewogICAgICAgIG1hdGNoZWQgPSBbewogICAgICAgICAgcGF0aDogJy9kYXNoYm9hcmQnLAogICAgICAgICAgbWV0YTogewogICAgICAgICAgICB0aXRsZTogJ0Rhc2hib2FyZCcKICAgICAgICAgIH0KICAgICAgICB9XS5jb25jYXQobWF0Y2hlZCk7CiAgICAgIH0KCiAgICAgIHRoaXMubGV2ZWxMaXN0ID0gbWF0Y2hlZC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5tZXRhICYmIGl0ZW0ubWV0YS50aXRsZSAmJiBpdGVtLm1ldGEuYnJlYWRjcnVtYiAhPT0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIGlzRGFzaGJvYXJkOiBmdW5jdGlvbiBpc0Rhc2hib2FyZChyb3V0ZSkgewogICAgICB2YXIgbmFtZSA9IHJvdXRlICYmIHJvdXRlLm5hbWU7CgogICAgICBpZiAoIW5hbWUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBuYW1lLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAnRGFzaGJvYXJkJy50b0xvY2FsZUxvd2VyQ2FzZSgpOwogICAgfSwKICAgIHBhdGhDb21waWxlOiBmdW5jdGlvbiBwYXRoQ29tcGlsZShwYXRoKSB7CiAgICAgIC8vIFRvIHNvbHZlIHRoaXMgcHJvYmxlbSBodHRwczovL2dpdGh1Yi5jb20vUGFuSmlhQ2hlbi92dWUtZWxlbWVudC1hZG1pbi9pc3N1ZXMvNTYxCiAgICAgIHZhciBwYXJhbXMgPSB0aGlzLiRyb3V0ZS5wYXJhbXM7CiAgICAgIHZhciB0b1BhdGggPSBwYXRoVG9SZWdleHAuY29tcGlsZShwYXRoKTsKICAgICAgcmV0dXJuIHRvUGF0aChwYXJhbXMpOwogICAgfSwKICAgIGhhbmRsZUxpbms6IGZ1bmN0aW9uIGhhbmRsZUxpbmsoaXRlbSkgewogICAgICB2YXIgcmVkaXJlY3QgPSBpdGVtLnJlZGlyZWN0LAogICAgICAgICAgcGF0aCA9IGl0ZW0ucGF0aDsKCiAgICAgIGlmIChyZWRpcmVjdCkgewogICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHJlZGlyZWN0KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHRoaXMucGF0aENvbXBpbGUocGF0aCkpOwogICAgfQogIH0KfTs="},{"version":3,"mappings":";;;;;;;;;;;;;;;;;AAYA;AAEA;EACAA,IADA,kBACA;IACA;MACAC;IADA;EAGA,CALA;EAMAC;IACAC,MADA,kBACAC,KADA,EACA;MACA;MACA;QACA;MACA;;MACA;IACA;EAPA,CANA;EAeAC,OAfA,qBAeA;IACA;EACA,CAjBA;EAkBAC;IACAC,aADA,2BACA;MACA;MACA;QAAA;MAAA;MACA;;MAEA;QACAC;UAAAC;UAAAC;YAAAC;UAAA;QAAA;MACA;;MAEA;QAAA;MAAA;IACA,CAXA;IAYAC,WAZA,uBAYAR,KAZA,EAYA;MACA;;MACA;QACA;MACA;;MACA;IACA,CAlBA;IAmBAS,WAnBA,uBAmBAJ,IAnBA,EAmBA;MACA;MACA;MACA;MACA;IACA,CAxBA;IAyBAK,UAzBA,sBAyBAC,IAzBA,EAyBA;MACA;MAAA;;MACA;QACA;QACA;MACA;;MACA;IACA;EAhCA;AAlBA","names":["data","levelList","watch","$route","route","created","methods","getBreadcrumb","matched","path","meta","title","isDashboard","pathCompile","handleLink","item"],"sourceRoot":"src/components/Breadcrumb","sources":["index.vue"],"sourcesContent":["<template>\n  <el-breadcrumb class=\"app-breadcrumb\" separator=\"/\">\n    <transition-group name=\"breadcrumb\">\n      <el-breadcrumb-item v-for=\"(item,index) in levelList\" :key=\"item.path\">\n        <span v-if=\"item.redirect==='noRedirect'||index==levelList.length-1\" class=\"no-redirect\">{{ item.meta.title }}</span>\n        <a v-else @click.prevent=\"handleLink(item)\">{{ item.meta.title }}</a>\n      </el-breadcrumb-item>\n    </transition-group>\n  </el-breadcrumb>\n</template>\n\n<script>\nimport pathToRegexp from 'path-to-regexp'\n\nexport default {\n  data() {\n    return {\n      levelList: null\n    }\n  },\n  watch: {\n    $route(route) {\n      // if you go to the redirect page, do not update the breadcrumbs\n      if (route.path.startsWith('/redirect/')) {\n        return\n      }\n      this.getBreadcrumb()\n    }\n  },\n  created() {\n    this.getBreadcrumb()\n  },\n  methods: {\n    getBreadcrumb() {\n      // only show routes with meta.title\n      let matched = this.$route.matched.filter(item => item.meta && item.meta.title)\n      const first = matched[0]\n\n      if (!this.isDashboard(first)) {\n        matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)\n      }\n\n      this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)\n    },\n    isDashboard(route) {\n      const name = route && route.name\n      if (!name) {\n        return false\n      }\n      return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()\n    },\n    pathCompile(path) {\n      // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561\n      const { params } = this.$route\n      var toPath = pathToRegexp.compile(path)\n      return toPath(params)\n    },\n    handleLink(item) {\n      const { redirect, path } = item\n      if (redirect) {\n        this.$router.push(redirect)\n        return\n      }\n      this.$router.push(this.pathCompile(path))\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.app-breadcrumb.el-breadcrumb {\n  display: inline-block;\n  font-size: 14px;\n  line-height: 50px;\n  margin-left: 8px;\n\n  .no-redirect {\n    color: #97a8be;\n    cursor: text;\n  }\n}\n</style>\n"]}]}