Переглянути джерело

update 重写系统部分业务导出

疯狂的狮子li 3 роки тому
батько
коміт
0539c2f927
33 змінених файлів з 797 додано та 728 видалено
  1. 5 5
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
  2. 0 2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
  3. 4 4
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
  4. 4 4
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
  5. 4 4
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
  6. 12 18
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
  7. 4 4
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
  8. 103 75
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
  9. 109 81
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
  10. 63 45
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
  11. 125 84
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
  12. 132 100
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
  13. 173 129
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
  14. 1 1
      ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java
  15. 11 10
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
  16. 15 13
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
  17. 0 3
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
  18. 11 10
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
  19. 0 9
      ruoyi-ui/src/api/monitor/logininfor.js
  20. 0 9
      ruoyi-ui/src/api/monitor/operlog.js
  21. 0 8
      ruoyi-ui/src/api/system/config.js
  22. 0 9
      ruoyi-ui/src/api/system/dict/data.js
  23. 0 9
      ruoyi-ui/src/api/system/dict/type.js
  24. 0 10
      ruoyi-ui/src/api/system/role.js
  25. 1 2
      ruoyi-ui/src/utils/download.js
  26. 3 13
      ruoyi-ui/src/views/monitor/logininfor/index.vue
  27. 1 1
      ruoyi-ui/src/views/monitor/operlog/index.vue
  28. 3 13
      ruoyi-ui/src/views/system/config/index.vue
  29. 3 13
      ruoyi-ui/src/views/system/dict/data.vue
  30. 3 13
      ruoyi-ui/src/views/system/dict/index.vue
  31. 3 13
      ruoyi-ui/src/views/system/post/index.vue
  32. 3 13
      ruoyi-ui/src/views/system/role/index.vue
  33. 1 1
      ruoyi-ui/src/views/system/user/profile/userAvatar.vue

+ 5 - 5
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java

@@ -5,18 +5,19 @@ import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.domain.SysLogininfor;
 import com.ruoyi.system.service.ISysLogininforService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
  * 系统访问记录
- * 
+ *
  * @author ruoyi
  */
 @RestController
@@ -36,11 +37,10 @@ public class SysLogininforController extends BaseController
     @Log(title = "登录日志", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysLogininfor logininfor)
+    public void export(SysLogininfor logininfor, HttpServletResponse response)
     {
         List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
-        ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
-        return util.exportExcel(list, "登录日志");
+		ExcelUtils.exportExcel(list, "登录日志", SysLogininfor.class, response);
     }
 
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")

+ 0 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java

@@ -41,8 +41,6 @@ public class SysOperlogController extends BaseController
     {
         List<SysOperLog> list = operLogService.selectOperLogList(operLog);
 		ExcelUtils.exportExcel(list, "操作日志", SysOperLog.class, response);
-//        ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
-//        return util.exportEasyExcel(list, "操作日志");
     }
 
     @Log(title = "操作日志", businessType = BusinessType.DELETE)

+ 4 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java

@@ -8,7 +8,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +16,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -43,11 +44,10 @@ public class SysConfigController extends BaseController
     @Log(title = "参数管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:config:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysConfig config)
+    public void export(SysConfig config, HttpServletResponse response)
     {
         List<SysConfig> list = configService.selectConfigList(config);
-        ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
-        return util.exportExcel(list, "参数数据");
+		ExcelUtils.exportExcel(list, "参数数据", SysConfig.class, response);
     }
 
     /**

+ 4 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java

@@ -8,7 +8,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.system.service.ISysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +16,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -44,11 +45,10 @@ public class SysDictDataController extends BaseController
     @Log(title = "字典数据", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:dict:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysDictData dictData)
+    public void export(SysDictData dictData, HttpServletResponse response)
     {
         List<SysDictData> list = dictDataService.selectDictDataList(dictData);
-        ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
-        return util.exportExcel(list, "字典数据");
+		ExcelUtils.exportExcel(list, "字典数据", SysDictData.class, response);
     }
 
     /**

+ 4 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java

@@ -8,13 +8,14 @@ import com.ruoyi.common.core.domain.entity.SysDictType;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.service.ISysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -39,11 +40,10 @@ public class SysDictTypeController extends BaseController
     @Log(title = "字典类型", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:dict:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysDictType dictType)
+    public void export(SysDictType dictType, HttpServletResponse response)
     {
         List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
-        ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
-        return util.exportExcel(list, "字典类型");
+		ExcelUtils.exportExcel(list, "字典类型", SysDictType.class, response);
     }
 
     /**

+ 12 - 18
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java

@@ -1,17 +1,5 @@
 package com.ruoyi.web.controller.system;
 
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
@@ -19,13 +7,20 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.service.ISysPostService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 岗位信息操作处理
- * 
+ *
  * @author ruoyi
  */
 @RestController
@@ -44,15 +39,14 @@ public class SysPostController extends BaseController
     {
         return postService.selectPagePostList(post);
     }
-    
+
     @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:post:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysPost post)
