jiaxing.zhou

fix(roleConfig): 修复角色配置菜单选择后未保存的问题

- 在选择菜单后通过 $nextTick 设置选中节点并更新合并后的选中数据
- 在菜单变更时使用合并后的选中节点数据
- 优化了初始加载时的选中节点处理逻辑
......@@ -33,6 +33,7 @@
</Formitem>
</el-form>
<el-tree
ref="tree"
class="menuTree"
v-else
:data="treeData"
......@@ -221,7 +222,7 @@ export default {
}
});
} else if (this.type == "menuChange") {
obj.menuId = this.treeCheckData;
obj.menuId = this.treeCheckData; // 使用合并后的选中节点
obj.roleId = this.formData.roleId;
this.menuChangeapi(obj);
}
......@@ -298,7 +299,11 @@ export default {
.then((res) => {
if (res.code === "200") {
this.checkedKeys = res.data.filter(item => item.isBinding && (item.parentMenuId!=0 ) ).map(item => item.menuId);
console.log(this.checkedKeys);
//console.log('初始 checkedKeys:', this.checkedKeys);
this.$nextTick(() => {
this.$refs.tree.setCheckedKeys(this.checkedKeys);
this.updateTreeCheckData();
});
} else {
this.alertWarningMsg(res.message);
}
......@@ -308,6 +313,13 @@ export default {
});
}
},
//加载选中的节点及半选中的父节点
updateTreeCheckData() {
const checkedKeys = this.$refs.tree.getCheckedKeys();
const halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys();
this.treeCheckData = checkedKeys.concat(halfCheckedKeys);
//console.log('合并后的 treeCheckData:', this.treeCheckData);
},
},
};
......