国际化系统功能:作业监控、缓存监控、服务器监控、菜单管理、模块管理、参数配置、字典管理、国际化管理、在线用户

This commit is contained in:
thinkgem
2019-11-20 22:36:43 +08:00
parent 4f751c6620
commit 5a99b57eda
25 changed files with 1072 additions and 182 deletions

View File

@@ -45,21 +45,6 @@
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!-- <dependency>
<groupId>cn.guoyukun.jdbc</groupId>
<artifactId>db2jcc</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>cn.guoyukun.jdbc</groupId>
<artifactId>db2jcc_license_cu</artifactId>
<version>1.4.2</version>
</dependency> -->
<!-- <dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency> -->
<!-- JDBC device end -->
<!-- Common -->

View File

@@ -247,10 +247,10 @@ public class CompanyController extends BaseController {
@ResponseBody
public String fixTreeData() {
if (!UserUtils.getUser().isAdmin()){
return renderResult(Global.FALSE, "操作失败,只有管理员才能进行修复!");
return renderResult(Global.FALSE, text("操作失败,只有管理员才能进行修复!"));
}
companyService.fixTreeData();
return renderResult(Global.TRUE, "数据修复成功");
return renderResult(Global.TRUE, text("数据修复成功"));
}
}

View File

@@ -293,10 +293,10 @@ public class OfficeController extends BaseController {
@ResponseBody
public String fixTreeData() {
if (!UserUtils.getUser().isAdmin()){
return renderResult(Global.FALSE, "操作失败,只有管理员才能进行修复!");
return renderResult(Global.FALSE, text("操作失败,只有管理员才能进行修复!"));
}
officeService.fixTreeData();
return renderResult(Global.TRUE, "数据修复成功");
return renderResult(Global.TRUE, text("数据修复成功"));
}
}

View File

@@ -159,9 +159,9 @@ public class OnlineController extends BaseController{
}
CacheUtils.put("onlineTickOutMap", onlineTickOutMap);
sessionDAO.delete(session);
return renderResult(Global.TRUE, "踢出已成功!");
return renderResult(Global.TRUE, text("踢出已成功!"));
}
return renderResult(Global.FALSE, "踢出失败,没有找到该在线用户!");
return renderResult(Global.FALSE, text("踢出失败,没有找到该在线用户!"));
}
}

View File

@@ -306,7 +306,7 @@ public class AccountController extends BaseController{
}
// 验证用户编码是否存在。
if (UserUtils.getByLoginCode(user.getLoginCode()) != null){
return renderResult(Global.FALSE, text("登录账号已存在"));
return renderResult(Global.FALSE, text("登录账号已存在"));
}
// 生成验证码,并缓存。
String code = StringUtils.getRandomNum(6);

View File

@@ -1,5 +1,5 @@
# =========== 登录登出相关 ===========
# =========== 登录登出相关 ===========
sys.login.notLongIn=No login or login timeout.Please login again, thank you!
sys.login.success=Login successful!
@@ -8,7 +8,7 @@ sys.login.failure=Account or password error, please try again.
sys.login.error=Sorry, system error. Please try again later.
sys.logout.success=Logout successful!
# =========== 账号登录相关 ===========
# =========== 账号登录相关 ===========
sys.login.accountIsBlank=Login account cannot be empty.
sys.login.validCodeError=Login verification code error.
@@ -20,14 +20,14 @@ sys.login.tickOutMessage=The account has been removed by the administrator. Plea
sys.login.multiAddrMessage=The account has been logged in elsewhere. Please login again.
sys.login.failedNumLock=Login failed, try too many times, the account has been locked, please {0} in minutes after retry.
# =========== 用户管理相关 ===========
# =========== 用户管理相关 ===========
sys.user.loginCodeExists=Login account already exists.
sys.user.userCodeNotExists=UserCode does not exist.
sys.user.userNameNotBlank=UserName does not empty.
sys.user.infoSaveSuccess=User info save success.
# =========== 用户密码安全策略 ===========
# =========== 用户密码安全策略 ===========
sys.user.oldPasswordError=Old password error, please retype.
sys.user.confirmPasswrodError=The new password is different from the confirm password. please retype.
@@ -40,7 +40,7 @@ sys.user.passwordError=Password error, please retype.
sys.user.pwdQuestionModifySuccess=The security problem modified success.
sys.user.pwdQuestionAnswerError=The questions and answers are incorrect.
# =========== 错误页面相关 ===========
# =========== 错误页面相关 ===========
sys.error.400.title=Request parameter error
sys.error.400.message=Request parameter error, server cannot parse.
@@ -58,7 +58,7 @@ sys.error.500.message=The page you visited error!
sys.error.500.message.p1=Sorry, there is a problem on the page you visited, please contact the administrator in time!
sys.error.returnButton=Previous page
# =========== 文件上传相关 ===========
# =========== 文件上传相关 ===========
sys.file.uploadFileIsEmpty=No files to upload!
sys.file.uploadValidNotBlank=File md5 and file name cannot be empty!

View File

@@ -1,5 +1,5 @@
# =========== 登录登出相关 ===========
# =========== 登录登出相关 ===========
sys.login.notLongIn=未登录或登录超时。请重新登录,谢谢!
sys.login.success=登录成功!
@@ -8,7 +8,7 @@ sys.login.failure=账号或密码错误,请重试。
sys.login.error=对不起,系统遇见了点问题,请稍候再试!
sys.logout.success=退出成功!
# =========== 账号登录相关 ===========
# =========== 账号登录相关 ===========
sys.login.accountIsBlank=登录账号不能为空。
sys.login.validCodeError=登录验证码错误,请重试。
@@ -20,14 +20,14 @@ sys.login.tickOutMessage=账号已被管理员移出在线,请重新登录。
sys.login.multiAddrMessage=账号已在其它地方登录,请重新登录。
sys.login.failedNumLock=登录失败,尝试次数过多,账号已锁定,请 {0} 分钟后重试.
# =========== 用户管理相关 ===========
# =========== 用户管理相关 ===========
sys.user.loginCodeExists=登录账号已存在
sys.user.userCodeNotExists=用户编码不存在
sys.user.userNameNotBlank=用户昵称不能为空
sys.user.infoSaveSuccess=用户信息保存成功
# =========== 用户密码安全策略 ===========
# =========== 用户密码安全策略 ===========
sys.user.oldPasswordError=旧密码错误,请重新输入
sys.user.confirmPasswrodError=新密码与确认新密码不同,请重新输入
@@ -40,7 +40,7 @@ sys.user.passwordError=登录密码错误,请重新输入
sys.user.pwdQuestionModifySuccess=密保问题修改成功
sys.user.pwdQuestionAnswerError=密保问题与答案不正确
# =========== 错误页面相关 ===========
# =========== 错误页面相关 ===========
sys.error.400.title=请求参数错误
sys.error.400.message=请求参数错误,服务器无法解析。
@@ -58,7 +58,7 @@ sys.error.500.message=您访问的页面出错啦!
sys.error.500.message.p1=对不起,你访问的页面出现了一点问题,请及时联系管理员解决!
sys.error.returnButton=返回上一页
# =========== 文件上传相关 ===========
# =========== 文件上传相关 ===========
sys.file.uploadFileIsEmpty=服务器上没有这个文件!
sys.file.uploadValidNotBlank=文件校验码和文件名不能为空!

View File

@@ -1,5 +1,5 @@
# =========== common ===========
# =========== common ===========
保\ 存=Save
关\ 闭=Close
@@ -28,7 +28,7 @@
取消选择=Cancel select
当前已选择\ {0}\ 项=Select {0} items
# =========== imageclip ===========
# =========== imageclip ===========
图片裁剪=Image clip
选择图片=Select image
@@ -43,7 +43,7 @@
水平反转=Horizontal inversion
左右反转=Left and right reverse
# =========== treeselect ===========
# =========== treeselect ===========
选项选择=Option select
显示搜索=Show search
@@ -56,7 +56,7 @@
不能选择父节点=Cannot select parent node
请重新选择=Please reselect
# =========== fileupload ===========
# =========== fileupload ===========
文件=File
文档=Document
@@ -67,17 +67,17 @@
或将照片拖到这里,最多可选\ {0}\ 张=Drag the photo here, at most \ {0} \ sheet
或将文件拖到这里,最多可选\ {0}\ 个=Drag the file here, at most \ {0}
# =========== iconselect ===========
# =========== iconselect ===========
图标选择=Icon select
提示:双击选择图标。=Tip: double-click the selection icon.
# =========== ueditor ===========
# =========== ueditor ===========
目录标题=Directory title
暂无大纲标题=There is no outline title.
# =========== validcode ===========
# =========== validcode ===========
验证码=Captcha
请填写验证码=Please fill in the captcha.

View File