+    public void export(SysPost post, HttpServletResponse response)
     {
         List<SysPost> list = postService.selectPostList(post);
-        ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
-        return util.exportExcel(list, "岗位数据");
+		ExcelUtils.exportExcel(list, "岗位数据", SysPost.class, response);
     }
 
     /**

+ 4 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java

@@ -12,7 +12,7 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.framework.web.service.SysPermissionService;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.domain.SysUserRole;
@@ -23,6 +23,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -56,11 +57,10 @@ public class SysRoleController extends BaseController
     @Log(title = "角色管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:role:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysRole role)
+    public void export(SysRole role, HttpServletResponse response)
     {
         List<SysRole> list = roleService.selectRoleList(role);
-        ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
-        return util.exportExcel(list, "角色数据");
+		ExcelUtils.exportExcel(list, "角色数据", SysRole.class, response);
     }
 
     /**

+ 103 - 75
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java

@@ -1,7 +1,6 @@
 package com.ruoyi.common.core.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -14,7 +13,7 @@ import java.util.*;
 
 /**
  * 部门表 sys_dept
- * 
+ *
  * @author ruoyi
  */
 
@@ -22,78 +21,107 @@ import java.util.*;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dept")
-public class SysDept implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 部门ID */
-    @TableId(value = "dept_id",type = IdType.AUTO)
-    private Long deptId;
-
-    /** 父部门ID */
-    private Long parentId;
-
-    /** 祖级列表 */
-    private String ancestors;
-
-    /** 部门名称 */
-    @NotBlank(message = "部门名称不能为空")
-    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
-    private String deptName;
-
-    /** 显示顺序 */
-    @NotBlank(message = "显示顺序不能为空")
-    private String orderNum;
-
-    /** 负责人 */
-    private String leader;
-
-    /** 联系电话 */
-    @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
-    private String phone;
-
-    /** 邮箱 */
-    @Email(message = "邮箱格式不正确")
-    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
-    private String email;
-
-    /** 部门状态:0正常,1停用 */
-    private String status;
-
-    /** 删除标志(0代表存在 2代表删除) */
-    @TableLogic
-    private String delFlag;
-
-    /** 父部门名称 */
-    @TableField(exist = false)
-    private String parentName;
-
-    /** 创建者 */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
-
-    /** 创建时间 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
-
-    /** 更新者 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
-
-    /** 更新时间 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-    
-    /** 子部门 */
-    @TableField(exist = false)
-    private List<SysDept> children = new ArrayList<SysDept>();
-
-    /**
-     * 请求参数
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+public class SysDept implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 部门ID
+	 */
+	@TableId(value = "dept_id", type = IdType.AUTO)
+	private Long deptId;
+
+	/**
+	 * 父部门ID
+	 */
+	private Long parentId;
+
+	/**
+	 * 祖级列表
+	 */
+	private String ancestors;
+
+	/**
+	 * 部门名称
+	 */
+	@NotBlank(message = "部门名称不能为空")
+	@Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
+	private String deptName;
+
+	/**
+	 * 显示顺序
+	 */
+	@NotBlank(message = "显示顺序不能为空")
+	private String orderNum;
+
+	/**
+	 * 负责人
+	 */
+	private String leader;
+
+	/**
+	 * 联系电话
+	 */
+	@Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
+	private String phone;
+
+	/**
+	 * 邮箱
+	 */
+	@Email(message = "邮箱格式不正确")
+	@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+	private String email;
+
+	/**
+	 * 部门状态:0正常,1停用
+	 */
+	private String status;
+
+	/**
+	 * 删除标志(0代表存在 2代表删除)
+	 */
+	@TableLogic
+	private String delFlag;
+
+	/**
+	 * 父部门名称
+	 */
+	@TableField(exist = false)
+	private String parentName;
+
+	/**
+	 * 创建者
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
+
+	/**
+	 * 更新者
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
+
+	/**
+	 * 子部门
+	 */
+	@TableField(exist = false)
+	private List<SysDept> children = new ArrayList<SysDept>();
+
+	/**
+	 * 请求参数
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
 
 }

+ 109 - 81
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java

@@ -1,10 +1,11 @@
 package com.ruoyi.common.core.domain.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.constant.UserConstants;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -18,7 +19,7 @@ import java.util.Map;
 
 /**
  * 字典数据表 sys_dict_data
- * 
+ *
  * @author ruoyi
  */
 
