diff --git a/admin/src/api/perms/menu.ts b/admin/src/api/perms/menu.ts index ea13670a..ec5f4b3b 100644 --- a/admin/src/api/perms/menu.ts +++ b/admin/src/api/perms/menu.ts @@ -28,3 +28,9 @@ export function menuDelete(params: Record) { export function menuDetail(params: Record) { return request.get({ url: '/auth.menu/detail', params }) } + + +// 菜单列表 +export function systemMenuLists(params: Record) { + return request.get({ url: '/auth.menu/systemMenuLists', params }) +} \ No newline at end of file diff --git a/admin/src/views/dev_tools/code/edit.vue b/admin/src/views/dev_tools/code/edit.vue index 1e415794..7e79825c 100644 --- a/admin/src/views/dev_tools/code/edit.vue +++ b/admin/src/views/dev_tools/code/edit.vue @@ -368,7 +368,7 @@ import { dataTableAll, generateEdit, tableDetail, dataTableToColumn } from '@/ap import { dictTypeAll } from '@/api/setting/dict' import type { FormInstance } from 'element-plus' import feedback from '@/utils/feedback' -import { menuLists } from '@/api/perms/menu' +import { systemMenuLists } from '@/api/perms/menu' import { useDictOptions } from '@/hooks/useDictOptions' import useMultipleTabs from '@/hooks/useMultipleTabs' enum GenTpl { @@ -447,8 +447,9 @@ const { optionsData } = useDictOptions<{ api: dictTypeAll }, menu: { - api: menuLists, + api: systemMenuLists, transformData(data: any) { + console.log(data, "datadatadata") const menu = { id: 0, menuName: '顶级', children: [] } menu.children = data return [menu] diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/system/SystemAuthMenuController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/system/SystemAuthMenuController.java index b90e0c5b..721c557e 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/system/SystemAuthMenuController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/system/SystemAuthMenuController.java @@ -45,6 +45,16 @@ public class SystemAuthMenuController { return AjaxResult.success(result); } + @NotPower + @GetMapping("/systemMenuLists") + @ApiOperation(value="获取菜单列表") + public AjaxResult systemMenuLists() { + JSONArray result = iSystemAuthMenuService.systemMenuLists(); + return AjaxResult.success(result); + } + + + @GetMapping("/all") @ApiOperation(value="获取菜单列表") public AjaxResult all() { diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/SystemMenuServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/SystemMenuServiceImpl.java index b4c40c79..e738e0b2 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/SystemMenuServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/SystemMenuServiceImpl.java @@ -10,6 +10,7 @@ import com.mdd.admin.service.system.ISystemRoleMenuService; import com.mdd.admin.validate.system.SystemMenuCreateValidate; import com.mdd.admin.validate.system.SystemMenuUpdateValidate; import com.mdd.admin.vo.system.SystemAuthMenuVo; +import com.mdd.admin.vo.system.SystemMenuListedVo; import com.mdd.common.entity.system.SystemMenu; import com.mdd.common.mapper.system.SystemMenuMapper; import com.mdd.common.util.ListUtils; @@ -86,6 +87,28 @@ public class SystemMenuServiceImpl implements ISystemMenuService { }}; } + @Override + public JSONArray systemMenuLists() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("sort"); + queryWrapper.orderByAsc("id"); + + List systemAuthMenus = systemAuthMenuMapper.selectList(queryWrapper); + + List lists = new ArrayList<>(); + for (SystemMenu systemAuthMenu : systemAuthMenus) { + SystemMenuListedVo vo = new SystemMenuListedVo(); + BeanUtils.copyProperties(systemAuthMenu, vo); + + vo.setCreateTime(TimeUtils.timestampToDate(systemAuthMenu.getCreateTime())); + vo.setUpdateTime(TimeUtils.timestampToDate(systemAuthMenu.getUpdateTime())); + lists.add(vo); + } + + JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists)); + return ListUtils.listToTree(jsonArray, "id", "pid", "children"); + } + @Override public JSONArray all() { QueryWrapper queryWrapper = new QueryWrapper<>(); diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/system/ISystemMenuService.java b/server/like-admin/src/main/java/com/mdd/admin/service/system/ISystemMenuService.java index aa2abeab..e7ca2a61 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/system/ISystemMenuService.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/system/ISystemMenuService.java @@ -29,6 +29,14 @@ public interface ISystemMenuService { */ JSONObject list(); + /** + * 菜单列表 + * + * @author fzr + * @return JSONArray + */ + JSONArray systemMenuLists(); + /** * 菜单列表 * diff --git a/server/like-admin/src/main/java/com/mdd/admin/vo/system/SystemMenuListedVo.java b/server/like-admin/src/main/java/com/mdd/admin/vo/system/SystemMenuListedVo.java new file mode 100644 index 00000000..7a88b43d --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/vo/system/SystemMenuListedVo.java @@ -0,0 +1,68 @@ +package com.mdd.admin.vo.system; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("系统菜单Vo") +public class SystemMenuListedVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private Integer id; + + @ApiModelProperty(value = "上级菜单") + private Integer pid; + + @ApiModelProperty(value = "权限类型: [M=目录, C=菜单, A=按钮]") + @JsonProperty("menuType") + private String type; + + @ApiModelProperty(value = "菜单名称") + @JsonProperty("menuName") + private String name; + + @ApiModelProperty(value = "菜单图标") + @JsonProperty("menuIcon") + private String icon; + + @ApiModelProperty(value = "菜单排序") + @JsonProperty("menuSort") + private Integer sort; + + @ApiModelProperty(value = "权限标识") + private String perms; + + @ApiModelProperty(value = "路由地址") + private String paths; + + @ApiModelProperty(value = "前端组件") + private String component; + + @ApiModelProperty(value = "选中路径") + private String selected; + + @ApiModelProperty(value = "路由参数") + private String params; + + @ApiModelProperty(value = "是否缓存: [0=否, 1=是]") + private Integer isCache; + + @ApiModelProperty(value = "是否显示: [0=否, 1=是]") + private Integer isShow; + + @ApiModelProperty(value = "是否禁用: [0=否, 1=是]") + private Integer isDisable; + + @ApiModelProperty(value = "创建时间") + private String createTime; + + @ApiModelProperty(value = "更新时间") + private String updateTime; + +} diff --git a/server/like-generator/src/main/java/com/mdd/generator/controller/GenController.java b/server/like-generator/src/main/java/com/mdd/generator/controller/GenController.java index 1f5518c1..f99c3077 100644 --- a/server/like-generator/src/main/java/com/mdd/generator/controller/GenController.java +++ b/server/like-generator/src/main/java/com/mdd/generator/controller/GenController.java @@ -95,7 +95,7 @@ public class GenController { @GetMapping("/detail") public AjaxResult> detail(@Validated @IDMust() @RequestParam("id") Integer id) { Map maps = iGenerateService.detail(id); - return AjaxResult.success(maps); + return AjaxResult.success(200, "成功", maps); } /** @@ -109,7 +109,7 @@ public class GenController { Assert.notNull(tables, "请选择要导入的表"); String[] tableNames = tables.split(","); iGenerateService.importTable(tableNames); - return AjaxResult.success(); + return AjaxResult.success("成功", 0); } /** @@ -122,7 +122,7 @@ public class GenController { @PostMapping("/editTable") public AjaxResult editTable(@Validated() @RequestBody GenParam genParam) { iGenerateService.editTable(genParam); - return AjaxResult.success(); + return AjaxResult.success("成功", 0); } /** @@ -135,7 +135,7 @@ public class GenController { @PostMapping("/delTable") public AjaxResult deleteTable(@Validated(value = GenParam.delete.class) @RequestBody GenParam genParam) { iGenerateService.deleteTable(genParam.getIds()); - return AjaxResult.success(); + return AjaxResult.success("成功", 0); } /** @@ -148,7 +148,7 @@ public class GenController { @PostMapping("/syncTable") public AjaxResult syncTable(@Validated @IDMust() @RequestParam("id") Integer id) { iGenerateService.syncTable(id); - return AjaxResult.success(); + return AjaxResult.success("成功", 0); } /** diff --git a/server/like-generator/src/main/java/com/mdd/generator/validate/GenParam.java b/server/like-generator/src/main/java/com/mdd/generator/validate/GenParam.java index 15304f3d..c417adcb 100644 --- a/server/like-generator/src/main/java/com/mdd/generator/validate/GenParam.java +++ b/server/like-generator/src/main/java/com/mdd/generator/validate/GenParam.java @@ -1,5 +1,6 @@ package com.mdd.generator.validate; +import com.fasterxml.jackson.annotation.JsonProperty; import com.mdd.common.validator.annotation.IDMust; import com.mdd.common.validator.annotation.IntegerContains; import com.mdd.common.validator.annotation.StringContains; @@ -34,21 +35,25 @@ public class GenParam implements Serializable { @NotNull(message = "tableName参数缺失") @NotEmpty(message = "表名称不能为空") @Length(min = 1, max = 200, message = "名称不能大于200个字符") + @JsonProperty("tableName") private String tableName; @NotNull(message = "entityName参数缺失") @NotEmpty(message = "实体类名称不能为空") @Length(min = 1, max = 200, message = "实体类名称不能大于200个字符") + @JsonProperty("entityName") private String entityName; @NotNull(message = "tableComment参数缺失") @NotEmpty(message = "表描述不能为空") @Length(min = 1, max = 200, message = "表描述不能大于200个字符") + @JsonProperty("tableComment") private String tableComment; @NotNull(message = "authorName参数缺失") @NotEmpty(message = "作者名称不能为空") @Length(min = 1, max = 100, message = "作者名称不能大于60个字符") + @JsonProperty("authorName") private String authorName; @Length(max = 60, message = "备注不能大于200个字符") @@ -57,37 +62,53 @@ public class GenParam implements Serializable { @NotNull(message = "genTpl参数缺失") @NotEmpty(message = "请选择生成模板") @StringContains(values = {"crud", "tree"}, message = "选择的生成模板不符合") + @JsonProperty("genTpl") private String genTpl; @NotNull(message = "moduleName参数缺失") @NotEmpty(message = "生成模块名不能为空") @Length(min = 1, max = 60, message = "生成模块名不能大于60个字符") + @JsonProperty("moduleName") private String moduleName; @NotNull(message = "functionName参数缺失") @NotEmpty(message = "生成功能名不能为空") @Length(min = 1, max = 60, message = "生成功能名不能大于60个字符") + @JsonProperty("functionName") private String functionName; @NotNull(message = "genType参数缺失") @IntegerContains(values = {0, 1}, message = "选择的生成代码方式不符合") + @JsonProperty("genType") private Integer genType; @Length(max = 200, message = "生成代码路径不能大于200个字符") + @JsonProperty("genPath") private String genPath = "/"; private List> column = new ArrayList<>(); + @JsonProperty("treePrimary") private String treePrimary = ""; + @JsonProperty("treeParent") private String treeParent = ""; + @JsonProperty("treeName") private String treeName = ""; + @JsonProperty("subTableName") private String subTableName = ""; + @JsonProperty("subTableFk") private String subTableFk = ""; + + @JsonProperty("subTableFr") private String subTableFr = ""; + @JsonProperty("menuStatus") private Integer menuStatus = 2; + @JsonProperty("menuPid") private Integer menuPid = 0; + + @JsonProperty("menuName") private String menuName = ""; }