vue 關聯表單項元件,常用於組合條件

2022-09-14 13:36:12 字數 3219 閱讀 8261

這是乙個 vue 簡單元件, 用來實現乙個表單關聯的功能。例如一些條件生成:

像上面的上級選項為某個值之後,後面是根據這個值又首先新的選項。

class="about">

}span>

v-for="(tablevalueitem, tablevalueindex) in filteroptions">

:key="`el-cascader$`"

v-if="[`el-cascader`].includes(getitem(tablevalueindex).type)"

v-model="tablevalue[tablevalueindex]"

:options="getoptions(tablevalueindex)"

v-bind="getitem(tablevalueindex).props"

clearable

>

el-cascader>

v-else

:key="`el-select$`"

clearable

v-model="tablevalue[tablevalueindex]"

@change="(val) => change(val, tablevalueindex)"

:placeholder="getitem(tablevalueindex).placeholder"

:multiple="getitem(tablevalueindex).multiple"

:allow-create="getitem(tablevalueindex).allowcreate"

:filterable="getitem(tablevalueindex).allowcreate"

:default-first-option="getitem(tablevalueindex).allowcreate"

>

:key="item.value"

v-for="item in getoptions(tablevalueindex)"

:label="item.label"

:value="item.value"

>

el-option>

el-select>

:key="`span$`">}span>

template>

div>

template>

/**- 只有選擇父專案時才會出現子項

- 父項值改變時, 清空子項的值

*/export default ,

props: ,

},// 標籤資料, 可以優化為資料公用表, 然後在 roottable 中通過 optionssource 選項引用

tagdata: ,,,

,],},,

,],

},],},,

,,,,

],},,,

,,,,

,,,,

,,,,

],},,,

,,,,

],},,,

,,,],

},,,,

,,

],},,,

,,,,

],},

],},,,

,],

},];

},},

/**- 渲染表單的資料, 當上一級表單項有值後才會子項

pre - 在某個表單項前面

sub - 在某個表單項後面, 當表單項有值後才會顯示

options - 子項的可選項

type - 可以根據此 type 來渲染元件, 預設為普通 select, 可以優化為動態渲染元件以及新增元件 props 選項

- el-cascader 級聯選擇

label - 選項的 label

value - 選項的 value

multiple - 是否多選

allowcreate - 是否顯示清除

*/roottable: ,,],

},,,],

},],},,

,,

],},

],};

},},

},data() ;

},watch: ,

deep: true,

},},

created() ,

computed: );

console.log(`curitemcuritem`, curitem);

let list = this.tablevalue.length ? this.tablevalue : [undefined];

// 如果還有子項並且父選項有值時, 那麼就載入子項選擇器

if (

curitem.forceddisplay ||

(this.getoptions().length &&

[``, undefined].includes(list.slice(-1)[0]) === false)

) return list;

},sub() ;

return curitem.sub;

},},

methods: )

let curitem = this.roottable;

keys.foreach((key) => ) || {};

});return curitem;

},change(val, index) ,

getoptions(index) );

curitem.options = this[curitem.optionssource] || curitem.options;

console.log(`curitem.options`, curitem.options);

return curitem.options || ;

},getitem(index) );

return curitem;

},getsub(index)

const keys = this.tablevalue.slice(0, index + 1);

let curitem = this.getcuritem();

console.log(`getsubgetsubgetsubgetsub`, keys, curitem);

return curitem.sub;

},},

components: {},

};script>

Vue elementui 常用表單項正則校驗

import vue from vue export default ip位址校驗 ipaddressvalidator rule,value,callback elseif 2 5 0 5 0 4 d 0 1 d 2 5 0 5 0 4 d 0 1 d g test value else if 1...

Vue專案表單項很多 沒有繫結prop 表單重置

element ui的表單元件在使用時需要繫結prop屬性才能使用自帶的resetfield重置表單,如果遇到表單項很多,而且大部分不需要校驗,為了重置去乙個乙個設定prop的話很麻煩。所以可以使用object.assign來解決表單重置問題。我們可以通過this.data獲取當前狀態下的data,...

vue表單驗證元件 v verify plugin

版本已更新至2.0 說明 github npm npm install vue verify plugin 提交驗證之後的錯誤儲存在 vm.verify.errors 中,可自行列印出 vm.verify.errorarray 儲存上一次驗證的錯誤 配置傳入乙個物件 自定義驗證方法 blur boo...