Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fgqyxxlr
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yaru
fgqyxxlr
Commits
b6048e54
Commit
b6048e54
authored
Sep 18, 2018
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、去掉ry-ui.min
2、登录去掉密码显示, 3、导出调整为绝对路径 4、新增一个detail详细方法
parent
ac14519d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
127 additions
and
166 deletions
+127
-166
src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java
+2
-2
src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+19
-6
src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
+1
-1
src/main/java/com/ruoyi/framework/config/RuoYiConfig.java
+10
-0
src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java
+1
-1
src/main/java/com/ruoyi/project/common/CommonController.java
+2
-2
src/main/java/com/ruoyi/project/monitor/job/controller/JobController.java
+4
-11
src/main/java/com/ruoyi/project/monitor/job/controller/JobLogController.java
+4
-11
src/main/java/com/ruoyi/project/monitor/logininfor/controller/LogininforController.java
+4
-11
src/main/java/com/ruoyi/project/monitor/operlog/controller/OperlogController.java
+4
-11
src/main/java/com/ruoyi/project/system/config/controller/ConfigController.java
+4
-11
src/main/java/com/ruoyi/project/system/dict/controller/DictDataController.java
+4
-11
src/main/java/com/ruoyi/project/system/dict/controller/DictTypeController.java
+5
-11
src/main/java/com/ruoyi/project/system/post/controller/PostController.java
+4
-11
src/main/java/com/ruoyi/project/system/role/controller/RoleController.java
+4
-11
src/main/java/com/ruoyi/project/system/user/controller/ProfileController.java
+2
-1
src/main/java/com/ruoyi/project/system/user/controller/UserController.java
+4
-11
src/main/resources/application.yml
+27
-15
src/main/resources/i18n/messages.properties
+1
-1
src/main/resources/static/ruoyi/css/ry-ui.min.css
+0
-6
src/main/resources/static/ruoyi/js/ry-ui.js
+5
-0
src/main/resources/static/ruoyi/js/ry-ui.min.js
+0
-0
src/main/resources/templates/include.html
+2
-2
src/main/resources/templates/index.html
+5
-5
src/main/resources/templates/login.html
+2
-2
src/main/resources/templates/monitor/operlog/operlog.html
+3
-8
src/main/resources/templates/system/user/profile/avatar.html
+1
-1
src/main/resources/templates/system/user/profile/profile.html
+2
-2
src/main/resources/templates/tool/build/build.html
+1
-1
No files found.
src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java
View file @
b6048e54
...
@@ -9,8 +9,8 @@ public class UserPasswordRetryLimitCountException extends UserException
...
@@ -9,8 +9,8 @@ public class UserPasswordRetryLimitCountException extends UserException
{
{
private
static
final
long
serialVersionUID
=
1L
;
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
});
}
}
}
}
src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
View file @
b6048e54
package
com
.
ruoyi
.
common
.
utils
.
poi
;
package
com
.
ruoyi
.
common
.
utils
.
poi
;
import
java.io.File
NotFoundException
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
...
@@ -34,9 +34,9 @@ import org.apache.poi.ss.usermodel.WorkbookFactory;
...
@@ -34,9 +34,9 @@ import org.apache.poi.ss.usermodel.WorkbookFactory;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.util.ResourceUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excel
;
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.shiro.web.session.OnlineWebSessionManager
;
import
com.ruoyi.framework.web.domain.AjaxResult
;
import
com.ruoyi.framework.web.domain.AjaxResult
;
...
@@ -211,13 +211,14 @@ public class ExcelUtil<T>
...
@@ -211,13 +211,14 @@ public class ExcelUtil<T>
/**
/**
* 对list数据源将其里面的数据导入到excel表单
* 对list数据源将其里面的数据导入到excel表单
*
*
* @param list 导出数据集合
* @param sheetName 工作表的名称
* @param sheetName 工作表的名称
* @return 结果
*/
*/
public
AjaxResult
exportExcel
(
List
<
T
>
list
,
String
sheetName
)
public
AjaxResult
exportExcel
(
List
<
T
>
list
,
String
sheetName
)
{
{
OutputStream
out
=
null
;
OutputStream
out
=
null
;
HSSFWorkbook
workbook
=
null
;
HSSFWorkbook
workbook
=
null
;
try
try
{
{
// 得到所有定义字段
// 得到所有定义字段
...
@@ -370,7 +371,7 @@ public class ExcelUtil<T>
...
@@ -370,7 +371,7 @@ public class ExcelUtil<T>
}
}
}
}
String
filename
=
encodingFilename
(
sheetName
);
String
filename
=
encodingFilename
(
sheetName
);
out
=
new
FileOutputStream
(
get
file
()
+
filename
);
out
=
new
FileOutputStream
(
get
AbsoluteFile
(
filename
)
);
workbook
.
write
(
out
);
workbook
.
write
(
out
);
return
AjaxResult
.
success
(
filename
);
return
AjaxResult
.
success
(
filename
);
}
}
...
@@ -465,9 +466,20 @@ public class ExcelUtil<T>
...
@@ -465,9 +466,20 @@ public class ExcelUtil<T>
return
filename
;
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
;
}
}
}
}
\ No newline at end of file
src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
View file @
b6048e54
...
@@ -33,7 +33,7 @@ public class ResourcesConfig implements WebMvcConfigurer
...
@@ -33,7 +33,7 @@ public class ResourcesConfig implements WebMvcConfigurer
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
{
/** 头像上传路径 */
/** 头像上传路径 */
registry
.
addResourceHandler
(
"/profile/**"
).
addResourceLocations
(
"file:"
+
RuoYiConfig
.
getProfile
());
registry
.
addResourceHandler
(
"/profile/**"
).
addResourceLocations
(
"file:"
+
RuoYiConfig
.
getProfile
()
+
"/"
);
/** swagger配置 */
/** swagger配置 */
registry
.
addResourceHandler
(
"swagger-ui.html"
).
addResourceLocations
(
"classpath:/META-INF/resources/"
);
registry
.
addResourceHandler
(
"swagger-ui.html"
).
addResourceLocations
(
"classpath:/META-INF/resources/"
);
...
...
src/main/java/com/ruoyi/framework/config/RuoYiConfig.java
View file @
b6048e54
...
@@ -73,4 +73,14 @@ public class RuoYiConfig
...
@@ -73,4 +73,14 @@ public class RuoYiConfig
RuoYiConfig
.
addressEnabled
=
addressEnabled
;
RuoYiConfig
.
addressEnabled
=
addressEnabled
;
}
}
public
static
String
getAvatarPath
()
{
return
profile
+
"/avatar/"
;
}
public
static
String
getDownloadPath
()
{
return
profile
+
"/download/"
;
}
}
}
src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java
View file @
b6048e54
...
@@ -58,7 +58,7 @@ public class PasswordService
...
@@ -58,7 +58,7 @@ public class PasswordService
if
(!
matches
(
user
,
password
))
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
);
loginRecordCache
.
put
(
loginName
,
retryCount
);
throw
new
UserPasswordNotMatchException
();
throw
new
UserPasswordNotMatchException
();
}
}
...
...
src/main/java/com/ruoyi/project/common/CommonController.java
View file @
b6048e54
...
@@ -7,9 +7,9 @@ import javax.servlet.http.HttpServletResponse;
...
@@ -7,9 +7,9 @@ import javax.servlet.http.HttpServletResponse;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.util.ResourceUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
com.ruoyi.common.utils.file.FileUtils
;
import
com.ruoyi.common.utils.file.FileUtils
;
import
com.ruoyi.framework.config.RuoYiConfig
;
/**
/**
* 通用请求处理
* 通用请求处理
...
@@ -27,7 +27,7 @@ public class CommonController
...
@@ -27,7 +27,7 @@ public class CommonController
String
realFileName
=
System
.
currentTimeMillis
()
+
fileName
.
substring
(
fileName
.
indexOf
(
"_"
)
+
1
);
String
realFileName
=
System
.
currentTimeMillis
()
+
fileName
.
substring
(
fileName
.
indexOf
(
"_"
)
+
1
);
try
try
{
{
String
filePath
=
R
esourceUtils
.
getURL
(
"classpath:"
).
getPath
()
+
"static/file/"
+
fileName
;
String
filePath
=
R
uoYiConfig
.
getDownloadPath
()
+
fileName
;
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setContentType
(
"multipart/form-data"
);
response
.
setContentType
(
"multipart/form-data"
);
...
...
src/main/java/com/ruoyi/project/monitor/job/controller/JobController.java
View file @
b6048e54
...
@@ -54,18 +54,11 @@ public class JobController extends BaseController
...
@@ -54,18 +54,11 @@ public class JobController extends BaseController
@RequiresPermissions
(
"monitor:job:export"
)
@RequiresPermissions
(
"monitor:job:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
Job
>
list
=
jobService
.
selectJobList
(
job
);
return
util
.
exportExcel
(
list
,
"job"
);
ExcelUtil
<
Job
>
util
=
new
ExcelUtil
<
Job
>(
Job
.
class
);
return
util
.
exportExcel
(
list
,
"job"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
@Log
(
title
=
"定时任务"
,
businessType
=
BusinessType
.
DELETE
)
@Log
(
title
=
"定时任务"
,
businessType
=
BusinessType
.
DELETE
)
...
...
src/main/java/com/ruoyi/project/monitor/job/controller/JobLogController.java
View file @
b6048e54
...
@@ -52,18 +52,11 @@ public class JobLogController extends BaseController
...
@@ -52,18 +52,11 @@ public class JobLogController extends BaseController
@RequiresPermissions
(
"monitor:job:export"
)
@RequiresPermissions
(
"monitor:job:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
JobLog
>
list
=
jobLogService
.
selectJobLogList
(
jobLog
);
return
util
.
exportExcel
(
list
,
"jobLog"
);
ExcelUtil
<
JobLog
>
util
=
new
ExcelUtil
<
JobLog
>(
JobLog
.
class
);
return
util
.
exportExcel
(
list
,
"jobLog"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
@Log
(
title
=
"调度日志"
,
businessType
=
BusinessType
.
DELETE
)
@Log
(
title
=
"调度日志"
,
businessType
=
BusinessType
.
DELETE
)
...
...
src/main/java/com/ruoyi/project/monitor/logininfor/controller/LogininforController.java
View file @
b6048e54
...
@@ -52,18 +52,11 @@ public class LogininforController extends BaseController
...
@@ -52,18 +52,11 @@ public class LogininforController extends BaseController
@RequiresPermissions
(
"monitor:logininfor:export"
)
@RequiresPermissions
(
"monitor:logininfor:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
Logininfor
>
list
=
logininforService
.
selectLogininforList
(
logininfor
);
return
util
.
exportExcel
(
list
,
"logininfor"
);
ExcelUtil
<
Logininfor
>
util
=
new
ExcelUtil
<
Logininfor
>(
Logininfor
.
class
);
return
util
.
exportExcel
(
list
,
"logininfor"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
@RequiresPermissions
(
"monitor:logininfor:remove"
)
@RequiresPermissions
(
"monitor:logininfor:remove"
)
...
...
src/main/java/com/ruoyi/project/monitor/operlog/controller/OperlogController.java
View file @
b6048e54
...
@@ -54,18 +54,11 @@ public class OperlogController extends BaseController
...
@@ -54,18 +54,11 @@ public class OperlogController extends BaseController
@RequiresPermissions
(
"monitor:operlog:export"
)
@RequiresPermissions
(
"monitor:operlog:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
OperLog
>
list
=
operLogService
.
selectOperLogList
(
operLog
);
return
util
.
exportExcel
(
list
,
"operLog"
);
ExcelUtil
<
OperLog
>
util
=
new
ExcelUtil
<
OperLog
>(
OperLog
.
class
);
return
util
.
exportExcel
(
list
,
"operLog"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
@RequiresPermissions
(
"monitor:operlog:remove"
)
@RequiresPermissions
(
"monitor:operlog:remove"
)
...
...
src/main/java/com/ruoyi/project/system/config/controller/ConfigController.java
View file @
b6048e54
...
@@ -57,18 +57,11 @@ public class ConfigController extends BaseController
...
@@ -57,18 +57,11 @@ public class ConfigController extends BaseController
@RequiresPermissions
(
"system:config:export"
)
@RequiresPermissions
(
"system:config:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
Config
>
list
=
configService
.
selectConfigList
(
config
);
return
util
.
exportExcel
(
list
,
"config"
);
ExcelUtil
<
Config
>
util
=
new
ExcelUtil
<
Config
>(
Config
.
class
);
return
util
.
exportExcel
(
list
,
"config"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
/**
/**
...
...
src/main/java/com/ruoyi/project/system/dict/controller/DictDataController.java
View file @
b6048e54
...
@@ -54,18 +54,11 @@ public class DictDataController extends BaseController
...
@@ -54,18 +54,11 @@ public class DictDataController extends BaseController
@RequiresPermissions
(
"system:dict:export"
)
@RequiresPermissions
(
"system:dict:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
DictData
>
list
=
dictDataService
.
selectDictDataList
(
dictData
);
return
util
.
exportExcel
(
list
,
"dictData"
);
ExcelUtil
<
DictData
>
util
=
new
ExcelUtil
<
DictData
>(
DictData
.
class
);
return
util
.
exportExcel
(
list
,
"dictData"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
/**
/**
...
...
src/main/java/com/ruoyi/project/system/dict/controller/DictTypeController.java
View file @
b6048e54
...
@@ -54,18 +54,12 @@ public class DictTypeController extends BaseController
...
@@ -54,18 +54,12 @@ public class DictTypeController extends BaseController
@RequiresPermissions
(
"system:dict:export"
)
@RequiresPermissions
(
"system:dict:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@ResponseBody
public
AjaxResult
export
(
DictType
dictType
)
throws
Exception
public
AjaxResult
export
(
DictType
dictType
)
{
{
try
{
List
<
DictType
>
list
=
dictTypeService
.
selectDictTypeList
(
dictType
);
List
<
DictType
>
list
=
dictTypeService
.
selectDictTypeList
(
dictType
);
ExcelUtil
<
DictType
>
util
=
new
ExcelUtil
<
DictType
>(
DictType
.
class
);
ExcelUtil
<
DictType
>
util
=
new
ExcelUtil
<
DictType
>(
DictType
.
class
);
return
util
.
exportExcel
(
list
,
"dictType"
);
return
util
.
exportExcel
(
list
,
"dictType"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
/**
/**
...
...
src/main/java/com/ruoyi/project/system/post/controller/PostController.java
View file @
b6048e54
...
@@ -54,18 +54,11 @@ public class PostController extends BaseController
...
@@ -54,18 +54,11 @@ public class PostController extends BaseController
@RequiresPermissions
(
"system:post:export"
)
@RequiresPermissions
(
"system:post:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
Post
>
list
=
postService
.
selectPostList
(
post
);
return
util
.
exportExcel
(
list
,
"post"
);
ExcelUtil
<
Post
>
util
=
new
ExcelUtil
<
Post
>(
Post
.
class
);
return
util
.
exportExcel
(
list
,
"post"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
@RequiresPermissions
(
"system:post:remove"
)
@RequiresPermissions
(
"system:post:remove"
)
...
...
src/main/java/com/ruoyi/project/system/role/controller/RoleController.java
View file @
b6048e54
...
@@ -56,18 +56,11 @@ public class RoleController extends BaseController
...
@@ -56,18 +56,11 @@ public class RoleController extends BaseController
@RequiresPermissions
(
"system:role:export"
)
@RequiresPermissions
(
"system:role:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
Role
>
list
=
roleService
.
selectRoleList
(
role
);
return
util
.
exportExcel
(
list
,
"role"
);
ExcelUtil
<
Role
>
util
=
new
ExcelUtil
<
Role
>(
Role
.
class
);
return
util
.
exportExcel
(
list
,
"role"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
/**
/**
...
...
src/main/java/com/ruoyi/project/system/user/controller/ProfileController.java
View file @
b6048e54
...
@@ -16,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -16,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
import
com.ruoyi.common.utils.file.FileUploadUtils
;
import
com.ruoyi.common.utils.file.FileUploadUtils
;
import
com.ruoyi.framework.aspectj.lang.annotation.Log
;
import
com.ruoyi.framework.aspectj.lang.annotation.Log
;
import
com.ruoyi.framework.aspectj.lang.enums.BusinessType
;
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.controller.BaseController
;
import
com.ruoyi.framework.web.domain.AjaxResult
;
import
com.ruoyi.framework.web.domain.AjaxResult
;
import
com.ruoyi.framework.web.service.DictService
;
import
com.ruoyi.framework.web.service.DictService
;
...
@@ -137,7 +138,7 @@ public class ProfileController extends BaseController
...
@@ -137,7 +138,7 @@ public class ProfileController extends BaseController
{
{
if
(!
file
.
isEmpty
())
if
(!
file
.
isEmpty
())
{
{
String
avatar
=
FileUploadUtils
.
upload
(
file
);
String
avatar
=
FileUploadUtils
.
upload
(
RuoYiConfig
.
getAvatarPath
(),
file
);
user
.
setAvatar
(
avatar
);
user
.
setAvatar
(
avatar
);
if
(
userService
.
updateUserInfo
(
user
)
>
0
)
if
(
userService
.
updateUserInfo
(
user
)
>
0
)
{
{
...
...
src/main/java/com/ruoyi/project/system/user/controller/UserController.java
View file @
b6048e54
...
@@ -64,18 +64,11 @@ public class UserController extends BaseController
...
@@ -64,18 +64,11 @@ public class UserController extends BaseController
@RequiresPermissions
(
"system:user:export"
)
@RequiresPermissions
(
"system:user:export"
)
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@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
);
List
<
User
>
list
=
userService
.
selectUserList
(
user
);
return
util
.
exportExcel
(
list
,
"user"
);
ExcelUtil
<
User
>
util
=
new
ExcelUtil
<
User
>(
User
.
class
);
return
util
.
exportExcel
(
list
,
"user"
);
}
catch
(
Exception
e
)
{
return
error
(
"导出Excel失败,请联系网站管理员!"
);
}
}
}
/**
/**
...
...
src/main/resources/application.yml
View file @
b6048e54
# 项目相关配置
# 项目相关配置
ruoyi
:
ruoyi
:
#名称
#
名称
name
:
RuoYi
name
:
RuoYi
#版本
#
版本
version
:
2.4.0
version
:
2.4.0
#版权年份
#
版权年份
copyrightYear
:
2018
copyrightYear
:
2018
#
头像
上传路径
#
文件
上传路径
profile
:
D:/profile
/
profile
:
D:/profile
# 获取ip地址开关
# 获取ip地址开关
addressEnabled
:
false
addressEnabled
:
false
#开发环境配置
# 开发环境配置
server
:
server
:
#服务端口
#
服务端口
port
:
80
port
:
80
servlet
:
servlet
:
# 项目contextPath
# 项目contextPath
...
@@ -24,41 +25,48 @@ server:
...
@@ -24,41 +25,48 @@ server:
max-threads
:
800
max-threads
:
800
# Tomcat启动初始化的线程数,默认值25
# Tomcat启动初始化的线程数,默认值25
min-spare-threads
:
30
min-spare-threads
:
30
#日志配置
# 日志配置
logging
:
logging
:
level
:
level
:
com.ruoyi
:
debug
com.ruoyi
:
debug
org.springframework
:
WARN
org.springframework
:
WARN
org.spring.springboot.dao
:
debug
org.spring.springboot.dao
:
debug
#用户配置
# 用户配置
user
:
user
:
password
:
password
:
#密码错误{maxRetryCount}次锁定10分钟
#
密码错误{maxRetryCount}次锁定10分钟
maxRetryCount
:
5
maxRetryCount
:
5
#Spring配置
# Spring配置
spring
:
spring
:
# 模板引擎
thymeleaf
:
thymeleaf
:
mode
:
HTML
mode
:
HTML
encoding
:
utf-8
encoding
:
utf-8
# 禁用缓存
# 禁用缓存
cache
:
false
cache
:
false
# 资源信息
messages
:
messages
:
#国际化资源文件路径
#
国际化资源文件路径
basename
:
i18n/messages
basename
:
i18n/messages
jackson
:
jackson
:
time-zone
:
GMT+8
time-zone
:
GMT+8
date-format
:
yyyy-MM-dd HH:mm:ss
date-format
:
yyyy-MM-dd HH:mm:ss
profiles
:
profiles
:
active
:
druid
active
:
druid
#文件上传
#
文件上传
servlet
:
servlet
:
multipart
:
multipart
:
max-file-size
:
30MB
max-file-size
:
30MB
max-request-size
:
30MB
max-request-size
:
30MB
# 服务模块
devtools
:
devtools
:
restart
:
restart
:
#热部署开关
#
热部署开关
enabled
:
true
enabled
:
true
# MyBatis
# MyBatis
mybatis
:
mybatis
:
# 搜索指定包别名
# 搜索指定包别名
...
@@ -67,12 +75,14 @@ mybatis:
...
@@ -67,12 +75,14 @@ mybatis:
mapperLocations
:
classpath:mybatis/**/*Mapper.xml
mapperLocations
:
classpath:mybatis/**/*Mapper.xml
# 加载全局的配置文件
# 加载全局的配置文件
configLocation
:
classpath:mybatis/mybatis-config.xml
configLocation
:
classpath:mybatis/mybatis-config.xml
# PageHelper
# PageHelper分页插件
pagehelper
:
pagehelper
:
helperDialect
:
mysql
helperDialect
:
mysql
reasonable
:
true
reasonable
:
true
supportMethodsArguments
:
true
supportMethodsArguments
:
true
params
:
count=countSql
params
:
count=countSql
# Shiro
# Shiro
shiro
:
shiro
:
user
:
user
:
...
@@ -102,6 +112,7 @@ shiro:
...
@@ -102,6 +112,7 @@ shiro:
dbSyncPeriod
:
1
dbSyncPeriod
:
1
# 相隔多久检查一次session的有效性,默认就是10分钟
# 相隔多久检查一次session的有效性,默认就是10分钟
validationInterval
:
10
validationInterval
:
10
# 防止XSS攻击
# 防止XSS攻击
xss
:
xss
:
# 过滤开关
# 过滤开关
...
@@ -110,6 +121,7 @@ xss:
...
@@ -110,6 +121,7 @@ xss:
excludes
:
/system/notice/*
excludes
:
/system/notice/*
# 匹配链接
# 匹配链接
urlPatterns
:
/system/*,/monitor/*,/tool/*
urlPatterns
:
/system/*,/monitor/*,/tool/*
# 代码生成
# 代码生成
gen
:
gen
:
# 作者
# 作者
...
...
src/main/resources/i18n/messages.properties
View file @
b6048e54
...
@@ -3,7 +3,7 @@ not.null=* 必须填写
...
@@ -3,7 +3,7 @@ not.null=* 必须填写
user.jcaptcha.error
=
验证码错误
user.jcaptcha.error
=
验证码错误
user.not.exists
=
用户不存在/密码错误
user.not.exists
=
用户不存在/密码错误
user.password.not.match
=
用户不存在/密码错误
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.retry.limit.exceed
=
密码输入错误{0}次,帐户锁定10分钟
user.password.delete
=
对不起,您的账号已被删除
user.password.delete
=
对不起,您的账号已被删除
user.blocked
=
用户已封禁,原因:{0}
user.blocked
=
用户已封禁,原因:{0}
...
...
src/main/resources/static/ruoyi/css/ry-ui.min.css
deleted
100644 → 0
View file @
ac14519d
/**
* 通用css样式布局处理
* Copyright (c) 2018 ruoyi
*/
.box
{
position
:
relative
;
border-radius
:
3px
;
background
:
#fff
;
border-top
:
3px
solid
#d2d6de
;
margin-bottom
:
20px
;
width
:
100%
;
box-shadow
:
0
1px
1px
rgba
(
0
,
0
,
0
,
0.1
)}
.box-header
:before
,
.box-body
:before
,
.box-footer
:before
,
.box-header
:after
,
.box-body
:after
,
.box-footer
:after
{
content
:
" "
;
display
:
table
}
.box-header
:after
,
.box-body
:after
,
.box-footer
:after
{
clear
:
both
}
.btn-box-tool
{
padding
:
5px
;
font-size
:
12px
;
background
:
transparent
;
color
:
#97a0b3
}
.open
.btn-box-tool
,
.btn-box-tool
:hover
{
color
:
#606c84
}
.box-main
{
margin
:
0
;
border
:
0
;
padding-top
:
2px
;
border-radius
:
0
;
box-shadow
:
none
}
.box-main
>
.box-header
{
border-bottom
:
1px
solid
#eee
;
padding
:
12px
10px
2px
15px
}
.box-header
.box-title
{
display
:
inline-block
;
font-size
:
18px
;
margin
:
0
;
line-height
:
1
}
.box-main
>
.box-header
.box-title
{
font-size
:
16px
;
margin-bottom
:
13px
;
float
:
left
}
.box-main
>
.box-header
.box-title
.fa
{
font-size
:
14px
;
padding-right
:
3px
;
margin-top
:
-2px
}
.box-main
>
.box-header
.box-tools
{
position
:
relative
;
top
:
-5px
;
right
:
0
}
.box-main
>
.box-header
.box-tools
.btn
{
padding
:
3px
10px
5px
10px
;
font-size
:
14px
;
margin-bottom
:
2px
}
.box-main
>
.box-header
.box-tools
.btn-box-tool
{
padding
:
4px
2px
}
.box-main
form
>
.box-footer
,
.nav-main
form
>
.box-footer
{
background
:
#fafafa
}
.box-main
form
>
.box-footer
.row
,
.nav-main
form
>
.box-footer
.row
{
margin
:
5px
0
5px
-25px
}
.select2-container--default
.select2-selection--multiple
.select2-selection__choice
{
background-color
:
#1ab394
;
border-color
:
#1ab394
;
padding
:
1px
10px
;
color
:
#fff
}
.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove
{
margin-right
:
5px
;
color
:
rgba
(
255
,
255
,
255
,
0.7
)}
.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove
:hover
{
color
:
#fff
}
.select2-container
.select2-selection--single
.select2-selection__rendered
{
padding-right
:
10px
}
label
.error
{
position
:
absolute
;
right
:
18px
;
top
:
7px
;
color
:
#ef392b
;
font-size
:
12px
}
.Validform_error
,
input
.error
,
select
.error
{
background-color
:
#fbe2e2
;
border-color
:
#c66161
;
color
:
#c00
}
.Validform_wrong
,
.Validform_right
,
.Validform_warning
{
display
:
inline-block
;
height
:
20px
;
font-size
:
12px
;
vertical-align
:
middle
;
padding-left
:
25px
}
.i-checks
label
.error
,
.check-box
label
.error
,
.radio-box
label
.error
{
right
:
auto
;
width
:
150px
;
left
:
210px
;
top
:
1px
;
max-width
:
none
}
.check-box
,
.radio-box
{
display
:
inline-block
;
box-sizing
:
border-box
;
cursor
:
pointer
;
position
:
relative
;
padding-left
:
25px
;
padding-right
:
15px
;
padding-top
:
8px
}
.icheckbox
,
.icheckbox-blue
,
.iradio
,
.iradio-blue
,
.iradio-purple
{
position
:
absolute
;
top
:
8px
;
left
:
0
}
.icheckbox-blue
,
.iradio-blue
{
display
:
block
;
margin
:
0
;
padding
:
0
;
width
:
18px
;
height
:
18px
;
background
:
url(/img/blue.png)
no-repeat
;
border
:
0
;
cursor
:
pointer
}
.icheckbox-blue
,
.icheckbox-blue.static
:hover
{
background-position
:
0
0
}
.icheckbox-blue.hover
,
.icheckbox-blue
:hover
{
background-position
:
-20px
0
}
.icheckbox-blue.checked
{
background-position
:
-40px
0
}
.icheckbox-blue.disabled
{
background-position
:
-60px
0
;
cursor
:
default
}
.icheckbox-blue.checked.disabled
{
background-position
:
-80px
0
}
.iradio-blue
,
.iradio-blue.static
:hover
{
background-position
:
-100px
0
}
.iradio-blue.hover
,
.iradio-blue
:hover
{
background-position
:
-120px
0
}
.iradio-blue.checked
{
background-position
:
-140px
0
}
.iradio-blue.disabled
{
background-position
:
-160px
0
;
cursor
:
default
}
.iradio-blue.checked.disabled
{
background-position
:
-180px
0
}
.loaderbox
{
display
:
inline-block
;
min-width
:
125px
;
padding
:
10px
;
margin
:
0
auto
;
color
:
#000
!important
;
font-size
:
13px
;
font-weight
:
400
;
text-align
:
center
;
vertical-align
:
middle
;
border
:
1px
solid
#ddd
;
background-color
:
#eee
;
-webkit-border-radius
:
2px
;
-moz-border-radius
:
2px
;
-ms-border-radius
:
2px
;
-o-border-radius
:
2px
;
border-radius
:
2px
;
-webkit-box-shadow
:
0
1px
8px
rgba
(
0
,
0
,
0
,
0.1
);
-moz-box-shadow
:
0
1px
8px
rgba
(
0
,
0
,
0
,
0.1
);
box-shadow
:
0
1px
8px
rgba
(
0
,
0
,
0
,
0.1
)}
.loaderbox
.loading-activity
{
float
:
left
;
width
:
18px
;
height
:
18px
;
border
:
solid
2px
transparent
;
border-top-color
:
#000
;
border-left-color
:
#000
;
border-radius
:
10px
;
-webkit-animation
:
pace-spinner
400ms
linear
infinite
;
-moz-animation
:
pace-spinner
400ms
linear
infinite
;
-ms-animation
:
pace-spinner
400ms
linear
infinite
;
-o-animation
:
pace-spinner
400ms
linear
infinite
;
animation
:
pace-spinner
400ms
linear
infinite
}
@media
(
max-width
:
767px
){
.loading-activity
{
width
:
18px
;
height
:
18px
}}
@-ms-keyframes
pace-spinner
{
0
%
{
-ms-transform
:
rotate
(
0deg
);
transform
:
rotate
(
0deg
)}
100
%
{
-ms-transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
)}}
@keyframes
pace-spinner
{
0
%
{
transform
:
rotate
(
0deg
)}
100
%
{
transform
:
rotate
(
360deg
)}}
ul
{
margin
:
0
;
padding
:
0
;
-webkit-tap-highlight-color
:
rgba
(
0
,
0
,
0
,
0
)}
li
{
list-style
:
none
}
.time-input
{
display
:
block
;
width
:
100%
;
padding-left
:
10px
}
label
{
font-weight
:
normal
}
.container-div
{
padding
:
10px
35px
;
height
:
100%
}
.container-div
.row
{
height
:
100%
}
.select-info
,
.select-table
{
width
:
100%
;
background
:
#fff
;
border-radius
:
6px
;
margin-top
:
10px
;
padding-top
:
5px
;
padding-bottom
:
13px
;
box-shadow
:
1px
1px
3px
rgba
(
0
,
0
,
0
,
.2
)}
.select-info
{
position
:
relative
}
.select-info
.col-sm-6
.control-label
{
color
:
#333
}
@media
(
max-width
:
768px
){
.select-info
{
display
:
none
}}
.select-list
li
{
float
:
left
;
color
:
#333
;
margin
:
5px
15px
5px
0
}
.select-list
li
input
{
border
:
1px
solid
#ddd
;
border-radius
:
4px
;
background
:
transparent
;
outline
:
0
;
height
:
30px
;
width
:
280px
;
padding-left
:
5px
}
.select-list
li
.submit-btn
{
border
:
0
;
border-radius
:
4px
;
background
:
transparent
;
outline
:
0
;
width
:
40px
;
height
:
23px
}
.select-list
li
select
{
border
:
1px
solid
#ddd
;
border-radius
:
4px
;
background
:
transparent
;
outline
:
0
;
height
:
30px
;
width
:
280px
}
.select-list
.select-time
input
{
width
:
133px
}
.select-time
label
,
.select-time
span
,
.select-time
input
{
float
:
left
}
.select-time
label
{
margin-top
:
5px
}
.select-time
span
{
display
:
block
;
margin
:
5px
5px
}
.search-btn
{
background-color
:
#1ab394
;
border-color
:
#1ab394
;
color
:
#FFF
;
margin-bottom
:
5px
;
display
:
inline-block
;
padding
:
6px
12px
;
margin-bottom
:
0
;
font-size
:
14px
;
font-weight
:
400
;
line-height
:
1.42857143
;
text-align
:
center
;
white-space
:
nowrap
;
border-radius
:
3px
;
vertical-align
:
middle
;
cursor
:
pointer
}
.table-striped
{
min-height
:
75%
}
.table-striped
.bootstrap-table
{
border
:
0
!important
}
.table-striped
.table
,
.fixed-table-container
,
table
,
.table-striped
.table
,
.table
>
thead
>
tr
>
th
,
.table
>
tbody
>
tr
>
th
,
.table
>
tfoot
>
tr
>
th
,
.table
>
thead
>
tr
>
td
,
.table
>
tbody
>
tr
>
td
,
.table
>
tfoot
>
tr
>
td
{
border-bottom
:
1px
solid
#e7eaec
!important
;
background-color
:
transparent
!important
;
border
:
0
}
.table-striped
.table
>
thead
>
tr
>
th
,
.table-striped
.table
>
tbody
>
tr
>
th
{
border-bottom
:
1px
solid
#ccc
!important
;
border-top
:
0
!important
}
.table-striped
.table
>
thead
:first-child
>
tr
:first-child
>
th
{
color
:
#333
}
.table-bordered
td
,
.table-bordered
th
{
border
:
1px
solid
#ddd
!important
}
\ No newline at end of file
src/main/resources/static/ruoyi/js/ry-ui.js
View file @
b6048e54
...
@@ -398,6 +398,11 @@
...
@@ -398,6 +398,11 @@
post
:
function
(
url
,
data
)
{
post
:
function
(
url
,
data
)
{
$
.
operate
.
submit
(
url
,
"post"
,
"json"
,
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
)
{
remove
:
function
(
id
)
{
$
.
modal
.
confirm
(
"确定删除该条"
+
$
.
table
.
_option
.
modalName
+
"信息吗?"
,
function
()
{
$
.
modal
.
confirm
(
"确定删除该条"
+
$
.
table
.
_option
.
modalName
+
"信息吗?"
,
function
()
{
...
...
src/main/resources/static/ruoyi/js/ry-ui.min.js
deleted
100644 → 0
View file @
ac14519d
This diff is collapsed.
Click to expand it.
src/main/resources/templates/include.html
View file @
b6048e54
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<link
th:href=
"@{/css/animate.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/css/animate.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/css/style.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/css/style.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/ajax/libs/select/select2.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>
</head>
<div
th:fragment=
"footer"
>
<div
th:fragment=
"footer"
>
<script
th:src=
"@{/js/jquery.min.js}"
></script>
<script
th:src=
"@{/js/jquery.min.js}"
></script>
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
<script
th:src=
"@{/ajax/libs/layer/layer.min.js}"
></script>
<script
th:src=
"@{/ajax/libs/layer/layer.min.js}"
></script>
<script
th:src=
"@{/ajax/libs/layui/layui.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/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
src=
"http://tajs.qq.com/stats?sId=62048022"
></script>
<script
th:inline=
"javascript"
>
var
ctx
=
[[@{
/
}]];
</script>
<script
th:inline=
"javascript"
>
var
ctx
=
[[@{
/
}]];
</script>
</div>
</div>
src/main/resources/templates/index.html
View file @
b6048e54
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
<link
th:href=
"@{/css/font-awesome.min.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/css/font-awesome.min.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/css/animate.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/css/animate.css}"
rel=
"stylesheet"
/>
<link
th:href=
"@{/css/style.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"
>
<style
type=
"text/css"
>
.nav
>
li
:hover
.dropdown-menu
{
display
:
block
;}
.nav
>
li
:hover
.dropdown-menu
{
display
:
block
;}
</style>
</style>
...
@@ -32,10 +32,10 @@
...
@@ -32,10 +32,10 @@
<ul
class=
"nav"
id=
"side-menu"
>
<ul
class=
"nav"
id=
"side-menu"
>
<li
class=
"nav-header"
>
<li
class=
"nav-header"
>
<div
class=
"dropdown profile-element"
>
<span>
<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=
"#"
>
<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=
"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:
if=
"${not #strings.isEmpty(user.dept)}"
>
[[${user.dept.deptName}]]
</span>
<b
class=
"caret"
></b></span>
</span>
</a>
<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"
>
<ul
class=
"dropdown-menu animated fadeInRight m-t-xs"
>
<li><a
class=
"menuItem"
th:href=
"@{/system/user/profile}"
>
个人信息
</a></li>
<li><a
class=
"menuItem"
th:href=
"@{/system/user/profile}"
>
个人信息
</a></li>
<li
class=
"divider"
></li>
<li
class=
"divider"
></li>
...
@@ -136,7 +136,7 @@
...
@@ -136,7 +136,7 @@
<script
th:src=
"@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"
></script>
<script
th:src=
"@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"
></script>
<script
th:src=
"@{/ajax/libs/blockUI/jquery.blockUI.js}"
></script>
<script
th:src=
"@{/ajax/libs/blockUI/jquery.blockUI.js}"
></script>
<script
src=
"http://tajs.qq.com/stats?sId=62048022"
></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=
"@{/ruoyi/index.js}"
></script>
<script
th:src=
"@{/ajax/libs/fullscreen/jquery.fullscreen.js}"
></script>
<script
th:src=
"@{/ajax/libs/fullscreen/jquery.fullscreen.js}"
></script>
</body>
</body>
...
...
src/main/resources/templates/login.html
View file @
b6048e54
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
<link
href=
"../static/css/style.css"
th:href=
"@{css/style.css}"
rel=
"stylesheet"
/>
<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/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/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]>
<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;ie.html" />
<meta http-equiv="refresh" content="0;ie.html" />
<![endif]-->
<![endif]-->
...
@@ -83,7 +83,7 @@
...
@@ -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/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=
"../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=
"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>
<script
src=
"../static/ruoyi/login.js"
th:src=
"@{/ruoyi/login.js}"
></script>
</body>
</body>
</html>
</html>
src/main/resources/templates/monitor/operlog/operlog.html
View file @
b6048e54
...
@@ -59,10 +59,12 @@
...
@@ -59,10 +59,12 @@
$
(
function
()
{
$
(
function
()
{
var
options
=
{
var
options
=
{
url
:
prefix
+
"/list"
,
url
:
prefix
+
"/list"
,
detailUrl
:
prefix
+
"/detail/{id}"
,
removeUrl
:
prefix
+
"/remove"
,
removeUrl
:
prefix
+
"/remove"
,
exportUrl
:
prefix
+
"/export"
,
exportUrl
:
prefix
+
"/export"
,
sortName
:
"operTime"
,
sortName
:
"operTime"
,
sortOrder
:
"desc"
,
sortOrder
:
"desc"
,
modalName
:
"日志"
,
search
:
false
,
search
:
false
,
showExport
:
false
,
showExport
:
false
,
columns
:
[{
columns
:
[{
...
@@ -123,19 +125,13 @@
...
@@ -123,19 +125,13 @@
align
:
'center'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
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
(
''
);
return
actions
.
join
(
''
);
}
}
}]
}]
};
};
$
.
table
.
init
(
options
);
$
.
table
.
init
(
options
);
});
});
/*操作日志-详细*/
function
detail
(
id
)
{
var
url
=
prefix
+
'/detail/'
+
id
;
$
.
modal
.
open
(
"操作日志详细"
,
url
);
}
</script>
</script>
</body>
</body>
</html>
</html>
\ No newline at end of file
src/main/resources/templates/system/user/profile/avatar.html
View file @
b6048e54
...
@@ -30,7 +30,7 @@ $(window).load(function() {
...
@@ -30,7 +30,7 @@ $(window).load(function() {
var
options
=
{
var
options
=
{
thumbBox
:
'.thumbBox'
,
thumbBox
:
'.thumbBox'
,
spinner
:
'.spinner'
,
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
);
var
cropper
=
$
(
'.imageBox'
).
cropbox
(
options
);
$
(
'#avatar'
).
on
(
'change'
,
$
(
'#avatar'
).
on
(
'change'
,
...
...
src/main/resources/templates/system/user/profile/profile.html
View file @
b6048e54
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
<div
class=
"contact-box"
>
<div
class=
"contact-box"
>
<div
class=
"col-sm-4"
>
<div
class=
"col-sm-4"
>
<div
class=
"text-center"
>
<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
class=
"m-t-xs font-bold"
>
[[${user.loginIp}]]
</div>
</div>
</div>
</div>
</div>
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
<h3><strong>
[[${user.loginName}]]
</strong></h3>
<h3><strong>
[[${user.loginName}]]
</strong></h3>
<p><i
class=
"fa fa-user"
></i>
[[${user.userName}]] / [[${#strings.defaultString(roleGroup,'无角色')}]]
<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-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-transgender"
></i>
性别:[[${user.sex}]]
</p>
<p><i
class=
"fa fa-envelope-o"
></i>
[[${user.email}]]
</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>
<p><i
class=
"fa fa-calendar"
></i>
[[${#dates.format(user.createTime, 'yyyy-MM-dd HH:mm:ss')}]]
</p>
...
...
src/main/resources/templates/tool/build/build.html
View file @
b6048e54
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<meta
charset=
"utf-8"
>
<meta
charset=
"utf-8"
>
<head
th:include=
"include :: header"
></head>
<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"
/>
<link
th:href=
"@{/ajax/libs/datapicker/datepicker3.css}"
rel=
"stylesheet"
/>
<style>
<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
}
.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
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment