UNPKG

wui-print

Version:

前端打印插件,包含打印设计器、打印表单、打印API

76 lines (75 loc) 3.57 kB
import { deepCopy } from "../../print-designer-utils"; import printDesignerStyleHelper from "../../print-designer-style-helper"; import complexTableTools from "./complex-table-tools"; import createTableHeader from "./create-table-header"; export default ({ printData, printConfig, formConfig, layoutConfig, createHtmlByComponentItem, errorLogs } = {}) => { const createComplexTableHtml = (complexTableDetails) => { return _createHtml({ complexTableDetails }); }; function _createHtml({ complexTableDetails } = {}) { let complexTableHtml = ""; let { spanHeaderCellDict, spanHeaderCellList } = complexTableTools.createHeaderSpanDetails({ complexTableDetails }); let headerRowLength = complexTableDetails.props.headerRow; let colLength = complexTableDetails.props.col; let tableData = complexTableTools.getTableData({ complexTableDetails, printData }); for (let rowIndex = 0; rowIndex < headerRowLength; rowIndex++) { let headerCellHtml = ``; for (let colIndex = 0; colIndex < colLength; colIndex++) { let nowCellHtml = createTableHeader.getHeaderCellHtml({ rowIndex, colIndex, spanHeaderCellList, complexTableDetails }); headerCellHtml += nowCellHtml; } let rowHtml = `<tr class="complex-table-header-tr" header-index="${rowIndex}">${headerCellHtml}</tr>`; complexTableHtml += rowHtml; } for (let rowIndex = 0; rowIndex < tableData.length; rowIndex++) { let contentCellHtml = ``; for (let colIndex = 0; colIndex < colLength; colIndex++) { let nowCellHtml = _getContentCellHtml({ rowIndex, colIndex, tableData, complexTableDetails }); contentCellHtml += nowCellHtml; } let rowHtml = `<tr class="complex-table-content-tr" content-index="${rowIndex}">${contentCellHtml}</tr>`; complexTableHtml += rowHtml; } complexTableHtml = `<table class="print-complex-table" style="${printDesignerStyleHelper.createComplexTableStyle({ propsConfig: complexTableDetails.props, styleConfig: complexTableDetails.style })}" cellspacing="0" cellpadding="0">${complexTableHtml} </table>`; return complexTableHtml; } function _getContentCellHtml({ rowIndex, colIndex, tableData, complexTableDetails } = {}) { let propsConfig = complexTableDetails.props; let styleConfig = complexTableDetails.style; let contentCellHtml = ""; contentCellHtml = `<td style="${printDesignerStyleHelper.createComplexTableContentTdStyle({ complexTablePropsConfig: propsConfig, complexTableStyleConfig: styleConfig })}"><div style="${printDesignerStyleHelper.createComplexTableContentTdContainerStyle({ complexTablePropsConfig: propsConfig, complexTableStyleConfig: styleConfig })}">${_createContentTdText({ rowIndex, colIndex, tableData, complexTableDetails })}</div></td>`; return contentCellHtml; } function _createContentTdText({ rowIndex, colIndex, tableData, complexTableDetails } = {}) { let propsConfig = complexTableDetails.props; if (!propsConfig.columnsField || !propsConfig.columnsField[colIndex]) { return ""; } let columnField = propsConfig.columnsField[colIndex].field; if (!tableData[rowIndex]) { return ""; } let nowContentTdText = tableData[rowIndex][columnField]; if (!!nowContentTdText || nowContentTdText === 0) { return nowContentTdText; } return ""; } return { createComplexTableHtml }; };