菜单完善

This commit is contained in:
chenchun
2022-09-11 22:05:56 +08:00
parent c65e76bbc3
commit 01631860f4
9 changed files with 71 additions and 54 deletions

View File

@@ -236,7 +236,7 @@
菜单管理
</summary>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.GetList(Yi.Framework.Model.Models.MenuEntity)">
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.SelctGetList(Yi.Framework.Model.Models.MenuEntity)">
<summary>
动态条件查询全部
</summary>
@@ -250,6 +250,13 @@
<param name="menu"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.Update(Yi.Framework.Model.Models.MenuEntity)">
<summary>
更新
</summary>
<param name="menu"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.MenuController.GetMenuTree">
<summary>
得到树形菜单

View File

@@ -20,10 +20,10 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// </summary>
[ApiController]
[Route("api/[controller]/[action]")]
public class MenuController
public class MenuController: BaseSimpleRdController<MenuEntity>
{
private IMenuService _iMenuService;
public MenuController(ILogger<MenuEntity> logger, IMenuService iMenuService)
public MenuController(ILogger<MenuEntity> logger, IMenuService iMenuService):base(logger,iMenuService)
{
_iMenuService = iMenuService;
}
@@ -35,7 +35,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// <param name="menu"></param>
/// <returns></returns>
[HttpGet]
public async Task<Result> GetList([FromQuery] MenuEntity menu)
public async Task<Result> SelctGetList([FromQuery] MenuEntity menu)
{
return Result.Success().SetData(await _iMenuService.SelctGetList(menu));
}
@@ -51,6 +51,18 @@ namespace Yi.Framework.ApiMicroservice.Controllers
return Result.Success().SetData(await _iMenuService._repository.InsertReturnSnowflakeIdAsync(menu));
}
/// <summary>
/// 更新
/// </summary>
/// <param name="menu"></param>
/// <returns></returns>
[HttpPut]
public async Task<Result> Update(MenuEntity menu)
{
//注意,这里如果是主目录,还需要判断/,需要以/开头
return Result.Success().SetData(await _iMenuService._repository.UpdateIgnoreNullAsync(menu));
}
/// <summary>
/// 得到树形菜单

View File

