diff --git a/package.json b/package.json index 9aa33d57a..c4da6a024 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fineui", - "version": "2.0.20220516110541", + "version": "2.0.20220517140421", "description": "fineui", "main": "dist/fineui.min.js", "types": "dist/lib/index.d.ts", diff --git a/src/base/grid/grid.js b/src/base/grid/grid.js index b264660a7..334851235 100644 --- a/src/base/grid/grid.js +++ b/src/base/grid/grid.js @@ -130,99 +130,99 @@ BI.GridView = BI.inherit(BI.Widget, { var visibleColumnIndices = this._columnSizeAndPositionManager.getVisibleCellRange(width, scrollLeft); var visibleRowIndices = this._rowSizeAndPositionManager.getVisibleCellRange(height, scrollTop); - if (BI.isEmpty(visibleColumnIndices) || BI.isEmpty(visibleRowIndices)) { - return; - } - var horizontalOffsetAdjustment = this._columnSizeAndPositionManager.getOffsetAdjustment(width, scrollLeft); - var verticalOffsetAdjustment = this._rowSizeAndPositionManager.getOffsetAdjustment(height, scrollTop); - - this._renderedColumnStartIndex = visibleColumnIndices.start; - this._renderedColumnStopIndex = visibleColumnIndices.stop; - this._renderedRowStartIndex = visibleRowIndices.start; - this._renderedRowStopIndex = visibleRowIndices.stop; - - var overscanColumnIndices = this._getOverscanIndices(this.columnCount, overscanColumnCount, this._renderedColumnStartIndex, this._renderedColumnStopIndex); - - var overscanRowIndices = this._getOverscanIndices(this.rowCount, overscanRowCount, this._renderedRowStartIndex, this._renderedRowStopIndex); - - var columnStartIndex = overscanColumnIndices.overscanStartIndex; - var columnStopIndex = overscanColumnIndices.overscanStopIndex; - var rowStartIndex = overscanRowIndices.overscanStartIndex; - var rowStopIndex = overscanRowIndices.overscanStopIndex; - - // 算区间size - var minRowDatum = this._rowSizeAndPositionManager.getSizeAndPositionOfCell(rowStartIndex); - var minColumnDatum = this._columnSizeAndPositionManager.getSizeAndPositionOfCell(columnStartIndex); - var maxRowDatum = this._rowSizeAndPositionManager.getSizeAndPositionOfCell(rowStopIndex); - var maxColumnDatum = this._columnSizeAndPositionManager.getSizeAndPositionOfCell(columnStopIndex); - var top = minRowDatum.offset + verticalOffsetAdjustment; - var left = minColumnDatum.offset + horizontalOffsetAdjustment; - var bottom = maxRowDatum.offset + verticalOffsetAdjustment + maxRowDatum.size; - var right = maxColumnDatum.offset + horizontalOffsetAdjustment + maxColumnDatum.size; - // 如果滚动的区间并没有超出渲染的范围 - if (top >= this.renderRange.minY && bottom <= this.renderRange.maxY && left >= this.renderRange.minX && right <= this.renderRange.maxX) { - return; - } - var renderedCells = [], renderedKeys = {}, renderedWidgets = {}; - var minX = this._getMaxScrollLeft(), minY = this._getMaxScrollTop(), maxX = 0, maxY = 0; - var count = 0; - for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) { - var rowDatum = this._rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex); - - for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) { - var key = rowIndex + "-" + columnIndex; - var columnDatum = this._columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex); - - var index = this.renderedKeys[key] && this.renderedKeys[key][2]; - var child; - if (index >= 0) { - // if (columnDatum.size !== this.renderedCells[index]._width) { - // this.renderedCells[index]._width = columnDatum.size; - this.renderedCells[index].el.setWidth(columnDatum.size); - // } - // if (rowDatum.size !== this.renderedCells[index]._height) { - // this.renderedCells[index]._height = rowDatum.size; - this.renderedCells[index].el.setHeight(rowDatum.size); - // } - // if (this.renderedCells[index]._left !== columnDatum.offset + horizontalOffsetAdjustment) { - this.renderedCells[index].el.element.css("left", (columnDatum.offset + horizontalOffsetAdjustment) / BI.pixRatio + BI.pixUnit); - // } - // if (this.renderedCells[index]._top !== rowDatum.offset + verticalOffsetAdjustment) { - this.renderedCells[index].el.element.css("top", (rowDatum.offset + verticalOffsetAdjustment) / BI.pixRatio + BI.pixUnit); - // } - child = this.renderedCells[index].el; - renderedCells.push(this.renderedCells[index]); - } else { - var item = o.itemFormatter(o.items[rowIndex][columnIndex], rowIndex, columnIndex); - child = BI._lazyCreateWidget(BI.extend({ - type: "bi.label", - width: columnDatum.size, - height: rowDatum.size - }, item, { - cls: (item.cls || "") + " grid-cell" + (rowIndex === 0 ? " first-row" : "") + (columnIndex === 0 ? " first-col" : ""), - _rowIndex: rowIndex, - _columnIndex: columnIndex, - _left: columnDatum.offset + horizontalOffsetAdjustment, - _top: rowDatum.offset + verticalOffsetAdjustment - }), this); - renderedCells.push({ - el: child, - left: columnDatum.offset + horizontalOffsetAdjustment, - top: rowDatum.offset + verticalOffsetAdjustment, - _left: columnDatum.offset + horizontalOffsetAdjustment, - _top: rowDatum.offset + verticalOffsetAdjustment - // _width: columnDatum.size, - // _height: rowDatum.size - }); + // 没有可见的单元格就干掉所有渲染过的 + if (!BI.isEmpty(visibleColumnIndices) && !BI.isEmpty(visibleRowIndices)) { + var horizontalOffsetAdjustment = this._columnSizeAndPositionManager.getOffsetAdjustment(width, scrollLeft); + var verticalOffsetAdjustment = this._rowSizeAndPositionManager.getOffsetAdjustment(height, scrollTop); + + this._renderedColumnStartIndex = visibleColumnIndices.start; + this._renderedColumnStopIndex = visibleColumnIndices.stop; + this._renderedRowStartIndex = visibleRowIndices.start; + this._renderedRowStopIndex = visibleRowIndices.stop; + + var overscanColumnIndices = this._getOverscanIndices(this.columnCount, overscanColumnCount, this._renderedColumnStartIndex, this._renderedColumnStopIndex); + + var overscanRowIndices = this._getOverscanIndices(this.rowCount, overscanRowCount, this._renderedRowStartIndex, this._renderedRowStopIndex); + + var columnStartIndex = overscanColumnIndices.overscanStartIndex; + var columnStopIndex = overscanColumnIndices.overscanStopIndex; + var rowStartIndex = overscanRowIndices.overscanStartIndex; + var rowStopIndex = overscanRowIndices.overscanStopIndex; + + // 算区间size + var minRowDatum = this._rowSizeAndPositionManager.getSizeAndPositionOfCell(rowStartIndex); + var minColumnDatum = this._columnSizeAndPositionManager.getSizeAndPositionOfCell(columnStartIndex); + var maxRowDatum = this._rowSizeAndPositionManager.getSizeAndPositionOfCell(rowStopIndex); + var maxColumnDatum = this._columnSizeAndPositionManager.getSizeAndPositionOfCell(columnStopIndex); + var top = minRowDatum.offset + verticalOffsetAdjustment; + var left = minColumnDatum.offset + horizontalOffsetAdjustment; + var bottom = maxRowDatum.offset + verticalOffsetAdjustment + maxRowDatum.size; + var right = maxColumnDatum.offset + horizontalOffsetAdjustment + maxColumnDatum.size; + // 如果滚动的区间并没有超出渲染的范围 + if (top >= this.renderRange.minY && bottom <= this.renderRange.maxY && left >= this.renderRange.minX && right <= this.renderRange.maxX) { + return; + } + + var minX = this._getMaxScrollLeft(), minY = this._getMaxScrollTop(), maxX = 0, maxY = 0; + var count = 0; + for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) { + var rowDatum = this._rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex); + + for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) { + var key = rowIndex + "-" + columnIndex; + var columnDatum = this._columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex); + + var index = this.renderedKeys[key] && this.renderedKeys[key][2]; + var child; + if (index >= 0) { + // if (columnDatum.size !== this.renderedCells[index]._width) { + // this.renderedCells[index]._width = columnDatum.size; + this.renderedCells[index].el.setWidth(columnDatum.size); + // } + // if (rowDatum.size !== this.renderedCells[index]._height) { + // this.renderedCells[index]._height = rowDatum.size; + this.renderedCells[index].el.setHeight(rowDatum.size); + // } + // if (this.renderedCells[index]._left !== columnDatum.offset + horizontalOffsetAdjustment) { + this.renderedCells[index].el.element.css("left", (columnDatum.offset + horizontalOffsetAdjustment) / BI.pixRatio + BI.pixUnit); + // } + // if (this.renderedCells[index]._top !== rowDatum.offset + verticalOffsetAdjustment) { + this.renderedCells[index].el.element.css("top", (rowDatum.offset + verticalOffsetAdjustment) / BI.pixRatio + BI.pixUnit); + // } + child = this.renderedCells[index].el; + renderedCells.push(this.renderedCells[index]); + } else { + var item = o.itemFormatter(o.items[rowIndex][columnIndex], rowIndex, columnIndex); + child = BI._lazyCreateWidget(BI.extend({ + type: "bi.label", + width: columnDatum.size, + height: rowDatum.size + }, item, { + cls: (item.cls || "") + " grid-cell" + (rowIndex === 0 ? " first-row" : "") + (columnIndex === 0 ? " first-col" : ""), + _rowIndex: rowIndex, + _columnIndex: columnIndex, + _left: columnDatum.offset + horizontalOffsetAdjustment, + _top: rowDatum.offset + verticalOffsetAdjustment + }), this); + renderedCells.push({ + el: child, + left: columnDatum.offset + horizontalOffsetAdjustment, + top: rowDatum.offset + verticalOffsetAdjustment, + _left: columnDatum.offset + horizontalOffsetAdjustment, + _top: rowDatum.offset + verticalOffsetAdjustment + // _width: columnDatum.size, + // _height: rowDatum.size + }); + } + minX = Math.min(minX, columnDatum.offset + horizontalOffsetAdjustment); + maxX = Math.max(maxX, columnDatum.offset + horizontalOffsetAdjustment + columnDatum.size); + minY = Math.min(minY, rowDatum.offset + verticalOffsetAdjustment); + maxY = Math.max(maxY, rowDatum.offset + verticalOffsetAdjustment + rowDatum.size); + renderedKeys[key] = [rowIndex, columnIndex, count]; + renderedWidgets[count] = child; + count++; } - minX = Math.min(minX, columnDatum.offset + horizontalOffsetAdjustment); - maxX = Math.max(maxX, columnDatum.offset + horizontalOffsetAdjustment + columnDatum.size); - minY = Math.min(minY, rowDatum.offset + verticalOffsetAdjustment); - maxY = Math.max(maxY, rowDatum.offset + verticalOffsetAdjustment + rowDatum.size); - renderedKeys[key] = [rowIndex, columnIndex, count]; - renderedWidgets[count] = child; - count++; } } // 已存在的, 需要添加的和需要删除的 diff --git a/src/base/single/button/listitem/blankiconicontextitem.js b/src/base/single/button/listitem/blankiconicontextitem.js index ed8f0b6d1..1c22cd25b 100644 --- a/src/base/single/button/listitem/blankiconicontextitem.js +++ b/src/base/single/button/listitem/blankiconicontextitem.js @@ -11,9 +11,6 @@ BI.BlankIconIconTextItem = BI.inherit(BI.BasicButton, { var conf = BI.BlankIconIconTextItem.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-blank-icon-text-item", - logic: { - dynamic: false - }, iconCls1: "", iconCls2: "", blankWidth: 0, diff --git a/src/base/single/button/listitem/blankicontexticonitem.js b/src/base/single/button/listitem/blankicontexticonitem.js index 815589387..aeb876e9c 100644 --- a/src/base/single/button/listitem/blankicontexticonitem.js +++ b/src/base/single/button/listitem/blankicontexticonitem.js @@ -12,9 +12,6 @@ BI.BlankIconTextIconItem = BI.inherit(BI.BasicButton, { var conf = BI.BlankIconTextIconItem.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-blank-icon-text-icon-item", - logic: { - dynamic: false - }, iconCls1: "", iconCls2: "", blankWidth: 0, diff --git a/src/base/single/button/listitem/blankicontextitem.js b/src/base/single/button/listitem/blankicontextitem.js index 54be05c5b..158d05bf6 100644 --- a/src/base/single/button/listitem/blankicontextitem.js +++ b/src/base/single/button/listitem/blankicontextitem.js @@ -11,9 +11,6 @@ BI.BlankIconTextItem = BI.inherit(BI.BasicButton, { var conf = BI.BlankIconTextItem.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-blank-icon-text-item", - logic: { - dynamic: false - }, blankWidth: 0, iconHeight: null, iconWidth: null, diff --git a/src/base/single/button/listitem/icontexticonitem.js b/src/base/single/button/listitem/icontexticonitem.js index 8db8ae483..4658bc471 100644 --- a/src/base/single/button/listitem/icontexticonitem.js +++ b/src/base/single/button/listitem/icontexticonitem.js @@ -12,9 +12,6 @@ BI.IconTextIconItem = BI.inherit(BI.BasicButton, { var conf = BI.IconTextIconItem.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-icon-text-icon-item", - logic: { - dynamic: false - }, iconCls1: "", iconCls2: "", iconHeight: null, diff --git a/src/base/single/button/listitem/icontextitem.js b/src/base/single/button/listitem/icontextitem.js index 76c19e25d..a54da86f4 100644 --- a/src/base/single/button/listitem/icontextitem.js +++ b/src/base/single/button/listitem/icontextitem.js @@ -12,9 +12,6 @@ BI.IconTextItem = BI.inherit(BI.BasicButton, { return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-icon-text-item", direction: BI.Direction.Left, - logic: { - dynamic: false - }, iconWrapperWidth: null, iconHeight: null, iconWidth: null, diff --git a/src/base/single/button/listitem/texticonitem.js b/src/base/single/button/listitem/texticonitem.js index 92c696780..a423195d4 100644 --- a/src/base/single/button/listitem/texticonitem.js +++ b/src/base/single/button/listitem/texticonitem.js @@ -12,9 +12,6 @@ BI.TextIconItem = BI.inherit(BI.BasicButton, { var conf = BI.TextIconItem.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-text-icon-item", - logic: { - dynamic: false - }, iconWrapperWidth: null, iconHeight: null, iconWidth: null, diff --git a/src/base/single/button/node/icontexticonnode.js b/src/base/single/button/node/icontexticonnode.js index 79bc0167f..13d967425 100644 --- a/src/base/single/button/node/icontexticonnode.js +++ b/src/base/single/button/node/icontexticonnode.js @@ -10,9 +10,6 @@ BI.IconTextIconNode = BI.inherit(BI.NodeButton, { var conf = BI.IconTextIconNode.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-icon-text-icon-node", - logic: { - dynamic: false - }, iconCls1: "close-ha-font", iconCls2: "close-ha-font", iconHeight: null, diff --git a/src/base/single/button/node/icontextnode.js b/src/base/single/button/node/icontextnode.js index 00f1adf86..5c9f1a4ca 100644 --- a/src/base/single/button/node/icontextnode.js +++ b/src/base/single/button/node/icontextnode.js @@ -10,9 +10,6 @@ BI.IconTextNode = BI.inherit(BI.NodeButton, { var conf = BI.IconTextNode.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-icon-text-node", - logic: { - dynamic: false - }, cls: "close-ha-font", iconHeight: null, iconWidth: null, diff --git a/src/base/single/button/node/texticonnode.js b/src/base/single/button/node/texticonnode.js index 67844bddc..6671c19a1 100644 --- a/src/base/single/button/node/texticonnode.js +++ b/src/base/single/button/node/texticonnode.js @@ -9,9 +9,6 @@ BI.TextIconNode = BI.inherit(BI.NodeButton, { var conf = BI.TextIconNode.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-text-icon-node", - logic: { - dynamic: false - }, cls: "close-ha-font", iconHeight: null, iconWidth: null, diff --git a/src/case/button/item.multiselect.js b/src/case/button/item.multiselect.js index f72ea6e12..0d44b6da8 100644 --- a/src/case/button/item.multiselect.js +++ b/src/case/button/item.multiselect.js @@ -11,9 +11,6 @@ BI.MultiSelectItem = BI.inherit(BI.BasicButton, { tabIndex: 1 }, height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT, - logic: { - dynamic: false - }, iconWrapperWidth: 26, }); }, diff --git a/src/case/button/item.singleselect.radio.js b/src/case/button/item.singleselect.radio.js index 882f912e9..1c80c9c14 100644 --- a/src/case/button/item.singleselect.radio.js +++ b/src/case/button/item.singleselect.radio.js @@ -10,9 +10,6 @@ BI.SingleSelectRadioItem = BI.inherit(BI.BasicButton, { attributes: { tabIndex: 1 }, - logic: { - dynamic: false - }, height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT, iconWrapperWidth: 16, textHgap: 10, diff --git a/src/case/button/node/node.arrow.js b/src/case/button/node/node.arrow.js index 052858e52..8a313c72a 100644 --- a/src/case/button/node/node.arrow.js +++ b/src/case/button/node/node.arrow.js @@ -6,9 +6,6 @@ BI.ArrowNode = BI.inherit(BI.NodeButton, { var conf = BI.ArrowNode.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-arrow-group-node bi-list-item", - logic: { - dynamic: false - }, id: "", pId: "", open: false, diff --git a/src/case/button/node/node.plus.js b/src/case/button/node/node.plus.js index 708ad4300..4b9477ea7 100644 --- a/src/case/button/node/node.plus.js +++ b/src/case/button/node/node.plus.js @@ -9,9 +9,6 @@ BI.PlusGroupNode = BI.inherit(BI.NodeButton, { var conf = BI.PlusGroupNode.superclass._defaultConfig.apply(this, arguments); return BI.extend(conf, { baseCls: (conf.baseCls || "") + " bi-plus-group-node bi-list-item", - logic: { - dynamic: false - }, id: "", pId: "", open: false, diff --git a/src/case/button/switch.js b/src/case/button/switch.js index ba4de99d2..2cfbf8839 100644 --- a/src/case/button/switch.js +++ b/src/case/button/switch.js @@ -14,9 +14,6 @@ BI.Switch = BI.inherit(BI.BasicButton, { }, height: 20, width: 44, - logic: { - dynamic: false - }, showTip: false }, diff --git a/typescript/base/single/button/listitem/icontexticonitem.ts b/typescript/base/single/button/listitem/icontexticonitem.ts index 60523b376..6bdea4a64 100644 --- a/typescript/base/single/button/listitem/icontexticonitem.ts +++ b/typescript/base/single/button/listitem/icontexticonitem.ts @@ -5,9 +5,6 @@ export declare class IconTextIconItem extends BasicButton { static EVENT_CHANGE: string; props: { - logic?: { - dynamic: boolean; - }; iconCls1?: string; iconCls2?: string; iconHeight?: number; diff --git a/typescript/base/single/button/listitem/icontextitem.ts b/typescript/base/single/button/listitem/icontextitem.ts index 5e3f3d6e9..e7143eb7f 100644 --- a/typescript/base/single/button/listitem/icontextitem.ts +++ b/typescript/base/single/button/listitem/icontextitem.ts @@ -6,9 +6,6 @@ export declare class IconTextItem extends BasicButton { props: { direction?: string; - logic?: { - dynamic: boolean; - }; iconWrapperWidth?: number; iconCls?: string; iconHeight?: number; diff --git a/typescript/case/button/item.multiselect.ts b/typescript/case/button/item.multiselect.ts index 9e439ab95..3d5011ea3 100644 --- a/typescript/case/button/item.multiselect.ts +++ b/typescript/case/button/item.multiselect.ts @@ -6,9 +6,6 @@ export declare class MultiSelectItem extends BasicButton { static EVENT_CHANGE: string; props: { - logic: { - dynamic: boolean; - } text: string; iconWrapperWidth: number; textLgap: number; diff --git a/typescript/case/button/item.singleselect.radio.ts b/typescript/case/button/item.singleselect.radio.ts index 725d2339d..6d21684c6 100644 --- a/typescript/case/button/item.singleselect.radio.ts +++ b/typescript/case/button/item.singleselect.radio.ts @@ -6,9 +6,6 @@ export declare class SingleSelectRadioItem extends BasicButton { props: { iconWrapperWidth: number; - logic: { - dynamic: boolean; - }; textHgap: number; textLgap: number; textRgap: number;