diff --git a/src/components.d.ts b/src/components.d.ts index 02102df..7b5fc82 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,11 +13,13 @@ declare module 'vue' { LanguageSwitcher: typeof import('./components/LanguageSwitcher.vue')['default'] MainConsole: typeof import('./components/index/mainConsole.vue')['default'] MainDrawer: typeof import('./components/index/mainDrawer.vue')['default'] + NodeConfigurator: typeof import('./components/nodeEdit/nodeConfigurator.vue')['default'] NodeList: typeof import('./components/nodeEdit/nodeList.vue')['default'] NodesFloatButton: typeof import('./components/nodeEdit/nodesFloatButton.vue')['default'] NotificationProvider: typeof import('./components/notify/notificationProvider.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + SchemaField: typeof import('./components/nodeEdit/SchemaField.vue')['default'] Spary: typeof import('./components/index/spary.vue')['default'] } } diff --git a/src/components/nodeEdit/SchemaField.vue b/src/components/nodeEdit/SchemaField.vue new file mode 100644 index 0000000..5cc30a1 --- /dev/null +++ b/src/components/nodeEdit/SchemaField.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/components/nodeEdit/addNode.vue b/src/components/nodeEdit/addNode.vue index 9912fb5..f774e36 100644 --- a/src/components/nodeEdit/addNode.vue +++ b/src/components/nodeEdit/addNode.vue @@ -6,6 +6,7 @@ import {nodeRepository} from "@/entities/node.ts"; import {notify} from "@/components/notify/notifyStore.ts"; import {ConfigurationSchema} from "@/utils/core/configurator/schema/schema.ts"; import {CoreTypes} from "@/utils/core/CoreDef.ts"; +import NodeConfigurator from "@/components/nodeEdit/nodeConfigurator.vue"; const { t } = useI18n() @@ -14,6 +15,7 @@ const props = defineProps<{ groupId: string }>() const allGroups = ref([]) const selectedGroupId = ref(null) const configurationSchema= ref(null) +const nodeConfig = ref(null) const loadGroups = async () => { allGroups.value = await groupRepository.findAll() @@ -24,33 +26,47 @@ const loadGroups = async () => { onMounted(loadGroups) const nodeAlias = ref('') -const nodeArguments = ref(null) const isAdding = ref(false) const isAddDisabled = computed(() => { return !nodeAlias.value || nodeAlias.value.length < 3 || nodeAlias.value.length > 15 || isAdding.value }) +function onConfigurationSchemaChange(value: any) { + console.log('Configuration schema changed:', value); + // 确保设置的值是正确的对象结构 + configurationSchema.value = value; +} + async function addNode() { if (!isAddDisabled.value && selectedGroupId.value !== null) { isAdding.value = true - await nodeRepository.insert({ - created_at: null, - id: null, - updated_at: null, - alias: nodeAlias.value, - arguments: nodeArguments.value, - group_id: selectedGroupId.value - }) - notify(t('addNode.nodeAddedSuccess')) - isAdding.value = false + try { + await nodeRepository.insert({ + created_at: null, + id: null, + updated_at: null, + alias: nodeAlias.value, + arguments: nodeConfig.value || {}, + group_id: selectedGroupId.value + }) + notify(t('addNode.nodeAddedSuccess')) + // Reset form after successful submission + nodeAlias.value = '' + nodeConfig.value = null + } catch (error) { + console.error('Error adding node:', error) + notify(t('addNode.nodeAddedError')) + } finally { + isAdding.value = false + } } }