Browse Source

1、去掉ry-ui.min
2、登录去掉密码显示,
3、导出调整为绝对路径
4、新增一个detail详细方法

RuoYi 6 years ago
parent
commit
b6048e5429
29 changed files with 126 additions and 167 deletions
  1. 2 2
      src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java
  2. 18 6
      src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
  3. 1 1
      src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
  4. 10 0
      src/main/java/com/ruoyi/framework/config/RuoYiConfig.java
  5. 1 1
      src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java
  6. 2 2
      src/main/java/com/ruoyi/project/common/CommonController.java
  7. 4 11
      src/main/java/com/ruoyi/project/monitor/job/controller/JobController.java
  8. 4 11
      src/main/java/com/ruoyi/project/monitor/job/controller/JobLogController.java
  9. 4 11
      src/main/java/com/ruoyi/project/monitor/logininfor/controller/LogininforController.java
  10. 4 11
      src/main/java/com/ruoyi/project/monitor/operlog/controller/OperlogController.java
  11. 4 11
      src/main/java/com/ruoyi/project/system/config/controller/ConfigController.java
  12. 4 11
      src/main/java/com/ruoyi/project/system/dict/controller/DictDataController.java
  13. 5 11
      src/main/java/com/ruoyi/project/system/dict/controller/DictTypeController.java
  14. 4 11
      src/main/java/com/ruoyi/project/system/post/controller/PostController.java
  15. 4 11
      src/main/java/com/ruoyi/project/system/role/controller/RoleController.java
  16. 2 1
      src/main/java/com/ruoyi/project/system/user/controller/ProfileController.java
  17. 4 11
      src/main/java/com/ruoyi/project/system/user/controller/UserController.java
  18. 27 15
      src/main/resources/application.yml
  19. 1 1
      src/main/resources/i18n/messages.properties
  20. 0 4
      src/main/resources/static/ruoyi/css/ry-ui.min.css
  21. 5 0
      src/main/resources/static/ruoyi/js/ry-ui.js
  22. 0 4
      src/main/resources/static/ruoyi/js/ry-ui.min.js
  23. 2 2
      src/main/resources/templates/include.html
  24. 5 5
      src/main/resources/templates/index.html
  25. 2 2
      src/main/resources/templates/login.html
  26. 3 7
      src/main/resources/templates/monitor/operlog/operlog.html
  27. 1 1
      src/main/resources/templates/system/user/profile/avatar.html
  28. 2 2
      src/main/resources/templates/system/user/profile/profile.html
  29. 1 1
      src/main/resources/templates/tool/build/build.html

+ 2 - 2
src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java

@@ -9,8 +9,8 @@ public class UserPasswordRetryLimitCountException extends UserException
 {
     private static final long serialVersionUID = 1L;
 
-    public UserPasswordRetryLimitCountException(int retryLimitCount, String password)
+    public UserPasswordRetryLimitCountException(int retryLimitCount)
     {
-        super("user.password.retry.limit.count", new Object[] { retryLimitCount, password });
+        super("user.password.retry.limit.count", new Object[] { retryLimitCount });
     }
 }

+ 18 - 6
src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java

@@ -1,6 +1,6 @@
 package com.ruoyi.common.utils.poi;
 
-import java.io.FileNotFoundException;
+import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -34,9 +34,9 @@ import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.apache.poi.ss.util.CellRangeAddressList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.util.ResourceUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.config.RuoYiConfig;
 import com.ruoyi.framework.shiro.web.session.OnlineWebSessionManager;
 import com.ruoyi.framework.web.domain.AjaxResult;
 
@@ -211,13 +211,14 @@ public class ExcelUtil<T>
     /**
      * 对list数据源将其里面的数据导入到excel表单
      * 
+     * @param list 导出数据集合
      * @param sheetName 工作表的名称
+     * @return 结果
      */
     public AjaxResult exportExcel(List<T> list, String sheetName)
     {
         OutputStream out = null;
         HSSFWorkbook workbook = null;
-
         try
         {
             // 得到所有定义字段
@@ -370,7 +371,7 @@ public class ExcelUtil<T>
                 }
             }
             String filename = encodingFilename(sheetName);
