Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
00cd63c4
提交
00cd63c4
authored
5月 08, 2017
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
日志清理功能
上级
882d7a43
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
210 行增加
和
13 行删除
+210
-13
README.md
README.md
+3
-3
JobLogController.java
...n/java/com/xxl/job/admin/controller/JobLogController.java
+33
-0
IXxlJobLogDao.java
...in/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java
+2
-0
XxlJobLogDaoImpl.java
...ain/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java
+10
-0
XxlJobLogMapper.xml
...min/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
+33
-0
common.macro.ftl
.../src/main/webapp/WEB-INF/template/common/common.macro.ftl
+3
-0
joblog.index.ftl
.../src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl
+64
-6
joblog.index.1.js
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
+52
-4
layer.js
xxl-job-admin/src/main/webapp/static/plugins/layer/layer.js
+3
-0
layer.js
...dmin/src/main/webapp/static/plugins/layer/mobile/layer.js
+3
-0
layer.css
...rc/main/webapp/static/plugins/layer/mobile/need/layer.css
+2
-0
icon-ext.png
...ain/webapp/static/plugins/layer/skin/default/icon-ext.png
+0
-0
icon.png
...rc/main/webapp/static/plugins/layer/skin/default/icon.png
+0
-0
layer.css
...c/main/webapp/static/plugins/layer/skin/default/layer.css
+2
-0
loading-0.gif
...in/webapp/static/plugins/layer/skin/default/loading-0.gif
+0
-0
loading-1.gif
...in/webapp/static/plugins/layer/skin/default/loading-1.gif
+0
-0
loading-2.gif
...in/webapp/static/plugins/layer/skin/default/loading-2.gif
+0
-0
没有找到文件。
README.md
浏览文件 @
00cd63c4
...
@@ -813,15 +813,15 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -813,15 +813,15 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
3、执行器,server启动、销毁和注册逻辑调整;
-
3、执行器,server启动、销毁和注册逻辑调整;
-
4、JettyServer关闭逻辑优化,修复执行器无法正常关闭导致端口占用和频繁打印c3p0日志的问题;
-
4、JettyServer关闭逻辑优化,修复执行器无法正常关闭导致端口占用和频繁打印c3p0日志的问题;
-
5、JobHandler中开启子线程时,支持子线程输出执行日志并通过Rolling查看。
-
5、JobHandler中开启子线程时,支持子线程输出执行日志并通过Rolling查看。
-
6、任务日志清理功能;
#### TODO LIST
#### TODO LIST
-
1、任务并行触发处理规则:单机串行队列(默认)、单机并行、串行忽略、单机覆盖;
-
1、任务并行触发处理规则:单机串行队列(默认)、单机并行、串行忽略、单机覆盖;
-
2、任务权限管理;
-
2、任务权限管理;
-
3、调度失败重试机制;
-
3、调度失败重试机制;
-
4、执行器与数据库解耦,只需配置调度中心集群地址即可(与当前通过JDBC注册自动发现方式,相冲突,待考虑);
-
4、执行器与数据库解耦,只需配置调度中心集群地址即可(与当前通过JDBC注册自动发现方式,相冲突,待考虑);
-
5、任务日志定期清理功能,支持设置日志上限;
-
5、任务分片:一个任务被拆分成N个独立的任务单元,然后由分布式部署的执行器分别执行某一个或几个分片单元;
-
6、任务分片:一个任务被拆分成N个独立的任务单元,然后由分布式部署的执行器分别执行某一个或几个分片单元;
-
6、任务分片路由:分片采用一致性Hash算法计算出尽量稳定的分片顺序,即使注册机器存在波动也不会引起分批分片顺序大的波动;
-
7、任务分片路由:分片采用一致性Hash算法计算出尽量稳定的分片顺序,即使注册机器存在波动也不会引起分批分片顺序大的波动;
## 七、其他
## 七、其他
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
浏览文件 @
00cd63c4
...
@@ -167,4 +167,37 @@ public class JobLogController {
...
@@ -167,4 +167,37 @@ public class JobLogController {
return
new
ReturnT
<
String
>(
500
,
runResult
.
getMsg
());
return
new
ReturnT
<
String
>(
500
,
runResult
.
getMsg
());
}
}
}
}
@RequestMapping
(
"/clearLog"
)
@ResponseBody
public
ReturnT
<
String
>
clearLog
(
int
jobGroup
,
int
jobId
,
int
type
){
Date
clearBeforeTime
=
null
;
int
clearBeforeNum
=
0
;
if
(
type
==
1
)
{
clearBeforeTime
=
DateUtils
.
addMonths
(
new
Date
(),
-
1
);
// 清理一个月之前日志数据
}
else
if
(
type
==
2
)
{
clearBeforeTime
=
DateUtils
.
addMonths
(
new
Date
(),
-
3
);
// 清理三个月之前日志数据
}
else
if
(
type
==
3
)
{
clearBeforeTime
=
DateUtils
.
addMonths
(
new
Date
(),
-
6
);
// 清理六个月之前日志数据
}
else
if
(
type
==
4
)
{
clearBeforeTime
=
DateUtils
.
addYears
(
new
Date
(),
-
1
);
// 清理一年之前日志数据
}
else
if
(
type
==
5
)
{
clearBeforeNum
=
1000
;
// 清理一千条以前日志数据
}
else
if
(
type
==
6
)
{
clearBeforeNum
=
10000
;
// 清理一万条以前日志数据
}
else
if
(
type
==
7
)
{
clearBeforeNum
=
30000
;
// 清理三万条以前日志数据
}
else
if
(
type
==
8
)
{
clearBeforeNum
=
100000
;
// 清理十万条以前日志数据
}
else
if
(
type
==
9
)
{
clearBeforeNum
=
0
;
// 清理所用日志数据
}
else
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"清理类型参数异常"
);
}
xxlJobLogDao
.
clearLog
(
jobGroup
,
jobId
,
clearBeforeTime
,
clearBeforeNum
);
return
ReturnT
.
SUCCESS
;
}
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java
浏览文件 @
00cd63c4
...
@@ -29,4 +29,6 @@ public interface IXxlJobLogDao {
...
@@ -29,4 +29,6 @@ public interface IXxlJobLogDao {
public
List
<
Map
<
String
,
Object
>>
triggerCountByDay
(
Date
from
,
Date
to
,
int
handleCode
);
public
List
<
Map
<
String
,
Object
>>
triggerCountByDay
(
Date
from
,
Date
to
,
int
handleCode
);
public
int
clearLog
(
int
jobGroup
,
int
jobId
,
Date
clearBeforeTime
,
int
clearBeforeNum
);
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java
浏览文件 @
00cd63c4
...
@@ -92,4 +92,14 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
...
@@ -92,4 +92,14 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
return
sqlSessionTemplate
.
selectList
(
"XxlJobLogMapper.triggerCountByDay"
,
params
);
return
sqlSessionTemplate
.
selectList
(
"XxlJobLogMapper.triggerCountByDay"
,
params
);
}
}
@Override
public
int
clearLog
(
int
jobGroup
,
int
jobId
,
Date
clearBeforeTime
,
int
clearBeforeNum
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"jobGroup"
,
jobGroup
);
params
.
put
(
"jobId"
,
jobId
);
params
.
put
(
"clearBeforeTime"
,
clearBeforeTime
);
params
.
put
(
"clearBeforeNum"
,
clearBeforeNum
);
return
sqlSessionTemplate
.
delete
(
"XxlJobLogMapper.clearLog"
,
params
);
}
}
}
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
浏览文件 @
00cd63c4
...
@@ -147,5 +147,37 @@
...
@@ -147,5 +147,37 @@
</if>
</if>
GROUP BY triggerDay;
GROUP BY triggerDay;
</select>
</select>
<delete
id=
"clearLog"
parameterType=
"java.util.Map"
>
delete from XXL_JOB_QRTZ_TRIGGER_LOG
<trim
prefix=
"WHERE"
prefixOverrides=
"AND | OR"
>
<if
test=
"jobGroup gt 0"
>
AND job_group = #{jobGroup}
</if>
<if
test=
"jobId gt 0"
>
AND job_id = #{jobId}
</if>
<if
test=
"clearBeforeTime != null"
>
AND trigger_time
<![CDATA[ <= ]]>
#{clearBeforeTime}
</if>
<if
test=
"clearBeforeNum gt 0"
>
AND id NOT in(
SELECT id FROM(
SELECT id FROM XXL_JOB_QRTZ_TRIGGER_LOG AS t
<trim
prefix=
"WHERE"
prefixOverrides=
"AND | OR"
>
<if
test=
"jobGroup gt 0"
>
AND t.job_group = #{jobGroup}
</if>
<if
test=
"jobId gt 0"
>
AND t.job_id = #{jobId}
</if>
</trim>
ORDER BY t.trigger_time desc
LIMIT 0, #{clearBeforeNum}
) t1
)
</if>
</trim>
</delete>
</mapper>
</mapper>
\ No newline at end of file
xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl
浏览文件 @
00cd63c4
...
@@ -45,6 +45,9 @@
...
@@ -45,6 +45,9 @@
<#-- jquery cookie -->
<#-- jquery cookie -->
<script src="${request.contextPath}/static/plugins/jquery/jquery.cookie.js"></script>
<script src="${request.contextPath}/static/plugins/jquery/jquery.cookie.js"></script>
<#-- layer -->
<script src="${request.contextPath}/static/plugins/layer/layer.js"></script>
<#-- common -->
<#-- common -->
<script src="${request.contextPath}/static/js/xxl.alert.1.js"></script>
<script src="${request.contextPath}/static/js/xxl.alert.1.js"></script>
<script src="${request.contextPath}/static/js/common.1.js"></script>
<script src="${request.contextPath}/static/js/common.1.js"></script>
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl
浏览文件 @
00cd63c4
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
<div
class=
"input-group"
>
<div
class=
"input-group"
>
<span
class=
"input-group-addon"
>
执行器
</span>
<span
class=
"input-group-addon"
>
执行器
</span>
<select
class=
"form-control"
id=
"jobGroup"
paramVal=
"<#if jobInfo?exists>${jobInfo.jobGroup}</#if>"
>
<select
class=
"form-control"
id=
"jobGroup"
paramVal=
"<#if jobInfo?exists>${jobInfo.jobGroup}</#if>"
>
<option
value=
"0"
>
请选择
</option>
<option
value=
"0"
>
全部
</option>
<
#
list
JobGroupList
as
group
>
<
#
list
JobGroupList
as
group
>
<option
value=
"${group.id}"
>
${group.title}
</option>
<option
value=
"${group.id}"
>
${group.title}
</option>
</
#
list>
</
#
list>
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
<div
class=
"input-group"
>
<div
class=
"input-group"
>
<span
class=
"input-group-addon"
>
任务
</span>
<span
class=
"input-group-addon"
>
任务
</span>
<select
class=
"form-control"
id=
"jobId"
paramVal=
"<#if jobInfo?exists>${jobInfo.id}</#if>"
>
<select
class=
"form-control"
id=
"jobId"
paramVal=
"<#if jobInfo?exists>${jobInfo.id}</#if>"
>
<option
value=
"0"
>
请选择
</option>
<option
value=
"0"
>
全部
</option>
</select>
</select>
</div>
</div>
</div>
</div>
...
@@ -59,10 +59,13 @@
...
@@ -59,10 +59,13 @@
<input
type=
"text"
class=
"form-control"
id=
"filterTime"
readonly
>
<input
type=
"text"
class=
"form-control"
id=
"filterTime"
readonly
>
</div>
</div>
</div>
</div>
<div
class=
"col-xs-1"
>
<div
class=
"col-xs-2"
>
<button
class=
"btn btn-block btn-info"
id=
"searchBtn"
>
搜索
</button>
<button
class=
"btn btn-block btn-info"
id=
"searchBtn"
>
搜索
</button>
</div>
<div
class=
"col-xs-1"
>
<button
class=
"btn btn-block btn-nomal"
id=
"clearLog"
>
清理
</button>
</div>
</div>
</div>
</div>
...
@@ -102,6 +105,61 @@
...
@@ -102,6 +105,61 @@
<
@
netCommon
.
commonFooter
/>
<
@
netCommon
.
commonFooter
/>
</div>
</div>
<!-- 日志清理.模态框 -->
<div
class=
"modal fade"
id=
"clearLogModal"
tabindex=
"-1"
role=
"dialog"
aria-hidden=
"true"
>
<div
class=
"modal-dialog"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<h4
class=
"modal-title"
>
日志清理
</h4>
</div>
<div
class=
"modal-body"
>
<form
class=
"form-horizontal form"
role=
"form"
>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
"
>
执行器:
</label>
<div
class=
"col-sm-9"
>
<input
type=
"text"
class=
"form-control jobGroupText"
readonly
>
<input
type=
"hidden"
name=
"jobGroup"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
"
>
任务:
</label>
<div
class=
"col-sm-9"
>
<input
type=
"text"
class=
"form-control jobIdText"
readonly
>
<input
type=
"hidden"
name=
"jobId"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
"
>
清理类型:
</label>
<div
class=
"col-sm-9"
>
<select
class=
"form-control"
name=
"type"
>
<option
value=
"1"
>
清理一个月之前日志数据
</option>
<option
value=
"2"
>
清理三个月之前日志数据
</option>
<option
value=
"3"
>
清理六个月之前日志数据
</option>
<option
value=
"4"
>
清理一年之前日志数据
</option>
<option
value=
"5"
>
清理一千条以前日志数据
</option>
<option
value=
"6"
>
清理一万条以前日志数据
</option>
<option
value=
"7"
>
清理三万条以前日志数据
</option>
<option
value=
"8"
>
清理十万条以前日志数据
</option>
<option
value=
"9"
>
清理所用日志数据
</option>
</select>
</div>
</div>
<hr>
<div
class=
"form-group"
>
<div
class=
"col-sm-offset-3 col-sm-6"
>
<button
type=
"button"
class=
"btn btn-primary ok"
>
保存
</button>
<button
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<
@
netCommon
.
commonScript
/>
<
@
netCommon
.
commonScript
/>
<!-- DataTables -->
<!-- DataTables -->
<script
src=
"${request.contextPath}/static/adminlte/plugins/datatables/jquery.dataTables.min.js"
></script>
<script
src=
"${request.contextPath}/static/adminlte/plugins/datatables/jquery.dataTables.min.js"
></script>
...
...
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
浏览文件 @
00cd63c4
...
@@ -11,7 +11,7 @@ $(function() {
...
@@ -11,7 +11,7 @@ $(function() {
dataType
:
"json"
,
dataType
:
"json"
,
success
:
function
(
data
){
success
:
function
(
data
){
if
(
data
.
code
==
200
)
{
if
(
data
.
code
==
200
)
{
$
(
"#jobId"
).
html
(
'<option value="0" >
请选择
</option>'
);
$
(
"#jobId"
).
html
(
'<option value="0" >
全部
</option>'
);
$
.
each
(
data
.
content
,
function
(
n
,
value
)
{
$
.
each
(
data
.
content
,
function
(
n
,
value
)
{
$
(
"#jobId"
).
append
(
'<option value="'
+
value
.
id
+
'" >'
+
value
.
jobDesc
+
'</option>'
);
$
(
"#jobId"
).
append
(
'<option value="'
+
value
.
id
+
'" >'
+
value
.
jobDesc
+
'</option>'
);
});
});
...
@@ -153,7 +153,7 @@ $(function() {
...
@@ -153,7 +153,7 @@ $(function() {
if
(
row
.
triggerCode
==
200
){
if
(
row
.
triggerCode
==
200
){
var
temp
=
'<a href="javascript:;" class="logDetail" _id="'
+
row
.
id
+
'">执行日志</a>'
;
var
temp
=
'<a href="javascript:;" class="logDetail" _id="'
+
row
.
id
+
'">执行日志</a>'
;
if
(
row
.
handleCode
==
0
){
if
(
row
.
handleCode
==
0
){
temp
+=
'<br><a href="javascript:;" class="logKill" _id="'
+
row
.
id
+
'">终止任务</a>'
;
temp
+=
'<br><a href="javascript:;" class="logKill" _id="'
+
row
.
id
+
'"
style="color: red;"
>终止任务</a>'
;
}
}
return
temp
;
return
temp
;
}
}
...
@@ -228,7 +228,10 @@ $(function() {
...
@@ -228,7 +228,10 @@ $(function() {
});
});
*/
*/
});
});
/**
* 终止任务
*/
$
(
'#joblog_list'
).
on
(
'click'
,
'.logKill'
,
function
(){
$
(
'#joblog_list'
).
on
(
'click'
,
'.logKill'
,
function
(){
var
_id
=
$
(
this
).
attr
(
'_id'
);
var
_id
=
$
(
this
).
attr
(
'_id'
);
ComConfirm
.
show
(
"确认主动终止任务?"
,
function
(){
ComConfirm
.
show
(
"确认主动终止任务?"
,
function
(){
...
@@ -248,5 +251,50 @@ $(function() {
...
@@ -248,5 +251,50 @@ $(function() {
});
});
});
});
});
});
/**
* 清理任务Log
*/
$
(
'#clearLog'
).
on
(
'click'
,
function
(){
var
jobGroup
=
$
(
'#jobGroup'
).
val
();
var
jobId
=
$
(
'#jobId'
).
val
();
var
jobGroupText
=
$
(
"#jobGroup"
).
find
(
"option:selected"
).
text
();
var
jobIdText
=
$
(
"#jobId"
).
find
(
"option:selected"
).
text
();
$
(
'#clearLogModal input[name=jobGroup]'
).
val
(
jobGroup
);
$
(
'#clearLogModal input[name=jobId]'
).
val
(
jobId
);
$
(
'#clearLogModal .jobGroupText'
).
val
(
jobGroupText
);
$
(
'#clearLogModal .jobIdText'
).
val
(
jobIdText
);
$
(
'#clearLogModal'
).
modal
(
'show'
);
});
$
(
"#clearLogModal .ok"
).
on
(
'click'
,
function
(){
$
.
post
(
base_url
+
"/joblog/clearLog"
,
$
(
"#clearLogModal .form"
).
serialize
(),
function
(
data
,
status
)
{
if
(
data
.
code
==
"200"
)
{
$
(
'#clearLogModal'
).
modal
(
'hide'
);
layer
.
open
({
title
:
'系统提示'
,
content
:
'日志清理成功'
,
icon
:
'1'
,
end
:
function
(
layero
,
index
){
logTable
.
fnDraw
();
}
});
}
else
{
layer
.
open
({
title
:
'系统提示'
,
content
:
(
data
.
msg
||
"日志清理失败"
),
icon
:
'2'
});
}
});
});
$
(
"#clearLogModal"
).
on
(
'hide.bs.modal'
,
function
()
{
$
(
"#clearLogModal .form"
)[
0
].
reset
();
});
});
});
xxl-job-admin/src/main/webapp/static/plugins/layer/layer.js
0 → 100755
浏览文件 @
00cd63c4
/*! layer-v3.0.3 Web弹层组件 MIT License http://layer.layui.com/ By 贤心 */
;
!
function
(
e
,
t
){
"use strict"
;
var
i
,
n
,
a
=
e
.
layui
&&
layui
.
define
,
o
=
{
getPath
:
function
(){
var
e
=
document
.
scripts
,
t
=
e
[
e
.
length
-
1
],
i
=
t
.
src
;
if
(
!
t
.
getAttribute
(
"merge"
))
return
i
.
substring
(
0
,
i
.
lastIndexOf
(
"/"
)
+
1
)}(),
config
:{},
end
:{},
minIndex
:
0
,
minLeft
:[],
btn
:[
"确定"
,
"取消"
],
type
:[
"dialog"
,
"page"
,
"iframe"
,
"loading"
,
"tips"
]},
r
=
{
v
:
"3.0.3"
,
ie
:
function
(){
var
t
=
navigator
.
userAgent
.
toLowerCase
();
return
!!
(
e
.
ActiveXObject
||
"ActiveXObject"
in
e
)
&&
((
t
.
match
(
/msie
\s(\d
+
)
/
)
||
[])[
1
]
||
"11"
)}(),
index
:
e
.
layer
&&
e
.
layer
.
v
?
1
e5
:
0
,
path
:
o
.
getPath
,
config
:
function
(
e
,
t
){
return
e
=
e
||
{},
r
.
cache
=
o
.
config
=
i
.
extend
({},
o
.
config
,
e
),
r
.
path
=
o
.
config
.
path
||
r
.
path
,
"string"
==
typeof
e
.
extend
&&
(
e
.
extend
=
[
e
.
extend
]),
o
.
config
.
path
&&
r
.
ready
(),
e
.
extend
?(
a
?
layui
.
addcss
(
"modules/layer/"
+
e
.
extend
):
r
.
link
(
"skin/"
+
e
.
extend
),
this
):
this
},
link
:
function
(
t
,
n
,
a
){
if
(
r
.
path
){
var
o
=
i
(
"head"
)[
0
],
s
=
document
.
createElement
(
"link"
);
"string"
==
typeof
n
&&
(
a
=
n
);
var
l
=
(
a
||
t
).
replace
(
/
\.
|
\/
/g
,
""
),
f
=
"layuicss-"
+
l
,
c
=
0
;
s
.
rel
=
"stylesheet"
,
s
.
href
=
r
.
path
+
t
,
s
.
id
=
f
,
i
(
"#"
+
f
)[
0
]
||
o
.
appendChild
(
s
),
"function"
==
typeof
n
&&!
function
u
(){
return
++
c
>
80
?
e
.
console
&&
console
.
error
(
"layer.css: Invalid"
):
void
(
1989
===
parseInt
(
i
(
"#"
+
f
).
css
(
"width"
))?
n
():
setTimeout
(
u
,
100
))}()}},
ready
:
function
(
e
){
var
t
=
"skinlayercss"
,
i
=
"303"
;
return
a
?
layui
.
addcss
(
"modules/layer/default/layer.css?v="
+
r
.
v
+
i
,
e
,
t
):
r
.
link
(
"skin/default/layer.css?v="
+
r
.
v
+
i
,
e
,
t
),
this
},
alert
:
function
(
e
,
t
,
n
){
var
a
=
"function"
==
typeof
t
;
return
a
&&
(
n
=
t
),
r
.
open
(
i
.
extend
({
content
:
e
,
yes
:
n
},
a
?{}:
t
))},
confirm
:
function
(
e
,
t
,
n
,
a
){
var
s
=
"function"
==
typeof
t
;
return
s
&&
(
a
=
n
,
n
=
t
),
r
.
open
(
i
.
extend
({
content
:
e
,
btn
:
o
.
btn
,
yes
:
n
,
btn2
:
a
},
s
?{}:
t
))},
msg
:
function
(
e
,
n
,
a
){
var
s
=
"function"
==
typeof
n
,
f
=
o
.
config
.
skin
,
c
=
(
f
?
f
+
" "
+
f
+
"-msg"
:
""
)
||
"layui-layer-msg"
,
u
=
l
.
anim
.
length
-
1
;
return
s
&&
(
a
=
n
),
r
.
open
(
i
.
extend
({
content
:
e
,
time
:
3
e3
,
shade
:
!
1
,
skin
:
c
,
title
:
!
1
,
closeBtn
:
!
1
,
btn
:
!
1
,
resize
:
!
1
,
end
:
a
},
s
&&!
o
.
config
.
skin
?{
skin
:
c
+
" layui-layer-hui"
,
anim
:
u
}:
function
(){
return
n
=
n
||
{},(
n
.
icon
===-
1
||
n
.
icon
===
t
&&!
o
.
config
.
skin
)
&&
(
n
.
skin
=
c
+
" "
+
(
n
.
skin
||
"layui-layer-hui"
)),
n
}()))},
load
:
function
(
e
,
t
){
return
r
.
open
(
i
.
extend
({
type
:
3
,
icon
:
e
||
0
,
resize
:
!
1
,
shade
:.
01
},
t
))},
tips
:
function
(
e
,
t
,
n
){
return
r
.
open
(
i
.
extend
({
type
:
4
,
content
:[
e
,
t
],
closeBtn
:
!
1
,
time
:
3
e3
,
shade
:
!
1
,
resize
:
!
1
,
fixed
:
!
1
,
maxWidth
:
210
},
n
))}},
s
=
function
(
e
){
var
t
=
this
;
t
.
index
=++
r
.
index
,
t
.
config
=
i
.
extend
({},
t
.
config
,
o
.
config
,
e
),
document
.
body
?
t
.
creat
():
setTimeout
(
function
(){
t
.
creat
()},
30
)};
s
.
pt
=
s
.
prototype
;
var
l
=
[
"layui-layer"
,
".layui-layer-title"
,
".layui-layer-main"
,
".layui-layer-dialog"
,
"layui-layer-iframe"
,
"layui-layer-content"
,
"layui-layer-btn"
,
"layui-layer-close"
];
l
.
anim
=
[
"layer-anim"
,
"layer-anim-01"
,
"layer-anim-02"
,
"layer-anim-03"
,
"layer-anim-04"
,
"layer-anim-05"
,
"layer-anim-06"
],
s
.
pt
.
config
=
{
type
:
0
,
shade
:.
3
,
fixed
:
!
0
,
move
:
l
[
1
],
title
:
"信息"
,
offset
:
"auto"
,
area
:
"auto"
,
closeBtn
:
1
,
time
:
0
,
zIndex
:
19891014
,
maxWidth
:
360
,
anim
:
0
,
isOutAnim
:
!
0
,
icon
:
-
1
,
moveType
:
1
,
resize
:
!
0
,
scrollbar
:
!
0
,
tips
:
2
},
s
.
pt
.
vessel
=
function
(
e
,
t
){
var
n
=
this
,
a
=
n
.
index
,
r
=
n
.
config
,
s
=
r
.
zIndex
+
a
,
f
=
"object"
==
typeof
r
.
title
,
c
=
r
.
maxmin
&&
(
1
===
r
.
type
||
2
===
r
.
type
),
u
=
r
.
title
?
'<div class="layui-layer-title" style="'
+
(
f
?
r
.
title
[
1
]:
""
)
+
'">'
+
(
f
?
r
.
title
[
0
]:
r
.
title
)
+
"</div>"
:
""
;
return
r
.
zIndex
=
s
,
t
([
r
.
shade
?
'<div class="layui-layer-shade" id="layui-layer-shade'
+
a
+
'" times="'
+
a
+
'" style="'
+
(
"z-index:"
+
(
s
-
1
)
+
"; background-color:"
+
(
r
.
shade
[
1
]
||
"#000"
)
+
"; opacity:"
+
(
r
.
shade
[
0
]
||
r
.
shade
)
+
"; filter:alpha(opacity="
+
(
100
*
r
.
shade
[
0
]
||
100
*
r
.
shade
)
+
");"
)
+
'"></div>'
:
""
,
'<div class="'
+
l
[
0
]
+
(
" layui-layer-"
+
o
.
type
[
r
.
type
])
+
(
0
!=
r
.
type
&&
2
!=
r
.
type
||
r
.
shade
?
""
:
" layui-layer-border"
)
+
" "
+
(
r
.
skin
||
""
)
+
'" id="'
+
l
[
0
]
+
a
+
'" type="'
+
o
.
type
[
r
.
type
]
+
'" times="'
+
a
+
'" showtime="'
+
r
.
time
+
'" conType="'
+
(
e
?
"object"
:
"string"
)
+
'" style="z-index: '
+
s
+
"; width:"
+
r
.
area
[
0
]
+
";height:"
+
r
.
area
[
1
]
+
(
r
.
fixed
?
""
:
";position:absolute;"
)
+
'">'
+
(
e
&&
2
!=
r
.
type
?
""
:
u
)
+
'<div id="'
+
(
r
.
id
||
""
)
+
'" class="layui-layer-content'
+
(
0
==
r
.
type
&&
r
.
icon
!==-
1
?
" layui-layer-padding"
:
""
)
+
(
3
==
r
.
type
?
" layui-layer-loading"
+
r
.
icon
:
""
)
+
'">'
+
(
0
==
r
.
type
&&
r
.
icon
!==-
1
?
'<i class="layui-layer-ico layui-layer-ico'
+
r
.
icon
+
'"></i>'
:
""
)
+
(
1
==
r
.
type
&&
e
?
""
:
r
.
content
||
""
)
+
'</div><span class="layui-layer-setwin">'
+
function
(){
var
e
=
c
?
'<a class="layui-layer-min" href="javascript:;"><cite></cite></a><a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>'
:
""
;
return
r
.
closeBtn
&&
(
e
+=
'<a class="layui-layer-ico '
+
l
[
7
]
+
" "
+
l
[
7
]
+
(
r
.
title
?
r
.
closeBtn
:
4
==
r
.
type
?
"1"
:
"2"
)
+
'" href="javascript:;"></a>'
),
e
}()
+
"</span>"
+
(
r
.
btn
?
function
(){
var
e
=
""
;
"string"
==
typeof
r
.
btn
&&
(
r
.
btn
=
[
r
.
btn
]);
for
(
var
t
=
0
,
i
=
r
.
btn
.
length
;
t
<
i
;
t
++
)
e
+=
'<a class="'
+
l
[
6
]
+
t
+
'">'
+
r
.
btn
[
t
]
+
"</a>"
;
return
'<div class="'
+
l
[
6
]
+
" layui-layer-btn-"
+
(
r
.
btnAlign
||
""
)
+
'">'
+
e
+
"</div>"
}():
""
)
+
(
r
.
resize
?
'<span class="layui-layer-resize"></span>'
:
""
)
+
"</div>"
],
u
,
i
(
'<div class="layui-layer-move"></div>'
)),
n
},
s
.
pt
.
creat
=
function
(){
var
e
=
this
,
t
=
e
.
config
,
a
=
e
.
index
,
s
=
t
.
content
,
f
=
"object"
==
typeof
s
,
c
=
i
(
"body"
);
if
(
!
t
.
id
||!
i
(
"#"
+
t
.
id
)[
0
]){
switch
(
"string"
==
typeof
t
.
area
&&
(
t
.
area
=
"auto"
===
t
.
area
?[
""
,
""
]:[
t
.
area
,
""
]),
t
.
shift
&&
(
t
.
anim
=
t
.
shift
),
6
==
r
.
ie
&&
(
t
.
fixed
=!
1
),
t
.
type
){
case
0
:
t
.
btn
=
"btn"
in
t
?
t
.
btn
:
o
.
btn
[
0
],
r
.
closeAll
(
"dialog"
);
break
;
case
2
:
var
s
=
t
.
content
=
f
?
t
.
content
:[
t
.
content
,
"auto"
];
t
.
content
=
'<iframe scrolling="'
+
(
t
.
content
[
1
]
||
"auto"
)
+
'" allowtransparency="true" id="'
+
l
[
4
]
+
a
+
'" name="'
+
l
[
4
]
+
a
+
'" onload="this.className=
\'\'
;" class="layui-layer-load" frameborder="0" src="'
+
t
.
content
[
0
]
+
'"></iframe>'
;
break
;
case
3
:
delete
t
.
title
,
delete
t
.
closeBtn
,
t
.
icon
===-
1
&&
0
===
t
.
icon
,
r
.
closeAll
(
"loading"
);
break
;
case
4
:
f
||
(
t
.
content
=
[
t
.
content
,
"body"
]),
t
.
follow
=
t
.
content
[
1
],
t
.
content
=
t
.
content
[
0
]
+
'<i class="layui-layer-TipsG"></i>'
,
delete
t
.
title
,
t
.
tips
=
"object"
==
typeof
t
.
tips
?
t
.
tips
:[
t
.
tips
,
!
0
],
t
.
tipsMore
||
r
.
closeAll
(
"tips"
)}
e
.
vessel
(
f
,
function
(
n
,
r
,
u
){
c
.
append
(
n
[
0
]),
f
?
function
(){
2
==
t
.
type
||
4
==
t
.
type
?
function
(){
i
(
"body"
).
append
(
n
[
1
])}():
function
(){
s
.
parents
(
"."
+
l
[
0
])[
0
]
||
(
s
.
data
(
"display"
,
s
.
css
(
"display"
)).
show
().
addClass
(
"layui-layer-wrap"
).
wrap
(
n
[
1
]),
i
(
"#"
+
l
[
0
]
+
a
).
find
(
"."
+
l
[
5
]).
before
(
r
))}()}():
c
.
append
(
n
[
1
]),
i
(
".layui-layer-move"
)[
0
]
||
c
.
append
(
o
.
moveElem
=
u
),
e
.
layero
=
i
(
"#"
+
l
[
0
]
+
a
),
t
.
scrollbar
||
l
.
html
.
css
(
"overflow"
,
"hidden"
).
attr
(
"layer-full"
,
a
)}).
auto
(
a
),
2
==
t
.
type
&&
6
==
r
.
ie
&&
e
.
layero
.
find
(
"iframe"
).
attr
(
"src"
,
s
[
0
]),
4
==
t
.
type
?
e
.
tips
():
e
.
offset
(),
t
.
fixed
&&
n
.
on
(
"resize"
,
function
(){
e
.
offset
(),(
/^
\d
+%$/
.
test
(
t
.
area
[
0
])
||
/^
\d
+%$/
.
test
(
t
.
area
[
1
]))
&&
e
.
auto
(
a
),
4
==
t
.
type
&&
e
.
tips
()}),
t
.
time
<=
0
||
setTimeout
(
function
(){
r
.
close
(
e
.
index
)},
t
.
time
),
e
.
move
().
callback
(),
l
.
anim
[
t
.
anim
]
&&
e
.
layero
.
addClass
(
l
.
anim
[
t
.
anim
]),
t
.
isOutAnim
&&
e
.
layero
.
data
(
"isOutAnim"
,
!
0
)}},
s
.
pt
.
auto
=
function
(
e
){
function
t
(
e
){
e
=
s
.
find
(
e
),
e
.
height
(
f
[
1
]
-
c
-
u
-
2
*
(
0
|
parseFloat
(
e
.
css
(
"padding-top"
))))}
var
a
=
this
,
o
=
a
.
config
,
s
=
i
(
"#"
+
l
[
0
]
+
e
);
""
===
o
.
area
[
0
]
&&
o
.
maxWidth
>
0
&&
(
r
.
ie
&&
r
.
ie
<
8
&&
o
.
btn
&&
s
.
width
(
s
.
innerWidth
()),
s
.
outerWidth
()
>
o
.
maxWidth
&&
s
.
width
(
o
.
maxWidth
));
var
f
=
[
s
.
innerWidth
(),
s
.
innerHeight
()],
c
=
s
.
find
(
l
[
1
]).
outerHeight
()
||
0
,
u
=
s
.
find
(
"."
+
l
[
6
]).
outerHeight
()
||
0
;
switch
(
o
.
type
){
case
2
:
t
(
"iframe"
);
break
;
default
:
""
===
o
.
area
[
1
]?
o
.
fixed
&&
f
[
1
]
>=
n
.
height
()
&&
(
f
[
1
]
=
n
.
height
(),
t
(
"."
+
l
[
5
])):
t
(
"."
+
l
[
5
])}
return
a
},
s
.
pt
.
offset
=
function
(){
var
e
=
this
,
t
=
e
.
config
,
i
=
e
.
layero
,
a
=
[
i
.
outerWidth
(),
i
.
outerHeight
()],
o
=
"object"
==
typeof
t
.
offset
;
e
.
offsetTop
=
(
n
.
height
()
-
a
[
1
])
/
2
,
e
.
offsetLeft
=
(
n
.
width
()
-
a
[
0
])
/
2
,
o
?(
e
.
offsetTop
=
t
.
offset
[
0
],
e
.
offsetLeft
=
t
.
offset
[
1
]
||
e
.
offsetLeft
):
"auto"
!==
t
.
offset
&&
(
"t"
===
t
.
offset
?
e
.
offsetTop
=
0
:
"r"
===
t
.
offset
?
e
.
offsetLeft
=
n
.
width
()
-
a
[
0
]:
"b"
===
t
.
offset
?
e
.
offsetTop
=
n
.
height
()
-
a
[
1
]:
"l"
===
t
.
offset
?
e
.
offsetLeft
=
0
:
"lt"
===
t
.
offset
?(
e
.
offsetTop
=
0
,
e
.
offsetLeft
=
0
):
"lb"
===
t
.
offset
?(
e
.
offsetTop
=
n
.
height
()
-
a
[
1
],
e
.
offsetLeft
=
0
):
"rt"
===
t
.
offset
?(
e
.
offsetTop
=
0
,
e
.
offsetLeft
=
n
.
width
()
-
a
[
0
]):
"rb"
===
t
.
offset
?(
e
.
offsetTop
=
n
.
height
()
-
a
[
1
],
e
.
offsetLeft
=
n
.
width
()
-
a
[
0
]):
e
.
offsetTop
=
t
.
offset
),
t
.
fixed
||
(
e
.
offsetTop
=
/%$/
.
test
(
e
.
offsetTop
)?
n
.
height
()
*
parseFloat
(
e
.
offsetTop
)
/
100
:
parseFloat
(
e
.
offsetTop
),
e
.
offsetLeft
=
/%$/
.
test
(
e
.
offsetLeft
)?
n
.
width
()
*
parseFloat
(
e
.
offsetLeft
)
/
100
:
parseFloat
(
e
.
offsetLeft
),
e
.
offsetTop
+=
n
.
scrollTop
(),
e
.
offsetLeft
+=
n
.
scrollLeft
()),
i
.
attr
(
"minLeft"
)
&&
(
e
.
offsetTop
=
n
.
height
()
-
(
i
.
find
(
l
[
1
]).
outerHeight
()
||
0
),
e
.
offsetLeft
=
i
.
css
(
"left"
)),
i
.
css
({
top
:
e
.
offsetTop
,
left
:
e
.
offsetLeft
})},
s
.
pt
.
tips
=
function
(){
var
e
=
this
,
t
=
e
.
config
,
a
=
e
.
layero
,
o
=
[
a
.
outerWidth
(),
a
.
outerHeight
()],
r
=
i
(
t
.
follow
);
r
[
0
]
||
(
r
=
i
(
"body"
));
var
s
=
{
width
:
r
.
outerWidth
(),
height
:
r
.
outerHeight
(),
top
:
r
.
offset
().
top
,
left
:
r
.
offset
().
left
},
f
=
a
.
find
(
".layui-layer-TipsG"
),
c
=
t
.
tips
[
0
];
t
.
tips
[
1
]
||
f
.
remove
(),
s
.
autoLeft
=
function
(){
s
.
left
+
o
[
0
]
-
n
.
width
()
>
0
?(
s
.
tipLeft
=
s
.
left
+
s
.
width
-
o
[
0
],
f
.
css
({
right
:
12
,
left
:
"auto"
})):
s
.
tipLeft
=
s
.
left
},
s
.
where
=
[
function
(){
s
.
autoLeft
(),
s
.
tipTop
=
s
.
top
-
o
[
1
]
-
10
,
f
.
removeClass
(
"layui-layer-TipsB"
).
addClass
(
"layui-layer-TipsT"
).
css
(
"border-right-color"
,
t
.
tips
[
1
])},
function
(){
s
.
tipLeft
=
s
.
left
+
s
.
width
+
10
,
s
.
tipTop
=
s
.
top
,
f
.
removeClass
(
"layui-layer-TipsL"
).
addClass
(
"layui-layer-TipsR"
).
css
(
"border-bottom-color"
,
t
.
tips
[
1
])},
function
(){
s
.
autoLeft
(),
s
.
tipTop
=
s
.
top
+
s
.
height
+
10
,
f
.
removeClass
(
"layui-layer-TipsT"
).
addClass
(
"layui-layer-TipsB"
).
css
(
"border-right-color"
,
t
.
tips
[
1
])},
function
(){
s
.
tipLeft
=
s
.
left
-
o
[
0
]
-
10
,
s
.
tipTop
=
s
.
top
,
f
.
removeClass
(
"layui-layer-TipsR"
).
addClass
(
"layui-layer-TipsL"
).
css
(
"border-bottom-color"
,
t
.
tips
[
1
])}],
s
.
where
[
c
-
1
](),
1
===
c
?
s
.
top
-
(
n
.
scrollTop
()
+
o
[
1
]
+
16
)
<
0
&&
s
.
where
[
2
]():
2
===
c
?
n
.
width
()
-
(
s
.
left
+
s
.
width
+
o
[
0
]
+
16
)
>
0
||
s
.
where
[
3
]():
3
===
c
?
s
.
top
-
n
.
scrollTop
()
+
s
.
height
+
o
[
1
]
+
16
-
n
.
height
()
>
0
&&
s
.
where
[
0
]():
4
===
c
&&
o
[
0
]
+
16
-
s
.
left
>
0
&&
s
.
where
[
1
](),
a
.
find
(
"."
+
l
[
5
]).
css
({
"background-color"
:
t
.
tips
[
1
],
"padding-right"
:
t
.
closeBtn
?
"30px"
:
""
}),
a
.
css
({
left
:
s
.
tipLeft
-
(
t
.
fixed
?
n
.
scrollLeft
():
0
),
top
:
s
.
tipTop
-
(
t
.
fixed
?
n
.
scrollTop
():
0
)})},
s
.
pt
.
move
=
function
(){
var
e
=
this
,
t
=
e
.
config
,
a
=
i
(
document
),
s
=
e
.
layero
,
l
=
s
.
find
(
t
.
move
),
f
=
s
.
find
(
".layui-layer-resize"
),
c
=
{};
return
t
.
move
&&
l
.
css
(
"cursor"
,
"move"
),
l
.
on
(
"mousedown"
,
function
(
e
){
e
.
preventDefault
(),
t
.
move
&&
(
c
.
moveStart
=!
0
,
c
.
offset
=
[
e
.
clientX
-
parseFloat
(
s
.
css
(
"left"
)),
e
.
clientY
-
parseFloat
(
s
.
css
(
"top"
))],
o
.
moveElem
.
css
(
"cursor"
,
"move"
).
show
())}),
f
.
on
(
"mousedown"
,
function
(
e
){
e
.
preventDefault
(),
c
.
resizeStart
=!
0
,
c
.
offset
=
[
e
.
clientX
,
e
.
clientY
],
c
.
area
=
[
s
.
outerWidth
(),
s
.
outerHeight
()],
o
.
moveElem
.
css
(
"cursor"
,
"se-resize"
).
show
()}),
a
.
on
(
"mousemove"
,
function
(
i
){
if
(
c
.
moveStart
){
var
a
=
i
.
clientX
-
c
.
offset
[
0
],
o
=
i
.
clientY
-
c
.
offset
[
1
],
l
=
"fixed"
===
s
.
css
(
"position"
);
if
(
i
.
preventDefault
(),
c
.
stX
=
l
?
0
:
n
.
scrollLeft
(),
c
.
stY
=
l
?
0
:
n
.
scrollTop
(),
!
t
.
moveOut
){
var
f
=
n
.
width
()
-
s
.
outerWidth
()
+
c
.
stX
,
u
=
n
.
height
()
-
s
.
outerHeight
()
+
c
.
stY
;
a
<
c
.
stX
&&
(
a
=
c
.
stX
),
a
>
f
&&
(
a
=
f
),
o
<
c
.
stY
&&
(
o
=
c
.
stY
),
o
>
u
&&
(
o
=
u
)}
s
.
css
({
left
:
a
,
top
:
o
})}
if
(
t
.
resize
&&
c
.
resizeStart
){
var
a
=
i
.
clientX
-
c
.
offset
[
0
],
o
=
i
.
clientY
-
c
.
offset
[
1
];
i
.
preventDefault
(),
r
.
style
(
e
.
index
,{
width
:
c
.
area
[
0
]
+
a
,
height
:
c
.
area
[
1
]
+
o
}),
c
.
isResize
=!
0
,
t
.
resizing
&&
t
.
resizing
(
s
)}}).
on
(
"mouseup"
,
function
(
e
){
c
.
moveStart
&&
(
delete
c
.
moveStart
,
o
.
moveElem
.
hide
(),
t
.
moveEnd
&&
t
.
moveEnd
(
s
)),
c
.
resizeStart
&&
(
delete
c
.
resizeStart
,
o
.
moveElem
.
hide
())}),
e
},
s
.
pt
.
callback
=
function
(){
function
e
(){
var
e
=
a
.
cancel
&&
a
.
cancel
(
t
.
index
,
n
);
e
===!
1
||
r
.
close
(
t
.
index
)}
var
t
=
this
,
n
=
t
.
layero
,
a
=
t
.
config
;
t
.
openLayer
(),
a
.
success
&&
(
2
==
a
.
type
?
n
.
find
(
"iframe"
).
on
(
"load"
,
function
(){
a
.
success
(
n
,
t
.
index
)}):
a
.
success
(
n
,
t
.
index
)),
6
==
r
.
ie
&&
t
.
IE6
(
n
),
n
.
find
(
"."
+
l
[
6
]).
children
(
"a"
).
on
(
"click"
,
function
(){
var
e
=
i
(
this
).
index
();
if
(
0
===
e
)
a
.
yes
?
a
.
yes
(
t
.
index
,
n
):
a
.
btn1
?
a
.
btn1
(
t
.
index
,
n
):
r
.
close
(
t
.
index
);
else
{
var
o
=
a
[
"btn"
+
(
e
+
1
)]
&&
a
[
"btn"
+
(
e
+
1
)](
t
.
index
,
n
);
o
===!
1
||
r
.
close
(
t
.
index
)}}),
n
.
find
(
"."
+
l
[
7
]).
on
(
"click"
,
e
),
a
.
shadeClose
&&
i
(
"#layui-layer-shade"
+
t
.
index
).
on
(
"click"
,
function
(){
r
.
close
(
t
.
index
)}),
n
.
find
(
".layui-layer-min"
).
on
(
"click"
,
function
(){
var
e
=
a
.
min
&&
a
.
min
(
n
);
e
===!
1
||
r
.
min
(
t
.
index
,
a
)}),
n
.
find
(
".layui-layer-max"
).
on
(
"click"
,
function
(){
i
(
this
).
hasClass
(
"layui-layer-maxmin"
)?(
r
.
restore
(
t
.
index
),
a
.
restore
&&
a
.
restore
(
n
)):(
r
.
full
(
t
.
index
,
a
),
setTimeout
(
function
(){
a
.
full
&&
a
.
full
(
n
)},
100
))}),
a
.
end
&&
(
o
.
end
[
t
.
index
]
=
a
.
end
)},
o
.
reselect
=
function
(){
i
.
each
(
i
(
"select"
),
function
(
e
,
t
){
var
n
=
i
(
this
);
n
.
parents
(
"."
+
l
[
0
])[
0
]
||
1
==
n
.
attr
(
"layer"
)
&&
i
(
"."
+
l
[
0
]).
length
<
1
&&
n
.
removeAttr
(
"layer"
).
show
(),
n
=
null
})},
s
.
pt
.
IE6
=
function
(
e
){
i
(
"select"
).
each
(
function
(
e
,
t
){
var
n
=
i
(
this
);
n
.
parents
(
"."
+
l
[
0
])[
0
]
||
"none"
===
n
.
css
(
"display"
)
||
n
.
attr
({
layer
:
"1"
}).
hide
(),
n
=
null
})},
s
.
pt
.
openLayer
=
function
(){
var
e
=
this
;
r
.
zIndex
=
e
.
config
.
zIndex
,
r
.
setTop
=
function
(
e
){
var
t
=
function
(){
r
.
zIndex
++
,
e
.
css
(
"z-index"
,
r
.
zIndex
+
1
)};
return
r
.
zIndex
=
parseInt
(
e
[
0
].
style
.
zIndex
),
e
.
on
(
"mousedown"
,
t
),
r
.
zIndex
}},
o
.
record
=
function
(
e
){
var
t
=
[
e
.
width
(),
e
.
height
(),
e
.
position
().
top
,
e
.
position
().
left
+
parseFloat
(
e
.
css
(
"margin-left"
))];
e
.
find
(
".layui-layer-max"
).
addClass
(
"layui-layer-maxmin"
),
e
.
attr
({
area
:
t
})},
o
.
rescollbar
=
function
(
e
){
l
.
html
.
attr
(
"layer-full"
)
==
e
&&
(
l
.
html
[
0
].
style
.
removeProperty
?
l
.
html
[
0
].
style
.
removeProperty
(
"overflow"
):
l
.
html
[
0
].
style
.
removeAttribute
(
"overflow"
),
l
.
html
.
removeAttr
(
"layer-full"
))},
e
.
layer
=
r
,
r
.
getChildFrame
=
function
(
e
,
t
){
return
t
=
t
||
i
(
"."
+
l
[
4
]).
attr
(
"times"
),
i
(
"#"
+
l
[
0
]
+
t
).
find
(
"iframe"
).
contents
().
find
(
e
)},
r
.
getFrameIndex
=
function
(
e
){
return
i
(
"#"
+
e
).
parents
(
"."
+
l
[
4
]).
attr
(
"times"
)},
r
.
iframeAuto
=
function
(
e
){
if
(
e
){
var
t
=
r
.
getChildFrame
(
"html"
,
e
).
outerHeight
(),
n
=
i
(
"#"
+
l
[
0
]
+
e
),
a
=
n
.
find
(
l
[
1
]).
outerHeight
()
||
0
,
o
=
n
.
find
(
"."
+
l
[
6
]).
outerHeight
()
||
0
;
n
.
css
({
height
:
t
+
a
+
o
}),
n
.
find
(
"iframe"
).
css
({
height
:
t
})}},
r
.
iframeSrc
=
function
(
e
,
t
){
i
(
"#"
+
l
[
0
]
+
e
).
find
(
"iframe"
).
attr
(
"src"
,
t
)},
r
.
style
=
function
(
e
,
t
,
n
){
var
a
=
i
(
"#"
+
l
[
0
]
+
e
),
r
=
a
.
find
(
".layui-layer-content"
),
s
=
a
.
attr
(
"type"
),
f
=
a
.
find
(
l
[
1
]).
outerHeight
()
||
0
,
c
=
a
.
find
(
"."
+
l
[
6
]).
outerHeight
()
||
0
;
a
.
attr
(
"minLeft"
);
s
!==
o
.
type
[
3
]
&&
s
!==
o
.
type
[
4
]
&&
(
n
||
(
parseFloat
(
t
.
width
)
<=
260
&&
(
t
.
width
=
260
),
parseFloat
(
t
.
height
)
-
f
-
c
<=
64
&&
(
t
.
height
=
64
+
f
+
c
)),
a
.
css
(
t
),
c
=
a
.
find
(
"."
+
l
[
6
]).
outerHeight
(),
s
===
o
.
type
[
2
]?
a
.
find
(
"iframe"
).
css
({
height
:
parseFloat
(
t
.
height
)
-
f
-
c
}):
r
.
css
({
height
:
parseFloat
(
t
.
height
)
-
f
-
c
-
parseFloat
(
r
.
css
(
"padding-top"
))
-
parseFloat
(
r
.
css
(
"padding-bottom"
))}))},
r
.
min
=
function
(
e
,
t
){
var
a
=
i
(
"#"
+
l
[
0
]
+
e
),
s
=
a
.
find
(
l
[
1
]).
outerHeight
()
||
0
,
f
=
a
.
attr
(
"minLeft"
)
||
181
*
o
.
minIndex
+
"px"
,
c
=
a
.
css
(
"position"
);
o
.
record
(
a
),
o
.
minLeft
[
0
]
&&
(
f
=
o
.
minLeft
[
0
],
o
.
minLeft
.
shift
()),
a
.
attr
(
"position"
,
c
),
r
.
style
(
e
,{
width
:
180
,
height
:
s
,
left
:
f
,
top
:
n
.
height
()
-
s
,
position
:
"fixed"
,
overflow
:
"hidden"
},
!
0
),
a
.
find
(
".layui-layer-min"
).
hide
(),
"page"
===
a
.
attr
(
"type"
)
&&
a
.
find
(
l
[
4
]).
hide
(),
o
.
rescollbar
(
e
),
a
.
attr
(
"minLeft"
)
||
o
.
minIndex
++
,
a
.
attr
(
"minLeft"
,
f
)},
r
.
restore
=
function
(
e
){
var
t
=
i
(
"#"
+
l
[
0
]
+
e
),
n
=
t
.
attr
(
"area"
).
split
(
","
);
t
.
attr
(
"type"
);
r
.
style
(
e
,{
width
:
parseFloat
(
n
[
0
]),
height
:
parseFloat
(
n
[
1
]),
top
:
parseFloat
(
n
[
2
]),
left
:
parseFloat
(
n
[
3
]),
position
:
t
.
attr
(
"position"
),
overflow
:
"visible"
},
!
0
),
t
.
find
(
".layui-layer-max"
).
removeClass
(
"layui-layer-maxmin"
),
t
.
find
(
".layui-layer-min"
).
show
(),
"page"
===
t
.
attr
(
"type"
)
&&
t
.
find
(
l
[
4
]).
show
(),
o
.
rescollbar
(
e
)},
r
.
full
=
function
(
e
){
var
t
,
a
=
i
(
"#"
+
l
[
0
]
+
e
);
o
.
record
(
a
),
l
.
html
.
attr
(
"layer-full"
)
||
l
.
html
.
css
(
"overflow"
,
"hidden"
).
attr
(
"layer-full"
,
e
),
clearTimeout
(
t
),
t
=
setTimeout
(
function
(){
var
t
=
"fixed"
===
a
.
css
(
"position"
);
r
.
style
(
e
,{
top
:
t
?
0
:
n
.
scrollTop
(),
left
:
t
?
0
:
n
.
scrollLeft
(),
width
:
n
.
width
(),
height
:
n
.
height
()},
!
0
),
a
.
find
(
".layui-layer-min"
).
hide
()},
100
)},
r
.
title
=
function
(
e
,
t
){
var
n
=
i
(
"#"
+
l
[
0
]
+
(
t
||
r
.
index
)).
find
(
l
[
1
]);
n
.
html
(
e
)},
r
.
close
=
function
(
e
){
var
t
=
i
(
"#"
+
l
[
0
]
+
e
),
n
=
t
.
attr
(
"type"
),
a
=
"layer-anim-close"
;
if
(
t
[
0
]){
var
s
=
"layui-layer-wrap"
,
f
=
function
(){
if
(
n
===
o
.
type
[
1
]
&&
"object"
===
t
.
attr
(
"conType"
)){
t
.
children
(
":not(."
+
l
[
5
]
+
")"
).
remove
();
for
(
var
a
=
t
.
find
(
"."
+
s
),
r
=
0
;
r
<
2
;
r
++
)
a
.
unwrap
();
a
.
css
(
"display"
,
a
.
data
(
"display"
)).
removeClass
(
s
)}
else
{
if
(
n
===
o
.
type
[
2
])
try
{
var
f
=
i
(
"#"
+
l
[
4
]
+
e
)[
0
];
f
.
contentWindow
.
document
.
write
(
""
),
f
.
contentWindow
.
close
(),
t
.
find
(
"."
+
l
[
5
])[
0
].
removeChild
(
f
)}
catch
(
c
){}
t
[
0
].
innerHTML
=
""
,
t
.
remove
()}
"function"
==
typeof
o
.
end
[
e
]
&&
o
.
end
[
e
](),
delete
o
.
end
[
e
]};
t
.
data
(
"isOutAnim"
)
&&
t
.
addClass
(
a
),
i
(
"#layui-layer-moves, #layui-layer-shade"
+
e
).
remove
(),
6
==
r
.
ie
&&
o
.
reselect
(),
o
.
rescollbar
(
e
),
t
.
attr
(
"minLeft"
)
&&
(
o
.
minIndex
--
,
o
.
minLeft
.
push
(
t
.
attr
(
"minLeft"
))),
r
.
ie
&&
r
.
ie
<
10
||!
t
.
data
(
"isOutAnim"
)?
f
():
setTimeout
(
function
(){
f
()},
200
)}},
r
.
closeAll
=
function
(
e
){
i
.
each
(
i
(
"."
+
l
[
0
]),
function
(){
var
t
=
i
(
this
),
n
=
e
?
t
.
attr
(
"type"
)
===
e
:
1
;
n
&&
r
.
close
(
t
.
attr
(
"times"
)),
n
=
null
})};
var
f
=
r
.
cache
||
{},
c
=
function
(
e
){
return
f
.
skin
?
" "
+
f
.
skin
+
" "
+
f
.
skin
+
"-"
+
e
:
""
};
r
.
prompt
=
function
(
e
,
t
){
var
a
=
""
;
if
(
e
=
e
||
{},
"function"
==
typeof
e
&&
(
t
=
e
),
e
.
area
){
var
o
=
e
.
area
;
a
=
'style="width: '
+
o
[
0
]
+
"; height: "
+
o
[
1
]
+
';"'
,
delete
e
.
area
}
var
s
,
l
=
2
==
e
.
formType
?
'<textarea class="layui-layer-input"'
+
a
+
">"
+
(
e
.
value
||
""
)
+
"</textarea>"
:
function
(){
return
'<input type="'
+
(
1
==
e
.
formType
?
"password"
:
"text"
)
+
'" class="layui-layer-input" value="'
+
(
e
.
value
||
""
)
+
'">'
}(),
f
=
e
.
success
;
return
delete
e
.
success
,
r
.
open
(
i
.
extend
({
type
:
1
,
btn
:[
"确定"
,
"取消"
],
content
:
l
,
skin
:
"layui-layer-prompt"
+
c
(
"prompt"
),
maxWidth
:
n
.
width
(),
success
:
function
(
e
){
s
=
e
.
find
(
".layui-layer-input"
),
s
.
focus
(),
"function"
==
typeof
f
&&
f
(
e
)},
resize
:
!
1
,
yes
:
function
(
i
){
var
n
=
s
.
val
();
""
===
n
?
s
.
focus
():
n
.
length
>
(
e
.
maxlength
||
500
)?
r
.
tips
(
"最多输入"
+
(
e
.
maxlength
||
500
)
+
"个字数"
,
s
,{
tips
:
1
}):
t
&&
t
(
n
,
i
,
s
)}},
e
))},
r
.
tab
=
function
(
e
){
e
=
e
||
{};
var
t
=
e
.
tab
||
{},
n
=
e
.
success
;
return
delete
e
.
success
,
r
.
open
(
i
.
extend
({
type
:
1
,
skin
:
"layui-layer-tab"
+
c
(
"tab"
),
resize
:
!
1
,
title
:
function
(){
var
e
=
t
.
length
,
i
=
1
,
n
=
""
;
if
(
e
>
0
)
for
(
n
=
'<span class="layui-layer-tabnow">'
+
t
[
0
].
title
+
"</span>"
;
i
<
e
;
i
++
)
n
+=
"<span>"
+
t
[
i
].
title
+
"</span>"
;
return
n
}(),
content
:
'<ul class="layui-layer-tabmain">'
+
function
(){
var
e
=
t
.
length
,
i
=
1
,
n
=
""
;
if
(
e
>
0
)
for
(
n
=
'<li class="layui-layer-tabli xubox_tab_layer">'
+
(
t
[
0
].
content
||
"no content"
)
+
"</li>"
;
i
<
e
;
i
++
)
n
+=
'<li class="layui-layer-tabli">'
+
(
t
[
i
].
content
||
"no content"
)
+
"</li>"
;
return
n
}()
+
"</ul>"
,
success
:
function
(
t
){
var
a
=
t
.
find
(
".layui-layer-title"
).
children
(),
o
=
t
.
find
(
".layui-layer-tabmain"
).
children
();
a
.
on
(
"mousedown"
,
function
(
t
){
t
.
stopPropagation
?
t
.
stopPropagation
():
t
.
cancelBubble
=!
0
;
var
n
=
i
(
this
),
a
=
n
.
index
();
n
.
addClass
(
"layui-layer-tabnow"
).
siblings
().
removeClass
(
"layui-layer-tabnow"
),
o
.
eq
(
a
).
show
().
siblings
().
hide
(),
"function"
==
typeof
e
.
change
&&
e
.
change
(
a
)}),
"function"
==
typeof
n
&&
n
(
t
)}},
e
))},
r
.
photos
=
function
(
t
,
n
,
a
){
function
o
(
e
,
t
,
i
){
var
n
=
new
Image
;
return
n
.
src
=
e
,
n
.
complete
?
t
(
n
):(
n
.
onload
=
function
(){
n
.
onload
=
null
,
t
(
n
)},
void
(
n
.
onerror
=
function
(
e
){
n
.
onerror
=
null
,
i
(
e
)}))}
var
s
=
{};
if
(
t
=
t
||
{},
t
.
photos
){
var
l
=
t
.
photos
.
constructor
===
Object
,
f
=
l
?
t
.
photos
:{},
u
=
f
.
data
||
[],
d
=
f
.
start
||
0
;
s
.
imgIndex
=
(
0
|
d
)
+
1
,
t
.
img
=
t
.
img
||
"img"
;
var
y
=
t
.
success
;
if
(
delete
t
.
success
,
l
){
if
(
0
===
u
.
length
)
return
r
.
msg
(
"没有图片"
)}
else
{
var
p
=
i
(
t
.
photos
),
h
=
function
(){
u
=
[],
p
.
find
(
t
.
img
).
each
(
function
(
e
){
var
t
=
i
(
this
);
t
.
attr
(
"layer-index"
,
e
),
u
.
push
({
alt
:
t
.
attr
(
"alt"
),
pid
:
t
.
attr
(
"layer-pid"
),
src
:
t
.
attr
(
"layer-src"
)
||
t
.
attr
(
"src"
),
thumb
:
t
.
attr
(
"src"
)})})};
if
(
h
(),
0
===
u
.
length
)
return
;
if
(
n
||
p
.
on
(
"click"
,
t
.
img
,
function
(){
var
e
=
i
(
this
),
n
=
e
.
attr
(
"layer-index"
);
r
.
photos
(
i
.
extend
(
t
,{
photos
:{
start
:
n
,
data
:
u
,
tab
:
t
.
tab
},
full
:
t
.
full
}),
!
0
),
h
()}),
!
n
)
return
}
s
.
imgprev
=
function
(
e
){
s
.
imgIndex
--
,
s
.
imgIndex
<
1
&&
(
s
.
imgIndex
=
u
.
length
),
s
.
tabimg
(
e
)},
s
.
imgnext
=
function
(
e
,
t
){
s
.
imgIndex
++
,
s
.
imgIndex
>
u
.
length
&&
(
s
.
imgIndex
=
1
,
t
)
||
s
.
tabimg
(
e
)},
s
.
keyup
=
function
(
e
){
if
(
!
s
.
end
){
var
t
=
e
.
keyCode
;
e
.
preventDefault
(),
37
===
t
?
s
.
imgprev
(
!
0
):
39
===
t
?
s
.
imgnext
(
!
0
):
27
===
t
&&
r
.
close
(
s
.
index
)}},
s
.
tabimg
=
function
(
e
){
if
(
!
(
u
.
length
<=
1
))
return
f
.
start
=
s
.
imgIndex
-
1
,
r
.
close
(
s
.
index
),
r
.
photos
(
t
,
!
0
,
e
)},
s
.
event
=
function
(){
s
.
bigimg
.
hover
(
function
(){
s
.
imgsee
.
show
()},
function
(){
s
.
imgsee
.
hide
()}),
s
.
bigimg
.
find
(
".layui-layer-imgprev"
).
on
(
"click"
,
function
(
e
){
e
.
preventDefault
(),
s
.
imgprev
()}),
s
.
bigimg
.
find
(
".layui-layer-imgnext"
).
on
(
"click"
,
function
(
e
){
e
.
preventDefault
(),
s
.
imgnext
()}),
i
(
document
).
on
(
"keyup"
,
s
.
keyup
)},
s
.
loadi
=
r
.
load
(
1
,{
shade
:
!
(
"shade"
in
t
)
&&
.
9
,
scrollbar
:
!
1
}),
o
(
u
[
d
].
src
,
function
(
n
){
r
.
close
(
s
.
loadi
),
s
.
index
=
r
.
open
(
i
.
extend
({
type
:
1
,
id
:
"layui-layer-photos"
,
area
:
function
(){
var
a
=
[
n
.
width
,
n
.
height
],
o
=
[
i
(
e
).
width
()
-
100
,
i
(
e
).
height
()
-
100
];
if
(
!
t
.
full
&&
(
a
[
0
]
>
o
[
0
]
||
a
[
1
]
>
o
[
1
])){
var
r
=
[
a
[
0
]
/
o
[
0
],
a
[
1
]
/
o
[
1
]];
r
[
0
]
>
r
[
1
]?(
a
[
0
]
=
a
[
0
]
/
r
[
0
],
a
[
1
]
=
a
[
1
]
/
r
[
0
]):
r
[
0
]
<
r
[
1
]
&&
(
a
[
0
]
=
a
[
0
]
/
r
[
1
],
a
[
1
]
=
a
[
1
]
/
r
[
1
])}
return
[
a
[
0
]
+
"px"
,
a
[
1
]
+
"px"
]}(),
title
:
!
1
,
shade
:.
9
,
shadeClose
:
!
0
,
closeBtn
:
!
1
,
move
:
".layui-layer-phimg img"
,
moveType
:
1
,
scrollbar
:
!
1
,
moveOut
:
!
0
,
isOutAnim
:
!
1
,
skin
:
"layui-layer-photos"
+
c
(
"photos"
),
content
:
'<div class="layui-layer-phimg"><img src="'
+
u
[
d
].
src
+
'" alt="'
+
(
u
[
d
].
alt
||
""
)
+
'" layer-pid="'
+
u
[
d
].
pid
+
'"><div class="layui-layer-imgsee">'
+
(
u
.
length
>
1
?
'<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>'
:
""
)
+
'<div class="layui-layer-imgbar" style="display:'
+
(
a
?
"block"
:
""
)
+
'"><span class="layui-layer-imgtit"><a href="javascript:;">'
+
(
u
[
d
].
alt
||
""
)
+
"</a><em>"
+
s
.
imgIndex
+
"/"
+
u
.
length
+
"</em></span></div></div></div>"
,
success
:
function
(
e
,
i
){
s
.
bigimg
=
e
.
find
(
".layui-layer-phimg"
),
s
.
imgsee
=
e
.
find
(
".layui-layer-imguide,.layui-layer-imgbar"
),
s
.
event
(
e
),
t
.
tab
&&
t
.
tab
(
u
[
d
],
e
),
"function"
==
typeof
y
&&
y
(
e
)},
end
:
function
(){
s
.
end
=!
0
,
i
(
document
).
off
(
"keyup"
,
s
.
keyup
)}},
t
))},
function
(){
r
.
close
(
s
.
loadi
),
r
.
msg
(
"当前图片地址异常<br>是否继续查看下一张?"
,{
time
:
3
e4
,
btn
:[
"下一张"
,
"不看了"
],
yes
:
function
(){
u
.
length
>
1
&&
s
.
imgnext
(
!
0
,
!
0
)}})})}},
o
.
run
=
function
(
t
){
i
=
t
,
n
=
i
(
e
),
l
.
html
=
i
(
"html"
),
r
.
open
=
function
(
e
){
var
t
=
new
s
(
e
);
return
t
.
index
}},
e
.
layui
&&
layui
.
define
?(
r
.
ready
(),
layui
.
define
(
"jquery"
,
function
(
t
){
r
.
path
=
layui
.
cache
.
dir
,
o
.
run
(
layui
.
jquery
),
e
.
layer
=
r
,
t
(
"layer"
,
r
)})):
"function"
==
typeof
define
&&
define
.
amd
?
define
([
"jquery"
],
function
(){
return
o
.
run
(
e
.
jQuery
),
r
}):
function
(){
o
.
run
(
e
.
jQuery
),
r
.
ready
()}()}(
window
);
\ No newline at end of file
xxl-job-admin/src/main/webapp/static/plugins/layer/mobile/layer.js
0 → 100755
浏览文件 @
00cd63c4
/*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */
;
!
function
(
e
){
"use strict"
;
var
t
=
document
,
n
=
"querySelectorAll"
,
i
=
"getElementsByClassName"
,
a
=
function
(
e
){
return
t
[
n
](
e
)},
s
=
{
type
:
0
,
shade
:
!
0
,
shadeClose
:
!
0
,
fixed
:
!
0
,
anim
:
"scale"
},
l
=
{
extend
:
function
(
e
){
var
t
=
JSON
.
parse
(
JSON
.
stringify
(
s
));
for
(
var
n
in
e
)
t
[
n
]
=
e
[
n
];
return
t
},
timer
:{},
end
:{}};
l
.
touch
=
function
(
e
,
t
){
e
.
addEventListener
(
"click"
,
function
(
e
){
t
.
call
(
this
,
e
)},
!
1
)};
var
r
=
0
,
o
=
[
"layui-m-layer"
],
c
=
function
(
e
){
var
t
=
this
;
t
.
config
=
l
.
extend
(
e
),
t
.
view
()};
c
.
prototype
.
view
=
function
(){
var
e
=
this
,
n
=
e
.
config
,
s
=
t
.
createElement
(
"div"
);
e
.
id
=
s
.
id
=
o
[
0
]
+
r
,
s
.
setAttribute
(
"class"
,
o
[
0
]
+
" "
+
o
[
0
]
+
(
n
.
type
||
0
)),
s
.
setAttribute
(
"index"
,
r
);
var
l
=
function
(){
var
e
=
"object"
==
typeof
n
.
title
;
return
n
.
title
?
'<h3 style="'
+
(
e
?
n
.
title
[
1
]:
""
)
+
'">'
+
(
e
?
n
.
title
[
0
]:
n
.
title
)
+
"</h3>"
:
""
}(),
c
=
function
(){
"string"
==
typeof
n
.
btn
&&
(
n
.
btn
=
[
n
.
btn
]);
var
e
,
t
=
(
n
.
btn
||
[]).
length
;
return
0
!==
t
&&
n
.
btn
?(
e
=
'<span yes type="1">'
+
n
.
btn
[
0
]
+
"</span>"
,
2
===
t
&&
(
e
=
'<span no type="0">'
+
n
.
btn
[
1
]
+
"</span>"
+
e
),
'<div class="layui-m-layerbtn">'
+
e
+
"</div>"
):
""
}();
if
(
n
.
fixed
||
(
n
.
top
=
n
.
hasOwnProperty
(
"top"
)?
n
.
top
:
100
,
n
.
style
=
n
.
style
||
""
,
n
.
style
+=
" top:"
+
(
t
.
body
.
scrollTop
+
n
.
top
)
+
"px"
),
2
===
n
.
type
&&
(
n
.
content
=
'<i></i><i class="layui-m-layerload"></i><i></i><p>'
+
(
n
.
content
||
""
)
+
"</p>"
),
n
.
skin
&&
(
n
.
anim
=
"up"
),
"msg"
===
n
.
skin
&&
(
n
.
shade
=!
1
),
s
.
innerHTML
=
(
n
.
shade
?
"<div "
+
(
"string"
==
typeof
n
.
shade
?
'style="'
+
n
.
shade
+
'"'
:
""
)
+
' class="layui-m-layershade"></div>'
:
""
)
+
'<div class="layui-m-layermain" '
+
(
n
.
fixed
?
""
:
'style="position:static;"'
)
+
'><div class="layui-m-layersection"><div class="layui-m-layerchild '
+
(
n
.
skin
?
"layui-m-layer-"
+
n
.
skin
+
" "
:
""
)
+
(
n
.
className
?
n
.
className
:
""
)
+
" "
+
(
n
.
anim
?
"layui-m-anim-"
+
n
.
anim
:
""
)
+
'" '
+
(
n
.
style
?
'style="'
+
n
.
style
+
'"'
:
""
)
+
">"
+
l
+
'<div class="layui-m-layercont">'
+
n
.
content
+
"</div>"
+
c
+
"</div></div></div>"
,
!
n
.
type
||
2
===
n
.
type
){
var
d
=
t
[
i
](
o
[
0
]
+
n
.
type
),
y
=
d
.
length
;
y
>=
1
&&
layer
.
close
(
d
[
0
].
getAttribute
(
"index"
))}
document
.
body
.
appendChild
(
s
);
var
u
=
e
.
elem
=
a
(
"#"
+
e
.
id
)[
0
];
n
.
success
&&
n
.
success
(
u
),
e
.
index
=
r
++
,
e
.
action
(
n
,
u
)},
c
.
prototype
.
action
=
function
(
e
,
t
){
var
n
=
this
;
e
.
time
&&
(
l
.
timer
[
n
.
index
]
=
setTimeout
(
function
(){
layer
.
close
(
n
.
index
)},
1
e3
*
e
.
time
));
var
a
=
function
(){
var
t
=
this
.
getAttribute
(
"type"
);
0
==
t
?(
e
.
no
&&
e
.
no
(),
layer
.
close
(
n
.
index
)):
e
.
yes
?
e
.
yes
(
n
.
index
):
layer
.
close
(
n
.
index
)};
if
(
e
.
btn
)
for
(
var
s
=
t
[
i
](
"layui-m-layerbtn"
)[
0
].
children
,
r
=
s
.
length
,
o
=
0
;
o
<
r
;
o
++
)
l
.
touch
(
s
[
o
],
a
);
if
(
e
.
shade
&&
e
.
shadeClose
){
var
c
=
t
[
i
](
"layui-m-layershade"
)[
0
];
l
.
touch
(
c
,
function
(){
layer
.
close
(
n
.
index
,
e
.
end
)})}
e
.
end
&&
(
l
.
end
[
n
.
index
]
=
e
.
end
)},
e
.
layer
=
{
v
:
"2.0"
,
index
:
r
,
open
:
function
(
e
){
var
t
=
new
c
(
e
||
{});
return
t
.
index
},
close
:
function
(
e
){
var
n
=
a
(
"#"
+
o
[
0
]
+
e
)[
0
];
n
&&
(
n
.
innerHTML
=
""
,
t
.
body
.
removeChild
(
n
),
clearTimeout
(
l
.
timer
[
e
]),
delete
l
.
timer
[
e
],
"function"
==
typeof
l
.
end
[
e
]
&&
l
.
end
[
e
](),
delete
l
.
end
[
e
])},
closeAll
:
function
(){
for
(
var
e
=
t
[
i
](
o
[
0
]),
n
=
0
,
a
=
e
.
length
;
n
<
a
;
n
++
)
layer
.
close
(
0
|
e
[
0
].
getAttribute
(
"index"
))}},
"function"
==
typeof
define
?
define
(
function
(){
return
layer
}):
function
(){
var
e
=
document
.
scripts
,
n
=
e
[
e
.
length
-
1
],
i
=
n
.
src
,
a
=
i
.
substring
(
0
,
i
.
lastIndexOf
(
"/"
)
+
1
);
n
.
getAttribute
(
"merge"
)
||
document
.
head
.
appendChild
(
function
(){
var
e
=
t
.
createElement
(
"link"
);
return
e
.
href
=
a
+
"need/layer.css?2.0"
,
e
.
type
=
"text/css"
,
e
.
rel
=
"styleSheet"
,
e
.
id
=
"layermcss"
,
e
}())}()}(
window
);
\ No newline at end of file
xxl-job-admin/src/main/webapp/static/plugins/layer/mobile/need/layer.css
0 → 100755
浏览文件 @
00cd63c4
.layui-m-layer
{
position
:
relative
;
z-index
:
19891014
}
.layui-m-layer
*
{
-webkit-box-sizing
:
content-box
;
-moz-box-sizing
:
content-box
;
box-sizing
:
content-box
}
.layui-m-layermain
,
.layui-m-layershade
{
position
:
fixed
;
left
:
0
;
top
:
0
;
width
:
100%
;
height
:
100%
}
.layui-m-layershade
{
background-color
:
rgba
(
0
,
0
,
0
,
.7
);
pointer-events
:
auto
}
.layui-m-layermain
{
display
:
table
;
font-family
:
Helvetica
,
arial
,
sans-serif
;
pointer-events
:
none
}
.layui-m-layermain
.layui-m-layersection
{
display
:
table-cell
;
vertical-align
:
middle
;
text-align
:
center
}
.layui-m-layerchild
{
position
:
relative
;
display
:
inline-block
;
text-align
:
left
;
background-color
:
#fff
;
font-size
:
14px
;
border-radius
:
5px
;
box-shadow
:
0
0
8px
rgba
(
0
,
0
,
0
,
.1
);
pointer-events
:
auto
;
-webkit-overflow-scrolling
:
touch
;
-webkit-animation-fill-mode
:
both
;
animation-fill-mode
:
both
;
-webkit-animation-duration
:
.2s
;
animation-duration
:
.2s
}
@-webkit-keyframes
layui-m-anim-scale
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.5
);
transform
:
scale
(
.5
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
1
);
transform
:
scale
(
1
)}}
@keyframes
layui-m-anim-scale
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.5
);
transform
:
scale
(
.5
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
1
);
transform
:
scale
(
1
)}}
.layui-m-anim-scale
{
animation-name
:
layui-m-anim-scale
;
-webkit-animation-name
:
layui-m-anim-scale
}
@-webkit-keyframes
layui-m-anim-up
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
800px
);
transform
:
translateY
(
800px
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}}
@keyframes
layui-m-anim-up
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
800px
);
transform
:
translateY
(
800px
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}}
.layui-m-anim-up
{
-webkit-animation-name
:
layui-m-anim-up
;
animation-name
:
layui-m-anim-up
}
.layui-m-layer0
.layui-m-layerchild
{
width
:
90%
;
max-width
:
640px
}
.layui-m-layer1
.layui-m-layerchild
{
border
:
none
;
border-radius
:
0
}
.layui-m-layer2
.layui-m-layerchild
{
width
:
auto
;
max-width
:
260px
;
min-width
:
40px
;
border
:
none
;
background
:
0
0
;
box-shadow
:
none
;
color
:
#fff
}
.layui-m-layerchild
h3
{
padding
:
0
10px
;
height
:
60px
;
line-height
:
60px
;
font-size
:
16px
;
font-weight
:
400
;
border-radius
:
5px
5px
0
0
;
text-align
:
center
}
.layui-m-layerbtn
span
,
.layui-m-layerchild
h3
{
text-overflow
:
ellipsis
;
overflow
:
hidden
;
white-space
:
nowrap
}
.layui-m-layercont
{
padding
:
50px
30px
;
line-height
:
22px
;
text-align
:
center
}
.layui-m-layer1
.layui-m-layercont
{
padding
:
0
;
text-align
:
left
}
.layui-m-layer2
.layui-m-layercont
{
text-align
:
center
;
padding
:
0
;
line-height
:
0
}
.layui-m-layer2
.layui-m-layercont
i
{
width
:
25px
;
height
:
25px
;
margin-left
:
8px
;
display
:
inline-block
;
background-color
:
#fff
;
border-radius
:
100%
;
-webkit-animation
:
layui-m-anim-loading
1.4s
infinite
ease-in-out
;
animation
:
layui-m-anim-loading
1.4s
infinite
ease-in-out
;
-webkit-animation-fill-mode
:
both
;
animation-fill-mode
:
both
}
.layui-m-layerbtn
,
.layui-m-layerbtn
span
{
position
:
relative
;
text-align
:
center
;
border-radius
:
0
0
5px
5px
}
.layui-m-layer2
.layui-m-layercont
p
{
margin-top
:
20px
}
@-webkit-keyframes
layui-m-anim-loading
{
0
%,
100
%,
80
%
{
transform
:
scale
(
0
);
-webkit-transform
:
scale
(
0
)}
40
%
{
transform
:
scale
(
1
);
-webkit-transform
:
scale
(
1
)}}
@keyframes
layui-m-anim-loading
{
0
%,
100
%,
80
%
{
transform
:
scale
(
0
);
-webkit-transform
:
scale
(
0
)}
40
%
{
transform
:
scale
(
1
);
-webkit-transform
:
scale
(
1
)}}
.layui-m-layer2
.layui-m-layercont
i
:first-child
{
margin-left
:
0
;
-webkit-animation-delay
:
-.32s
;
animation-delay
:
-.32s
}
.layui-m-layer2
.layui-m-layercont
i
.layui-m-layerload
{
-webkit-animation-delay
:
-.16s
;
animation-delay
:
-.16s
}
.layui-m-layer2
.layui-m-layercont
>
div
{
line-height
:
22px
;
padding-top
:
7px
;
margin-bottom
:
20px
;
font-size
:
14px
}
.layui-m-layerbtn
{
display
:
box
;
display
:
-moz-box
;
display
:
-webkit-box
;
width
:
100%
;
height
:
50px
;
line-height
:
50px
;
font-size
:
0
;
border-top
:
1px
solid
#D0D0D0
;
background-color
:
#F2F2F2
}
.layui-m-layerbtn
span
{
display
:
block
;
-moz-box-flex
:
1
;
box-flex
:
1
;
-webkit-box-flex
:
1
;
font-size
:
14px
;
cursor
:
pointer
}
.layui-m-layerbtn
span
[
yes
]
{
color
:
#40AFFE
}
.layui-m-layerbtn
span
[
no
]
{
border-right
:
1px
solid
#D0D0D0
;
border-radius
:
0
0
0
5px
}
.layui-m-layerbtn
span
:active
{
background-color
:
#F6F6F6
}
.layui-m-layerend
{
position
:
absolute
;
right
:
7px
;
top
:
10px
;
width
:
30px
;
height
:
30px
;
border
:
0
;
font-weight
:
400
;
background
:
0
0
;
cursor
:
pointer
;
-webkit-appearance
:
none
;
font-size
:
30px
}
.layui-m-layerend
::after
,
.layui-m-layerend
::before
{
position
:
absolute
;
left
:
5px
;
top
:
15px
;
content
:
''
;
width
:
18px
;
height
:
1px
;
background-color
:
#999
;
transform
:
rotate
(
45deg
);
-webkit-transform
:
rotate
(
45deg
);
border-radius
:
3px
}
.layui-m-layerend
::after
{
transform
:
rotate
(
-45deg
);
-webkit-transform
:
rotate
(
-45deg
)}
body
.layui-m-layer
.layui-m-layer-footer
{
position
:
fixed
;
width
:
95%
;
max-width
:
100%
;
margin
:
0
auto
;
left
:
0
;
right
:
0
;
bottom
:
10px
;
background
:
0
0
}
.layui-m-layer-footer
.layui-m-layercont
{
padding
:
20px
;
border-radius
:
5px
5px
0
0
;
background-color
:
rgba
(
255
,
255
,
255
,
.8
)}
.layui-m-layer-footer
.layui-m-layerbtn
{
display
:
block
;
height
:
auto
;
background
:
0
0
;
border-top
:
none
}
.layui-m-layer-footer
.layui-m-layerbtn
span
{
background-color
:
rgba
(
255
,
255
,
255
,
.8
)}
.layui-m-layer-footer
.layui-m-layerbtn
span
[
no
]
{
color
:
#FD482C
;
border-top
:
1px
solid
#c2c2c2
;
border-radius
:
0
0
5px
5px
}
.layui-m-layer-footer
.layui-m-layerbtn
span
[
yes
]
{
margin-top
:
10px
;
border-radius
:
5px
}
body
.layui-m-layer
.layui-m-layer-msg
{
width
:
auto
;
max-width
:
90%
;
margin
:
0
auto
;
bottom
:
-150px
;
background-color
:
rgba
(
0
,
0
,
0
,
.7
);
color
:
#fff
}
.layui-m-layer-msg
.layui-m-layercont
{
padding
:
10px
20px
}
\ No newline at end of file
xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/icon-ext.png
0 → 100755
浏览文件 @
00cd63c4
5.8 KB
xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/icon.png
0 → 100755
浏览文件 @
00cd63c4
11.2 KB
xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/layer.css
0 → 100755
浏览文件 @
00cd63c4
.layui-layer-imgbar
,
.layui-layer-imgtit
a
,
.layui-layer-tab
.layui-layer-title
span
,
.layui-layer-title
{
text-overflow
:
ellipsis
;
white-space
:
nowrap
}
*
html
{
background-image
:
url(about:blank)
;
background-attachment
:
fixed
}
html
#layuicss-skinlayercss
{
display
:
none
;
position
:
absolute
;
width
:
1989px
}
.layui-layer
,
.layui-layer-shade
{
position
:
fixed
;
_position
:
absolute
;
pointer-events
:
auto
}
.layui-layer-shade
{
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
_height
:
expression
(
document
.
body
.
offsetHeight
+
"px"
)}
.layui-layer
{
-webkit-overflow-scrolling
:
touch
;
top
:
150px
;
left
:
0
;
margin
:
0
;
padding
:
0
;
background-color
:
#fff
;
-webkit-background-clip
:
content
;
box-shadow
:
1px
1px
50px
rgba
(
0
,
0
,
0
,
.3
)}
.layui-layer-close
{
position
:
absolute
}
.layui-layer-content
{
position
:
relative
}
.layui-layer-border
{
border
:
1px
solid
#B2B2B2
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
.1
);
box-shadow
:
1px
1px
5px
rgba
(
0
,
0
,
0
,
.2
)}
.layui-layer-load
{
background
:
url(loading-1.gif)
center
center
no-repeat
#eee
}
.layui-layer-ico
{
background
:
url(icon.png)
no-repeat
}
.layui-layer-btn
a
,
.layui-layer-dialog
.layui-layer-ico
,
.layui-layer-setwin
a
{
display
:
inline-block
;
*
display
:
inline
;
*
zoom
:
1
;
vertical-align
:
top
}
.layui-layer-move
{
display
:
none
;
position
:
fixed
;
*
position
:
absolute
;
left
:
0
;
top
:
0
;
width
:
100%
;
height
:
100%
;
cursor
:
move
;
opacity
:
0
;
filter
:
alpha
(
opacity
=
0
);
background-color
:
#fff
;
z-index
:
2147483647
}
.layui-layer-resize
{
position
:
absolute
;
width
:
15px
;
height
:
15px
;
right
:
0
;
bottom
:
0
;
cursor
:
se-resize
}
.layui-layer
{
border-radius
:
2px
;
-webkit-animation-fill-mode
:
both
;
animation-fill-mode
:
both
;
-webkit-animation-duration
:
.3s
;
animation-duration
:
.3s
}
@-webkit-keyframes
layer-bounceIn
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.5
);
transform
:
scale
(
.5
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
1
);
transform
:
scale
(
1
)}}
@keyframes
layer-bounceIn
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.5
);
-ms-transform
:
scale
(
.5
);
transform
:
scale
(
.5
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
1
);
-ms-transform
:
scale
(
1
);
transform
:
scale
(
1
)}}
.layer-anim
{
-webkit-animation-name
:
layer-bounceIn
;
animation-name
:
layer-bounceIn
}
@-webkit-keyframes
layer-zoomInDown
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.1
)
translateY
(
-2000px
);
transform
:
scale
(
.1
)
translateY
(
-2000px
);
-webkit-animation-timing-function
:
ease-in-out
;
animation-timing-function
:
ease-in-out
}
60
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
.475
)
translateY
(
60px
);
transform
:
scale
(
.475
)
translateY
(
60px
);
-webkit-animation-timing-function
:
ease-out
;
animation-timing-function
:
ease-out
}}
@keyframes
layer-zoomInDown
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.1
)
translateY
(
-2000px
);
-ms-transform
:
scale
(
.1
)
translateY
(
-2000px
);
transform
:
scale
(
.1
)
translateY
(
-2000px
);
-webkit-animation-timing-function
:
ease-in-out
;
animation-timing-function
:
ease-in-out
}
60
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
.475
)
translateY
(
60px
);
-ms-transform
:
scale
(
.475
)
translateY
(
60px
);
transform
:
scale
(
.475
)
translateY
(
60px
);
-webkit-animation-timing-function
:
ease-out
;
animation-timing-function
:
ease-out
}}
.layer-anim-01
{
-webkit-animation-name
:
layer-zoomInDown
;
animation-name
:
layer-zoomInDown
}
@-webkit-keyframes
layer-fadeInUpBig
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
2000px
);
transform
:
translateY
(
2000px
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}}
@keyframes
layer-fadeInUpBig
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateY
(
2000px
);
-ms-transform
:
translateY
(
2000px
);
transform
:
translateY
(
2000px
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateY
(
0
);
-ms-transform
:
translateY
(
0
);
transform
:
translateY
(
0
)}}
.layer-anim-02
{
-webkit-animation-name
:
layer-fadeInUpBig
;
animation-name
:
layer-fadeInUpBig
}
@-webkit-keyframes
layer-zoomInLeft
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.1
)
translateX
(
-2000px
);
transform
:
scale
(
.1
)
translateX
(
-2000px
);
-webkit-animation-timing-function
:
ease-in-out
;
animation-timing-function
:
ease-in-out
}
60
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
.475
)
translateX
(
48px
);
transform
:
scale
(
.475
)
translateX
(
48px
);
-webkit-animation-timing-function
:
ease-out
;
animation-timing-function
:
ease-out
}}
@keyframes
layer-zoomInLeft
{
0
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.1
)
translateX
(
-2000px
);
-ms-transform
:
scale
(
.1
)
translateX
(
-2000px
);
transform
:
scale
(
.1
)
translateX
(
-2000px
);
-webkit-animation-timing-function
:
ease-in-out
;
animation-timing-function
:
ease-in-out
}
60
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
.475
)
translateX
(
48px
);
-ms-transform
:
scale
(
.475
)
translateX
(
48px
);
transform
:
scale
(
.475
)
translateX
(
48px
);
-webkit-animation-timing-function
:
ease-out
;
animation-timing-function
:
ease-out
}}
.layer-anim-03
{
-webkit-animation-name
:
layer-zoomInLeft
;
animation-name
:
layer-zoomInLeft
}
@-webkit-keyframes
layer-rollIn
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateX
(
-100%
)
rotate
(
-120deg
);
transform
:
translateX
(
-100%
)
rotate
(
-120deg
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateX
(
0
)
rotate
(
0
);
transform
:
translateX
(
0
)
rotate
(
0
)}}
@keyframes
layer-rollIn
{
0
%
{
opacity
:
0
;
-webkit-transform
:
translateX
(
-100%
)
rotate
(
-120deg
);
-ms-transform
:
translateX
(
-100%
)
rotate
(
-120deg
);
transform
:
translateX
(
-100%
)
rotate
(
-120deg
)}
100
%
{
opacity
:
1
;
-webkit-transform
:
translateX
(
0
)
rotate
(
0
);
-ms-transform
:
translateX
(
0
)
rotate
(
0
);
transform
:
translateX
(
0
)
rotate
(
0
)}}
.layer-anim-04
{
-webkit-animation-name
:
layer-rollIn
;
animation-name
:
layer-rollIn
}
@keyframes
layer-fadeIn
{
0
%
{
opacity
:
0
}
100
%
{
opacity
:
1
}}
.layer-anim-05
{
-webkit-animation-name
:
layer-fadeIn
;
animation-name
:
layer-fadeIn
}
@-webkit-keyframes
layer-shake
{
0
%,
100
%
{
-webkit-transform
:
translateX
(
0
);
transform
:
translateX
(
0
)}
10
%,
30
%,
50
%,
70
%,
90
%
{
-webkit-transform
:
translateX
(
-10px
);
transform
:
translateX
(
-10px
)}
20
%,
40
%,
60
%,
80
%
{
-webkit-transform
:
translateX
(
10px
);
transform
:
translateX
(
10px
)}}
@keyframes
layer-shake
{
0
%,
100
%
{
-webkit-transform
:
translateX
(
0
);
-ms-transform
:
translateX
(
0
);
transform
:
translateX
(
0
)}
10
%,
30
%,
50
%,
70
%,
90
%
{
-webkit-transform
:
translateX
(
-10px
);
-ms-transform
:
translateX
(
-10px
);
transform
:
translateX
(
-10px
)}
20
%,
40
%,
60
%,
80
%
{
-webkit-transform
:
translateX
(
10px
);
-ms-transform
:
translateX
(
10px
);
transform
:
translateX
(
10px
)}}
.layer-anim-06
{
-webkit-animation-name
:
layer-shake
;
animation-name
:
layer-shake
}
@-webkit-keyframes
fadeIn
{
0
%
{
opacity
:
0
}
100
%
{
opacity
:
1
}}
.layui-layer-title
{
padding
:
0
80px
0
20px
;
height
:
42px
;
line-height
:
42px
;
border-bottom
:
1px
solid
#eee
;
font-size
:
14px
;
color
:
#333
;
overflow
:
hidden
;
background-color
:
#F8F8F8
;
border-radius
:
2px
2px
0
0
}
.layui-layer-setwin
{
position
:
absolute
;
right
:
15px
;
*
right
:
0
;
top
:
15px
;
font-size
:
0
;
line-height
:
initial
}
.layui-layer-setwin
a
{
position
:
relative
;
width
:
16px
;
height
:
16px
;
margin-left
:
10px
;
font-size
:
12px
;
_overflow
:
hidden
}
.layui-layer-setwin
.layui-layer-min
cite
{
position
:
absolute
;
width
:
14px
;
height
:
2px
;
left
:
0
;
top
:
50%
;
margin-top
:
-1px
;
background-color
:
#2E2D3C
;
cursor
:
pointer
;
_overflow
:
hidden
}
.layui-layer-setwin
.layui-layer-min
:hover
cite
{
background-color
:
#2D93CA
}
.layui-layer-setwin
.layui-layer-max
{
background-position
:
-32px
-40px
}
.layui-layer-setwin
.layui-layer-max
:hover
{
background-position
:
-16px
-40px
}
.layui-layer-setwin
.layui-layer-maxmin
{
background-position
:
-65px
-40px
}
.layui-layer-setwin
.layui-layer-maxmin
:hover
{
background-position
:
-49px
-40px
}
.layui-layer-setwin
.layui-layer-close1
{
background-position
:
1px
-40px
;
cursor
:
pointer
}
.layui-layer-setwin
.layui-layer-close1
:hover
{
opacity
:
.7
}
.layui-layer-setwin
.layui-layer-close2
{
position
:
absolute
;
right
:
-28px
;
top
:
-28px
;
width
:
30px
;
height
:
30px
;
margin-left
:
0
;
background-position
:
-149px
-31px
;
*
right
:
-18px
;
_display
:
none
}
.layui-layer-setwin
.layui-layer-close2
:hover
{
background-position
:
-180px
-31px
}
.layui-layer-btn
{
text-align
:
right
;
padding
:
0
10px
12px
;
pointer-events
:
auto
;
user-select
:
none
;
-webkit-user-select
:
none
}
.layui-layer-btn
a
{
height
:
28px
;
line-height
:
28px
;
margin
:
6px
6px
0
;
padding
:
0
15px
;
border
:
1px
solid
#dedede
;
background-color
:
#f1f1f1
;
color
:
#333
;
border-radius
:
2px
;
font-weight
:
400
;
cursor
:
pointer
;
text-decoration
:
none
}
.layui-layer-btn
a
:hover
{
opacity
:
.9
;
text-decoration
:
none
}
.layui-layer-btn
a
:active
{
opacity
:
.8
}
.layui-layer-btn
.layui-layer-btn0
{
border-color
:
#4898d5
;
background-color
:
#2e8ded
;
color
:
#fff
}
.layui-layer-btn-l
{
text-align
:
left
}
.layui-layer-btn-c
{
text-align
:
center
}
.layui-layer-dialog
{
min-width
:
260px
}
.layui-layer-dialog
.layui-layer-content
{
position
:
relative
;
padding
:
20px
;
line-height
:
24px
;
word-break
:
break-all
;
overflow
:
hidden
;
font-size
:
14px
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
.layui-layer-dialog
.layui-layer-content
.layui-layer-ico
{
position
:
absolute
;
top
:
16px
;
left
:
15px
;
_left
:
-40px
;
width
:
30px
;
height
:
30px
}
.layui-layer-ico1
{
background-position
:
-30px
0
}
.layui-layer-ico2
{
background-position
:
-60px
0
}
.layui-layer-ico3
{
background-position
:
-90px
0
}
.layui-layer-ico4
{
background-position
:
-120px
0
}
.layui-layer-ico5
{
background-position
:
-150px
0
}
.layui-layer-ico6
{
background-position
:
-180px
0
}
.layui-layer-rim
{
border
:
6px
solid
#8D8D8D
;
border
:
6px
solid
rgba
(
0
,
0
,
0
,
.3
);
border-radius
:
5px
;
box-shadow
:
none
}
.layui-layer-msg
{
min-width
:
180px
;
border
:
1px
solid
#D3D4D3
;
box-shadow
:
none
}
.layui-layer-hui
{
min-width
:
100px
;
background-color
:
#000
;
filter
:
alpha
(
opacity
=
60
);
background-color
:
rgba
(
0
,
0
,
0
,
.6
);
color
:
#fff
;
border
:
none
}
.layui-layer-hui
.layui-layer-content
{
padding
:
12px
25px
;
text-align
:
center
}
.layui-layer-dialog
.layui-layer-padding
{
padding
:
20px
20px
20px
55px
;
text-align
:
left
}
.layui-layer-page
.layui-layer-content
{
position
:
relative
;
overflow
:
auto
}
.layui-layer-iframe
.layui-layer-btn
,
.layui-layer-page
.layui-layer-btn
{
padding-top
:
10px
}
.layui-layer-nobg
{
background
:
0
0
}
.layui-layer-iframe
iframe
{
display
:
block
;
width
:
100%
}
.layui-layer-loading
{
border-radius
:
100%
;
background
:
0
0
;
box-shadow
:
none
;
border
:
none
}
.layui-layer-loading
.layui-layer-content
{
width
:
60px
;
height
:
24px
;
background
:
url(loading-0.gif)
no-repeat
}
.layui-layer-loading
.layui-layer-loading1
{
width
:
37px
;
height
:
37px
;
background
:
url(loading-1.gif)
no-repeat
}
.layui-layer-ico16
,
.layui-layer-loading
.layui-layer-loading2
{
width
:
32px
;
height
:
32px
;
background
:
url(loading-2.gif)
no-repeat
}
.layui-layer-tips
{
background
:
0
0
;
box-shadow
:
none
;
border
:
none
}
.layui-layer-tips
.layui-layer-content
{
position
:
relative
;
line-height
:
22px
;
min-width
:
12px
;
padding
:
5px
10px
;
font-size
:
12px
;
_float
:
left
;
border-radius
:
2px
;
box-shadow
:
1px
1px
3px
rgba
(
0
,
0
,
0
,
.2
);
background-color
:
#000
;
color
:
#fff
}
.layui-layer-tips
.layui-layer-close
{
right
:
-2px
;
top
:
-1px
}
.layui-layer-tips
i
.layui-layer-TipsG
{
position
:
absolute
;
width
:
0
;
height
:
0
;
border-width
:
8px
;
border-color
:
transparent
;
border-style
:
dashed
;
*
overflow
:
hidden
}
.layui-layer-tips
i
.layui-layer-TipsB
,
.layui-layer-tips
i
.layui-layer-TipsT
{
left
:
5px
;
border-right-style
:
solid
;
border-right-color
:
#000
}
.layui-layer-tips
i
.layui-layer-TipsT
{
bottom
:
-8px
}
.layui-layer-tips
i
.layui-layer-TipsB
{
top
:
-8px
}
.layui-layer-tips
i
.layui-layer-TipsL
,
.layui-layer-tips
i
.layui-layer-TipsR
{
top
:
1px
;
border-bottom-style
:
solid
;
border-bottom-color
:
#000
}
.layui-layer-tips
i
.layui-layer-TipsR
{
left
:
-8px
}
.layui-layer-tips
i
.layui-layer-TipsL
{
right
:
-8px
}
.layui-layer-lan
[
type
=
dialog
]
{
min-width
:
280px
}
.layui-layer-lan
.layui-layer-title
{
background
:
#4476A7
;
color
:
#fff
;
border
:
none
}
.layui-layer-lan
.layui-layer-btn
{
padding
:
5px
10px
10px
;
text-align
:
right
;
border-top
:
1px
solid
#E9E7E7
}
.layui-layer-lan
.layui-layer-btn
a
{
background
:
#BBB5B5
;
border
:
none
}
.layui-layer-lan
.layui-layer-btn
.layui-layer-btn1
{
background
:
#C9C5C5
}
.layui-layer-molv
.layui-layer-title
{
background
:
#009f95
;
color
:
#fff
;
border
:
none
}
.layui-layer-molv
.layui-layer-btn
a
{
background
:
#009f95
}
.layui-layer-molv
.layui-layer-btn
.layui-layer-btn1
{
background
:
#92B8B1
}
.layui-layer-iconext
{
background
:
url(icon-ext.png)
no-repeat
}
.layui-layer-prompt
.layui-layer-input
{
display
:
block
;
width
:
220px
;
height
:
30px
;
margin
:
0
auto
;
line-height
:
30px
;
padding
:
0
5px
;
border
:
1px
solid
#ccc
;
box-shadow
:
1px
1px
5px
rgba
(
0
,
0
,
0
,
.1
)
inset
;
color
:
#333
}
.layui-layer-prompt
textarea
.layui-layer-input
{
width
:
300px
;
height
:
100px
;
line-height
:
20px
}
.layui-layer-prompt
.layui-layer-content
{
padding
:
20px
}
.layui-layer-prompt
.layui-layer-btn
{
padding-top
:
0
}
.layui-layer-tab
{
box-shadow
:
1px
1px
50px
rgba
(
0
,
0
,
0
,
.4
)}
.layui-layer-tab
.layui-layer-title
{
padding-left
:
0
;
border-bottom
:
1px
solid
#ccc
;
background-color
:
#eee
;
overflow
:
visible
}
.layui-layer-tab
.layui-layer-title
span
{
position
:
relative
;
float
:
left
;
min-width
:
80px
;
max-width
:
260px
;
padding
:
0
20px
;
text-align
:
center
;
cursor
:
default
;
overflow
:
hidden
}
.layui-layer-tab
.layui-layer-title
span
.layui-layer-tabnow
{
height
:
43px
;
border-left
:
1px
solid
#ccc
;
border-right
:
1px
solid
#ccc
;
background-color
:
#fff
;
z-index
:
10
}
.layui-layer-tab
.layui-layer-title
span
:first-child
{
border-left
:
none
}
.layui-layer-tabmain
{
line-height
:
24px
;
clear
:
both
}
.layui-layer-tabmain
.layui-layer-tabli
{
display
:
none
}
.layui-layer-tabmain
.layui-layer-tabli.xubox_tab_layer
{
display
:
block
}
.xubox_tabclose
{
position
:
absolute
;
right
:
10px
;
top
:
5px
;
cursor
:
pointer
}
.layui-layer-photos
{
-webkit-animation-duration
:
.8s
;
animation-duration
:
.8s
}
.layui-layer-photos
.layui-layer-content
{
overflow
:
hidden
;
text-align
:
center
}
.layui-layer-photos
.layui-layer-phimg
img
{
position
:
relative
;
width
:
100%
;
display
:
inline-block
;
*
display
:
inline
;
*
zoom
:
1
;
vertical-align
:
top
}
.layui-layer-imgbar
,
.layui-layer-imguide
{
display
:
none
}
.layui-layer-imgnext
,
.layui-layer-imgprev
{
position
:
absolute
;
top
:
50%
;
width
:
27px
;
_width
:
44px
;
height
:
44px
;
margin-top
:
-22px
;
outline
:
0
;
blr
:
expression
(
this
.
onFocus
=
this
.
blur
())}
.layui-layer-imgprev
{
left
:
10px
;
background-position
:
-5px
-5px
;
_background-position
:
-70px
-5px
}
.layui-layer-imgprev
:hover
{
background-position
:
-33px
-5px
;
_background-position
:
-120px
-5px
}
.layui-layer-imgnext
{
right
:
10px
;
_right
:
8px
;
background-position
:
-5px
-50px
;
_background-position
:
-70px
-50px
}
.layui-layer-imgnext
:hover
{
background-position
:
-33px
-50px
;
_background-position
:
-120px
-50px
}
.layui-layer-imgbar
{
position
:
absolute
;
left
:
0
;
bottom
:
0
;
width
:
100%
;
height
:
32px
;
line-height
:
32px
;
background-color
:
rgba
(
0
,
0
,
0
,
.8
);
background-color
:
#000
\
9
;
filter
:
Alpha
(
opacity
=
80
);
color
:
#fff
;
overflow
:
hidden
;
font-size
:
0
}
.layui-layer-imgtit
*
{
display
:
inline-block
;
*
display
:
inline
;
*
zoom
:
1
;
vertical-align
:
top
;
font-size
:
12px
}
.layui-layer-imgtit
a
{
max-width
:
65%
;
overflow
:
hidden
;
color
:
#fff
}
.layui-layer-imgtit
a
:hover
{
color
:
#fff
;
text-decoration
:
underline
}
.layui-layer-imgtit
em
{
padding-left
:
10px
;
font-style
:
normal
}
@-webkit-keyframes
layer-bounceOut
{
100
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.7
);
transform
:
scale
(
.7
)}
30
%
{
-webkit-transform
:
scale
(
1.05
);
transform
:
scale
(
1.05
)}
0
%
{
-webkit-transform
:
scale
(
1
);
transform
:
scale
(
1
)}}
@keyframes
layer-bounceOut
{
100
%
{
opacity
:
0
;
-webkit-transform
:
scale
(
.7
);
-ms-transform
:
scale
(
.7
);
transform
:
scale
(
.7
)}
30
%
{
-webkit-transform
:
scale
(
1.05
);
-ms-transform
:
scale
(
1.05
);
transform
:
scale
(
1.05
)}
0
%
{
-webkit-transform
:
scale
(
1
);
-ms-transform
:
scale
(
1
);
transform
:
scale
(
1
)}}
.layer-anim-close
{
-webkit-animation-name
:
layer-bounceOut
;
animation-name
:
layer-bounceOut
;
-webkit-animation-duration
:
.2s
;
animation-duration
:
.2s
}
@media
screen
and
(
max-width
:
1100px
){
.layui-layer-iframe
{
overflow-y
:
auto
;
-webkit-overflow-scrolling
:
touch
}}
\ No newline at end of file
xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-0.gif
0 → 100755
浏览文件 @
00cd63c4
5.7 KB
xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-1.gif
0 → 100755
浏览文件 @
00cd63c4
701 Bytes
xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-2.gif
0 → 100755
浏览文件 @
00cd63c4
1.7 KB
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论