执行过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\\UploadExcel\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\components\\UploadExcel\\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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IFhMU1ggZnJvbSAneGxzeCc7CmV4cG9ydCBkZWZhdWx0IHsKICBwcm9wczogewogICAgYmVmb3JlVXBsb2FkOiBGdW5jdGlvbiwKICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUKICAgIG9uU3VjY2VzczogRnVuY3Rpb24gLy8gZXNsaW50LWRpc2FibGUtbGluZQoKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgZXhjZWxEYXRhOiB7CiAgICAgICAgaGVhZGVyOiBudWxsLAogICAgICAgIHJlc3VsdHM6IG51bGwKICAgICAgfQogICAgfTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdlbmVyYXRlRGF0YTogZnVuY3Rpb24gZ2VuZXJhdGVEYXRhKF9yZWYpIHsKICAgICAgdmFyIGhlYWRlciA9IF9yZWYuaGVhZGVyLAogICAgICAgICAgcmVzdWx0cyA9IF9yZWYucmVzdWx0czsKICAgICAgdGhpcy5leGNlbERhdGEuaGVhZGVyID0gaGVhZGVyOwogICAgICB0aGlzLmV4Y2VsRGF0YS5yZXN1bHRzID0gcmVzdWx0czsKICAgICAgdGhpcy5vblN1Y2Nlc3MgJiYgdGhpcy5vblN1Y2Nlc3ModGhpcy5leGNlbERhdGEpOwogICAgfSwKICAgIGhhbmRsZURyb3A6IGZ1bmN0aW9uIGhhbmRsZURyb3AoZSkgewogICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHJldHVybjsKICAgICAgdmFyIGZpbGVzID0gZS5kYXRhVHJhbnNmZXIuZmlsZXM7CgogICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcignT25seSBzdXBwb3J0IHVwbG9hZGluZyBvbmUgZmlsZSEnKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHZhciByYXdGaWxlID0gZmlsZXNbMF07IC8vIG9ubHkgdXNlIGZpbGVzWzBdCgogICAgICBpZiAoIXRoaXMuaXNFeGNlbChyYXdGaWxlKSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ09ubHkgc3VwcG9ydHMgdXBsb2FkIC54bHN4LCAueGxzLCAuY3N2IHN1ZmZpeCBmaWxlcycpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQoKICAgICAgdGhpcy51cGxvYWQocmF3RmlsZSk7CiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIH0sCiAgICBoYW5kbGVEcmFnb3ZlcjogZnVuY3Rpb24gaGFuZGxlRHJhZ292ZXIoZSkgewogICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7CiAgICB9LAogICAgaGFuZGxlVXBsb2FkOiBmdW5jdGlvbiBoYW5kbGVVcGxvYWQoKSB7CiAgICAgIHRoaXMuJHJlZnNbJ2V4Y2VsLXVwbG9hZC1pbnB1dCddLmNsaWNrKCk7CiAgICB9LAogICAgaGFuZGxlQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZUNsaWNrKGUpIHsKICAgICAgdmFyIGZpbGVzID0gZS50YXJnZXQuZmlsZXM7CiAgICAgIHZhciByYXdGaWxlID0gZmlsZXNbMF07IC8vIG9ubHkgdXNlIGZpbGVzWzBdCgogICAgICBpZiAoIXJhd0ZpbGUpIHJldHVybjsKICAgICAgdGhpcy51cGxvYWQocmF3RmlsZSk7CiAgICB9LAogICAgdXBsb2FkOiBmdW5jdGlvbiB1cGxvYWQocmF3RmlsZSkgewogICAgICB0aGlzLiRyZWZzWydleGNlbC11cGxvYWQtaW5wdXQnXS52YWx1ZSA9IG51bGw7IC8vIGZpeCBjYW4ndCBzZWxlY3QgdGhlIHNhbWUgZXhjZWwKCiAgICAgIGlmICghdGhpcy5iZWZvcmVVcGxvYWQpIHsKICAgICAgICB0aGlzLnJlYWRlckRhdGEocmF3RmlsZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB2YXIgYmVmb3JlID0gdGhpcy5iZWZvcmVVcGxvYWQocmF3RmlsZSk7CgogICAgICBpZiAoYmVmb3JlKSB7CiAgICAgICAgdGhpcy5yZWFkZXJEYXRhKHJhd0ZpbGUpOwogICAgICB9CiAgICB9LAogICAgcmVhZGVyRGF0YTogZnVuY3Rpb24gcmVhZGVyRGF0YShyYXdGaWxlKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwoKICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHZhciBkYXRhID0gZS50YXJnZXQucmVzdWx0OwogICAgICAgICAgdmFyIHdvcmtib29rID0gWExTWC5yZWFkKGRhdGEsIHsKICAgICAgICAgICAgdHlwZTogJ2FycmF5JwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgZmlyc3RTaGVldE5hbWUgPSB3b3JrYm9vay5TaGVldE5hbWVzWzBdOwogICAgICAgICAgdmFyIHdvcmtzaGVldCA9IHdvcmtib29rLlNoZWV0c1tmaXJzdFNoZWV0TmFtZV07CgogICAgICAgICAgdmFyIGhlYWRlciA9IF90aGlzLmdldEhlYWRlclJvdyh3b3Jrc2hlZXQpOwoKICAgICAgICAgIHZhciByZXN1bHRzID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdvcmtzaGVldCk7CgogICAgICAgICAgX3RoaXMuZ2VuZXJhdGVEYXRhKHsKICAgICAgICAgICAgaGVhZGVyOiBoZWFkZXIsCiAgICAgICAgICAgIHJlc3VsdHM6IHJlc3VsdHMKICAgICAgICAgIH0pOwoKICAgICAgICAgIF90aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICB9OwoKICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIocmF3RmlsZSk7CiAgICAgIH0pOwogICAgfSwKICAgIGdldEhlYWRlclJvdzogZnVuY3Rpb24gZ2V0SGVhZGVyUm93KHNoZWV0KSB7CiAgICAgIHZhciBoZWFkZXJzID0gW107CiAgICAgIHZhciByYW5nZSA9IFhMU1gudXRpbHMuZGVjb2RlX3JhbmdlKHNoZWV0WychcmVmJ10pOwogICAgICB2YXIgQzsKICAgICAgdmFyIFIgPSByYW5nZS5zLnI7CiAgICAgIC8qIHN0YXJ0IGluIHRoZSBmaXJzdCByb3cgKi8KCiAgICAgIGZvciAoQyA9IHJhbmdlLnMuYzsgQyA8PSByYW5nZS5lLmM7ICsrQykgewogICAgICAgIC8qIHdhbGsgZXZlcnkgY29sdW1uIGluIHRoZSByYW5nZSAqLwogICAgICAgIHZhciBjZWxsID0gc2hlZXRbWExTWC51dGlscy5lbmNvZGVfY2VsbCh7CiAgICAgICAgICBjOiBDLAogICAgICAgICAgcjogUgogICAgICAgIH0pXTsKICAgICAgICAvKiBmaW5kIHRoZSBjZWxsIGluIHRoZSBmaXJzdCByb3cgKi8KCiAgICAgICAgdmFyIGhkciA9ICdVTktOT1dOICcgKyBDOyAvLyA8LS0gcmVwbGFjZSB3aXRoIHlvdXIgZGVzaXJlZCBkZWZhdWx0CgogICAgICAgIGlmIChjZWxsICYmIGNlbGwudCkgaGRyID0gWExTWC51dGlscy5mb3JtYXRfY2VsbChjZWxsKTsKICAgICAgICBoZWFkZXJzLnB1c2goaGRyKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGhlYWRlcnM7CiAgICB9LAogICAgaXNFeGNlbDogZnVuY3Rpb24gaXNFeGNlbChmaWxlKSB7CiAgICAgIHJldHVybiAvXC4oeGxzeHx4bHN8Y3N2KSQvLnRlc3QoZmlsZS5uYW1lKTsKICAgIH0KICB9Cn07"},{"version":3,"mappings":";;;;;;;;;;;;;;;;AAaA;AAEA;EACAA;IACAC,sBADA;IACA;IACAC,mBAFA,CAEA;;EAFA,CADA;EAKAC,IALA,kBAKA;IACA;MACAC,cADA;MAEAC;QACAC,YADA;QAEAC;MAFA;IAFA;EAOA,CAbA;EAcAC;IACAC,YADA,8BACA;MAAA;MAAA;MACA;MACA;MACA;IACA,CALA;IAMAC,UANA,sBAMAC,CANA,EAMA;MACAA;MACAA;MACA;MACA;;MACA;QACA;QACA;MACA;;MACA,uBATA,CASA;;MAEA;QACA;QACA;MACA;;MACA;MACAA;MACAA;IACA,CAxBA;IAyBAC,cAzBA,0BAyBAD,CAzBA,EAyBA;MACAA;MACAA;MACAA;IACA,CA7BA;IA8BAE,YA9BA,0BA8BA;MACA;IACA,CAhCA;IAiCAC,WAjCA,uBAiCAH,CAjCA,EAiCA;MACA;MACA,uBAFA,CAEA;;MACA;MACA;IACA,CAtCA;IAuCAI,MAvCA,kBAuCAC,OAvCA,EAuCA;MACA,8CADA,CACA;;MAEA;QACA;QACA;MACA;;MACA;;MACA;QACA;MACA;IACA,CAlDA;IAmDAC,UAnDA,sBAmDAD,OAnDA,EAmDA;MAAA;;MACA;MACA;QACA;;QACAE;UACA;UACA;YAAAC;UAAA;UACA;UACA;;UACA;;UACA;;UACA;YAAAb;YAAAC;UAAA;;UACA;UACAa;QACA,CAVA;;QAWAF;MACA,CAdA;IAeA,CApEA;IAqEAG,YArEA,wBAqEAC,KArEA,EAqEA;MACA;MACA;MACA;MACA;MACA;;MACA;QAAA;QACA;UAAAC;UAAAC;QAAA;QACA;;QACA,yBAHA,CAGA;;QACA;QACAC;MACA;;MACA;IACA,CAnFA;IAoFAC,OApFA,mBAoFAC,IApFA,EAoFA;MACA;IACA;EAtFA;AAdA","names":["props","beforeUpload","onSuccess","data","loading","excelData","header","results","methods","generateData","handleDrop","e","handleDragover","handleUpload","handleClick","upload","rawFile","readerData","reader","type","resolve","getHeaderRow","sheet","c","r","headers","isExcel","file"],"sourceRoot":"src/components/UploadExcel","sources":["index.vue"],"sourcesContent":["<template>\n  <div>\n    <input ref=\"excel-upload-input\" class=\"excel-upload-input\" type=\"file\" accept=\".xlsx, .xls\" @change=\"handleClick\">\n    <div class=\"drop\" @drop=\"handleDrop\" @dragover=\"handleDragover\" @dragenter=\"handleDragover\">\n      Drop excel file here or\n      <el-button :loading=\"loading\" style=\"margin-left:16px;\" size=\"mini\" type=\"primary\" @click=\"handleUpload\">\n        Browse\n      </el-button>\n    </div>\n  </div>\n</template>\n\n<script>\nimport XLSX from 'xlsx'\n\nexport default {\n  props: {\n    beforeUpload: Function, // eslint-disable-line\n    onSuccess: Function// eslint-disable-line\n  },\n  data() {\n    return {\n      loading: false,\n      excelData: {\n        header: null,\n        results: null\n      }\n    }\n  },\n  methods: {\n    generateData({ header, results }) {\n      this.excelData.header = header\n      this.excelData.results = results\n      this.onSuccess && this.onSuccess(this.excelData)\n    },\n    handleDrop(e) {\n      e.stopPropagation()\n      e.preventDefault()\n      if (this.loading) return\n      const files = e.dataTransfer.files\n      if (files.length !== 1) {\n        this.$message.error('Only support uploading one file!')\n        return\n      }\n      const rawFile = files[0] // only use files[0]\n\n      if (!this.isExcel(rawFile)) {\n        this.$message.error('Only supports upload .xlsx, .xls, .csv suffix files')\n        return false\n      }\n      this.upload(rawFile)\n      e.stopPropagation()\n      e.preventDefault()\n    },\n    handleDragover(e) {\n      e.stopPropagation()\n      e.preventDefault()\n      e.dataTransfer.dropEffect = 'copy'\n    },\n    handleUpload() {\n      this.$refs['excel-upload-input'].click()\n    },\n    handleClick(e) {\n      const files = e.target.files\n      const rawFile = files[0] // only use files[0]\n      if (!rawFile) return\n      this.upload(rawFile)\n    },\n    upload(rawFile) {\n      this.$refs['excel-upload-input'].value = null // fix can't select the same excel\n\n      if (!this.beforeUpload) {\n        this.readerData(rawFile)\n        return\n      }\n      const before = this.beforeUpload(rawFile)\n      if (before) {\n        this.readerData(rawFile)\n      }\n    },\n    readerData(rawFile) {\n      this.loading = true\n      return new Promise((resolve, reject) => {\n        const reader = new FileReader()\n        reader.onload = e => {\n          const data = e.target.result\n          const workbook = XLSX.read(data, { type: 'array' })\n          const firstSheetName = workbook.SheetNames[0]\n          const worksheet = workbook.Sheets[firstSheetName]\n          const header = this.getHeaderRow(worksheet)\n          const results = XLSX.utils.sheet_to_json(worksheet)\n          this.generateData({ header, results })\n          this.loading = false\n          resolve()\n        }\n        reader.readAsArrayBuffer(rawFile)\n      })\n    },\n    getHeaderRow(sheet) {\n      const headers = []\n      const range = XLSX.utils.decode_range(sheet['!ref'])\n      let C\n      const R = range.s.r\n      /* start in the first row */\n      for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */\n        const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]\n        /* find the cell in the first row */\n        let hdr = 'UNKNOWN ' + C // <-- replace with your desired default\n        if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)\n        headers.push(hdr)\n      }\n      return headers\n    },\n    isExcel(file) {\n      return /\\.(xlsx|xls|csv)$/.test(file.name)\n    }\n  }\n}\n</script>\n\n<style scoped>\n.excel-upload-input{\n  display: none;\n  z-index: -9999;\n}\n.drop{\n  border: 2px dashed #bbb;\n  width: 600px;\n  height: 160px;\n  line-height: 160px;\n  margin: 0 auto;\n  font-size: 24px;\n  border-radius: 5px;\n  text-align: center;\n  color: #bbb;\n  position: relative;\n}\n</style>\n"]}]}