diff --git a/src/demo/custom/print-data.js b/src/demo/custom/print-data.js index b58b31702d1b663cc8b6e67466d7c6fb314b8b3e..9d8760a956d3da7ae392e9af0f48f69d041cee53 100644 --- a/src/demo/custom/print-data.js +++ b/src/demo/custom/print-data.js @@ -50,35 +50,35 @@ export default { ] }, table: [ - {NAME: '测试商品01', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品02', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品03', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品04', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品05', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品06', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品07', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品08', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品09', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品10', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品11', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品12', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品13', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品14', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品15', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品16', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品17', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品18', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品19', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品20', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品21', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品22', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品23', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品24', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品25', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品26', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品27', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品28', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品29', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, - {NAME: '测试商品30', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '1', NAME: '测试商品01', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '2', NAME: '测试商品02', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '3', NAME: '测试商品03', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '4', NAME: '测试商品04', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '5', NAME: '测试商品05', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '6', NAME: '测试商品06', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '7', NAME: '测试商品07', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '8', NAME: '测试商品08', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '9', NAME: '测试商品09', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '10', NAME: '测试商品10', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '11', NAME: '测试商品11', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '12', NAME: '测试商品12', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '13', NAME: '测试商品13', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '14', NAME: '测试商品14', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '15', NAME: '测试商品15', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '16', NAME: '测试商品16', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '17', NAME: '测试商品17', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '18', NAME: '测试商品18', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '19', NAME: '测试商品19', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '20', NAME: '测试商品20', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '21', NAME: '测试商品21', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '22', NAME: '测试商品22', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '23', NAME: '测试商品23', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '24', NAME: '测试商品24', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '25', NAME: '测试商品25', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '26', NAME: '测试商品26', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '27', NAME: '测试商品27', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '28', NAME: '测试商品28', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '29', NAME: '测试商品29', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, + {INDEX: '30', NAME: '测试商品30', SL: 2, GG: '1*24g', TM: '2O22010100110', DJ: '6.8', JE: '13.6'}, ] }; diff --git a/src/demo/custom/providers.js b/src/demo/custom/providers.js index 1894b2c9bc5cd602d8501e03b4f7c7e05c9f5447..6319c3e69a3504bc6a130abea2993834ab1fc33b 100644 --- a/src/demo/custom/providers.js +++ b/src/demo/custom/providers.js @@ -171,6 +171,16 @@ export const aProvider = function (ops) { {title: '金额', align: 'center', field: 'JE', width: 100, checked: false}, ], ], + rowsColumnsMerge: function(data,row,index){ + // 返回一个数组,参数一为列合并数,参数二为行合并数, 被合并的行或者列值设为0 + if(index==0){ + return [1,data.INDEX%2==1?2:1] + }else if(index>0&&index<2){ + return [data.INDEX%2==1?0:1,1] + }else{ + return [data.INDEX%2==1?2:0,1] + } + }, footerFormatter: function (options, rows, data, currentPageGridRowsData) { if (data && data['totalCap']) { return `${'应收金额大写: ' + data['totalCap']}` diff --git a/src/hiprint/hiprint.bundle.js b/src/hiprint/hiprint.bundle.js index 532f98681501549048d21a7e198a8200f1884bb5..5bb4e89c042c563c3a507a21a0f879e71a469099 100644 --- a/src/hiprint/hiprint.bundle.js +++ b/src/hiprint/hiprint.bundle.js @@ -652,6 +652,10 @@ var hiprint = function (t) { name: "footerFormatter", hidden: !1 }, { + name: "rowsColumnsMerge", + hidden: !1 + }, + { name: "gridColumnsFooterFormatter", hidden: !1 }], @@ -1931,11 +1935,33 @@ var hiprint = function (t) { }); return r; }, TableExcelHelper.createRowTarget = function (t, e, n, i) { + var o = $(""); + var columns = t.rowColumns o.data("rowData", e), t.rowColumns.forEach(function (t, i) { - var r = $(""); + var rowsColumnsMerge ='' + if(n.rowsColumnsMerge){ + eval('rowsColumnsMerge='+n.rowsColumnsMerge) + var rowsColumnsArr = rowsColumnsMerge(e,t,i)||[1,1] + var r = $(``); + }else{ + var r = $(""); + } if ("first" == n.tableHeaderRepeat || "none" == n.tableHeaderRepeat) { - t.field && r.attr("field", t.field), t.align && r.css("text-align", t.align), t.vAlign && r.css("vertical-align", t.vAlign), r.css("width", t.width + "pt"); + t.field && r.attr("field", t.field), t.align && r.css("text-align", t.align), t.vAlign && r.css("vertical-align", t.vAlign); + + //无表头时跨行无效,需根据所跨行数重新计算宽度 + if(n.rowsColumnsMerge){ + if(rowsColumnsArr[1]>1){ + var width = 0; + columns.forEach((item,index) => { + if(index>=i&&(index\n
\n 行/列合并函数\n
\n
\n \n
\n '), this.target; + }, t.prototype.getValue = function () { + var t = this.target.find("textarea").val(); + if (t) return t; + }, t.prototype.setValue = function (t) { + this.target.find("textarea").val(t?t.toString():null); + }, t.prototype.destroy = function () { + this.target.remove(); + }, t; + }(), mt = function () { function t() { this.name = "footerFormatter"; @@ -3833,7 +3875,7 @@ var hiprint = function (t) { t.init(), t.printElementOptionItems[e.name] = e; }, t.getItem = function (e) { return t.init(), t.printElementOptionItems[e]; - }, t._printElementOptionItems = [new o(), new r(), new a(), new p(), new i(), new s(), new l(), new pt(), new u(), new d(), new c(), new h(), new f(), new g(), new m(), new v(), new y(), new b(), new E(), new T(), new P(), new _(), new w(), new x(), new C(), new O(), new H(), new D(), new I(), new R(), new M(), new M2(), new S(), new B(), new F(), new L(), new A(), new z(), new k(), new st(), new N(), new V(), new W(), new j(), new U(), new K(), new G(), new q(), new X(), new Y(), new Q(), new J(), new Z(), new tt(), new et(), new nt(), new it(), new ot(), new at(), new lt(), new ut(), new it(), new dt(), new ct(), new ht(), new ft(), new gt(), new mt(), new vt(), new yt(), new bt(), new Tt(), new Et(), new Pt(), new _t(), new wt(), new xt(),new tableColumnH(),new tableE(),new tablept()], t; + }, t._printElementOptionItems = [new o(), new r(), new a(), new p(), new i(), new s(), new l(), new pt(), new u(), new d(), new c(), new h(), new f(), new g(), new m(), new v(), new y(), new b(), new E(), new T(), new P(), new _(), new w(), new x(), new C(), new O(), new H(), new D(), new I(), new R(), new M(), new M2(), new S(), new B(), new F(), new L(), new A(), new z(), new k(), new st(), new N(), new V(), new W(), new j(), new U(), new K(), new G(), new q(), new X(), new Y(), new Q(), new J(), new Z(), new tt(), new et(), new nt(), new it(), new ot(), new at(), new lt(), new ut(), new it(), new dt(), new ct(), new ht(), new ft(), new gt(), new mt(),new rowcolumns(), new vt(), new yt(), new bt(), new Tt(), new Et(), new Pt(), new _t(), new wt(), new xt(),new tableColumnH(),new tableE(),new tablept()], t; }(); }, function (t, e, n) { "use strict"; @@ -6282,7 +6324,7 @@ var hiprint = function (t) { var e = this; this.text = t.text, this.field = t.field, this.fields = t.fields, this.title = t.title, this.tid = t.tid, this.data = t.data, this.styler = t.styler, this.formatter = t.formatter, this.type = t.type, this.options = t.options, this.editable = t.editable, this.columnDisplayEditable = t.columnDisplayEditable, this.columnDisplayIndexEditable = t.columnDisplayIndexEditable, this.columnTitleEditable = t.columnTitleEditable, this.columnResizable = t.columnResizable, this.columnAlignEditable = t.columnAlignEditable, this.columns = [], (t.columns || []).forEach(function (t, n) { e.columns.push(e.createTableColumnArray(t)); - }), this.rowStyler = t.rowStyler, this.striped = t.striped, this.groupFields = t.groupFields || [], this.groupFormatter = t.groupFormatter, this.groupFooterFormatter = t.groupFooterFormatter, this.footerFormatter = t.footerFormatter, this.gridColumnsFooterFormatter = t.gridColumnsFooterFormatter, + }), this.rowStyler = t.rowStyler, this.striped = t.striped, this.groupFields = t.groupFields || [], this.groupFormatter = t.groupFormatter, this.groupFooterFormatter = t.groupFooterFormatter, this.footerFormatter = t.footerFormatter, this.rowsColumnsMerge = t.rowsColumnsMerge,this.gridColumnsFooterFormatter = t.gridColumnsFooterFormatter, this.isEnableEditField = t.isEnableEditField, this.isEnableContextMenu = t.isEnableContextMenu, this.isEnableInsertRow = t.isEnableInsertRow, this.isEnableDeleteRow = t.isEnableDeleteRow, this.isEnableInsertColumn = t.isEnableInsertColumn, this.isEnableDeleteColumn = t.isEnableDeleteColumn, this.isEnableMergeCell = t.isEnableMergeCell, this.columnObj = this.makeColumnObj(); } @@ -7791,7 +7833,6 @@ var hiprint = function (t) { a.updateSizeAndPositionOptions(e.mathroundToporleft(r.left - o.a.px.toPt(e.target.offset().left)), e.mathroundToporleft(r.top - o.a.px.toPt(e.target.offset().top))); a.setTemplateId(e.templateId), a.setPanel(e), e.appendDesignPrintElement(e.designPaper, a, !0); e.printElements.push(a), a.design(void 0, t); - debugger; o.a.event.trigger("hiprintTemplateDataChanged_" + e.templateId, "新增"); } }); diff --git a/src/hiprint/hiprint.config.js b/src/hiprint/hiprint.config.js index 099106873fd1ec17f27ca9ca14f1c00691e3373b..098f5c00c3f3d574d5727aca533d82d868623454 100644 --- a/src/hiprint/hiprint.config.js +++ b/src/hiprint/hiprint.config.js @@ -451,6 +451,11 @@ name: 'footerFormatter', hidden: false }, + { + + name: 'rowsColumnsMerge', + hidden: false + }, { name: 'gridColumnsFooterFormatter', hidden: false