feat: new dbgpts modules (#1910)

Co-authored-by: 途杨 <tuyang.yhj@antgroup.com>
Co-authored-by: lhwan <1017484907@qq.com>
This commit is contained in:
明天
2024-08-28 21:31:42 +08:00
committed by GitHub
parent bb5d2d1f3d
commit d7a893e1a7
289 changed files with 3533 additions and 901 deletions

View File

@@ -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">

View File

@@ -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>