mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-12 12:37:14 +00:00
feat: new dbgpts modules (#1910)
Co-authored-by: 途杨 <tuyang.yhj@antgroup.com> Co-authored-by: lhwan <1017484907@qq.com>
This commit is contained in:
@@ -121,13 +121,13 @@ function FormDialog({ open, choiceDBType, dbTypeList, editValue, dbNames, onClos
|
||||
|
||||
const lockDBType = useMemo(() => !!editValue || !!choiceDBType, [editValue, choiceDBType]);
|
||||
return (
|
||||
<Modal open={open} width={400} title={editValue ? t('Edit') : t('create_database')} maskClosable={false} footer={null} onCancel={onClose}>
|
||||
<Modal open={open} width={800} title={editValue ? t('Edit') : t('create_database')} maskClosable={false} footer={null} onCancel={onClose}>
|
||||
<Form form={form} className="pt-2" labelCol={{ span: 6 }} labelAlign="left" onFinish={onFinish}>
|
||||
<Form.Item name="db_type" label="DB Type" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_type" label="DB Type" className="mb-6" rules={[{ required: true }]}>
|
||||
<Select aria-readonly={lockDBType} disabled={lockDBType} options={dbTypeList} />
|
||||
</Form.Item>
|
||||
{form.getFieldValue('db_type') === 'omc' ? (
|
||||
<Form.Item name="db_name" label="DB Name" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_name" label="DB Name" className="mb-6" rules={[{ required: true }]}>
|
||||
<Select
|
||||
optionRender={(option, { index }) => {
|
||||
const item = omcDBList[index] as any;
|
||||
@@ -166,37 +166,37 @@ function FormDialog({ open, choiceDBType, dbTypeList, editValue, dbNames, onClos
|
||||
/>
|
||||
</Form.Item>
|
||||
) : (
|
||||
<Form.Item name="db_name" label="DB Name" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_name" label="DB Name" className="mb-6" rules={[{ required: true }]}>
|
||||
<Input readOnly={!!editValue} disabled={!!editValue} />
|
||||
</Form.Item>
|
||||
)}
|
||||
{fileDb === true && (
|
||||
<Form.Item name="db_path" label="Path" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_path" label="Path" className="mb-6" rules={[{ required: true }]}>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
)}
|
||||
{fileDb === false && form.getFieldValue('db_type') !== 'omc' && (
|
||||
<>
|
||||
<Form.Item name="db_user" label="Username" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_user" label="Username" className="mb-6" rules={[{ required: true }]}>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item name="db_pwd" label="Password" className="mb-3" rules={[{ required: false }]}>
|
||||
<Form.Item name="db_pwd" label="Password" className="mb-6" rules={[{ required: false }]}>
|
||||
<Input type="password" />
|
||||
</Form.Item>
|
||||
<Form.Item name="db_host" label="Host" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_host" label="Host" className="mb-6" rules={[{ required: true }]}>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item name="db_port" label="Port" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_port" label="Port" className="mb-6" rules={[{ required: true }]}>
|
||||
<InputNumber min={1} step={1} max={65535} />
|
||||
</Form.Item>
|
||||
</>
|
||||
)}
|
||||
{form.getFieldValue('db_type') === 'omc' && (
|
||||
<Form.Item name="db_arn" label="Arn" className="mb-3" rules={[{ required: true }]}>
|
||||
<Form.Item name="db_arn" label="Arn" className="mb-6" rules={[{ required: true }]}>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
)}
|
||||
<Form.Item name="comment" label="Remark" className="mb-3">
|
||||
<Form.Item name="comment" label="Remark" className="mb-6">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item className="flex flex-row-reverse pt-1 mb-0">
|
||||
|
@@ -78,27 +78,6 @@ export default function DocUploadForm(props: IProps) {
|
||||
}),
|
||||
);
|
||||
break;
|
||||
case 'DOCUMENT':
|
||||
const file = originFileObj as any;
|
||||
const formData = new FormData();
|
||||
const filename = file?.name;
|
||||
const ques = questions.map((item) => item.question);
|
||||
formData.append('doc_name', filename);
|
||||
formData.append('doc_file', file);
|
||||
formData.append('doc_type', 'DOCUMENT');
|
||||
formData.append('questions', JSON.stringify(ques));
|
||||
[, docId] = await apiInterceptors(uploadDocument(spaceName, formData));
|
||||
console.log(docId);
|
||||
if (Number.isInteger(docId)) {
|
||||
setFiles((files: any) => {
|
||||
files.push({
|
||||
name: filename,
|
||||
doc_id: docId || -1,
|
||||
});
|
||||
return files;
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
setSpinning(false);
|
||||
if (docType === 'DOCUMENT' && files.length < 1) {
|
||||
@@ -123,8 +102,6 @@ export default function DocUploadForm(props: IProps) {
|
||||
const handleFileChange = ({ file, fileList }: UploadChangeParam) => {
|
||||
if (fileList.length === 0) {
|
||||
form.setFieldValue('originFileObj', null);
|
||||
} else {
|
||||
form.setFieldValue('originFileObj', file);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -294,23 +271,45 @@ export default function DocUploadForm(props: IProps) {
|
||||
);
|
||||
};
|
||||
|
||||
const uploadFile = async (options: any) => {
|
||||
const { onSuccess, onError, file } = options;
|
||||
const formData = new FormData();
|
||||
const filename = file?.name;
|
||||
formData.append('doc_name', filename);
|
||||
formData.append('doc_file', file);
|
||||
formData.append('doc_type', 'DOCUMENT');
|
||||
const [, docId] = await apiInterceptors(uploadDocument(spaceName, formData));
|
||||
if (Number.isInteger(docId)) {
|
||||
onSuccess && onSuccess(docId || 0);
|
||||
setFiles((files: any) => {
|
||||
files.push({
|
||||
name: filename,
|
||||
doc_id: docId || -1,
|
||||
});
|
||||
return files;
|
||||
});
|
||||
} else {
|
||||
onError && onError({ name: '', message: '' });
|
||||
}
|
||||
};
|
||||
|
||||
const renderDocument = () => {
|
||||
return (
|
||||
<>
|
||||
<Form.Item<FieldType> name="originFileObj" rules={[{ required: true, message: t('Please_select_file') }]}>
|
||||
<Dragger
|
||||
multiple
|
||||
beforeUpload={() => false}
|
||||
onChange={handleFileChange}
|
||||
maxCount={1}
|
||||
accept=".pdf,.ppt,.pptx,.xls,.xlsx,.doc,.docx,.txt,.md,.zip"
|
||||
maxCount={100}
|
||||
accept=".pdf,.ppt,.pptx,.xls,.xlsx,.doc,.docx,.txt,.md,.zip,.csv"
|
||||
customRequest={uploadFile}
|
||||
>
|
||||
<p className="ant-upload-drag-icon">
|
||||
<InboxOutlined />
|
||||
</p>
|
||||
<p style={{ color: 'rgb(22, 108, 255)', fontSize: '20px' }}>{t('Select_or_Drop_file')}</p>
|
||||
<p className="ant-upload-hint" style={{ color: 'rgb(22, 108, 255)' }}>
|
||||
PDF, PowerPoint, Excel, Word, Text, Markdown, Zip1
|
||||
PDF, PowerPoint, Excel, Word, Text, Markdown, Zip1, Csv
|
||||
</p>
|
||||
</Dragger>
|
||||
</Form.Item>
|
||||
|
Reference in New Issue
Block a user