From d687cce25bf903c420f59ec90371d6a0f123c19a Mon Sep 17 00:00:00 2001 From: "wangbingit@outlook.com" Date: Sat, 25 Jul 2020 22:23:20 +0800 Subject: [PATCH] =?UTF-8?q?Element=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: ec10479f3bbcaea66093ea1f6dd9a52908f0d38e --- .../templates/screen/module/wsys/role.ftl | 48 ++++++++----------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/role.ftl b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/role.ftl index bc8f99e1..ae9deeff 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/role.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/role.ftl @@ -272,41 +272,31 @@ } }.bind(this)) }, - onCheck: function (item, status) { var roleId = this.formResource.roleId; var roleCode = this.formResource.roleCode; var isChecked = status.checkedKeys.indexOf(item.id) !== -1; - this.doCheck(roleId, roleCode, item.id, item.resCode, isChecked); - - (function fetch(children, _this) { - if (children && children.length > 0) { - for (var i = 0; i < children.length; i++) { - var obj = children[i]; - if ((status.checkedKeys.indexOf(obj.id) !== -1) !== isChecked && !obj.disabled) { - _this.doCheck(roleId, roleCode, obj.id, obj.resCode, isChecked); - } - fetch(obj.children, _this); + var list = []; + [item].forTree(function(item){ + list.push(item); + }) + list.forAsync(function(item, next){ + new Ajax("wsys", "roleRes", "check").post({ + roleId: roleId, + roleCode: roleCode, + resId: item.id, + resCode: item.resCode, + checked: isChecked, + }, function (response) { + if (response.errors.length > 0) { + nav.e(response.errors[0].message); + } else { + this.$refs.tree.setChecked(item.id, isChecked); } - } - })(item.children, this); - }, - doCheck: function (roleId, roleCode, resId, resCode, checked) { - // 优先处理当前节点 - new Ajax("wsys", "roleRes", "check").post({ - roleId: roleId, - roleCode: roleCode, - resId: resId, - resCode: resCode, - checked: checked, - }, function (response) { - if (response.errors.length > 0) { - nav.e(response.errors[0].message); - } else { - this.$refs.tree.setChecked(resId, checked); - } - }.bind(this)); + next(); + }.bind(this)); + }.bind(this)) }, onLoadTree: function () { new Ajax("wsys", "res", "tree").post({}, function (response) {