diff --git a/bi/case.js b/bi/case.js index a17d8e33d..5fd550355 100644 --- a/bi/case.js +++ b/bi/case.js @@ -9586,6 +9586,8 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, { mergeRule: BI.emptyFn, columnSize: [], + minColumnSize: [], + maxColumnSize: [], headerRowSize: 25, footerRowSize: 25, rowSize: 25, @@ -9918,6 +9920,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, { mergeRule: BI.emptyFn, columnSize: [], + minColumnSize: [], + maxColumnSize: [], headerRowSize: 25, footerRowSize: 25, rowSize: 25, @@ -9967,6 +9971,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, { mergeRule: o.mergeRule, columnSize: o.columnSize, + minColumnSize: o.minColumnSize, + maxColumnSize: o.maxColumnSize, headerRowSize: o.headerRowSize, rowSize: o.rowSize, diff --git a/bi/widget.js b/bi/widget.js index 27e06a1d8..fef46d8f8 100644 --- a/bi/widget.js +++ b/bi/widget.js @@ -15973,7 +15973,7 @@ BI.SequenceTable = BI.inherit(BI.Widget, { headerRowSize: o.headerRowSize, rowSize: o.rowSize, width: 60, - height: o.height - BI.GridTableScrollbar.SIZE, + height: o.height && o.height - BI.GridTableScrollbar.SIZE, headerCellStyleGetter: o.headerCellStyleGetter, summaryCellStyleGetter: o.summaryCellStyleGetter, diff --git a/demo/js/config/widget.js b/demo/js/config/widget.js index bb559fde4..423892244 100644 --- a/demo/js/config/widget.js +++ b/demo/js/config/widget.js @@ -13,6 +13,14 @@ Demo.WIDGET_CONFIG = [{ pId: 401, text: "bi.responsive_table", value: "demo.responsive_table" +}, { + pId: 401, + text: "bi.sequence_table", + value: "demo.sequence_table" +}, { + pId: 401, + text: "bi.page_table", + value: "demo.page_table" }, { pId: 4, text: "bi.multi_select_combo", diff --git a/demo/js/widget/table/demo.page_table.js b/demo/js/widget/table/demo.page_table.js new file mode 100644 index 000000000..4f970e266 --- /dev/null +++ b/demo/js/widget/table/demo.page_table.js @@ -0,0 +1,214 @@ +Demo.Func = BI.inherit(BI.Widget, { + props: { + baseCls: "demo-func" + }, + + render: function () { + var items = [{ + children: [{ + type: "bi.page_table_cell", + text: "node1", + children: [{ + type: "bi.page_table_cell", + text: "childnode1", + values: [{type: "bi.page_table_cell", text: 101}, { + type: "bi.page_table_cell", + text: 102 + }, {type: "bi.page_table_cell", text: 101}, { + type: "bi.page_table_cell", + text: 102 + }, {type: "bi.page_table_cell", text: 101}] + }, { + type: "bi.page_table_cell", + text: "childnode2", + values: [{type: "bi.page_table_cell", text: 201}, { + type: "bi.page_table_cell", + text: 202 + }, {type: "bi.page_table_cell", text: 201}, { + type: "bi.page_table_cell", + text: 202 + }, {type: "bi.page_table_cell", text: 201}] + }], + values: [{type: "bi.page_table_cell", text: 1001}, { + type: "bi.page_table_cell", + text: 1002 + }, {type: "bi.page_table_cell", text: 1001}, { + type: "bi.page_table_cell", + text: 1002 + }, {type: "bi.page_table_cell", text: 1001}] + }], values: [{type: "bi.page_table_cell", text: 12001}, { + type: "bi.page_table_cell", + text: 12002 + }, {type: "bi.page_table_cell", text: 12001}, { + type: "bi.page_table_cell", + text: 12002 + }, {type: "bi.page_table_cell", text: 12001}] + }]; + + var header = [{ + type: "bi.page_table_cell", + text: "header1" + }, { + type: "bi.page_table_cell", + text: "header2" + }, { + type: "bi.page_table_cell", + text: "jine", + tag: 1 + }, { + type: "bi.page_table_cell", + text: "jine", + tag: 2 + }, { + type: "bi.page_table_cell", + text: "jine", + tag: 3 + }, { + type: "bi.page_table_cell", + text: "金额汇总", + tag: 4 + }, { + type: "bi.page_table_cell", + text: "金额汇总2", + tag: 5 + }]; + + var crossHeader = [{ + type: "bi.page_table_cell", + text: "cross1" + }, { + type: "bi.page_table_cell", + text: "cross2" + }]; + + var crossItems = [{ + children: [{ + type: "bi.page_table_cell", + text: "node1", + values: [1, 2, 3] + }, { + type: "bi.page_table_cell", + text: "node3", + values: [1, 2] + }], + //values: [1, 2] + }]; + + var table1 = BI.createWidget({ + type: "bi.page_table", + el: { + type: "bi.sequence_table", + showSequence: true, + el: { + type: "bi.dynamic_summary_tree_table", + el: { + type: "bi.adaptive_table", + el: { + type: "bi.resizable_table", + el: { + type: "bi.collection_table" + } + } + }, + }, + sequence: { + type: "bi.sequence_table_dynamic_number" + } + }, + summaryCellStyleGetter: function (isLast) { + return isLast ? { + backgroundColor: "#6495ED", + color: "#ffffff" + } : { + backgroundColor: "#B0C4DE", + color: "#ffffff" + } + }, + sequenceCellStyleGetter: function (index) { + return { + backgroundColor: "#87CEEB", + color: "#ffffff" + } + }, + headerCellStyleGetter: function () { + return { + backgroundColor: "#6495ED", + color: "#ffffff" + } + }, + pager: { + horizontal: { + pages: false, //总页数 + curr: 1, //初始化当前页, pages为数字时可用 + + hasPrev: function (page) { + return page > 1; + }, + hasNext: function (page) { + return page < 3; + } + }, + vertical: { + pages: false, //总页数 + curr: 1, //初始化当前页, pages为数字时可用 + + hasPrev: function (page) { + return page > 1; + }, + hasNext: function (page) { + return page < 3; + } + } + }, + itemsCreator: function (op, populate) { + var vpage = op.vpage || ""; + var hpage = op.hpage || ""; + BI.each(header, function (i, h) { + h.text = h.text + "V" + vpage + "H" + hpage; + }); + populate(items, header, crossItems, crossHeader); + }, + width: 600, + height: 400, + columnSize: [100, 100, 100, 100, 100, 100, 100], + minColumnSize: [100, 100, 100, 100, 100, 100, 100], + isNeedMerge: true, + isNeedFreeze: true, + mergeCols: [0, 1], + mergeRule: function (col1, col2) { + if (col1 === col2) { + return true; + } + if (col1.tag && col2.tag) { + return col1.tag === col2.tag; + } + return col1 === col2; + }, + freezeCols: [0, 1], + header: header, + items: items, + crossHeader: crossHeader, + crossItems: crossItems + }); + // table1.populate(items, header, crossItems, crossHeader); + BI.createWidget({ + type: "bi.absolute", + element: this, + items: [{ + el: { + type: "bi.grid", + columns: 1, + rows: 1, + items: [[{ + el: table1 + }]] + }, + left: 10, + right: 10, + top: 10, + bottom: 10 + }] + }) + } +}); +BI.shortcut("demo.page_table", Demo.Func); \ No newline at end of file diff --git a/demo/js/widget/table/demo.sequence_table.js b/demo/js/widget/table/demo.sequence_table.js new file mode 100644 index 000000000..104c25f29 --- /dev/null +++ b/demo/js/widget/table/demo.sequence_table.js @@ -0,0 +1,159 @@ +Demo.Func = BI.inherit(BI.Widget, { + props: { + baseCls: "demo-func" + }, + + render: function () { + var items = [{ + children: [{ + text: "节点1", + children: [{ + text: "子节点1", + children: [{ + text: "叶节点1", + values: [{text: 11}, {text: 12}, {text: 11}, {text: 12}, {text: 11}, {text: 12}, {text: 112}] + }, { + text: "叶节点2", + values: [{text: 21}, {text: 22}, {text: 21}, {text: 22}, {text: 21}, {text: 22}, {text: 122}] + }], + values: [{text: 101}, {text: 102}, {text: 101}, {text: 102}, {text: 101}, {text: 102}, {text: 1102}] + }, { + text: "子节点2", + children: [{ + text: "叶节点3", + values: [{text: 31}, {text: 32}, {text: 31}, {text: 32}, {text: 31}, {text: 32}, {text: 132}] + }, { + text: "叶节点4", + values: [{text: 41}, {text: 42}, {text: 41}, {text: 42}, {text: 41}, {text: 42}, {text: 142}] + }], + values: [{text: 201}, {text: 202}, {text: 201}, {text: 202}, {text: 201}, {text: 202}, {text: 1202}] + }, { + text: "子节点3", + children: [{ + text: "叶节点5", + values: [{text: 51}, {text: 52}, {text: 51}, {text: 52}, {text: 51}, {text: 52}, {text: 152}] + }], + values: [{text: 301}, {text: 302}, {text: 301}, {text: 302}, {text: 301}, {text: 302}, {text: 1302}] + }], + values: [{text: 1001}, {text: 1002}, {text: 1001}, {text: 1002}, {text: 1001}, {text: 1002}, {text: 11002}] + }, { + text: "节点2", + values: [{text: 2001}, {text: 2002}, {text: 2001}, {text: 2002}, {text: 2001}, {text: 2002}, {text: 12002}] + }], + values: [{text: 12001}, {text: 12002}, {text: 12001}, {text: 12002}, {text: 12001}, {text: 12002}, {text: 112002}] + }]; + + var header = [{ + text: "header1" + }, { + text: "header2" + }, { + text: "header3" + }, { + text: "金额", + tag: 1 + }, { + text: "金额", + tag: 2 + }, { + text: "金额", + tag: 3 + }, { + text: "金额", + tag: 4 + }, { + text: "金额", + tag: 5 + }, { + text: "金额", + tag: 6 + }, { + text: "金额", + tag: 7 + }]; + + var crossHeader = [{ + text: "cross1" + }, { + text: "cross2" + }]; + + var crossItems = [{ + children: [{ + text: "节点1", + children: [{ + text: "子节点1" + }, { + text: "子节点2" + }], + values: [0] + }, { + text: "节点2", + children: [{ + text: "子节点3" + }, { + text: "子节点4" + }], + values: [0] + }], + values: [0] + }]; + var table = BI.createWidget({ + type: "bi.sequence_table", + el: { + type: "bi.tree_table", + el: { + type: "bi.adaptive_table", + el: { + type: "bi.resizable_table", + el: { + type: "bi.collection_table" + } + } + }, + }, + sequence: { + type: "bi.sequence_table_tree_number" + }, + showSequence: true, + width: 600, + height: 400, + isNeedResize: true, + isNeedMerge: true, + mergeRule: function (row1, row2) { + return row1 === row2; + }, + columnSize: [100, 100, 100, 100, 100, 100, 100, 100, 100, 100], + minColumnSize: [100, 100, 100, 100, 100, 100, 100, 100, 100, 100], + isNeedFreeze: true, + freezeCols: [0, 1, 2], + mergeCols: [0, 1, 2], + header: header, + items: items, + crossHeader: crossHeader, + crossItems: crossItems + }); + + BI.createWidget({ + type: "bi.absolute", + element: this, + items: [{ + el: { + type: "bi.grid", + columns: 1, + rows: 1, + items: [{ + column: 0, + row: 0, + el: table + }] + }, + left: 10, + right: 10, + top: 10, + bottom: 50 + }] + }) + } +}); +BI.shortcut("demo.sequence_table", Demo.Func); \ No newline at end of file diff --git a/dist/case.js b/dist/case.js index a17d8e33d..5fd550355 100644 --- a/dist/case.js +++ b/dist/case.js @@ -9586,6 +9586,8 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, { mergeRule: BI.emptyFn, columnSize: [], + minColumnSize: [], + maxColumnSize: [], headerRowSize: 25, footerRowSize: 25, rowSize: 25, @@ -9918,6 +9920,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, { mergeRule: BI.emptyFn, columnSize: [], + minColumnSize: [], + maxColumnSize: [], headerRowSize: 25, footerRowSize: 25, rowSize: 25, @@ -9967,6 +9971,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, { mergeRule: o.mergeRule, columnSize: o.columnSize, + minColumnSize: o.minColumnSize, + maxColumnSize: o.maxColumnSize, headerRowSize: o.headerRowSize, rowSize: o.rowSize, diff --git a/dist/widget.js b/dist/widget.js index 27e06a1d8..fef46d8f8 100644 --- a/dist/widget.js +++ b/dist/widget.js @@ -15973,7 +15973,7 @@ BI.SequenceTable = BI.inherit(BI.Widget, { headerRowSize: o.headerRowSize, rowSize: o.rowSize, width: 60, - height: o.height - BI.GridTableScrollbar.SIZE, + height: o.height && o.height - BI.GridTableScrollbar.SIZE, headerCellStyleGetter: o.headerCellStyleGetter, summaryCellStyleGetter: o.summaryCellStyleGetter, diff --git a/src/case/table/table.dynamicsummarylayertree.js b/src/case/table/table.dynamicsummarylayertree.js index d7e8599c2..7af1e427a 100644 --- a/src/case/table/table.dynamicsummarylayertree.js +++ b/src/case/table/table.dynamicsummarylayertree.js @@ -25,6 +25,8 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, { mergeRule: BI.emptyFn, columnSize: [], + minColumnSize: [], + maxColumnSize: [], headerRowSize: 25, footerRowSize: 25, rowSize: 25, diff --git a/src/case/table/table.dynamicsummarytree.js b/src/case/table/table.dynamicsummarytree.js index 02f686399..a66bfa12b 100644 --- a/src/case/table/table.dynamicsummarytree.js +++ b/src/case/table/table.dynamicsummarytree.js @@ -25,6 +25,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, { mergeRule: BI.emptyFn, columnSize: [], + minColumnSize: [], + maxColumnSize: [], headerRowSize: 25, footerRowSize: 25, rowSize: 25, @@ -74,6 +76,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, { mergeRule: o.mergeRule, columnSize: o.columnSize, + minColumnSize: o.minColumnSize, + maxColumnSize: o.maxColumnSize, headerRowSize: o.headerRowSize, rowSize: o.rowSize, diff --git a/src/widget/sequencetable/sequencetable.js b/src/widget/sequencetable/sequencetable.js index d1e6fca7b..bfb4bc463 100644 --- a/src/widget/sequencetable/sequencetable.js +++ b/src/widget/sequencetable/sequencetable.js @@ -66,7 +66,7 @@ BI.SequenceTable = BI.inherit(BI.Widget, { headerRowSize: o.headerRowSize, rowSize: o.rowSize, width: 60, - height: o.height - BI.GridTableScrollbar.SIZE, + height: o.height && o.height - BI.GridTableScrollbar.SIZE, headerCellStyleGetter: o.headerCellStyleGetter, summaryCellStyleGetter: o.summaryCellStyleGetter,