package com.xjrsoft.module.system.vo; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.xjrsoft.common.enums.YesOrNoEnum; import com.xjrsoft.common.model.tree.ITreeNode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** *

* 获取菜单树vo *

* * @author tzx * @since 2021-09-20 */ @Data @JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.ANY) public class MenuTreeVo implements ITreeNode, Serializable { private static final long serialVersionUID = 1L; /** * 上级Id */ private Long id; /** * 上级Id */ private Long parentId; /** * 组件名(路由名称) -- 与vue代码组件名必须一直 才能做到缓存页面 相关联 */ private String name; /** * 菜单名 */ private String title; /** * 菜单编号 */ private String code; /** * 菜单图标 */ private String icon; /** * 图标地址 */ private String iconUrl; /** * 地址 */ private String path; /** * 组件地址 */ private String component; /** * 组件类型 默认组件 0 普通需要注册的组件 1 自定义表单 桌面设计 等已经默认注册进来的组件 */ private Integer componentType; /** * 外链地址 */ private String iframeSrc; /** * 组件类型 */ private Integer menuType; /** * 菜单显示或者隐藏 */ private Integer display; /** * 是否允许修改 */ private Integer allowModify; /** * 是否允许删除 */ private Integer allowDelete; /** * 是否外链 */ private Integer outLink; /** * 页面持久化 */ private Integer keepAlive; /** * 排序码 */ private Integer sortCode; /** * 排序码 */ private String remark; /** * 系统主键(主系统默认为0) */ private Long systemId; /** * 系统名称 */ private String systemName; /** * 表单id */ private Long formId; private Integer enabledMark; private String deptName; private String deptId; private List children; private Boolean disabled; public Boolean getDisabled() { return this.menuType != null &&this.menuType == 1; } private JSONObject meta; public JSONObject getMeta() { if (meta == null) { meta = new JSONObject(); } meta.put("affix", false); meta.put("icon", this.icon); meta.put("orderNo", this.sortCode); meta.put("title", this.title); meta.put("outLink", this.outLink); meta.put("systemId", this.systemId); meta.put("formId", this.formId); meta.put("menuId", this.id); meta.put("menuType", this.menuType); meta.put("hideMenu", this.display == YesOrNoEnum.NO.getCode()); if (StrUtil.isBlank(this.component)) { meta.put("ignoreRoute", true); } //如果是外部连接 将path 作为 meta 的frameSrc 传递出去 if (this.outLink != null && this.outLink == 1) { meta.put("frameSrc", this.iframeSrc); } return meta; } public Long getParentId() { if (this.parentId == null || this.parentId == 0) { return null; } return parentId; } @ApiModelProperty("是否有权限(1:是 0:否)") private Integer authorized; }