Appearance
formData
js
import { useInitFormData } from '@/components/Form';
const formData = ref(useInitFormData(props.bucket));
表单项白名单
js
export const INCLUDE_WIDGETS_WITH_INITIAL_VALUE = [
'ainput',
'ainputnumber',
'aselect',
'adatepicker',
'arangepicker',
'acheckboxgroup',
'acheckbox',
'aupload',
'acascader',
'aswitch',
'ainputpassword',
'aradiogroup',
'aradio',
'atimepicker',
'atimerangepicker',
'atransfer',
'atree',
'atreeselect',
'arate',
'aslider',
'aautocomplete',
'aimage',
'atag',
'acheckabletag',
'ainputsearch',
];
可以添加物料
useInitFormData
js
import { INCLUDE_WIDGETS_WITH_INITIAL_VALUE } from './components/cosfee-material';
/** @description 针对表单 formData 格式化赋初始值 */
export const useInitFormData = (
formProps,
formData = {},
initialValue = null
) => {
if (Array.isArray(formProps) && formProps.length) {
for (let i = 0, length = formProps.length; i < length; i++) {
useInitFormData(formProps[i], formData);
}
} else if (formProps.bucket) useInitFormData(formProps.bucket, formData);
if (!formProps.widget) return formData;
const lowerCaseWidget = formProps.widget.toLowerCase();
if (INCLUDE_WIDGETS_WITH_INITIAL_VALUE.includes(lowerCaseWidget)) {
formData[formProps.alias] = { text: initialValue };
}
return formData;
};
递归找到符合白名单定义的表单项(widget), 组装数据返回新对象;
返回结构
json
{
[alias]: {text: initialValue}
}