wui-print
Version:
前端打印插件,包含打印设计器、打印表单、打印API
58 lines (57 loc) • 2.34 kB
JavaScript
import printGlobalStyle from "./print-global-style/index.js";
import { camelToKebab } from "./print-designer-utils";
import createBaseComponentStyle from "./create-style/create-base-component-style.js";
import createTableStyle from "./create-style/create-table-style.js";
import createComplexTableStyle from "./create-style/create-complex-table-style.js";
import createFormComponentStyle from "./create-style/create-form-component-style.js";
import createFormItemStyle from "./create-style/create-form-item-style.js";
import createGridStyle from "./create-style/create-grid-style.js";
import createTableLayoutStyle from "./create-style/create-table-layout-style.js";
export const createPrintStyle = ({ printConfig } = {}) => {
if (!printConfig) {
printConfig = {};
}
let printStyleConfig = !!printConfig.style ? printConfig.style : {};
let styleText = `:root {
--wui-printing-background: ${printStyleConfig.backgroundColor};
--wui-printing-page-padding-top: ${!!printStyleConfig.paddingTop ? printStyleConfig.paddingTop : "0px"};
--wui-printing-page-padding-bottom: ${!!printStyleConfig.paddingBottom ? printStyleConfig.paddingBottom : "0px"};
--wui-printing-page-padding-left: ${!!printStyleConfig.paddingLeft ? printStyleConfig.paddingLeft : "0px"};
--wui-printing-page-padding-right: ${!!printStyleConfig.paddingRight ? printStyleConfig.paddingRight : "0px"};
}`;
let printSize = printConfig.pageSize;
if (!!printConfig.landscape) {
printSize += " landscape";
}
let printStyleText = `@media print {
@page {
size:${printSize}
}
}`;
styleText += printGlobalStyle;
styleText += printStyleText;
return styleText;
};
export const createContainerStyle = ({ styleConfig } = {}) => {
if (!styleConfig) {
styleConfig = {};
}
let styleText = "";
Object.keys(styleConfig).forEach((key, index) => {
if (!!styleConfig[key] || styleConfig[key] === 0) {
styleText += `${camelToKebab(key)}:${styleConfig[key]};`;
}
});
return styleText;
};
export default {
createPrintStyle,
createContainerStyle,
...createBaseComponentStyle,
...createTableStyle,
...createComplexTableStyle,
...createFormComponentStyle,
...createFormItemStyle,
...createGridStyle,
...createTableLayoutStyle
};