該插件為表單操作封裝,使用方式如下:
```
//以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。|