import { shortcut, Widget, createWidget, isEmpty, isNotEmptyArray } from "@/core";

@shortcut()
export class Form extends Widget {
    static xtype = "demo.form";

    props = { baseCls: "demo-form" };

    render() {
        const widget = BI.createWidget({
            type: "bi.custom_form",
            width: 300,
            labelWidth: 100,
            items: [
                {
                    validate(v) {
                        return v !== "a" && v !== "";
                    },
                    tip(v) {
                        if (BI.isEmpty(v)) {
                            return "不能为空";
                        }

                        return "不合法格式";
                    },
                    label: "E-mail",
                    el: {
                        type: "bi.text_editor",
                        watermark: "输入a报错",
                        allowBlank: true,
                    },
                },
                {
                    validate(v) {
                        return BI.isNotEmptyArray(v);
                    },
                    tip() {
                        return "不能为空";
                    },
                    label: "性别",
                    el: {
                        type: "bi.text_value_combo",
                        text: "请选择",
                        items: [
                            {
                                text: "男",
                                value: 1,
                            },
                            {
                                text: "女",
                                value: 2,
                            }
                        ],
                    },
                },
                {
                    validate(v) {
                        return v !== "";
                    },
                    tip() {
                        return "不能为空";
                    },
                    label: "姓名",
                    el: {
                        type: "bi.text_editor",
                        watermark: "输入姓名",
                        allowBlank: true,
                    },
                },
                {
                    validate(v) {
                        return v !== "";
                    },
                    tip() {
                        return "不能为空";
                    },
                    label: "姓名",
                    el: {
                        type: "bi.textarea_editor",
                        cls: "bi-border",
                        watermark: "输入简介",
                        allowBlank: true,
                        height: 200,
                    },
                }
            ],
            layout: {
                type: "bi.vertical",
                vgap: 30,
            },
        });

        return {
            type: "bi.vertical",
            hgap: 200,
            vgap: 10,
            items: [
                widget,
                {
                    type: "bi.button",
                    text: "提交",
                    handler() {
                        widget.validate();

                        console.log(widget.getValue());
                    },
                }
            ],
        };
    }
}