@@ -0,0 +1,128 @@
#=========== 作业监控 ===========
名称及组名已经存在=The name and group name already exist
目标字符串=Target string
调用目标字符串中,没有这个类:=Call target string without this class:
调用目标字符串中,没有这个方法:=Call target string without this method:
调用目标字符串不能为空!=Call target string cannot be empty!
调用目标字符串中找不到该Bean名或Class名=Bean name or Class name cannot be found in the invocation target string:
最近\ {0}\ 次运行时间=Last \ {0}\ run time
Cron表达式正确。=Cron expression is correct.
Cron表达式错误=Cron expression error:
保存任务成功=Save task successful
启动定时器失败=Start timer failed
启动定时器成功=Start timer successfully
停止定时器失败=Stop timer failed
停止定时器成功=Stop timer successful
暂停运行成功=Suspended run successful
恢复运行成功=Resume run successful
运行一次成功=Run one successful
删除任务成功=Delete task successful
添加任务失败=Add task failed
暂停运行失败=Suspension failure
恢复运行失败=Recovery operation failed
运行一次失败=Run one failure
删除任务失败=Delete task failed
新增作业调度=New job scheduling
编辑作业调度=Edit job scheduling
任务名称=Task name
任务分组=Task group
任务描述=Task description
调用目标串=Call target string
Cron执行表达式=Cron expressions
计划错误策略=Planning error strategy
是否并发执行=Concurrent execution
请填写Cron表达式=Please fill in the Cron expression!
作业调度=Job scheduling
定时器=The timer
运行中=In the operation of the
停止中=Stop in the
运行定时器=Running timer
启动定时器=Start timer
停止定时器=Stop timer
刷新页面=Refresh the page
作业调度日志=Job scheduling log
调度日志=Operation log
调用目标字符串=Call target string
周期表达式=Periodic expression
上次运行时间=Last run time
下次运行时间=Next run time
恢复作业=Restore operation
确认要恢复该作业吗?=Are you sure you want to resume the job?
暂停作业=Suspend operations
确认要暂停该作业吗?=Are you sure you want to suspend the job?
立即运行一次=Run once now
确认要立即运行一次该作业吗?=Confirm that you want to run the job once?
编辑作业=Edit operations
删除作业=Delete operation
确认要删除该作业吗?=Are you sure you want to delete the job?
监控调度日志=Monitor scheduling log
页面已刷新。=The page has been refreshed.
日志类型=Log type
日志事件=Log event
日志信息=Log information
发生时间=Time of occurrence
异常信息=Exception information
调度日志查询=Scheduling log query
任务组名=The task group name
是否异常=Exception
查看日志=View log
错过计划等待本次计划完成后立即执行一次=Miss the plan to wait for the completion of the plan immediately executed once
本次执行时间根据上次结束时间重新计算(时间间隔方式)=This execution time is recalculated according to the last end time (time interval)
默认=Default
系统=System
#=========== 作业监控 Cron ===========
Cron表达式生成器=Cron generator
刷新=The refresh
每秒=second
允许的通配符=Allowed wildcards
周期从=Cycle from
=seconds
=From
秒开始,每=seconds start, per
秒执行一次=execute once per second
指定=the specified
分钟=minutes
分钟开始,每=minutes start each
分钟执行一次=execute once per minute
小时=hours
小时开始,每=Hours start every hour
小时执行一次=Hourly execution
上午=AM
下午=PM
=day
不指定=do not specify
日开始,每=every day begins
天执行一次=daily execution
每月=a month
号最近的那个工作日=on the nearest working day
本月最后一天=the last day of the month
=month
月执行一次=monthly execution
=weeks
周期\ 从星期=cycle from week
星期=week
的,\ 第=the first
本月最后一个星期=the last week of the month
周日=Sunday
周一=Monday
周二=Tuesday
周三=Wednesday
周四=Thursday
周五=Friday
周六=Saturday
非必填=Not required
每年=Every year,
周期\ 从=Cycle from
表达式=expression
=years
表达式字段=Field
Cron\ 表达式=Cron
表达式反解析到界面=Reverse mapping

View File

@@ -0,0 +1,129 @@
#=========== 作业监控 ===========
名称及组名已经存在=名称およびグループ名はすでに存在する
目标字符串=ターゲット文字列
调用目标字符串中,没有这个类:=呼び出し先文字列には,このクラスはない:
调用目标字符串中,没有这个方法:=呼び出し先の文字列には,この方法はない:
调用目标字符串不能为空!=呼び出し先文字列は空ではない!
调用目标字符串中找不到该Bean名或Class名=呼び出し先の文字列には,そのBean名やClass名が見つからない:
最近\ {0}\ 次运行时间=最近の\{0}\回の実行時間
Cron表达式正确。=Cron式は正しい。
Cron表达式错误=Cron式のエラー:
保存任务成功=保存任務に成功
启动定时器失败=タイマー起動に失敗
启动定时器成功=タイマー起動成功
停止定时器失败=タイマー停止失敗
停止定时器成功=タイマー停止成功
暂停运行成功=一時停止に成功
恢复运行成功=運行再開に成功した
运行一次成功=1回成功
删除任务成功=削除タスク成功
添加任务失败=タスク追加失敗
暂停运行失败=一時停止に失敗
恢复运行失败=再開に失敗
运行一次失败=一度の失敗
删除任务失败=削除タスク失敗
新增作业调度=ジョブ・スケジューラの追加
编辑作业调度=編集ジョブスケジュール
任务名称=タスク名
任务分组=タスクグループ
任务描述=タスク記述
调用目标串=オブジェクト列を呼び出す
Cron执行表达式=Cronは式を実行する
计划错误策略=計画を誤る策略。
是否并发执行=並行実行の有無
请填写Cron表达式=Cron式を記入してください!
作业调度=ジョブスケジューリング
定时器=タイマー
运行中=運行中
停止中=停止中
运行定时器=実行タイマー
启动定时器=起動タイマー
停止定时器=タイマーを止める
刷新页面=ページを刷新する
作业调度日志=ジョブスケジュール履歴
调度日志=スケジュールログ
调用目标字符串=呼び出し先文字列
周期表达式=周期表現
上次运行时间=前回の運行時間
下次运行时间=次回の運行時間
恢复作业=復旧作業
确认要恢复该作业吗?=この作業を復旧することを確認しますか?
暂停作业=作業を一時停止する
确认要暂停该作业吗?=確認暂停同作業をするの?
立即运行一次=直ちに一回運行
确认要立即运行一次该作业吗?=直ちに確認運行に一度この宿题?
编辑作业=編集作業
删除作业=削除作
确认要删除该作业吗?=確認を削除しなければならないこの宿题?
监控调度日志=監視スケジュールログ
页面已刷新。=ページが更新された。
日志类型=ログ型
日志事件=ログ事件
日志信息=ログ情報
发生时间=発生時刻
异常信息=異常情報
调度日志查询=ログ検索
任务组名=タスクグループ名
是否异常=異常かどうか
查看日志=ログを見る
错过计划等待本次计划完成后立即执行一次=計画を見逃せば、今回の計画が完了すればすぐに実行される
本次执行时间根据上次结束时间重新计算(时间间隔方式)=今回の実行時間を前回の終了時間から再計算する(時間間隔方式)。
默认=黙認
系统=システム
#=========== 作业监控 Cron ===========
Cron表达式生成器=Cron表現生成器
刷新=更新
每秒=秒速
允许的通配符=許されたワイルドカード
周期从=周期は
=
=から
秒开始,每=秒が始まるごとに
秒执行一次=秒に1回
指定=指定
分钟=
分钟开始,每=分から、毎
分钟执行一次=分に1回
小时=時間
小时开始,每=時間が始まるごとに
小时执行一次=1時間に1回
上午=午前
下午=午後
=
不指定=指定しない
日开始,每=日が始まる
天执行一次=日に一度
每月=毎月
号最近的那个工作日=日の一番近い勤務日です
本月最后一天=今月最後の日
=
月执行一次=月に1回
=
周期\ 从星期=周期は曜日
星期=曜日
的,\ 第=的,第
本月最后一个星期=今月最後の一週間
周日=日曜日
周一=月曜日
周二=火曜日
周三=水曜
周四=木曜日
周五=金曜日
周六=土曜日に
非必填=非必填
每年=毎年
周期\ 从=周期は
表达式=数式
=
表达式字段=エクスプレションフィールド
Cron\ 表达式=Cron
表达式反解析到界面=エクスプレションと反解析にインタフェース

View File

@@ -1,5 +1,5 @@
# =========== 消息提醒 ===========
# =========== 消息提醒 ===========
消息=Message
你有\ {0}\ 条消息=You have {0} messages
@@ -8,7 +8,7 @@
系统消息=System message
您有\ {0}\ 条新消息,由于消息太多,这里为您合并,请点击查看按钮看详情。=You have {0} new message, because there are too many messages, for you merge, click View see details.
# =========== 消息提醒列表 ===========
# =========== 消息提醒列表 ===========
未读消息=Unread message
已读消息=Read message
@@ -21,7 +21,7 @@
全部标记已读成功!=All marks read successfully!
是否要将全部未读信息标记为已读?=Do you want to mark all unread information as read?
# =========== 消息推送管理 ===========
# =========== 消息推送管理 ===========
消息推送=Message Push
未完成消息=Uncompleted message
@@ -56,7 +56,7 @@
删除消息推送成功!=Delete message push successfully!
# =========== 消息模板管理 ===========
# =========== 消息模板管理 ===========
消息模板管理=Message template
新增消息模板=New message template
@@ -70,7 +70,7 @@
模板内容=Template content
语法格式=Content syntax format
# =========== 消息相关字典 ===========
# =========== 消息相关字典 ===========
短信=SMS
邮件=Email

