diff --git a/dolphinscheduler-ui-next/src/components/form/fields/radio.ts b/dolphinscheduler-ui-next/src/components/form/fields/radio.ts index 553680f0bd688367ff9e3e9f092b028d8a554482..260756f074179f880041423dc2d774f15109bec4 100644 --- a/dolphinscheduler-ui-next/src/components/form/fields/radio.ts +++ b/dolphinscheduler-ui-next/src/components/form/fields/radio.ts @@ -32,8 +32,9 @@ export function renderRadio(item: IJsonItem, fields: { [field: string]: any }) { return h( NRadioGroup, { + ...props, value: fields[field], - onUpdateValue: (value) => void (fields[field] = value) + onUpdateValue: (value: any) => void (fields[field] = value) }, () => h(NSpace, null, () => diff --git a/dolphinscheduler-ui-next/src/components/form/get-elements-by-json.ts b/dolphinscheduler-ui-next/src/components/form/get-elements-by-json.ts index b25ed5f22afc1862ae9f816bdd4d0370b6035413..753bdb11e02898afaf25ae70e68b6f4b5d5c0c4e 100644 --- a/dolphinscheduler-ui-next/src/components/form/get-elements-by-json.ts +++ b/dolphinscheduler-ui-next/src/components/form/get-elements-by-json.ts @@ -31,7 +31,7 @@ export default function getElementByJson( const elements: IFormItem[] = [] for (const item of json) { const mergedItem = isFunction(item) ? item() : item - const { name, value, field, validate, ...rest } = mergedItem + const { name, value, field, children, validate, ...rest } = mergedItem if (value || value === 0) { fields[field] = value initialValues[field] = value @@ -41,7 +41,7 @@ export default function getElementByJson( showLabel: !!name, ...omit(rest, ['type', 'props', 'options']), label: name, - path: field, + path: !children ? field : '', widget: () => getField(item, fields, rules), span: toRef(mergedItem, 'span') as Ref } diff --git a/dolphinscheduler-ui-next/src/components/form/index.tsx b/dolphinscheduler-ui-next/src/components/form/index.tsx index d4962df8892ad8e54ff03365bbedae15e8f72ec1..7d9707f642a1729a554799493d1aaecbe6f6a4d3 100644 --- a/dolphinscheduler-ui-next/src/components/form/index.tsx +++ b/dolphinscheduler-ui-next/src/components/form/index.tsx @@ -60,7 +60,7 @@ const Form = defineComponent({ {...formItemProps} span={unref(span) === void 0 ? 24 : unref(span)} path={path} - key={path} + key={path || String(Date.now() + Math.random())} > {h(widget)} diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-datasource.ts b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-datasource.ts index 9832b73e452b0be1e87dee2ebf47366df7f20a45..28095ed08a2d21d7c2f13e9b3345f5e708551b14 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-datasource.ts +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-datasource.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { onMounted, ref, unref, Ref } from 'vue' +import { onMounted, ref, Ref } from 'vue' import { queryDataSourceList } from '@/service/modules/data-source' import { useI18n } from 'vue-i18n' import type { IJsonItem, IDataBase } from '../types' @@ -52,7 +52,7 @@ export function useDatasource( span: span, options: [{ label: 'MYSQL', value: 'MYSQL' }], validate: { - required: unref(span) !== 0 + required: true } }, { diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-source-type.ts b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-source-type.ts index f742c774438c38fb7d8f67cfc8d9cc834e6f4837..2f90a5ac3e6bcb63b7be4a0eee0da2a4f8601600 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-source-type.ts +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-source-type.ts @@ -33,7 +33,7 @@ export function useSourceType( const columnSpan = ref(0) const hiveSpan = ref(0) const hdfsSpan = ref(0) - const datasourceSpan = ref(0) + const datasourceSpan = ref(12) const resetSpan = () => { mysqlSpan.value = unCustomSpan.value && model.sourceType === 'MYSQL' ? 24 : 0 @@ -94,7 +94,7 @@ export function useSourceType( () => model.modelType, (modelType: ModelType) => { sourceTypes.value = getSourceTypesByModelType(modelType) - if (!sourceTypes.value.find((type) => model.sourceType === type.value)) { + if (!model.sourceType) { model.sourceType = sourceTypes.value[0].value } } @@ -149,7 +149,12 @@ export function useSourceType( label: 'SQL', value: '1' } - ] + ], + props: { + 'on-update:value': (value: '0' | '1') => { + model.targetType = value === '0' ? 'HIVE' : 'HDFS' + } + } }, { type: 'input', diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-target-type.ts b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-target-type.ts index 114db2bb2a7d18706c69e54c669b962288271ad0..5949def7ba02e38595755979f067cc0047fe78f2 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-target-type.ts +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-sqoop-target-type.ts @@ -26,8 +26,8 @@ export function useTargetType( unCustomSpan: Ref ): IJsonItem[] { const { t } = useI18n() - const hiveSpan = ref(24) - const hdfsSpan = ref(0) + const hiveSpan = ref(0) + const hdfsSpan = ref(24) const mysqlSpan = ref(0) const dataSourceSpan = ref(0) const updateSpan = ref(0) @@ -103,7 +103,7 @@ export function useTargetType( () => [model.sourceType, model.srcQueryType], ([sourceType, srcQueryType]) => { targetTypes.value = getTargetTypesBySourceType(sourceType, srcQueryType) - if (!targetTypes.value.find((type) => model.targetType === type.value)) { + if (!model.targetType) { model.targetType = targetTypes.value[0].value } }