Merge pull request #501 from SuanmoSuanyangTechnology/fix/release_web_zy

Fix/release web zy
This commit is contained in:
yingzhao
2026-03-06 17:29:09 +08:00
committed by GitHub
2 changed files with 14 additions and 16 deletions

View File

@@ -35,7 +35,8 @@ const NODE_VARIABLES = {
], ],
'http-request': [ 'http-request': [
{ label: 'body', dataType: 'string', field: 'body' }, { label: 'body', dataType: 'string', field: 'body' },
{ label: 'status_code', dataType: 'number', field: 'status_code' } { label: 'status_code', dataType: 'number', field: 'status_code' },
{ label: 'headers', dataType: 'object', field: 'headers' },
], ],
'question-classifier': [{ label: 'class_name', dataType: 'string', field: 'class_name' }], 'question-classifier': [{ label: 'class_name', dataType: 'string', field: 'class_name' }],
'memory-read': [ 'memory-read': [
@@ -390,11 +391,6 @@ export const useVariableList = (
addVariable(list, keys, `${pid}_item`, 'item', itemType, `${pid}.item`, pd); addVariable(list, keys, `${pid}_item`, 'item', itemType, `${pid}.item`, pd);
addVariable(list, keys, `${pid}_index`, 'index', 'number', `${pid}.index`, pd); addVariable(list, keys, `${pid}_index`, 'index', 'number', `${pid}.index`, pd);
} else if (pd.type === 'iteration' && !pd.config.input.defaultValue) { } else if (pd.type === 'iteration' && !pd.config.input.defaultValue) {
let itemType = 'object';
const iv = list.find(v => `{{${v.value}}}` === pd.config.input.defaultValue);
if (iv?.dataType.startsWith('array[')) {
itemType = iv.dataType.replace(/^array\[(.+)\]$/, '$1');
}
addVariable(list, keys, `${pid}_item`, 'item', 'string', `${pid}.item`, pd); addVariable(list, keys, `${pid}_item`, 'item', 'string', `${pid}.item`, pd);
addVariable(list, keys, `${pid}_index`, 'index', 'number', `${pid}.index`, pd); addVariable(list, keys, `${pid}_index`, 'index', 'number', `${pid}.index`, pd);
} }

View File

@@ -114,16 +114,16 @@ const Properties: FC<PropertiesProps> = ({
*/ */
const updateNodeLabel = (newLabel: string) => { const updateNodeLabel = (newLabel: string) => {
if (selectedNode && form) { if (selectedNode && form) {
const nodeData = selectedNode.data as NodeProperties; const nodeData = selectedNode.getData() as NodeProperties;
selectedNode.setAttrByPath('text/text', `${nodeData.icon} ${newLabel}`); selectedNode.setAttrByPath('text/text', `${nodeData.icon} ${newLabel}`);
selectedNode.setData({ ...selectedNode.data, name: newLabel }); selectedNode.setData({ ...selectedNode.getData(), name: newLabel });
} }
}; };
useEffect(() => { useEffect(() => {
if (values && selectedNode) { if (values && selectedNode) {
const { id, knowledge_retrieval, group, group_variables, ...rest } = values const { id, knowledge_retrieval, group, group_variables, ...rest } = values
const { knowledge_bases = [], ...restKnowledgeConfig } = (knowledge_retrieval as any) || {} const { knowledge_bases = [], name: _name, description: _description, ...restKnowledgeConfig } = (knowledge_retrieval as any) || {}
let allRest = { let allRest = {
...rest, ...rest,
@@ -136,21 +136,23 @@ const Properties: FC<PropertiesProps> = ({
})) }))
} }
const nodeData = selectedNode.getData()
Object.keys(values).forEach(key => { Object.keys(values).forEach(key => {
if (selectedNode.data?.config?.[key]) { if (nodeData?.config?.[key]) {
// Create a deep copy to avoid reference sharing between nodes // Create a deep copy to avoid reference sharing between nodes
if (!selectedNode.data.config[key]) { if (!nodeData.config[key]) {
selectedNode.data.config[key] = {}; nodeData.config[key] = {};
} }
selectedNode.data.config[key] = { nodeData.config[key] = {
...selectedNode.data.config[key], ...nodeData.config[key],
defaultValue: values[key] defaultValue: values[key]
}; };
} }
}) })
selectedNode?.setData({ selectedNode?.setData({
...selectedNode.data, ...nodeData,
...allRest, ...allRest,
}) })
} }