-            out = new FileOutputStream(getfile() + filename);
+            out = new FileOutputStream(getAbsoluteFile(filename));
             workbook.write(out);
             return AjaxResult.success(filename);
         }
@@ -465,9 +466,20 @@ public class ExcelUtil<T>
         return filename;
     }
 
-    public String getfile() throws FileNotFoundException
+    /**
+     * 获取下载路径
+     * 
+     * @param filename 文件名称
+     */
+    public String getAbsoluteFile(String filename)
     {
-        return ResourceUtils.getURL("classpath:").getPath() + "static/file/";
+        String downloadPath = RuoYiConfig.getDownloadPath() + filename;
+        File desc = new File(downloadPath);
+        if (!desc.getParentFile().exists())
+        {
+            desc.getParentFile().mkdirs();
+        }
+        return downloadPath;
     }
 
 }

+ 1 - 1
src/main/java/com/ruoyi/framework/config/ResourcesConfig.java

@@ -33,7 +33,7 @@ public class ResourcesConfig implements WebMvcConfigurer
     public void addResourceHandlers(ResourceHandlerRegistry registry)
     {
         /** 头像上传路径 */
-        registry.addResourceHandler("/profile/**").addResourceLocations("file:" + RuoYiConfig.getProfile());
+        registry.addResourceHandler("/profile/**").addResourceLocations("file:" + RuoYiConfig.getProfile() + "/");
 
         /** swagger配置 */
         registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");

+ 10 - 0
src/main/java/com/ruoyi/framework/config/RuoYiConfig.java

@@ -73,4 +73,14 @@ public class RuoYiConfig
         RuoYiConfig.addressEnabled = addressEnabled;
     }
 
+    public static String getAvatarPath()
+    {
+        return profile + "/avatar/";
+    }
+
+    public static String getDownloadPath()
+    {
+        return profile + "/download/";
+    }
+
 }

+ 1 - 1
src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java

@@ -58,7 +58,7 @@ public class PasswordService
 
         if (!matches(user, password))
         {
-            AsyncManager.me().execute(AsyncFactory.recordLogininfor(loginName, Constants.LOGIN_FAIL, MessageUtils.message("user.password.retry.limit.count", retryCount, password)));
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(loginName, Constants.LOGIN_FAIL, MessageUtils.message("user.password.retry.limit.count", retryCount)));
             loginRecordCache.put(loginName, retryCount);
             throw new UserPasswordNotMatchException();
         }

+ 2 - 2
src/main/java/com/ruoyi/project/common/CommonController.java

