Fixes: Bugs fixed #10703 (#11154)

### What problem does this PR solve?

Fixes: Bugs fixed
- Removed invalid code,
- Modified the user center style,
- Added an automatic data source parsing switch.

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
chanx
2025-11-11 11:18:07 +08:00
committed by GitHub
parent ba6470a7a5
commit 7db6cb8ca3
43 changed files with 1201 additions and 757 deletions

View File

@ -1,5 +1,6 @@
import { IconFontFill } from '@/components/icon-font';
import { Button } from '@/components/ui/button';
import { Switch } from '@/components/ui/switch';
import {
Tooltip,
TooltipContent,
@ -24,16 +25,25 @@ export interface ILinkDataSourceProps {
data?: IConnector[];
handleLinkOrEditSubmit?: (data: IDataSourceBase[] | undefined) => void;
unbindFunc?: (item: DataSourceItemProps) => void;
handleAutoParse?: (option: {
source_id: string;
isAutoParse: boolean;
}) => void;
}
interface DataSourceItemProps extends IDataSourceNodeProps {
openLinkModalFunc?: (open: boolean, data?: IDataSourceNodeProps) => void;
unbindFunc?: (item: DataSourceItemProps) => void;
handleAutoParse?: (option: {
source_id: string;
isAutoParse: boolean;
}) => void;
}
const DataSourceItem = (props: DataSourceItemProps) => {
const { t } = useTranslation();
const { id, name, icon, source, unbindFunc } = props;
const { id, name, icon, source, auto_parse, unbindFunc, handleAutoParse } =
props;
const { navigateToDataSourceDetail } = useNavigatePage();
const { handleRebuild } = useDataSourceRebuild();
@ -50,7 +60,19 @@ const DataSourceItem = (props: DataSourceItemProps) => {
</div>
<div>{name}</div>
</div>
<div className="flex items-center">
<div className="flex items-center ">
<div className="items-center gap-1 hidden mr-5 group-hover:flex">
<div className="text-xs text-text-secondary">
{t('knowledgeConfiguration.autoParse')}
</div>
<Switch
checked={auto_parse === '1'}
onCheckedChange={(isAutoParse) => {
handleAutoParse?.({ source_id: id, isAutoParse });
}}
className="w-8 h-4"
/>
</div>
<Tooltip>
<TooltipTrigger>
<Button
@ -105,7 +127,12 @@ const DataSourceItem = (props: DataSourceItemProps) => {
};
const LinkDataSource = (props: ILinkDataSourceProps) => {
const { data, handleLinkOrEditSubmit: submit, unbindFunc } = props;
const {
data,
handleLinkOrEditSubmit: submit,
unbindFunc,
handleAutoParse,
} = props;
const { t } = useTranslation();
const [openLinkModal, setOpenLinkModal] = useState(false);
@ -176,6 +203,7 @@ const LinkDataSource = (props: ILinkDataSourceProps) => {
key={item.id}
openLinkModalFunc={openLinkModalFunc}
unbindFunc={unbindFunc}
handleAutoParse={handleAutoParse}
{...item}
/>
),

View File

@ -83,6 +83,7 @@ export const formSchema = z
name: z.string().optional(),
source: z.string().optional(),
ststus: z.string().optional(),
auto_parse: z.string().optional(),
}),
)
.optional(),

View File

@ -7,6 +7,7 @@ import { Form } from '@/components/ui/form';
import { FormLayout } from '@/constants/form';
import { DocumentParserType } from '@/constants/knowledge';
import { PermissionRole } from '@/constants/permission';
import { IConnector } from '@/interfaces/database/knowledge';
import { DataSourceInfo } from '@/pages/user-setting/data-source/contant';
import { IDataSourceBase } from '@/pages/user-setting/data-source/interface';
import { zodResolver } from '@hookform/resolvers/zod';
@ -149,11 +150,12 @@ export default function DatasetSettings() {
// }
// };
const handleLinkOrEditSubmit = (data: IDataSourceBase[] | undefined) => {
const handleLinkOrEditSubmit = (data: IConnector[] | undefined) => {
if (data) {
const connectors = data.map((connector) => {
return {
...connector,
auto_parse: connector.auto_parse === '0' ? '0' : '1',
icon:
DataSourceInfo[connector.source as keyof typeof DataSourceInfo]
?.icon || '',
@ -208,6 +210,31 @@ export default function DatasetSettings() {
// form.setValue('pipeline_avatar', data.avatar || '');
}
};
const handleAutoParse = ({
source_id,
isAutoParse,
}: {
source_id: string;
isAutoParse: boolean;
}) => {
if (source_id) {
const connectors = sourceData?.map((connector) => {
if (connector.id === source_id) {
return {
...connector,
auto_parse: isAutoParse ? '1' : '0',
};
}
return connector;
});
console.log('🚀 ~ DatasetSettings ~ connectors:', connectors);
setSourceData(connectors as IDataSourceNodeProps[]);
form.setValue('connectors', connectors || []);
// form.setValue('pipeline_name', data.name || '');
// form.setValue('pipeline_avatar', data.avatar || '');
}
};
return (
<section className="p-5 h-full flex flex-col">
<TopTitle
@ -269,6 +296,7 @@ export default function DatasetSettings() {
data={sourceData}
handleLinkOrEditSubmit={handleLinkOrEditSubmit}
unbindFunc={unbindFunc}
handleAutoParse={handleAutoParse}
/>
</MainContainer>
</div>