import React from "react"; import ImportModal from "../../../../components/importModal"; import { Badge, Button, message } from "antd"; import { inject, observer } from "mobx-react"; import SelectFieldModal from "./selectFieldModal"; import { getQueryString } from "../../../../util/url"; @inject("calculateStore", "standingBookStore") @observer export default class AcctResultImportModal extends React.Component { constructor(props) { super(props); this.state = { modalParam: { salaryAcctRecordId: "", salaryItemIds: "" }, step: 0, selectFieldVisible: false }; } componentWillMount() { const { id } = this.props; if (id) { let modalParam = { ...this.state.modalParam }; modalParam.salaryAcctRecordId = id; this.setState({ modalParam }); } else { this.setState({ modalParam: { ...this.state.modalParam, salaryAcctRecordId: "123" } }); } } // 获取模板 handleAccResultTemplateLink() { const { isStandingBook, standingBookTabKey, standingBookType } = this.props; let url = ""; if (_.isEmpty(this.state.modalParam.salaryItemIds)) { message.warning("请选择表单字段"); return; } if (!isStandingBook) { url = `${window.location.origin}/api/bs/hrmsalary/salaryacct/acctresult/importtemplate/export?salaryItemIds=${this.state.modalParam.salaryItemIds}&salaryAcctRecordId=${this.state.modalParam.salaryAcctRecordId}`; } else { const billMonth = getQueryString("billMonth"); const paymentOrganization = getQueryString("paymentOrganization"); if (standingBookTabKey === "1") { url = `${window.location.origin}/api/bs/hrmsalary/siaccount/welfare/importtemplate/export?welfareNames=${this.state.modalParam.salaryItemIds}&billMonth=${billMonth}&paymentOrganization=${paymentOrganization}`; } else if (standingBookTabKey === "3") { url = `${window.location.origin}/api/bs/hrmsalary/siaccount/welfare/supplyimporttemplate/export?welfareNames=${this.state.modalParam.salaryItemIds}&billMonth=${billMonth}&paymentOrganization=${paymentOrganization}`; } else if (standingBookType === "difference") { url = `${window.location.origin}/api/bs/hrmsalary/siaccount/welfare/balanceimporttemplate/export?welfareNames=${this.state.modalParam.salaryItemIds}&billMonth=${billMonth}&paymentOrganization=${paymentOrganization}`; } } window.open(url, "_self"); } // 设置步骤 setStep(step) { this.setState({ step }); } // 完成 handleFinish() { this.setState({ step: 0 }); this.props.onCancel(); if (!this.props.isStandingBook) { const childFrameObj = document.getElementById("atdTable"); const salaryAcctRecordId = getQueryString("id"); const payload = { type: "PR", listType: "", url: "/api/bs/hrmsalary/salaryacct/acctresult/list", queryParams: { salaryAcctRecordId } }; childFrameObj.contentWindow.postMessage(JSON.stringify(payload), "*"); } } // 渲染第一步表单 renderFormComponent() { return ; } // 选择表单字段 handleSelectedField() { this.setState({ selectFieldVisible: true }); } // 添加表头字段 handleAdd(fieldDate) { let salaryItemIdsList = []; if (!_.isEmpty(fieldDate.formulaItems)) { fieldDate.formulaItems.map(item => { if (item.checked) { salaryItemIdsList.push(item.salaryItemId); } }); } if (!_.isEmpty(fieldDate.inputItems)) { fieldDate.inputItems.map(item => { if (item.checked) { salaryItemIdsList.push(item.salaryItemId); } }); } if (!_.isEmpty(fieldDate.sqlItems)) { fieldDate.sqlItems.map(item => { if (item.checked) { salaryItemIdsList.push(item.salaryItemId); } }); } let salaryItemIds = ""; if (salaryItemIdsList.length > 0) { salaryItemIds = salaryItemIdsList.join(","); } let modalParam = { ...this.state.modalParam }; modalParam.salaryItemIds = salaryItemIds; this.setState({ modalParam }); this.props.onAdd(fieldDate); } // 初始化Import数据 handleImportModalInit() { const { calculateStore: { setPreviewAcctResultColumns, setPreviewAcctResultDataSource, setImportAcctResult }, standingBookStore: { setPreviewStandingBookAcctResultDataSource, setPreviewStandingBookAcctResultColumns, setImportStandingBookAcctResult }, isStandingBook } = this.props; if (!isStandingBook) { setPreviewAcctResultColumns([]); setPreviewAcctResultDataSource([]); setImportAcctResult({}); } else { setPreviewStandingBookAcctResultDataSource([]); setPreviewStandingBookAcctResultColumns([]); setImportStandingBookAcctResult({}); } } render() { const billMonth = getQueryString("billMonth"); //isStandingBook: 是否是社保福利台账核算的导入标识 //standingBookType: 是否是补差的导入标识 const { calculateStore, standingBookStore, isStandingBook, visiable, standingBookType } = this.props; const { fetchPreviewAcctResult, previewAcctResultColumns, previewAcctResultDataSource, importAcctResult, fetchImportAcctResult } = calculateStore; const { welfarePreview, previewStandingBookAcctResultColumns, previewStandingBookAcctResultDataSource, importStandingBookAcctResult, importInsuranceAcctDetail, importBalanceInsuranceDetail } = standingBookStore; const { step, selectFieldVisible, modalParam } = this.state; return (
{ visiable && { this.handleImportModalInit(); }} params={modalParam} columns={!isStandingBook ? previewAcctResultColumns : previewStandingBookAcctResultColumns} step={step} setStep={this.setStep.bind(this)} slideDataSource={!isStandingBook ? previewAcctResultDataSource : previewStandingBookAcctResultDataSource} importResult={!isStandingBook ? importAcctResult : importStandingBookAcctResult} onFinish={() => { this.handleFinish(); }} previewImport={(params) => { !isStandingBook ? fetchPreviewAcctResult(params) : welfarePreview(params); }} importFile={(params) => { !isStandingBook ? fetchImportAcctResult(params) : standingBookType === "difference" ? importBalanceInsuranceDetail({...params, billMonth}) : importInsuranceAcctDetail(params); }} templateLink={() => { this.handleAccResultTemplateLink(); }} renderFormComponent={() => this.renderFormComponent()} visiable={visiable} onCancel={() => { this.props.onCancel(); }} /> } { selectFieldVisible && { this.handleAdd(fieldDate); }} onCancel={() => { this.setState({ selectFieldVisible: false }); }} /> }
); } }