fix(roleConfig): 修复角色配置菜单选择后未保存的问题
- 在选择菜单后通过 $nextTick 设置选中节点并更新合并后的选中数据 - 在菜单变更时使用合并后的选中节点数据 - 优化了初始加载时的选中节点处理逻辑
Showing
1 changed file
with
14 additions
and
2 deletions
| ... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
| 33 | </Formitem> | 33 | </Formitem> |
| 34 | </el-form> | 34 | </el-form> |
| 35 | <el-tree | 35 | <el-tree |
| 36 | + ref="tree" | ||
| 36 | class="menuTree" | 37 | class="menuTree" |
| 37 | v-else | 38 | v-else |
| 38 | :data="treeData" | 39 | :data="treeData" |
| ... | @@ -221,7 +222,7 @@ export default { | ... | @@ -221,7 +222,7 @@ export default { |
| 221 | } | 222 | } |
| 222 | }); | 223 | }); |
| 223 | } else if (this.type == "menuChange") { | 224 | } else if (this.type == "menuChange") { |
| 224 | - obj.menuId = this.treeCheckData; | 225 | + obj.menuId = this.treeCheckData; // 使用合并后的选中节点 |
| 225 | obj.roleId = this.formData.roleId; | 226 | obj.roleId = this.formData.roleId; |
| 226 | this.menuChangeapi(obj); | 227 | this.menuChangeapi(obj); |
| 227 | } | 228 | } |
| ... | @@ -298,7 +299,11 @@ export default { | ... | @@ -298,7 +299,11 @@ export default { |
| 298 | .then((res) => { | 299 | .then((res) => { |
| 299 | if (res.code === "200") { | 300 | if (res.code === "200") { |
| 300 | this.checkedKeys = res.data.filter(item => item.isBinding && (item.parentMenuId!=0 ) ).map(item => item.menuId); | 301 | this.checkedKeys = res.data.filter(item => item.isBinding && (item.parentMenuId!=0 ) ).map(item => item.menuId); |
| 301 | - console.log(this.checkedKeys); | 302 | + //console.log('初始 checkedKeys:', this.checkedKeys); |
| 303 | + this.$nextTick(() => { | ||
| 304 | + this.$refs.tree.setCheckedKeys(this.checkedKeys); | ||
| 305 | + this.updateTreeCheckData(); | ||
| 306 | + }); | ||
| 302 | } else { | 307 | } else { |
| 303 | this.alertWarningMsg(res.message); | 308 | this.alertWarningMsg(res.message); |
| 304 | } | 309 | } |
| ... | @@ -308,6 +313,13 @@ export default { | ... | @@ -308,6 +313,13 @@ export default { |
| 308 | }); | 313 | }); |
| 309 | } | 314 | } |
| 310 | }, | 315 | }, |
| 316 | + //加载选中的节点及半选中的父节点 | ||
| 317 | + updateTreeCheckData() { | ||
| 318 | + const checkedKeys = this.$refs.tree.getCheckedKeys(); | ||
| 319 | + const halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(); | ||
| 320 | + this.treeCheckData = checkedKeys.concat(halfCheckedKeys); | ||
| 321 | + //console.log('合并后的 treeCheckData:', this.treeCheckData); | ||
| 322 | + }, | ||
| 311 | 323 | ||
| 312 | }, | 324 | }, |
| 313 | }; | 325 | }; | ... | ... |
-
Please register or login to post a comment