@ -8,7 +8,9 @@ BI.TdLayout = BI.inherit(BI.Layout, {
return BI . extend ( BI . TdLayout . superclass . props . apply ( this , arguments ) , {
baseCls : "bi-td" ,
columnSize : [ ] ,
rowSize : [ ] ,
verticalAlign : BI . VerticalAlign . Middle ,
horizontalAlign : BI . HorizontalAlign . Stretch ,
hgap : 0 ,
vgap : 0 ,
tgap : 0 ,
@ -20,10 +22,11 @@ BI.TdLayout = BI.inherit(BI.Layout, {
} ,
render : function ( ) {
BI . TdLayout . superclass . render . apply ( this , arguments ) ;
var self = this , o = this . options ;
this . $table = BI . Widget . _renderEngine . createElement ( "<table>" ) . attr ( { cellspacing : 0 , cellpadding : 0 } ) . css ( {
position : "relative" ,
width : "100%",
height : "100%",
width : ( o . horizontalAlign === BI . HorizontalAlign . Center || o . horizontalAlign === BI . HorizontalAlign . Stretch ) ? "100%" : "auto ",
height : ( o . verticalAlign !== BI . VerticalAlign . Top ) ? "100%" : "auto ",
"border-spacing" : "0px" ,
border : "none" ,
"border-collapse" : "separate"
@ -72,9 +75,15 @@ BI.TdLayout = BI.inherit(BI.Layout, {
}
}
var height = o . rowSize [ idx ] === "" ? "" : ( o . rowSize [ idx ] < 1 ? ( ( o . rowSize [ idx ] * 100 ) . toFixed ( 1 ) + "%" ) : o . rowSize [ idx ] ) ;
var tr = BI . _lazyCreateWidget ( {
type : "bi.default" ,
tagName : "tr"
tagName : "tr" ,
height : height ,
css : {
"max-height" : BI . isNumber ( o . rowSize [ idx ] ) ? ( o . rowSize [ idx ] <= 1 ? height : height / BI . pixRatio + BI . pixUnit ) : height
}
} ) ;
for ( var i = 0 ; i < arr . length ; i ++ ) {
@ -102,7 +111,16 @@ BI.TdLayout = BI.inherit(BI.Layout, {
} ) ;
}
first ( w , this . rows ++ , i ) ;
var width = o . columnSize [ i ] === "" ? "" : ( o . columnSize [ i ] < 1 ? ( ( o . columnSize [ i ] * 100 ) . toFixed ( 1 ) + "%" ) : ( i === 0 ? o . hgap : 0 ) + o . hgap + o . lgap + o . rgap + o . columnSize [ i ] ) ;
var width = "" ;
var columnSize = o . columnSize . length > 0 ? o . columnSize [ i ] : item . width ;
if ( columnSize > 0 ) {
width = columnSize < 1 ?
( ( columnSize * 100 ) . toFixed ( 1 ) + "%" )
: ( columnSize + ( i === 0 ? o . hgap : 0 ) + o . hgap + o . lgap + o . rgap ) ;
}
if ( columnSize === "" && o . columnSize . indexOf ( "fill" ) >= 0 ) {
width = 2 ;
}
var td = BI . _lazyCreateWidget ( {
type : "bi.default" ,
width : width ,
@ -113,8 +131,10 @@ BI.TdLayout = BI.inherit(BI.Layout, {
// 1、由于直接对td设置最大宽度是在规范中未定义的, 所以要使用类似td:firstChild来迂回实现
// 2、不能给多个td设置最大宽度,这样只会平分宽度
// 3、多百分比宽度就算了
if ( columnSize > 0 ) {
td . element . css ( { "max-width" : columnSize < 1 ? width : width / BI . pixRatio + BI . pixUnit } ) ;
}
td . element . css ( {
"max-width" : BI . isNumber ( o . columnSize [ i ] ) ? ( o . columnSize [ i ] <= 1 ? width : width / BI . pixRatio + BI . pixUnit ) : width ,
position : "relative" ,
"vertical-align" : o . verticalAlign ,
margin : "0" ,