Form.js 1.24 KB
import template from "./Form.html";
import style from "antd/lib/form/style/index.css";

class Form {
    useModules = ["esNgAntd"];

    props = {
        name: String,
        labelCol: Object,
        wrapperCol: Object,
        onFinish: Function,
    };
    state = {};
    template = template;

    constructor() {
        esNgAntd.createStyle("ant-form", style);

        if (this.props.name) {
            let inputs = $element[0].querySelectorAll("input");
            for (let i = 0; i < inputs.length; i++) {
                const element = inputs[i];
                element.id = this.props.name + "_" + element.id;
            }
        }
    }

    handleSubmit() {
        let values = {};
        let inputs = $element[0].querySelectorAll("input");
        for (let i = 0; i < inputs.length; i++) {
            const element = inputs[i];
            const value = element.value === "" ? null : element.value;
            if (element.id) {
                if (element.id.split("_").length > 1) {
                    values[element.id.split("_")[1]] = value;
                } else {
                    values[element.id] = value;
                }
            }
        }
        this.props.onFinish({
            values: values,
        });
    }
}