fix: tool update refresh

This commit is contained in:
zhaoying
2025-12-30 18:19:31 +08:00
parent 262952c022
commit 67d6286274
4 changed files with 21 additions and 16 deletions

View File

@@ -2,7 +2,7 @@ import { forwardRef, useImperativeHandle, useState, useEffect } from 'react';
import { Form, Select } from 'antd';
import { useTranslation } from 'react-i18next';
import type { ModelConfig, ModelConfigModalRef, Config, ChatData } from '../types'
import type { ModelConfig, ModelConfigModalRef, Config, Source } from '../types'
import type { Model } from '@/views/ModelManagement/types'
import RbModal from '@/components/RbModal'
import RbSlider from '@/components/RbSlider'
@@ -10,10 +10,9 @@ import RbSlider from '@/components/RbSlider'
const FormItem = Form.Item;
interface ModelConfigModalProps {
modelList: Model[];
refresh: (values: ModelConfig, type: 'model') => void;
modelList?: Model[];
refresh: (values: ModelConfig, type: Source) => void;
data: Config;
chatList: ChatData[]
}
const configFields = [
@@ -28,12 +27,12 @@ const configFields = [
const ModelConfigModal = forwardRef<ModelConfigModalRef, ModelConfigModalProps>(({
refresh,
data,
modelList
modelList = []
}, ref) => {
const { t } = useTranslation();
const [visible, setVisible] = useState(false);
const [form] = Form.useForm<ModelConfig>();
const [source, setSource] = useState<'chat' | 'model'>('model')
const [source, setSource] = useState<Source>('model')
const values = Form.useWatch([], form);
@@ -43,14 +42,14 @@ const ModelConfigModal = forwardRef<ModelConfigModalRef, ModelConfigModalProps>(
form.resetFields();
};
const handleOpen = (source: 'chat' | 'model', model) => {
const handleOpen = (source: Source, model?: any) => {
setSource(source)
if (source === 'model') {
form.setFieldsValue({
...(data?.model_parameters || {}),
default_model_config_id: data.default_model_config_id || ''
})
} else if (source === 'chat') {
} else if (source === 'chat' || source === 'multi_agent') {
if (model) {
form.setFieldsValue({
...(model?.model_parameters || {}),
@@ -77,9 +76,9 @@ const ModelConfigModal = forwardRef<ModelConfigModalRef, ModelConfigModalProps>(
console.log('err', err)
});
}
const handleChange = (value: string, option: Model) => {
const handleChange = (_value: string, option: Model | Model[] | undefined) => {
if (source === 'chat') {
form.setFieldValue('label', option.name)
form.setFieldValue('label', (option as Model).name)
}
}
@@ -104,14 +103,15 @@ const ModelConfigModal = forwardRef<ModelConfigModalRef, ModelConfigModalProps>(
<Form
form={form}
layout="vertical"
className="rb:ml-[7px]!"
className="rb:ml-1.75!"
>
<FormItem
name="default_model_config_id"
label={t('application.currentModel')}
rules={[{ required: true, message: t('common.pleaseSelect') }]}
rules={[{ required: source !== 'multi_agent', message: t('common.pleaseSelect') }]}
hidden={source === 'multi_agent'}
>
<Select
{source !== 'multi_agent' && <Select
placeholder={t('common.pleaseSelect')}
fieldNames={{
label: 'name',
@@ -119,11 +119,11 @@ const ModelConfigModal = forwardRef<ModelConfigModalRef, ModelConfigModalProps>(
}}
options={modelList}
onChange={handleChange}
/>
/>}
</FormItem>
{source === 'chat' && <FormItem name="label" hidden />}
<div className="rb:text-[14px] rb:font-medium rb:text-[#5B6167] rb:mb-[16px]">{t('application.parameterConfig')}</div>
<div className="rb:text-[14px] rb:font-medium rb:text-[#5B6167] rb:mb-4">{t('application.parameterConfig')}</div>
{configFields.map(item => (
<FormItem

View File

@@ -56,6 +56,8 @@ const Mcp: React.FC<{ getStatusTag: (status: string) => ReactNode }> = ({ getSta
testConnection(item.id)
.then(() => {
message.success(t('tool.testConnectionSuccess'));
})
.finally(() => {
getData()
})
};

View File

@@ -75,6 +75,9 @@ const InnerToolModal = forwardRef<InnerToolModalRef, InnerToolModalProps>(({
.then(() => {
message.success(t('tool.testConnectionSuccess'));
})
.finally(() => {
refreshTable()
})
};
// 暴露给父组件的方法

View File

@@ -115,10 +115,10 @@ const McpServiceModal = forwardRef<McpServiceModalRef, McpServiceModalProps>(({
testConnection(res.tool_id || editVo?.id)
.then(() => {
handleClose();
refresh()
})
.finally(() => {
setLoading(false);
refresh()
})
})
.catch(() => {