From d4c74c148d2c71953f096d2e9e82cce556cbfc64 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 18 Jun 2021 17:42:46 +0800 Subject: [PATCH 1/3] bugfix --- src/core/wrapper/layout/layout.tape.js | 87 ++++++++++++++++++++------ 1 file changed, 67 insertions(+), 20 deletions(-) diff --git a/src/core/wrapper/layout/layout.tape.js b/src/core/wrapper/layout/layout.tape.js index dde50fbeb..9464ff018 100644 --- a/src/core/wrapper/layout/layout.tape.js +++ b/src/core/wrapper/layout/layout.tape.js @@ -14,6 +14,7 @@ BI.HTapeLayout = BI.inherit(BI.Layout, { rgap: 0, tgap: 0, bgap: 0, + columnSize: [], items: [] }); }, @@ -64,34 +65,58 @@ BI.HTapeLayout = BI.inherit(BI.Layout, { BI.any(items, function (i, item) { var w = self.getWidgetByName(self._getChildName(i)); if (BI.isNull(left[i])) { - left[i] = left[i - 1] + items[i - 1].width + (items[i - 1].lgap || 0) + 2 * (items[i - 1].hgap || 0) + o.hgap + o.lgap + o.rgap; + left[i] = left[i - 1] + (o.columnSize[i - 1] || items[i - 1].width) + (items[i - 1].lgap || 0) + 2 * (items[i - 1].hgap || 0) + o.hgap + o.lgap + o.rgap; } - if (item.width < 1 && item.width >= 0) { - w.element.css({left: (left[i] * 100).toFixed(1) + "%", width: (item.width * 100).toFixed(1) + "%"}); + if (o.columnSize[i] < 1 && o.columnSize[i] >= 0) { + w.element.css({ + left: (left[i] * 100).toFixed(1) + "%", + width: (o.columnSize[i] * 100).toFixed(1) + "%" + }); + } else if (item.width < 1 && item.width >= 0) { + w.element.css({ + left: (left[i] * 100).toFixed(1) + "%", + width: (item.width * 100).toFixed(1) + "%" + }); } else { w.element.css({ left: (left[i] + (item.lgap || 0) + (item.hgap || 0) + o.hgap + o.lgap) / BI.pixRatio + BI.pixUnit, - width: BI.isNumber(item.width) ? item.width / BI.pixRatio + BI.pixUnit : "" + width: o.columnSize[i] > 0 ? o.columnSize[i] / BI.pixRatio + BI.pixUnit : + BI.isNumber(item.width) ? item.width / BI.pixRatio + BI.pixUnit : "" }); } - if (!BI.isNumber(item.width)) { + if (o.columnSize[i] === "" || o.columnSize[i] === "fill") { + return true; + } + if (o.columnSize.length > 0 && !BI.isNumber(item.width)) { return true; } }); BI.backAny(items, function (i, item) { var w = self.getWidgetByName(self._getChildName(i)); if (BI.isNull(right[i])) { - right[i] = right[i + 1] + items[i + 1].width + (items[i + 1].rgap || 0) + 2 * (items[i + 1].hgap || 0) + o.hgap + o.lgap + o.rgap; + right[i] = right[i + 1] + (o.columnSize[i + 1] || items[i + 1].width) + (items[i + 1].rgap || 0) + 2 * (items[i + 1].hgap || 0) + o.hgap + o.lgap + o.rgap; } - if (item.width < 1 && item.width >= 0) { - w.element.css({right: (right[i] * 100).toFixed(1) + "%", width: (item.width * 100).toFixed(1) + "%"}); + if (o.columnSize[i] < 1 && o.columnSize[i] >= 0) { + w.element.css({ + right: (left[i] * 100).toFixed(1) + "%", + width: (o.columnSize[i] * 100).toFixed(1) + "%" + }); + } else if (item.width < 1 && item.width >= 0) { + w.element.css({ + right: (right[i] * 100).toFixed(1) + "%", + width: (item.width * 100).toFixed(1) + "%" + }); } else { w.element.css({ right: (right[i] + (item.rgap || 0) + (item.hgap || 0) + o.hgap + o.rgap) / BI.pixRatio + BI.pixUnit, - width: BI.isNumber(item.width) ? item.width / BI.pixRatio + BI.pixUnit : "" + width: o.columnSize[i] > 0 ? o.columnSize[i] / BI.pixRatio + BI.pixUnit : + BI.isNumber(item.width) ? item.width / BI.pixRatio + BI.pixUnit : "" }); } - if (!BI.isNumber(item.width)) { + if (o.columnSize[i] === "" || o.columnSize[i] === "fill") { + return true; + } + if (o.columnSize.length > 0 && !BI.isNumber(item.width)) { return true; } }); @@ -128,6 +153,7 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { rgap: 0, tgap: 0, bgap: 0, + rowSize: [], items: [] }); }, @@ -158,7 +184,7 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { w.element.css({ position: "absolute", left: ((item.lgap || 0) + (item.hgap || 0) + o.hgap + o.lgap) / BI.pixRatio + BI.pixUnit, - right: +((item.hgap || 0) + (item.rgap || 0) + o.hgap + o.rgap) / BI.pixRatio + BI.pixUnit + right: ((item.hgap || 0) + (item.rgap || 0) + o.hgap + o.rgap) / BI.pixRatio + BI.pixUnit }); if (o.horizontalAlign === BI.HorizontalAlign.Center) { w.element.css({ @@ -179,26 +205,43 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { BI.any(items, function (i, item) { var w = self.getWidgetByName(self._getChildName(i)); if (BI.isNull(top[i])) { - top[i] = top[i - 1] + items[i - 1].height + (items[i - 1].tgap || 0) + 2 * (items[i - 1].vgap || 0) + o.vgap + o.tgap + o.bgap; + top[i] = top[i - 1] + (o.rowSize[i - 1] || items[i - 1].height) + (items[i - 1].tgap || 0) + 2 * (items[i - 1].vgap || 0) + o.vgap + o.tgap + o.bgap; } - if (item.height < 1 && item.height >= 0) { - w.element.css({top: (top[i] * 100).toFixed(1) + "%", height: (item.height * 100).toFixed(1) + "%"}); + if (o.rowSize[i] < 1 && o.rowSize[i] >= 0) { + w.element.css({ + top: (top[i] * 100).toFixed(1) + "%", + height: (o.rowSize[i] * 100).toFixed(1) + "%" + }); + } else if (item.height < 1 && item.height >= 0) { + w.element.css({ + top: (top[i] * 100).toFixed(1) + "%", + height: (item.height * 100).toFixed(1) + "%" + }); } else { w.element.css({ top: (top[i] + (item.vgap || 0) + (item.tgap || 0) + o.vgap + o.tgap) / BI.pixRatio + BI.pixUnit, - height: BI.isNumber(item.height) ? item.height / BI.pixRatio + BI.pixUnit : "" + height: o.rowSize[i] > 0 ? o.rowSize[i] / BI.pixRatio + BI.pixUnit : + BI.isNumber(item.height) ? item.height / BI.pixRatio + BI.pixUnit : "" }); } - if (!BI.isNumber(item.height)) { + if (o.rowSize[i] === "" || o.rowSize[i] === "fill") { + return true; + } + if (o.rowSize.length > 0 && !BI.isNumber(item.height)) { return true; } }); BI.backAny(items, function (i, item) { var w = self.getWidgetByName(self._getChildName(i)); if (BI.isNull(bottom[i])) { - bottom[i] = bottom[i + 1] + items[i + 1].height + (items[i + 1].bgap || 0) + 2 * (items[i + 1].vgap || 0) + o.vgap + o.tgap + o.bgap; + bottom[i] = bottom[i + 1] + (o.rowSize[i + 1] || items[i + 1].height) + (items[i + 1].bgap || 0) + 2 * (items[i + 1].vgap || 0) + o.vgap + o.tgap + o.bgap; } - if (item.height < 1 && item.height >= 0) { + if (o.rowSize[i] < 1 && o.rowSize[i] >= 0) { + w.element.css({ + bottom: (bottom[i] * 100).toFixed(1) + "%", + height: (o.rowSize[i] * 100).toFixed(1) + "%" + }); + } else if (item.height < 1 && item.height >= 0) { w.element.css({ bottom: (bottom[i] * 100).toFixed(1) + "%", height: (item.height * 100).toFixed(1) + "%" @@ -206,10 +249,14 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { } else { w.element.css({ bottom: (bottom[i] + (item.vgap || 0) + (item.bgap || 0) + o.vgap + o.bgap) / BI.pixRatio + BI.pixUnit, - height: BI.isNumber(item.height) ? item.height / BI.pixRatio + BI.pixUnit : "" + height: o.rowSize[i] > 0 ? o.rowSize[i] / BI.pixRatio + BI.pixUnit : + BI.isNumber(item.height) ? item.height / BI.pixRatio + BI.pixUnit : "" }); } - if (!BI.isNumber(item.height)) { + if (o.rowSize[i] === "" || o.rowSize[i] === "fill") { + return true; + } + if (o.rowSize.length > 0 && !BI.isNumber(item.height)) { return true; } }); From 126a9fdca17480c64e003a2a83935aeef116c8dc Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 18 Jun 2021 17:43:45 +0800 Subject: [PATCH 2/3] bugfix --- src/core/wrapper/layout/layout.tape.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/wrapper/layout/layout.tape.js b/src/core/wrapper/layout/layout.tape.js index 9464ff018..e4ea470d7 100644 --- a/src/core/wrapper/layout/layout.tape.js +++ b/src/core/wrapper/layout/layout.tape.js @@ -87,7 +87,7 @@ BI.HTapeLayout = BI.inherit(BI.Layout, { if (o.columnSize[i] === "" || o.columnSize[i] === "fill") { return true; } - if (o.columnSize.length > 0 && !BI.isNumber(item.width)) { + if (o.columnSize.length <= 0 && !BI.isNumber(item.width)) { return true; } }); @@ -116,7 +116,7 @@ BI.HTapeLayout = BI.inherit(BI.Layout, { if (o.columnSize[i] === "" || o.columnSize[i] === "fill") { return true; } - if (o.columnSize.length > 0 && !BI.isNumber(item.width)) { + if (o.columnSize.length <= 0 && !BI.isNumber(item.width)) { return true; } }); @@ -227,7 +227,7 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { if (o.rowSize[i] === "" || o.rowSize[i] === "fill") { return true; } - if (o.rowSize.length > 0 && !BI.isNumber(item.height)) { + if (o.rowSize.length <= 0 && !BI.isNumber(item.height)) { return true; } }); @@ -256,7 +256,7 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { if (o.rowSize[i] === "" || o.rowSize[i] === "fill") { return true; } - if (o.rowSize.length > 0 && !BI.isNumber(item.height)) { + if (o.rowSize.length <= 0 && !BI.isNumber(item.height)) { return true; } }); From 690244c4e4f71d5a7f8ff2ccdab1f7ff3548cc89 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 18 Jun 2021 20:01:52 +0800 Subject: [PATCH 3/3] add --- src/core/wrapper/layout/layout.tape.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/wrapper/layout/layout.tape.js b/src/core/wrapper/layout/layout.tape.js index e4ea470d7..6cc032998 100644 --- a/src/core/wrapper/layout/layout.tape.js +++ b/src/core/wrapper/layout/layout.tape.js @@ -67,7 +67,7 @@ BI.HTapeLayout = BI.inherit(BI.Layout, { if (BI.isNull(left[i])) { left[i] = left[i - 1] + (o.columnSize[i - 1] || items[i - 1].width) + (items[i - 1].lgap || 0) + 2 * (items[i - 1].hgap || 0) + o.hgap + o.lgap + o.rgap; } - if (o.columnSize[i] < 1 && o.columnSize[i] >= 0) { + if (o.columnSize[i] < 1 && o.columnSize[i] > 0) { w.element.css({ left: (left[i] * 100).toFixed(1) + "%", width: (o.columnSize[i] * 100).toFixed(1) + "%" @@ -96,9 +96,9 @@ BI.HTapeLayout = BI.inherit(BI.Layout, { if (BI.isNull(right[i])) { right[i] = right[i + 1] + (o.columnSize[i + 1] || items[i + 1].width) + (items[i + 1].rgap || 0) + 2 * (items[i + 1].hgap || 0) + o.hgap + o.lgap + o.rgap; } - if (o.columnSize[i] < 1 && o.columnSize[i] >= 0) { + if (o.columnSize[i] < 1 && o.columnSize[i] > 0) { w.element.css({ - right: (left[i] * 100).toFixed(1) + "%", + right: (right[i] * 100).toFixed(1) + "%", width: (o.columnSize[i] * 100).toFixed(1) + "%" }); } else if (item.width < 1 && item.width >= 0) { @@ -207,7 +207,7 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { if (BI.isNull(top[i])) { top[i] = top[i - 1] + (o.rowSize[i - 1] || items[i - 1].height) + (items[i - 1].tgap || 0) + 2 * (items[i - 1].vgap || 0) + o.vgap + o.tgap + o.bgap; } - if (o.rowSize[i] < 1 && o.rowSize[i] >= 0) { + if (o.rowSize[i] < 1 && o.rowSize[i] >=0) { w.element.css({ top: (top[i] * 100).toFixed(1) + "%", height: (o.rowSize[i] * 100).toFixed(1) + "%" @@ -236,7 +236,7 @@ BI.VTapeLayout = BI.inherit(BI.Layout, { if (BI.isNull(bottom[i])) { bottom[i] = bottom[i + 1] + (o.rowSize[i + 1] || items[i + 1].height) + (items[i + 1].bgap || 0) + 2 * (items[i + 1].vgap || 0) + o.vgap + o.tgap + o.bgap; } - if (o.rowSize[i] < 1 && o.rowSize[i] >= 0) { + if (o.rowSize[i] < 1 && o.rowSize[i] > 0) { w.element.css({ bottom: (bottom[i] * 100).toFixed(1) + "%", height: (o.rowSize[i] * 100).toFixed(1) + "%"