注意:他的禁用并不是直接 :disabled=“XXX”
<el-form-item label="所属经营单位" prop="institution">
<el-cascader
v-model="form.institution"
:options="institutionList"
label="name"
:props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"></el-cascader>
</el-form-item>
拿取树形列表,进行数据处理
/** 查询经办机构列表 */
getInstitutionList() {
this.loading = true;
listInstitution().then(response => {
this.institutionList = this.handleTree(response.data, "id", "parentId");
console.log('aaa', this.institutionList)
// 处理数据,然后重新赋值
this.institutionList = this.getDisableList(this.institutionList)
console.log('bbb', this.institutionList)
this.loading = false;
});
},
处理数据的方法
getDisableList(list) {
list.forEach(item => {
if (item.status === '2') {
item.disabled = true; // 如果类型2,代表锁定状态
}
if (item.children) {
this.getDisableList(item.children);
}
})
return list;
console.log('aa', list)
}
处理数据的方法改进,判断有无children
// 处理返回数据,给status等于1的添加disabled=true属性
addDisabledForStatus(arr) {
let newArr = JSON.parse(JSON.stringify(arr));
newArr.forEach((item) => {
if (item.status === "1") {
item.disabled = true;
}
// 有无children项
if (item.children && item.children.length !== 0) {
let newChildren = [];
newChildren = this.addDisabledForStatus(item.children);
item.children = newChildren;
}
});
return newArr;
},