From 57846ba16ccc7085fb53b8b558ceabb6285418c2 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 24 Mar 2025 18:43:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E6=BA=90=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20Excel=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=EF=BC=8C?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/datasource/form/ExcelDetail.vue | 89 ++++++++++++++++--- 1 file changed, 75 insertions(+), 14 deletions(-) diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue b/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue index f06feafef8..f49bc54e4e 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/ExcelDetail.vue @@ -14,6 +14,7 @@ import { onBeforeUnmount, nextTick } from 'vue' +import { fieldType as fieldTypeLowercase } from '@/utils/attr' import { ElMessage, ElMessageBox } from 'element-plus-secondary' import { save, update } from '@/api/datasource' import type { Action } from 'element-plus-secondary' @@ -44,6 +45,7 @@ export interface Field { fieldSize: number fieldType: string name: string + deExtractType: number checked: boolean primaryKey: boolean length: number @@ -119,10 +121,17 @@ const fieldType = { DOUBLE: 'value' } +const fieldTypeToStr = { + 0: 'TEXT', + 2: 'LONG', + 3: 'DOUBLE' +} + const generateColumns = (arr: Field[]) => arr.map(ele => ({ key: ele.originName, fieldType: ele.fieldType, + deExtractType: ele.deExtractType, dataKey: ele.originName, title: ele.name, checked: ele.checked, @@ -462,6 +471,18 @@ const refreshData = () => { currentMode.value = 'preview' } +const deExtractTypeChange = item => { + item.deType = item.deExtractType + const sheet = state.excelData[0]?.sheets.find(ele => ele.sheetId === activeTab.value) + sheet.fields.forEach(row => { + if (row.originName === item.dataKey) { + row.deExtractType = item.deExtractType + row.deType = item.deExtractType + row.fieldType = fieldTypeToStr[item.deExtractType] + } + }) +} + const lengthChange = val => { const sheet = state.excelData[0]?.sheets.find(ele => ele.sheetId === activeTab.value) sheet.fields.forEach(row => { @@ -479,6 +500,15 @@ const primaryKeyChange = val => { }) } +const fieldOptions = [ + { label: t('dataset.text'), value: 0 }, + { label: t('dataset.value'), value: 2 }, + { + label: t('dataset.value') + '(' + t('dataset.float') + ')', + value: 3 + } +] + const handleSelectionChange = val => { if (!initMultipleTable.value) { multipleSelection.value = val @@ -520,7 +550,7 @@ const disabledFieldLength = item => { if (!item.checked) { return true } - if (item.fieldType !== 'TEXT') { + if (item.deExtractType !== 0) { return true } } @@ -537,6 +567,9 @@ const changeCurrentMode = val => { } initMultipleTable.value = false }) + } else { + const sheet = state.excelData[0]?.sheets.find(ele => ele.sheetId === activeTab.value) + handleNodeClick(sheet) } } @@ -726,20 +759,48 @@ defineExpose({ - -