el-table中的嵌套el-tab-pane嵌套el-table 設置dataRules解決記錄
嵌套關系如下:
el-table
|----el-tab-panel
|--------el-table
|------------el-table-column
按照網上別人的方法,設置dataRules,發現不行。如果把prop改成planMap,dataRules中也設置相應的rule,能校驗了,但是不管輸入啥,都是報錯,還有這個字段名就是name,不可能改后端返回的字段把。
這里采用手動加上校驗的方法。
先寫一個span,調一下樣式
自己寫一個校驗函數
在表單提交的時候也加上校驗,如果檢測到數據中有name字段為空,那么就置位nameValid,下面也不會通過,效果:
點擊確認提交表單的時候,如果發現有沒填的,會彈出:
方法2:
引入elementUI省略,自行查看文檔。
html部分
<el-cascader placeholder="請選擇地點" :props="adressProps" v-model="adressArray" />
js部分
data() { return { adressProps: { lazy: true, //可以理解為開關,什么時候結束 lazyLoad: this.cascaderLazyLoad, }, adressArray: null, province: '', city: '', } }, methods: { cascaderLazyLoad(node, resolve) { if (!node) { return false } const { level } = node //level代表當前點擊選擇哪一項,,比如0代表第一次進去加載數據,1是選擇省后的操作 if (level == 1) { this.province = node.value //選擇省后對數據進行存儲,因為要用省去查詢市 } else if (level == 2) { this.city = node.value //同上要去查詢區 } let params = { province: this.province, city: this.city, } getAdress(params).then((res) => { //換成你的接口方法 if (res.code === '0') { resolve( res.data.map((val) => { return { value: val, label: val, leaf: level >= 2, //因為省市區三項,所以第三次點擊就不用在加載了,所以 >=2 } }) ) } }) }, }