From 700aa7f13377c21987fa23ad330776a007912cde Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 29 七月 2026 13:51:35 +0800
Subject: [PATCH] refactor(srm): 优化投标模块获奖信息获取和文件上传组件
---
src/packages/@core/ui-kit/form-ui/src/form-api.ts | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 48 insertions(+), 1 deletions(-)
diff --git a/src/packages/@core/ui-kit/form-ui/src/form-api.ts b/src/packages/@core/ui-kit/form-ui/src/form-api.ts
index 920b1b6..862d164 100644
--- a/src/packages/@core/ui-kit/form-ui/src/form-api.ts
+++ b/src/packages/@core/ui-kit/form-ui/src/form-api.ts
@@ -166,7 +166,54 @@
const values = form.values
? this.handleRangeTimeValue(cloneDeep(toRaw(form.values)))
: {};
- return this.handleValueFormat(values) as T;
+ const result = this.handleValueFormat(values);
+ // 鑷姩鎻愬彇 FileUpload/Upload 瀛楁涓殑鏂囦欢 ID锛岄伩鍏嶆彁浜ゆ椂鎼哄甫瀹屾暣鏂囦欢瀵硅薄
+ const currentSchema = this.state?.schema ?? [];
+ for (const schema of currentSchema) {
+ // 鍏煎瀛楃涓茬被鍨嬪拰宸茶В鏋愮殑 Vue Component 瀵硅薄
+ const compName: string =
+ typeof schema.component === 'string'
+ ? schema.component
+ : (schema.component as any)?.name ?? '';
+ if (compName !== 'FileUpload' && compName !== 'Upload') {
+ continue;
+ }
+ if (schema.valueFormat) continue;
+ const fieldName = schema.fieldName;
+ const rawValue = result[fieldName];
+ if (
+ rawValue == null ||
+ !Array.isArray(rawValue) ||
+ rawValue.length === 0
+ ) {
+ continue;
+ }
+ if (
+ typeof rawValue[0] !== 'object' ||
+ !('status' in rawValue[0])
+ ) {
+ continue;
+ }
+ const props = (schema.componentProps || {}) as Record<string, any>;
+ const valueKey = props.valueKey || 'url';
+ const maxNumber = props.maxNumber ?? 1;
+ const resultField = props.resultField;
+ const valuePrefix = props.valuePrefix || '';
+ const list = rawValue
+ .filter((item: any) => item?.status === 'done')
+ .map((item: any) => {
+ if (resultField && item?.response) return item.response;
+ const v =
+ item?.response?.[valueKey] ??
+ item?.[valueKey] ??
+ item?.url ??
+ item?.response?.url ??
+ item?.response;
+ return valuePrefix ? `${valuePrefix}${v}` : v;
+ });
+ result[fieldName] = maxNumber === 1 ? (list[0] ?? '') : list;
+ }
+ return result as T;
}
async isFieldValid(fieldName: string) {
--
Gitblit v1.9.3