@@ -7,9 +7,9 @@ import javax.servlet.http.HttpServletResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
-import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.framework.config.RuoYiConfig;
 
 /**
  * 通用请求处理
@@ -27,7 +27,7 @@ public class CommonController
         String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
         try
         {
-            String filePath = ResourceUtils.getURL("classpath:").getPath() + "static/file/" + fileName;
+            String filePath = RuoYiConfig.getDownloadPath() + fileName;
 
             response.setCharacterEncoding("utf-8");
             response.setContentType("multipart/form-data");

+ 4 - 11
src/main/java/com/ruoyi/project/monitor/job/controller/JobController.java

@@ -54,18 +54,11 @@ public class JobController extends BaseController
     @RequiresPermissions("monitor:job:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(Job job) throws Exception
+    public AjaxResult export(Job job)
     {
-        try
-        {
-            List<Job> list = jobService.selectJobList(job);
-            ExcelUtil<Job> util = new ExcelUtil<Job>(Job.class);
-            return util.exportExcel(list, "job");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<Job> list = jobService.selectJobList(job);
+        ExcelUtil<Job> util = new ExcelUtil<Job>(Job.class);
+        return util.exportExcel(list, "job");
     }
 
     @Log(title = "定时任务", businessType = BusinessType.DELETE)

+ 4 - 11
src/main/java/com/ruoyi/project/monitor/job/controller/JobLogController.java

@@ -52,18 +52,11 @@ public class JobLogController extends BaseController
     @RequiresPermissions("monitor:job:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(JobLog jobLog) throws Exception
+    public AjaxResult export(JobLog jobLog)
     {
-        try
-        {
-            List<JobLog> list = jobLogService.selectJobLogList(jobLog);
-            ExcelUtil<JobLog> util = new ExcelUtil<JobLog>(JobLog.class);
-            return util.exportExcel(list, "jobLog");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<JobLog> list = jobLogService.selectJobLogList(jobLog);
+        ExcelUtil<JobLog> util = new ExcelUtil<JobLog>(JobLog.class);
+        return util.exportExcel(list, "jobLog");
     }
 
     @Log(title = "调度日志", businessType = BusinessType.DELETE)

+ 4 - 11
src/main/java/com/ruoyi/project/monitor/logininfor/controller/LogininforController.java

@@ -52,18 +52,11 @@ public class LogininforController extends BaseController
     @RequiresPermissions("monitor:logininfor:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(Logininfor logininfor) throws Exception
+    public AjaxResult export(Logininfor logininfor)
     {
-        try
-        {
-            List<Logininfor> list = logininforService.selectLogininforList(logininfor);
-            ExcelUtil<Logininfor> util = new ExcelUtil<Logininfor>(Logininfor.class);
-            return util.exportExcel(list, "logininfor");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<Logininfor> list = logininforService.selectLogininforList(logininfor);
+        ExcelUtil<Logininfor> util = new ExcelUtil<Logininfor>(Logininfor.class);
+        return util.exportExcel(list, "logininfor");
     }
 
     @RequiresPermissions("monitor:logininfor:remove")

+ 4 - 11
src/main/java/com/ruoyi/project/monitor/operlog/controller/OperlogController.java

@@ -54,18 +54,11 @@ public class OperlogController extends BaseController
     @RequiresPermissions("monitor:operlog:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(OperLog operLog) throws Exception
+    public AjaxResult export(OperLog operLog)
     {
-        try
-        {
-            List<OperLog> list = operLogService.selectOperLogList(operLog);
-            ExcelUtil<OperLog> util = new ExcelUtil<OperLog>(OperLog.class);
-            return util.exportExcel(list, "operLog");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<OperLog> list = operLogService.selectOperLogList(operLog);
+        ExcelUtil<OperLog> util = new ExcelUtil<OperLog>(OperLog.class);
+        return util.exportExcel(list, "operLog");
     }
 
     @RequiresPermissions("monitor:operlog:remove")

+ 4 - 11
src/main/java/com/ruoyi/project/system/config/controller/ConfigController.java

@@ -57,18 +57,11 @@ public class ConfigController extends BaseController
     @RequiresPermissions("system:config:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(Config config) throws Exception
+    public AjaxResult export(Config config)
     {
-        try
-        {
-            List<Config> list = configService.selectConfigList(config);
-            ExcelUtil<Config> util = new ExcelUtil<Config>(Config.class);
-            return util.exportExcel(list, "config");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<Config> list = configService.selectConfigList(config);
+        ExcelUtil<Config> util = new ExcelUtil<Config>(Config.class);
+        return util.exportExcel(list, "config");
     }
 
     /**

+ 4 - 11
src/main/java/com/ruoyi/project/system/dict/controller/DictDataController.java

@@ -54,18 +54,11 @@ public class DictDataController extends BaseController
     @RequiresPermissions("system:dict:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(DictData dictData) throws Exception
+    public AjaxResult export(DictData dictData)
     {
-        try
-        {
-            List<DictData> list = dictDataService.selectDictDataList(dictData);
-            ExcelUtil<DictData> util = new ExcelUtil<DictData>(DictData.class);
-            return util.exportExcel(list, "dictData");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<DictData> list = dictDataService.selectDictDataList(dictData);
+        ExcelUtil<DictData> util = new ExcelUtil<DictData>(DictData.class);
+        return util.exportExcel(list, "dictData");
     }
 
     /**

+ 5 - 11
src/main/java/com/ruoyi/project/system/dict/controller/DictTypeController.java

@@ -54,18 +54,12 @@ public class DictTypeController extends BaseController
     @RequiresPermissions("system:dict:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(DictType dictType) throws Exception
+    public AjaxResult export(DictType dictType)
     {
-        try
-        {
-            List<DictType> list = dictTypeService.selectDictTypeList(dictType);
-            ExcelUtil<DictType> util = new ExcelUtil<DictType>(DictType.class);
-            return util.exportExcel(list, "dictType");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+
+        List<DictType> list = dictTypeService.selectDictTypeList(dictType);
+        ExcelUtil<DictType> util = new ExcelUtil<DictType>(DictType.class);
+        return util.exportExcel(list, "dictType");
     }
 
     /**

+ 4 - 11
src/main/java/com/ruoyi/project/system/post/controller/PostController.java

@@ -54,18 +54,11 @@ public class PostController extends BaseController
     @RequiresPermissions("system:post:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(Post post) throws Exception
+    public AjaxResult export(Post post)
     {
-        try
-        {
-            List<Post> list = postService.selectPostList(post);
-            ExcelUtil<Post> util = new ExcelUtil<Post>(Post.class);
-            return util.exportExcel(list, "post");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<Post> list = postService.selectPostList(post);
+        ExcelUtil<Post> util = new ExcelUtil<Post>(Post.class);
+        return util.exportExcel(list, "post");
     }
 
     @RequiresPermissions("system:post:remove")

+ 4 - 11
src/main/java/com/ruoyi/project/system/role/controller/RoleController.java

@@ -56,18 +56,11 @@ public class RoleController extends BaseController
     @RequiresPermissions("system:role:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(Role role) throws Exception
+    public AjaxResult export(Role role)
     {
-        try
-        {
-            List<Role> list = roleService.selectRoleList(role);
-            ExcelUtil<Role> util = new ExcelUtil<Role>(Role.class);
-            return util.exportExcel(list, "role");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<Role> list = roleService.selectRoleList(role);
+        ExcelUtil<Role> util = new ExcelUtil<Role>(Role.class);
+        return util.exportExcel(list, "role");
     }
 
     /**

+ 2 - 1
src/main/java/com/ruoyi/project/system/user/controller/ProfileController.java

@@ -16,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
 import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.config.RuoYiConfig;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.service.DictService;
@@ -137,7 +138,7 @@ public class ProfileController extends BaseController
         {
             if (!file.isEmpty())
             {
-                String avatar = FileUploadUtils.upload(file);
+                String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
                 user.setAvatar(avatar);
                 if (userService.updateUserInfo(user) > 0)
                 {

+ 4 - 11
src/main/java/com/ruoyi/project/system/user/controller/UserController.java

@@ -64,18 +64,11 @@ public class UserController extends BaseController
     @RequiresPermissions("system:user:export")
     @PostMapping("/export")
     @ResponseBody
-    public AjaxResult export(User user) throws Exception
+    public AjaxResult export(User user)
     {
-        try
-        {
-            List<User> list = userService.selectUserList(user);
-            ExcelUtil<User> util = new ExcelUtil<User>(User.class);
-            return util.exportExcel(list, "user");
-        }
-        catch (Exception e)
-        {
-            return error("导出Excel失败,请联系网站管理员!");
-        }
+        List<User> list = userService.selectUserList(user);
+        ExcelUtil<User> util = new ExcelUtil<User>(User.class);
+        return util.exportExcel(list, "user");
     }
 
     /**

+ 27 - 15
src/main/resources/application.yml

@@ -1,18 +1,19 @@
 # 项目相关配置
 ruoyi:
-  #名称
+  # 名称
   name: RuoYi
-  #版本
+  # 版本
   version: 2.4.0
-  #版权年份
+  # 版权年份
   copyrightYear: 2018
-  #头像上传路径
-  profile: D:/profile/
+  # 文件上传路径
+  profile: D:/profile
   # 获取ip地址开关
   addressEnabled: false
-#开发环境配置
+
+# 开发环境配置
 server:
-  #服务端口
+  # 服务端口
   port: 80
   servlet:
     # 项目contextPath
@@ -24,41 +25,48 @@ server:
     max-threads: 800
     # Tomcat启动初始化的线程数,默认值25
     min-spare-threads: 30
-#日志配置
+ 
+# 日志配置
 logging:
   level:
     com.ruoyi: debug
     org.springframework: WARN
     org.spring.springboot.dao: debug
-#用户配置
+
+# 用户配置
 user:
   password:
-    #密码错误{maxRetryCount}次锁定10分钟
+    # 密码错误{maxRetryCount}次锁定10分钟
     maxRetryCount: 5
-#Spring配置
+
+# Spring配置
 spring:
+  # 模板引擎
   thymeleaf:
     mode: HTML
     encoding: utf-8
     # 禁用缓存
     cache: false
+  # 资源信息
   messages:
-    #国际化资源文件路径
+    # 国际化资源文件路径
     basename: i18n/messages
   jackson:
     time-zone: GMT+8
     date-format: yyyy-MM-dd HH:mm:ss
   profiles: 
     active: druid
-  #文件上传
+  # 文件上传
   servlet:
      multipart:
        max-file-size:  30MB
        max-request-size:  30MB
+  # 服务模块
   devtools:
     restart:
-      #热部署开关
+      # 热部署开关
       enabled: true
+
 # MyBatis
 mybatis:
     # 搜索指定包别名
@@ -67,12 +75,14 @@ mybatis:
     mapperLocations: classpath:mybatis/**/*Mapper.xml
     # 加载全局的配置文件
     configLocation: classpath:mybatis/mybatis-config.xml