View File

@@ -8,3 +8,78 @@
系统消息=システムメッセージ
您有\ {0}\ 条新消息,由于消息太多,这里为您合并,请点击查看按钮看详情。=見読メッセージ {0} 件, 省略で表示しているため, クリックで一覧を見る.
# =========== 消息提醒列表 ===========
未读消息=Unread message
已读消息=Read message
发送者=The sender
发送时间=Sending time
延迟推送=Delay delivery
全部标记为已读=All marked as read
全部标记已读成功!=All marks read successfully!
是否要将全部未读信息标记为已读?=Do you want to mark all unread information as read?
# =========== 消息推送管理 ===========
消息推送=Message Push
未完成消息=Uncompleted message
已完成消息=Completed message
消息类型=Message type
消息标题=Message title
消息内容=Message content
业务主键=Business key
业务类型=Business type
接受者信息=Receiver information
接受者账号=Receiver account
接受者姓名=Receiver name
接受者编码=Receiver code
发送者信息=Sender message
发送者编码=Sender code
发送者姓名=Sender name
发送时间=Sending time
合并推送=Merge push
计划推送时间=Plan push time
推送状态信息=Push status information
推送次数=Push status
推送返回结果码=Push return result code
推送返回消息编号=Push return message code
推送返回的内容信息=Push return content
推送状态=Push status
推送时间=Push time
读取状态信息=Read status information
读取状态=Read status
读取时间=Read time
删除消息推送成功!=Delete message push successfully!
# =========== 消息模板管理 ===========
消息模板管理=Message template
新增消息模板=New message template
编辑消息模板=Edit message template
删除消息模板=Delete message template
模板类型=Template type
模板键值=Template key
模板名称=Template name
归属模块=Module
模板内容=Template content
语法格式=Content syntax format
# =========== 消息相关字典 ===========
短信=SMS
邮件=Email
微信=WeChat
待推送=Wait push
成功=Success
失败=Failure
未送达=Undelivered
已读=Read
未读=Unread

View File

@@ -0,0 +1,63 @@
# =========== 缓存监控 ===========
缓存列表=Cache list
键名列表=Key list
缓存内容=Cache content
清理全部缓存=Clear all caches
清理全部缓存,包括属性文件的配置=Clear all caches, including configuration of properties files
缓存名称=Cache name
缓存键名=Cache key
清理缓存=Clear cache
确认要清理该缓存吗?=Are you sure you want to clear up the cache?
缓存列表刷新完成=The cache list refresh is complete
# =========== 服务器监控 ===========
属性=Property
=Value
核心数=Core number
最大功率=Maximum power
实时频率=Current frequency
使用率=Used rate
内存=Memory
总内存=The total memory
剩余内存=Remaining memory
已用内存=Used memory
堆/非堆=Heap/non-heap
执行垃圾回收任务=Perform garbage collection task
=Heap
非堆=Non-heap
初始大小=Initial size
最大内存=Maximum memory
已用内存=Used memory
可用内存=Available memory
服务器信息=Server information
服务器名称=Server name
操作系统=Operating system
版本=Version
服务器IP=Server IP
系统架构=System architecture
Java虚拟机信息=JVM information
Java名称=Java name
Java版本=Java version
供应商=Vendor
启动时间=Start time
运行时长=Running time
安装路径=Install path
启动参数=Start parameter
平台参数=Platform parameter
当前工作路径=Current working path
日志存放路径=Log storage path
上传文件路径=Upload file path
磁盘状态=Disk status
盘符路径=Disk path
文件系统=File system
盘符类型=Disk type
总大小=Total size
可用大小=Available size
已用大小=Used size
已用百分比=Percent used
执行垃圾回收任务=Perform garbage collection tasks
发起执行垃圾回收任务成功=Initiated garbage collection task successfully

View File

@@ -0,0 +1,63 @@
# =========== 缓存监控 ===========
缓存列表=キャッシュリスト
键名列表=キーリスト
缓存内容=キャッシュ内容
清理全部缓存=キャッシュを全部クリアする
清理全部缓存,包括属性文件的配置=プロパティファイルの配置を含めてキャッシュ全体をクリアする
缓存名称=キャッシュ名
缓存键名=キャッシュキー人
清理缓存=キャッシュを消去する
确认要清理该缓存吗?=キャッシュをクリアすることを確認しますか?
缓存列表刷新完成=キャッシュリスト更新完了
# =========== 服务器监控 ===========
属性=属性
=
核心数=核心数
最大功率=最大出力
实时频率=リアルタイム周波数
使用率=使用率
内存=メモリー
总内存=総メモリ
剩余内存=残りメモリ
已用内存=すでに用メモリー
堆/非堆=ヒープ/非ヒープ
执行垃圾回收任务=ごみ回収任務を遂行する
=积み
非堆=非炉
初始大小=初期の大きさ
最大内存=最大メモリ
已用内存=使用済みメモリ
可用内存=利用可能メモリ
服务器信息=サーバー情報
服务器名称=サーバー名称
操作系统=os
版本=バージョン
服务器IP=サーバIP
系统架构=システムアーキテクチャ
Java虚拟机信息=java仮想マシン情報
Java名称=java名称
Java版本=Java版
供应商=サプライヤー
启动时间=起動時間
运行时长=運行时长
安装路径=実装経路
启动参数=稼動パラメータ
平台参数=プラットフォームのパラメータ
当前工作路径=当面の仕事の経路
日志存放路径=日誌熟成経路
上传文件路径=文書を掲載し経路
磁盘状态=ディスク状態
盘符路径=盤符経路
文件系统=ファイルシステム
盘符类型=盤符タイプ
总大小=総の大きさ
可用大小=利用可能な大きさ
已用大小=すでに用の大きさ
已用百分比=すでに用%
执行垃圾回收任务=ごみ回収任務を遂行する
发起执行垃圾回收任务成功=成功にゴミ回収の任務を遂行する

View File

