基于vant封装的动态表单(VFrom使用教程)

(四)vForm 动态表单自定义组件、属性 本章节详细讲述了自定义字段组件及组件属性的方法,熟悉了源码中的功能文件,可以帮助我们应对不同的定制化需求。 阅读详情
AI摘要

文章介绍了在使用Vant-UI开发移动端时,如何通过vform这个基于Vant-UI的二次封装组件来动态生成和管理表单,特别是处理多个复杂表单场景。vform支持JSON配置,内置校验规则,简化了大量表单创建和维护的工作。文章通过实例展示了如何引入依赖,配置动态表单数据,并在Vue页面中使用vform组件。

vant-ui是属于vue开发移动端中用的比较多的一个组件库了,网上基于它的一些组件的二次封装也数不胜数,但是却都是零零散散,不成体系。总不能用一个就去找类似的封装吧,这样拼凑起来的也不是我们想要的。尤其,涉及众多表单业务的时候。

1.场景需求 

假如你遇到这样一个场景,需要做一个表单收集。涉及到输入框,单选框,多选框,下拉框,时间选择等等七八个表单。基于vant-ui的情况下,去官网单个的去复制粘贴。就这样一个vue页面是不是起码就几百行了。这还不算假如是在一个tabs标签页下,每个标签页下都有七八个表单呢?

这个时候,阁下又该如何自处?组件化,那就多少个标签多少个组件。不利于维护。改起来也麻烦。写一个页面?哪起码上千行代码了。

先看下效果图,有个最直观的感受:

所以,当涉及多个表单时,我们就迫切的需要一个成体系化的二次封装表单。

2.vform使用说明

v-form: 🎉 基于Vant-UI进行二次封装动态生成表单,也可完全自定义控件,通过 JSON 的形式配置,内部集成繁琐的校验规则,可扩展的校验

文档有详细说明。照猫画虎对于一些动手能力强的人来说那就是手拿把掐。这里我也就不多加叙述了。

 3.从无到有

        文档上说的很清楚,也不得不承认它的封装的却是很好。不多相比于大多数业务场景而言,也用不到那么复制。就一个最常见的场景来说。生成表单,收集信息 这八个字就是我们的核心思想,迫切所需要的。

闲话少叙,跟随lz的脚步,我们一起实操下:

1.引入依赖,全局注册

 man.js

// 注册封装表单:https://gitee.com/cgb-lowcode/v-form
import VForm from '@xuanmo/v-form'
import '@xuanmo/v-form/packages/style/index.less'



Vue.use(VForm);
// 设置防抖时间,默认200ms
Vue.use(VForm, {
  debounceTime: 200
})

tips:项目技术栈是vue+vant。记得提前引入vant。

2.模拟动态表单数据

formModel.js

