npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

dlx-form-design

v1.0.8

Published

基于vue、ant-design-vue的表单设计器,可视化开发表单

Downloads

4

Readme

表单设计器 dlx-form-design

简介

设计器布局参考form-generator项目,基于vue和ant-design-vue实现的表单设计器,样式使用less作为开发语言,主要功能是能通过简单操作来生成配置表单,生成可保存的JSON数据,并能将JSON还原成表单,使表单开发更简单更快速

目前vue3版本已经在开发中了,预计11月中旬上线测试版本

特性

  • 可视化配置页面
  • 提供栅格、表格等布局
  • 布局嵌套使用
  • 提供预览、保存、生成json、生成可执行代码等操作
  • 支持表单验证
  • 快速获取表单数据
  • 自定义组件插入
  • 自定义主题色

组件

  • DlxFormDesign 表单设计器(基于可视化操作快速设计出表单页面,生成配置json或页面)
  • DlxFormBuild 表单构建器(根据设计器中获取的配置json数据,快速构建出表单页面)

安装

安装表单设计器

npm i dlx-form-design --save
 
# OR
yarn add dlx-form-design

安装 ant-design-vue UI ,推荐 vue2 版本最新的 1.7.8版本

npm i [email protected] --save

# OR
yarn add [email protected]

引入组件

// 在main.js引入

// 注:useComponents 需放最上面,优先注册懒加载组件
import 'dlx-form-design/packages/core/useComponents'
import DlxFormDesign from 'dlx-form-design/packages/use.js'
import 'dlx-form-design/lib/dlx-form-design.css'

Vue.use(DlxFormDesign)

使用组件

<template>
  <div>
    <dlx-form-design hideResetHint :showHead="true" :columns="columns"/>
  </div>
</template>
<script>
  const data = [];

  for (let i = 0; i < 100; i++) {
    data.push({
      key: i,
      label: `字段名 ${i}`,
      model: `field${i}`,
      maxLength: 10,
      type: 'varchar'
    });
  }
  export default {
    name: "formDesign",
    data() {
      return {
        columns: data
      }
    }
  }

</script>

调用示例

<template>
  <div id="app">
    <button @click="setData">set</button>
    <div v-show="show">
      <dlx-form-build ref="kfb" :value="configJsonData" />
    </div>
  </div>
</template>

<script>
export default {
  name: "App",
  components: {},
  data() {
    return {
      show: false,
      configJsonData: {}
    };
  },
  methods: {
    setData() {
      this.configJsonData = {
        list: [
          {
            type: "input",
            label: "时间",
            options: {
              type: "text",
              width: "100%",
              defaultValue: "",
              placeholder: "请输入",
              clearable: false,
              maxLength: null,
              addonBefore: "",
              addonAfter: "秒",
              hidden: false,
              disabled: false
            },
            model: "time",
            key: "input_1664028803991",
            help: "这是时间",
            rules: [
              {
                required: true,
                message: "必填项"
              }
            ]
          },
          {
            type: "input",
            label: "次数",
            options: {
              type: "text",
              width: "100%",
              defaultValue: "",
              placeholder: "请输入",
              clearable: false,
              maxLength: null,
              addonBefore: "",
              addonAfter: "",
              hidden: false,
              disabled: false
            },
            model: "count",
            key: "input_1664028804858",
            help: "",
            rules: [
              {
                required: true,
                message: "必填项"
              }
            ]
          }
        ],
        config: {
          layout: "horizontal",
          labelCol: {
            xs: 4,
            sm: 4,
            md: 4,
            lg: 4,
            xl: 4,
            xxl: 4
          },
          labelWidth: 100,
          labelLayout: "flex",
          wrapperCol: {
            xs: 18,
            sm: 18,
            md: 18,
            lg: 18,
            xl: 18,
            xxl: 18
          },
          hideRequiredMark: false,
          customStyle: ""
        }
      };
      this.show = true;
      const data = { count: "1000", time: "10" };
      this.$refs.kfb.setData(data);
    }
  }
};
</script>

License

MIT Copyright (c) 2022 dszhang