@@ -13,7 +13,6 @@ namespace Yi.Framework.Model.Models
{
public MenuEntity()
{
this.IsDeleted = false;
this.CreateTime = DateTime.Now;
}
[JsonConverter(typeof(ValueToStringConverter))]

View File

@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询菜单列表
export function listMenu(query) {
return request({
url: '/menu/getList',
url: '/menu/selctGetList',
method: 'get',
params: query
})
@@ -12,7 +12,7 @@ export function listMenu(query) {
// 查询菜单详细
export function getMenu(menuId) {
return request({
url: '/system/menu/' + menuId,
url: '/menu/getById/' + menuId,
method: 'get'
})
}
@@ -45,7 +45,7 @@ export function addMenu(data) {
// 修改菜单
export function updateMenu(data) {
return request({
url: '/system/menu',
url: '/menu/update',
method: 'put',
data: data
})
@@ -53,8 +53,13 @@ export function updateMenu(data) {
// 删除菜单
export function delMenu(menuId) {
if("string"==typeof(menuId))
{
menuId=[menuId];
}
return request({
url: '/system/menu/' + menuId,
method: 'delete'
url: '/menu/delList',
method: 'delete',
data:menuId
})
}

View File

@@ -35,8 +35,11 @@ const usePermissionStore = defineStore(
generateRoutes(roles) {
return new Promise(resolve => {
// 向后端请求路由数据
// getRouters().then(response => {
// const res=response.data;
getRouters().then(response => {
// const res=response.data;
const res=[
{
"name": "System",
@@ -345,23 +348,24 @@ const res=[
];
const sdata = JSON.parse(JSON.stringify(res))
const rdata = JSON.parse(JSON.stringify(res))
const defaultData = JSON.parse(JSON.stringify(res))
const sidebarRoutes = filterAsyncRouter(sdata)
const rewriteRoutes = filterAsyncRouter(rdata, false, true)
const defaultRoutes = filterAsyncRouter(defaultData)
const asyncRoutes = filterDynamicRoutes(dynamicRoutes)
asyncRoutes.forEach(route => { router.addRoute(route) })
this.setRoutes(rewriteRoutes)
this.setSidebarRouters(constantRoutes.concat(sidebarRoutes))
this.setDefaultRoutes(sidebarRoutes)
this.setTopbarRoutes(defaultRoutes)
resolve(rewriteRoutes)
const sdata = JSON.parse(JSON.stringify(res))
const rdata = JSON.parse(JSON.stringify(res))
const defaultData = JSON.parse(JSON.stringify(res))
const sidebarRoutes = filterAsyncRouter(sdata)
const rewriteRoutes = filterAsyncRouter(rdata, false, true)
const defaultRoutes = filterAsyncRouter(defaultData)
const asyncRoutes = filterDynamicRoutes(dynamicRoutes)
asyncRoutes.forEach(route => { router.addRoute(route) })
this.setRoutes(rewriteRoutes)
this.setSidebarRouters(constantRoutes.concat(sidebarRoutes))
this.setDefaultRoutes(sidebarRoutes)
this.setTopbarRoutes(defaultRoutes)
resolve(rewriteRoutes)
// })
})
})
}
}

View File

@@ -62,7 +62,8 @@
</el-table-column>
<el-table-column prop="orderNum" label="排序" width="60"></el-table-column>
<el-table-column prop="permissionCode" label="权限标识" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="router" label="组件路径" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="router" label="路由" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="isDeleted" label="状态" width="80">
<template #default="scope">
<dict-tag :options="sys_normal_disable" :value="scope.row.isDeleted" />
@@ -353,7 +354,7 @@ function cancel() {
/** 表单重置 */
function reset() {
form.value = {
menuId: undefined,
id: undefined,
parentId: 0,
menuName: undefined,
menuIcon: undefined,
@@ -427,7 +428,7 @@ async function handleUpdate(row) {
function submitForm() {
proxy.$refs["menuRef"].validate(valid => {
if (valid) {
if (form.value.menuId != undefined) {
if (form.value.id != undefined) {
updateMenu(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
@@ -446,7 +447,7 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
proxy.$modal.confirm('是否确认删除名称为"' + row.menuName + '"的数据项?').then(function() {
return delMenu(row.menuId);
return delMenu(row.id);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");

View File

@@ -87,7 +87,7 @@
<!-- 添加或修改角色配置对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="roleRef" :model="form" :rules="rules" label-width="100px">
<el-form ref="roleRef" :model="form.role" :rules="rules" label-width="100px">
<el-form-item label="角色名称" prop="roleName">
<el-input v-model="form.role.roleName" placeholder="请输入角色名称" />
</el-form-item>
@@ -216,9 +216,9 @@ const data = reactive({
isDeleted: undefined
},
rules: {
// roleName: [{ required: true, message: "角色名称不能为空", trigger: "blur" }],
// roleCode: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
// orderNum: [{ required: true, message: "角色顺序不能为空", trigger: "blur" }]
roleName: [{ required: true, message: "角色名称不能为空", trigger: "blur" }],
roleCode: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
orderNum: [{ required: true, message: "角色顺序不能为空", trigger: "blur" }]
},
});

View File

@@ -114,7 +114,7 @@
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" v-model="open" width="600px" append-to-body>
<el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
<el-form :model="form.user" :rules="rules" ref="userRef" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="用户昵称" prop="nick">
@@ -296,11 +296,11 @@ const data = reactive({
deptId: undefined
},
rules: {
// userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
// nick: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
// // password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
// email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
// phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
nick: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
// password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
}
});
@@ -457,18 +457,14 @@ function reset() {
};
proxy.resetForm("userRef");
// console.log(postOptions.value==[],123)
// console.log( JSON.stringify(postOptions.value) =='{}',456)
// //如果有任何下拉框为空直接重置获取
// if(postOptions.value=={}||roleOptions.value=={})
// {
if(postOptions.value.length==0||roleOptions.value.length==0)
{
roleOptionselect().then(response=>{
//岗位从另一个接口获取全量
postOptions.value = [];
roleOptions.value = response.data;
})
// }
}
};
@@ -485,13 +481,6 @@ function handleAdd() {
open.value = true;
title.value = "添加用户";
// getUser().then(response => {
// postOptions.value = response.posts;
// roleOptions.value = response.roles;
// open.value = true;
// title.value = "添加用户";
// form.value.password = initPassword.value;
// });
};
/** 修改按钮操作 */
function handleUpdate(row) {