wui-print
Version:
前端打印插件,包含打印设计器、打印表单、打印API
88 lines (87 loc) • 3.14 kB
JavaScript
import { deepCopy } from "../../print-designer-utils";
import useDefault from "./use-default";
import useFixedHeight from "./use-fixed-height";
import useAutoHeightPreview from "./use-auto-height-preview";
import useAutoHeight from "./use-auto-height";
import usePaginationPreview from "./use-pagination-preview";
import usePagination from "./use-pagination";
export default ({ printData, printConfig, formConfig, layoutConfig, createHtmlByComponentItem, errorLogs } = {}) => {
const createComplexTableHtml = (item) => {
let complexTableHtml = "";
if (!item.props || !item.props.headerRow || !item.props.col) {
return complexTableHtml;
}
if (!item.props.canContinue && !item.props.isPaginationMode) {
const defaultInstance = useDefault({
printData,
printConfig,
formConfig,
layoutConfig,
createHtmlByComponentItem,
errorLogs
});
return defaultInstance.createComplexTableHtml(item);
}
if (!!item.props.canContinue && item.props.continuePrintMode == "fixedHeight") {
const fixedHeightInstance = useFixedHeight({
printData,
printConfig,
formConfig,
layoutConfig,
createHtmlByComponentItem,
errorLogs
});
return fixedHeightInstance.createComplexTableHtml(item);
}
if (!!item.props.canContinue && item.props.continuePrintMode == "_autoHeight_previewElements") {
// _autoHeight_previewElements 该值是代码运行中动态赋予的,无法在设计器中设置
const autoHeightPreviewInstance = useAutoHeightPreview({
printData,
printConfig,
formConfig,
layoutConfig,
createHtmlByComponentItem,
errorLogs
});
return autoHeightPreviewInstance.createComplexTableHtml(item);
}
if (!!item.props.canContinue && item.props.continuePrintMode == "autoHeight") {
const autoHeightInstance = useAutoHeight({
printData,
printConfig,
formConfig,
layoutConfig,
createHtmlByComponentItem,
errorLogs
});
return autoHeightInstance.createComplexTableHtml(item);
}
if (!!item.props.isPaginationMode && !!item.props._paginationModePreview) {
// _paginationModePreview 该属性是代码运行中动态赋予的,无法在设计器中设置
const paginationPreviewInstance = usePaginationPreview({
printData,
printConfig,
formConfig,
layoutConfig,
createHtmlByComponentItem,
errorLogs
});
return paginationPreviewInstance.createComplexTableHtml(item);
}
if (!!item.props.isPaginationMode && !item.props._paginationModePreview) {
const paginationInstance = usePagination({
printData,
printConfig,
formConfig,
layoutConfig,
createHtmlByComponentItem,
errorLogs
});
return paginationInstance.createComplexTableHtml(item);
}
return complexTableHtml;
};
return {
createComplexTableHtml
};
};