## $f 實例方法
### 該文檔不再維護,新版文檔地址: [form-create 文檔](http://fc.gd8.top)
### 注意:
- 1.4.1版本之后 `model`方法無需傳參, 使用方法 `form = $f.model()`.之前版本為`$f.model(form = {})`
### 方法說明
* **formData\(\)** 獲取表單的value
* **getValue\(field\)** 獲取指定字段的value
* **model\(obj\)** 獲取雙向數據綁定的表單生成規則,**當直接修改沒有生效時請使用**`set`**方法修改**。
```javascript
數據結構:
{
field1:{value,rule:{props,validate,options,slot,event,...[其他配置項]}}
field2:{value,rule:{props,validate,options,slot,event,...[其他配置項]}}
}
```
* **bind()** 獲取雙向數據綁定的表單value | **`>=1.4.1版本`**
* **set\(node,field,value\)** 用于表單生成后,修改組件的規則,使用方法類似`Vue.$set`方法.
```javascript
//例如:
$f.set(field.rule.col,'span',12)
```
* **hidden(fields,hidden = true)** 隱藏或顯示指定組件 | **`>=1.4.1版本`**
* **visibility(fields,visibility = true)** 隱藏或顯示指定組件 | **`>=1.4.1版本`**
* **reload(newRules)** 根據新的表單規則重新渲染表單 | **`>=1.4.4版本`**
* **changeField\(field,value\)** 修改指定字段的value
* **resetFields\(\)** 重置表單
* **destroy\(\)** 銷毀表單
* **removeField\(field\)** 刪除指定字段
* **fields\(\)** 獲得表單所有字段名稱
* **closeModal\(\)** 關閉frame組件的彈出框
* **submit\(\)** 手動提交表單,表單驗證通過后會觸發onSubmit事件
* **validate\(successFn,errorFn\)** 表單驗證,如果驗證通過執行successFn,未通過則執行errorFn
* **validateField\(field,callback\)** 表單驗證指定字段
```javascript
$f.validateField(field,(errMsg)=>{
if(errMsg){
//TODO 驗證未通過
}else{
//TODO 驗證通過
}
});
```
* **prepend\(rule,field = undefined\)** 在field的字段之前輸入指定表單元素,不傳入field默認在第一個
```javascript
$f.prepend({
type:"input",
title:"商品簡介",
field:"goods_info",
value:"",
props: {
"type": "text",
"placeholder": "請輸入商品簡介",
},
validate:[
{ required: true, message: '請輸入商品簡介', trigger: 'blur' },
],
});
```
* **append\(rule,field = undefined\)** 在field的字段之前輸入指定表單元素,不傳入field默認在最后一個
```javascript
$f.append($formCreate.maker.upload(
'產品主圖',
'logo',
'http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg'
).props({
"action": "",
"maxLength": 1,
"multiple": false,
"type": "select",
"uploadType": "image",
"name": "file",
"onSuccess": function () {
return 'http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg';
}
})
.validate({required:true, type: 'array', min: 1, message: '請上傳1張圖片', trigger: 'change'}
),'goods_name');
```
* **submitStatus\(props\)** 修改表單提交按鈕狀態
```javascript
$f.submitStatus({
//按鈕類型,可選值為primary、ghost、dashed、text、info、success、warning、error或者不設置
type:"primary",
//按鈕大小,可選值為large、small、default或者不設置
size:"large",
//按鈕形狀,可選值為circle或者不設置
shape:undefined,
//開啟后,按鈕的長度為 100%
long:true,
//設置button原生的type,可選值為button、submit、reset
htmlType:"button",
//設置按鈕為禁用狀態
disabled:false,
//設置按鈕的圖標類型
icon:"ios-upload",
//按鈕文字提示
innerText:"提交",
//設置按鈕為加載中狀態
loading:false
})
```
* **btn.loading\(loading = true\)** 讓表單提交按鈕進入loading狀態
* **btn.finish\(\)** 讓表單提交按鈕恢復正常狀態
* **btn.disabled\(disabled = true\)** 設置提交按鈕禁用狀態
* **resetStatus\(props\) **修改表單重置按鈕狀態**配置與提交按鈕相同**
* **resetBtn.loading\(loading = true\)** 讓重置按鈕進入loading狀態
* **resetBtn.finish\(\)** 讓表單提交按鈕恢復正常狀態
* **resetBtn.disabled\(disabled = true\)** 設置重置按鈕禁用狀態
---