diff --git a/web/src/views/ModelManagement/components/CustomModelModal.tsx b/web/src/views/ModelManagement/components/CustomModelModal.tsx index edeb732f..d22fbcdd 100644 --- a/web/src/views/ModelManagement/components/CustomModelModal.tsx +++ b/web/src/views/ModelManagement/components/CustomModelModal.tsx @@ -42,40 +42,43 @@ const CustomModelModal = forwardRef( } setVisible(true); }; + const handleUpdate = (data: CustomModelForm) => { + setLoading(true) + const res = isEdit ? updateCustomModel(model.id, data) : addCustomModel(data) + + res.then(() => { + refresh && refresh() + handleClose() + message.success(isEdit ? t('common.updateSuccess') : t('common.createSuccess')) + }) + .catch(() => { + setLoading(false) + }); + } const handleSave = () => { form .validateFields() .then((values) => { setLoading(true) - values.is_official = false; - const logo = values.logo as any; + const { logo, ...rest } = values; + let formData: CustomModelForm = { + ...rest + } + formData.is_official = false; + if (typeof logo === 'object' && logo?.response?.data.file_id) { - getFileLink(logo?.response?.data.file_id).then(res => { - const logoRes = res as { url: string } - values.logo = logoRes.url - addCustomModel(values).then(() => { - if (refresh) { - refresh(); - } - handleClose() - message.success(isEdit ? t('common.updateSuccess') : t('common.createSuccess')) + getFileLink(logo?.response?.data.file_id) + .then(res => { + const logoRes = res as { url: string } + formData.logo = logoRes.url + handleUpdate(formData) }) - .catch(() => { - setLoading(false) - }); - }) - } else { - values.logo = typeof logo === 'string' ? logo : logo.url - updateCustomModel(model.id, values).then(() => { - if (refresh) { - refresh(); - } - handleClose() - message.success(isEdit ? t('common.updateSuccess') : t('common.createSuccess')) - }) .catch(() => { - setLoading(false) - }); + handleUpdate(formData) + }) + } else { + formData.logo = typeof logo === 'string' ? logo : logo.url + handleUpdate(formData) } }) .catch((err) => { @@ -102,18 +105,18 @@ const CustomModelModal = forwardRef( form={form} layout="vertical" > - {!isEdit && - } + diff --git a/web/src/views/ModelManagement/components/GroupModelModal.tsx b/web/src/views/ModelManagement/components/GroupModelModal.tsx index 53a80c61..6ae54d4c 100644 --- a/web/src/views/ModelManagement/components/GroupModelModal.tsx +++ b/web/src/views/ModelManagement/components/GroupModelModal.tsx @@ -60,6 +60,8 @@ const GroupModelModal = forwardRef(({ const logoRes = res as { url: string } formData.logo = logoRes.url handleUpdate(formData) + }).catch(() => { + handleUpdate(formData) }) } else { formData.logo = typeof logo === 'string' ? logo : logo.url diff --git a/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx b/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx index cfe3f090..069f785d 100644 --- a/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx +++ b/web/src/views/ModelManagement/components/ModelImplement/SubModelModal.tsx @@ -24,14 +24,12 @@ const SubModelModal = forwardRef(({ const { message } = App.useApp() const [visible, setVisible] = useState(false); const [form] = Form.useForm(); - const [loading, setLoading] = useState(false) const [selecteds, setSelecteds] = useState([]) const [modelList, setModelList] = useState([]) // 封装取消方法,添加关闭弹窗逻辑 const handleClose = () => { form.resetFields(); - setLoading(false) setVisible(false); setSelecteds([]) }; @@ -56,13 +54,7 @@ const SubModelModal = forwardRef(({ const handleSave = () => { form .validateFields() - .then((values) => { - console.log('SubModelModal values', values, selecteds, selecteds.map(vo => ({ - ...vo[0], - model_name: vo[0].name, - model_config_ids: [vo[0].id], - id: vo[1].value - }))) + .then(() => { refresh?.(selecteds.map(vo => ({ ...vo[0], model_name: vo[0].name, @@ -127,7 +119,6 @@ const SubModelModal = forwardRef(({ onCancel={handleClose} okText={t('common.save')} onOk={handleSave} - confirmLoading={loading} >
{ + setLoading(true) addModelApiKey(model.id, { ...values, model_config_id: model.id,