vue php 表单,vue自动化表单实例分析

本篇文章通过实例给大家分享了vue自动化表单的操作方法以及相关的代码做了描述,有兴趣的朋友可以跟着学习下。

背景B端系统表单较多,且表单可能含有较多字段

字段较多的表单带来了大片HTML代码

在大片HTML中,混杂着参数绑定、事件处理等逻辑,不利于维护

技术栈 Vue,Element(默认表单布局)适合中后台项目快速开发

目标

通过json配置快速生成表单的vue plugin。

设计目标减少html 重复片段

表单字段组件可扩展

事件、联动通过eventbus 解耦

校验可扩展

表单布局可自定义

可视化配置

大概方案设计

5e1cab356bc2c9aaa604047d35ec6a08.png

使用

安装

npm install charlie-autoform charlie-autoform_component_lib

源码:https://charlielau.github.io/autoform/#/component/autoform

引入插件

import AutoForm from 'charlie-autoform';

import AutoForm_component_lib from 'charlie-autoform_component_lib';

Vue.use(AutoForm);

Vue.use(AutoForm_component_lib);

基本使用

demo.vue

立即创建

取消

export default {

data() {

return {

model2: {

name: '',

type: []

},

layout2: {

align: 'left',

labelWidth: '100px',

custom: false, //是否自定义布局

inline: true //是否内联

},

fields2: [

{

key: 'name',

type: 'input',

templateOptions: {

label: '审批人'

}

},

{

key: 'region',

type: 'select',

templateOptions: {

label: '活动区域',

placeholder: '请选择活动区域',

options: [

{

label: '区域一',

value: 'shanghai'

},

{

label: '区域二',

value: 'beijing'

}

],

validators:[ //校验

// {required:true,message:'必填'}

// ""

]

}

}

]

};

}

};

最终效果

59c78865d7d21852346ff60a95b7c8fb.png

添加自定义组件或者组件目录

Vue.$autoform.RegisterDir(()=>require.context('./components/autoform', 'c'));//目录

Vue.$autoform.Register(Vue,[Components...],{prefix: "c"}) //组件对象

cHello.vue

// PATH:/components/autoform/cHello.vue

基本的变量可以通过"mixins"获取,这里有开发组件需要的一些变量

自定义子组件:Hello

当前field: {{field}}

整个model: {{model}}

当前model: {{model[field.name]}}

layout: {{layout}}

字段相关配置to: {{to}}

import {baseField} from "charlie-autoform";

export default {

mixins: [baseField],

name: 'cHello',

data () {

return {};

},

methods: {},

mounted(){

//this.eventBus 事件总线

}

};

成果

目前应用再多个系统定性: 维护成本降低、关注点分离

定量:表单开发效率提升50%

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值