Skip to content

Commit 83d8ee6

Browse files
committed
fix: Basic node data cannot be obtained in the workflow
1 parent 6434ba7 commit 83d8ee6

File tree

4 files changed

+58
-34
lines changed

4 files changed

+58
-34
lines changed

apps/application/flow/knowledge_workflow_manage.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,19 +101,3 @@ def hand_node_result(self, current_node, node_result_future):
101101
current_node.node_chunk.end()
102102
QuerySet(KnowledgeAction).filter(id=self.params.get('knowledge_action_id')).update(
103103
details=self.get_runtime_details())
104-
105-
def get_reference_field(self, node_id: str, fields: List[str]):
106-
"""
107-
@param node_id: 节点id
108-
@param fields: 字段
109-
@return:
110-
"""
111-
if node_id == 'knowledge-base-node':
112-
return INode.get_field(self.context, fields)
113-
elif node_id == 'chat':
114-
return INode.get_field(self.chat_context, fields)
115-
else:
116-
node = self.get_node_by_id(node_id)
117-
if node:
118-
return node.get_reference_field(fields)
119-
return None

ui/src/workflow/common/app-node.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,22 @@ class AppNode extends HtmlResize.view {
7777
children: this.props.model.properties?.config?.chatFields || [],
7878
})
7979
}
80+
if (this.props.model.type === 'knowledge-base-node') {
81+
let globalFields = []
82+
if (this.props.model.properties.user_input_field_list) {
83+
globalFields = this.props.model.properties.user_input_field_list.map((item: any) => ({
84+
label: item.label.label,
85+
value: item.field,
86+
}))
87+
}
88+
89+
result.push({
90+
value: 'global',
91+
label: t('views.workflow.variable.global'),
92+
type: 'global',
93+
children: globalFields,
94+
})
95+
}
8096
result.push({
8197
value: this.props.model.id,
8298
icon: this.props.model.properties.node_data?.icon,

ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,7 @@ function refreshFieldList(data: any, index: any) {
155155
inputFieldList.value.push(data)
156156
}
157157
UserFieldFormDialogRef.value.close()
158-
const fields = inputFieldList.value.map((item) => ({
159-
label: item.label.label,
160-
value: item.field,
161-
}))
162-
163158
set(props.nodeModel.properties, 'user_input_field_list', cloneDeep(inputFieldList.value))
164-
set(props.nodeModel.properties.config, 'fields', fields)
165159
onDragHandle()
166160
}
167161
@@ -217,12 +211,6 @@ onMounted(() => {
217211
inputFieldList.value = cloneDeep(props.nodeModel.properties.user_input_field_list)
218212
}
219213
220-
const fields = inputFieldList.value.map((item) => ({
221-
label: item.label.label,
222-
value: item.field,
223-
}))
224-
set(props.nodeModel.properties.config, 'fields', fields)
225-
226214
onDragHandle()
227215
})
228216
</script>

ui/src/workflow/nodes/knowledge-base-node/index.vue

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,60 @@
11
<template>
22
<NodeContainer :nodeModel="nodeModel">
33
<UserInputFieldTable ref="UserInputFieldTableFef" :node-model="nodeModel" />
4+
<template v-if="nodeFields.length > 0">
5+
<h5 class="title-decoration-1 mb-8 mt-8">
6+
{{ $t('common.param.outputParam') }}
7+
</h5>
8+
<template v-for="(item, index) in nodeFields" :key="index">
9+
<div
10+
class="flex-between border-r-6 p-8-12 mb-8 layout-bg lighter"
11+
@mouseenter="showicon = index"
12+
@mouseleave="showicon = null"
13+
>
14+
<span class="break-all">{{ item.label }} {{ '{' + item.value + '}' }}</span>
15+
<el-tooltip
16+
effect="dark"
17+
:content="$t('views.workflow.setting.copyParam')"
18+
placement="top"
19+
v-if="showicon === index"
20+
>
21+
<el-button link @click="copyClick(item.globeLabel)" style="padding: 0">
22+
<AppIcon iconName="app-copy"></AppIcon>
23+
</el-button>
24+
</el-tooltip>
25+
</div>
26+
</template>
27+
</template>
428
</NodeContainer>
529
</template>
630
<script setup lang="ts">
7-
import { set } from 'lodash'
831
import NodeContainer from '@/workflow/common/NodeContainer.vue'
9-
import type { FormInstance } from 'element-plus'
1032
import { ref, computed, onMounted, inject } from 'vue'
11-
import { t } from '@/locales'
12-
import UserInputFieldTable from './component/UserInputFieldTable.vue'
33+
import { copyClick } from '@/utils/clipboard'
34+
import { set } from 'lodash'
1335
36+
import UserInputFieldTable from './component/UserInputFieldTable.vue'
37+
const showicon = ref<number | null>(null)
1438
const getResourceDetail = inject('getResourceDetail') as any
1539
1640
const props = defineProps<{ nodeModel: any }>()
1741
1842
const UserInputFieldTableFef = ref()
1943
20-
const baseNodeFormRef = ref<FormInstance>()
21-
44+
const nodeFields = computed(() => {
45+
if (props.nodeModel.properties.user_input_field_list) {
46+
const fileds = props.nodeModel.properties.user_input_field_list.map((item: any) => ({
47+
label: typeof item.label == 'string' ? item.label : item.label.label,
48+
value: item.field,
49+
globeLabel: `{{global.${typeof item.label == 'string' ? item.label : item.label.label}}}`,
50+
globeValue: `{{context['global'].${item.field}}}`,
51+
}))
52+
set(props.nodeModel.properties.config, 'globalFields', fileds)
53+
return fileds
54+
}
55+
set(props.nodeModel.properties.config, 'globalFields', [])
56+
return []
57+
})
2258
const resource = getResourceDetail()
2359
2460
onMounted(() => {})

0 commit comments

Comments
 (0)