diff --git a/dist/index.common.js b/dist/index.common.js index 75bc8f2..cf372a5 100644 --- a/dist/index.common.js +++ b/dist/index.common.js @@ -137,11 +137,12 @@ function checkImportData(columns, fields, rows) { }); } -function importXLSX(params, evnt) { +function importXLSX(params) { var $table = params.$table, - columns = params.columns; - var importCallback = $table.importCallback; - var file = evnt.target.files[0]; + columns = params.columns, + options = params.options, + file = params.file; + var _importCallback = $table._importCallback; var fileReader = new FileReader(); fileReader.onload = function (e) { @@ -156,22 +157,26 @@ function importXLSX(params, evnt) { if (status) { $table.createData(rows).then(function (data) { - return $table.reloadData(data); + if (options.mode === 'append') { + $table.insertAt(data, -1); + } else { + $table.reloadData(data); + } }); } - if (importCallback) { - importCallback(status); + if (_importCallback) { + _importCallback(status); } }; fileReader.readAsBinaryString(file); } -function handleImportEvent(params, evnt) { +function handleImportEvent(params) { switch (params.options.type) { case 'xlsx': - importXLSX(params, evnt); + importXLSX(params); return false; } } @@ -207,4 +212,4 @@ if (typeof window !== 'undefined' && window.VXETable) { var _default = VXETablePluginExport; exports["default"] = _default; -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbInRvQnVmZmVyIiwid2JvdXQiLCJidWYiLCJBcnJheUJ1ZmZlciIsImxlbmd0aCIsInZpZXciLCJVaW50OEFycmF5IiwiaW5kZXgiLCJjaGFyQ29kZUF0IiwiZXhwb3J0WExTWCIsInBhcmFtcyIsIm9wdGlvbnMiLCJjb2x1bW5zIiwiZGF0YXMiLCJzaGVldE5hbWUiLCJ0eXBlIiwiaXNIZWFkZXIiLCJvcmlnaW5hbCIsImNvbEhlYWQiLCJmb3JFYWNoIiwiY29sdW1uIiwiaWQiLCJwcm9wZXJ0eSIsImdldFRpdGxlIiwicm93TGlzdCIsIm1hcCIsInJvdyIsIml0ZW0iLCJYRVV0aWxzIiwiZ2V0IiwiYm9vayIsIlhMU1giLCJ1dGlscyIsImJvb2tfbmV3Iiwic2hlZXQiLCJqc29uX3RvX3NoZWV0IiwiY29uY2F0Iiwic2tpcEhlYWRlciIsImJvb2tfYXBwZW5kX3NoZWV0Iiwid3JpdGUiLCJib29rVHlwZSIsImJvb2tTU1QiLCJibG9iIiwiQmxvYiIsImRvd25sb2FkIiwid2luZG93IiwiZmlsZW5hbWUiLCJuYXZpZ2F0b3IiLCJtc1NhdmVCbG9iIiwibGlua0VsZW0iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJ0YXJnZXQiLCJocmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsImNvbnNvbGUiLCJlcnJvciIsInJlcGxhY2VEb3VibGVRdW90YXRpb24iLCJ2YWwiLCJyZXBsYWNlIiwicGFyc2VDc3YiLCJjb250ZW50IiwibGlzdCIsInNwbGl0IiwiZmllbGRzIiwicm93cyIsInJMaXN0Iiwic2xpY2UiLCJmaWVsZCIsInB1c2giLCJyIiwiY29sSW5kZXgiLCJjaGVja0ltcG9ydERhdGEiLCJ0YWJsZUZpZWxkcyIsImV2ZXJ5IiwiaW5jbHVkZXMiLCJpbXBvcnRYTFNYIiwiZXZudCIsIiR0YWJsZSIsImltcG9ydENhbGxiYWNrIiwiZmlsZSIsImZpbGVzIiwiZmlsZVJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJlIiwid29ya2Jvb2siLCJyZWFkIiwicmVzdWx0IiwiY3N2RGF0YSIsInNoZWV0X3RvX2NzdiIsIlNoZWV0cyIsIlNoZWV0MSIsInJlc3QiLCJzdGF0dXMiLCJjcmVhdGVEYXRhIiwidGhlbiIsImRhdGEiLCJyZWxvYWREYXRhIiwicmVhZEFzQmluYXJ5U3RyaW5nIiwiaGFuZGxlSW1wb3J0RXZlbnQiLCJoYW5kbGVFeHBvcnRFdmVudCIsIlZYRVRhYmxlUGx1Z2luRXhwb3J0IiwiaW5zdGFsbCIsInh0YWJsZSIsIk9iamVjdCIsImFzc2lnbiIsInR5cGVzIiwieGxzeCIsImludGVyY2VwdG9yIiwibWl4aW4iLCJWWEVUYWJsZSIsInVzZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOzs7Ozs7OztBQUVBLFNBQVNBLFFBQVQsQ0FBa0JDLEtBQWxCLEVBQTRCO0FBQzFCLE1BQUlDLEdBQUcsR0FBRyxJQUFJQyxXQUFKLENBQWdCRixLQUFLLENBQUNHLE1BQXRCLENBQVY7QUFDQSxNQUFJQyxJQUFJLEdBQUcsSUFBSUMsVUFBSixDQUFlSixHQUFmLENBQVg7O0FBQ0EsT0FBSyxJQUFJSyxLQUFLLEdBQUcsQ0FBakIsRUFBb0JBLEtBQUssS0FBS04sS0FBSyxDQUFDRyxNQUFwQyxFQUE0QyxFQUFFRyxLQUE5QztBQUFxREYsSUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUosR0FBY04sS0FBSyxDQUFDTyxVQUFOLENBQWlCRCxLQUFqQixJQUEwQixJQUF4QztBQUFyRDs7QUFDQSxTQUFPTCxHQUFQO0FBQ0Q7O0FBRUQsU0FBU08sVUFBVCxDQUFvQkMsTUFBcEIsRUFBK0I7QUFBQSxNQUNyQkMsT0FEcUIsR0FDT0QsTUFEUCxDQUNyQkMsT0FEcUI7QUFBQSxNQUNaQyxPQURZLEdBQ09GLE1BRFAsQ0FDWkUsT0FEWTtBQUFBLE1BQ0hDLEtBREcsR0FDT0gsTUFEUCxDQUNIRyxLQURHO0FBQUEsTUFFckJDLFNB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LElBQTlCO0FBQ0Q7O0FBRUQsU0FBU29CLGlCQUFULENBQTJCL0YsTUFBM0IsRUFBd0N3RSxJQUF4QyxFQUFpRDtBQUMvQyxVQUFReEUsTUFBTSxDQUFDQyxPQUFQLENBQWVJLElBQXZCO0FBQ0UsU0FBSyxNQUFMO0FBQ0VrRSxNQUFBQSxVQUFVLENBQUN2RSxNQUFELEVBQVN3RSxJQUFULENBQVY7QUFDQSxhQUFPLEtBQVA7QUFISjtBQUtEOztBQUVELFNBQVN3QixpQkFBVCxDQUEyQmhHLE1BQTNCLEVBQXNDO0FBQ3BDLFVBQVFBLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlSSxJQUF2QjtBQUNFLFNBQUssTUFBTDtBQUNFTixNQUFBQSxVQUFVLENBQUNDLE1BQUQsQ0FBVjtBQUNBLGFBQU8sS0FBUDtBQUhKO0FBS0Q7QUFFRDs7Ozs7QUFHTyxJQUFNaUcsb0JBQW9CLEdBQUc7QUFDbENDLEVBQUFBLE9BRGtDLG1CQUMxQkMsTUFEMEIsRUFDSDtBQUM3QkMsSUFBQUEsTUFBTSxDQUFDQyxNQUFQLENBQWNGLE1BQU0sQ0FBQ0csS0FBckIsRUFBNEI7QUFBRUMsTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FBNUI7QUFDQUosSUFBQUEsTUFBTSxDQUFDSyxXQUFQLENBQW1CQyxLQUFuQixDQUF5QjtBQUN2QixzQkFBZ0JWLGlCQURPO0FBRXZCLHNCQUFnQkM7QUFGTyxLQUF6QjtBQUlEO0FBUGlDLENBQTdCOzs7QUFVUCxJQUFJLE9BQU83RCxNQUFQLEtBQWtCLFdBQWxCLElBQWlDQSxNQUFNLENBQUN1RSxRQUE1QyxFQUFzRDtBQUNwRHZFLEVBQUFBLE1BQU0sQ0FBQ3VFLFFBQVAsQ0FBZ0JDLEdBQWhCLENBQW9CVixvQkFBcEI7QUFDRDs7ZUFFY0Esb0IiLCJmaWxlIjoiaW5kZXguY29tbW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFhFVXRpbHMgZnJvbSAneGUtdXRpbHMvbWV0aG9kcy94ZS11dGlscydcclxuaW1wb3J0IFZYRVRhYmxlIGZyb20gJ3Z4ZS10YWJsZS9saWIvdnhlLXRhYmxlJ1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnXHJcblxyXG5mdW5jdGlvbiB0b0J1ZmZlcih3Ym91dDogYW55KSB7XHJcbiAgbGV0IGJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcih3Ym91dC5sZW5ndGgpXHJcbiAgbGV0IHZpZXcgPSBuZXcgVWludDhBcnJheShidWYpXHJcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCAhPT0gd2JvdXQubGVuZ3RoOyArK2luZGV4KSB2aWV3W2luZGV4XSA9IHdib3V0LmNoYXJDb2RlQXQoaW5kZXgpICYgMHhGRlxyXG4gIHJldHVybiBidWZcclxufVxyXG5cclxuZnVuY3Rpb24gZXhwb3J0WExTWChwYXJhbXM6IGFueSkge1xyXG4gIGNvbnN0IHsgb3B0aW9ucywgY29sdW1ucywgZGF0YXMgfSA9IHBhcmFtc1xyXG4gIGNvbnN0IHsgc2hlZXROYW1lLCB0eXBlLCBpc0hlYWRlciwgb3JpZ2luYWwgfSA9IG9wdGlvbnNcclxuICBjb25zdCBjb2xIZWFkOiBhbnkgPSB7fVxyXG4gIGlmIChpc0hlYWRlcikge1xyXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IGFueSkgPT4ge1xyXG4gICAgICBjb2xIZWFkW2NvbHVtbi5pZF0gPSBvcmlnaW5hbCA/IGNvbHVtbi5wcm9wZXJ0eSA6IGNvbHVtbi5nZXRUaXRsZSgpXHJcbiAgICB9KVxyXG4gIH1cclxuICBjb25zdCByb3dMaXN0ID0gZGF0YXMubWFwKChyb3c6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgaXRlbTogYW55ID0ge31cclxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBhbnkpID0+IHtcclxuICAgICAgaXRlbVtjb2x1bW4uaWRdID0gb3JpZ2luYWwgPyBYRVV0aWxzLmdldChyb3csIGNvbHVtbi5wcm9wZXJ0eSkgOiByb3dbY29sdW1uLmlkXVxyXG4gICAgfSlcclxuICAgIHJldHVybiBpdGVtXHJcbiAgfSlcclxuICBjb25zdCBib29rID0gWExTWC51dGlscy5ib29rX25ldygpXHJcbiAgY29uc3Qgc2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoKGlzSGVhZGVyID8gW2NvbEhlYWRdIDogW10pLmNvbmNhdChyb3dMaXN0KSwgeyBza2lwSGVhZGVyOiB0cnVlIH0pXHJcbiAgLy8g6L2s5o2i5pWw5o2uXHJcbiAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldChib29rLCBzaGVldCwgc2hlZXROYW1lKVxyXG4gIGNvbnN0IHdib3V0ID0gWExTWC53cml0ZShib29rLCB7IGJvb2tUeXBlOiB0eXBlLCBib29rU1NUOiBmYWxzZSwgdHlwZTogJ2JpbmFyeScgfSlcclxuICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3RvQnVmZmVyKHdib3V0KV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfSlcclxuICAvLyDkv53lrZjlr7zlh7pcclxuICBkb3dubG9hZChibG9iLCBvcHRpb25zKVxyXG59XHJcblxyXG5mdW5jdGlvbiBkb3dubG9hZChibG9iOiBCbG9iLCBvcHRpb25zOiBhbnkpIHtcclxuICBpZiAod2luZG93LkJsb2IpIHtcclxuICAgIGNvbnN0IHsgZmlsZW5hbWUsIHR5cGUgfSA9IG9wdGlvbnNcclxuICAgIGlmIChuYXZpZ2F0b3IubXNTYXZlQmxvYikge1xyXG4gICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLCBmaWxlbmFtZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBsaW5rRWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rRWxlbS50YXJnZXQgPSAnX2JsYW5rJ1xyXG4gICAgICBsaW5rRWxlbS5kb3dubG9hZCA9IGAke2ZpbGVuYW1lfS4ke3R5cGV9YFxyXG4gICAgICBsaW5rRWxlbS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmtFbGVtKVxyXG4gICAgICBsaW5rRWxlbS5jbGljaygpXHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGlua0VsZW0pXHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoJ1t2eGUtdGFibGUtcGx1Z2luLWV4cG9ydF0gVGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCBleHBvcnRzLicpXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByZXBsYWNlRG91YmxlUXVvdGF0aW9uKHZhbDogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIHZhbC5yZXBsYWNlKC9eXCIvLCAnJykucmVwbGFjZSgvXCIkLywgJycpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlQ3N2KGNvbHVtbnM6IGFueVtdLCBjb250ZW50OiBzdHJpbmcpIHtcclxuICBjb25zdCBsaXN0OiBzdHJpbmdbXSA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpXHJcbiAgY29uc3QgZmllbGRzOiBhbnlbXSA9IFtdXHJcbiAgY29uc3Qgcm93czogYW55W10gPSBbXVxyXG4gIGlmIChsaXN0Lmxlbmd0aCkge1xyXG4gICAgY29uc3Qgckxpc3Q6IHN0cmluZ1tdID0gbGlzdC5zbGljZSgxKVxyXG4gICAgbGlzdFswXS5zcGxpdCgnLCcpLmZvckVhY2goKHZhbDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkOiBzdHJpbmcgPSByZXBsYWNlRG91YmxlUXVvdGF0aW9uKHZhbClcclxuICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgZmllbGRzLnB1c2goZmllbGQpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByTGlzdC5mb3JFYWNoKChyOiBzdHJpbmcpID0+IHtcclxuICAgICAgaWYgKHIpIHtcclxuICAgICAgICBjb25zdCBpdGVtOiBhbnkgPSB7fVxyXG4gICAgICAgIHIuc3BsaXQoJywnKS5mb3JFYWNoKCh2YWw6IHN0cmluZywgY29sSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgaXRlbVtmaWVsZHNbY29sSW5kZXhdXSA9IHJlcGxhY2VEb3VibGVRdW90YXRpb24odmFsKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcm93cy5wdXNoKGl0ZW0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHJldHVybiB7IGZpZWxkcywgcm93cyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoZWNrSW1wb3J0RGF0YShjb2x1bW5zOiBhbnlbXSwgZmllbGRzOiBzdHJpbmdbXSwgcm93czogYW55W10pIHtcclxuICBsZXQgdGFibGVGaWVsZHM6IHN0cmluZ1tdID0gW11cclxuICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbjogYW55KSA9PiB7XHJcbiAgICBsZXQgZmllbGQ6IHN0cmluZyA9IGNvbHVtbi5wcm9wZXJ0eVxyXG4gICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgIHRhYmxlRmllbGRzLnB1c2goZmllbGQpXHJcbiAgICB9XHJcbiAgfSlcclxuICByZXR1cm4gdGFibGVGaWVsZHMuZXZlcnkoKGZpZWxkOiBzdHJpbmcpID0+IGZpZWxkcy5pbmNsdWRlcyhmaWVsZCkpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGltcG9ydFhMU1gocGFyYW1zOiBhbnksIGV2bnQ6IGFueSkge1xyXG4gIGNvbnN0IHsgJHRhYmxlLCBjb2x1bW5zIH0gPSBwYXJhbXNcclxuICBjb25zdCB7IGltcG9ydENhbGxiYWNrIH0gPSAkdGFibGVcclxuICBjb25zdCBmaWxlID0gZXZudC50YXJnZXQuZmlsZXNbMF1cclxuICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxyXG4gIGZpbGVSZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnJlYWQoZS50YXJnZXQucmVzdWx0LCB7IHR5cGU6ICdiaW5hcnknIH0pXHJcbiAgICBjb25zdCBjc3ZEYXRhOiBzdHJpbmcgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2Nzdih3b3JrYm9vay5TaGVldHMuU2hlZXQxKVxyXG4gICAgY29uc3QgcmVzdDogYW55ID0gcGFyc2VDc3YoY29sdW1ucywgY3N2RGF0YSlcclxuICAgIGNvbnN0IHsgZmllbGRzLCByb3dzIH0gPSByZXN0XHJcbiAgICBjb25zdCBzdGF0dXMgPSBjaGVja0ltcG9ydERhdGEoY29sdW1ucywgZmllbGRzLCByb3dzKVxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICAkdGFibGUuY3JlYXRlRGF0YShyb3dzKVxyXG4gICAgICAgIC50aGVuKChkYXRhOiBhbnlbXSkgPT4gJHRhYmxlLnJlbG9hZERhdGEoZGF0YSkpXHJcbiAgICB9XHJcbiAgICBpZiAoaW1wb3J0Q2FsbGJhY2spIHtcclxuICAgICAgaW1wb3J0Q2FsbGJhY2soc3RhdHVzKVxyXG4gICAgfVxyXG4gIH1cclxuICBmaWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKVxyXG59XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVJbXBvcnRFdmVudChwYXJhbXM6IGFueSwgZXZudDogYW55KSB7XHJcbiAgc3dpdGNoIChwYXJhbXMub3B0aW9ucy50eXBlKSB7XHJcbiAgICBjYXNlICd4bHN4JzpcclxuICAgICAgaW1wb3J0WExTWChwYXJhbXMsIGV2bnQpXHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlRXhwb3J0RXZlbnQocGFyYW1zOiBhbnkpIHtcclxuICBzd2l0Y2ggKHBhcmFtcy5vcHRpb25zLnR5cGUpIHtcclxuICAgIGNhc2UgJ3hsc3gnOlxyXG4gICAgICBleHBvcnRYTFNYKHBhcmFtcylcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICog5Z+65LqOIHZ4ZS10YWJsZSDooajmoLznmoTlop7lvLrmj5Lku7bvvIzmlK/mjIHlr7zlh7ogeGxzeCDnrYnmoLzlvI9cclxuICovXHJcbmV4cG9ydCBjb25zdCBWWEVUYWJsZVBsdWdpbkV4cG9ydCA9IHtcclxuICBpbnN0YWxsKHh0YWJsZTogdHlwZW9mIFZYRVRhYmxlKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHh0YWJsZS50eXBlcywgeyB4bHN4OiAxIH0pXHJcbiAgICB4dGFibGUuaW50ZXJjZXB0b3IubWl4aW4oe1xyXG4gICAgICAnZXZlbnQuaW1wb3J0JzogaGFuZGxlSW1wb3J0RXZlbnQsXHJcbiAgICAgICdldmVudC5leHBvcnQnOiBoYW5kbGVFeHBvcnRFdmVudFxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuXHJcbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuVlhFVGFibGUpIHtcclxuICB3aW5kb3cuVlhFVGFibGUudXNlKFZYRVRhYmxlUGx1Z2luRXhwb3J0KVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBWWEVUYWJsZVBsdWdpbkV4cG9ydFxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbInRvQnVmZmVyIiwid2JvdXQiLCJidWYiLCJBcnJheUJ1ZmZlciIsImxlbmd0aCIsInZpZXciLCJVaW50OEFycmF5IiwiaW5kZXgiLCJjaGFyQ29kZUF0IiwiZXhwb3J0WExTWCIsInBhcmFtcyIsIm9wdGlvbnMiLCJjb2x1bW5zIiwiZGF0YXMiLCJzaGVldE5hbWUiLCJ0eXBlIiwiaXNIZWFkZXIiLCJvcmlnaW5hbCIsImNvbEhlYWQiLCJmb3JFYWNoIiwiY29sdW1uIiwiaWQiLCJwcm9wZXJ0eSIsImdldFRpdGxlIiwicm93TGlzdCIsIm1hcCIsInJvdyIsIml0ZW0iLCJYRVV0aWxzIiwiZ2V0IiwiYm9vayIsIlhMU1giLCJ1dGlscyIsImJvb2tfbmV3Iiwic2hlZXQiLCJqc29uX3RvX3NoZWV0IiwiY29uY2F0Iiwic2tpcEhlYWRlciIsImJvb2tfYXBwZW5kX3NoZWV0Iiwid3JpdGUiLCJib29rVHlwZSIsImJvb2tTU1QiLCJibG9iIiwiQmxvYiIsImRvd25sb2FkIiwid2luZG93IiwiZmlsZW5hbWUiLCJuYXZpZ2F0b3IiLCJtc1NhdmVCbG9iIiwibGlua0VsZW0iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJ0YXJnZXQiLCJocmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsImNvbnNvbGUiLCJlcnJvciIsInJlcGxhY2VEb3VibGVRdW90YXRpb24iLCJ2YWwiLCJyZXBsYWNlIiwicGFyc2VDc3YiLCJjb250ZW50IiwibGlzdCIsInNwbGl0IiwiZmllbGRzIiwicm93cyIsInJMaXN0Iiwic2xpY2UiLCJmaWVsZCIsInB1c2giLCJyIiwiY29sSW5kZXgiLCJjaGVja0ltcG9ydERhdGEiLCJ0YWJsZUZpZWxkcyIsImV2ZXJ5IiwiaW5jbHVkZXMiLCJpbXBvcnRYTFNYIiwiJHRhYmxlIiwiZmlsZSIsIl9pbXBvcnRDYWxsYmFjayIsImZpbGVSZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZSIsIndvcmtib29rIiwicmVhZCIsInJlc3VsdCIsImNzdkRhdGEiLCJzaGVldF90b19jc3YiLCJTaGVldHMiLCJTaGVldDEiLCJyZXN0Iiwic3RhdHVzIiwiY3JlYXRlRGF0YSIsInRoZW4iLCJkYXRhIiwibW9kZSIsImluc2VydEF0IiwicmVsb2FkRGF0YSIsInJlYWRBc0JpbmFyeVN0cmluZyIsImhhbmRsZUltcG9ydEV2ZW50IiwiaGFuZGxlRXhwb3J0RXZlbnQiLCJWWEVUYWJsZVBsdWdpbkV4cG9ydCIsImluc3RhbGwiLCJ4dGFibGUiLCJPYmplY3QiLCJhc3NpZ24iLCJ0eXBlcyIsInhsc3giLCJpbnRlcmNlcHRvciIsIm1peGluIiwiVlhFVGFibGUiLCJ1c2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7Ozs7QUFFQSxTQUFTQSxRQUFULENBQWtCQyxLQUFsQixFQUE0QjtBQUMxQixNQUFJQyxHQUFHLEdBQUcsSUFBSUMsV0FBSixDQUFnQkYsS0FBSyxDQUFDRyxNQUF0QixDQUFWO0FBQ0EsTUFBSUMsSUFBSSxHQUFHLElBQUlDLFVBQUosQ0FBZUosR0FBZixDQUFYOztBQUNBLE9BQUssSUFBSUssS0FBSyxHQUFHLENBQWpCLEVBQW9CQSxLQUFLLEtBQUtOLEtBQUssQ0FBQ0csTUFBcEMsRUFBNEMsRUFBRUcsS0FBOUM7QUFBcURGLElBQUFBLElBQUksQ0FBQ0UsS0FBRCxDQUFKLEdBQWNOLEtBQUssQ0FBQ08sVUFBTixDQUFpQkQsS0FBakIsSUFBMEIsSUFBeEM7QUFBckQ7O0FBQ0EsU0FBT0wsR0FBUDtBQUNEOztBQUVELFNBQVNPLFVBQVQsQ0FBb0JDLE1BQXBCLEVBQStCO0FBQUEsTUFDckJDLE9BRHFCLEdBQ09ELE1BRFAsQ0FDckJDLE9BRHFCO0FBQUEsTUFDWkMsT0FEWSxHQUNPRixNQURQLENBQ1pFLE9BRFk7QUFBQSxNQUNIQyxLQURHLEdBQ09ILE1BRFAsQ0FDSEcsS0FERztBQUFBLE1BRXJC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ImltcG9ydCBYRVV0aWxzIGZyb20gJ3hlLXV0aWxzL21ldGhvZHMveGUtdXRpbHMnXHJcbmltcG9ydCBWWEVUYWJsZSBmcm9tICd2eGUtdGFibGUvbGliL3Z4ZS10YWJsZSdcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4J1xyXG5cclxuZnVuY3Rpb24gdG9CdWZmZXIod2JvdXQ6IGFueSkge1xyXG4gIGxldCBidWYgPSBuZXcgQXJyYXlCdWZmZXIod2JvdXQubGVuZ3RoKVxyXG4gIGxldCB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKVxyXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggIT09IHdib3V0Lmxlbmd0aDsgKytpbmRleCkgdmlld1tpbmRleF0gPSB3Ym91dC5jaGFyQ29kZUF0KGluZGV4KSAmIDB4RkZcclxuICByZXR1cm4gYnVmXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGV4cG9ydFhMU1gocGFyYW1zOiBhbnkpIHtcclxuICBjb25zdCB7IG9wdGlvbnMsIGNvbHVtbnMsIGRhdGFzIH0gPSBwYXJhbXNcclxuICBjb25zdCB7IHNoZWV0TmFtZSwgdHlwZSwgaXNIZWFkZXIsIG9yaWdpbmFsIH0gPSBvcHRpb25zXHJcbiAgY29uc3QgY29sSGVhZDogYW55ID0ge31cclxuICBpZiAoaXNIZWFkZXIpIHtcclxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBhbnkpID0+IHtcclxuICAgICAgY29sSGVhZFtjb2x1bW4uaWRdID0gb3JpZ2luYWwgPyBjb2x1bW4ucHJvcGVydHkgOiBjb2x1bW4uZ2V0VGl0bGUoKVxyXG4gICAgfSlcclxuICB9XHJcbiAgY29uc3Qgcm93TGlzdCA9IGRhdGFzLm1hcCgocm93OiBhbnkpID0+IHtcclxuICAgIGNvbnN0IGl0ZW06IGFueSA9IHt9XHJcbiAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbjogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW1bY29sdW1uLmlkXSA9IG9yaWdpbmFsID8gWEVVdGlscy5nZXQocm93LCBjb2x1bW4ucHJvcGVydHkpIDogcm93W2NvbHVtbi5pZF1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gaXRlbVxyXG4gIH0pXHJcbiAgY29uc3QgYm9vayA9IFhMU1gudXRpbHMuYm9va19uZXcoKVxyXG4gIGNvbnN0IHNoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KChpc0hlYWRlciA/IFtjb2xIZWFkXSA6IFtdKS5jb25jYXQocm93TGlzdCksIHsgc2tpcEhlYWRlcjogdHJ1ZSB9KVxyXG4gIC8vIOi9rOaNouaVsOaNrlxyXG4gIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQoYm9vaywgc2hlZXQsIHNoZWV0TmFtZSlcclxuICBjb25zdCB3Ym91dCA9IFhMU1gud3JpdGUoYm9vaywgeyBib29rVHlwZTogdHlwZSwgYm9va1NTVDogZmFsc2UsIHR5cGU6ICdiaW5hcnknIH0pXHJcbiAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt0b0J1ZmZlcih3Ym91dCldLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIH0pXHJcbiAgLy8g5L+d5a2Y5a+85Ye6XHJcbiAgZG93bmxvYWQoYmxvYiwgb3B0aW9ucylcclxufVxyXG5cclxuZnVuY3Rpb24gZG93bmxvYWQoYmxvYjogQmxvYiwgb3B0aW9uczogYW55KSB7XHJcbiAgaWYgKHdpbmRvdy5CbG9iKSB7XHJcbiAgICBjb25zdCB7IGZpbGVuYW1lLCB0eXBlIH0gPSBvcHRpb25zXHJcbiAgICBpZiAobmF2aWdhdG9yLm1zU2F2ZUJsb2IpIHtcclxuICAgICAgbmF2aWdhdG9yLm1zU2F2ZUJsb2IoYmxvYiwgZmlsZW5hbWUpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgbGlua0VsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgICAgbGlua0VsZW0udGFyZ2V0ID0gJ19ibGFuaydcclxuICAgICAgbGlua0VsZW0uZG93bmxvYWQgPSBgJHtmaWxlbmFtZX0uJHt0eXBlfWBcclxuICAgICAgbGlua0VsZW0uaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rRWxlbSlcclxuICAgICAgbGlua0VsZW0uY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmtFbGVtKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdbdnhlLXRhYmxlLXBsdWdpbi1leHBvcnRdIFRoZSBjdXJyZW50IGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgZXhwb3J0cy4nKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVwbGFjZURvdWJsZVF1b3RhdGlvbih2YWw6IHN0cmluZykge1xyXG4gIHJldHVybiB2YWwucmVwbGFjZSgvXlwiLywgJycpLnJlcGxhY2UoL1wiJC8sICcnKVxyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJzZUNzdihjb2x1bW5zOiBhbnlbXSwgY29udGVudDogc3RyaW5nKSB7XHJcbiAgY29uc3QgbGlzdDogc3RyaW5nW10gPSBjb250ZW50LnNwbGl0KCdcXG4nKVxyXG4gIGNvbnN0IGZpZWxkczogYW55W10gPSBbXVxyXG4gIGNvbnN0IHJvd3M6IGFueVtdID0gW11cclxuICBpZiAobGlzdC5sZW5ndGgpIHtcclxuICAgIGNvbnN0IHJMaXN0OiBzdHJpbmdbXSA9IGxpc3Quc2xpY2UoMSlcclxuICAgIGxpc3RbMF0uc3BsaXQoJywnKS5mb3JFYWNoKCh2YWw6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBmaWVsZDogc3RyaW5nID0gcmVwbGFjZURvdWJsZVF1b3RhdGlvbih2YWwpXHJcbiAgICAgIGlmIChmaWVsZCkge1xyXG4gICAgICAgIGZpZWxkcy5wdXNoKGZpZWxkKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgckxpc3QuZm9yRWFjaCgocjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmIChyKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbTogYW55ID0ge31cclxuICAgICAgICByLnNwbGl0KCcsJykuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGNvbEluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGl0ZW1bZmllbGRzW2NvbEluZGV4XV0gPSByZXBsYWNlRG91YmxlUXVvdGF0aW9uKHZhbClcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJvd3MucHVzaChpdGVtKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICByZXR1cm4geyBmaWVsZHMsIHJvd3MgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjaGVja0ltcG9ydERhdGEoY29sdW1uczogYW55W10sIGZpZWxkczogc3RyaW5nW10sIHJvd3M6IGFueVtdKSB7XHJcbiAgbGV0IHRhYmxlRmllbGRzOiBzdHJpbmdbXSA9IFtdXHJcbiAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IGFueSkgPT4ge1xyXG4gICAgbGV0IGZpZWxkOiBzdHJpbmcgPSBjb2x1bW4ucHJvcGVydHlcclxuICAgIGlmIChmaWVsZCkge1xyXG4gICAgICB0YWJsZUZpZWxkcy5wdXNoKGZpZWxkKVxyXG4gICAgfVxyXG4gIH0pXHJcbiAgcmV0dXJuIHRhYmxlRmllbGRzLmV2ZXJ5KChmaWVsZDogc3RyaW5nKSA9PiBmaWVsZHMuaW5jbHVkZXMoZmllbGQpKVxyXG59XHJcblxyXG5mdW5jdGlvbiBpbXBvcnRYTFNYKHBhcmFtczogYW55KSB7XHJcbiAgY29uc3QgeyAkdGFibGUsIGNvbHVtbnMsIG9wdGlvbnMsIGZpbGUgfSA9IHBhcmFtc1xyXG4gIGNvbnN0IHsgX2ltcG9ydENhbGxiYWNrIH0gPSAkdGFibGVcclxuICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxyXG4gIGZpbGVSZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnJlYWQoZS50YXJnZXQucmVzdWx0LCB7IHR5cGU6ICdiaW5hcnknIH0pXHJcbiAgICBjb25zdCBjc3ZEYXRhOiBzdHJpbmcgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2Nzdih3b3JrYm9vay5TaGVldHMuU2hlZXQxKVxyXG4gICAgY29uc3QgcmVzdDogYW55ID0gcGFyc2VDc3YoY29sdW1ucywgY3N2RGF0YSlcclxuICAgIGNvbnN0IHsgZmllbGRzLCByb3dzIH0gPSByZXN0XHJcbiAgICBjb25zdCBzdGF0dXMgPSBjaGVja0ltcG9ydERhdGEoY29sdW1ucywgZmllbGRzLCByb3dzKVxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICAkdGFibGUuY3JlYXRlRGF0YShyb3dzKVxyXG4gICAgICAgIC50aGVuKChkYXRhOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PT0gJ2FwcGVuZCcpIHtcclxuICAgICAgICAgICAgJHRhYmxlLmluc2VydEF0KGRhdGEsIC0xKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJHRhYmxlLnJlbG9hZERhdGEoZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgaWYgKF9pbXBvcnRDYWxsYmFjaykge1xyXG4gICAgICBfaW1wb3J0Q2FsbGJhY2soc3RhdHVzKVxyXG4gICAgfVxyXG4gIH1cclxuICBmaWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKVxyXG59XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVJbXBvcnRFdmVudChwYXJhbXM6IGFueSkge1xyXG4gIHN3aXRjaCAocGFyYW1zLm9wdGlvbnMudHlwZSkge1xyXG4gICAgY2FzZSAneGxzeCc6XHJcbiAgICAgIGltcG9ydFhMU1gocGFyYW1zKVxyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhbmRsZUV4cG9ydEV2ZW50KHBhcmFtczogYW55KSB7XHJcbiAgc3dpdGNoIChwYXJhbXMub3B0aW9ucy50eXBlKSB7XHJcbiAgICBjYXNlICd4bHN4JzpcclxuICAgICAgZXhwb3J0WExTWChwYXJhbXMpXHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIOWfuuS6jiB2eGUtdGFibGUg6KGo5qC855qE5aKe5by65o+S5Lu277yM5pSv5oyB5a+85Ye6IHhsc3gg562J5qC85byPXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgVlhFVGFibGVQbHVnaW5FeHBvcnQgPSB7XHJcbiAgaW5zdGFsbCh4dGFibGU6IHR5cGVvZiBWWEVUYWJsZSkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih4dGFibGUudHlwZXMsIHsgeGxzeDogMSB9KVxyXG4gICAgeHRhYmxlLmludGVyY2VwdG9yLm1peGluKHtcclxuICAgICAgJ2V2ZW50LmltcG9ydCc6IGhhbmRsZUltcG9ydEV2ZW50LFxyXG4gICAgICAnZXZlbnQuZXhwb3J0JzogaGFuZGxlRXhwb3J0RXZlbnRcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcblxyXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LlZYRVRhYmxlKSB7XHJcbiAgd2luZG93LlZYRVRhYmxlLnVzZShWWEVUYWJsZVBsdWdpbkV4cG9ydClcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVlhFVGFibGVQbHVnaW5FeHBvcnRcclxuIl19 diff --git a/dist/index.js b/dist/index.js index 0ff601b..61a4133 100644 --- a/dist/index.js +++ b/dist/index.js @@ -148,11 +148,12 @@ }); } - function importXLSX(params, evnt) { + function importXLSX(params) { var $table = params.$table, - columns = params.columns; - var importCallback = $table.importCallback; - var file = evnt.target.files[0]; + columns = params.columns, + options = params.options, + file = params.file; + var _importCallback = $table._importCallback; var fileReader = new FileReader(); fileReader.onload = function (e) { @@ -167,22 +168,26 @@ if (status) { $table.createData(rows).then(function (data) { - return $table.reloadData(data); + if (options.mode === 'append') { + $table.insertAt(data, -1); + } else { + $table.reloadData(data); + } }); } - if (importCallback) { - importCallback(status); + if (_importCallback) { + _importCallback(status); } }; fileReader.readAsBinaryString(file); } - function handleImportEvent(params, evnt) { + function handleImportEvent(params) { switch (params.options.type) { case 'xlsx': - importXLSX(params, evnt); + importXLSX(params); return false; } } diff --git a/dist/index.min.js b/dist/index.min.js index bc3d814..a8bdf4e 100644 --- a/dist/index.min.js +++ b/dist/index.min.js @@ -1 +1 @@ -!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var r={exports:{}};t(r.exports,e.XEUtils,e.XLSX),e.VXETablePluginExport=r.exports.default}}(this,function(e,d,v){"use strict";var t;function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function r(e){var t=e.options,n=e.columns,r=e.datas,o=t.sheetName,i=t.type,a=t.isHeader,l=t.original,u={};a&&n.forEach(function(e){u[e.id]=l?e.property:e.getTitle()});var s=r.map(function(t){var r={};return n.forEach(function(e){r[e.id]=l?d.default.get(t,e.property):t[e.id]}),r}),c=v.utils.book_new(),f=v.utils.json_to_sheet((a?[u]:[]).concat(s),{skipHeader:!0});v.utils.book_append_sheet(c,f,o);var p=v.write(c,{bookType:i,bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var r=t.filename,n=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,r);else{var o=document.createElement("a");o.target="_blank",o.download="".concat(r,".").concat(n),o.href=URL.createObjectURL(e),document.body.appendChild(o),o.click(),document.body.removeChild(o)}}else console.error("[vxe-table-plugin-export] The current environment does not support exports.")}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0;n!==e.length;++n)r[n]=255&e.charCodeAt(n);return t}(p)],{type:"application/octet-stream"}),t)}function s(e){return e.replace(/^"/,"").replace(/"$/,"")}function n(e,t){var a=e.$table,l=e.columns,u=a.importCallback,r=t.target.files[0],n=new FileReader;n.onload=function(e){var t=v.read(e.target.result,{type:"binary"}),r=function(e,t){var r=t.split("\n"),n=[],o=[];if(r.length){var i=r.slice(1);r[0].split(",").forEach(function(e){var t=s(e);t&&n.push(t)}),i.forEach(function(e){if(e){var r={};e.split(",").forEach(function(e,t){r[n[t]]=s(e)}),o.push(r)}})}return{fields:n,rows:o}}(0,v.utils.sheet_to_csv(t.Sheets.Sheet1)),n=r.fields,o=r.rows,i=function(e,t){var r=[];return e.forEach(function(e){var t=e.property;t&&r.push(t)}),r.every(function(e){return t.includes(e)})}(l,n);i&&a.createData(o).then(function(e){return a.reloadData(e)}),u&&u(i)},n.readAsBinaryString(r)}function o(e,t){switch(e.options.type){case"xlsx":return n(e,t),!1}}function i(e){switch(e.options.type){case"xlsx":return r(e),!1}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExport=void 0,d=(t=d)&&t.__esModule?t:{default:t},v=function(e){if(e&&e.__esModule)return e;var t=a();if(t&&t.has(e))return t.get(e);var r={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}}r.default=e,t&&t.set(e,r);return r}(v);var l={install:function(e){Object.assign(e.types,{xlsx:1}),e.interceptor.mixin({"event.import":o,"event.export":i})}};e.VXETablePluginExport=l,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(l);var u=l;e.default=u}); \ No newline at end of file +!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var n={exports:{}};t(n.exports,e.XEUtils,e.XLSX),e.VXETablePluginExport=n.exports.default}}(this,function(e,d,v){"use strict";var t;function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function n(e){var t=e.options,r=e.columns,n=e.datas,o=t.sheetName,i=t.type,a=t.isHeader,l=t.original,u={};a&&r.forEach(function(e){u[e.id]=l?e.property:e.getTitle()});var s=n.map(function(t){var n={};return r.forEach(function(e){n[e.id]=l?d.default.get(t,e.property):t[e.id]}),n}),c=v.utils.book_new(),p=v.utils.json_to_sheet((a?[u]:[]).concat(s),{skipHeader:!0});v.utils.book_append_sheet(c,p,o);var f=v.write(c,{bookType:i,bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var n=t.filename,r=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,n);else{var o=document.createElement("a");o.target="_blank",o.download="".concat(n,".").concat(r),o.href=URL.createObjectURL(e),document.body.appendChild(o),o.click(),document.body.removeChild(o)}}else console.error("[vxe-table-plugin-export] The current environment does not support exports.")}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r!==e.length;++r)n[r]=255&e.charCodeAt(r);return t}(f)],{type:"application/octet-stream"}),t)}function c(e){return e.replace(/^"/,"").replace(/"$/,"")}function r(e){var a=e.$table,l=e.columns,u=e.options,t=e.file,s=a._importCallback,n=new FileReader;n.onload=function(e){var t=v.read(e.target.result,{type:"binary"}),n=function(e,t){var n=t.split("\n"),r=[],o=[];if(n.length){var i=n.slice(1);n[0].split(",").forEach(function(e){var t=c(e);t&&r.push(t)}),i.forEach(function(e){if(e){var n={};e.split(",").forEach(function(e,t){n[r[t]]=c(e)}),o.push(n)}})}return{fields:r,rows:o}}(0,v.utils.sheet_to_csv(t.Sheets.Sheet1)),r=n.fields,o=n.rows,i=function(e,t){var n=[];return e.forEach(function(e){var t=e.property;t&&n.push(t)}),n.every(function(e){return t.includes(e)})}(l,r);i&&a.createData(o).then(function(e){"append"===u.mode?a.insertAt(e,-1):a.reloadData(e)}),s&&s(i)},n.readAsBinaryString(t)}function o(e){switch(e.options.type){case"xlsx":return r(e),!1}}function i(e){switch(e.options.type){case"xlsx":return n(e),!1}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExport=void 0,d=(t=d)&&t.__esModule?t:{default:t},v=function(e){if(e&&e.__esModule)return e;var t=a();if(t&&t.has(e))return t.get(e);var n={};if(null!=e){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}}n.default=e,t&&t.set(e,n);return n}(v);var l={install:function(e){Object.assign(e.types,{xlsx:1}),e.interceptor.mixin({"event.import":o,"event.export":i})}};e.VXETablePluginExport=l,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(l);var u=l;e.default=u}); \ No newline at end of file diff --git a/index.ts b/index.ts index c52070e..c508eb0 100644 --- a/index.ts +++ b/index.ts @@ -94,10 +94,9 @@ function checkImportData(columns: any[], fields: string[], rows: any[]) { return tableFields.every((field: string) => fields.includes(field)) } -function importXLSX(params: any, evnt: any) { - const { $table, columns } = params - const { importCallback } = $table - const file = evnt.target.files[0] +function importXLSX(params: any) { + const { $table, columns, options, file } = params + const { _importCallback } = $table const fileReader = new FileReader() fileReader.onload = (e: any) => { const workbook = XLSX.read(e.target.result, { type: 'binary' }) @@ -107,19 +106,25 @@ function importXLSX(params: any, evnt: any) { const status = checkImportData(columns, fields, rows) if (status) { $table.createData(rows) - .then((data: any[]) => $table.reloadData(data)) + .then((data: any[]) => { + if (options.mode === 'append') { + $table.insertAt(data, -1) + } else { + $table.reloadData(data) + } + }) } - if (importCallback) { - importCallback(status) + if (_importCallback) { + _importCallback(status) } } fileReader.readAsBinaryString(file) } -function handleImportEvent(params: any, evnt: any) { +function handleImportEvent(params: any) { switch (params.options.type) { case 'xlsx': - importXLSX(params, evnt) + importXLSX(params) return false } } diff --git a/package.json b/package.json index bdfe85b..e60bc6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vxe-table-plugin-export", - "version": "1.0.5", + "version": "1.0.6", "description": "基于 vxe-table 表格的增强插件,支持导出 xlsx 等格式", "scripts": { "lib": "gulp build" @@ -54,7 +54,7 @@ "xlsx": "^0.15.1" }, "peerDependencies": { - "vxe-table": ">=2.6.12", + "vxe-table": ">=2.6.14", "xe-utils": ">=2.2.0" }, "repository": {