快速创建一个表单

303 天前
 594mantou

最近优化 DuoyunUI 时写了一些“模式”,就是一些我经常遇到的需求进行了一些抽象实现,比如创建一个表单(复制到控制台试试):

import("https://esm.sh/duoyun-ui/patterns/form?bundle").then(({ createForm }) => {
  createForm({
    type: "modal",
    data: { firstName: "First Name", lastName: "Last Name", github: "https://github.com/mantou132" },
    header: `Create User`,
    formItems: [
      [{
        type: "text",
        field: "firstName",
        label: "First Name",
      },{
        type: "text",
        field: "lastName",
        label: "Last Name",
      }],{
        type: "text",
        field: "github",
        label: "Github",
      }
    ],
  });
});

返回一个 Promise ,对应提交和取消,参数可以添加 prepareOk/prepareClose 来打断关闭表单。

字段支持的 type: text password date date-time date-range number checkbox checkbox-group picker radio-group select textarea slot

其中 slot 是用来自定义的,比如:

{
  type: "slot",
  slot: new HTMLInputElement(),
  field: "github",
  label: "Github",
}

模式可以直接创建一个 CRUD 应用: https://duoyun-ui.gemjs.org/zh/blog/crud

660 次点击
所在节点    前端开发
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1011158

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX