|
|
@ -27,6 +27,7 @@ interface Option { |
|
|
|
const useForm = Form.useForm |
|
|
|
const useForm = Form.useForm |
|
|
|
const { quickImportType, projectTemplate, importData } = defineProps<Props>() |
|
|
|
const { quickImportType, projectTemplate, importData } = defineProps<Props>() |
|
|
|
const { $api } = useNuxtApp() |
|
|
|
const { $api } = useNuxtApp() |
|
|
|
|
|
|
|
const hasSelectColumn = ref(<boolean[]>{}) |
|
|
|
const expansionPanel = ref(<number[]>[]) |
|
|
|
const expansionPanel = ref(<number[]>[]) |
|
|
|
const editableTn = ref(<boolean[]>{}) |
|
|
|
const editableTn = ref(<boolean[]>{}) |
|
|
|
const inputRefs = ref(<HTMLInputElement[]>[]) |
|
|
|
const inputRefs = ref(<HTMLInputElement[]>[]) |
|
|
@ -97,10 +98,12 @@ const validators = computed(() => { |
|
|
|
let res: any = {} |
|
|
|
let res: any = {} |
|
|
|
for (let i = 0; i < data.tables.length; i++) { |
|
|
|
for (let i = 0; i < data.tables.length; i++) { |
|
|
|
res[`tables.${i}.table_name`] = tnValidator |
|
|
|
res[`tables.${i}.table_name`] = tnValidator |
|
|
|
|
|
|
|
hasSelectColumn.value[i] = false |
|
|
|
for (let j = 0; j < data.tables[i].columns.length; j++) { |
|
|
|
for (let j = 0; j < data.tables[i].columns.length; j++) { |
|
|
|
res[`tables.${i}.columns.${j}.column_name`] = cnValidator |
|
|
|
res[`tables.${i}.columns.${j}.column_name`] = cnValidator |
|
|
|
res[`tables.${i}.columns.${j}.uidt`] = uidtValidator |
|
|
|
res[`tables.${i}.columns.${j}.uidt`] = uidtValidator |
|
|
|
if (isSelect(data.tables[i].columns)) { |
|
|
|
if (isSelect(data.tables[i].columns[j])) { |
|
|
|
|
|
|
|
hasSelectColumn.value[i] = true |
|
|
|
res[`tables.${i}.columns.${j}.dtxp`] = dtxpValidator |
|
|
|
res[`tables.${i}.columns.${j}.dtxp`] = dtxpValidator |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -122,6 +125,7 @@ const parseAndLoadTemplate = () => { |
|
|
|
if (projectTemplate) { |
|
|
|
if (projectTemplate) { |
|
|
|
parseTemplate(projectTemplate) |
|
|
|
parseTemplate(projectTemplate) |
|
|
|
expansionPanel.value = Array.from({ length: data.tables.length || 0 }, (_, i) => i) |
|
|
|
expansionPanel.value = Array.from({ length: data.tables.length || 0 }, (_, i) => i) |
|
|
|
|
|
|
|
hasSelectColumn.value = Array.from({ length: data.tables.length || 0 }, () => false) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -366,6 +370,12 @@ const importTemplate = async () => { |
|
|
|
{{ $t('labels.columnType') }} |
|
|
|
{{ $t('labels.columnType') }} |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
<template v-else-if="column.key === 'dtxp' && hasSelectColumn[i]"> |
|
|
|
|
|
|
|
<span> |
|
|
|
|
|
|
|
<!-- TODO: i18n --> |
|
|
|
|
|
|
|
Options |
|
|
|
|
|
|
|
</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template #bodyCell="{ column, record }"> |
|
|
|
<template #bodyCell="{ column, record }"> |
|
|
|
<template v-if="column.key === 'column_name'"> |
|
|
|
<template v-if="column.key === 'column_name'"> |
|
|
|