From f42a0bfd3abfdd134b363c144ffa2500a25a2fa2 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 26 Aug 2020 17:48:37 +0800 Subject: [PATCH] bugfix --- src/base/single/label/abstract.label.js | 498 +++++++++--------- .../wrapper/layout/flex/flex.horizontal.js | 4 +- src/core/wrapper/layout/flex/flex.vertical.js | 4 +- .../flex/wrapper/flex.wrapper.horizontal.js | 4 +- .../flex/wrapper/flex.wrapper.vertical.js | 4 +- 5 files changed, 265 insertions(+), 249 deletions(-) diff --git a/src/base/single/label/abstract.label.js b/src/base/single/label/abstract.label.js index b51ee8d80..bde0b2d13 100644 --- a/src/base/single/label/abstract.label.js +++ b/src/base/single/label/abstract.label.js @@ -1,65 +1,84 @@ /** * Created by dailer on 2019/6/19. */ +!(function () { + var _isSupportFlex; + var isSupportFlex = function () { + if (_isSupportFlex == null) { + _isSupportFlex = !!(BI.isSupportCss3 && BI.isSupportCss3("flex")); + } + return _isSupportFlex; + }; + BI.AbstractLabel = BI.inherit(BI.Single, { -BI.AbstractLabel = BI.inherit(BI.Single, { - - _defaultConfig: function (props) { - var conf = BI.AbstractLabel.superclass._defaultConfig.apply(this, arguments); - return BI.extend(conf, { - textAlign: "center", - whiteSpace: "nowrap", // normal or nowrap - textWidth: null, - textHeight: null, - hgap: 0, - vgap: 0, - lgap: 0, - rgap: 0, - tgap: 0, - bgap: 0, - text: "", - highLight: false, - handler: null - }); - }, + _defaultConfig: function (props) { + var conf = BI.AbstractLabel.superclass._defaultConfig.apply(this, arguments); + return BI.extend(conf, { + textAlign: "center", + whiteSpace: "nowrap", // normal or nowrap + textWidth: null, + textHeight: null, + hgap: 0, + vgap: 0, + lgap: 0, + rgap: 0, + tgap: 0, + bgap: 0, + text: "", + highLight: false, + handler: null + }); + }, - _createJson: function () { - var o = this.options; - return { - type: "bi.text", - textAlign: o.textAlign, - whiteSpace: o.whiteSpace, - lineHeight: o.textHeight, - text: o.text, - value: o.value, - py: o.py, - keyword: o.keyword, - highLight: o.highLight, - handler: o.handler - }; - }, + _createJson: function () { + var o = this.options; + return { + type: "bi.text", + textAlign: o.textAlign, + whiteSpace: o.whiteSpace, + lineHeight: o.textHeight, + text: o.text, + value: o.value, + py: o.py, + keyword: o.keyword, + highLight: o.highLight, + handler: o.handler + }; + }, - _init: function () { - BI.AbstractLabel.superclass._init.apply(this, arguments); + _init: function () { + BI.AbstractLabel.superclass._init.apply(this, arguments); - if (this.options.textAlign === "center") { - this._createCenterEl(); - } else { - this._createNotCenterEl(); - } - }, + if (this.options.textAlign === "center") { + this._createCenterEl(); + } else { + this._createNotCenterEl(); + } + }, - _createCenterEl: function () { - var o = this.options; - var json = this._createJson(); - json.textAlign = "left"; - if (BI.isNumber(o.width) && o.width > 0) { - if (BI.isNumber(o.textWidth) && o.textWidth > 0) { - json.maxWidth = o.textWidth; - if (BI.isNumber(o.height) && o.height > 0) { // 1.1 - BI.createWidget({ + _createCenterEl: function () { + var o = this.options; + var json = this._createJson(); + json.textAlign = "left"; + if (BI.isNumber(o.width) && o.width > 0) { + if (BI.isNumber(o.textWidth) && o.textWidth > 0) { + json.maxWidth = o.textWidth; + if (BI.isNumber(o.height) && o.height > 0) { // 1.1 + BI.createWidget({ + type: "bi.center_adapt", + height: o.height, + scrollable: o.whiteSpace === "normal", + element: this, + items: [ + { + el: (this.text = BI.createWidget(json)) + } + ] + }); + return; + } + BI.createWidget({ // 1.2 type: "bi.center_adapt", - height: o.height, scrollable: o.whiteSpace === "normal", element: this, items: [ @@ -70,7 +89,61 @@ BI.AbstractLabel = BI.inherit(BI.Single, { }); return; } - BI.createWidget({ // 1.2 + if (o.whiteSpace == "normal") { // 1.3 + BI.extend(json, { + hgap: o.hgap, + vgap: o.vgap, + lgap: o.lgap, + rgap: o.rgap, + tgap: o.tgap, + bgap: o.bgap + }); + this.text = BI.createWidget(json); + BI.createWidget({ + type: "bi.center_adapt", + scrollable: o.whiteSpace === "normal", + element: this, + items: [this.text] + }); + return; + } + if (BI.isNumber(o.height) && o.height > 0) { // 1.4 + this.element.css({ + "line-height": o.height + "px" + }); + json.textAlign = o.textAlign; + this.text = BI.createWidget(BI.extend(json, { + element: this, + hgap: o.hgap, + vgap: o.vgap, + lgap: o.lgap, + rgap: o.rgap, + tgap: o.tgap, + bgap: o.bgap + })); + return; + } + BI.extend(json, { // 1.5 + hgap: o.hgap, + vgap: o.vgap, + lgap: o.lgap, + rgap: o.rgap, + tgap: o.tgap, + bgap: o.bgap, + maxWidth: "100%" + }); + this.text = BI.createWidget(json); + BI.createWidget({ + type: "bi.center_adapt", + scrollable: o.whiteSpace === "normal", + element: this, + items: [this.text] + }); + return; + } + if (BI.isNumber(o.textWidth) && o.textWidth > 0) { // 1.6 + json.maxWidth = o.textWidth; + BI.createWidget({ type: "bi.center_adapt", scrollable: o.whiteSpace === "normal", element: this, @@ -82,7 +155,7 @@ BI.AbstractLabel = BI.inherit(BI.Single, { }); return; } - if (o.whiteSpace == "normal") { // 1.3 + if (o.whiteSpace == "normal") { // 1.7 BI.extend(json, { hgap: o.hgap, vgap: o.vgap, @@ -94,13 +167,13 @@ BI.AbstractLabel = BI.inherit(BI.Single, { this.text = BI.createWidget(json); BI.createWidget({ type: "bi.center_adapt", - scrollable: o.whiteSpace === "normal", + scrollable: true, element: this, items: [this.text] }); return; } - if (BI.isNumber(o.height) && o.height > 0) { // 1.4 + if (BI.isNumber(o.height) && o.height > 0) { // 1.8 this.element.css({ "line-height": o.height + "px" }); @@ -116,39 +189,6 @@ BI.AbstractLabel = BI.inherit(BI.Single, { })); return; } - BI.extend(json, { // 1.5 - hgap: o.hgap, - vgap: o.vgap, - lgap: o.lgap, - rgap: o.rgap, - tgap: o.tgap, - bgap: o.bgap, - maxWidth: "100%" - }); - this.text = BI.createWidget(json); - BI.createWidget({ - type: "bi.center_adapt", - scrollable: o.whiteSpace === "normal", - element: this, - items: [this.text] - }); - return; - } - if (BI.isNumber(o.textWidth) && o.textWidth > 0) { // 1.6 - json.maxWidth = o.textWidth; - BI.createWidget({ - type: "bi.center_adapt", - scrollable: o.whiteSpace === "normal", - element: this, - items: [ - { - el: (this.text = BI.createWidget(json)) - } - ] - }); - return; - } - if (o.whiteSpace == "normal") { // 1.7 BI.extend(json, { hgap: o.hgap, vgap: o.vgap, @@ -157,62 +197,52 @@ BI.AbstractLabel = BI.inherit(BI.Single, { tgap: o.tgap, bgap: o.bgap }); - this.text = BI.createWidget(json); + + this.text = BI.createWidget(BI.extend(json, { + maxWidth: "100%" + })); BI.createWidget({ type: "bi.center_adapt", - scrollable: true, element: this, items: [this.text] }); - return; - } - if (BI.isNumber(o.height) && o.height > 0) { // 1.8 - this.element.css({ - "line-height": o.height + "px" - }); - json.textAlign = o.textAlign; - this.text = BI.createWidget(BI.extend(json, { - element: this, - hgap: o.hgap, - vgap: o.vgap, - lgap: o.lgap, - rgap: o.rgap, - tgap: o.tgap, - bgap: o.bgap - })); - return; - } - BI.extend(json, { - hgap: o.hgap, - vgap: o.vgap, - lgap: o.lgap, - rgap: o.rgap, - tgap: o.tgap, - bgap: o.bgap - }); + }, - this.text = BI.createWidget(BI.extend(json, { - maxWidth: "100%" - })); - BI.createWidget({ - type: "bi.center_adapt", - element: this, - items: [this.text] - }); - }, - - _createNotCenterEl: function () { - var o = this.options; - var adaptLayout = o.textAlign === "right" ? "bi.right_vertical_adapt" : "bi.vertical_adapt"; - var json = this._createJson(); - if (BI.isNumber(o.width) && o.width > 0) { - if (BI.isNumber(o.textWidth) && o.textWidth > 0) { - json.width = o.textWidth; - if (BI.isNumber(o.height) && o.height > 0) { // 2.1 - BI.createWidget({ + _createNotCenterEl: function () { + var o = this.options; + var adaptLayout = "bi.vertical_adapt"; + if (o.textAlign === "right" && (BI.isIE() || !isSupportFlex())) { + adaptLayout = "bi.right_vertical_adapt"; + } + var json = this._createJson(); + if (BI.isNumber(o.width) && o.width > 0) { + if (BI.isNumber(o.textWidth) && o.textWidth > 0) { + json.width = o.textWidth; + if (BI.isNumber(o.height) && o.height > 0) { // 2.1 + BI.createWidget({ + type: adaptLayout, + horizontalAlign: o.textAlign, + height: o.height, + scrollable: o.whiteSpace === "normal", + element: this, + items: [ + { + el: (this.text = BI.createWidget(json)) + } + ] + }); + return; + } + BI.createWidget({ // 2.2 type: adaptLayout, - height: o.height, + horizontalAlign: o.textAlign, scrollable: o.whiteSpace === "normal", + hgap: o.hgap, + vgap: o.vgap, + lgap: o.lgap, + rgap: o.rgap, + tgap: o.tgap, + bgap: o.bgap, element: this, items: [ { @@ -222,8 +252,46 @@ BI.AbstractLabel = BI.inherit(BI.Single, { }); return; } - BI.createWidget({ // 2.2 + if (BI.isNumber(o.height) && o.height > 0) { // 2.3 + this.text = BI.createWidget(BI.extend(json, { + element: this, + hgap: o.hgap, + vgap: o.vgap, + lgap: o.lgap, + rgap: o.rgap, + tgap: o.tgap, + bgap: o.bgap + })); + if (o.whiteSpace !== "normal") { + this.element.css({ + "line-height": o.height - (o.vgap * 2) + "px" + }); + } + return; + } + json.width = o.width - 2 * o.hgap - o.lgap - o.rgap; + BI.createWidget({ // 2.4 + type: adaptLayout, + horizontalAlign: o.textAlign, + scrollable: o.whiteSpace === "normal", + hgap: o.hgap, + vgap: o.vgap, + lgap: o.lgap, + rgap: o.rgap, + tgap: o.tgap, + bgap: o.bgap, + element: this, + items: [{ + el: (this.text = BI.createWidget(json)) + }] + }); + return; + } + if (BI.isNumber(o.textWidth) && o.textWidth > 0) { + json.width = o.textWidth; + BI.createWidget({ // 2.5 type: adaptLayout, + horizontalAlign: o.textAlign, scrollable: o.whiteSpace === "normal", hgap: o.hgap, vgap: o.vgap, @@ -240,8 +308,13 @@ BI.AbstractLabel = BI.inherit(BI.Single, { }); return; } - if (BI.isNumber(o.height) && o.height > 0) { // 2.3 - this.text = BI.createWidget(BI.extend(json, { + if (BI.isNumber(o.height) && o.height > 0) { + if (o.whiteSpace !== "normal") { + this.element.css({ + "line-height": o.height - (o.vgap * 2) + "px" + }); + } + this.text = BI.createWidget(BI.extend(json, { // 2.6 element: this, hgap: o.hgap, vgap: o.vgap, @@ -250,124 +323,67 @@ BI.AbstractLabel = BI.inherit(BI.Single, { tgap: o.tgap, bgap: o.bgap })); - if (o.whiteSpace !== "normal") { - this.element.css({ - "line-height": o.height - (o.vgap * 2) + "px" - }); - } return; } - json.width = o.width - 2 * o.hgap - o.lgap - o.rgap; - BI.createWidget({ // 2.4 - type: adaptLayout, - scrollable: o.whiteSpace === "normal", + BI.extend(json, { hgap: o.hgap, vgap: o.vgap, lgap: o.lgap, rgap: o.rgap, tgap: o.tgap, - bgap: o.bgap, - element: this, - items: [{ - el: (this.text = BI.createWidget(json)) - }] + bgap: o.bgap }); - return; - } - if (BI.isNumber(o.textWidth) && o.textWidth > 0) { - json.width = o.textWidth; - BI.createWidget({ // 2.5 + + this.text = BI.createWidget(BI.extend(json, { + maxWidth: "100%" + })); + BI.createWidget({ type: adaptLayout, - scrollable: o.whiteSpace === "normal", - hgap: o.hgap, - vgap: o.vgap, - lgap: o.lgap, - rgap: o.rgap, - tgap: o.tgap, - bgap: o.bgap, + horizontalAlign: o.textAlign, element: this, - items: [ - { - el: (this.text = BI.createWidget(json)) - } - ] + scrollable: o.whiteSpace === "normal", + items: [this.text] }); - return; - } - if (BI.isNumber(o.height) && o.height > 0) { - if (o.whiteSpace !== "normal") { - this.element.css({ - "line-height": o.height - (o.vgap * 2) + "px" - }); - } - this.text = BI.createWidget(BI.extend(json, { // 2.6 - element: this, - hgap: o.hgap, - vgap: o.vgap, - lgap: o.lgap, - rgap: o.rgap, - tgap: o.tgap, - bgap: o.bgap - })); - return; - } - BI.extend(json, { - hgap: o.hgap, - vgap: o.vgap, - lgap: o.lgap, - rgap: o.rgap, - tgap: o.tgap, - bgap: o.bgap - }); + }, - this.text = BI.createWidget(BI.extend(json, { - maxWidth: "100%" - })); - BI.createWidget({ - type: adaptLayout, - element: this, - scrollable: o.whiteSpace === "normal", - items: [this.text] - }); - }, + doRedMark: function () { + this.text.doRedMark.apply(this.text, arguments); + }, - doRedMark: function () { - this.text.doRedMark.apply(this.text, arguments); - }, + unRedMark: function () { + this.text.unRedMark.apply(this.text, arguments); + }, - unRedMark: function () { - this.text.unRedMark.apply(this.text, arguments); - }, + doHighLight: function () { + this.text.doHighLight.apply(this.text, arguments); + }, - doHighLight: function () { - this.text.doHighLight.apply(this.text, arguments); - }, + unHighLight: function () { + this.text.unHighLight.apply(this.text, arguments); + }, - unHighLight: function () { - this.text.unHighLight.apply(this.text, arguments); - }, + setText: function (v) { + this.options.text = v; + this.text.setText(v); + }, - setText: function (v) { - this.options.text = v; - this.text.setText(v); - }, + getText: function () { + return this.options.text; + }, - getText: function () { - return this.options.text; - }, + setStyle: function (css) { + this.text.setStyle(css); + }, - setStyle: function (css) { - this.text.setStyle(css); - }, + setValue: function (v) { + BI.AbstractLabel.superclass.setValue.apply(this, arguments); + if (!this.isReadOnly()) { + this.text.setValue(v); + } + }, - setValue: function (v) { - BI.AbstractLabel.superclass.setValue.apply(this, arguments); - if (!this.isReadOnly()) { - this.text.setValue(v); + populate: function () { + BI.AbstractLabel.superclass.populate.apply(this, arguments); } - }, - - populate: function () { - BI.AbstractLabel.superclass.populate.apply(this, arguments); - } -}); + }); +}()); diff --git a/src/core/wrapper/layout/flex/flex.horizontal.js b/src/core/wrapper/layout/flex/flex.horizontal.js index 3dad00eb9..879383f83 100644 --- a/src/core/wrapper/layout/flex/flex.horizontal.js +++ b/src/core/wrapper/layout/flex/flex.horizontal.js @@ -36,7 +36,7 @@ BI.FlexHorizontalLayout = BI.inherit(BI.Layout, { "flex-shrink": "0" }); if (o.columnSize[i] > 0) { - w.element.width(o.columnSize[i]); + w.element.width(o.columnSize[i] <= 1 ? (o.columnSize[i] * 100 + "%") : o.columnSize[i]); } if (o.columnSize[i] === "fill") { w.element.css("flex", "1"); @@ -73,4 +73,4 @@ BI.FlexHorizontalLayout = BI.inherit(BI.Layout, { this._mount(); } }); -BI.shortcut("bi.flex_horizontal", BI.FlexHorizontalLayout); \ No newline at end of file +BI.shortcut("bi.flex_horizontal", BI.FlexHorizontalLayout); diff --git a/src/core/wrapper/layout/flex/flex.vertical.js b/src/core/wrapper/layout/flex/flex.vertical.js index 59fc6fbb8..91b3f502e 100644 --- a/src/core/wrapper/layout/flex/flex.vertical.js +++ b/src/core/wrapper/layout/flex/flex.vertical.js @@ -35,7 +35,7 @@ BI.FlexVerticalLayout = BI.inherit(BI.Layout, { "flex-shrink": "0" }); if (o.rowSize[i] > 0) { - w.element.height(o.rowSize[i]); + w.element.height(o.rowSize[i] <= 1 ? (o.rowSize[i] * 100 + "%") : o.rowSize[i]); } if (o.rowSize[i] === "fill") { w.element.css("flex", "1"); @@ -72,4 +72,4 @@ BI.FlexVerticalLayout = BI.inherit(BI.Layout, { this._mount(); } }); -BI.shortcut("bi.flex_vertical", BI.FlexVerticalLayout); \ No newline at end of file +BI.shortcut("bi.flex_vertical", BI.FlexVerticalLayout); diff --git a/src/core/wrapper/layout/flex/wrapper/flex.wrapper.horizontal.js b/src/core/wrapper/layout/flex/wrapper/flex.wrapper.horizontal.js index c8fad11db..31abd63ea 100644 --- a/src/core/wrapper/layout/flex/wrapper/flex.wrapper.horizontal.js +++ b/src/core/wrapper/layout/flex/wrapper/flex.wrapper.horizontal.js @@ -37,7 +37,7 @@ BI.FlexWrapperHorizontalLayout = BI.inherit(BI.Layout, { "flex-shrink": "0" }); if (o.columnSize[i] > 0) { - w.element.width(o.columnSize[i]); + w.element.width(o.columnSize[i] <= 1 ? (o.columnSize[i] * 100 + "%") : o.columnSize[i]); } if (o.columnSize[i] === "fill") { w.element.css("flex", "1"); @@ -83,4 +83,4 @@ BI.FlexWrapperHorizontalLayout = BI.inherit(BI.Layout, { this._mount(); } }); -BI.shortcut("bi.flex_scrollable_horizontal", BI.FlexWrapperHorizontalLayout); \ No newline at end of file +BI.shortcut("bi.flex_scrollable_horizontal", BI.FlexWrapperHorizontalLayout); diff --git a/src/core/wrapper/layout/flex/wrapper/flex.wrapper.vertical.js b/src/core/wrapper/layout/flex/wrapper/flex.wrapper.vertical.js index 24c71554a..d83e8fb4e 100644 --- a/src/core/wrapper/layout/flex/wrapper/flex.wrapper.vertical.js +++ b/src/core/wrapper/layout/flex/wrapper/flex.wrapper.vertical.js @@ -37,7 +37,7 @@ BI.FlexWrapperVerticalLayout = BI.inherit(BI.Layout, { "flex-shrink": "0" }); if (o.rowSize[i] > 0) { - w.element.height(o.rowSize[i]); + w.element.height(o.rowSize[i] <= 1 ? (o.rowSize[i] * 100 + "%") : o.rowSize[i]); } if (o.rowSize[i] === "fill") { w.element.css("flex", "1"); @@ -83,4 +83,4 @@ BI.FlexWrapperVerticalLayout = BI.inherit(BI.Layout, { this._mount(); } }); -BI.shortcut("bi.flex_scrollable_vertical", BI.FlexWrapperVerticalLayout); \ No newline at end of file +BI.shortcut("bi.flex_scrollable_vertical", BI.FlexWrapperVerticalLayout);