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