const formdata =  {
    family:[        
        { rules: { type: "VCell" } },
        {
            key:'text1',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra',
            }
        },
        {
            key:'text2',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text3',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text4',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text5',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text6',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text7',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        { rules: { type: "VCell" } },
        {
            key:'text8',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text9',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text10',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        { rules: { type: "VCell" } },
        {
            key:'text11',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text12',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text13',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text14',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text15',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        }
    ],
    health:[        
        { rules: { type: "VCell" } },
        {
            key:'text1',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra',
            }
        },
        {
            key:'text2',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text3',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text4',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
    ],
    children:[        
        { rules: { type: "VCell" } },
        {
            key:'text1',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra',
            }
        },
        {
            key:'text2',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text3',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text4',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        { rules: { type: "VCell" } },
        {
            key:'text5',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra',
            }
        },
        {
            key:'text6',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
    ],
    retire:[     
        { rules: { type: "VCell" } },
        {
            key:'text1',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra',
            }
        },
        {
            key:'text2',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text3',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text4',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text5',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text6',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        { rules: { type: "VCell" } },
        {
            key:'text7',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text8',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text9',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
    ],
    riches:[        
        { rules: { type: "VCell" } },
        {
            key:'text1',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra',
            }
        },
        {
            key:'text2',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text3',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text4',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        },
        {
            key:'text5',    
            value: '',
            rules: {
                label: '文本',
                type: 'VInput',
                vRules: 'required',
                placeholder: '请输入',
                errorMsg: '请输入',
                extra: 'extra'
            }
        }
    ]


}
export default formdata;

3.vue页面使用

<template>
  <div class='dataedit'>
    <van-nav-bar
      title='数据收集'
      left-arrow
      @click-left='$router.back()'
    ></van-nav-bar>
    <div class="main">
        <van-tabs @disabled="onClickDisabled" @change="changeTab" v-model.number="active" sticky color="#FF6837" title-active-color="#FF6837" line-width="0.5rem">
          <van-tab disabled>
            <template #title><img src="@/assets/menu/11.png" alt="" style="width:0.8rem;height:0.8rem;margin-top:0.2rem"></template>
          </van-tab>
          <van-tab title="表单1">
              <v-form
                ref="vform"
                v-model="formValue.family"
                :model="model.family"
                :disabled="disabled"
                label-width="80%"
                :label-color="labelColor"
                @change="change"
              >
              </v-form>
          </van-tab>
          <van-tab title="表单2">
            <v-form
                ref="vform"
                v-model="formValue.health"
                :model="model.health"
                :disabled="disabled"
                label-width="80%"
                :label-color="labelColor"
                @change="change"
              >
              </v-form>
          </van-tab>
          <van-tab title="表单3">
            <v-form
                ref="vform"
                v-model="formValue.children"
                :model="model.children"
                :disabled="disabled"
                label-width="80%"
                :label-color="labelColor"
                @change="change"
              >
              </v-form>
          </van-tab>
          <van-tab title="表单4">
            <v-form
                ref="vform"
                v-model="formValue.retire"
                :model="model.retire"
                :disabled="disabled"
                label-width="80%"
                :label-color="labelColor"
                @change="change"
              >
              </v-form>
          </van-tab>
          <van-tab title="表单5">
            <v-form
                ref="vform"
                v-model="formValue.riches"
                :model="model.riches"
                :disabled="disabled"
                label-width="80%"
                :label-color="labelColor"
                @change="change"
              >
              </v-form>
          </van-tab>
        </van-tabs>
    </div>
    <div class="btn">
        <van-button round block type="info" color="#FF6837" to="/sys/data/addinfo">保存</van-button>
    </div>
  </div>
</template>

<script>
import formModel from "./formModel";
export default {
  name: 'dataedit',
  data () {
    return {
        active:1,
        model:formModel,
        disabled: false,        // 是否禁用表单
        labelColor: "inherit",  // label颜色
        formValue: {            // 表单值
          family:{},
          health:{},
          retire:{},
          children:{},
          riches:{}
        },
    }
  },
  mounted(){
    console.log("参数:",this.$route.query.id);
  },
  methods: {
    onClickDisabled(){
      console.log("点击头像");
    },
    change({ value, errorMsg, isValid }) {
      console.log("表单值:",value);
      this.formData = value;
      this.formError = errorMsg;
      this.isValid = isValid;
    },
    changeTab(val){
      console.log("当前标签===》",val);
    },
  }
}
</script>

<style lang='less' scoped>
    ::v-deep .v-form-container .v-form-row{
        min-height: 1.5rem;
        padding-top: 0.25rem;
    }
    .main{
      ::v-deep .van-tab__pane{
        height: 80vh;
        overflow-y: auto;
        padding-bottom: 1rem;
      }
    }
    .btn{
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        height: 1.6rem;
        display: flex;
        justify-content: center;
        align-items: center;
        background: #ffffff;
        padding: 0 5%;
    }
</style>

4.最终效果图

 数据是实时获取的。formModel.js定义的key值就是键。type为表单类型,如VInput,VRadio,VSelect等常用表单,label就是label文本,vRules是验证规则,placeholder是原生的placeholder,errorMsg就是验证失败提示。

其他的请自行查看文档。

在Vue2.0中集成Vform动态表单 最近由于业务需要,要做一个导出类似Word登记表的功能,所以考虑使用Variant Form动态表单来做前端表单的搭建、表单交互以及数据收集等功能。Variant Form实际上是一个低代码表单,支持Element UI组件库,能够大大提高我们的开发效率以及用户体验,这也是我们选择这一组件的目的。我们这次的功能涉及:Variant Form表单的引入、使用以及导出Word文档,我将全程记录使用过程中遇到的问题以及难点。 阅读详情

相关推荐

Vant动态表单封装实战:从零构建VForm配置化表单系统

本文详细介绍了如何基于Vant UI从零构建VForm动态表单系统,通过配置化JSON实现高效开发。内容涵盖环境准备、表单数据结构设计、Vue组件集成、高级功能扩展及性能优化技巧,帮助开发者快速掌握动态表单封装实战,提升移动端表单开发效率。

weixin_30596735的博客 236

(一)vForm 动态表单设计器之使用

VForm是一款基于Vue 2/Vue 3的低代码表单,支持Element UI、iView两种UI库,定位为前端开发人员提供快速搭建表单、实现表单交互和数据收集的功能

刘一线的博客 1万+

(六)vForm 动态表单(数据量大,下拉选卡顿问题)

最近项目中使用动态表单遇到了卡顿的问题,打开一个表单就会卡顿,甚至有时候造成前端崩溃的情况。最终方案,前端分页处理。

刘一线的博客 1585

vForm快速入门及postMessage通信

vForm快速入门及postMessage通信

javaScript1997的博客 4151

vForm:这是一套通过json配置表单的工具。设计意愿是用户通过所见即所得编辑器生产业务表单

vForm 这是一套通过json配置表单的工具,包含。 TODO: 支持多语种切换 表单验证模块 input类的H5 form控件,自带基础校验 输出提示格式化 在控件中加入校验结果 输出结果支持多语言处理 设计器模块 表格模块Table 数据在格子的对齐方式:上中下、左中右 数据源加载 动态调整配置SetOptions 样式调整 onchange事件的监听绑入 跨表单数据提取 表格控件跨列(Colspan) 表格\控件的销毁重载 表格\控件的只读模式 控件开发 Select Date DateTime SelectGrid tree hyperlink 表单伸缩

FCN---训练cityspaces

未经允许,不要随意转载! 最近想试试用FCN训练自己的数据集,想想标注是一件很费劲的事,于是就想到了用其他库里的数据,这里选用了cityspaces,默认已经配置好FCN. 1、下载cityspaces https://www.cityscapes-dataset.com/ 需要注册一个账号 cityspaces包含2...

wangyu088的专栏 2032

Vform低代码表单、表单生成器

Vform - 让表单开发变得简单Vform 是一个基于 Vue.js 的前端表单生成器,使用它可以通过可视化拖拽的方式快速构建出功能完备的表单。相比手写模板代码,它可以大大提高表单开发的效率和体验。

weixin_61665636的博客 4655

异步fifo的UVM验证(最终最终版)

更新了refmdl以及scb

qq_44674008的博客 2988

VForm动态表单组件设置和组件库的二次开发

VForm表单属性的新增和组件库新增组件的步骤

m0_61837007的博客 6421

Unity获取透明物体深度数据

Unity获取透明物体深度数据前言透明&景深需求模型透明度部分带透明通道图片/视频部分半透明模型获取深度的具体实现方法带透明度图片/视频获取深度的具体实现方法结束语 前言 最近在做的项目有很多奇怪的需求,甚至之前在unity里用插件写了一个类似于蓝图的行为树插件,之后有时间给大家讲一讲相关的实现方法,今天刚解决了unity里透明物体无法获得深度数据的问题。所以分享给大家。 透明&景...

可以吃的妙脆角的博客 2631

使用petalinux做嵌入式设计开发(1)

1.创建vivado工程,建立硬件环境,最终导出hdf文件 既可以在windows系统下的vivado上编写硬件工程并导出hdf文件,也可以在linux系统下的vivado中编写硬件工程并导出hdf文件。(对于windows系统下导出的hdf文件还需要传递到linux系统下的文件夹中。) 2.以hdf硬件文件为基础创建,配置,编译,打包petalinux工程,导出linux系统所需镜像文件。 具体步骤: (0)设置环境变量 设置环境变量使得我们可以直接使用petalin...

plotup的博客 2076

Vue+Element-UI 使用 Vform 表单设计器

6.2、触发点击事件 使用axios与WebApi接口交互 将设计好的表单 以json的字符串的形式 保存到后台数据库。2、后台.Net Core WebApi增删改查接口照常写 注意添加修改时要通过post,FromBody进行传参。6.3.2、使用 axios 调用 WebApi 接口对组件进行赋值 使用此方法。、如果想要把你存入到数据库中表单数据进行修改。6、将设计好的表单保存到数据库中。5、运行后的页面效果 托拉拽控件。6.3、使用Vform渲染页面。1、表单设计器基础字段建议。......

weixin_71933203的博客 6756

【分布式系统学习】CAP原理详解

概述:互联网最重要任务莫过于海量数据处理,即大规模分布式系统,分布式是互联网的核心技术!!!如上所述,分布式系统是无法同时满足CAP三个特性的。1.Atomicity(原子性)一个事务中的所有操作,要么全部完成,要么全部不完成,不会在中间某个环节结束。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。2.Consistency(一致性)在事务开始之前和事务结束以后,数据库的完整性没有被破坏。3.Isolation(隔离性)

大龄烤红薯的博客 5024

Vue3中使用Vform3(自定义表单工具)

Vform的简单介绍和使用

huangzhixin1996的博客 1万+

Unity UI Toolkit避坑指南:从官方Samples到实际项目,这些‘坑’我帮你踩过了

本文分享了Unity UI Toolkit在实际项目中的避坑经验和优化技巧,包括动画系统的高效替代方案、3D世界UI的创新实现方式、USS样式继承的反直觉规则等。通过详细的代码示例和性能优化策略,帮助开发者避免常见陷阱,提升开发效率。

weixin_29535577的博客 343

基于UC3842的反激电源的全面深入解析与MATLAB仿真

内置电流检测,可实现电流模式控制,提高系统的动态响应性。多种保护功能,如欠压锁定、过温保护、短路保护等,确保系统的安全可靠运行。宽工作电压范围,适应不同的电源设计需求。简单的外部元件配置,易于实现。UC3842的典型应用包括开关电源、DC-DC转换器和反激式电源等,其稳定性和可靠性在实际应用中得到了广泛验证。

qq_38334677的博客 1086

【VForm3】扩展自定义表单组件

以下步骤均在extension文件夹中进行,新增完成后,Steps控件在自定义扩展字段中出现。配置属性扩展,extension-schema.js中,根据组件属性进行配置字段组件的类型名称,必须唯一,不能跟已有组件重复;且必须是新建组件的名称,例如组件名为steps-widget.vue,type必须为steps。i18通过type显示容器名称。需要在lang的en-US_extension.js和zh-CN_extension.js的widgetLabel中配置type对应的名称。

weixin_43385060的博客 5853

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测 目录时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测基本介绍ARIMAXVARVARMAVARMAXSESHWES参考资料 基本介绍 本文介绍ARIMAX、VAR、VARMA和VARMAX基本概念及其Python程序设计。 ARIMAX 具有外源回归量的自回归整合移动平均值(ARIMAX)是 ARIMA 模型的扩展,其还包括外生变量的建模。 外生变量也称为协变量,可以被认为是并行输入序列,其在与

前程算法屋的博客 6688

【vant移动端表格数据排版】用vant2简单实现一个把PC端表格数据展示在移动端的排版。上拉加载更多,下拉刷新页面,新增,编辑,删除功能

上次做了一个移动端的表格功能,纯表格的那种。跟PC一样,但是我一直觉得在移动端上写表格很糟糕的体验,毕竟手机就那么大。这不合理。但是我这公司又需要把PC端的表格的数据展示在移动端。导致我只能去试试看怎么排版比较好。由于网上也是一直找不到什么案例参考,所以就自己想了一个排版供大家参考。如果各位有更好的排版方式请发我一个图学习一下。

seeeeeeeeeee的博客 9589

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【vant】打开vant表单的正确形式(基于vant表单的二次封装)

vant表单二次封装

七十多岁的人了、 2569

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

基于vant开发可排序表格

其中Card组件是我自定义的卡片组件,删掉即可,不影响表格功能。表头是div,下面是van-list。

weixin_43472754的博客 2733

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

vfrom表单设计器使用事件机制控制字段显示隐藏

依据 vform3.0开发者文档。

u014642921的博客 729

vForm自定义组件说明

自定义组件 一、自定义组件说明 自定义组件包括vue文件和配置文件 配置文件格式: [ { type:"", 组件定义的名称 即组件vue文件 export default{ name:"" } 定义的名称 icon:"", 显示在widget-panel的组件图标,可以是iconfont图标或其他图标 plugin:true, 标记是自定义组件,这个为true就行了 formItemFlag:true, 标记显示fromItem options:{

JustinChia的博客 8008

【亲测免费】 VForm 开源项目安装与使用指南

本指南旨在帮助您快速了解并开始使用 [VForm](https://github.com/cretueusebiu/vform.git),一个高效且灵活的表单验证库。我们将通过三个主要部分深入理解项目结构、启动文件以及配置文件。 ## 1. **项目目录结构及介绍** VForm 的目录结构精心设计,以确保模块化和易于维护。以下是其基本结构概述: ```markdown vform/ ├──

gitblog_00955的博客 1141

vue移动端vant的layout布局van-row,van-col实现带背景色table表格

vue移动端vant的layout布局van-row,van-col实现带背景色table表格

qq_33235680的博客 1万+

Vform3 功能扩展,组件及子组件复制导入

vform3组件按需导入和导出,页面之间组件的互导

咚咚博客 3222
上一篇: vue项目仿企业微信移动端(带聊天界面)
下一篇: ES6转ES5的问题处理详解
流情
博客等级 码龄11年 5739粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值