Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
c0de35a6
Commit
c0de35a6
authored
8 years ago
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add layer and layer open command log
parent
d19b47a4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
70 additions
and
43 deletions
+70
-43
proxy_log_commands_list_modal.html
...udits/templates/audits/proxy_log_commands_list_modal.html
+39
-6
proxy_log_detail.html
apps/audits/templates/audits/proxy_log_detail.html
+7
-0
proxy_log_list.html
apps/audits/templates/audits/proxy_log_list.html
+12
-25
urls.py
apps/audits/urls.py
+1
-0
views.py
apps/audits/views.py
+11
-0
icon-ext.png
apps/static/css/plugins/layer/default/icon-ext.png
+0
-0
icon.png
apps/static/css/plugins/layer/default/icon.png
+0
-0
loading-0.gif
apps/static/css/plugins/layer/default/loading-0.gif
+0
-0
loading-1.gif
apps/static/css/plugins/layer/default/loading-1.gif
+0
-0
loading-2.gif
apps/static/css/plugins/layer/default/loading-2.gif
+0
-0
layer.css
apps/static/css/plugins/layer/layer.css
+0
-0
layer.ext.js
apps/static/js/plugins/layer/extend/layer.ext.js
+0
-3
layer.js
apps/static/js/plugins/layer/layer.js
+0
-0
layer.css
apps/static/js/plugins/layer/skin/layer.css
+0
-0
layer.ext.css
apps/static/js/plugins/layer/skin/layer.ext.css
+0
-9
No files found.
apps/audits/templates/audits/proxy_log_command_list_modal.html
→
apps/audits/templates/audits/proxy_log_command
s
_list_modal.html
View file @
c0de35a6
{% extends '_modal.html' %}
{% load i18n %}
{% block modal_id %}command_table{% endblock %}
{% block modal_body %}
<table
class=
"footable table table-stripped toggle-arrow-tiny"
data-page-size=
"10"
>
{% load static %}
<!DOCTYPE html>
<html>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
>
<meta
name=
"renderer"
content=
"webkit"
>
{% include '_head_css_js.html' %}
<link
href=
"{% static 'css/bootstrap.min.css' %}"
rel=
"stylesheet"
>
<link
href=
"{% static "
css
/
plugins
/
footable
/
footable
.
core
.
css
"
%}"
rel=
"stylesheet"
>
<script
src=
"{% static 'js/jquery-2.1.1.js' %}"
></script>
<script
src=
"{% static 'js/plugins/sweetalert/sweetalert.min.js' %}"
></script>
<script
src=
"{% static 'js/bootstrap.min.js' %}"
></script>
</head>
<body>
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"tab-content"
>
<div
class=
"ibox-content"
>
<input
type=
"text"
class=
"form-control input-sm m-b-xs"
id=
"filter"
placeholder=
"Search in table"
>
<table
class=
"footable table table-stripped toggle-arrow-tiny"
data-page-size=
"10"
data-filter=
#filter
>
<thead>
<tr>
<th
data-toggle=
"true"
>
ID
</th>
...
...
@@ -21,5 +37,22 @@
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td
colspan=
"5"
>
<ul
class=
"pagination pull-right"
></ul>
</td>
</tr>
</tfoot>
</table>
{% endblock %}
</div>
</div>
</div>
</body>
<script
src=
"{% static "
js
/
plugins
/
footable
/
footable
.
all
.
min
.
js
"
%}"
></script>
<script>
$
(
document
).
ready
(
function
()
{
$
(
'.footable'
).
footable
();
});
</script>
</html>
This diff is collapsed.
Click to expand it.
apps/audits/templates/audits/proxy_log_detail.html
View file @
c0de35a6
...
...
@@ -57,6 +57,13 @@
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td
colspan=
"5"
>
<ul
class=
"pagination pull-right"
></ul>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/audits/templates/audits/proxy_log_list.html
View file @
c0de35a6
...
...
@@ -3,6 +3,7 @@
{% block custom_head_css_js %}
{{ block.super }}
<link
href=
"{% static "
css
/
plugins
/
footable
/
footable
.
core
.
css
"
%}"
rel=
"stylesheet"
>
<link
href=
"{% static "
css
/
plugins
/
layer
/
layer
.
css
"
%}"
rel=
"stylesheet"
>
<style>
div
.dataTables_wrapper
div
.dataTables_filter
,
.dataTables_length
{
...
...
@@ -40,14 +41,12 @@
<tbody>
</tbody>
</table>
{% include 'audits/proxy_log_command_list_modal.html' %}
{% endblock %}
{% block custom_foot_js %}
<script
src=
"{% static 'js/jquery.form.min.js' %}"
></script>
<script
src=
"{% static "
js
/
plugins
/
footable
/
footable
.
all
.
min
.
js
"
%}"
></script>
<script
src=
"{% static "
js
/
plugins
/
layer
/
layer
.
js
"
%}"
></script>
<script>
$
(
document
).
ready
(
function
(){
$
(
'.footable'
).
footable
();
var
options
=
{
ele
:
$
(
'#proxy_log_list_table'
),
columnDefs
:
[
...
...
@@ -57,7 +56,7 @@ $(document).ready(function(){
}},
{
targets
:
4
,
createdCell
:
function
(
td
,
cellData
,
rowData
)
{
if
(
cellData
)
{
$
(
td
).
html
(
'<a url="{% url "audits:proxy-log-
detail-api
" pk=99991938 %}" class="commands">99991937</a>'
$
(
td
).
html
(
'<a url="{% url "audits:proxy-log-
commands-list
" pk=99991938 %}" class="commands">99991937</a>'
.
replace
(
'99991937'
,
cellData
)
.
replace
(
'99991938'
,
rowData
.
id
))
}
...
...
@@ -94,28 +93,16 @@ $(document).ready(function(){
jumpserver
.
initDataTable
(
options
);
}).
on
(
'click'
,
'.commands'
,
function
()
{
var
url
=
$
(
this
).
attr
(
'url'
);
$
.
ajax
({
url
:
url
,
method
:
'GET'
,
success
:
function
(
data
)
{
var
table_body
=
''
;
$
.
each
(
data
.
commands_dict
,
function
(
index
,
value
)
{
table_body
+=
'<tr>'
+
'<td>'
+
value
.
command_no
+
'</td>'
+
'<td>'
+
value
.
command
+
'</td>'
+
'<td>'
+
value
.
output
+
'</td>'
+
'<td>'
+
value
.
datetime
+
'</td>'
+
'</tr>'
});
console
.
log
(
table_body
);
$
(
'.table_body'
).
html
(
table_body
);
$
(
'.footable'
).
footable
();
$
(
'#command_table'
).
modal
(
'show'
);
}
layer
.
open
({
type
:
2
,
title
:
'很多时候,我们想最大化看,比如像这个页面。'
,
shadeClose
:
true
,
shade
:
false
,
maxmin
:
true
,
//开启最大化最小化按钮
area
:
[
'893px'
,
'600px'
],
content
:
url
});
})
})
</script>
{% endblock %}
This diff is collapsed.
Click to expand it.
apps/audits/urls.py
View file @
c0de35a6
...
...
@@ -9,6 +9,7 @@ app_name = 'audits'
urlpatterns
=
[
url
(
r'^proxy-log$'
,
views
.
ProxyLogListView
.
as_view
(),
name
=
'proxy-log-list'
),
url
(
r'^proxy-log/(?P<pk>\d+)$'
,
views
.
ProxyLogDetailView
.
as_view
(),
name
=
'proxy-log-detail'
),
url
(
r'^proxy-log/(?P<pk>\d+)/commands$'
,
views
.
ProxyLogCommandsListView
.
as_view
(),
name
=
'proxy-log-commands-list'
),
]
...
...
This diff is collapsed.
Click to expand it.
apps/audits/views.py
View file @
c0de35a6
...
...
@@ -39,3 +39,14 @@ class ProxyLogDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
}
kwargs
.
update
(
context
)
return
super
(
ProxyLogDetailView
,
self
)
.
get_context_data
(
**
kwargs
)
class
ProxyLogCommandsListView
(
AdminUserRequiredMixin
,
SingleObjectMixin
,
ListView
):
template_name
=
'audits/proxy_log_commands_list_modal.html'
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
object
=
self
.
get_object
(
queryset
=
ProxyLog
.
objects
.
all
())
return
super
(
ProxyLogCommandsListView
,
self
)
.
get
(
request
,
*
args
,
**
kwargs
)
def
get_queryset
(
self
):
return
list
(
self
.
object
.
command_log
.
all
())
This diff is collapsed.
Click to expand it.
apps/static/css/plugins/layer/default/icon-ext.png
0 → 100644
View file @
c0de35a6
5.77 KB
This diff is collapsed.
Click to expand it.
apps/static/css/plugins/layer/default/icon.png
0 → 100644
View file @
c0de35a6
11.2 KB
This diff is collapsed.
Click to expand it.
apps/static/css/plugins/layer/default/loading-0.gif
0 → 100644
View file @
c0de35a6
5.66 KB
This diff is collapsed.
Click to expand it.
apps/static/css/plugins/layer/default/loading-1.gif
0 → 100644
View file @
c0de35a6
701 Bytes
This diff is collapsed.
Click to expand it.
apps/static/css/plugins/layer/default/loading-2.gif
0 → 100644
View file @
c0de35a6
1.75 KB
This diff is collapsed.
Click to expand it.
apps/static/css/plugins/layer/layer.css
0 → 100644
View file @
c0de35a6
This diff is collapsed.
Click to expand it.
apps/static/js/plugins/layer/extend/layer.ext.js
deleted
100644 → 0
View file @
d19b47a4
/*! layer弹层组件拓展类 */
;
!
function
(){
layer
.
use
(
"skin/layer.ext.css"
,
function
(){
layer
.
layui_layer_extendlayerextjs
=!
0
});
var
a
=
layer
.
cache
||
{},
b
=
function
(
b
){
return
a
.
skin
?
" "
+
a
.
skin
+
" "
+
a
.
skin
+
"-"
+
b
:
""
};
layer
.
prompt
=
function
(
a
,
c
){
a
=
a
||
{},
"function"
==
typeof
a
&&
(
c
=
a
);
var
d
,
e
=
2
==
a
.
formType
?
'<textarea class="layui-layer-input">'
+
(
a
.
value
||
""
)
+
"</textarea>"
:
function
(){
return
'<input type="'
+
(
1
==
a
.
formType
?
"password"
:
"text"
)
+
'" class="layui-layer-input" value="'
+
(
a
.
value
||
""
)
+
'">'
}();
return
layer
.
open
(
$
.
extend
({
btn
:[
"确定"
,
"取消"
],
content
:
e
,
skin
:
"layui-layer-prompt"
+
b
(
"prompt"
),
success
:
function
(
a
){
d
=
a
.
find
(
".layui-layer-input"
),
d
.
focus
()},
yes
:
function
(
b
){
var
e
=
d
.
val
();
""
===
e
?
d
.
focus
():
e
.
length
>
(
a
.
maxlength
||
500
)?
layer
.
tips
(
"最多输入"
+
(
a
.
maxlength
||
500
)
+
"个字数"
,
d
,{
tips
:
1
}):
c
&&
c
(
e
,
b
,
d
)}},
a
))},
layer
.
tab
=
function
(
a
){
a
=
a
||
{};
var
c
=
a
.
tab
||
{};
return
layer
.
open
(
$
.
extend
({
type
:
1
,
skin
:
"layui-layer-tab"
+
b
(
"tab"
),
title
:
function
(){
var
a
=
c
.
length
,
b
=
1
,
d
=
""
;
if
(
a
>
0
)
for
(
d
=
'<span class="layui-layer-tabnow">'
+
c
[
0
].
title
+
"</span>"
;
a
>
b
;
b
++
)
d
+=
"<span>"
+
c
[
b
].
title
+
"</span>"
;
return
d
}(),
content
:
'<ul class="layui-layer-tabmain">'
+
function
(){
var
a
=
c
.
length
,
b
=
1
,
d
=
""
;
if
(
a
>
0
)
for
(
d
=
'<li class="layui-layer-tabli xubox_tab_layer">'
+
(
c
[
0
].
content
||
"no content"
)
+
"</li>"
;
a
>
b
;
b
++
)
d
+=
'<li class="layui-layer-tabli">'
+
(
c
[
b
].
content
||
"no content"
)
+
"</li>"
;
return
d
}()
+
"</ul>"
,
success
:
function
(
a
){
var
b
=
a
.
find
(
".layui-layer-title"
).
children
(),
c
=
a
.
find
(
".layui-layer-tabmain"
).
children
();
b
.
on
(
"mousedown"
,
function
(
a
){
a
.
stopPropagation
?
a
.
stopPropagation
():
a
.
cancelBubble
=!
0
;
var
b
=
$
(
this
),
d
=
b
.
index
();
b
.
addClass
(
"layui-layer-tabnow"
).
siblings
().
removeClass
(
"layui-layer-tabnow"
),
c
.
eq
(
d
).
show
().
siblings
().
hide
()})}},
a
))},
layer
.
photos
=
function
(
a
,
c
,
d
){
function
e
(
a
,
b
,
c
){
var
d
=
new
Image
;
d
.
onload
=
function
(){
d
.
onload
=
null
,
b
(
d
)},
d
.
onerror
=
function
(
a
){
d
.
onerror
=
null
,
c
(
a
)},
d
.
src
=
a
}
var
f
=
{};
if
(
a
=
a
||
{},
a
.
photos
){
var
g
=
a
.
photos
.
constructor
===
Object
,
h
=
g
?
a
.
photos
:{},
i
=
h
.
data
||
[],
j
=
h
.
start
||
0
;
if
(
f
.
imgIndex
=
j
+
1
,
g
){
if
(
0
===
i
.
length
)
return
void
layer
.
msg
(
"没有图片"
)}
else
{
var
k
=
$
(
a
.
photos
),
l
=
k
.
find
(
a
.
img
||
"img"
);
if
(
0
===
l
.
length
)
return
;
if
(
c
||
k
.
find
(
h
.
img
||
"img"
).
each
(
function
(
b
){
var
c
=
$
(
this
);
i
.
push
({
alt
:
c
.
attr
(
"alt"
),
pid
:
c
.
attr
(
"layer-pid"
),
src
:
c
.
attr
(
"layer-src"
)
||
c
.
attr
(
"src"
),
thumb
:
c
.
attr
(
"src"
)}),
c
.
on
(
"click"
,
function
(){
layer
.
photos
(
$
.
extend
(
a
,{
photos
:{
start
:
b
,
data
:
i
,
tab
:
a
.
tab
},
full
:
a
.
full
}),
!
0
)})}),
!
c
)
return
}
f
.
imgprev
=
function
(
a
){
f
.
imgIndex
--
,
f
.
imgIndex
<
1
&&
(
f
.
imgIndex
=
i
.
length
),
f
.
tabimg
(
a
)},
f
.
imgnext
=
function
(
a
,
b
){
f
.
imgIndex
++
,
f
.
imgIndex
>
i
.
length
&&
(
f
.
imgIndex
=
1
,
b
)
||
f
.
tabimg
(
a
)},
f
.
keyup
=
function
(
a
){
if
(
!
f
.
end
){
var
b
=
a
.
keyCode
;
a
.
preventDefault
(),
37
===
b
?
f
.
imgprev
(
!
0
):
39
===
b
?
f
.
imgnext
(
!
0
):
27
===
b
&&
layer
.
close
(
f
.
index
)}},
f
.
tabimg
=
function
(
b
){
i
.
length
<=
1
||
(
h
.
start
=
f
.
imgIndex
-
1
,
layer
.
close
(
f
.
index
),
layer
.
photos
(
a
,
!
0
,
b
))},
f
.
event
=
function
(){
f
.
bigimg
.
hover
(
function
(){
f
.
imgsee
.
show
()},
function
(){
f
.
imgsee
.
hide
()}),
f
.
bigimg
.
find
(
".layui-layer-imgprev"
).
on
(
"click"
,
function
(
a
){
a
.
preventDefault
(),
f
.
imgprev
()}),
f
.
bigimg
.
find
(
".layui-layer-imgnext"
).
on
(
"click"
,
function
(
a
){
a
.
preventDefault
(),
f
.
imgnext
()}),
$
(
document
).
on
(
"keyup"
,
f
.
keyup
)},
f
.
loadi
=
layer
.
load
(
1
,{
shade
:
"shade"
in
a
?
!
1
:.
9
,
scrollbar
:
!
1
}),
e
(
i
[
j
].
src
,
function
(
c
){
layer
.
close
(
f
.
loadi
),
f
.
index
=
layer
.
open
(
$
.
extend
({
type
:
1
,
area
:
function
(){
var
b
=
[
c
.
width
,
c
.
height
],
d
=
[
$
(
window
).
width
()
-
100
,
$
(
window
).
height
()
-
100
];
return
!
a
.
full
&&
b
[
0
]
>
d
[
0
]
&&
(
b
[
0
]
=
d
[
0
],
b
[
1
]
=
b
[
0
]
*
d
[
1
]
/
b
[
0
]),[
b
[
0
]
+
"px"
,
b
[
1
]
+
"px"
]}(),
title
:
!
1
,
shade
:.
9
,
shadeClose
:
!
0
,
closeBtn
:
!
1
,
move
:
".layui-layer-phimg img"
,
moveType
:
1
,
scrollbar
:
!
1
,
moveOut
:
!
0
,
shift
:
5
*
Math
.
random
()
|
0
,
skin
:
"layui-layer-photos"
+
b
(
"photos"
),
content
:
'<div class="layui-layer-phimg"><img src="'
+
i
[
j
].
src
+
'" alt="'
+
(
i
[
j
].
alt
||
""
)
+
'" layer-pid="'
+
i
[
j
].
pid
+
'"><div class="layui-layer-imgsee">'
+
(
i
.
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:'
+
(
d
?
"block"
:
""
)
+
'"><span class="layui-layer-imgtit"><a href="javascript:;">'
+
(
i
[
j
].
alt
||
""
)
+
"</a><em>"
+
f
.
imgIndex
+
"/"
+
i
.
length
+
"</em></span></div></div></div>"
,
success
:
function
(
b
,
c
){
f
.
bigimg
=
b
.
find
(
".layui-layer-phimg"
),
f
.
imgsee
=
b
.
find
(
".layui-layer-imguide,.layui-layer-imgbar"
),
f
.
event
(
b
),
a
.
tab
&&
a
.
tab
(
i
[
j
],
b
)},
end
:
function
(){
f
.
end
=!
0
,
$
(
document
).
off
(
"keyup"
,
f
.
keyup
)}},
a
))},
function
(){
layer
.
close
(
f
.
loadi
),
layer
.
msg
(
"当前图片地址异常<br>是否继续查看下一张?"
,{
time
:
3
e4
,
btn
:[
"下一张"
,
"不看了"
],
yes
:
function
(){
i
.
length
>
1
&&
f
.
imgnext
(
!
0
,
!
0
)}})})}}}();
\ No newline at end of file
This diff is collapsed.
Click to expand it.
apps/static/js/plugins/layer/layer.js
View file @
c0de35a6
This diff is collapsed.
Click to expand it.
apps/static/js/plugins/layer/skin/layer.css
View file @
c0de35a6
This diff is collapsed.
Click to expand it.
apps/static/js/plugins/layer/skin/layer.ext.css
deleted
100644 → 0
View file @
d19b47a4
/*!
@Name: layer拓展样式
@Date: 2012.12.13
@Author: 贤心
@blog: sentsin.com
*/
.layui-layer-imgbar
,
.layui-layer-imgtit
a
,
.layui-layer-tab
.layui-layer-title
span
{
text-overflow
:
ellipsis
;
white-space
:
nowrap
}
.layui-layer-iconext
{
background
:
url(default/icon-ext.png)
no-repeat
}
html
#layui_layer_skinlayerextcss
{
display
:
none
;
position
:
absolute
;
width
:
1989px
}
.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-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
:
1s
;
animation-duration
:
1s
;
background
:
url(default/xubox_loading1.gif)
center
center
no-repeat
#000
}
.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
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment