Commit fdf4ce7dc2b9778ef94780eb38854c89f4e92f2a
1 parent
db8072d7
fix: DEFECT-1570 修复设备导入错误的csv文件未提示错误
Showing
1 changed file
with
25 additions
and
17 deletions
| ... | ... | @@ -6,6 +6,7 @@ |
| 6 | 6 | import XLSX, { CellObject } from 'xlsx'; |
| 7 | 7 | import { basicProps } from './props'; |
| 8 | 8 | import { UploadFileParseValue } from './type'; |
| 9 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
| 9 | 10 | |
| 10 | 11 | const props = defineProps({ |
| 11 | 12 | ...basicProps, |
| ... | ... | @@ -48,23 +49,30 @@ |
| 48 | 49 | return new Promise((resolve, reject) => { |
| 49 | 50 | const fileReader = new FileReader(); |
| 50 | 51 | fileReader.onload = (event: ProgressEvent) => { |
| 51 | - const data = (event.target as FileReader).result as string; | |
| 52 | - | |
| 53 | - const result = XLSX.read(data, { type: 'string' }); | |
| 54 | - | |
| 55 | - const sheetName = result.SheetNames.at(0); | |
| 56 | - const workbook = result.Sheets; | |
| 57 | - const sheet = workbook[sheetName as string]; | |
| 58 | - const sheetRange = sheet['!ref']; | |
| 59 | - | |
| 60 | - const { | |
| 61 | - s: { c: startColumn }, | |
| 62 | - e: { c: endColumn }, | |
| 63 | - } = XLSX.utils.decode_range(sheetRange!); | |
| 64 | - | |
| 65 | - const header = getTableHeader(sheet, [startColumn, endColumn]); | |
| 66 | - const content = XLSX.utils.sheet_to_json(sheet, { range: sheetRange }) as Recordable[]; | |
| 67 | - resolve({ header, content }); | |
| 52 | + try { | |
| 53 | + const data = (event.target as FileReader).result as string; | |
| 54 | + | |
| 55 | + const result = XLSX.read(data, { type: 'string' }); | |
| 56 | + | |
| 57 | + const sheetName = result.SheetNames.at(0); | |
| 58 | + const workbook = result.Sheets; | |
| 59 | + const sheet = workbook[sheetName as string]; | |
| 60 | + const sheetRange = sheet['!ref']; | |
| 61 | + | |
| 62 | + const { | |
| 63 | + s: { c: startColumn }, | |
| 64 | + e: { c: endColumn }, | |
| 65 | + } = XLSX.utils.decode_range(sheetRange!); | |
| 66 | + | |
| 67 | + const header = getTableHeader(sheet, [startColumn, endColumn]); | |
| 68 | + const content = XLSX.utils.sheet_to_json(sheet, { range: sheetRange }) as Recordable[]; | |
| 69 | + | |
| 70 | + resolve({ header, content }); | |
| 71 | + } catch (error) { | |
| 72 | + const { createMessage } = useMessage(); | |
| 73 | + createMessage.error('请检查csv文件是否正确'); | |
| 74 | + throw error; | |
| 75 | + } | |
| 68 | 76 | }; |
| 69 | 77 | |
| 70 | 78 | fileReader.onerror = () => { | ... | ... |