-# PageHelper
+
+# PageHelper分页插件
 pagehelper: 
   helperDialect: mysql
   reasonable: true
   supportMethodsArguments: true
   params: count=countSql 
+
 # Shiro
 shiro:
   user:
@@ -102,6 +112,7 @@ shiro:
     dbSyncPeriod: 1
     # 相隔多久检查一次session的有效性,默认就是10分钟
     validationInterval: 10
+
 # 防止XSS攻击
 xss: 
   # 过滤开关
@@ -110,6 +121,7 @@ xss:
   excludes: /system/notice/*
   # 匹配链接
   urlPatterns: /system/*,/monitor/*,/tool/*
+
 # 代码生成
 gen: 
   # 作者

+ 1 - 1
src/main/resources/i18n/messages.properties

@@ -3,7 +3,7 @@ not.null=* 必须填写
 user.jcaptcha.error=验证码错误
 user.not.exists=用户不存在/密码错误
 user.password.not.match=用户不存在/密码错误
-user.password.retry.limit.count=密码输入错误{0}次,{1}
+user.password.retry.limit.count=密码输入错误{0}次
 user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟
 user.password.delete=对不起,您的账号已被删除
 user.blocked=用户已封禁,原因:{0}

File diff suppressed because it is too large
+ 0 - 4
src/main/resources/static/ruoyi/css/ry-ui.min.css


+ 5 - 0
src/main/resources/static/ruoyi/js/ry-ui.js

@@ -398,6 +398,11 @@
             post: function(url, data) {
             	$.operate.submit(url, "post", "json", data);
             },
+            // 详细信息
+            detail: function(id) {
+            	var url = $.common.isEmpty(id) ? $.table._option.detailUrl : $.table._option.detailUrl.replace("{id}", id);
+                $.modal.open($.table._option.modalName + "详细", url);
+            },
             // 删除信息
             remove: function(id) {
             	$.modal.confirm("确定删除该条" + $.table._option.modalName + "信息吗?", function() {

File diff suppressed because it is too large
+ 0 - 4
src/main/resources/static/ruoyi/js/ry-ui.min.js


+ 2 - 2
src/main/resources/templates/include.html

@@ -13,7 +13,7 @@
 	<link th:href="@{/css/animate.css}" rel="stylesheet"/>
 	<link th:href="@{/css/style.css}" rel="stylesheet"/>
 	<link th:href="@{/ajax/libs/select/select2.css}" rel="stylesheet"/>
-	<link th:href="@{/ruoyi/css/ry-ui.min.css}" rel="stylesheet"/>
+	<link th:href="@{/ruoyi/css/ry-ui.css}" rel="stylesheet"/>
 </head>
 <div th:fragment="footer">
 	<script th:src="@{/js/jquery.min.js}"></script>
@@ -39,7 +39,7 @@
 	<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
 	<script th:src="@{/ajax/libs/layui/layui.js}"></script>
 	<script th:src="@{/ruoyi/js/common.js?v=2.4.0}"></script>
-	<script th:src="@{/ruoyi/js/ry-ui.min.js?v=2.4.0}"></script>
+	<script th:src="@{/ruoyi/js/ry-ui.js?v=2.4.0}"></script>
 	<script src="http://tajs.qq.com/stats?sId=62048022"></script>
 	<script th:inline="javascript"> var ctx = [[@{/}]]; </script>
 </div>

+ 5 - 5
src/main/resources/templates/index.html

@@ -15,7 +15,7 @@
     <link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
     <link th:href="@{/css/animate.css}" rel="stylesheet"/>
     <link th:href="@{/css/style.css}" rel="stylesheet"/>
-    <link th:href="@{/ruoyi/css/ry-ui.min.css?v=2.4.0}" rel="stylesheet"/>
+    <link th:href="@{/ruoyi/css/ry-ui.css?v=2.4.0}" rel="stylesheet"/>
     <style type="text/css">
         .nav > li:hover .dropdown-menu {display: block;}
     </style>
@@ -32,10 +32,10 @@
             <ul class="nav" id="side-menu">
                 <li class="nav-header">
                     <div class="dropdown profile-element"> <span>
-                         <img th:src="(${user.avatar} == '') ? '/img/profile.jpg' : '/profile/' + ${user.avatar}" alt="image" class="img-circle" height="60" width="60"/></span>
+                         <img th:src="(${user.avatar} == '') ? '/img/profile.jpg' : '/profile/avatar/' + ${user.avatar}" alt="image" class="img-circle" height="60" width="60"/></span>
                          <a data-toggle="dropdown" class="dropdown-toggle" href="#">
-                          <span class="clear"><span class="block m-t-xs"><strong class="font-bold">[[${user.userName}]]</strong></span>
-                         <span class="text-muted text-xs block"><span th:if="${not #strings.isEmpty(user.dept)}">[[${user.dept.deptName}]]</span> <b class="caret"></b></span> </span> </a>
+                          <span class="clear"><span class="block m-t-xs"><strong class="font-bold" th:text="${user.userName}">用户</strong></span>
+                         <span class="text-muted text-xs block"><span th:text="${user.dept?.deptName}">部门</span> <b class="caret"></b></span> </span> </a>
                          <ul class="dropdown-menu animated fadeInRight m-t-xs">
                              <li><a class="menuItem" th:href="@{/system/user/profile}">个人信息</a></li>
                              <li class="divider"></li>
@@ -136,7 +136,7 @@
 <script th:src="@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"></script>
 <script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
 <script src="http://tajs.qq.com/stats?sId=62048022"></script>
-<script th:src="@{/ruoyi/js/ry-ui.min.js?v=2.4.0}"></script>
+<script th:src="@{/ruoyi/js/ry-ui.js?v=2.4.0}"></script>
 <script th:src="@{/ruoyi/index.js}"></script>
 <script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
 </body>

+ 2 - 2
src/main/resources/templates/login.html

@@ -12,7 +12,7 @@
     <link href="../static/css/style.css" th:href="@{css/style.css}" rel="stylesheet"/>
     <link href="../static/css/login.min.css" th:href="@{css/login.min.css}" rel="stylesheet"/>
     <link href="../static/ajax/libs/iCheck/custom.css" th:href="@{/ajax/libs/iCheck/custom.css}" rel="stylesheet"/>
-    <link href="../static/ruoyi/css/ry-ui.min.css" th:href="@{/ruoyi/css/ry-ui.min.css?v=2.4.0}" rel="stylesheet"/>
+    <link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=2.4.0}" rel="stylesheet"/>
     <!--[if lt IE 9]>
     <meta http-equiv="refresh" content="0;ie.html" />
     <![endif]-->
@@ -83,7 +83,7 @@
 <script src="../static/ajax/libs/iCheck/icheck.min.js" th:src="@{/ajax/libs/iCheck/icheck.min.js}"></script>
 <script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
 <script src="http://tajs.qq.com/stats?sId=62048022"></script>
-<script src="../static/ruoyi/js/ry-ui.min.js" th:src="@{/ruoyi/js/ry-ui.min.js?v=2.4.0}"></script>
+<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=2.4.0}"></script>
 <script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
 </body>
 </html>

+ 3 - 7
src/main/resources/templates/monitor/operlog/operlog.html

@@ -59,10 +59,12 @@
 		$(function() {
 		    var options = {
 		        url: prefix + "/list",
+		        detailUrl: prefix + "/detail/{id}",
 		        removeUrl: prefix + "/remove",
 		        exportUrl: prefix + "/export",
 		        sortName: "operTime",
 		        sortOrder: "desc",
+		        modalName: "日志",
 		        search: false,
 		        showExport: false,
 		        columns: [{
@@ -123,19 +125,13 @@
 		            align: 'center',
 		            formatter: function(value, row, index) {
 		                var actions = [];
-		                actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="#" onclick="detail(\'' + row.operId + '\')"><i class="fa fa-search"></i>详细</a>');
+		                actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="#" onclick="$.operate.detail(\'' + row.operId + '\')"><i class="fa fa-search"></i>详细</a>');
 		                return actions.join('');
 		            }
 		        }]
 		    };
 		    $.table.init(options);
 		});
-		
-		/*操作日志-详细*/
-		function detail(id) {
-		    var url = prefix + '/detail/' + id;
-		    $.modal.open("操作日志详细", url);
-		}
 	</script>
 </body>
 </html>

