user_input_form: formatVariableData()

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) =>