@@ -1,4 +1,5 @@
# =========== 通用字典 ===========
# =========== 通用字典 ===========
=Yes
=No
@@ -12,7 +13,7 @@
驳回=Rejected
草稿=Draft
# =========== 通用字段 ===========
# =========== 通用字段 ===========
状态=Status
备注信息=Remarks
@@ -22,7 +23,7 @@
更新时间=Update date
排序号=Sort
# =========== 功能标题 ===========
# =========== 功能标题 ===========
系统管理=System mgt
@@ -64,7 +65,7 @@
日期选择=Date select
日期时间=Date time
# =========== 登录页 ===========
# =========== 登录页 ===========
登录=Login
@@ -87,7 +88,7 @@
注册账号=Register
忘记密码=Forget Password
# =========== 主框架页 ===========
# =========== 主框架页 ===========
仪表盘=Dashboard
全屏=Full screen
@@ -104,12 +105,12 @@
在线=Online
注销=Logout
# =========== 个人中心 ===========
# =========== 个人中心 ===========
修改密保=Security question
个人信息=User info
修改头像=Change avatar
修改头像=Change avatar
个性签名=Signature
上次登录=Last Login
@@ -128,7 +129,7 @@
新密保问题=New secret questions
新密保问题答案=New secret answers
# =========== 用户管理 ===========
# =========== 用户管理 ===========
组织机构=Office
新增用户=New user
@@ -151,6 +152,7 @@
重置密码=Reset password
保存用户失败,登录账号''{0}''已存在=Save user failed, login account ''{0}'' already exists
保存用户失败,员工工号''{0}''已存在=Save user failed, Work No ''{0}'' already exists
保存用户''{0}''成功=Save the user ''{0}'' success
停用用户失败,不允许停用当前用户=Disable user failed. Not disable current user
停用用户''{0}''成功=Disable user ''{0}'' success
@@ -173,7 +175,6 @@
归属机构=Office
归属公司=Company
登录账号=Account
登录账号已存在=Login account already exists
用户昵称=Nick name
电子邮箱=Email
手机号码=Mobile
@@ -182,7 +183,8 @@
权重越大排名越靠前,请填写数字。=Weight big, ranking the front, fill Numbers.
员工=Employee
员工=Work No
员工=Work No
员工工号已存在=Work No already exists
员工姓名=Name
所在岗位=Position
英文名=English name
@@ -200,7 +202,7 @@
提示仅允许导入“xls”或“xlsx”格式文件=Tip: only 'XLS' or 'XLSX' files are allowed to be imported!
文件不正确请选择后缀为“xls”或“xlsx”的文件。=Incorrect file. Please select a file with suffix 'xls' or 'xlsx'.
# =========== 机构管理 ===========
# =========== 机构管理 ===========
新增机构=New office
编辑机构=Edit office
@@ -228,7 +230,7 @@
联系地址=Address
邮政编码=Zip code
# =========== 公司管理 ===========
# =========== 公司管理 ===========
新增公司=New company
编辑公司=Edit company
@@ -254,7 +256,7 @@
归属区域=Area
包含机构=Office
# =========== 岗位管理 ===========
# =========== 岗位管理 ===========
新增岗位=New position
编辑岗位=Edit position
@@ -277,7 +279,7 @@
岗位编码=Position code
岗位分类=Position type
# =========== 角色管理 ===========
# =========== 角色管理 ===========
用户类型=User type
系统角色=System role
@@ -334,7 +336,7 @@
角色授权给用户成功=Role authorization to user success
取消用户角色授权成功=Success in unauthorized user roles
# =========== 二级管理员 ===========
# =========== 二级管理员 ===========
二级管理员管理数据权限=Secondary administrator manage data permissions
管理数据权限=Manage data permissions
@@ -346,7 +348,7 @@
保存二级管理员''{0}''成功=Save Secondary administrator ''{0}'' success
取消二级管理员''{0}''身份成功=Cancel Secondary administrator ''{0}'' status successful
# =========== 系统管理员 ===========
# =========== 系统管理员 ===========
租户管理员=Tenant admin
新增租户管理员=New tenant administrator
@@ -373,6 +375,170 @@
租户切换失败,没有这个租户!=Tenant switch failed, no tenant!
租户切换失败,只有超级管理员才可以操作!=Tenant switch failed, only super administrator can operate!
# =========== 菜单管理 ===========
# =========== 菜单管理 ===========
没有找到 {0} 用户编码
新增菜单=New menu
编辑菜单=Edit menu
上级菜单=Parent menu
菜单类型=Menu type
菜单名称=Menu name
归属模块=Module
链接(Href)=Href
目标(Target)=Target
排序(升序)=Sort(ASC)
权限标识=Permission
菜单图标=Icon
字体颜色=Color
页签标题=Tab title
可见=Visible
菜单权重=Weight
其它信息=Other information
菜单=Menu
权限=Permission
显示=Show
隐藏=Hide
核心模块=Core
主导航菜单=Main menu
全部菜单=All menu
保存排序=Save sort
类型=Type
链接=Href
目标=Target
排序=Sort
保存菜单''{0}''成功=Save menu ''{0}'' successfully
删除菜单''{0}''成功=Delete menu ''{0}'' successfully
保存菜单排序成功=Save menu sort successful
操作失败,只有管理员才能进行修复!=Operation failed, only administrator can fix it!
数据修复成功=Data repair successful
# =========== 模块管理 ===========
新增模块=New module
编辑模块=Edit module
模块名称=Module name
模块编码=Module code
主类全名=Main class name
模块描述=Module description
当前版本=Current version
版本=version
未知=Unknown
未安装=Uninstalled
停用模块=Disable module
确认要停用该模块吗?=Are you sure you want to disable the module?
启用模块=Enable module
确认要启用该模块吗?=Are you sure you want to enable this module?
删除模块=Delete module
确认要删除该模块吗?=Are you sure you want to delete this module?
保存模块成功=Save module successfully
核心模块,不允许停用=Core module, no allowed disable
停用模块成功=Disable module successfully
启用模块成功=Enable module successfully
核心模块,不允许删除=Core module, not allowed delete
删除模块成功=Delete module successfully
# =========== 参数设置 ===========
新增参数=New config
编辑参数=Edit config
参数名称=Config name
参数键名=Config key
参数键名已存在=Config key already exists
参数键值=Config value
参数描述=Config description
清理全部缓存,包括属性文件的配置=Clear all caches, including configuration of properties files
系统参数=System
删除参数=Delete config
确认要删除该参数吗?=Are you sure you want to delete this config?
保存参数成功=Save config successfully
删除参数成功=Delete config successfully
# =========== 字典管理 ===========
新增字典类型=New dictionary type
编辑字典类型=Edit dictionary type
字典名称=Dictionary name
字典类型=Dictionary type
字典类型已存在=Dictionary type already exists
字典数据=The data dictionary
系统字典=System
停用字典类型=Disable dictionary type
确认要停用该字典类型吗?=Are you sure you want to disable the dictionary type?
启用字典类型=Enable dictionary type
确认要启用该字典类型吗?=Are you sure you want to enable the dictionary type?
删除字典类型=Delete dictionary type
确认要删除该字典类型吗?=Are you sure you want to delete the dictionary type?
保存字典类型成功=Save dictionary type successfully
停用字典类型成功=Disable dictionary type successfully
启用字典类型成功=Enable dictionary type successfully
删除字典类型成功=Delete dictionary type successfully
新增字典=New dictionary
编辑字典=Edit dictionary
上级字典=Parent dictionary
字典标签=Dictionary label
字典键值=Dictionary key
系统内置=System
字典描述=Description
CSS样式=CSS style
CSS类名=CSS class
新增字典数据=New dictionary data
编辑字典数据=Edit dictionary data
停用字典数据=Disable dictionary data
确认要停用该字典数据吗?=Are you sure you want to disable the dictionary data?
启用字典数据=Enable dictionary data
确认要启用该字典数据吗?=Are you sure you want to enable the dictionary data?
删除字典数据=Delete dictionary data
确认要删除该字典数据及所有子字典数据吗?=Are you sure you want to delete the dictionary data and all subdictionary data?
新增下级字典数据=New sub-dictionary data
保存失败,只有系统管理员才能保存为系统字典!=Save failed, only system administrator can save as system dictionary!
保存失败,没有找到''{0}''字典类型!=Save failed, '{0}' dictionary type not found!
保存失败,字典类型是系统的,字典数据也必须是系统字典!=Save failed, dictionary type is system, dictionary data must be system dictionary!
保存字典成功=Save dictionary successfully
该字典包含未停用的子字典!=This dictionary contains undeactivated subdictionaries!
停用字典成功=Disable dictionary successfully
启用字典成功=Enable dictionary successfully
删除字典成功=Delete dictionary successfully
# =========== 国际化管理 ===========
新增语言=New language
编辑语言=Edit language
语言编码=Language code
语言译文=Language translation
语言类型=Language type
清理国际化缓存=Clear i18n cache
语言编码=Language code
删除语言=Delete language
确认要删除该语言吗?=Are you sure you want to delete the language?
编码和类型已经存在=The code and type already exist
保存语言成功=Save language successfully
删除语言成功=Delete language successfully
清理缓存成功=Clear cache successfully
# =========== 在线用户 ===========
操作用户=Operation user
包含3分钟以上未操作的用户=Contains users who have been inactive for more than 3 minutes
查询所有在线=Query all online
包含未登录的用户=Contains unlogged users
包含游客用户=Contains visitor users
用户名称=User name
游客=tourists
最后访问=Last visit
超时时间=Timeout
客户主机=Client host
设备类型=Device type
踢出在线用户=Kick out online users
确认要踢出该用户在线状态吗?=Are you sure you want to kick the user online?
踢出已成功!=Kick out!
踢出失败,没有找到该在线用户!=Kick out failed, not find online user!

View File

