diff --git a/package.json b/package.json
index 8945418..d3c978b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "front-next",
- "version": "6.2.0",
+ "version": "6.3.0",
"scripts": {
"dev": "vite --host",
"build": "vite build",
@@ -15,6 +15,7 @@
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.3.4",
+ "chardet": "^1.5.1",
"core-js": "^3.23.5",
"dayjs": "^1.11.7",
"echarts": "^5.3.3",
diff --git a/src/modules/extend/excel/import-btn.vue b/src/modules/extend/excel/import-btn.vue
index b9c6275..ede7259 100644
--- a/src/modules/extend/excel/import-btn.vue
+++ b/src/modules/extend/excel/import-btn.vue
@@ -12,6 +12,7 @@
{
- const { result } = event.target;
+ let data = "";
- const workbook = XLSX.read(result, { type: "binary" });
+ if (ext == "csv") {
+ const detected = chardet.detect(new Uint8Array(event.target.result));
+ const decoder = new TextDecoder(detected);
+ data = decoder.decode(event.target.result);
+ } else {
+ data = event.target.result;
+ }
- let data: any[] = [];
+ const workbook = XLSX.read(data, { type: "binary" });
+
+ let json: any[] = [];
for (const sheet in workbook.Sheets) {
if (workbook.Sheets.hasOwnProperty(sheet)) {
- data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
+ json = json.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
}
}
- // @ts-ignore
- upload.data = data;
+
+ upload.data = json;
upload.filename = raw.name;
console.log(upload.filename, upload.data);
- emit("change", data);
+ emit("change", json);
};
- reader.readAsBinaryString(raw);
+
+ if (ext == "csv") {
+ reader.readAsArrayBuffer(raw);
+ } else {
+ reader.readAsBinaryString(raw);
+ }
next();
@@ -166,6 +187,13 @@ function download() {
function setProgress(val: string) {
progress.value = parseInt(val);
}
+
+defineExpose({
+ open,
+ clear,
+ setProgress,
+ Form
+});