1 line
13 KiB
JSON
1 line
13 KiB
JSON
{"remainingRequest":"/Users/kang/Gitea/vue-element-admin/node_modules/babel-loader/lib/index.js!/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/Users/kang/Gitea/vue-element-admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/kang/Gitea/vue-element-admin/src/components/UploadExcel/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/kang/Gitea/vue-element-admin/src/components/UploadExcel/index.vue","mtime":1754409279864},{"path":"/Users/kang/Gitea/vue-element-admin/babel.config.js","mtime":1754409277597},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js","mtime":1754409278035},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/babel-loader/lib/index.js","mtime":1754409277911},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js","mtime":1754409278035},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/vue-loader/lib/index.js","mtime":1754409279720}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50ZXN0LmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBYTFNYIGZyb20gJ3hsc3gnOwpleHBvcnQgZGVmYXVsdCB7CiAgcHJvcHM6IHsKICAgIGJlZm9yZVVwbG9hZDogRnVuY3Rpb24sCiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lCiAgICBvblN1Y2Nlc3M6IEZ1bmN0aW9uIC8vIGVzbGludC1kaXNhYmxlLWxpbmUKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgZXhjZWxEYXRhOiB7CiAgICAgICAgaGVhZGVyOiBudWxsLAogICAgICAgIHJlc3VsdHM6IG51bGwKICAgICAgfQogICAgfTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdlbmVyYXRlRGF0YTogZnVuY3Rpb24gZ2VuZXJhdGVEYXRhKF9yZWYpIHsKICAgICAgdmFyIGhlYWRlciA9IF9yZWYuaGVhZGVyLAogICAgICAgIHJlc3VsdHMgPSBfcmVmLnJlc3VsdHM7CiAgICAgIHRoaXMuZXhjZWxEYXRhLmhlYWRlciA9IGhlYWRlcjsKICAgICAgdGhpcy5leGNlbERhdGEucmVzdWx0cyA9IHJlc3VsdHM7CiAgICAgIHRoaXMub25TdWNjZXNzICYmIHRoaXMub25TdWNjZXNzKHRoaXMuZXhjZWxEYXRhKTsKICAgIH0sCiAgICBoYW5kbGVEcm9wOiBmdW5jdGlvbiBoYW5kbGVEcm9wKGUpIHsKICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBpZiAodGhpcy5sb2FkaW5nKSByZXR1cm47CiAgICAgIHZhciBmaWxlcyA9IGUuZGF0YVRyYW5zZmVyLmZpbGVzOwogICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcignT25seSBzdXBwb3J0IHVwbG9hZGluZyBvbmUgZmlsZSEnKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIHJhd0ZpbGUgPSBmaWxlc1swXTsgLy8gb25seSB1c2UgZmlsZXNbMF0KCiAgICAgIGlmICghdGhpcy5pc0V4Y2VsKHJhd0ZpbGUpKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcignT25seSBzdXBwb3J0cyB1cGxvYWQgLnhsc3gsIC54bHMsIC5jc3Ygc3VmZml4IGZpbGVzJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIHRoaXMudXBsb2FkKHJhd0ZpbGUpOwogICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB9LAogICAgaGFuZGxlRHJhZ292ZXI6IGZ1bmN0aW9uIGhhbmRsZURyYWdvdmVyKGUpIHsKICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknOwogICAgfSwKICAgIGhhbmRsZVVwbG9hZDogZnVuY3Rpb24gaGFuZGxlVXBsb2FkKCkgewogICAgICB0aGlzLiRyZWZzWydleGNlbC11cGxvYWQtaW5wdXQnXS5jbGljaygpOwogICAgfSwKICAgIGhhbmRsZUNsaWNrOiBmdW5jdGlvbiBoYW5kbGVDbGljayhlKSB7CiAgICAgIHZhciBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzOwogICAgICB2YXIgcmF3RmlsZSA9IGZpbGVzWzBdOyAvLyBvbmx5IHVzZSBmaWxlc1swXQogICAgICBpZiAoIXJhd0ZpbGUpIHJldHVybjsKICAgICAgdGhpcy51cGxvYWQocmF3RmlsZSk7CiAgICB9LAogICAgdXBsb2FkOiBmdW5jdGlvbiB1cGxvYWQocmF3RmlsZSkgewogICAgICB0aGlzLiRyZWZzWydleGNlbC11cGxvYWQtaW5wdXQnXS52YWx1ZSA9IG51bGw7IC8vIGZpeCBjYW4ndCBzZWxlY3QgdGhlIHNhbWUgZXhjZWwKCiAgICAgIGlmICghdGhpcy5iZWZvcmVVcGxvYWQpIHsKICAgICAgICB0aGlzLnJlYWRlckRhdGEocmF3RmlsZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHZhciBiZWZvcmUgPSB0aGlzLmJlZm9yZVVwbG9hZChyYXdGaWxlKTsKICAgICAgaWYgKGJlZm9yZSkgewogICAgICAgIHRoaXMucmVhZGVyRGF0YShyYXdGaWxlKTsKICAgICAgfQogICAgfSwKICAgIHJlYWRlckRhdGE6IGZ1bmN0aW9uIHJlYWRlckRhdGEocmF3RmlsZSkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgdmFyIGRhdGEgPSBlLnRhcmdldC5yZXN1bHQ7CiAgICAgICAgICB2YXIgd29ya2Jvb2sgPSBYTFNYLnJlYWQoZGF0YSwgewogICAgICAgICAgICB0eXBlOiAnYXJyYXknCiAgICAgICAgICB9KTsKICAgICAgICAgIHZhciBmaXJzdFNoZWV0TmFtZSA9IHdvcmtib29rLlNoZWV0TmFtZXNbMF07CiAgICAgICAgICB2YXIgd29ya3NoZWV0ID0gd29ya2Jvb2suU2hlZXRzW2ZpcnN0U2hlZXROYW1lXTsKICAgICAgICAgIHZhciBoZWFkZXIgPSBfdGhpcy5nZXRIZWFkZXJSb3cod29ya3NoZWV0KTsKICAgICAgICAgIHZhciByZXN1bHRzID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdvcmtzaGVldCk7CiAgICAgICAgICBfdGhpcy5nZW5lcmF0ZURhdGEoewogICAgICAgICAgICBoZWFkZXI6IGhlYWRlciwKICAgICAgICAgICAgcmVzdWx0czogcmVzdWx0cwogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgfTsKICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIocmF3RmlsZSk7CiAgICAgIH0pOwogICAgfSwKICAgIGdldEhlYWRlclJvdzogZnVuY3Rpb24gZ2V0SGVhZGVyUm93KHNoZWV0KSB7CiAgICAgIHZhciBoZWFkZXJzID0gW107CiAgICAgIHZhciByYW5nZSA9IFhMU1gudXRpbHMuZGVjb2RlX3JhbmdlKHNoZWV0WychcmVmJ10pOwogICAgICB2YXIgQzsKICAgICAgdmFyIFIgPSByYW5nZS5zLnI7CiAgICAgIC8qIHN0YXJ0IGluIHRoZSBmaXJzdCByb3cgKi8KICAgICAgZm9yIChDID0gcmFuZ2Uucy5jOyBDIDw9IHJhbmdlLmUuYzsgKytDKSB7CiAgICAgICAgLyogd2FsayBldmVyeSBjb2x1bW4gaW4gdGhlIHJhbmdlICovCiAgICAgICAgdmFyIGNlbGwgPSBzaGVldFtYTFNYLnV0aWxzLmVuY29kZV9jZWxsKHsKICAgICAgICAgIGM6IEMsCiAgICAgICAgICByOiBSCiAgICAgICAgfSldOwogICAgICAgIC8qIGZpbmQgdGhlIGNlbGwgaW4gdGhlIGZpcnN0IHJvdyAqLwogICAgICAgIHZhciBoZHIgPSAnVU5LTk9XTiAnICsgQzsgLy8gPC0tIHJlcGxhY2Ugd2l0aCB5b3VyIGRlc2lyZWQgZGVmYXVsdAogICAgICAgIGlmIChjZWxsICYmIGNlbGwudCkgaGRyID0gWExTWC51dGlscy5mb3JtYXRfY2VsbChjZWxsKTsKICAgICAgICBoZWFkZXJzLnB1c2goaGRyKTsKICAgICAgfQogICAgICByZXR1cm4gaGVhZGVyczsKICAgIH0sCiAgICBpc0V4Y2VsOiBmdW5jdGlvbiBpc0V4Y2VsKGZpbGUpIHsKICAgICAgcmV0dXJuIC9cLih4bHN4fHhsc3xjc3YpJC8udGVzdChmaWxlLm5hbWUpOwogICAgfQogIH0KfTs="},{"version":3,"names":["XLSX","props","beforeUpload","Function","onSuccess","data","loading","excelData","header","results","methods","generateData","_ref","handleDrop","e","stopPropagation","preventDefault","files","dataTransfer","length","$message","error","rawFile","isExcel","upload","handleDragover","dropEffect","handleUpload","$refs","click","handleClick","target","value","readerData","before","_this","Promise","resolve","reject","reader","FileReader","onload","result","workbook","read","type","firstSheetName","SheetNames","worksheet","Sheets","getHeaderRow","utils","sheet_to_json","readAsArrayBuffer","sheet","headers","range","decode_range","C","R","s","r","c","cell","encode_cell","hdr","t","format_cell","push","file","test","name"],"sources":["src/components/UploadExcel/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"],"mappings":"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","ignoreList":[]}]} |