@@ -26,82 +27,109 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dict_data")
-public class SysDictData implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 字典编码 */
-    @Excel(name = "字典编码", cellType = ColumnType.NUMERIC)
-    @TableId(value = "dict_code",type = IdType.AUTO)
-    private Long dictCode;
-
-    /** 字典排序 */
-    @Excel(name = "字典排序", cellType = ColumnType.NUMERIC)
-    private Long dictSort;
-
-    /** 字典标签 */
-    @Excel(name = "字典标签")
-    @NotBlank(message = "字典标签不能为空")
-    @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
-    private String dictLabel;
-
-    /** 字典键值 */
-    @Excel(name = "字典键值")
-    @NotBlank(message = "字典键值不能为空")
-    @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
-    private String dictValue;
-
-    /** 字典类型 */
-    @Excel(name = "字典类型")
-    @NotBlank(message = "字典类型不能为空")
-    @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
-    private String dictType;
-
-    /** 样式属性(其他样式扩展) */
-    @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
-    private String cssClass;
-
-    /** 表格字典样式 */
-    private String listClass;
-
-    /** 是否默认(Y是 N否) */
-    @Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
-    private String isDefault;
-
-    /** 状态(0正常 1停用) */
-    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
-    private String status;
-
-    /** 创建者 */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
-
-    /** 创建时间 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
-
-    /** 更新者 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
-
-    /** 更新时间 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-
-    /** 备注 */
-    private String remark;
-
-    /**
-     * 请求参数
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
-
-    public boolean getDefault()
-    {
-        return UserConstants.YES.equals(this.isDefault) ? true : false;
-    }
+@ExcelIgnoreUnannotated
+public class SysDictData implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 字典编码
+	 */
+	@ExcelProperty(value = "字典编码")
+	@TableId(value = "dict_code", type = IdType.AUTO)
+	private Long dictCode;
+
+	/**
+	 * 字典排序
+	 */
+	@ExcelProperty(value = "字典排序")
+	private Long dictSort;
+
+	/**
+	 * 字典标签
+	 */
+	@ExcelProperty(value = "字典标签")
+	@NotBlank(message = "字典标签不能为空")
+	@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
+	private String dictLabel;
+
+	/**
+	 * 字典键值
+	 */
+	@ExcelProperty(value = "字典键值")
+	@NotBlank(message = "字典键值不能为空")
+	@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
+	private String dictValue;
+
+	/**
+	 * 字典类型
+	 */
+	@ExcelProperty(value = "字典类型")
+	@NotBlank(message = "字典类型不能为空")
+	@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
+	private String dictType;
+
+	/**
+	 * 样式属性(其他样式扩展)
+	 */
+	@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
+	private String cssClass;
+
+	/**
+	 * 表格字典样式
+	 */
+	private String listClass;
+
+	/**
+	 * 是否默认(Y是 N否)
+	 */
+	@ExcelProperty(value = "是否默认", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_yes_no")
+	private String isDefault;
+
+	/**
+	 * 状态(0正常 1停用)
+	 */
+	@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
+	private String status;
+
+	/**
+	 * 创建者
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
+
+	/**
+	 * 更新者
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+	/**
+	 * 请求参数
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
+
+	public boolean getDefault() {
+		return UserConstants.YES.equals(this.isDefault) ? true : false;
+	}
 
 }

+ 63 - 45
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java

@@ -1,9 +1,10 @@
 package com.ruoyi.common.core.domain.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -17,7 +18,7 @@ import java.util.Map;
 
 /**
  * 字典类型表 sys_dict_type
- * 
+ *
  * @author ruoyi
  */
 
@@ -25,56 +26,73 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dict_type")
-public class SysDictType implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+@ExcelIgnoreUnannotated
+public class SysDictType implements Serializable {
+	private static final long serialVersionUID = 1L;
 
-    /** 字典主键 */
-    @Excel(name = "字典主键", cellType = ColumnType.NUMERIC)
-    @TableId(value = "dict_id",type = IdType.AUTO)
-    private Long dictId;
+	/**
+	 * 字典主键
+	 */
+	@ExcelProperty(value = "字典主键")
+	@TableId(value = "dict_id", type = IdType.AUTO)
+	private Long dictId;
 
-    /** 字典名称 */
-    @Excel(name = "字典名称")
-    @NotBlank(message = "字典名称不能为空")
-    @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
-    private String dictName;
+	/**
+	 * 字典名称
+	 */
+	@ExcelProperty(value = "字典名称")
+	@NotBlank(message = "字典名称不能为空")
+	@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
+	private String dictName;
 
-    /** 字典类型 */
-    @Excel(name = "字典类型")
-    @NotBlank(message = "字典类型不能为空")
-    @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
-    private String dictType;
+	/**
+	 * 字典类型
+	 */
+	@ExcelProperty(value = "字典类型")
+	@NotBlank(message = "字典类型不能为空")
+	@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
+	private String dictType;
 
-    /** 状态(0正常 1停用) */
-    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
-    private String status;
+	/**
+	 * 状态(0正常 1停用)
+	 */
+	@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
+	private String status;
 
-    /** 创建者 */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
+	/**
+	 * 创建者
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
 
-    /** 创建时间 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
 
-    /** 更新者 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
+	/**
+	 * 更新者
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
 
-    /** 更新时间 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
+	/**
+	 * 更新时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
 
-    /** 备注 */
-    private String remark;
+	/**
+	 * 备注
+	 */
+	private String remark;
 
-    /**
-     * 请求参数
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+	/**
+	 * 请求参数
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
 
 }

+ 125 - 84
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java

@@ -13,7 +13,7 @@ import java.util.*;
 
 /**
  * 菜单权限表 sys_menu
- * 
+ *
  * @author ruoyi
  */
 
@@ -21,88 +21,129 @@ import java.util.*;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_menu")
-public class SysMenu implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 菜单ID */
-    @TableId(value = "menu_id",type = IdType.AUTO)
-    private Long menuId;
-
-    /** 菜单名称 */
-    @NotBlank(message = "菜单名称不能为空")
-    @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
-    private String menuName;
-
-    /** 父菜单名称 */
-    @TableField(exist = false)
-    private String parentName;
-
-    /** 父菜单ID */
-    private Long parentId;
-
-    /** 显示顺序 */
-    @NotBlank(message = "显示顺序不能为空")
-    private String orderNum;
-
-    /** 路由地址 */
-    @Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
-    private String path;
-
-    /** 组件路径 */
-    @Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
-    private String component;
-
-    /** 是否为外链(0是 1否) */
-    private String isFrame;
-
-    /** 是否缓存(0缓存 1不缓存) */
-    private String isCache;
-
-    /** 类型(M目录 C菜单 F按钮) */
-    @NotBlank(message = "菜单类型不能为空")
-    private String menuType;
-
-    /** 显示状态(0显示 1隐藏) */
-    private String visible;
-    
-    /** 菜单状态(0显示 1隐藏) */
-    private String status;
-
-    /** 权限字符串 */
-    @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
-    private String perms;
-
-    /** 菜单图标 */
-    private String icon;
-
-    /** 创建者 */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
-
-    /** 创建时间 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
-
-    /** 更新者 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
-
-    /** 更新时间 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-
-    /** 备注 */
-    private String remark;
-
-    /** 请求参数 */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
-
-    /** 子菜单 */
-    @TableField(exist = false)
-    private List<SysMenu> children = new ArrayList<SysMenu>();
+public class SysMenu implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 菜单ID
+	 */
+	@TableId(value = "menu_id", type = IdType.AUTO)
+	private Long menuId;
+
+	/**
+	 * 菜单名称
+	 */
+	@NotBlank(message = "菜单名称不能为空")
+	@Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
+	private String menuName;
+
+	/**
+	 * 父菜单名称
+	 */
+	@TableField(exist = false)
+	private String parentName;
+
+	/**
+	 * 父菜单ID
+	 */
+	private Long parentId;
+
+	/**
+	 * 显示顺序
+	 */
+	@NotBlank(message = "显示顺序不能为空")
+	private String orderNum;
+
+	/**
+	 * 路由地址
+	 */
+	@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
+	private String path;
+
+	/**
+	 * 组件路径
+	 */
+	@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
+	private String component;
+
+	/**
+	 * 是否为外链(0是 1否)
+	 */
+	private String isFrame;
+
+	/**
+	 * 是否缓存(0缓存 1不缓存)
+	 */
+	private String isCache;
+
+	/**
+	 * 类型(M目录 C菜单 F按钮)
+	 */
+	@NotBlank(message = "菜单类型不能为空")
+	private String menuType;
+
+	/**
+	 * 显示状态(0显示 1隐藏)
+	 */
+	private String visible;
+
+	/**
+	 * 菜单状态(0显示 1隐藏)
+	 */
+	private String status;
+
+	/**
+	 * 权限字符串
+	 */
+	@Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
+	private String perms;
+
+	/**
+	 * 菜单图标
+	 */
+	private String icon;
+
+	/**
+	 * 创建者
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
+
+	/**
+	 * 更新者
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+	/**
+	 * 请求参数
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
+
+	/**
+	 * 子菜单
+	 */
+	@TableField(exist = false)
+	private List<SysMenu> children = new ArrayList<SysMenu>();
 
 }

+ 132 - 100
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java

@@ -1,9 +1,10 @@
 package com.ruoyi.common.core.domain.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -25,102 +26,133 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_role")
-public class SysRole implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 角色ID */
-    @Excel(name = "角色序号", cellType = ColumnType.NUMERIC)
-    @TableId(value = "role_id",type = IdType.AUTO)
-    private Long roleId;
-
-    /** 角色名称 */
-    @Excel(name = "角色名称")
-    @NotBlank(message = "角色名称不能为空")
-    @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
-    private String roleName;
-
-    /** 角色权限 */
-    @Excel(name = "角色权限")
-    @NotBlank(message = "权限字符不能为空")
-    @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
-    private String roleKey;
-
-    /** 角色排序 */
-    @Excel(name = "角色排序")
-    @NotBlank(message = "显示顺序不能为空")
-    private String roleSort;
-
-    /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
-    @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
-    private String dataScope;
-
-    /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */
-    private boolean menuCheckStrictly;
-
-    /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */
-    private boolean deptCheckStrictly;
-
-    /** 角色状态(0正常 1停用) */
-    @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
-    private String status;
-
-    /** 删除标志(0代表存在 2代表删除) */
-    @TableLogic
-    private String delFlag;
-
-    /** 创建者 */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
-
-    /** 创建时间 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
-
-    /** 更新者 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
-
-    /** 更新时间 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-
-    /** 备注 */
-    private String remark;
-
-    /**
-     * 请求参数
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
-
-    /** 用户是否存在此角色标识 默认不存在 */
-    @TableField(exist = false)
-    private boolean flag = false;
-
-    /** 菜单组 */
-    @TableField(exist = false)
-    private Long[] menuIds;
-
-    /** 部门组(数据权限) */
-    @TableField(exist = false)
-    private Long[] deptIds;
-
-    public SysRole(Long roleId)
-    {
-        this.roleId = roleId;
-    }
-
-    public boolean isAdmin()
-    {
-        return isAdmin(this.roleId);
-    }
-
-    public static boolean isAdmin(Long roleId)
-    {
-        return roleId != null && 1L == roleId;
-    }
+@ExcelIgnoreUnannotated
+public class SysRole implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 角色ID
+	 */
+	@ExcelProperty(value = "角色序号")
+	@TableId(value = "role_id", type = IdType.AUTO)
+	private Long roleId;
+
+	/**
+	 * 角色名称
+	 */
+	@ExcelProperty(value = "角色名称")
+	@NotBlank(message = "角色名称不能为空")
+	@Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
+	private String roleName;
+
+	/**
+	 * 角色权限
+	 */
+	@ExcelProperty(value = "角色权限")
+	@NotBlank(message = "权限字符不能为空")
+	@Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
+	private String roleKey;
+
+	/**
+	 * 角色排序
+	 */
+	@ExcelProperty(value = "角色排序")
+	@NotBlank(message = "显示顺序不能为空")
+	private String roleSort;
+
+	/**
+	 * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
+	 */
+	@ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
+	private String dataScope;
+
+	/**
+	 * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)
+	 */
+	private boolean menuCheckStrictly;
+
+	/**
+	 * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )
+	 */
+	private boolean deptCheckStrictly;
+
+	/**
+	 * 角色状态(0正常 1停用)
+	 */
+	@ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
+	private String status;
+
+	/**
+	 * 删除标志(0代表存在 2代表删除)
+	 */
+	@TableLogic
+	private String delFlag;
+
+	/**
+	 * 创建者
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
+
+	/**
+	 * 更新者
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+	/**
+	 * 请求参数
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
+
+	/**
+	 * 用户是否存在此角色标识 默认不存在
+	 */
+	@TableField(exist = false)
+	private boolean flag = false;
+
+	/**
+	 * 菜单组
+	 */
+	@TableField(exist = false)
+	private Long[] menuIds;
+
+	/**
+	 * 部门组(数据权限)
+	 */
+	@TableField(exist = false)
+	private Long[] deptIds;
+
+	public SysRole(Long roleId) {
+		this.roleId = roleId;
+	}
+
+	public boolean isAdmin() {
+		return isAdmin(this.roleId);
+	}
+
+	public static boolean isAdmin(Long roleId) {
+		return roleId != null && 1L == roleId;
+	}
 
 }

