fix(#I13MQS): 保存菜单时检查菜单类型
#Comment comment #I13MQS 增加客户端检查 menuChild rule #Issue link https://gitee.com/LongbowEnterprise/dashboard/issues?id=I13MQS
This commit is contained in:
parent
9f832c365e
commit
0abd9aa9eb
|
@ -44,5 +44,15 @@ namespace Bootstrap.Admin.Controllers.Api
|
|||
{
|
||||
return MenuHelper.RetrieveMenus(User.Identity.Name).Where(m => m.Menus.Count() > 0).OrderBy(m => m.Name).Select(m => m.Name);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过指定菜单检查子菜单是否有子菜单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{id}")]
|
||||
public bool ValidateMenuBySubMenu(string id)
|
||||
{
|
||||
return !MenuHelper.RetrieveAllMenus(User.Identity.Name).Where(m => m.ParentId == id).Any();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@
|
|||
</div>
|
||||
<div class="form-group col-sm-6">
|
||||
<label class="control-label" for="isRes">菜单类型</label>
|
||||
<select data-toggle="lgbSelect" class="d-none" data-default-val="0" id="isRes">
|
||||
<select data-toggle="lgbSelect" class="d-none menuChild" data-default-val="0" id="isRes" data-valid="true">
|
||||
<option value="0">菜单</option>
|
||||
<option value="1">资源</option>
|
||||
<option value="2">按钮</option>
|
||||
|
|
|
@ -340,4 +340,22 @@ $(function () {
|
|||
var val = defaultVal === $app.val() ? '0' : '1';
|
||||
$category.lgbSelect('val', val);
|
||||
})
|
||||
|
||||
if ($.isFunction($.validator)) {
|
||||
$.validator.addMethod("menuChild", function (value, element) {
|
||||
var id = $("#menuID").val();
|
||||
var check = id === "" || value === "菜单";
|
||||
if (!check) {
|
||||
$.get({
|
||||
url: $.formatUrl('api/Category/ValidateMenuBySubMenu/' + id),
|
||||
async: false,
|
||||
cache: false,
|
||||
success: function (result) {
|
||||
check = result
|
||||
}
|
||||
});
|
||||
}
|
||||
return check;
|
||||
}, "拥有子菜单时菜单类型不可更改为资源或者按钮");
|
||||
}
|
||||
});
|
|
@ -114,7 +114,7 @@
|
|||
|
||||
// save attributes
|
||||
var attrs = [];
|
||||
["id", "name", "data-default-val"].forEach(function (v, index) {
|
||||
["id", "name", "class", "data-valid", "data-default-val"].forEach(function (v, index) {
|
||||
var value = that.$element.attr(v);
|
||||
if (value !== undefined) attrs.push({ name: v, value: value });
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue