# formDialog 表单对话框
agel-form-dialog
组件是基于 el-dialog
组件的二次封装组件, 针对表单场景做了一点点的事情。
# 使用
- 点击确定时会对弹窗内所有表单进行验证
validate
- 关闭时会对同弹窗内所有表单进行重置
resetFields
- 弹窗
loading
时无法关闭,并防止重复提交 - 设置
top
为center
弹窗可居中 - 设置
height
弹窗 body 高度 - 设置
cusotm-class
为ag-dialog
可使用内置样式UI
值得注意是,弹窗内隐藏的表单是不会被验证的。
点击查看代码
<template>
<div class="demo border">
<agel-form-dialog :visible.sync="form.show" :loading="form.loading" :title="form.title" width="500px" height="400px" custom-class="ag-dialog"
top="center" confirmBtn="提 交" @validated="submit">
<p>el-form 表单</p>
<el-form :model="formData" label-width="auto">
<el-form-item prop="name" label="姓名" :rules="[{required:true,message:'姓名必填',trigger:'blur'}]">
<el-input v-model="formData.name"></el-input>
</el-form-item>
</el-form>
<p>agel-form 表单</p>
<agel-form v-model="form"></agel-form>
<el-button slot="button">按钮</el-button>
<el-button slot="button">按钮</el-button>
</agel-form-dialog>
<el-button type="primary" @click="toAdd">新增</el-button>
<el-button type="primary" @click="toEdit">编辑</el-button>
</div>
</template>
<script>
export default {
data() {
return {
style: true,
form: {
title: "",
show: false,
loading: false,
span: 20,
data: {},
items: [
{ label: "活动名称", prop: "name", required: true },
{
label: "建议反馈",
prop: "desc",
type: "textarea",
},
],
},
formData: { name: "" },
};
},
methods: {
toAdd() {
this.form.title = "新增";
this.formData.name = "";
this.form.show = true;
},
toEdit() {
this.form.title = "编辑";
this.form.show = true;
this.form.loading = true;
setTimeout(() => {
this.form.data = {
name: "使用组件",
desc: "有什么建议吗",
};
this.formData.name = "agrass";
this.$message.success("获取详情成功");
this.form.loading = false;
}, 2000);
},
// 弹窗表单校验成功之后触发
submit() {
this.form.loading = true;
// 此处进行 http 表单提交操作
setTimeout(() => {
this.$message.success("操作成功");
this.form.loading = false;
this.form.show = false;
}, 3000);
},
close() {
console.log("xx");
},
},
};
</script>
# formDialog Attributes
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
height | String | - | dialog body 高度 |
loading | Boolean | - | 加载状态 |
confirmBtn | String/Boolean | 确定 | 确定按钮文字或关闭 |
closeOnPressEscape | Boolean | false | |
closeOnClickModal | Boolean | false | |
...... | ...... | ......... | el-dialog 属性 (opens new window) |
# formDialog Events
属性 | 参数 | 说明 |
---|---|---|
confirm | - | 点击确定按钮触发 |
validated | - | 所有表单验证成功时触发 |
validatedErr | - | 表单验证失败时触发 |
# formDialog Methods
属性 | 参数 | 说明 |
---|---|---|
validate | susseccCallback | 验证所有表单 |
# formDialog slots
属性 | 参数 | 说明 |
---|---|---|
button | - | 按钮 |