@@ -1,3 +1,4 @@
# =========== 通用字典 ===========
=はい
@@ -25,12 +26,39 @@
# =========== 功能标题 ===========
系统管理=システム管理
组织管理=組織管理
用户管理=ユーザー管理
机构管理=機構管理
公司管理=会社管理
岗位管理=職位管理
权限管理=権限管理
角色管理=キャスティング管理
二级管理员=二級管理士
系统管理员=システム管理者
系统设置=システム設定
菜单管理=メニュー管理
模块管理=モジュール管理
参数设置=パラメータ設定
字典管理=辞書管理
行政区划=行政区画
国际化管理=国際化管理
产品许可信息=製品許可情報
系统监控=システム監視
访问日志=アクセスログ
数据监控=データモニタリング
缓存监控=キャッシュ監視
服务器监控=サーバ監視
作业监控=作業モニタリング
在线用户=オンラインユーザー
在线文档=オンラインドキュメント
研发工具=開発ツール
用户选择=ユーザー選択
机构选择=事務所選択
公司选择=会社選択
@@ -124,7 +152,8 @@
确认要将该用户密码重置到初始状态吗?=ユーザーのログインパスワードをリセットします。よろしいですか?
重置密码=パスワードリセット
保存用户失败,登录账号''{0}''已存在=ユーザーの保存に失敗しましたログインアカウント '' {0} ''は既に存在します
保存用户失败,登录账号''{0}''已存在=ユーザーの保存に失敗しましたログインアカウント''{0}''は既に存在します
保存用户失败,员工工号''{0}''已存在=ユーザーの保存に失敗しました,すでに職員番号''{0}''は既に存在します
保存用户''{0}''成功=ユーザー ''{0}'' 保存成功
停用用户失败,不允许停用当前用户=ユーザー無効に更新する処理失敗。このユーザーは無効にすることできません
停用用户''{0}''成功=ユーザー ''{0}'' 無効設定成功
@@ -147,7 +176,6 @@
归属机构=所属機構
归属公司=所属会社
登录账号=アカウント
登录账号已存在=ログインアカウントがすでに存在します
用户昵称=ニックネーム
电子邮箱=メール
手机号码=携帯電話
@@ -156,7 +184,8 @@
权重越大排名越靠前,请填写数字。=重要度が大きいほど前に表示します。数字を入力してください.
员工=社員
员工=社員コード
员工=社員コード
员工工号已存在=社員コードは既に存在します
员工姓名=氏名
所在岗位=所属職位
英文名=英語氏名
@@ -250,3 +279,267 @@
岗位名称已存在=職位名称が既に存在します
岗位编码=職位コード
岗位分类=職位分類
# =========== 角色管理 ===========
用户类型=ユーザータイプ
系统角色=システムキャラクター
角色分类=キャラクター分類
数据范围=データ範囲
业务范围=業務範囲
角色编码=キャラクターコード
角色名称=キャラクター名
角色名称已存在=キャラクター名が存在する
角色分类=キャラクター分類
授权功能菜单=ライセンス機能メニュー
未设置=未設置
全部数据=すべてのデータ
自定义数据=カスタムデータ
本部门数据=本省庁データ
本公司数据=当社のデータ
本部门和本公司数据=本省庁と自社のデータ
控制业务范围=業務の範囲を制御する
新增角色=新規役
编辑角色=編集役
停用角色=役の廃止
确认要停用该角色吗?=赤ん坊が確認しなければならないこのキャラクターは?
启用角色=キャラクターを起用する
确认要启用该角色吗?=この役を確認を起用しなければならないの?
删除角色=キャラクターを削除する
确认要删除该角色吗?=この役を確認を削除しなければならないの?
角色分配功能权限=配役機能権限
授权菜单=ライセンスメニュー
角色分配数据权限=配役データ権限
授权数据权限=ライセンスデータ権限
数据权限=データの権限を
分配用户=分配ユーザー
角色分配用户=配役ユーザー
添加用户=ユーザ
批量取消=大量キャンセル
请在列表选中要取消角色的用户=一覧の指名撤回するキャラクターのユーザーでください
没有选择要授权的用户=ライセンスするユーザーを選択しない
取消授权=ライセンスを取り消し
确认要取消该用户角色吗?=確認を撤回する同ユーザーのキャラクターは?
越权操作,只有超级管理员才能修改系统数据!=越権操作、システムデータの修正はスーパー管理者だけ!
保存失败,只有系统管理员才能保存为系统角色!=セーブに失敗して、システム管理者だけがシステムキャラクターとしてセーブできる!
保存角色''{0}''失败,角色名称已存在=保存役'{1}'に失敗し、キャラクターの名称が存在
保存角色''{0}''成功=保存役'{1}'成功
停用角色''{0}''成功=赤ん坊がキャラクター'{1}'成功
启用角色''{0}''成功=キャラクター起用''{0}''成功
删除角色''{0}''失败,角色关联了用户=削除役'{1}'に失敗し、キャラクターに関连したユーザー
删除角色''{0}''成功=キャラクター削除''{0}''成功
角色授权数据权限成功=役员会がデータの権限を成功
角色授权给用户成功=キャラクタはユーザに成功を与える
取消用户角色授权成功=ユーザーの取り消し役员会が成功
# =========== 二级管理员 ===========
二级管理员管理数据权限=级管理データ管理権限
管理数据权限=データ管理権限
可管理的数据权限=管理可能なデータ権限
取消二级管理员身份=身分取り消し级管理
确认要取消该用户的二级管理员身份吗?=身元確認を撤回する同ユーザーの级管理?
非法操作,不能够操作此用户!=不法操作し、これを操作できるユーザーがない!
保存二级管理员''{0}''成功=保存级管理'{1}'成功
取消二级管理员''{0}''身份成功=取り消し级管理'{1}'として成功
# =========== 系统管理员 ===========
租户管理员=テナント管理
新增租户管理员=新規のテナント管理
新增管理员=新規の管理
编辑管理员=編集管理
租户代码=テナントコード
租户名称=テナント名称
请输入租户代码=テナントコードを入力してください
请输入租户名称=テナントの名前を入力してください
越权操作,只有超级管理员才能修改此数据!=越権操作、スーパー管理こそ改正これ!
租户代码不能为空!=テナントコードは空にできない!
保存管理员''{0}''失败,登录账号已存在=保存管理'{1}'失敗、接続アカウントが存在
保存租户失败,租户代码已存在=保存のテナントの失敗、テナントコードが存在
非法操作,参数错误。=不法操作パラメータ、間違っている。
保存管理员''{0}''成功=保存管理'{1}'成功
停用管理员''{0}''成功=赤ん坊が管理'{1}'成功
启用管理员''{0}''成功=管理人の起用' '{1}'成功
重置管理员''{0}''密码成功=リセット管理'{1}'パスワード成功
删除管理员''{0}''成功=削除管理'{1}'成功
取消管理员''{0}''身份成功=取り消し管理'{1}'として成功
租户切换成功!=テナント换成功!
租户切换失败,没有这个租户!=テナント换の失敗が、このテナント!
租户切换失败,只有超级管理员才可以操作!=テナント换に失敗し、スーパーの管理のみを操作できる!
# =========== 菜单管理 ===========
新增菜单=メニューの追加
编辑菜单=編集メニュー
上级菜单=上級メニュー
菜单类型=メニュータイプ
菜单名称=メニュー名
归属模块=帰属モジュール
链接(Href)=リンク(Href)
目标(Target)=ターゲット(Target)
排序(升序)=序列(昇順)
权限标识=権限表示
菜单图标=メニューアイコン
字体颜色=書体色
页签标题=ページくじタイトル
可见=ほど
菜单权重=メニュー重み
其它信息=他の情報
菜单=メニュー
权限=権限
显示=表示
隐藏=隠し
核心模块=核心モジュール
主导航菜单=主導航メニュー
全部菜单=全メニュー
保存排序=序列の保存
类型=タイプ
链接=リンク
目标=目標
排序=序列
保存菜单''{0}''成功=保存メニュー'{1}'成功
删除菜单''{0}''成功=削除メニュー'{1}'成功
保存菜单排序成功=保存メニュー序列成功
操作失败,只有管理员才能进行修复!=操作に失敗し、管理のみを補修する!
数据修复成功=データの復元成功
# =========== 模块管理 ===========
新增模块=追加モジュール
编辑模块=編集モジュール
模块名称=モジュール名
模块编码=モジュールコーディング
主类全名=主類のフルネーム
模块描述=モジュール記述
当前版本=現行版
版本=バージョン
未知=未知
未安装=未実装
停用模块=停止モジュール
确认要停用该模块吗?=モジュールの停止を確認しますか?
启用模块=オープンモジュール
确认要启用该模块吗?=このモジュールを有効にすることを確認しますか?
删除模块=モジュールを削除する
确认要删除该模块吗?=このモジュールを削除することを確認しますか?
保存模块成功=保存モジュール成功
核心模块,不允许停用=コアモジュールは,停止させない
停用模块成功=モジュールの停止に成功
启用模块成功=オープンモジュール成功
核心模块,不允许删除=コアモジュールは,削除を許さない
删除模块成功=削除モジュール成功
# =========== 参数设置 ===========
新增参数=追加パラメータ
编辑参数=編集パラメータ
参数名称=パラメータ名
参数键名=パラメータキー名
参数键名已存在=パラメータキー名はすでに存在する
参数键值=パラメータキー値
参数描述=パラメータ記述
清理全部缓存,包括属性文件的配置=プロパティファイルの配置を含めてキャッシュ全体をクリアする
系统参数=システムパラメータ
删除参数=削除パラメータ
确认要删除该参数吗?=このパラメータを削除することを確認しますか?
保存参数成功=セーブパラメータ成功
删除参数成功=削除パラメータ成功
# =========== 字典管理 ===========
新增字典类型=辞書タイプの追加
编辑字典类型=辞書パターンを編集する
字典名称=辞書名
字典类型=辞書タイプ
字典类型已存在=辞書型も存在する
字典数据=辞書データ
系统字典=システム辞書
停用字典类型=辞書タイプを停止する
确认要停用该字典类型吗?=この辞書のタイプを停止することを確認しますか?
启用字典类型=辞書型
确认要启用该字典类型吗?=この辞書タイプを使うことを確認しますか?
删除字典类型=辞書パターンを削除する
确认要删除该字典类型吗?=この辞書タイプを削除することを確認しますか?
保存字典类型成功=辞書タイプ保存に成功
停用字典类型成功=辞書タイプを無効にすることに成功した
启用字典类型成功=辞書タイプを有効にすることに成功した
删除字典类型成功=辞書パターンの削除に成功した
新增字典=辞書を追加する
编辑字典=辞書を編纂する
上级字典=上級辞書
字典标签=辞書タグ
字典键值=辞書キー値
系统内置=システム内蔵
字典描述=辞書記述
CSS样式=CSS仕様
CSS类名=クラス名
新增字典数据=辞書データの追加
编辑字典数据=辞書データを編集する
停用字典数据=辞書データの無効化
确认要停用该字典数据吗?=この辞書のデータを停止することを確認しますか?
启用字典数据=辞書データを活用する
确认要启用该字典数据吗?=確認を起用しなければならないこの辞书データ?
删除字典数据=辞書データを削除する
确认要删除该字典数据及所有子字典数据吗?=データを削除しなければこの辞書を確認およびすべての子辞书データ?
新增下级字典数据=下位の辞書データを追加する
保存失败,只有系统管理员才能保存为系统字典!=保存に失敗し、システム管理者こそ、保存をシステム字典!
保存失败,没有找到''{0}''字典类型!=保存の失敗、見つからない'{1}'字典タイプ!
保存失败,字典类型是系统的,字典数据也必须是系统字典!=保存の失敗は、辞書のタイプは、システムの字典のデータもなければはシステムの字典!
保存字典成功=辞書保存に成功
该字典包含未停用的子字典!=この辞書未赤ん坊が含まれた子の字典!
停用字典成功=赤ん坊が辞書に成功
启用字典成功=辞書を使えるようにする
删除字典成功=辞書削除に成功
# =========== 国际化管理 ===========
新增语言=新たな言叶
编辑语言=編集言語
语言编码=言語コード
语言译文=言叶の_ _ _ _
语言类型=言語タイプ
清理国际化缓存=掃除の国际化キャッシュ
语言编码=言語コード
删除语言=削除言語
确认要删除该语言吗?=確認を削除しなければならないこの言叶?
编码和类型已经存在=コードとタイプが存在する
保存语言成功=保存言語成功
删除语言成功=削除言語成功
清理缓存成功=掃除キャッシュ成功
# =========== 在线用户 ===========
操作用户=ユーザーを操作する
包含3分钟以上未操作的用户=未操作のユーザを3分以上含む
查询所有在线=全てのオンライン検索
包含未登录的用户=未登録のユーザを含む
包含游客用户=は観光客ユーザー
用户名称=ユーザー名
游客=観光客
最后访问=最後の訪問
超时时间=タイムアウト時間
客户主机=クライアントホスト
设备类型=設備の種類
踢出在线用户=オンラインユーザーを蹴り出す
确认要踢出该用户在线状态吗?=当該ユーザーのオンライン状態を蹴飛ばすことを確認しますか?
踢出已成功!=蹴ると、すでに成功!
踢出失败,没有找到该在线用户!=失敗を蹴り、探せなかったオンラインユーザー!

