fix: 统一上传响应与表单校验处理

- 上传组件统一解析后端响应并暴露错误事件

- AI 资源、模型提供商和工作流表单补齐程序化字段校验同步

- 修正 MinIO 对外访问域名配置
This commit is contained in:
2026-03-24 18:38:42 +08:00
parent 799174406e
commit da536ea742
9 changed files with 201 additions and 46 deletions

View File

@@ -6,8 +6,9 @@ import { ref } from 'vue';
import { useAppConfig } from '@easyflow/hooks';
import { useAccessStore } from '@easyflow/stores';
import { ElButton, ElUpload } from 'element-plus';
import { ElButton, ElMessage, ElUpload } from 'element-plus';
import { normalizeUploadError, resolveUploadPath } from '#/utils/upload-response';
import { $t } from '#/locales';
const props = defineProps({
@@ -31,6 +32,7 @@ const props = defineProps({
const emit = defineEmits([
'success', // 文件上传成功
'error',
'handleDelete',
'handlePreview',
'beforeUpload',
@@ -51,7 +53,18 @@ const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => {
emit('handleDelete', file, uploadFiles);
};
const handleSuccess: UploadProps['onSuccess'] = (response) => {
emit('success', response.data.path);
try {
emit('success', resolveUploadPath(response));
} catch (error) {
const normalizedError = normalizeUploadError(error);
ElMessage.error(normalizedError.message);
emit('error', normalizedError);
}
};
const handleError: UploadProps['onError'] = (error) => {
const normalizedError = normalizeUploadError(error);
ElMessage.error(normalizedError.message);
emit('error', normalizedError);
};
</script>
@@ -66,6 +79,7 @@ const handleSuccess: UploadProps['onSuccess'] = (response) => {
:on-remove="handleRemove"
:limit="props.limit"
:on-success="handleSuccess"
:on-error="handleError"
>
<ElButton type="primary">{{ $t('button.upload') }}</ElButton>
</ElUpload>