diff --git a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/system/role.ftl b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/system/role.ftl index 9035f26e..14afa457 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/system/role.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/system/role.ftl @@ -261,19 +261,50 @@ }.bind(this)) }, onCheck: function (item, status) { + var isChecked = status.checkedKeys.indexOf(item.id) !== -1; + + // 优先处理当前节点 new Ajax("system", "roleRes").method("check").post({ roleId: this.formResource.roleId, roleCode: this.formResource.roleCode, resId: item.id, resCode: item.resCode, - checked: status.checkedKeys.indexOf(item.id) !== -1 + checked: isChecked, }, function (response) { if (response.errors.length > 0) { nav.e(response.errors[0].message); } else { } - }.bind(this)) + }.bind(this)); + + if (item.children && item.children.length > 0){//处理子节点 + (function fetch(children) { + for (var i = 0; i < children.length; i++) { + var obj = children[i]; + if ((status.checkedKeys.indexOf(obj.id) !== -1) !== isChecked){ + (function (obj) { + new Ajax("system", "roleRes").method("check").post({ + roleId: this.formResource.roleId, + roleCode: this.formResource.roleCode, + resId: obj.id, + resCode: obj.resCode, + checked: isChecked, + }, function (response) { + if (response.errors.length > 0) { + nav.e(response.errors[0].message); + } else { + this.$refs.tree.setChecked(obj.id,isChecked); + } + }.bind(this)) + }.bind(this))(obj); + } + if(obj.children && obj.children.length > 0){ + fetch(obj.children) + } + } + }.bind(this))(item.children); + } }, onLoadTree: function () { new Ajax("system", "res").method("tree").post({}, function (response) {