刘光辉
7 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
export function getFormDataOptions(config: any, formData: any): any[] {
  if (config?.dataType !== 'formData' || !config.formDataSource) return [];
 
  const sourceData = formData?.[config.formDataSource];
  return Array.isArray(sourceData) ? sourceData.map((item) => ({ ...item })) : [];
}
 
export function getFormDataOptionLabel(config: any, formData: any, value: any): any {
  const sourceConfig = config?.__config__ || config;
  const fieldProps = config?.props || sourceConfig?.props;
  if (sourceConfig?.dataType !== 'formData' || !fieldProps?.value || !fieldProps?.label) return value;
 
  const options = getFormDataOptions(sourceConfig, formData);
  const getLabel = (itemValue) => {
    const option = options.find((item) => item?.[fieldProps.value] === itemValue || String(item?.[fieldProps.value]) === String(itemValue));
    return option && Object.prototype.hasOwnProperty.call(option, fieldProps.label) ? option[fieldProps.label] : itemValue;
  };
 
  return Array.isArray(value) ? value.map(getLabel) : getLabel(value);
}