+ 173 - 129
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -31,139 +31,183 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_user")
-public class SysUser implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 用户ID */
-    @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
-    @TableId(value = "user_id",type = IdType.AUTO)
-    private Long userId;
-
-    /** 部门ID */
-    @Excel(name = "部门编号", type = Type.IMPORT)
-    private Long deptId;
-
-    /** 用户账号 */
-    @NotBlank(message = "用户账号不能为空")
-    @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
-    @Excel(name = "登录名称")
-    private String userName;
-
-    /** 用户昵称 */
-    @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
-    @Excel(name = "用户名称")
-    private String nickName;
-
-    /** 用户邮箱 */
-    @Email(message = "邮箱格式不正确")
-    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
-    @Excel(name = "用户邮箱")
-    private String email;
-
-    /** 手机号码 */
-    @Excel(name = "手机号码")
-    private String phonenumber;
-
-    /** 用户性别 */
-    @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
-    private String sex;
-
-    /** 用户头像 */
-    private String avatar;
-
-    /** 密码 */
-    private String password;
-
-    @JsonIgnore
-    @JsonProperty
-    public String getPassword() {
-        return password;
-    }
-
-    /** 盐加密 */
-    private String salt;
-
-    /** 帐号状态(0正常 1停用) */
-    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
-    private String status;
-
-    /** 删除标志(0代表存在 2代表删除) */
-    @TableLogic
-    private String delFlag;
-
-    /** 最后登录IP */
-    @Excel(name = "最后登录IP", type = Type.EXPORT)
-    private String loginIp;
-
-    /** 最后登录时间 */
-    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
-    private Date loginDate;
-
-    /** 创建者 */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
-
-    /** 创建时间 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
-
-    /** 更新者 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
-
-    /** 更新时间 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-
-    /** 备注 */
-    private String remark;
-
-    /**
-     * 请求参数
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
-
-    /** 部门对象 */
-    @Excels({
-        @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
-        @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
-    })
-    @TableField(exist = false)
-    private SysDept dept;
-
-    /** 角色对象 */
-    @TableField(exist = false)
-    private List<SysRole> roles;
-
-    /** 角色组 */
-    @TableField(exist = false)
-    private Long[] roleIds;
-
-    /** 岗位组 */
-    @TableField(exist = false)
-    private Long[] postIds;
-
-	/** 角色ID */
+public class SysUser implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 用户ID
+	 */
+	@Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
+	@TableId(value = "user_id", type = IdType.AUTO)
+	private Long userId;
+
+	/**
+	 * 部门ID
+	 */
+	@Excel(name = "部门编号", type = Type.IMPORT)
+	private Long deptId;
+
+	/**
+	 * 用户账号
+	 */
+	@NotBlank(message = "用户账号不能为空")
+	@Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
+	@Excel(name = "登录名称")
+	private String userName;
+
+	/**
+	 * 用户昵称
+	 */
+	@Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
+	@Excel(name = "用户名称")
+	private String nickName;
+
+	/**
+	 * 用户邮箱
+	 */
+	@Email(message = "邮箱格式不正确")
+	@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+	@Excel(name = "用户邮箱")
+	private String email;
+
+	/**
+	 * 手机号码
+	 */
+	@Excel(name = "手机号码")
+	private String phonenumber;
+
+	/**
+	 * 用户性别
+	 */
+	@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
+	private String sex;
+
+	/**
+	 * 用户头像
+	 */
+	private String avatar;
+
+	/**
+	 * 密码
+	 */
+	private String password;
+
+	@JsonIgnore
+	@JsonProperty
+	public String getPassword() {
+		return password;
+	}
+
+	/**
+	 * 盐加密
+	 */
+	private String salt;
+
+	/**
+	 * 帐号状态(0正常 1停用)
+	 */
+	@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
+	private String status;
+
+	/**
+	 * 删除标志(0代表存在 2代表删除)
+	 */
+	@TableLogic
+	private String delFlag;
+
+	/**
+	 * 最后登录IP
+	 */
+	@Excel(name = "最后登录IP", type = Type.EXPORT)
+	private String loginIp;
+
+	/**
+	 * 最后登录时间
+	 */
+	@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
+	private Date loginDate;
+
+	/**
+	 * 创建者
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
+
+	/**
+	 * 更新者
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+	/**
+	 * 请求参数
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
+
+	/**
+	 * 部门对象
+	 */
+	@Excels({
+		@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
+		@Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
+	})
+	@TableField(exist = false)
+	private SysDept dept;
+
+	/**
+	 * 角色对象
+	 */
+	@TableField(exist = false)
+	private List<SysRole> roles;
+
+	/**
+	 * 角色组
+	 */
+	@TableField(exist = false)
+	private Long[] roleIds;
+
+	/**
+	 * 岗位组
+	 */
+	@TableField(exist = false)
+	private Long[] postIds;
+
+	/**
+	 * 角色ID
+	 */
 	@TableField(exist = false)
 	private Long roleId;
 
