添加目录、菜单、控件
This commit is contained in:
Binary file not shown.
@@ -148,6 +148,13 @@
|
||||
<param name="menu"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.Add(Yi.Framework.Model.Models.MenuEntity)">
|
||||
<summary>
|
||||
插入
|
||||
</summary>
|
||||
<param name="menu"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.GetMenuTree">
|
||||
<summary>
|
||||
得到树形菜单
|
||||
|
||||
@@ -37,7 +37,20 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
[HttpGet]
|
||||
public async Task<Result> GetList([FromQuery] MenuEntity menu)
|
||||
{
|
||||
return Result.Success().SetData(await _iMenuService.SelctGetList(menu));
|
||||
var p= await _iMenuService.SelctGetList(menu);
|
||||
p.ForEach(m => m.Children = new List<MenuEntity>());
|
||||
return Result.Success().SetData(p);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 插入
|
||||
/// </summary>
|
||||
/// <param name="menu"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Result> Add(MenuEntity menu)
|
||||
{
|
||||
return Result.Success().SetData(await _iMenuService._repository.InsertReturnSnowflakeIdAsync(menu));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -104,5 +104,15 @@ namespace Yi.Framework.Model.Models
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName="Remark" )]
|
||||
public string Remark { get; set; }
|
||||
/// <summary>
|
||||
/// 组件路径
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName="Component" )]
|
||||
public string Component { get; set; }
|
||||
/// <summary>
|
||||
/// 路由参数
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName="Query" )]
|
||||
public string Query { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,14 +124,22 @@ namespace Yi.Framework.Service
|
||||
{
|
||||
userRoleMenu.RoleCodes.Add(role.RoleCode);
|
||||
|
||||
foreach (var menu in role.Menus)
|
||||
if (role.Menus.IsNotNull())
|
||||
{
|
||||
if (!string.IsNullOrEmpty(menu.PermissionCode))
|
||||
foreach (var menu in role.Menus)
|
||||
{
|
||||
userRoleMenu.PermissionCodes.Add(menu.PermissionCode);
|
||||
userRoleMenu.Menus.Add(menu);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(menu.PermissionCode))
|
||||
{
|
||||
userRoleMenu.PermissionCodes.Add(menu.PermissionCode);
|
||||
userRoleMenu.Menus.Add(menu);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//刚好可以去除一下多余的导航属性
|
||||
role.Menus = null;
|
||||
userRoleMenu.Roles.Add(role);
|
||||
|
||||
@@ -36,7 +36,7 @@ export function roleMenuTreeselect(roleId) {
|
||||
// 新增菜单
|
||||
export function addMenu(data) {
|
||||
return request({
|
||||
url: '/system/menu',
|
||||
url: '/menu/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
|
||||
@@ -157,6 +157,7 @@ export function mergeRecursive(source, target) {
|
||||
* @param {*} children 孩子节点字段 默认 'children'
|
||||
*/
|
||||
export function handleTree(data, id, parentId, children) {
|
||||
|
||||
let config = {
|
||||
id: id || 'id',
|
||||
parentId: parentId || 'parentId',
|
||||
|
||||
@@ -106,8 +106,8 @@
|
||||
<el-tree-select
|
||||
v-model="form.parentId"
|
||||
:data="menuOptions"
|
||||
:props="{ value: 'menuId', label: 'menuName', children: 'children' }"
|
||||
value-key="menuId"
|
||||
:props="{ value: 'id', label: 'menuName', children: 'children' }"
|
||||
value-key="id"
|
||||
placeholder="选择上级菜单"
|
||||
check-strictly
|
||||
/>
|
||||
@@ -122,8 +122,8 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" v-if="form.menuType != 1">
|
||||
<el-form-item label="菜单图标" prop="icon">
|
||||
<el-col :span="24" v-if="form.menuType != 2">
|
||||
<el-form-item label="菜单图标" prop="menuIcon">
|
||||
<el-popover
|
||||
placement="bottom-start"
|
||||
:width="540"
|
||||
@@ -132,11 +132,11 @@
|
||||
@show="showSelectIcon"
|
||||
>
|
||||
<template #reference>
|
||||
<el-input v-model="form.icon" placeholder="点击选择图标" @click="showSelectIcon" v-click-outside="hideSelectIcon" readonly>
|
||||
<el-input v-model="form.menuIcon" placeholder="点击选择图标" @click="showSelectIcon" v-click-outside="hideSelectIcon" readonly>
|
||||
<template #prefix>
|
||||
<svg-icon
|
||||
v-if="form.icon"
|
||||
:icon-class="form.icon"
|
||||
v-if="form.menuIcon"
|
||||
:icon-class="form.menuIcon"
|
||||
class="el-input__icon"
|
||||
style="height: 32px;width: 16px;"
|
||||
/>
|
||||
@@ -167,14 +167,16 @@
|
||||
</el-tooltip>是否外链
|
||||
</span>
|
||||
</template>
|
||||
<el-radio-group v-model="form.isFrame">
|
||||
<el-radio label="0">是</el-radio>
|
||||
<el-radio label="1">否</el-radio>
|
||||
<el-radio-group v-model="form.isLink">
|
||||
<el-radio :label=true>是</el-radio>
|
||||
<el-radio :label=false>否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="12" v-if="form.menuType != 1">
|
||||
<el-form-item prop="path">
|
||||
<el-form-item prop="router">
|
||||
<template #label>
|
||||
<span>
|
||||
<el-tooltip content="访问的路由地址,如:`user`,如外网地址需内链访问则以`http(s)://`开头" placement="top">
|
||||
@@ -183,7 +185,7 @@
|
||||
路由地址
|
||||
</span>
|
||||
</template>
|
||||
<el-input v-model="form.path" placeholder="请输入路由地址" />
|
||||
<el-input v-model="form.router" placeholder="请输入路由地址" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="form.menuType == 2">
|
||||
@@ -201,7 +203,7 @@
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="form.menuType != 0">
|
||||
<el-form-item>
|
||||
<el-input v-model="form.perms" placeholder="请输入权限标识" maxlength="100" />
|
||||
<el-input v-model="form.permissionCode" placeholder="请输入权限标识" maxlength="100" />
|
||||
<template #label>
|
||||
<span>
|
||||
<el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasPermi('system:user:list')`)" placement="top">
|
||||
@@ -236,8 +238,8 @@
|
||||
</span>
|
||||
</template>
|
||||
<el-radio-group v-model="form.isCache">
|
||||
<el-radio label="0">缓存</el-radio>
|
||||
<el-radio label="1">不缓存</el-radio>
|
||||
<el-radio :label=true>缓存</el-radio>
|
||||
<el-radio :label=false>不缓存</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -251,7 +253,7 @@
|
||||
显示状态
|
||||
</span>
|
||||
</template>
|
||||
<el-radio-group v-model="form.visible">
|
||||
<el-radio-group v-model="form.isShow">
|
||||
<el-radio
|
||||
v-for="dict in sys_show_hide"
|
||||
:key="dict.value"
|
||||
@@ -270,7 +272,7 @@
|
||||
菜单状态
|
||||
</span>
|
||||
</template>
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio-group v-model="form.isDeleted">
|
||||
<el-radio
|
||||
v-for="dict in sys_normal_disable"
|
||||
:key="dict.value"
|
||||
@@ -320,7 +322,7 @@ const data = reactive({
|
||||
rules: {
|
||||
menuName: [{ required: true, message: "菜单名称不能为空", trigger: "blur" }],
|
||||
orderNum: [{ required: true, message: "菜单顺序不能为空", trigger: "blur" }],
|
||||
path: [{ required: true, message: "路由地址不能为空", trigger: "blur" }]
|
||||
router: [{ required: true, message: "路由地址不能为空", trigger: "blur" }]
|
||||
},
|
||||
});
|
||||
|
||||
@@ -354,13 +356,13 @@ function reset() {
|
||||
menuId: undefined,
|
||||
parentId: 0,
|
||||
menuName: undefined,
|
||||
icon: undefined,
|
||||
menuType: "M",
|
||||
orderNum: undefined,
|
||||
isFrame: "1",
|
||||
isCache: "0",
|
||||
visible: "0",
|
||||
isDeleted: "0"
|
||||
menuIcon: undefined,
|
||||
menuType: 0,
|
||||
orderNum: 0,
|
||||
isLink: false,
|
||||
isCache: false,
|
||||
isShow: true,
|
||||
isDeleted: false
|
||||
};
|
||||
proxy.resetForm("menuRef");
|
||||
}
|
||||
@@ -371,7 +373,7 @@ function showSelectIcon() {
|
||||
}
|
||||
/** 选择图标 */
|
||||
function selected(name) {
|
||||
form.value.icon = name;
|
||||
form.value.menuIcon = name;
|
||||
showChooseIcon.value = false;
|
||||
}
|
||||
/** 图标外层点击隐藏下拉列表 */
|
||||
@@ -395,8 +397,8 @@ function resetQuery() {
|
||||
function handleAdd(row) {
|
||||
reset();
|
||||
getTreeselect();
|
||||
if (row != null && row.menuId) {
|
||||
form.value.parentId = row.menuId;
|
||||
if (row != null && row.id) {
|
||||
form.value.parentId = row.id;
|
||||
} else {
|
||||
form.value.parentId = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user