View File

@@ -3,7 +3,7 @@
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-social-dropbox"></i> ${dictData.isNewRecord ? '新增字典' : '编辑字典'}${dictData.dictType}
<i class="fa icon-social-dropbox"></i> ${text(dictData.isNewRecord ? '新增字典' : '编辑字典')}${dictData.dictType}
</div>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
@@ -11,13 +11,13 @@
</div>
<#form:form id="inputForm" model="${dictData}" action="${ctx}/sys/dictData/save" method="post" class="form-horizontal">
<div class="box-body">
<div class="form-unit">基本信息</div>
<div class="form-unit">${text('基本信息')}</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4">上级字典:</label>
<label class="control-label col-sm-4">${text('上级字典')}</label>
<div class="col-sm-8">
<#form:treeselect id="parent" title="上级字典"
<#form:treeselect id="parent" title="${text('上级字典')}"
path="parent.id" labelPath="parent.dictLabelOrig"
url="${ctx}/sys/dictData/treeData?excludeCode=${dictData.id}&dictType=${dictData.dictType}&isShowNameOrig=true"
class="" allowClear="true" canSelectRoot="true" canSelectParent="true" isReturnValue="false"/>
@@ -31,7 +31,7 @@
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 字典标签:<i class="fa icon-question hide"></i></label>
<span class="required ">*</span> ${text('字典标签')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="dictLabelOrig" maxlength="100" class="form-control required "/>
</div>
@@ -40,7 +40,7 @@
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 字典键值:<i class="fa icon-question hide"></i></label>
<span class="required ">*</span> ${text('字典键值')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="dictValue" maxlength="100" class="form-control required "/>
</div>
@@ -51,7 +51,7 @@
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="当前字典树结构层次级别的排序号">
<span class="required ">*</span> 排序号<i class="fa icon-question "></i></label>
<span class="required ">*</span> ${text('排序号')}<i class="fa icon-question "></i></label>
<div class="col-sm-8">
<#form:input path="treeSort" maxlength="10" class="form-control required digits"/>
</div>
@@ -60,7 +60,7 @@
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 系统内置:<i class="fa icon-question hide"></i></label>
<span class="required ">*</span> ${text('系统内置')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:radio path="isSys" dictType="sys_yes_no" class="form-control required " />
</div>
@@ -71,19 +71,19 @@
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="工具提示如select鼠标放到option上去会显示该描述信息">
<span class="required hide">*</span> 字典描述:<i class="fa icon-question "></i></label>
<span class="required hide">*</span> ${text('字典描述')}<i class="fa icon-question "></i></label>
<div class="col-sm-10">
<#form:input path="description" maxlength="500" class="form-control "/>
</div>
</div>
</div>
</div>
<div class="form-unit">其它信息</div>
<div class="form-unit">${text('其它信息')}</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="CSS样式style=“color:red”, 请填写color:red">
<span class="required hide">*</span> CSS样式<i class="fa icon-question "></i></label>
<span class="required hide">*</span> ${text('CSS样式')}<i class="fa icon-question "></i></label>
<div class="col-sm-8">
<#form:input path="cssStyle" maxlength="500" class="form-control "/>
</div>
@@ -92,7 +92,7 @@
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="CSS类名class=“red”, 请填写red">
<span class="required hide">*</span> CSS类名<i class="fa icon-question "></i></label>
<span class="required hide">*</span> ${text('CSS类名')}<i class="fa icon-question "></i></label>
<div class="col-sm-8">
<#form:input path="cssClass" maxlength="500" class="form-control "/>
</div>
@@ -103,7 +103,7 @@
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> 备注信息:<i class="fa icon-question hide"></i></label>
<span class="required hide">*</span> ${text('备注信息')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-10">
<#form:textarea path="remarks" rows="4" maxlength="500" class="form-control "/>
</div>
@@ -116,9 +116,9 @@
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<% if (hasPermi('sys:dictData:edit')){ %>
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> 保 存</button>&nbsp;
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
<% } %>
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> 关 闭</button>
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
</div>
</div>
</div>

View File

@@ -3,15 +3,15 @@
<div class="box box-main">
<div class="box-header" style="display:block">
<div class="box-title">
<i class="fa icon-social-dropbox"></i> 字典数据(${dictData.dictType}
<i class="fa icon-social-dropbox"></i> ${text('字典数据')}${dictData.dictType}
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>
<a href="#" class="btn btn-default" id="btnRefreshTree" title="刷新"><i class="fa fa-refresh"></i> 刷新</a>
<a href="#" class="btn btn-default" id="btnExpandTreeNode" title="展开一级"><i class="fa fa-angle-double-down"></i> 展开</a>
<a href="#" class="btn btn-default" id="btnCollapseTreeNode" title="折叠全部"><i class="fa fa-angle-double-up"></i> 折叠</a>
<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
<a href="#" class="btn btn-default" id="btnRefreshTree" title="${text('刷新')}"><i class="fa fa-refresh"></i> ${text('刷新')}</a>
<a href="#" class="btn btn-default" id="btnExpandTreeNode" title="${text('展开一级')}"><i class="fa fa-angle-double-down"></i> ${text('展开')}</a>
<a href="#" class="btn btn-default" id="btnCollapseTreeNode" title="${text('折叠全部')}"><i class="fa fa-angle-double-up"></i> ${text('折叠')}</a>
<% if(hasPermi('sys:dictData:edit')){ %>
<a href="${ctx}/sys/dictData/form?dictType=${dictData.dictType}" class="btn btn-default btnTool" title="新增字典数据"><i class="fa fa-plus"></i> 新增</a>
<a href="${ctx}/sys/dictData/form?dictType=${dictData.dictType}" class="btn btn-default btnTool" title="${text('新增字典数据')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
<% } %>
</div>
</div>
@@ -19,38 +19,38 @@
<#form:form id="searchForm" model="${dictData}" action="${ctx}/sys/dictData/listData" method="post" class="form-inline "
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
<div class="form-group">
<label class="control-label">字典标签:</label>
<label class="control-label">${text('字典标签')}</label>
<div class="control-inline">
<#form:input path="dictLabelOrig" maxlength="100" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">字典键值:</label>
<label class="control-label">${text('字典键值')}</label>
<div class="control-inline">
<#form:input path="dictValue" maxlength="100" class="form-control"/>
</div>
</div>
<div class="form-group hide">
<label class="control-label">字典类型:</label>
<label class="control-label">${text('字典类型')}</label>
<div class="control-inline">
<#form:input path="dictType" maxlength="100" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">系统内置:</label>
<label class="control-label">${text('系统内置')}</label>
<div class="control-inline width-60">
<#form:select path="isSys" dictType="sys_yes_no" blankOption="true" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">状态</label>
<label class="control-label">${text('状态')}</label>
<div class="control-inline width-60">
<#form:select path="status" dictType="sys_search_status" blankOption="true" class="isQuick form-control"/>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">查询</button>
<button type="reset" class="btn btn-default btn-sm">重置</button>
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>
@@ -63,31 +63,31 @@
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'字典标签', name:'dictLabelOrig', index:'a.dict_label', width:200, align:"left", frozen:true, formatter: function(val, obj, row, act){
{header:'${text("字典标签")}', name:'dictLabelOrig', index:'a.dict_label', width:200, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/sys/dictData/form?dictCode='+row.dictCode+'" class="btnList '+row.cssClass
+'" data-title="编辑字典数据" style="'+row.cssStyle+'">'+(val||row.id)+'</a>';
+'" data-title="${text("编辑字典数据")}" style="'+row.cssStyle+'">'+(val||row.id)+'</a>';
}},
{header:'字典键值', name:'dictValue', index:'a.dict_value', width:200, align:"left"},
{header:'排序号', name:'treeSort', width:63, align:"center", fixed:true},
{header:'系统内置', name:'isSys', index:'a.is_sys', width:80, align:"center", formatter: function(val, obj, row, act){
{header:'${text("字典键值")}', name:'dictValue', index:'a.dict_value', width:200, align:"left"},
{header:'${text("排序号")}', name:'treeSort', width:63, align:"center", fixed:true},
{header:'${text("系统内置")}', name:'isSys', index:'a.is_sys', width:80, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('sys_yes_no')}, val, '未知', true);
}},
{header:'更新时间', name:'updateDate', index:'a.update_date', width:150, align:"center"},
{header:'备注信息', name:'remarks', index:'a.remarks', width:200, align:"left"},
{header:'状态', name:'status', index:'a.status', width:60, fixed:true, align:"center", formatter: function(val, obj, row, act){
{header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
{header:'${text("备注信息")}', name:'remarks', index:'a.remarks', width:200, align:"left"},
{header:'${text("状态")}', name:'status', index:'a.status', width:60, fixed:true, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
}},
{header:'操作', name:'actions', width:150, sortable:false, title:false, formatter: function(val, obj, row, act){
{header:'${text("操作")}', name:'actions', width:150, sortable:false, title:false, formatter: function(val, obj, row, act){
var actions = [];
<% if(hasPermi('sys:dictData:edit')){ %>
actions.push('<a href="${ctx}/sys/dictData/form?dictCode='+row.dictCode+'" class="btnList" title="编辑字典数据"><i class="fa fa-pencil"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictData/form?dictCode='+row.dictCode+'" class="btnList" title="${text("编辑字典数据")}"><i class="fa fa-pencil"></i></a>&nbsp;');
if (row.status == Global.STATUS_NORMAL){
actions.push('<a href="${ctx}/sys/dictData/disable?dictCode='+row.dictCode+'" class="btnList" title="停用字典数据" data-confirm="确认要停用该字典数据吗?"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictData/disable?dictCode='+row.dictCode+'" class="btnList" title="${text("停用字典数据")}" data-confirm="${text("确认要停用该字典数据吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
} else if (row.status == Global.STATUS_DISABLE){
actions.push('<a href="${ctx}/sys/dictData/enable?dictCode='+row.dictCode+'" class="btnList" title="启用字典数据" data-confirm="确认要启用该字典数据吗?"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictData/enable?dictCode='+row.dictCode+'" class="btnList" title="${text("启用字典数据")}" data-confirm="${text("确认要启用该字典数据吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
}
actions.push('<a href="${ctx}/sys/dictData/delete?dictCode='+row.dictCode+'" class="btnList" title="删除字典数据" data-confirm="确认要删除该字典数据及所有子字典数据吗?" data-deltreenode="'+row.id+'"><i class="fa fa-trash-o"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictData/form?parentCode='+row.id+'&dictType='+row.dictType+'" class="btnList" title="新增下级字典数据"><i class="fa fa-plus-square"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictData/delete?dictCode='+row.dictCode+'" class="btnList" title="${text("删除字典数据")}" data-confirm="${text("确认要删除该字典数据及所有子字典数据吗?")}" data-deltreenode="'+row.id+'"><i class="fa fa-trash-o"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictData/form?parentCode='+row.id+'&dictType='+row.dictType+'" class="btnList" title="${text("新增下级字典数据")}"><i class="fa fa-plus-square"></i></a>&nbsp;');
<% } %>
return actions.join('');
}}

View File

@@ -3,7 +3,7 @@
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-social-dropbox"></i> ${dictType.isNewRecord ? '新增字典类型' : '编辑字典类型'}
<i class="fa icon-social-dropbox"></i> ${text(dictType.isNewRecord ? '新增字典类型' : '编辑字典类型')}
</div>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
@@ -11,13 +11,13 @@
</div>
<#form:form id="inputForm" model="${dictType}" action="${ctx}/sys/dictType/save" method="post" class="form-horizontal">
<div class="box-body">
<div class="form-unit">基本信息</div>
<div class="form-unit">${text('基本信息')}</div>
<#form:hidden path="id"/>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 字典名称:<i class="fa icon-question hide"></i></label>
<span class="required ">*</span> ${text('字典名称')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="dictName" maxlength="100" class="form-control required "/>
</div>
@@ -28,11 +28,11 @@
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 字典类型:<i class="fa icon-question hide"></i></label>
<span class="required ">*</span> ${text('字典类型')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="dictType" maxlength="100" class="form-control required abc"
remote="${ctx}/sys/dictType/checkDictType?oldDictType=${dictType.dictType}"
data-msg-remote="字段类型已存在"/>
data-msg-remote="${text('字典类型已存在')}"/>
</div>
</div>
</div>
@@ -41,7 +41,7 @@
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 是否系统<i class="fa icon-question hide"></i></label>
<span class="required ">*</span> ${text('系统字典')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:radio path="isSys" dictType="sys_yes_no" class="form-control required " />
</div>
@@ -52,7 +52,7 @@
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> 备注信息:<i class="fa icon-question hide"></i></label>
<span class="required hide">*</span> ${text('备注信息')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:textarea path="remarks" rows="4" maxlength="500" class="form-control "/>
</div>
@@ -64,9 +64,9 @@
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<% if (hasPermi('sys:dictType:edit')){ %>
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> 保 存</button>&nbsp;
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
<% } %>
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> 关 闭</button>
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
</div>
</div>
</div>

View File

@@ -3,12 +3,12 @@
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-social-dropbox"></i> 字典管理
<i class="fa icon-social-dropbox"></i> ${text('字典管理')}
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>
<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
<% if(hasPermi('sys:dictType:edit')){ %>
<a href="${ctx}/sys/dictType/form" class="btn btn-default btnTool" title="新增字典类型"><i class="fa fa-plus"></i> 新增</a>
<a href="${ctx}/sys/dictType/form" class="btn btn-default btnTool" title="${text('新增字典类型')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
<% } %>
</div>
</div>
@@ -16,32 +16,32 @@
<#form:form id="searchForm" model="${dictType}" action="${ctx}/sys/dictType/listData" method="post" class="form-inline "
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
<div class="form-group">
<label class="control-label">字典名称:</label>
<label class="control-label">${text('字典名称')}</label>
<div class="control-inline">
<#form:input path="dictName" maxlength="100" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">字典类型:</label>
<label class="control-label">${text('字典类型')}</label>
<div class="control-inline">
<#form:input path="dictType_like" maxlength="100" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">是否系统</label>
<label class="control-label">${text('系统字典')}</label>
<div class="control-inline width-60">
<#form:select path="isSys" dictType="sys_yes_no" blankOption="true" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">状态</label>
<label class="control-label">${text('状态')}</label>
<div class="control-inline width-60">
<#form:select path="status" dictType="sys_search_status" blankOption="true" class="isQuick form-control"/>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">查询</button>
<button type="reset" class="btn btn-default btn-sm">重置</button>
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>
@@ -55,33 +55,33 @@
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'字典名称', name:'dictName', index:'a.dict_name', width:200, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/sys/dictType/form?id='+row.id+'" class="btnList" data-title="编辑字典类型">'+(val||row.id)+'</a>';
{header:'${text("字典名称")}', name:'dictName', index:'a.dict_name', width:200, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/sys/dictType/form?id='+row.id+'" class="btnList" data-title="${text("编辑字典类型")}">'+(val||row.id)+'</a>';
}},
{header:'字典类型', name:'dictType', index:'a.dict_type', width:200, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/sys/dictData/list?dictType='+row.dictType+'" class="btnList" data-title="字典数据">'+(val||row.id)+'</a>';
{header:'${text("字典类型")}', name:'dictType', index:'a.dict_type', width:200, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/sys/dictData/list?dictType='+row.dictType+'" class="btnList" data-title="${text("字典数据")}">'+(val||row.id)+'</a>';
}},
{header:'系统字典', name:'isSys', index:'a.is_sys', width:80, align:"center", formatter: function(val, obj, row, act){
{header:'${text("系统字典")}', name:'isSys', index:'a.is_sys', width:80, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('sys_yes_no')}, val, '未知', true);
}},
{header:'更新时间', name:'updateDate', index:'a.update_date', width:150, align:"center"},
{header:'备注信息', name:'remarks', index:'a.remarks', width:200, align:"left"},
{header:'状态', name:'status', index:'a.status', width:60, fixed:true, align:"center", formatter: function(val, obj, row, act){
{header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
{header:'${text("备注信息")}', name:'remarks', index:'a.remarks', width:200, align:"left"},
{header:'${text("状态")}', name:'status', index:'a.status', width:60, fixed:true, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
}},
{header:'操作', name:'actions', width:130, sortable:false, title:false, formatter: function(val, obj, row, act){
{header:'${text("操作")}', name:'actions', width:130, sortable:false, title:false, formatter: function(val, obj, row, act){
var actions = [];
<% if(hasPermi('sys:dictType:edit')){ %>
actions.push('<a href="${ctx}/sys/dictType/form?id='+row.id+'" class="btnList" title="编辑字典类型"><i class="fa fa-pencil"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictType/form?id='+row.id+'" class="btnList" title="${text("编辑字典类型")}"><i class="fa fa-pencil"></i></a>&nbsp;');
<% } %>
actions.push('<a href="${ctx}/sys/dictData/list?dictType='+row.dictType+'" class="btnList" title="字典数据"><i class="fa fa-navicon"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictData/list?dictType='+row.dictType+'" class="btnList" title="${text("字典数据")}"><i class="fa fa-navicon"></i></a>&nbsp;');
<% if(hasPermi('sys:dictType:edit')){ %>
if (row.status == Global.STATUS_NORMAL){
actions.push('<a href="${ctx}/sys/dictType/disable?id='+row.id+'" class="btnList" title="停用字典类型" data-confirm="确认要停用该字典类型吗?"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictType/disable?id='+row.id+'" class="btnList" title="${text("停用字典类型")}" data-confirm="${text("确认要停用该字典类型吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
} else if (row.status == Global.STATUS_DISABLE){
actions.push('<a href="${ctx}/sys/dictType/enable?id='+row.id+'" class="btnList" title="启用字典类型" data-confirm="确认要启用该字典类型吗?"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictType/enable?id='+row.id+'" class="btnList" title="${text("启用字典类型")}" data-confirm="${text("确认要启用该字典类型吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
}
actions.push('<a href="${ctx}/sys/dictType/delete?id='+row.id+'" class="btnList" title="删除字典类型" data-confirm="确认要删除该字典类型吗?"><i class="fa fa-trash-o"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/dictType/delete?id='+row.id+'" class="btnList" title="${text("删除字典类型")}" data-confirm="${text("确认要删除该字典类型吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
<% } %>
return actions.join('');
}}

View File

@@ -3,7 +3,7 @@
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa fa-bug"></i> 访问日志查询
<i class="fa fa-bug"></i> 访问日志
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>

View File

@@ -3,38 +3,38 @@
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-social-twitter"></i> 在线用户
<i class="fa icon-social-twitter"></i> ${text('在线用户')}
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>
<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
</div>
</div>
<div class="box-body">
<#form:form id="searchForm" action="${ctx}/sys/online/listData" method="post" class="form-inline hide2"
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
<div class="form-group">
<label class="control-label">操作用户:</label>
<label class="control-label">${text('操作用户')}</label>
<div class="control-inline width-160">
<#form:listselect id="userSelect" title="用户选择" path="userCode"
<#form:listselect id="userSelect" title="${text('用户选择')}" path="userCode"
url="${ctx}/sys/user/userSelect?userType=" allowClear="false"
checkbox="false" itemCode="userCode" itemName="userName"/>
</div>
</div>
<div class="form-group">
<div class="control-inline" title="包含3分钟以上未操作的用户">&nbsp;
<#form:checkbox name="isAllOnline" value="false" label="查询所有在线"
<div class="control-inline" title="${text('包含3分钟以上未操作的用户')}">&nbsp;
<#form:checkbox name="isAllOnline" value="false" label="${text('查询所有在线')}"
class="form-control"/>
</div>
</div>
<div class="form-group">
<div class="control-inline" title="包含未登录的用户">
<#form:checkbox name="isVisitor" value="false" label="包含游客用户"
<div class="control-inline" title="${text('包含未登录的用户')}">
<#form:checkbox name="isVisitor" value="false" label="${text('包含游客用户')}"
class="form-control"/>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">查询</button>
<button type="reset" class="btn btn-default btn-sm">重置</button>
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>
@@ -47,23 +47,23 @@
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'用户名称', name:'userName', index:'a.create_by_name', width:100, align:"center", formatter: function(val, obj, row, act){
return '<span title="账号'+(row.userCode||'')+'">'+(val||'游客');
{header:'${text("用户名称")}', name:'userName', index:'a.create_by_name', width:100, align:"center", formatter: function(val, obj, row, act){
return '<span title="${text("账号")}'+(row.userCode||'')+'">'+(val||'${text("游客")}');
}},
{header:'创建时间', name:'startTimestamp', firstsortorder:'desc', width:100, align:'center'},
{header:'最后访问', name:'lastAccessTime', firstsortorder:'desc', width:100, align:'center'},
{header:'超时时间', name:'timeout', width:100, align:'center'},
{header:'客户主机', name:'host', width:70, align:'center'},
{header:'用户类型', name:'userType', width:50, align:'center', formatter: function(val, obj, row, act){
{header:'${text("创建时间")}', name:'startTimestamp', firstsortorder:'desc', width:100, align:'center'},
{header:'${text("最后访问")}', name:'lastAccessTime', firstsortorder:'desc', width:100, align:'center'},
{header:'${text("超时时间")}', name:'timeout', width:100, align:'center'},
{header:'${text("客户主机")}', name:'host', width:70, align:'center'},
{header:'${text("用户类型")}', name:'userType', width:50, align:'center', formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('sys_user_type')}, val, '未知', true);
}},
{header:'设备类型', name:'deviceType', width:50, align:'center', formatter: function(val, obj, row, act){
{header:'${text("设备类型")}', name:'deviceType', width:50, align:'center', formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('sys_device_type')}, val, 'PC', true);
}}
<% if(hasPermi('sys:online:edit')){ %>
,{header:'操作', name:'actions', width:50, sortable:false, formatter: function(val, obj, row, act){
,{header:'${text("操作")}', name:'actions', width:50, sortable:false, formatter: function(val, obj, row, act){
var actions = [];
actions.push('<a href="${ctx}/sys/online/tickOut?sessionId='+row.id+'" class="btnList" title="踢出在线用户" data-confirm="确认要踢出该用户在线状态吗?"><i class="fa fa-trash-o"></i></a>&nbsp;');
actions.push('<a href="${ctx}/sys/online/tickOut?sessionId='+row.id+'" class="btnList" title="${text("踢出在线用户")}" data-confirm="${text("确认要踢出该用户在线状态吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
return actions.join('');
}}
<% } %>

View File

@@ -25,7 +25,8 @@
<div class="col-sm-8">
<#form:treeselect id="office" title="${text('机构选择')}"
path="employee.office.officeCode" labelPath="employee.office.officeName"
url="${ctx}/sys/office/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}" class="required" allowClear="false"/>
url="${ctx}/sys/office/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}"
class="required" allowClear="false" canSelectRoot="true" canSelectParent="true"/>
</div>
</div>
</div>
@@ -36,7 +37,8 @@
<div class="col-sm-8">
<#form:treeselect id="company" title="${text('公司选择')}"
path="employee.company.companyCode" labelPath="employee.company.companyName"
url="${ctx}/sys/company/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}" btnClass="" allowClear="true"/>
url="${ctx}/sys/company/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}"
btnClass="" allowClear="true" canSelectRoot="true" canSelectParent="true"/>
</div>
</div>
</div>

View File

@@ -67,7 +67,8 @@
<div class="control-inline width-90">
<#form:treeselect id="office" title="${text('机构选择')}"
path="employee.office.officeCode" labelPath="employee.office.officeName"
url="${ctx}/sys/office/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}" btnClass="btn-sm" allowClear="true" canSelectParent="true"/>
url="${ctx}/sys/office/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}"
btnClass="btn-sm" allowClear="true" canSelectRoot="true" canSelectParent="true"/>
</div>
</div>
<div class="form-group">
@@ -75,7 +76,8 @@
<div class="control-inline width-90">
<#form:treeselect id="company" title="${text('公司选择')}"
path="employee.company.companyCode" labelPath="employee.company.companyName"
url="${ctx}/sys/company/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}" btnClass="btn-sm" allowClear="true" canSelectParent="true"/>
url="${ctx}/sys/company/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}"
btnClass="btn-sm" allowClear="true" canSelectRoot="true" canSelectParent="true"/>
</div>
</div>
<div class="form-group">

View File

@@ -18,22 +18,6 @@ jdbc:
password: 123456
testSql: SELECT 1
# # DB2 数据库配置
# type: db2
# driver: com.ibm.db2.jcc.DB2Driver
# url: jdbc:db2://127.0.0.1:50000/jeesite
# username: jeesite
# password: jeesite
# testSql: SELECT 1 FROM DUAL
# # H2 数据库配置
# type: h2
# driver: org.h2.Driver
# url: jdbc:h2:~/jeesite-db/jeesite
# username: jeesite
# password: jeesite
# testSql: SELECT 1
# 日志配置
logging:
config: classpath:logback-test.xml