-    public SysUser(Long userId)
-    {
-        this.userId = userId;
-    }
+	public SysUser(Long userId) {
+		this.userId = userId;
+	}
 
-    public boolean isAdmin()
-    {
-        return isAdmin(this.userId);
-    }
+	public boolean isAdmin() {
+		return isAdmin(this.userId);
+	}
 
-    public static boolean isAdmin(Long userId)
-    {
-        return userId != null && 1L == userId;
-    }
+	public static boolean isAdmin(Long userId) {
+		return userId != null && 1L == userId;
+	}
 
 }

+ 1 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java

@@ -46,7 +46,7 @@ public class ExcelUtils {
 			response.addHeader("Access-Control-Allow-Origin", "*");
 			response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
 			FileUtils.setAttachmentResponseHeader(response, URLEncoder.encode(filename, StandardCharsets.UTF_8.toString()));
-			response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+			response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
 			ServletOutputStream os = response.getOutputStream();
 			EasyExcel.write(os, clazz)
 				.autoCloseStream(false)

+ 11 - 10
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java

@@ -1,9 +1,10 @@
 package com.ruoyi.system.domain;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -25,20 +26,21 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_config")
+@ExcelIgnoreUnannotated
 public class SysConfig implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 参数主键
      */
-    @Excel(name = "参数主键", cellType = ColumnType.NUMERIC)
+    @ExcelProperty(value = "参数主键")
     @TableId(value = "config_id", type = IdType.AUTO)
     private Long configId;
 
     /**
      * 参数名称
      */
-    @Excel(name = "参数名称")
+    @ExcelProperty(value = "参数名称")
     @NotBlank(message = "参数名称不能为空")
     @Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
     private String configName;
@@ -46,7 +48,7 @@ public class SysConfig implements Serializable {
     /**
      * 参数键名
      */
-    @Excel(name = "参数键名")
+    @ExcelProperty(value = "参数键名")
     @NotBlank(message = "参数键名长度不能为空")
     @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
     private String configKey;
@@ -54,7 +56,7 @@ public class SysConfig implements Serializable {
     /**
      * 参数键值
      */
-    @Excel(name = "参数键值")
+    @ExcelProperty(value = "参数键值")
     @NotBlank(message = "参数键值不能为空")
     @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
     private String configValue;
@@ -62,7 +64,8 @@ public class SysConfig implements Serializable {
     /**
      * 系统内置(Y是 N否)
      */
-    @Excel(name = "系统内置", readConverterExp = "Y=是,N=否")
+    @ExcelProperty(value = "系统内置", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_yes_no")
     private String configType;
 
     /**
@@ -75,7 +78,6 @@ public class SysConfig implements Serializable {
      * 创建时间
      */
     @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -88,7 +90,6 @@ public class SysConfig implements Serializable {
      * 更新时间
      */
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     /**

+ 15 - 13
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java

@@ -1,12 +1,13 @@
 package com.ruoyi.system.domain;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -26,63 +27,64 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_logininfor")
+@ExcelIgnoreUnannotated
 public class SysLogininfor implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * ID
      */
-    @Excel(name = "序号", cellType = ColumnType.NUMERIC)
+    @ExcelProperty(value = "序号")
     @TableId(value = "info_id", type = IdType.AUTO)
     private Long infoId;
 
     /**
      * 用户账号
      */
-    @Excel(name = "用户账号")
+    @ExcelProperty(value = "用户账号")
     private String userName;
 
     /**
      * 登录状态 0成功 1失败
      */
-    @Excel(name = "登录状态", readConverterExp = "0=成功,1=失败")
+    @ExcelProperty(value = "登录状态", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
     private String status;
 
     /**
      * 登录IP地址
      */
-    @Excel(name = "登录地址")
+    @ExcelProperty(value = "登录地址")
     private String ipaddr;
 
     /**
      * 登录地点
      */
-    @Excel(name = "登录地点")
+    @ExcelProperty(value = "登录地点")
     private String loginLocation;
 
     /**
      * 浏览器类型
      */
-    @Excel(name = "浏览器")
+    @ExcelProperty(value = "浏览器")
     private String browser;
 
     /**
      * 操作系统
      */
-    @Excel(name = "操作系统")
+    @ExcelProperty(value = "操作系统")
     private String os;
 
     /**
      * 提示消息
      */
-    @Excel(name = "提示消息")
+    @ExcelProperty(value = "提示消息")
     private String msg;
 
     /**
      * 访问时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ExcelProperty(value = "访问时间")
     private Date loginTime;
 
     /**

+ 0 - 3
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java

@@ -28,9 +28,6 @@ import java.util.Map;
 @Accessors(chain = true)
 @TableName("sys_oper_log")
 @ExcelIgnoreUnannotated
-//@ColumnWidth(16)
-//@HeadRowHeight(14)
-//@HeadFontStyle(fontHeightInPoints = 11)
 public class SysOperLog implements Serializable {
     private static final long serialVersionUID = 1L;
 

+ 11 - 10
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java

@@ -1,9 +1,10 @@
 package com.ruoyi.system.domain;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -25,20 +26,21 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_post")
+@ExcelIgnoreUnannotated
 public class SysPost implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 岗位序号
      */
-    @Excel(name = "岗位序号", cellType = ColumnType.NUMERIC)
+    @ExcelProperty(value = "岗位序号")
     @TableId(value = "post_id", type = IdType.AUTO)
     private Long postId;
 
     /**
      * 岗位编码
      */
-    @Excel(name = "岗位编码")
+    @ExcelProperty(value = "岗位编码")
     @NotBlank(message = "岗位编码不能为空")
     @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
     private String postCode;
@@ -46,7 +48,7 @@ public class SysPost implements Serializable {
     /**
      * 岗位名称
      */
-    @Excel(name = "岗位名称")
+    @ExcelProperty(value = "岗位名称")
     @NotBlank(message = "岗位名称不能为空")
     @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
     private String postName;
@@ -54,14 +56,15 @@ public class SysPost implements Serializable {
     /**
      * 岗位排序
      */
-    @Excel(name = "岗位排序")
+    @ExcelProperty(value = "岗位排序")
     @NotBlank(message = "显示顺序不能为空")
     private String postSort;
 
     /**
      * 状态(0正常 1停用)
      */
-    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
+	@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
     private String status;
 
     /**
@@ -74,7 +77,6 @@ public class SysPost implements Serializable {
      * 创建时间
      */
     @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -87,7 +89,6 @@ public class SysPost implements Serializable {
      * 更新时间
      */
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     /**

+ 0 - 9
ruoyi-ui/src/api/monitor/logininfor.js

@@ -24,12 +24,3 @@ export function cleanLogininfor() {
     method: 'delete'
   })
 }
-
-// 导出登录日志
-export function exportLogininfor(query) {
-  return request({
-    url: '/monitor/logininfor/export',
-    method: 'get',
-    params: query
-  })
-}

+ 0 - 9
ruoyi-ui/src/api/monitor/operlog.js

@@ -24,12 +24,3 @@ export function cleanOperlog() {
     method: 'delete'
   })
 }
-
-// 导出操作日志
-export function exportOperlog(query) {
-  return request({
-    url: '/monitor/operlog/export',
-    method: 'get',
-    params: query
-  })
-}

+ 0 - 8
ruoyi-ui/src/api/system/config.js

@@ -59,11 +59,3 @@ export function refreshCache() {
   })
 }
 
-// 导出参数
-export function exportConfig(query) {
-  return request({
-    url: '/system/config/export',
-    method: 'get',
-    params: query
-  })
-}

+ 0 - 9
ruoyi-ui/src/api/system/dict/data.js

@@ -50,12 +50,3 @@ export function delData(dictCode) {
     method: 'delete'
   })
 }
-
-// 导出字典数据
-export function exportData(query) {
-  return request({
-    url: '/system/dict/data/export',
-    method: 'get',
-    params: query
-  })
-}

+ 0 - 9
ruoyi-ui/src/api/system/dict/type.js

@@ -51,15 +51,6 @@ export function refreshCache() {
   })
 }
 
-// 导出字典类型
-export function exportType(query) {
-  return request({
-    url: '/system/dict/type/export',
-    method: 'get',
-    params: query
-  })
-}
-
 // 获取字典选择框列表
 export function optionselect() {
   return request({

+ 0 - 10
ruoyi-ui/src/api/system/role.js

@@ -65,16 +65,6 @@ export function delRole(roleId) {
   })
 }
 
-// 导出角色
-export function exportRole(query) {
-  return request({
-    url: '/system/role/export',
-    method: 'get',
-    params: query
-  })
-}
-
-
 // 查询角色已授权用户列表
 export function allocatedUserList(query) {
   return request({

+ 1 - 2
ruoyi-ui/src/utils/download.js

@@ -4,7 +4,6 @@ import { getToken } from '@/utils/auth'
 const mimeMap = {
   xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
   zip: 'application/zip',
-  excel: 'application/vnd.ms-excel',
   oss: 'application/octet-stream'
 }
 
@@ -62,7 +61,7 @@ export function downLoadExcel(url, params) {
     responseType: 'blob',
     headers: { 'Authorization': 'Bearer ' + getToken() }
   }).then(res => {
-    resolveBlob(res, mimeMap.excel)
+    resolveBlob(res, mimeMap.xlsx)
   })
 }
 

+ 3 - 13
ruoyi-ui/src/views/monitor/logininfor/index.vue

@@ -119,7 +119,8 @@
 </template>
 
 <script>
-import { list, delLogininfor, cleanLogininfor, exportLogininfor } from "@/api/monitor/logininfor";
+import { list, delLogininfor, cleanLogininfor } from "@/api/monitor/logininfor";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Logininfor",
@@ -228,18 +229,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有操作日志数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportLogininfor(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/monitor/logininfor/export', this.queryParams);
     }
   }
 };

+ 1 - 1
ruoyi-ui/src/views/monitor/operlog/index.vue

@@ -188,7 +188,7 @@
 </template>
 
 <script>
-import { list, delOperlog, cleanOperlog, exportOperlog } from "@/api/monitor/operlog";
+import { list, delOperlog, cleanOperlog } from "@/api/monitor/operlog";
 import { downLoadExcel } from "@/utils/download";
 
 export default {

+ 3 - 13
ruoyi-ui/src/views/system/config/index.vue

@@ -181,7 +181,8 @@
 </template>
 
 <script>
-import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, refreshCache } from "@/api/system/config";
+import { listConfig, getConfig, delConfig, addConfig, updateConfig, refreshCache } from "@/api/system/config";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Config",
@@ -342,18 +343,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有参数数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportConfig(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/config/export', this.queryParams);
     },
     /** 刷新缓存按钮操作 */
     handleRefreshCache() {

+ 3 - 13
ruoyi-ui/src/views/system/dict/data.vue

@@ -183,8 +183,9 @@
 </template>
 
 <script>
-import { listData, getData, delData, addData, updateData, exportData } from "@/api/system/dict/data";
+import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data";
 import { listType, getType } from "@/api/system/dict/type";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Data",
@@ -388,18 +389,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportData(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/dict/data/export', this.queryParams);
     }
   }
 };

+ 3 - 13
ruoyi-ui/src/views/system/dict/index.vue

@@ -193,7 +193,8 @@
 </template>
 
 <script>
-import { listType, getType, delType, addType, updateType, exportType, refreshCache } from "@/api/system/dict/type";
+import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Dict",
@@ -346,18 +347,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有类型数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportType(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/dict/type/export', this.queryParams);
     },
     /** 刷新缓存按钮操作 */
     handleRefreshCache() {

+ 3 - 13
ruoyi-ui/src/views/system/post/index.vue

@@ -156,7 +156,8 @@
 </template>
 
 <script>
-import { listPost, getPost, delPost, addPost, updatePost, exportPost } from "@/api/system/post";
+import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Post",
@@ -313,18 +314,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有岗位数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportPost(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/post/export', this.queryParams);
     }
   }
 };

+ 3 - 13
ruoyi-ui/src/views/system/role/index.vue

@@ -259,9 +259,10 @@
 </template>
 
 <script>
-import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from "@/api/system/role";
+import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus } from "@/api/system/role";
 import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
 import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Role",
@@ -625,18 +626,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有角色数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportRole(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/role/export', this.queryParams);
     }
   }
 };

+ 1 - 1
ruoyi-ui/src/views/system/user/profile/userAvatar.vue

@@ -126,7 +126,7 @@ export default {
         formData.append("avatarfile", data);
         uploadAvatar(formData).then(response => {
           this.open = false;
-          this.options.img = process.env.VUE_APP_BASE_API + response.data.imgUrl;
+          this.options.img = response.data.imgUrl;
           store.commit('SET_AVATAR', this.options.img);
           this.msgSuccess("修改成功");
           this.visible = false;