hhh-ui
这是一个基于elementUI二次封装的组件,可以快速实现你想要的表单功能 github地址!,如果对你有帮助,不要忘记给个星星啊,哈哈哈。持续更新中,这个组件我更新了一个新版本,功能更全,文档也更清楚。
安装 hhh-ui
cnpm install hhh-ui -S
全局注册(在main.js引用):
import HhhUi from 'hhh-ui'
Vue.use(HhhUi)
页面引用
<hhh-form ref="myform" :reformRule="reformRule" :formData="formData" reform="reform"></hhh-form>
props:
reform:表单的ref属性
reformRule:表单校验规则默认,{}
eg:{
phone: [
{ required: true, message:'错误提示', trigger: 'blur' },
或者
{
validator: 自定义校验规则,可以参考element的校验规则,
required: true,//是否必填
trigger: 'blur'//触发校验的方式
}
],
}
formData:form表单的值,Array 必填
eg:[
{
name: "输入框", // 文字label
type: "input", // input,select,textarea,checkbox,radio,time,citypicker
field: "id", // 字段名称
value:'', //输入框的初值
isshow: false, // 是否展示
width: false, // 文本宽度
disabled: false, // 是否禁用
placeholder: "请输入", // placeholder提示
multiple: false, // 是否多选,基于select,checkbox
filterable: false, // 是否多选,基于select
ajax: {//动态获取接口数据,基于select,checkbox
method: 'get',//请求方式
url: 'www.xx.cn',//接口地址
data: {},//请求参数
label: 'label',//下拉选择框的选择文字
value: 'value',//下拉选择的值
callback: function(data) {//接口返回数据层级处理
return data
},
}
}
]
写一个粗超的页面,实现效果如下:
代码实现:
<template>
<hhh-form ref="myform" :reformRule="reformRulea" :formData="formDataA" reform="reform"></hhh-form>
<div class="btn" @click="saveform">保存</div>
</template>
export default {
data() {
return {
formDataA: [
{
type: "input", // 普通输入框
field: "phone",
name: "手机号码:",
divwidth:"100%",
width:'460',
value: ""
},
{
type: "input", // 普通输入框
field: "username",
name: "姓名:",
divwidth:"100%",
width:'460',
value: ""
},
{
value: "",
divwidth:"100%",
width:'460',
type: "select", // 普通下拉框
field: "status",
name: "性别:",
options: [
{
label: "男",
value: 0
},
{
label: "女",
value: 2
}
]
},
{
value: "",
divwidth:"100%",
width:'460',
type: "radio", // 单选
field: "status",
name: "性别:",
options: [
{
label: "男",
value: 0
},
{
label: "女",
value: 2
}
]
}
],
reformRulea:{
phone: [
{
validator: FormValidate.phone,
required: true,
trigger: 'blur'
}
],
username: [
{
validator: FormValidate.username,
required: true,
trigger: 'blur'
}
],
businessName: [
{
validator: FormValidate.businessName,
required: true,
trigger: 'blur'
}
]
}
}
},
methods:{
saveform() {
let formData = this.$refs.myform.submitForm();
//然后将forData放到你的ajax请求当中
}
}
}
如果这篇文章对你有帮助,点个赞吧,哈哈哈