@@ -1,5 +1,5 @@ | |||
{ | |||
"name": "etcProject", | |||
"name": "etc-project", | |||
"version": "0.0.0", | |||
"lockfileVersion": 2, | |||
"requires": true, | |||
@@ -12,7 +12,6 @@ | |||
"axios": "^0.27.2", | |||
"babel-polyfill": "^6.26.0", | |||
"element-plus": "^2.1.7", | |||
"file-saver": "^2.0.5", | |||
"fuse.js": "^6.5.3", | |||
"js-cookie": "^3.0.1", | |||
"jsencrypt": "^3.2.1", | |||
@@ -21,8 +20,7 @@ | |||
"vue": "^3.2.2", | |||
"vue-fragment": "^1.5.2", | |||
"vue-router": "4", | |||
"vuex": "^4.0.2", | |||
"xlsx": "^0.18.5" | |||
"vuex": "^4.0.2" | |||
}, | |||
"devDependencies": { | |||
"@babel/types": "^7.16.0", | |||
@@ -673,14 +671,6 @@ | |||
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" | |||
} | |||
}, | |||
"node_modules/adler-32": { | |||
"version": "1.3.1", | |||
"resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz", | |||
"integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/ajv": { | |||
"version": "6.12.6", | |||
"resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", | |||
@@ -955,18 +945,6 @@ | |||
"integrity": "sha512-neRmrmIrCGuMnxGSoh+x7zYtQFFgnSY2jaomjU56sCkTA6JINqQrxutF459JpWcWRajvoyn95sOXq4Pqrnyjew==", | |||
"dev": true | |||
}, | |||
"node_modules/cfb": { | |||
"version": "1.2.2", | |||
"resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz", | |||
"integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", | |||
"dependencies": { | |||
"adler-32": "~1.3.0", | |||
"crc-32": "~1.2.0" | |||
}, | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/chainsaw": { | |||
"version": "0.1.0", | |||
"resolved": "https://registry.npm.taobao.org/chainsaw/download/chainsaw-0.1.0.tgz", | |||
@@ -1013,14 +991,6 @@ | |||
"fsevents": "~2.3.2" | |||
} | |||
}, | |||
"node_modules/codepage": { | |||
"version": "1.15.0", | |||
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz", | |||
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/color-convert": { | |||
"version": "2.0.1", | |||
"resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", | |||
@@ -1077,17 +1047,6 @@ | |||
"integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=", | |||
"dev": true | |||
}, | |||
"node_modules/crc-32": { | |||
"version": "1.2.2", | |||
"resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", | |||
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", | |||
"bin": { | |||
"crc32": "bin/crc32.njs" | |||
}, | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/cross-spawn": { | |||
"version": "7.0.3", | |||
"resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", | |||
@@ -1869,11 +1828,6 @@ | |||
"node": "^10.12.0 || >=12.0.0" | |||
} | |||
}, | |||
"node_modules/file-saver": { | |||
"version": "2.0.5", | |||
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", | |||
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" | |||
}, | |||
"node_modules/fill-range": { | |||
"version": "7.0.1", | |||
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", | |||
@@ -1943,14 +1897,6 @@ | |||
"node": ">= 6" | |||
} | |||
}, | |||
"node_modules/frac": { | |||
"version": "1.1.2", | |||
"resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz", | |||
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/fraction.js": { | |||
"version": "4.2.0", | |||
"resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", | |||
@@ -3070,17 +3016,6 @@ | |||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", | |||
"dev": true | |||
}, | |||
"node_modules/ssf": { | |||
"version": "0.11.2", | |||
"resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz", | |||
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", | |||
"dependencies": { | |||
"frac": "~1.1.2" | |||
}, | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/string_decoder": { | |||
"version": "1.1.1", | |||
"resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", | |||
@@ -3721,22 +3656,6 @@ | |||
"node": ">= 8" | |||
} | |||
}, | |||
"node_modules/wmf": { | |||
"version": "1.0.2", | |||
"resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", | |||
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/word": { | |||
"version": "0.3.0", | |||
"resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz", | |||
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/word-wrap": { | |||
"version": "1.2.3", | |||
"resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", | |||
@@ -3752,26 +3671,6 @@ | |||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", | |||
"dev": true | |||
}, | |||
"node_modules/xlsx": { | |||
"version": "0.18.5", | |||
"resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz", | |||
"integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", | |||
"dependencies": { | |||
"adler-32": "~1.3.0", | |||
"cfb": "~1.2.1", | |||
"codepage": "~1.15.0", | |||
"crc-32": "~1.2.1", | |||
"ssf": "~0.11.2", | |||
"wmf": "~1.0.1", | |||
"word": "~0.3.0" | |||
}, | |||
"bin": { | |||
"xlsx": "bin/xlsx.njs" | |||
}, | |||
"engines": { | |||
"node": ">=0.8" | |||
} | |||
}, | |||
"node_modules/yallist": { | |||
"version": "4.0.0", | |||
"resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", | |||
@@ -4250,11 +4149,6 @@ | |||
"dev": true, | |||
"requires": {} | |||
}, | |||
"adler-32": { | |||
"version": "1.3.1", | |||
"resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz", | |||
"integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" | |||
}, | |||
"ajv": { | |||
"version": "6.12.6", | |||
"resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", | |||
@@ -4474,15 +4368,6 @@ | |||
"integrity": "sha512-neRmrmIrCGuMnxGSoh+x7zYtQFFgnSY2jaomjU56sCkTA6JINqQrxutF459JpWcWRajvoyn95sOXq4Pqrnyjew==", | |||
"dev": true | |||
}, | |||
"cfb": { | |||
"version": "1.2.2", | |||
"resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz", | |||
"integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", | |||
"requires": { | |||
"adler-32": "~1.3.0", | |||
"crc-32": "~1.2.0" | |||
} | |||
}, | |||
"chainsaw": { | |||
"version": "0.1.0", | |||
"resolved": "https://registry.npm.taobao.org/chainsaw/download/chainsaw-0.1.0.tgz", | |||
@@ -4518,11 +4403,6 @@ | |||
"readdirp": "~3.6.0" | |||
} | |||
}, | |||
"codepage": { | |||
"version": "1.15.0", | |||
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz", | |||
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" | |||
}, | |||
"color-convert": { | |||
"version": "2.0.1", | |||
"resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", | |||
@@ -4571,11 +4451,6 @@ | |||
"integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=", | |||
"dev": true | |||
}, | |||
"crc-32": { | |||
"version": "1.2.2", | |||
"resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", | |||
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" | |||
}, | |||
"cross-spawn": { | |||
"version": "7.0.3", | |||
"resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", | |||
@@ -5128,11 +5003,6 @@ | |||
"flat-cache": "^3.0.4" | |||
} | |||
}, | |||
"file-saver": { | |||
"version": "2.0.5", | |||
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", | |||
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" | |||
}, | |||
"fill-range": { | |||
"version": "7.0.1", | |||
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", | |||
@@ -5184,11 +5054,6 @@ | |||
"mime-types": "^2.1.12" | |||
} | |||
}, | |||
"frac": { | |||
"version": "1.1.2", | |||
"resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz", | |||
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" | |||
}, | |||
"fraction.js": { | |||
"version": "4.2.0", | |||
"resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", | |||
@@ -6065,14 +5930,6 @@ | |||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", | |||
"dev": true | |||
}, | |||
"ssf": { | |||
"version": "0.11.2", | |||
"resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz", | |||
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", | |||
"requires": { | |||
"frac": "~1.1.2" | |||
} | |||
}, | |||
"string_decoder": { | |||
"version": "1.1.1", | |||
"resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", | |||
@@ -6575,16 +6432,6 @@ | |||
"isexe": "^2.0.0" | |||
} | |||
}, | |||
"wmf": { | |||
"version": "1.0.2", | |||
"resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", | |||
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" | |||
}, | |||
"word": { | |||
"version": "0.3.0", | |||
"resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz", | |||
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" | |||
}, | |||
"word-wrap": { | |||
"version": "1.2.3", | |||
"resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", | |||
@@ -6597,20 +6444,6 @@ | |||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", | |||
"dev": true | |||
}, | |||
"xlsx": { | |||
"version": "0.18.5", | |||
"resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz", | |||
"integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", | |||
"requires": { | |||
"adler-32": "~1.3.0", | |||
"cfb": "~1.2.1", | |||
"codepage": "~1.15.0", | |||
"crc-32": "~1.2.1", | |||
"ssf": "~0.11.2", | |||
"wmf": "~1.0.1", | |||
"word": "~0.3.0" | |||
} | |||
}, | |||
"yallist": { | |||
"version": "4.0.0", | |||
"resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", |
@@ -13,7 +13,6 @@ | |||
"axios": "^0.27.2", | |||
"babel-polyfill": "^6.26.0", | |||
"element-plus": "^2.1.7", | |||
"file-saver": "^2.0.5", | |||
"fuse.js": "^6.5.3", | |||
"js-cookie": "^3.0.1", | |||
"jsencrypt": "^3.2.1", | |||
@@ -22,8 +21,7 @@ | |||
"vue": "^3.2.2", | |||
"vue-fragment": "^1.5.2", | |||
"vue-router": "4", | |||
"vuex": "^4.0.2", | |||
"xlsx": "^0.18.5" | |||
"vuex": "^4.0.2" | |||
}, | |||
"devDependencies": { | |||
"@babel/types": "^7.16.0", |
@@ -1,456 +0,0 @@ | |||
/* Blob.js | |||
* A Blob, File, FileReader & URL implementation. | |||
* 2018-08-09 | |||
* | |||
* By Eli Grey, http://eligrey.com | |||
* By Jimmy Wärting, https://github.com/jimmywarting | |||
* License: MIT | |||
* See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md | |||
*/ | |||
;(function(){ | |||
var global = typeof window === 'object' | |||
? window : typeof self === 'object' | |||
? self : this | |||
var BlobBuilder = global.BlobBuilder | |||
|| global.WebKitBlobBuilder | |||
|| global.MSBlobBuilder | |||
|| global.MozBlobBuilder; | |||
global.URL = global.URL || global.webkitURL || function(href, a) { | |||
a = document.createElement('a') | |||
a.href = href | |||
return a | |||
} | |||
var origBlob = global.Blob | |||
var createObjectURL = URL.createObjectURL | |||
var revokeObjectURL = URL.revokeObjectURL | |||
var strTag = global.Symbol && global.Symbol.toStringTag | |||
var blobSupported = false | |||
var blobSupportsArrayBufferView = false | |||
var arrayBufferSupported = !!global.ArrayBuffer | |||
var blobBuilderSupported = BlobBuilder | |||
&& BlobBuilder.prototype.append | |||
&& BlobBuilder.prototype.getBlob; | |||
try { | |||
// Check if Blob constructor is supported | |||
blobSupported = new Blob(['ä']).size === 2 | |||
// Check if Blob constructor supports ArrayBufferViews | |||
// Fails in Safari 6, so we need to map to ArrayBuffers there. | |||
blobSupportsArrayBufferView = new Blob([new Uint8Array([1,2])]).size === 2 | |||
} catch(e) {} | |||
/** | |||
* Helper function that maps ArrayBufferViews to ArrayBuffers | |||
* Used by BlobBuilder constructor and old browsers that didn't | |||
* support it in the Blob constructor. | |||
*/ | |||
function mapArrayBufferViews(ary) { | |||
return ary.map(function(chunk) { | |||
if (chunk.buffer instanceof ArrayBuffer) { | |||
var buf = chunk.buffer; | |||
// if this is a subarray, make a copy so we only | |||
// include the subarray region from the underlying buffer | |||
if (chunk.byteLength !== buf.byteLength) { | |||
var copy = new Uint8Array(chunk.byteLength); | |||
copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength)); | |||
buf = copy.buffer; | |||
} | |||
return buf; | |||
} | |||
return chunk; | |||
}); | |||
} | |||
function BlobBuilderConstructor(ary, options) { | |||
options = options || {}; | |||
var bb = new BlobBuilder(); | |||
mapArrayBufferViews(ary).forEach(function(part) { | |||
bb.append(part); | |||
}); | |||
return options.type ? bb.getBlob(options.type) : bb.getBlob(); | |||
}; | |||
function BlobConstructor(ary, options) { | |||
return new origBlob(mapArrayBufferViews(ary), options || {}); | |||
}; | |||
if (global.Blob) { | |||
BlobBuilderConstructor.prototype = Blob.prototype; | |||
BlobConstructor.prototype = Blob.prototype; | |||
} | |||
function FakeBlobBuilder() { | |||
function toUTF8Array(str) { | |||
var utf8 = []; | |||
for (var i=0; i < str.length; i++) { | |||
var charcode = str.charCodeAt(i); | |||
if (charcode < 0x80) utf8.push(charcode); | |||
else if (charcode < 0x800) { | |||
utf8.push(0xc0 | (charcode >> 6), | |||
0x80 | (charcode & 0x3f)); | |||
} | |||
else if (charcode < 0xd800 || charcode >= 0xe000) { | |||
utf8.push(0xe0 | (charcode >> 12), | |||
0x80 | ((charcode>>6) & 0x3f), | |||
0x80 | (charcode & 0x3f)); | |||
} | |||
// surrogate pair | |||
else { | |||
i++; | |||
// UTF-16 encodes 0x10000-0x10FFFF by | |||
// subtracting 0x10000 and splitting the | |||
// 20 bits of 0x0-0xFFFFF into two halves | |||
charcode = 0x10000 + (((charcode & 0x3ff)<<10) | |||
| (str.charCodeAt(i) & 0x3ff)); | |||
utf8.push(0xf0 | (charcode >>18), | |||
0x80 | ((charcode>>12) & 0x3f), | |||
0x80 | ((charcode>>6) & 0x3f), | |||
0x80 | (charcode & 0x3f)); | |||
} | |||
} | |||
return utf8; | |||
} | |||
function fromUtf8Array(array) { | |||
var out, i, len, c; | |||
var char2, char3; | |||
out = ""; | |||
len = array.length; | |||
i = 0; | |||
while (i < len) { | |||
c = array[i++]; | |||
switch (c >> 4) | |||
{ | |||
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: | |||
// 0xxxxxxx | |||
out += String.fromCharCode(c); | |||
break; | |||
case 12: case 13: | |||
// 110x xxxx 10xx xxxx | |||
char2 = array[i++]; | |||
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); | |||
break; | |||
case 14: | |||
// 1110 xxxx 10xx xxxx 10xx xxxx | |||
char2 = array[i++]; | |||
char3 = array[i++]; | |||
out += String.fromCharCode(((c & 0x0F) << 12) | | |||
((char2 & 0x3F) << 6) | | |||
((char3 & 0x3F) << 0)); | |||
break; | |||
} | |||
} | |||
return out; | |||
} | |||
function isDataView(obj) { | |||
return obj && DataView.prototype.isPrototypeOf(obj) | |||
} | |||
function bufferClone(buf) { | |||
var view = new Array(buf.byteLength) | |||
var array = new Uint8Array(buf) | |||
var i = view.length | |||
while(i--) { | |||
view[i] = array[i] | |||
} | |||
return view | |||
} | |||
function encodeByteArray(input) { | |||
var byteToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' | |||
var output = []; | |||
for (var i = 0; i < input.length; i += 3) { | |||
var byte1 = input[i]; | |||
var haveByte2 = i + 1 < input.length; | |||
var byte2 = haveByte2 ? input[i + 1] : 0; | |||
var haveByte3 = i + 2 < input.length; | |||
var byte3 = haveByte3 ? input[i + 2] : 0; | |||
var outByte1 = byte1 >> 2; | |||
var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4); | |||
var outByte3 = ((byte2 & 0x0F) << 2) | (byte3 >> 6); | |||
var outByte4 = byte3 & 0x3F; | |||
if (!haveByte3) { | |||
outByte4 = 64; | |||
if (!haveByte2) { | |||
outByte3 = 64; | |||
} | |||
} | |||
output.push( | |||
byteToCharMap[outByte1], byteToCharMap[outByte2], | |||
byteToCharMap[outByte3], byteToCharMap[outByte4]) | |||
} | |||
return output.join('') | |||
} | |||
var create = Object.create || function (a) { | |||
function c() {} | |||
c.prototype = a; | |||
return new c | |||
} | |||
if (arrayBufferSupported) { | |||
var viewClasses = [ | |||
'[object Int8Array]', | |||
'[object Uint8Array]', | |||
'[object Uint8ClampedArray]', | |||
'[object Int16Array]', | |||
'[object Uint16Array]', | |||
'[object Int32Array]', | |||
'[object Uint32Array]', | |||
'[object Float32Array]', | |||
'[object Float64Array]' | |||
] | |||
var isArrayBufferView = ArrayBuffer.isView || function(obj) { | |||
return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 | |||
} | |||
} | |||
/********************************************************/ | |||
/* Blob constructor */ | |||
/********************************************************/ | |||
function Blob(chunks, opts) { | |||
chunks = chunks || [] | |||
for (var i = 0, len = chunks.length; i < len; i++) { | |||
var chunk = chunks[i] | |||
if (chunk instanceof Blob) { | |||
chunks[i] = chunk._buffer | |||
} else if (typeof chunk === 'string') { | |||
chunks[i] = toUTF8Array(chunk) | |||
} else if (arrayBufferSupported && (ArrayBuffer.prototype.isPrototypeOf(chunk) || isArrayBufferView(chunk))) { | |||
chunks[i] = bufferClone(chunk) | |||
} else if (arrayBufferSupported && isDataView(chunk)) { | |||
chunks[i] = bufferClone(chunk.buffer) | |||
} else { | |||
chunks[i] = toUTF8Array(String(chunk)) | |||
} | |||
} | |||
this._buffer = [].concat.apply([], chunks) | |||
this.size = this._buffer.length | |||
this.type = opts ? opts.type || '' : '' | |||
} | |||
Blob.prototype.slice = function(start, end, type) { | |||
var slice = this._buffer.slice(start || 0, end || this._buffer.length) | |||
return new Blob([slice], {type: type}) | |||
} | |||
Blob.prototype.toString = function() { | |||
return '[object Blob]' | |||
} | |||
/********************************************************/ | |||
/* File constructor */ | |||
/********************************************************/ | |||
function File(chunks, name, opts) { | |||
opts = opts || {} | |||
var a = Blob.call(this, chunks, opts) || this | |||
a.name = name | |||
a.lastModifiedDate = opts.lastModified ? new Date(opts.lastModified) : new Date | |||
a.lastModified = +a.lastModifiedDate | |||
return a | |||
} | |||
File.prototype = create(Blob.prototype); | |||
File.prototype.constructor = File; | |||
if (Object.setPrototypeOf) | |||
Object.setPrototypeOf(File, Blob); | |||
else { | |||
try {File.__proto__ = Blob} catch (e) {} | |||
} | |||
File.prototype.toString = function() { | |||
return '[object File]' | |||
} | |||
/********************************************************/ | |||
/* FileReader constructor */ | |||
/********************************************************/ | |||
function FileReader() { | |||
if (!(this instanceof FileReader)) | |||
throw new TypeError("Failed to construct 'FileReader': Please use the 'new' operator, this DOM object constructor cannot be called as a function.") | |||
var delegate = document.createDocumentFragment() | |||
this.addEventListener = delegate.addEventListener | |||
this.dispatchEvent = function(evt) { | |||
var local = this['on' + evt.type] | |||
if (typeof local === 'function') local(evt) | |||
delegate.dispatchEvent(evt) | |||
} | |||
this.removeEventListener = delegate.removeEventListener | |||
} | |||
function _read(fr, blob, kind) { | |||
if (!(blob instanceof Blob)) | |||
throw new TypeError("Failed to execute '" + kind + "' on 'FileReader': parameter 1 is not of type 'Blob'.") | |||
fr.result = '' | |||
setTimeout(function(){ | |||
this.readyState = FileReader.LOADING | |||
fr.dispatchEvent(new Event('load')) | |||
fr.dispatchEvent(new Event('loadend')) | |||
}) | |||
} | |||
FileReader.EMPTY = 0 | |||
FileReader.LOADING = 1 | |||
FileReader.DONE = 2 | |||
FileReader.prototype.error = null | |||
FileReader.prototype.onabort = null | |||
FileReader.prototype.onerror = null | |||
FileReader.prototype.onload = null | |||
FileReader.prototype.onloadend = null | |||
FileReader.prototype.onloadstart = null | |||
FileReader.prototype.onprogress = null | |||
FileReader.prototype.readAsDataURL = function(blob) { | |||
_read(this, blob, 'readAsDataURL') | |||
this.result = 'data:' + blob.type + ';base64,' + encodeByteArray(blob._buffer) | |||
} | |||
FileReader.prototype.readAsText = function(blob) { | |||
_read(this, blob, 'readAsText') | |||
this.result = fromUtf8Array(blob._buffer) | |||
} | |||
FileReader.prototype.readAsArrayBuffer = function(blob) { | |||
_read(this, blob, 'readAsText') | |||
this.result = blob._buffer.slice() | |||
} | |||
FileReader.prototype.abort = function() {} | |||
/********************************************************/ | |||
/* URL */ | |||
/********************************************************/ | |||
URL.createObjectURL = function(blob) { | |||
return blob instanceof Blob | |||
? 'data:' + blob.type + ';base64,' + encodeByteArray(blob._buffer) | |||
: createObjectURL.call(URL, blob) | |||
} | |||
URL.revokeObjectURL = function(url) { | |||
revokeObjectURL && revokeObjectURL.call(URL, url) | |||
} | |||
/********************************************************/ | |||
/* XHR */ | |||
/********************************************************/ | |||
var _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send | |||
if (_send) { | |||
XMLHttpRequest.prototype.send = function(data) { | |||
if (data instanceof Blob) { | |||
this.setRequestHeader('Content-Type', data.type) | |||
_send.call(this, fromUtf8Array(data._buffer)) | |||
} else { | |||
_send.call(this, data) | |||
} | |||
} | |||
} | |||
global.FileReader = FileReader | |||
global.File = File | |||
global.Blob = Blob | |||
} | |||
if (strTag) { | |||
File.prototype[strTag] = 'File' | |||
Blob.prototype[strTag] = 'Blob' | |||
FileReader.prototype[strTag] = 'FileReader' | |||
} | |||
function fixFileAndXHR() { | |||
var isIE = !!global.ActiveXObject || ( | |||
'-ms-scroll-limit' in document.documentElement.style && | |||
'-ms-ime-align' in document.documentElement.style | |||
) | |||
// Monkey patched | |||
// IE don't set Content-Type header on XHR whose body is a typed Blob | |||
// https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6047383 | |||
var _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send | |||
if (isIE && _send) { | |||
XMLHttpRequest.prototype.send = function(data) { | |||
if (data instanceof Blob) { | |||
this.setRequestHeader('Content-Type', data.type) | |||
_send.call(this, data) | |||
} else { | |||
_send.call(this, data) | |||
} | |||
} | |||
} | |||
try { | |||
new File([], '') | |||
} catch(e) { | |||
try { | |||
var klass = new Function('class File extends Blob {' + | |||
'constructor(chunks, name, opts) {' + | |||
'opts = opts || {};' + | |||
'super(chunks, opts || {});' + | |||
'this.name = name;' + | |||
'this.lastModifiedDate = opts.lastModified ? new Date(opts.lastModified) : new Date;' + | |||
'this.lastModified = +this.lastModifiedDate;' + | |||
'}};' + | |||
'return new File([], ""), File' | |||
)() | |||
global.File = klass | |||
} catch(e) { | |||
var klass = function(b, d, c) { | |||
var blob = new Blob(b, c) | |||
var t = c && void 0 !== c.lastModified ? new Date(c.lastModified) : new Date | |||
blob.name = d | |||
blob.lastModifiedDate = t | |||
blob.lastModified = +t | |||
blob.toString = function() { | |||
return '[object File]' | |||
} | |||
if (strTag) | |||
blob[strTag] = 'File' | |||
return blob | |||
} | |||
global.File = klass | |||
} | |||
} | |||
} | |||
if (blobSupported) { | |||
fixFileAndXHR() | |||
global.Blob = blobSupportsArrayBufferView ? global.Blob : BlobConstructor | |||
} else if (blobBuilderSupported) { | |||
fixFileAndXHR() | |||
global.Blob = BlobBuilderConstructor; | |||
} else { | |||
FakeBlobBuilder() | |||
} | |||
})(); |
@@ -1,141 +0,0 @@ | |||
/* eslint-disable */ | |||
require('script-loader!file-saver'); | |||
require('script-loader!@/excel/Blob'); | |||
require('script-loader!xlsx/dist/xlsx.core.min'); | |||
function generateArray(table) { | |||
var out = []; | |||
var rows = table.querySelectorAll('tr'); | |||
var ranges = []; | |||
for (var R = 0; R < rows.length; ++R) { | |||
var outRow = []; | |||
var row = rows[R]; | |||
var columns = row.querySelectorAll('td'); | |||
for (var C = 0; C < columns.length; ++C) { | |||
var cell = columns[C]; | |||
var colspan = cell.getAttribute('colspan'); | |||
var rowspan = cell.getAttribute('rowspan'); | |||
var cellValue = cell.innerText; | |||
if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue; | |||
//Skip ranges | |||
ranges.forEach(function (range) { | |||
if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) { | |||
for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null); | |||
} | |||
}); | |||
//Handle Row Span | |||
if (rowspan || colspan) { | |||
rowspan = rowspan || 1; | |||
colspan = colspan || 1; | |||
ranges.push({s: {r: R, c: outRow.length}, e: {r: R + rowspan - 1, c: outRow.length + colspan - 1}}); | |||
} | |||
; | |||
//Handle Value | |||
outRow.push(cellValue !== "" ? cellValue : null); | |||
//Handle Colspan | |||
if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null); | |||
} | |||
out.push(outRow); | |||
} | |||
return [out, ranges]; | |||
}; | |||
function datenum(v, date1904) { | |||
if (date1904) v += 1462; | |||
var epoch = Date.parse(v); | |||
return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); | |||
} | |||
function sheet_from_array_of_arrays(data, opts) { | |||
var ws = {}; | |||
var range = {s: {c: 10000000, r: 10000000}, e: {c: 0, r: 0}}; | |||
for (var R = 0; R != data.length; ++R) { | |||
for (var C = 0; C != data[R].length; ++C) { | |||
if (range.s.r > R) range.s.r = R; | |||
if (range.s.c > C) range.s.c = C; | |||
if (range.e.r < R) range.e.r = R; | |||
if (range.e.c < C) range.e.c = C; | |||
var cell = {v: data[R][C]}; | |||
if (cell.v == null) continue; | |||
var cell_ref = XLSX.utils.encode_cell({c: C, r: R}); | |||
if (typeof cell.v === 'number') cell.t = 'n'; | |||
else if (typeof cell.v === 'boolean') cell.t = 'b'; | |||
else if (cell.v instanceof Date) { | |||
cell.t = 'n'; | |||
cell.z = XLSX.SSF._table[14]; | |||
cell.v = datenum(cell.v); | |||
} | |||
else cell.t = 's'; | |||
ws[cell_ref] = cell; | |||
} | |||
} | |||
if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range); | |||
return ws; | |||
} | |||
function Workbook() { | |||
if (!(this instanceof Workbook)) return new Workbook(); | |||
this.SheetNames = []; | |||
this.Sheets = {}; | |||
} | |||
function s2ab(s) { | |||
var buf = new ArrayBuffer(s.length); | |||
var view = new Uint8Array(buf); | |||
for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; | |||
return buf; | |||
} | |||
export function export_table_to_excel(id) { | |||
var theTable = document.getElementById(id); | |||
console.log('a') | |||
var oo = generateArray(theTable); | |||
var ranges = oo[1]; | |||
/* original data */ | |||
var data = oo[0]; | |||
var ws_name = "SheetJS"; | |||
console.log(data); | |||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data); | |||
/* add ranges to worksheet */ | |||
// ws['!cols'] = ['apple', 'banan']; | |||
ws['!merges'] = ranges; | |||
/* add worksheet to workbook */ | |||
wb.SheetNames.push(ws_name); | |||
wb.Sheets[ws_name] = ws; | |||
var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'}); | |||
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), "test.xlsx") | |||
} | |||
function formatJson(jsonData) { | |||
console.log(jsonData) | |||
} | |||
export function export_json_to_excel(th, jsonData, defaultTitle) { | |||
/* original data */ | |||
var data = jsonData; | |||
data.unshift(th); | |||
var ws_name = "SheetJS"; | |||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data); | |||
/* add worksheet to workbook */ | |||
wb.SheetNames.push(ws_name); | |||
wb.Sheets[ws_name] = ws; | |||
var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'}); | |||
var title = defaultTitle || '列表' | |||
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), title + ".xlsx") | |||
} |
@@ -366,11 +366,6 @@ | |||
"resolved" "https://registry.npmmirror.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz" | |||
"version" "7.4.1" | |||
"adler-32@~1.3.0": | |||
"integrity" "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" | |||
"resolved" "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz" | |||
"version" "1.3.1" | |||
"ajv@^6.10.0", "ajv@^6.12.4": | |||
"integrity" "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=" | |||
"resolved" "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz" | |||
@@ -571,14 +566,6 @@ | |||
"resolved" "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001322.tgz" | |||
"version" "1.0.30001322" | |||
"cfb@~1.2.1": | |||
"integrity" "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==" | |||
"resolved" "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz" | |||
"version" "1.2.2" | |||
dependencies: | |||
"adler-32" "~1.3.0" | |||
"crc-32" "~1.2.0" | |||
"chainsaw@~0.1.0": | |||
"integrity" "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=" | |||
"resolved" "https://registry.npm.taobao.org/chainsaw/download/chainsaw-0.1.0.tgz" | |||
@@ -618,11 +605,6 @@ | |||
optionalDependencies: | |||
"fsevents" "~2.3.2" | |||
"codepage@~1.15.0": | |||
"integrity" "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" | |||
"resolved" "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz" | |||
"version" "1.15.0" | |||
"color-convert@^1.9.0": | |||
"integrity" "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=" | |||
"resolved" "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz" | |||
@@ -676,11 +658,6 @@ | |||
"resolved" "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.3.tgz" | |||
"version" "1.0.3" | |||
"crc-32@~1.2.0", "crc-32@~1.2.1": | |||
"integrity" "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" | |||
"resolved" "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz" | |||
"version" "1.2.2" | |||
"cross-spawn@^7.0.2": | |||
"integrity" "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=" | |||
"resolved" "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz" | |||
@@ -1120,11 +1097,6 @@ | |||
dependencies: | |||
"flat-cache" "^3.0.4" | |||
"file-saver@^2.0.5": | |||
"integrity" "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" | |||
"resolved" "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz" | |||
"version" "2.0.5" | |||
"fill-range@^7.0.1": | |||
"integrity" "sha1-GRmmp8df44ssfHflGYU12prN2kA=" | |||
"resolved" "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz" | |||
@@ -1159,11 +1131,6 @@ | |||
"combined-stream" "^1.0.8" | |||
"mime-types" "^2.1.12" | |||
"frac@~1.1.2": | |||
"integrity" "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" | |||
"resolved" "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz" | |||
"version" "1.1.2" | |||
"fraction.js@^4.2.0": | |||
"integrity" "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" | |||
"resolved" "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz" | |||
@@ -1944,13 +1911,6 @@ | |||
"resolved" "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz" | |||
"version" "1.0.3" | |||
"ssf@~0.11.2": | |||
"integrity" "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==" | |||
"resolved" "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz" | |||
"version" "0.11.2" | |||
dependencies: | |||
"frac" "~1.1.2" | |||
"string_decoder@~1.1.1": | |||
"integrity" "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=" | |||
"resolved" "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz" | |||
@@ -2207,39 +2167,16 @@ | |||
dependencies: | |||
"isexe" "^2.0.0" | |||
"wmf@~1.0.1": | |||
"integrity" "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" | |||
"resolved" "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz" | |||
"version" "1.0.2" | |||
"word-wrap@^1.2.3": | |||
"integrity" "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=" | |||
"resolved" "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz" | |||
"version" "1.2.3" | |||
"word@~0.3.0": | |||
"integrity" "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" | |||
"resolved" "https://registry.npmmirror.com/word/-/word-0.3.0.tgz" | |||
"version" "0.3.0" | |||
"wrappy@1": | |||
"integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | |||
"resolved" "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz" | |||
"version" "1.0.2" | |||
"xlsx@^0.18.5": | |||
"integrity" "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==" | |||
"resolved" "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz" | |||
"version" "0.18.5" | |||
dependencies: | |||
"adler-32" "~1.3.0" | |||
"cfb" "~1.2.1" | |||
"codepage" "~1.15.0" | |||
"crc-32" "~1.2.1" | |||
"ssf" "~0.11.2" | |||
"wmf" "~1.0.1" | |||
"word" "~0.3.0" | |||
"yallist@^4.0.0": | |||
"integrity" "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" | |||
"resolved" "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz" |