+ 1 - 1
src/main/resources/templates/system/user/profile/avatar.html

@@ -30,7 +30,7 @@ $(window).load(function() {
     var options = {
         thumbBox: '.thumbBox',
         spinner: '.spinner',
-        imgSrc: $.common.isEmpty(avatar) ? '/img/profile.jpg' : '/profile/' + avatar
+        imgSrc: $.common.isEmpty(avatar) ? '/img/profile.jpg' : '/profile/avatar/' + avatar
     }
     var cropper = $('.imageBox').cropbox(options);
     $('#avatar').on('change',

+ 2 - 2
src/main/resources/templates/system/user/profile/profile.html

@@ -35,7 +35,7 @@
                     <div class="contact-box">
 	                        <div class="col-sm-4">
 	                            <div class="text-center">
-	                                <img alt="image" class="img-circle m-t-xs img-responsive" th:src="(${user.avatar} == '') ? '/img/profile.jpg' : '/profile/' + ${user.avatar}">
+	                                <img alt="image" class="img-circle m-t-xs img-responsive" th:src="(${user.avatar} == '') ? '/img/profile.jpg' : '/profile/avatar/' + ${user.avatar}">
 	                                <div class="m-t-xs font-bold">[[${user.loginIp}]]</div>
 	                            </div>
 	                        </div>
@@ -43,7 +43,7 @@
 	                            <h3><strong>[[${user.loginName}]]</strong></h3>
 	                            <p><i class="fa fa-user"></i> [[${user.userName}]] / [[${#strings.defaultString(roleGroup,'无角色')}]]
 	                            <p><i class="fa fa-phone"></i> [[${user.phonenumber}]]</p>
-	                            <p><i class="fa fa-group"></i> [[${user.dept.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>
+	                            <p><i class="fa fa-group"></i> [[${user.dept?.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>
 	                            <p><i class="fa fa-transgender"></i> 性别:[[${user.sex}]]</p>
 	                            <p><i class="fa fa-envelope-o"></i> [[${user.email}]]</p>
 	                            <p><i class="fa fa-calendar"></i> [[${#dates.format(user.createTime, 'yyyy-MM-dd HH:mm:ss')}]]</p>

+ 1 - 1
src/main/resources/templates/tool/build/build.html

@@ -2,7 +2,7 @@
 <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
 <meta charset="utf-8">
 <head th:include="include :: header"></head>
-<link th:href="@{/ruoyi/css/ry-ui.min.css}" rel="stylesheet"/>
+<link th:href="@{/ruoyi/css/ry-ui.css}" rel="stylesheet"/>
 <link th:href="@{/ajax/libs/datapicker/datepicker3.css}" rel="stylesheet"/>
 <style>
     .droppable-active{background-color:#ffe!important}.tools a{cursor:pointer;font-size:80%}.form-body .col-md-6,.form-body .col-md-12{min-height:400px}.draggable{cursor:move}

Some files were not shown because too many files changed in this diff