前端设计

element tree 校验

2021-02-26  本文已影响0人  流泪手心_521

现状 1.后台一次性返回2层数据,但是需要添加一个全选功能,所以数据结构都是三层
html

  <el-form-item  label="菜单权限" prop="sectionUserPoList">
                <el-tree
                        v-model="dialogForm.sectionUserPoList"
                        class="ztree"
                        accordion
                        :data="listTree"
                        show-checkbox
                        ref="tree"
                        node-key="sectionCode"
                        :default-expanded-keys="[0]"
                        :default-checked-keys="sectionColumnsCheckedList"
                        :props="defaultProps"
                        @check-change="handleCheckChange"
                        @check="handleCheckedSectionColumns"
                >
                </el-tree>
            </el-form-item>

data里面

dialogForm: {
                   sectionUserPoList:[]
               },

 dialogFormRules: {
                   sectionUserPoList: [{required: true, validator: sectionUserPoListChecked, trigger: 'change'}]
               },

return 上面写校验
let sectionUserPoListChecked=(rule, value, callback)=>{
               if(this.dialogForm.sectionUserPoList.length===0){
                   return callback(new Error('请选择菜单'));
               }else{
                   callback();
               }
           };

js 只需要在handleCheckChange 校验的方法中把获取选中的长度给的data里面his.dialogForm.sectionUserPoList.length就可以了

//校验的时候用
            handleCheckChange() {
                let checkedTreeData=this.$refs.tree.getCheckedNodes();
                this.dialogForm.sectionUserPoList.length=checkedTreeData.length
            },
上一篇下一篇

猜你喜欢

热点阅读