in dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-datax.ts [22:257]
export function useDataX(model: { [field: string]: any }): IJsonItem[] {
const { t } = useI18n()
const jobSpeedByteOptions: any[] = [
{
label: `0(${t('project.node.unlimited')})`,
value: 0
},
{
label: '1KB',
value: 1024
},
{
label: '10KB',
value: 10240
},
{
label: '50KB',
value: 51200
},
{
label: '100KB',
value: 102400
},
{
label: '512KB',
value: 524288
}
]
const jobSpeedRecordOptions: any[] = [
{
label: `0(${t('project.node.unlimited')})`,
value: 0
},
{
label: '500',
value: 500
},
{
label: '1000',
value: 1000
},
{
label: '1500',
value: 1500
},
{
label: '2000',
value: 2000
},
{
label: '2500',
value: 2500
},
{
label: '3000',
value: 3000
}
]
const memoryLimitOptions = [
{
label: '1G',
value: 1
},
{
label: '2G',
value: 2
},
{
label: '3G',
value: 3
},
{
label: '4G',
value: 4
}
]
const sqlEditorSpan = ref(24)
const jsonEditorSpan = ref(0)
const datasourceSpan = ref(12)
const destinationDatasourceSpan = ref(8)
const otherStatementSpan = ref(22)
const jobSpeedSpan = ref(12)
const useResourcesSpan = ref(0)
const initConstants = () => {
if (model.customConfig) {
sqlEditorSpan.value = 0
jsonEditorSpan.value = 24
datasourceSpan.value = 0
destinationDatasourceSpan.value = 0
otherStatementSpan.value = 0
jobSpeedSpan.value = 0
useResourcesSpan.value = 24
} else {
sqlEditorSpan.value = 24
jsonEditorSpan.value = 0
datasourceSpan.value = 12
destinationDatasourceSpan.value = 8
otherStatementSpan.value = 22
jobSpeedSpan.value = 12
useResourcesSpan.value = 0
}
}
const supportedDatasourceType = [
'MYSQL',
'POSTGRESQL',
'ORACLE',
'SQLSERVER',
'CLICKHOUSE',
'DATABEND',
'HIVE',
'PRESTO',
'OCEANBASE'
]
onMounted(() => {
initConstants()
})
watch(
() => model.customConfig,
() => {
initConstants()
}
)
return [
{
type: 'switch',
field: 'customConfig',
name: t('project.node.datax_custom_template')
},
...useDatasource(model, {
typeField: 'dsType',
sourceField: 'dataSource',
span: datasourceSpan,
supportedDatasourceType
}),
{
type: 'editor',
field: 'sql',
name: t('project.node.sql_statement'),
span: sqlEditorSpan,
validate: {
trigger: ['input', 'trigger'],
required: true,
message: t('project.node.sql_empty_tips')
}
},
{
type: 'editor',
field: 'json',
name: t('project.node.datax_json_template'),
span: jsonEditorSpan,
validate: {
trigger: ['input', 'trigger'],
required: true,
message: t('project.node.sql_empty_tips')
}
},
useResources(useResourcesSpan),
...useDatasource(model, {
typeField: 'dtType',
sourceField: 'dataTarget',
span: destinationDatasourceSpan,
supportedDatasourceType
}),
{
type: 'input',
field: 'targetTable',
name: t('project.node.datax_target_table'),
span: destinationDatasourceSpan,
props: {
placeholder: t('project.node.datax_target_table_tips')
},
validate: {
trigger: ['input', 'blur'],
required: true
}
},
{
type: 'multi-input',
field: 'preStatements',
name: t('project.node.datax_target_database_pre_sql'),
span: otherStatementSpan,
props: {
placeholder: t('project.node.datax_non_query_sql_tips'),
type: 'textarea',
autosize: { minRows: 1 }
}
},
{
type: 'multi-input',
field: 'postStatements',
name: t('project.node.datax_target_database_post_sql'),
span: otherStatementSpan,
props: {
placeholder: t('project.node.datax_non_query_sql_tips'),
type: 'textarea',
autosize: { minRows: 1 }
}
},
{
type: 'select',
field: 'jobSpeedByte',
name: t('project.node.datax_job_speed_byte'),
span: jobSpeedSpan,
options: jobSpeedByteOptions,
value: 0
},
{
type: 'select',
field: 'jobSpeedRecord',
name: t('project.node.datax_job_speed_record'),
span: jobSpeedSpan,
options: jobSpeedRecordOptions,
value: 1000
},
{
type: 'select',
field: 'xms',
name: t('project.node.datax_job_runtime_memory_xms'),
span: 12,
options: memoryLimitOptions,
value: 1
},
{
type: 'select',
field: 'xmx',
name: t('project.node.datax_job_runtime_memory_xmx'),
span: 12,
options: memoryLimitOptions,
value: 1
},
...useCustomParams({ model, field: 'localParams', isSimple: true })
]
}