Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zui
提交
17bcf127
Z
zui
项目概览
易企天创
/
zui
10 个月 前同步成功
通知
6
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
37
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
37
Issue
37
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
17bcf127
编写于
1月 08, 2015
作者:
C
Catouse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
* rebuilt.
上级
2621f6ba
变更
19
展开全部
隐藏空白更改
内联
并排
Showing
19 changed file
with
510 addition
and
245 deletion
+510
-245
Gruntfile.js
Gruntfile.js
+1
-1
dist/css/zui.css
dist/css/zui.css
+28
-8
dist/css/zui.css.map
dist/css/zui.css.map
+1
-1
dist/css/zui.lite.css
dist/css/zui.lite.css
+8
-2
dist/css/zui.lite.css.map
dist/css/zui.lite.css.map
+1
-1
dist/css/zui.lite.min.css
dist/css/zui.lite.min.css
+3
-3
dist/css/zui.min.css
dist/css/zui.min.css
+3
-3
dist/js/zui.js
dist/js/zui.js
+161
-72
dist/js/zui.lite.js
dist/js/zui.lite.js
+59
-36
dist/js/zui.lite.min.js
dist/js/zui.lite.min.js
+4
-4
dist/js/zui.min.js
dist/js/zui.min.js
+5
-5
docs/basic.html
docs/basic.html
+8
-8
docs/css/zui.css
docs/css/zui.css
+28
-8
docs/css/zui.css.map
docs/css/zui.css.map
+1
-1
docs/css/zui.min.css
docs/css/zui.min.css
+3
-3
docs/example/modals.html
docs/example/modals.html
+5
-1
docs/js/zui.js
docs/js/zui.js
+162
-72
docs/js/zui.min.js
docs/js/zui.min.js
+7
-6
package.json
package.json
+22
-10
未找到文件。
Gruntfile.js
浏览文件 @
17bcf127
...
...
@@ -222,7 +222,7 @@ module.exports = function(grunt)
build
=
{
title
:
buildLib
.
name
,
dest
:
"
dist/lib/
"
+
name
+
"
/
"
,
dest
:
'
dist/lib/
'
+
name
+
'
/
'
,
filename
:
name
,
includes
:
[
name
]
};
...
...
dist/css/zui.css
浏览文件 @
17bcf127
/*!
* ZUI - v1.2.1 - 201
4-12-11
* ZUI - v1.2.1 - 201
5-01-08
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 201
4
cnezsoft.com; Licensed MIT
* Copyright (c) 201
5
cnezsoft.com; Licensed MIT
*/
/* Some code copy from Bootstrap v3.0.0 by @fat and @mdo. (Copyright 2013 Twitter, Inc. Licensed under http://www.apache.org/licenses/)*/
...
...
@@ -6215,6 +6215,12 @@ ol.linenums li {
-webkit-box-shadow
:
0
3px
9px
rgba
(
0
,
0
,
0
,
.5
);
box-shadow
:
0
3px
9px
rgba
(
0
,
0
,
0
,
.5
);
}
/* full screen modal */
.modal-fullscreen
.modal-dialog
{
width
:
100%
!important
;
height
:
100%
!important
;
border-radius
:
0
;
}
.modal-backdrop
{
position
:
fixed
;
top
:
0
;
...
...
@@ -7784,8 +7790,8 @@ body.article-content {
margin-left
:
4px
;
}
.dashboard
.panel
{
-webkit-box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
-webkit-box-shadow
:
0
2px
5px
rgba
(
0
,
0
,
0
,
.1
);
box-shadow
:
0
2px
5px
rgba
(
0
,
0
,
0
,
.1
);
}
.dashboard
.panel-body
{
padding
:
6px
10px
;
...
...
@@ -7807,8 +7813,8 @@ body.article-content {
}
.dashboard
.panel-dragging
{
color
:
#fff
;
background
:
rgba
(
0
,
0
,
0
,
.
3
);
border
:
1px
solid
rgba
(
255
,
255
,
255
,
.1
)
;
background
:
rgba
(
0
,
0
,
0
,
.
1
);
border
:
1px
solid
#fff
;
-webkit-box-shadow
:
none
!important
;
box-shadow
:
none
!important
;
}
...
...
@@ -7821,8 +7827,8 @@ body.article-content {
cursor
:
move
;
background
:
rgba
(
255
,
255
,
255
,
.5
);
border
:
2px
solid
rgba
(
255
,
255
,
255
,
.9
);
-webkit-box-shadow
:
1px
2
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
box-shadow
:
1px
2
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
-webkit-box-shadow
:
1px
5
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
box-shadow
:
1px
5
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
}
.dashboard
.panel-dragging-shadow
>
*
{
filter
:
alpha
(
opacity
=
70
);
...
...
@@ -7847,6 +7853,20 @@ body.article-content {
.dashboard.dashboard-holding
.dragging-col
{
display
:
none
;
}
.dashboard-inverse
{
background-color
:
#108bf1
;
}
.dashboard-inverse
.panel
{
-webkit-box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
}
.dashboard-inverse
.panel-dragging
{
background
:
rgba
(
0
,
0
,
0
,
.3
);
}
.dashboard-inverse
.panel-dragging-shadow
{
-webkit-box-shadow
:
1px
2px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
box-shadow
:
1px
2px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
}
.board-item
{
padding
:
6px
10px
;
margin-bottom
:
5px
;
...
...
dist/css/zui.css.map
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
dist/css/zui.lite.css
浏览文件 @
17bcf127
/*!
* ZUI - v1.2.1 - 201
4-12-05
* ZUI - v1.2.1 - 201
5-01-08
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 201
4
cnezsoft.com; Licensed MIT
* Copyright (c) 201
5
cnezsoft.com; Licensed MIT
*/
/* Some code copy from Bootstrap v3.0.0 by @fat and @mdo. (Copyright 2013 Twitter, Inc. Licensed under http://www.apache.org/licenses/)*/
...
...
@@ -5111,6 +5111,12 @@ ol.linenums li {
-webkit-box-shadow
:
0
3px
9px
rgba
(
0
,
0
,
0
,
.5
);
box-shadow
:
0
3px
9px
rgba
(
0
,
0
,
0
,
.5
);
}
/* full screen modal */
.modal-fullscreen
.modal-dialog
{
width
:
100%
!important
;
height
:
100%
!important
;
border-radius
:
0
;
}
.modal-backdrop
{
position
:
fixed
;
top
:
0
;
...
...
dist/css/zui.lite.css.map
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
dist/css/zui.lite.min.css
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
dist/css/zui.min.css
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
dist/js/zui.js
浏览文件 @
17bcf127
/*!
* ZUI - v1.2.1 - 201
4-12-11
* ZUI - v1.2.1 - 201
5-01-08
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 201
4
cnezsoft.com; Licensed MIT
* Copyright (c) 201
5
cnezsoft.com; Licensed MIT
*/
/* Some code copy from Bootstrap v3.0.0 by @fat and @mdo. (Copyright 2013 Twitter, Inc. Licensed under http://www.apache.org/licenses/)*/
...
...
@@ -1938,10 +1938,6 @@
top
:
event
.
pageY
};
var
containerOffset
=
$container
.
offset
();
// var startPosition = {
// left: startOffset.left - containerOffset.left,
// top: startOffset.top - containerOffset.top
// };
var
clickOffset
=
{
left
:
startMouseOffset
.
left
-
startOffset
.
left
,
top
:
startMouseOffset
.
top
-
startOffset
.
top
...
...
@@ -1998,10 +1994,6 @@
top
:
offset
.
top
-
containerOffset
.
top
};
shadow
.
css
(
position
);
// var moveOffset = {
// left: mouseOffset.left - lastMouseOffset.left,
// top: mouseOffset.top - lastMouseOffset.top
// };
lastMouseOffset
.
left
=
mouseOffset
.
left
;
lastMouseOffset
.
top
=
mouseOffset
.
top
;
...
...
@@ -2018,8 +2010,8 @@
{
var
t
=
$
(
this
);
var
tPos
=
t
.
offset
();
var
tW
=
t
.
w
idth
(),
tH
=
t
.
h
eight
(),
var
tW
=
t
.
outerW
idth
(),
tH
=
t
.
outerH
eight
(),
tX
=
tPos
.
left
+
setting
.
sensorOffsetX
,
tY
=
tPos
.
top
+
setting
.
sensorOffsetY
;
...
...
@@ -2668,7 +2660,9 @@
if
(
!
$
.
fn
.
modal
)
throw
new
Error
(
'
Modal trigger requires modal.js
'
);
// ONCE MODAL CLASS DEFINITION
var
NAME
=
'
zui.modaltrigger
'
;
// MODAL TRIGGER CLASS DEFINITION
// ======================
var
ModalTrigger
=
function
(
options
)
{
...
...
@@ -2743,10 +2737,10 @@
var
$modal
=
$
(
'
#
'
+
options
.
name
);
if
(
$modal
.
length
)
{
if
(
!
th
is
.
isShown
)
$modal
.
off
(
'
.zui.modal
'
);
if
(
!
th
at
.
isShown
)
$modal
.
off
(
'
.zui.modal
'
);
$modal
.
remove
();
}
$modal
=
$
(
'
<div id="
'
+
options
.
name
+
'
" class="modal modal-trigger"><div class="icon-spinner icon-spin loader"></div><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button class="close" data-dismiss="modal">×</button><h4 class="modal-title"><i class="modal-icon"></i> <span class="modal-title-name"></span></h4></div><div class="modal-body"></div></div></div></div>
'
).
appendTo
(
'
body
'
);
$modal
=
$
(
'
<div id="
'
+
options
.
name
+
'
" class="modal modal-trigger"><div class="icon-spinner icon-spin loader"></div><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button class="close" data-dismiss="modal">×</button><h4 class="modal-title"><i class="modal-icon"></i> <span class="modal-title-name"></span></h4></div><div class="modal-body"></div></div></div></div>
'
).
appendTo
(
'
body
'
)
.
data
(
NAME
,
that
)
;
var
bindEvent
=
function
(
optonName
,
eventName
)
{
...
...
@@ -2803,7 +2797,6 @@
var
readyToShow
=
function
(
delay
)
{
if
(
typeof
delay
===
'
undefined
'
)
delay
=
300
;
// $modal.removeClass('fade');
setTimeout
(
function
()
{
$dialog
=
$modal
.
find
(
'
.modal-dialog
'
);
...
...
@@ -2811,14 +2804,17 @@
{
$dialog
.
css
(
'
width
'
,
options
.
width
);
}
if
(
options
.
height
&&
options
.
height
!=
'
auto
'
)
$dialog
.
css
(
'
height
'
,
options
.
height
);
if
(
options
.
height
&&
options
.
height
!=
'
auto
'
)
{
$dialog
.
css
(
'
height
'
,
options
.
height
);
if
(
options
.
type
===
'
iframe
'
)
$body
.
css
(
'
height
'
,
$dialog
.
height
()
-
$header
.
outerHeight
());
}
that
.
ajustPosition
(
options
.
position
);
// if(options.fade) $modal.addClass('fade');
$modal
.
removeClass
(
'
modal-loading
'
);
if
(
options
.
type
!=
'
iframe
'
)
{
$dialog
.
off
(
'
resize.
zui.modaltrigger
'
).
on
(
'
resize.zui.modaltrigger
'
,
function
()
$dialog
.
off
(
'
resize.
'
+
NAME
).
on
(
'
resize.
'
+
NAME
,
function
()
{
that
.
ajustPosition
();
});
...
...
@@ -2876,7 +2872,6 @@
var
frame
=
document
.
getElementById
(
iframeName
);
frame
.
onload
=
frame
.
onreadystatechange
=
function
()
{
$modal
.
attr
(
'
ref
'
,
frame
.
contentWindow
.
location
.
href
);
if
(
that
.
firstLoad
)
$modal
.
addClass
(
'
modal-loading
'
);
if
(
this
.
readyState
&&
this
.
readyState
!=
'
complete
'
)
return
;
that
.
firstLoad
=
false
;
...
...
@@ -2888,6 +2883,7 @@
try
{
$modal
.
attr
(
'
ref
'
,
frame
.
contentWindow
.
location
.
href
);
var
frame$
=
window
.
frames
[
iframeName
].
$
;
if
(
frame$
&&
options
.
height
===
'
auto
'
&&
options
.
size
!=
'
fullscreen
'
)
{
...
...
@@ -2909,7 +2905,7 @@
setTimeout
(
ajustFrameSize
,
100
);
$framebody
.
off
(
'
resize.
zui.modaltrigger
'
).
on
(
'
resize.zui.modaltrigger
'
,
ajustFrameSize
);
$framebody
.
off
(
'
resize.
'
+
NAME
).
on
(
'
resize.
'
+
NAME
,
ajustFrameSize
);
}
frame$
.
extend
(
...
...
@@ -2927,18 +2923,25 @@
{
$
.
get
(
options
.
url
,
function
(
data
)
{
var
$data
=
$
(
data
);
if
(
$data
.
hasClass
(
'
modal-dialog
'
))
{
$dialog
.
replaceWith
(
$data
);
}
else
if
(
$data
.
hasClass
(
'
modal-content
'
))
try
{
$dialog
.
find
(
'
.modal-content
'
).
replaceWith
(
$data
);
var
$data
=
$
(
data
);
if
(
$data
.
hasClass
(
'
modal-dialog
'
))
{
$dialog
.
replaceWith
(
$data
);
}
else
if
(
$data
.
hasClass
(
'
modal-content
'
))
{
$dialog
.
find
(
'
.modal-content
'
).
replaceWith
(
$data
);
}
else
{
$body
.
wrapInner
(
$data
);
}
}
else
catch
(
e
)
{
$
body
.
wrapInner
(
$
data
);
$
modal
.
html
(
data
);
}
$modal
.
callEvent
(
'
loaded.zui.modal
'
,
{
...
...
@@ -2959,16 +2962,20 @@
ModalTrigger
.
prototype
.
close
=
function
(
callback
,
redirect
)
{
this
.
$modal
.
on
(
'
hidden.zui.modal
'
,
function
(
)
if
(
callback
||
redirect
)
{
if
(
$
.
isFunction
(
callback
))
callback
();
if
(
typeof
redirect
===
'
string
'
)
this
.
$modal
.
on
(
'
hidden.zui.modal
'
,
function
()
{
if
(
redirect
===
'
this
'
)
window
.
location
.
reload
();
else
window
.
location
=
redirect
;
}
}).
modal
(
'
hide
'
);
if
(
$
.
isFunction
(
callback
))
callback
();
if
(
typeof
redirect
===
'
string
'
)
{
if
(
redirect
===
'
this
'
)
window
.
location
.
reload
();
else
window
.
location
=
redirect
;
}
});
}
this
.
$modal
.
modal
(
'
hide
'
);
};
ModalTrigger
.
prototype
.
toggle
=
function
(
options
)
...
...
@@ -2990,18 +2997,18 @@
return
$
(
this
).
each
(
function
()
{
var
$this
=
$
(
this
);
var
data
=
$this
.
data
(
'
zui.modaltrigger
'
),
var
data
=
$this
.
data
(
NAME
),
options
=
$
.
extend
(
{
title
:
$this
.
attr
(
'
title
'
)
||
$this
.
text
(),
url
:
$this
.
attr
(
'
href
'
),
type
:
$this
.
hasClass
(
'
iframe
'
)
?
'
iframe
'
:
''
},
$this
.
data
(),
$
.
isPlainObject
(
option
)
&&
option
);
if
(
!
data
)
$this
.
data
(
'
zui.modaltrigger
'
,
(
data
=
new
ModalTrigger
(
options
)));
if
(
!
data
)
$this
.
data
(
NAME
,
(
data
=
new
ModalTrigger
(
options
)));
if
(
typeof
option
==
'
string
'
)
data
[
option
](
settings
);
else
if
(
options
.
show
)
data
.
show
(
settings
);
$this
.
on
((
options
.
trigger
||
'
click
'
)
+
'
.toggle.
zui.modaltrigger
'
,
function
(
e
)
$this
.
on
((
options
.
trigger
||
'
click
'
)
+
'
.toggle.
'
+
NAME
,
function
(
e
)
{
data
.
toggle
(
options
);
if
(
$this
.
is
(
'
a
'
))
e
.
preventDefault
();
...
...
@@ -3035,14 +3042,22 @@
return
null
;
}
window
.
closeModal
=
function
(
callback
,
redirect
,
modal
)
// callback, redirect, modal
window
.
closeModal
=
function
(
modal
,
callback
,
redirect
)
{
if
(
$
.
isFunction
(
modal
))
{
var
oldModal
=
redirect
;
redirect
=
callback
;
callback
=
modal
;
modal
=
oldModal
;
}
modal
=
getModal
(
modal
);
if
(
modal
&&
modal
.
length
)
{
modal
.
each
(
function
()
{
$
(
this
).
data
(
'
zui.modaltrigger
'
).
close
(
callback
,
redirect
);
$
(
this
).
data
(
NAME
).
close
(
callback
,
redirect
);
});
}
};
...
...
@@ -3062,7 +3077,7 @@
ajustModalPosition
:
window
.
ajustModalPosition
});
$
(
document
).
on
(
'
click.
zui.modaltrigger
.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
$
(
document
).
on
(
'
click.
'
+
NAME
+
'
.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
);
var
href
=
$this
.
attr
(
'
href
'
);
...
...
@@ -3075,7 +3090,7 @@
{}
if
(
!
$target
||
!
$target
.
length
)
{
if
(
!
$this
.
data
(
'
zui.modaltrigger
'
))
if
(
!
$this
.
data
(
NAME
))
{
$this
.
modalTrigger
(
{
...
...
@@ -3084,7 +3099,7 @@
}
else
{
$this
.
trigger
(
'
.toggle.
zui.modaltrigger
'
);
$this
.
trigger
(
'
.toggle.
'
+
NAME
);
}
}
if
(
$this
.
is
(
'
a
'
))
...
...
@@ -5599,6 +5614,7 @@
Dashboard
.
DEFAULTS
=
{
height
:
360
,
shadowType
:
'
circle
'
,
sensitive
:
false
,
circleShadowSize
:
100
};
...
...
@@ -5632,7 +5648,7 @@
Dashboard
.
prototype
.
handleRefreshEvent
=
function
()
{
this
.
$
.
on
(
'
.
click
'
,
'
.refresh-panel
'
,
function
()
this
.
$
.
on
(
'
click
'
,
'
.refresh-panel
'
,
function
()
{
var
panel
=
$
(
this
).
closest
(
'
.panel
'
);
refreshPanel
(
panel
);
...
...
@@ -5656,8 +5672,10 @@
event
.
stopPropagation
();
});
var
pColClass
;
this
.
$
.
find
(
'
.panel-heading
'
).
mousedown
(
function
(
event
)
{
// console.log('--------------------------------');
var
panel
=
$
(
this
).
closest
(
'
.panel
'
);
var
pCol
=
panel
.
parent
();
var
row
=
panel
.
closest
(
'
.row
'
);
...
...
@@ -5665,11 +5683,15 @@
var
pos
=
panel
.
offset
();
var
dPos
=
dashboard
.
offset
();
var
dColShadow
=
row
.
find
(
'
.dragging-col-holder
'
);
var
sWidth
=
panel
.
width
(),
sHeight
=
panel
.
height
(),
sX1
,
sY1
,
sX2
,
sY2
,
moveFn
,
dropCol
,
dropBefore
,
nextDropCol
;
if
(
!
dColShadow
.
length
)
{
dColShadow
=
$
(
'
<div class="dragging-col-holder"><div class="panel"></div></div>
'
).
addClass
(
row
.
children
().
attr
(
'
class
'
)).
removeClass
(
'
dragging-col
'
).
appendTo
(
row
);
dColShadow
=
$
(
'
<div class="dragging-col-holder"><div class="panel"></div></div>
'
).
removeClass
(
'
dragging-col
'
).
appendTo
(
row
);
}
if
(
pColClass
)
dColShadow
.
removeClass
(
pColClass
);
dColShadow
.
addClass
(
pColClass
=
pCol
.
attr
(
'
class
'
));
dColShadow
.
insertBefore
(
pCol
).
find
(
'
.panel
'
).
replaceWith
(
panel
.
clone
().
addClass
(
'
panel-dragging panel-dragging-holder
'
));
dashboard
.
addClass
(
'
dashboard-dragging
'
);
...
...
@@ -5677,10 +5699,10 @@
dPanel
.
css
(
{
left
:
pos
.
left
-
dPos
.
left
,
top
:
pos
.
top
-
dPos
.
top
,
width
:
panel
.
width
()
,
height
:
panel
.
height
()
left
:
pos
.
left
-
dPos
.
left
,
top
:
pos
.
top
-
dPos
.
top
,
width
:
sWidth
,
height
:
sHeight
}).
appendTo
(
dashboard
).
data
(
'
mouseOffset
'
,
{
x
:
event
.
pageX
-
pos
.
left
+
dPos
.
left
,
...
...
@@ -5694,16 +5716,15 @@
{
dPanel
.
css
(
{
left
:
event
.
pageX
-
dPos
.
left
-
halfCircleSize
,
top
:
event
.
pageY
-
dPos
.
top
-
halfCircleSize
,
width
:
circleSize
,
height
:
circleSize
left
:
event
.
pageX
-
dPos
.
left
-
halfCircleSize
,
top
:
event
.
pageY
-
dPos
.
top
-
halfCircleSize
,
width
:
circleSize
,
height
:
circleSize
}).
data
(
'
mouseOffset
'
,
{
x
:
dPos
.
left
+
halfCircleSize
,
y
:
dPos
.
top
+
halfCircleSize
});
},
100
);
}
...
...
@@ -5712,21 +5733,28 @@
function
mouseMove
(
event
)
{
// console.log('......................');
var
offset
=
dPanel
.
data
(
'
mouseOffset
'
);
sX1
=
event
.
pageX
-
offset
.
x
;
sY1
=
event
.
pageY
-
offset
.
y
;
sX2
=
sX1
+
sWidth
;
sY2
=
sY1
+
sHeight
;
dPanel
.
css
(
{
left
:
event
.
pageX
-
offset
.
x
,
top
:
event
.
pageY
-
offset
.
y
left
:
sX1
,
top
:
sY1
});
row
.
find
(
'
.dragging-in
'
).
removeClass
(
'
dragging-in
'
);
var
before
=
false
;
row
.
children
().
each
(
function
()
dropBefore
=
false
;
dropCol
=
null
;
var
area
=
0
,
thisArea
;
row
.
children
(
'
:not(.dragging-col)
'
).
each
(
function
()
{
var
col
=
$
(
this
);
if
(
col
.
hasClass
(
'
dragging-col-holder
'
))
if
(
col
.
hasClass
(
'
dragging-col-holder
'
))
{
before
=
true
;
dropBefore
=
(
!
options
.
sensitive
)
||
(
area
<
100
)
;
return
true
;
}
var
p
=
col
.
children
(
'
.panel
'
);
...
...
@@ -5735,24 +5763,62 @@
pH
=
p
.
height
();
var
pX
=
pP
.
left
,
pY
=
pP
.
top
;
var
mX
=
event
.
pageX
,
mY
=
event
.
pageY
;
if
(
mX
>
pX
&&
mY
>
pY
&&
mX
<
(
pX
+
pW
)
&&
mY
<
(
pY
+
pH
)
)
if
(
options
.
sensitive
)
{
// var dCol = row.find('.dragging-col');
col
.
addClass
(
'
dragging-in
'
);
if
(
before
)
dColShadow
.
insertAfter
(
col
);
else
dColShadow
.
insertBefore
(
col
);
dashboard
.
addClass
(
'
dashboard-holding
'
);
return
false
;
pX
-=
dPos
.
left
;
pY
-=
dPos
.
top
;
thisArea
=
getIntersectArea
(
sX1
,
sY1
,
sX2
,
sY2
,
pX
,
pY
,
pX
+
pW
,
pY
+
pH
);
if
(
thisArea
>
100
&&
thisArea
>
area
&&
thisArea
>
Math
.
min
(
getRectArea
(
sX1
,
sY1
,
sX2
,
sY2
),
getRectArea
(
pX
,
pY
,
pX
+
pW
,
pY
+
pH
))
/
3
)
{
area
=
thisArea
;
dropCol
=
col
;
}
// if(thisArea)
// {
// console.log('panel ' + col.data('id'), '({0}, {1}, {2}, {3}), ({4}, {5}, {6}, {7})'.format(sX1, sY1, sX2, sY2, pX, pY, pX + pW, pY + pH));
// }
}
else
{
var
mX
=
event
.
pageX
,
mY
=
event
.
pageY
;
if
(
mX
>
pX
&&
mY
>
pY
&&
mX
<
(
pX
+
pW
)
&&
mY
<
(
pY
+
pH
))
{
// var dCol = row.find('.dragging-col');
dropCol
=
col
;
return
false
;
}
}
});
if
(
dropCol
)
{
if
(
moveFn
)
clearTimeout
(
moveFn
);
nextDropCol
=
dropCol
;
moveFn
=
setTimeout
(
movePanel
,
50
);
}
event
.
preventDefault
();
}
function
movePanel
()
{
if
(
nextDropCol
)
{
nextDropCol
.
addClass
(
'
dragging-in
'
);
if
(
dropBefore
)
dColShadow
.
insertAfter
(
nextDropCol
);
else
dColShadow
.
insertBefore
(
nextDropCol
);
dashboard
.
addClass
(
'
dashboard-holding
'
);
moveFn
=
null
;
nextDropCol
=
null
;
}
}
function
mouseUp
(
event
)
{
if
(
moveFn
)
clearTimeout
(
moveFn
);
var
oldOrder
=
panel
.
data
(
'
order
'
);
panel
.
parent
().
insertAfter
(
dColShadow
);
var
newOrder
=
0
;
...
...
@@ -5843,6 +5909,29 @@
});
}
function
getRectArea
(
x1
,
y1
,
x2
,
y2
)
{
return
Math
.
abs
((
x2
-
x1
)
*
(
y2
-
y1
));
}
function
isPointInner
(
x
,
y
,
x1
,
y1
,
x2
,
y2
)
{
return
x
>=
x1
&&
x
<=
x2
&&
y
>=
y1
&&
y
<=
y2
;
}
function
getIntersectArea
(
ax1
,
ay1
,
ax2
,
ay2
,
bx1
,
by1
,
bx2
,
by2
)
{
var
x1
=
Math
.
max
(
ax1
,
bx1
),
y1
=
Math
.
max
(
ay1
,
by1
),
x2
=
Math
.
min
(
ax2
,
bx2
),
y2
=
Math
.
min
(
ay2
,
by2
);
if
(
isPointInner
(
x1
,
y1
,
ax1
,
ay1
,
ax2
,
ay2
)
&&
isPointInner
(
x2
,
y2
,
ax1
,
ay1
,
ax2
,
ay2
)
&&
isPointInner
(
x1
,
y1
,
bx1
,
by1
,
bx2
,
by2
)
&&
isPointInner
(
x2
,
y2
,
bx1
,
by1
,
bx2
,
by2
))
{
return
getRectArea
(
x1
,
y1
,
x2
,
y2
);
}
return
0
;
}
Dashboard
.
prototype
.
init
=
function
()
{
this
.
handlePanelHeight
();
...
...
dist/js/zui.lite.js
浏览文件 @
17bcf127
/*!
* ZUI - v1.2.1 - 201
4-12-05
* ZUI - v1.2.1 - 201
5-01-08
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 201
4
cnezsoft.com; Licensed MIT
* Copyright (c) 201
5
cnezsoft.com; Licensed MIT
*/
/* Some code copy from Bootstrap v3.0.0 by @fat and @mdo. (Copyright 2013 Twitter, Inc. Licensed under http://www.apache.org/licenses/)*/
...
...
@@ -1895,7 +1895,9 @@
if
(
!
$
.
fn
.
modal
)
throw
new
Error
(
'
Modal trigger requires modal.js
'
);
// ONCE MODAL CLASS DEFINITION
var
NAME
=
'
zui.modaltrigger
'
;
// MODAL TRIGGER CLASS DEFINITION
// ======================
var
ModalTrigger
=
function
(
options
)
{
...
...
@@ -1970,10 +1972,10 @@
var
$modal
=
$
(
'
#
'
+
options
.
name
);
if
(
$modal
.
length
)
{
if
(
!
th
is
.
isShown
)
$modal
.
off
(
'
.zui.modal
'
);
if
(
!
th
at
.
isShown
)
$modal
.
off
(
'
.zui.modal
'
);
$modal
.
remove
();
}
$modal
=
$
(
'
<div id="
'
+
options
.
name
+
'
" class="modal modal-trigger"><div class="icon-spinner icon-spin loader"></div><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button class="close" data-dismiss="modal">×</button><h4 class="modal-title"><i class="modal-icon"></i> <span class="modal-title-name"></span></h4></div><div class="modal-body"></div></div></div></div>
'
).
appendTo
(
'
body
'
);
$modal
=
$
(
'
<div id="
'
+
options
.
name
+
'
" class="modal modal-trigger"><div class="icon-spinner icon-spin loader"></div><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button class="close" data-dismiss="modal">×</button><h4 class="modal-title"><i class="modal-icon"></i> <span class="modal-title-name"></span></h4></div><div class="modal-body"></div></div></div></div>
'
).
appendTo
(
'
body
'
)
.
data
(
NAME
,
that
)
;
var
bindEvent
=
function
(
optonName
,
eventName
)
{
...
...
@@ -2030,7 +2032,6 @@
var
readyToShow
=
function
(
delay
)
{
if
(
typeof
delay
===
'
undefined
'
)
delay
=
300
;
// $modal.removeClass('fade');
setTimeout
(
function
()
{
$dialog
=
$modal
.
find
(
'
.modal-dialog
'
);
...
...
@@ -2038,14 +2039,17 @@
{
$dialog
.
css
(
'
width
'
,
options
.
width
);
}
if
(
options
.
height
&&
options
.
height
!=
'
auto
'
)
$dialog
.
css
(
'
height
'
,
options
.
height
);
if
(
options
.
height
&&
options
.
height
!=
'
auto
'
)
{
$dialog
.
css
(
'
height
'
,
options
.
height
);
if
(
options
.
type
===
'
iframe
'
)
$body
.
css
(
'
height
'
,
$dialog
.
height
()
-
$header
.
outerHeight
());
}
that
.
ajustPosition
(
options
.
position
);
// if(options.fade) $modal.addClass('fade');
$modal
.
removeClass
(
'
modal-loading
'
);
if
(
options
.
type
!=
'
iframe
'
)
{
$dialog
.
off
(
'
resize.
zui.modaltrigger
'
).
on
(
'
resize.zui.modaltrigger
'
,
function
()
$dialog
.
off
(
'
resize.
'
+
NAME
).
on
(
'
resize.
'
+
NAME
,
function
()
{
that
.
ajustPosition
();
});
...
...
@@ -2103,7 +2107,6 @@
var
frame
=
document
.
getElementById
(
iframeName
);
frame
.
onload
=
frame
.
onreadystatechange
=
function
()
{
$modal
.
attr
(
'
ref
'
,
frame
.
contentWindow
.
location
.
href
);
if
(
that
.
firstLoad
)
$modal
.
addClass
(
'
modal-loading
'
);
if
(
this
.
readyState
&&
this
.
readyState
!=
'
complete
'
)
return
;
that
.
firstLoad
=
false
;
...
...
@@ -2115,6 +2118,7 @@
try
{
$modal
.
attr
(
'
ref
'
,
frame
.
contentWindow
.
location
.
href
);
var
frame$
=
window
.
frames
[
iframeName
].
$
;
if
(
frame$
&&
options
.
height
===
'
auto
'
&&
options
.
size
!=
'
fullscreen
'
)
{
...
...
@@ -2136,7 +2140,7 @@
setTimeout
(
ajustFrameSize
,
100
);
$framebody
.
off
(
'
resize.
zui.modaltrigger
'
).
on
(
'
resize.zui.modaltrigger
'
,
ajustFrameSize
);
$framebody
.
off
(
'
resize.
'
+
NAME
).
on
(
'
resize.
'
+
NAME
,
ajustFrameSize
);
}
frame$
.
extend
(
...
...
@@ -2154,18 +2158,25 @@
{
$
.
get
(
options
.
url
,
function
(
data
)
{
var
$data
=
$
(
data
);
if
(
$data
.
hasClass
(
'
modal-dialog
'
))
{
$dialog
.
replaceWith
(
$data
);
}
else
if
(
$data
.
hasClass
(
'
modal-content
'
))
try
{
$dialog
.
find
(
'
.modal-content
'
).
replaceWith
(
$data
);
var
$data
=
$
(
data
);
if
(
$data
.
hasClass
(
'
modal-dialog
'
))
{
$dialog
.
replaceWith
(
$data
);
}
else
if
(
$data
.
hasClass
(
'
modal-content
'
))
{
$dialog
.
find
(
'
.modal-content
'
).
replaceWith
(
$data
);
}
else
{
$body
.
wrapInner
(
$data
);
}
}
else
catch
(
e
)
{
$
body
.
wrapInner
(
$
data
);
$
modal
.
html
(
data
);
}
$modal
.
callEvent
(
'
loaded.zui.modal
'
,
{
...
...
@@ -2186,16 +2197,20 @@
ModalTrigger
.
prototype
.
close
=
function
(
callback
,
redirect
)
{
this
.
$modal
.
on
(
'
hidden.zui.modal
'
,
function
(
)
if
(
callback
||
redirect
)
{
if
(
$
.
isFunction
(
callback
))
callback
();
if
(
typeof
redirect
===
'
string
'
)
this
.
$modal
.
on
(
'
hidden.zui.modal
'
,
function
()
{
if
(
redirect
===
'
this
'
)
window
.
location
.
reload
();
else
window
.
location
=
redirect
;
}
}).
modal
(
'
hide
'
);
if
(
$
.
isFunction
(
callback
))
callback
();
if
(
typeof
redirect
===
'
string
'
)
{
if
(
redirect
===
'
this
'
)
window
.
location
.
reload
();
else
window
.
location
=
redirect
;
}
});
}
this
.
$modal
.
modal
(
'
hide
'
);
};
ModalTrigger
.
prototype
.
toggle
=
function
(
options
)
...
...
@@ -2217,18 +2232,18 @@
return
$
(
this
).
each
(
function
()
{
var
$this
=
$
(
this
);
var
data
=
$this
.
data
(
'
zui.modaltrigger
'
),
var
data
=
$this
.
data
(
NAME
),
options
=
$
.
extend
(
{
title
:
$this
.
attr
(
'
title
'
)
||
$this
.
text
(),
url
:
$this
.
attr
(
'
href
'
),
type
:
$this
.
hasClass
(
'
iframe
'
)
?
'
iframe
'
:
''
},
$this
.
data
(),
$
.
isPlainObject
(
option
)
&&
option
);
if
(
!
data
)
$this
.
data
(
'
zui.modaltrigger
'
,
(
data
=
new
ModalTrigger
(
options
)));
if
(
!
data
)
$this
.
data
(
NAME
,
(
data
=
new
ModalTrigger
(
options
)));
if
(
typeof
option
==
'
string
'
)
data
[
option
](
settings
);
else
if
(
options
.
show
)
data
.
show
(
settings
);
$this
.
on
((
options
.
trigger
||
'
click
'
)
+
'
.toggle.
zui.modaltrigger
'
,
function
(
e
)
$this
.
on
((
options
.
trigger
||
'
click
'
)
+
'
.toggle.
'
+
NAME
,
function
(
e
)
{
data
.
toggle
(
options
);
if
(
$this
.
is
(
'
a
'
))
e
.
preventDefault
();
...
...
@@ -2262,14 +2277,22 @@
return
null
;
}
window
.
closeModal
=
function
(
callback
,
redirect
,
modal
)
// callback, redirect, modal
window
.
closeModal
=
function
(
modal
,
callback
,
redirect
)
{
if
(
$
.
isFunction
(
modal
))
{
var
oldModal
=
redirect
;
redirect
=
callback
;
callback
=
modal
;
modal
=
oldModal
;
}
modal
=
getModal
(
modal
);
if
(
modal
&&
modal
.
length
)
{
modal
.
each
(
function
()
{
$
(
this
).
data
(
'
zui.modaltrigger
'
).
close
(
callback
,
redirect
);
$
(
this
).
data
(
NAME
).
close
(
callback
,
redirect
);
});
}
};
...
...
@@ -2289,7 +2312,7 @@
ajustModalPosition
:
window
.
ajustModalPosition
});
$
(
document
).
on
(
'
click.
zui.modaltrigger
.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
$
(
document
).
on
(
'
click.
'
+
NAME
+
'
.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
);
var
href
=
$this
.
attr
(
'
href
'
);
...
...
@@ -2302,7 +2325,7 @@
{}
if
(
!
$target
||
!
$target
.
length
)
{
if
(
!
$this
.
data
(
'
zui.modaltrigger
'
))
if
(
!
$this
.
data
(
NAME
))
{
$this
.
modalTrigger
(
{
...
...
@@ -2311,7 +2334,7 @@
}
else
{
$this
.
trigger
(
'
.toggle.
zui.modaltrigger
'
);
$this
.
trigger
(
'
.toggle.
'
+
NAME
);
}
}
if
(
$this
.
is
(
'
a
'
))
...
...
dist/js/zui.lite.min.js
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
dist/js/zui.min.js
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
docs/basic.html
浏览文件 @
17bcf127
...
...
@@ -674,17 +674,17 @@ base_url: "./"
<h3>
额外颜色
</h3>
<p>
额外的颜色为特殊控件提供的更多的色彩选择。例如各种级别的消息框,特殊作用的按钮,特殊文本等。
</p>
<div
class=
"colorset"
>
<div
class=
"color-red"
></div>
<div
class=
"color-yellow"
></div>
<div
class=
"color-green"
></div>
<div
class=
"color-blue"
></div>
<div
class=
"color-brown"
></div>
<div
class=
"color-purple"
></div>
<div
class=
"color-red"
></div>
<div
class=
"color-yellow"
></div>
<div
class=
"color-green"
></div>
<div
class=
"color-blue"
></div>
<div
class=
"color-brown"
></div>
<div
class=
"color-purple"
></div>
</div>
<div
class=
"colorset"
>
<div
class=
"color-success"
></div>
<div
class=
"color-warning"
></div>
<div
class=
"color-danger"
></div>
<div
class=
"color-warning"
></div>
<div
class=
"color-success"
></div>
<div
class=
"color-info"
></div>
<div
class=
"color-important"
></div>
<div
class=
"color-special"
></div>
...
...
docs/css/zui.css
浏览文件 @
17bcf127
/*!
* ZUI - v1.2.1 - 201
4-12-11
* ZUI - v1.2.1 - 201
5-01-08
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 201
4
cnezsoft.com; Licensed MIT
* Copyright (c) 201
5
cnezsoft.com; Licensed MIT
*/
/* Some code copy from Bootstrap v3.0.0 by @fat and @mdo. (Copyright 2013 Twitter, Inc. Licensed under http://www.apache.org/licenses/)*/
...
...
@@ -6215,6 +6215,12 @@ ol.linenums li {
-webkit-box-shadow
:
0
3px
9px
rgba
(
0
,
0
,
0
,
.5
);
box-shadow
:
0
3px
9px
rgba
(
0
,
0
,
0
,
.5
);
}
/* full screen modal */
.modal-fullscreen
.modal-dialog
{
width
:
100%
!important
;
height
:
100%
!important
;
border-radius
:
0
;
}
.modal-backdrop
{
position
:
fixed
;
top
:
0
;
...
...
@@ -7784,8 +7790,8 @@ body.article-content {
margin-left
:
4px
;
}
.dashboard
.panel
{
-webkit-box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
-webkit-box-shadow
:
0
2px
5px
rgba
(
0
,
0
,
0
,
.1
);
box-shadow
:
0
2px
5px
rgba
(
0
,
0
,
0
,
.1
);
}
.dashboard
.panel-body
{
padding
:
6px
10px
;
...
...
@@ -7807,8 +7813,8 @@ body.article-content {
}
.dashboard
.panel-dragging
{
color
:
#fff
;
background
:
rgba
(
0
,
0
,
0
,
.
3
);
border
:
1px
solid
rgba
(
255
,
255
,
255
,
.1
)
;
background
:
rgba
(
0
,
0
,
0
,
.
1
);
border
:
1px
solid
#fff
;
-webkit-box-shadow
:
none
!important
;
box-shadow
:
none
!important
;
}
...
...
@@ -7821,8 +7827,8 @@ body.article-content {
cursor
:
move
;
background
:
rgba
(
255
,
255
,
255
,
.5
);
border
:
2px
solid
rgba
(
255
,
255
,
255
,
.9
);
-webkit-box-shadow
:
1px
2
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
box-shadow
:
1px
2
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
-webkit-box-shadow
:
1px
5
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
box-shadow
:
1px
5
px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
}
.dashboard
.panel-dragging-shadow
>
*
{
filter
:
alpha
(
opacity
=
70
);
...
...
@@ -7847,6 +7853,20 @@ body.article-content {
.dashboard.dashboard-holding
.dragging-col
{
display
:
none
;
}
.dashboard-inverse
{
background-color
:
#108bf1
;
}
.dashboard-inverse
.panel
{
-webkit-box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
box-shadow
:
0
1px
5px
rgba
(
0
,
0
,
0
,
.15
);
}
.dashboard-inverse
.panel-dragging
{
background
:
rgba
(
0
,
0
,
0
,
.3
);
}
.dashboard-inverse
.panel-dragging-shadow
{
-webkit-box-shadow
:
1px
2px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
box-shadow
:
1px
2px
15px
rgba
(
0
,
0
,
0
,
.5
)
!important
;
}
.board-item
{
padding
:
6px
10px
;
margin-bottom
:
5px
;
...
...
docs/css/zui.css.map
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
docs/css/zui.min.css
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
docs/example/modals.html
浏览文件 @
17bcf127
...
...
@@ -6,7 +6,7 @@
<link
href=
"../css/example.css"
rel=
"stylesheet"
>
<script
src=
"../../assets/jquery.js"
></script>
<script
src=
"../
../dist/
js/zui.js"
></script>
<script
src=
"../js/zui.js"
></script>
<script
src=
"../../assets/google-code-prettify/prettify.js"
></script>
...
...
@@ -309,6 +309,10 @@ $(function()
<br>
<a
href=
"partial/dialog.html"
data-type=
'ajax'
data-toggle=
'modal'
class=
'btn btn-success'
><i
class=
'icon-heart'
></i>
打开ajax对话框
</a>
<a
href=
"partial/dialog.html"
data-type=
'ajax'
data-toggle=
'modal'
class=
'btn btn-success'
data-size=
'fullscreen'
><i
class=
'icon-heart'
></i>
打开全屏的ajax对话框
</a>
<a
href=
"http://www.kuaidi100.com/frame/790px.html"
data-type=
'iframe'
data-toggle=
'modal'
class=
'btn btn-success'
data-width=
"600"
data-height=
"750"
><i
class=
'icon-heart'
></i>
跨域远程内容
</a>
<h3>
变化
</h3>
<h4>
选项
</h4>
<p>
aria-labelledby="myModalTitle"属性指向模态框标题。
</p>
...
...
docs/js/zui.js
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
docs/js/zui.min.js
浏览文件 @
17bcf127
此差异已折叠。
点击以展开。
package.json
浏览文件 @
17bcf127
...
...
@@ -1245,24 +1245,27 @@
"ver"
:
"1.0.0"
,
"dpds"
:
[
"setting"
]
},
"
autotrigger
"
:
"
doc
"
:
{
"name"
:
"
自动触发器
"
,
"name"
:
"
文档
"
,
"src"
:
{
"js"
:
[
"src/js/auto-trigger.js"
]
"less"
:
[
"src/less/doc.less"
],
"js"
:
[
"src/js/doc.js"
]
},
"desc"
:
"操作DOM的快捷方法。"
,
"obsolete"
:
"使用其他组件来实现,不包含在标准版和简洁版中"
,
"ver"
:
"1.1.0"
"desc"
:
"ZUI文档依赖样式和工具"
,
"ver"
:
"1.3.0"
,
"dpds"
:
[
"setting"
],
"custom"
:
true
},
"
tableex
"
:
"
autotrigger
"
:
{
"name"
:
"
表格高级特性
"
,
"name"
:
"
自动触发器
"
,
"src"
:
{
"js"
:
[
"src/js/
table
.js"
]
"js"
:
[
"src/js/
auto-trigger
.js"
]
},
"desc"
:
"操作DOM的快捷方法。"
,
"obsolete"
:
"使用其他组件来实现,不包含在标准版和简洁版中"
,
"ver"
:
"1.1.0"
},
...
...
@@ -1469,6 +1472,15 @@
"bootstrapStatement"
:
true
,
"includes"
:
[
"jqueryex"
,
"basic"
,
"utilities"
,
"scaffolding"
,
"grid"
,
"typography"
,
"header"
,
"button"
,
"progressbar"
,
"image"
,
"divider"
,
"labels"
,
"breadcrumbs"
,
"icons"
,
"close"
,
"scrollbars"
,
"table"
,
"listgroup"
,
"panels"
,
"alerts"
,
"inputgroups"
,
"forms"
,
"code"
,
"pager"
,
"navs"
,
"navbars"
,
"animations"
,
"collapse"
,
"device"
,
"browser"
,
"date"
,
"string"
,
"resize"
,
"scrollspy"
,
"store"
,
"draggable"
,
"droppable"
,
"sortable"
,
"tab"
,
"modals"
,
"modaltrigger"
,
"tooltip"
,
"popovers"
,
"dropdowns"
,
"carousel"
,
"lightbox"
,
"messager"
,
"menu"
,
"bootbox"
,
"article"
,
"comment"
,
"list"
,
"card"
,
"dashboard"
,
"board"
,
"datatable"
,
"calendar"
,
"colorset.test"
,
"hotkey"
,
"autotrigger"
,
"chosenicons"
]
},
"doc2"
:
{
"title"
:
"new document"
,
"dest"
:
"docs/docs/"
,
"filename"
:
"doc"
,
"subdirectories"
:
true
,
"includes"
:
[
"doc"
],
"bundles"
:
[
"doc"
]
},
"zentao"
:
{
"title"
:
"zui for zentao"
,
...
...
@@ -1523,7 +1535,7 @@
"filename"
:
"zui.ranzhi"
,
"subdirectories"
:
true
,
"bootstrapStatement"
:
true
,
"includes"
:
[
"jqueryex"
,
"string"
,
"resize"
,
"date"
,
"basic"
,
"ranzhi.variables"
,
"utilities"
,
"animations"
,
"draggable"
,
"board"
,
"hotkeys"
,
"scaffolding"
,
"grid"
,
"typography"
,
"header"
,
"image"
,
"divider"
,
"labels"
,
"icons"
,
"breadcrumbs"
,
"browser"
,
"close"
,
"inputgroups.basic"
,
"table"
,
"panels"
,
"forms"
,
"code"
,
"pager.basic"
,
"navs"
,
"navbars"
,
"device"
,
"transition"
,
"alerts"
,
"button"
,
"button.group"
,
"collapse"
,
"dropdowns"
,
"modals"
,
"modaltrigger"
,
"tab"
,
"tooltip"
,
"popovers"
,
"imgready"
,
"lightbox"
,
"bootbox"
,
"messager"
,
"color"
,
"droppable"
,
"sortable"
,
"article"
,
"comment"
,
"list"
,
"card"
,
"datatable"
,
"scrollbars"
,
"dashboard"
,
"imgcutter"
,
"menu"
,
"carousel"
,
"listgroup"
,
"
tableex
"
]
"includes"
:
[
"jqueryex"
,
"string"
,
"resize"
,
"date"
,
"basic"
,
"ranzhi.variables"
,
"utilities"
,
"animations"
,
"draggable"
,
"board"
,
"hotkeys"
,
"scaffolding"
,
"grid"
,
"typography"
,
"header"
,
"image"
,
"divider"
,
"labels"
,
"icons"
,
"breadcrumbs"
,
"browser"
,
"close"
,
"inputgroups.basic"
,
"table"
,
"panels"
,
"forms"
,
"code"
,
"pager.basic"
,
"navs"
,
"navbars"
,
"device"
,
"transition"
,
"alerts"
,
"button"
,
"button.group"
,
"collapse"
,
"dropdowns"
,
"modals"
,
"modaltrigger"
,
"tab"
,
"tooltip"
,
"popovers"
,
"imgready"
,
"lightbox"
,
"bootbox"
,
"messager"
,
"color"
,
"droppable"
,
"sortable"
,
"article"
,
"comment"
,
"list"
,
"card"
,
"datatable"
,
"scrollbars"
,
"dashboard"
,
"imgcutter"
,
"menu"
,
"carousel"
,
"listgroup"
,
"
progressbar
"
]
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录