1/** 2 * Created by Liu.Jun on 2020/4/23 10:50. 3 */ 4 5import { h } from 'vue'; 6import { getWidgetConfig, optionsList } from '@lljj/vjsf-utils/formUtils'; 7 8import Widget from '../../components/Widget'; 9import vueProps from '../props'; 10 11export default { 12 name: 'BooleanField', 13 props: vueProps, 14 setup(props, { attrs }) { 15 return () => { 16 const { 17 schema, uiSchema, curNodePath, rootFormData, globalOptions 18 } = props; 19 20 // Bool 会默认传入枚举类型选项 true false 21 const enumOptions = optionsList({ 22 enumNames: schema.enumNames || ['true', 'false'], 23 enum: schema.enum || [true, false] 24 }, uiSchema, curNodePath, rootFormData); 25 26 const widgetConfig = getWidgetConfig({ 27 schema, 28 uiSchema, 29 curNodePath, 30 rootFormData 31 }, () => ({ 32 widget: globalOptions.WIDGET_MAP.types.boolean 33 })); 34 35 widgetConfig.uiProps.enumOptions = widgetConfig.uiProps.enumOptions || enumOptions; 36 37 return h( 38 Widget, 39 { 40 ...attrs, 41 ...props, 42 ...widgetConfig 43 } 44 ); 45 }; 46 } 47}; 48