in spring-ai-alibaba-graph/spring-ai-alibaba-graph-studio/graph-ui/src/pages/Agent/Edit/index.tsx [504:624]
user_input_form: formatVariableData(),
},
version: '0.1.4',
};
};
// 添加上下文modal
const [isAddContextModalOpen, setAddContextModalOpen] = useState(false);
// 可用的资料库
type AvailableDataset = {
id: string;
name: string;
tag: string;
};
const [availableDatasets, setAvailableDatasets] = useState<
AvailableDataset[]
>([
{
id: '1',
name: 'index.htmldadadadadasdada',
tag: '高质量·向量检索',
},
{
id: '2',
name: 'index.html',
tag: '高质量·向量检索',
},
]);
// 选择的资料库
const [selectedDataset, setSelectedDataset] = useState<AvailableDataset[]>(
[],
);
// 使用的资料库
const [usedDatasets, setUsedDatasets] = useState<AvailableDataset[]>([]);
// 点击资料库添加选择
const handleDatasetSelect = (dataset: AvailableDataset) => {
const isDatasetSelected = selectedDataset.some(
(item) => item.id === dataset.id,
);
if (isDatasetSelected) {
setSelectedDataset(
selectedDataset.filter((item) => item.id !== dataset.id),
);
} else {
setSelectedDataset([...selectedDataset, dataset]);
}
};
// 添加上下文
const handleAddContextOk = () => {
setAddContextModalOpen(false);
setUsedDatasets(usedDatasets.concat(selectedDataset));
};
return (
<>
{/* 编辑变量Modal */}
<Modal
centered
title="编辑变量"
open={isEditModalOpen}
okText="保存"
onOk={handleEditOk}
onCancel={handleEditCancel}
>
<Form
form={editForm}
layout="vertical"
initialValues={currentVariable || undefined}
>
<Form.Item label="字段类型" name="type">
<Radio.Group
block
options={fieldTypeOptions}
value={currentVariable?.type}
onChange={(e) => handleFieldChange('type', e.target.value)}
optionType="button"
buttonStyle="solid"
/>
</Form.Item>
<Form.Item label="变量名称" name="name">
<Input
value={currentVariable?.key}
onChange={(e) => handleFieldChange('key', e.target.value)}
placeholder="请输入"
variant="filled"
/>
</Form.Item>
<Form.Item label="显示名称" name="optional">
<Input
value={currentVariable?.name}
onChange={(e) => handleFieldChange('name', e.target.value)}
placeholder="请输入"
variant="filled"
/>
</Form.Item>
{currentVariable?.maxLength && (
<Form.Item label="最大长度" name="maxLength">
<Input
min={1}
type="number"
value={currentVariable?.maxLength}
onChange={(e) =>
handleFieldChange('maxLength', parseInt(e.target.value))
}
placeholder="请输入"
variant="filled"
/>
</Form.Item>
)}
{currentVariable?.options && (
<Form.Item label="选项" name="options">
<Space direction="vertical" style={{ width: '100%' }}>
{currentVariable.options.map((option, index) => (
<Flex key={index} gap={10} style={{ width: '100%' }}>
<Input
style={{ width: '100%' }}
value={option}
onChange={(e) =>