该插件为表单操作封装,使用方式如下:
```
//以element-ui为例
<template>
//如当前页是通过toCreate/toEdit/toDetail方式进入的,则不需要el-dialog!!
<el-dialog :visible.sync="visible" title="我是弹框标题">
<el-form :ref="validRef" :modal="formData" :rules="rules">
<el-form-item label="姓名" prop="name">
<el-input v-model="formData.name" :disabled="readonly" placeholder="请输入姓名"/>
</el-form-item>
...
</el-form>
</el-dialog>
</template>
<script>
import JBoot from 'jboot-env'; //引入框架
import 'jboot-env/dist/loading.css'; //引入loading样式
export default JBoot.form({
data (){
return {
moduleName: 'test',
rules: {
...
}
}
}
})
</script>
<style lang="scss">
...
</style>
```
**内置属性:**
| 名称 | 类型 | 默认值 | 必须主动声明| 描述|
| --- | --- | --- | --- |--- |
|visible|boolean|false|否|用于标识dialog是否是可见状态|
|queryMethod|string|getInfo|否|查询数据时,要调用moduleName对应api中的哪一个方法。|
|submitMethod|string|saveInfo|否|提交数据时,要调用moduleName对应api中的哪一个方法。|
|formData|object|{}|否|表单数据绑定的对象。|
|submitting|boolean|false|否|用于标识是否正在提交数据中。|
|formPageType|string|undefined|否|框架内部自动赋值,page代表当前页面类型是新页面,dialog代表当前页面类型是弹框。|
|operateType|string|new|否|用于标识当前页面的操作类型,值为:new(新增)、edit(编辑)、detail(详情)。|
|parentParam|键值对|{}|否|列表页传递进入当前页的参数,都被封装在这个对象中|
|readonly|boolean|false|否|用于标识当前页面是否可以进行操作,**通过XXXCreate/XXEdit方式进入的,则该值为false,通过XXXDetail方式进入的,则该值为true。** 可用该值绑定组件的disabled属性,来进行区分组件是否可被编辑。|
|validRef|string|validRef|否|该属性可绑定至表单上,框架会自动通过该属性拿到表单,来进行校验。|
|triggerRefresh|boolean|true|否|提交完成后是否触发父页面刷新。|
|initQuery|boolean|false|否|如果该值为true,则立马执行页面的查询逻辑。|
|submitSuccessTipVisible|boolean|true|否|如果该值为true,则提交成功后会弹出提示,false则不提示。|
|validFailShowTip|boolean|true|否|如果该值为true,则提交前进行表单验证时,如果表单验证不通过,则会进行弹出提示,避免用户未发现表单必填项未填写完毕的问题。false则不提示。|
|validMethod|string|validate|否|调用form的什么方法进行表单验证。**3.1.3719起,新增!!!**|
**内置计算属性:**
| 名称 | 类型 | 默认值 | 必须主动声明| 描述|
| --- | --- | --- | --- |--- |
|dynamicSubmitMethod|string| 返回submitMethod属性。 |否|使用该计算属性,可根据依赖值动态的改变请求调用的方法。|
**内置方法:**(编写顺序按照执行顺序排列)
| 名称 | 参数| 返回值|描述|
| --- | --- | --- | --- |
|getDefFormData|无|需要赋值给formData的默认数据。|用来给formData设置默认值。**3.1.3705起,支持返回Promise!!**|
|close|无|无|用来关闭当前页面的函数,只有在通过showXXX的形式进入的页面生效。|
|closeAfterHandler|无|无|在close执行完毕后会调用的方法。用于页面关闭以后的一些处理。|
|triggerParentRefresh(isCloseWindow)|isCloseWindow,boolean类型,是否关闭当前窗口,默认为true。**true时内部自动调用了close方法。**|无|在close执行完毕后会调用的方法。用于使用__open或showXXX方式打开的弹框页面,触发父页面(list或page)的刷新。|
|resetFormValid|无|无|用于重置form的表单验证,将会获取所有ref绑定为validRef的form,执行form的resetFields函数来重置表单验证。|
|submitHandler(isClose)|isClose:boolean类型,默认为true。该属性代表提交操作完毕后,是否自动关闭页面。|无|用来提交表单数据的函数。**内部调用moduleName对应api文件中的submitMethod方法进行提交请求。**|
|getSubmitData|无|要提交的数据|获取要提交的数据,默认返回this.formData。**注意:如需操作,建议使用Object.assign({}, this.formData, {xxx:xxx});的形式来操作,避免直接修改this.formData!**|
|validFormData(submitData)|submitData:上一步骤处理返回的提交数据。|boolean / Promise|用来校验要提交的数据是否满足要求,默认获取validRef绑定的form来进行规则校验,被校验的form支持validate函数即可。**返回true / Promise.resolve()则代表校验通过,反之则校验失败,不继续提交操作!**|
|isExecuteSubmit(submitData)|submitData:意义同上|boolean / Promise|用来处理是否执行提交操作,**返回true / Promise.resolve()则代表校继续执行,反之则不继续提交操作!**|
|beforeSubmitHandler|无|无|发送提交请求之前的hook。|
|submitSuccessHandler(responseInfo)|responseInfo:接口提交成功后返回的响应体。|无|提交成功之后的hook。|
|submitErrorHandler(error)|error:接口提交失败后的异常结构体。|无|接口提交异常的hook。|
|afterSubmitHandler|无|无|无论接口提交是否成功,结束后都会执行的hook。|