import React from "react"; import moment from "moment"; import { inject, observer } from "mobx-react"; @inject("payrollStore") @observer export default class ComputerTemplate extends React.Component { constructor(props) { super(props); this.state = { salaryItemSet: [], salaryTemplateShowSet: { theme: "", background: "", textContentPosition: "", textContent: "" } }; } componentWillMount() { if (this.props.isPreview) return; let salaryTemplateShowSetStr = window.localStorage.getItem("salary-showset") || "{}"; let salaryItemSetStr = window.localStorage.getItem("salaryItemSet") || "{}"; this.setState({ salaryItemSet: JSON.parse(salaryItemSetStr), salaryTemplateShowSet: JSON.parse(salaryTemplateShowSetStr) }); } componentDidMount() { if (this.props.isMsgPreview && this.props.salaryItemSet) { this.setState({ salaryItemSet: JSON.parse(this.props.salaryItemSet), salaryTemplateShowSet: JSON.parse(this.props.salaryTemplateShowSet) }); } } componentWillReceiveProps(nextProps) { if (nextProps.salaryTemplateShowSet !== this.props.salaryTemplateShowSet) { this.setState({ salaryItemSet: JSON.parse(nextProps.salaryItemSet), salaryTemplateShowSet: JSON.parse(nextProps.salaryTemplateShowSet) }); } } renderTableTr = (data, groupId) => { const tables = []; const len = data.length; const rowNum = 3; const sumRows = len % rowNum; const sumRowMod = len / rowNum; const rows = (sumRows == 0 ? sumRowMod : parseInt(sumRowMod.toString()) + 1); for (let j = 0; j < rows; j++) { let iLen = (j + 1) * rowNum; iLen = iLen > len ? len : iLen; tables.push(""); for (let i = j * rowNum; i < iLen; i++) { const key = (!this.props.isPreview && groupId !== "111111111111111111") ? data[i].salaryItemShowName : data[i].name; const value = data[i].salaryItemValue || "-"; tables.push("" + key + "" + "" + value + ""); } tables.push(""); } return tables; }; render() { const { salaryTemplateShowSet, salaryItemSet } = this.state; return (
{salaryTemplateShowSet.theme &&
{salaryTemplateShowSet.theme.replace("${companyName}", "").replace("${salaryMonth}", moment(new Date()).format("YYYY-MM"))}
} {/*{*/} {/* salaryTemplateShowSet.background &&
*/} {/* */} {/*
*/} {/*}*/}
{ salaryTemplateShowSet.textContentPosition == 1 && salaryTemplateShowSet.textContent }
{ salaryItemSet.length > 0 && salaryItemSet.map((group, index) => { return
{group.groupName}
; }) }
{ salaryTemplateShowSet.textContentPosition == 2 && salaryTemplateShowSet.textContent }
{this.props.children} ); } }