forked from fanruan/fineui
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
4.7 KiB
131 lines
4.7 KiB
7 years ago
|
Demo.CanvasTable = BI.inherit(BI.Widget, {
|
||
|
props: {
|
||
|
baseCls: "demo-face"
|
||
|
},
|
||
|
|
||
|
render: function () {
|
||
|
var self = this;
|
||
|
return {
|
||
|
type: "bi.absolute",
|
||
|
items: [{
|
||
|
el: {
|
||
|
type: "bi.sequence_table",
|
||
|
ref: function () {
|
||
|
self.table = this;
|
||
|
},
|
||
|
isNeedFreeze: null,
|
||
|
isNeedMerge: false,
|
||
|
summaryCellStyleGetter: function (isLast) {
|
||
|
return {
|
||
|
background: "rgb(4, 177, 194)",
|
||
|
color: "#ffffff",
|
||
|
fontWeight: "bold"
|
||
|
};
|
||
|
},
|
||
|
sequenceCellStyleGetter: function (index) {
|
||
|
return {
|
||
|
background: "rgb(4, 177, 194)",
|
||
|
color: "#ffffff",
|
||
|
fontWeight: "bold"
|
||
|
};
|
||
|
},
|
||
|
headerCellStyleGetter: function () {
|
||
|
return {
|
||
|
background: "rgb(4, 177, 194)",
|
||
|
color: "#ffffff",
|
||
|
fontWeight: "bold"
|
||
|
};
|
||
|
},
|
||
|
el: {
|
||
|
type: "bi.adaptive_table",
|
||
|
el: {
|
||
|
type: "bi.resizable_table",
|
||
|
el: {
|
||
|
type: "bi.canvas_table"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
sequence: {
|
||
|
type: "bi.sequence_table_list_number",
|
||
|
pageSize: 100,
|
||
|
sequenceHeaderCreator: {
|
||
|
type: "bi.normal_sequence_header_cell",
|
||
|
styleGetter: function () {
|
||
|
return {
|
||
|
background: "rgb(4, 177, 194)",
|
||
|
color: "#ffffff",
|
||
|
fontWeight: "bold"
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
itemsCreator: function (op, populate) {
|
||
|
}
|
||
|
},
|
||
|
left: 0,
|
||
|
right: 0,
|
||
|
top: 0,
|
||
|
bottom: 0
|
||
|
}]
|
||
|
};
|
||
|
},
|
||
|
|
||
|
mounted: function () {
|
||
|
var self = this;
|
||
|
var tableItems = this._expandData(TABLE_ITEMS, 3),
|
||
|
headItems = this._expandHeadData(TABLE_HEADER, 3);
|
||
|
this._resizeHandler = BI.debounce(function () {
|
||
|
var width = self.element.width(), height = self.element.height();
|
||
|
if (self.table.getWidth() !== width || self.table.getHeight() !== height) {
|
||
|
self.table.setWidth(width);
|
||
|
self.table.setHeight(height);
|
||
|
self.table.populate();
|
||
|
}
|
||
|
}, 0);
|
||
|
BI.ResizeDetector.addResizeListener(this, function () {
|
||
|
self._resizeHandler();
|
||
|
});
|
||
|
this.table.setWidth(this.element.width());
|
||
|
this.table.setHeight(this.element.height());
|
||
|
this.table.attr("columnSize", BI.makeArray(headItems[0].length, ""));
|
||
|
this.table.attr("minColumnSize", BI.makeArray(headItems[0].length, 60));
|
||
|
this.table.attr("isNeedFreeze", true);
|
||
|
this.table.attr("freezeCols", []);
|
||
|
this.table.attr("showSequence", true);
|
||
|
this.table.attr("headerRowSize", 15);
|
||
|
this.table.attr("rowSize", 15);
|
||
|
this.table.populate(tableItems, headItems);
|
||
|
},
|
||
|
|
||
|
_expandData: function (items, times) {
|
||
|
var copy = BI.deepClone(items);
|
||
|
for (var m = 0; m < times - 1; m++) {
|
||
|
BI.each(items, function (i, row) {
|
||
|
copy.push(row);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
for (var n = 0; n < copy.length; n++) {
|
||
|
for (var m = 0; m < times - 1; m++) {
|
||
|
BI.each(items[n % 100], function (j, item) {
|
||
|
copy[n].push(item);
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
return copy;
|
||
|
},
|
||
|
|
||
|
_expandHeadData: function (items, times) {
|
||
|
var copy = BI.deepClone(items);
|
||
|
for (var n = 0; n < copy.length; n++) {
|
||
|
for (var m = 0; m < times - 1; m++) {
|
||
|
BI.each(items[n], function (j, item) {
|
||
|
copy[n].push(item);
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
return copy;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
BI.shortcut("demo.canvas_table", Demo.CanvasTable);
|