salary-management-front/pc4mobx/hrmSalary/pages/calculateDetail/compareDetailImportModal.js

103 lines
2.6 KiB
JavaScript

import React from "react";
import ImportModal from "../../components/importModal";
import { inject, observer } from "mobx-react";
@inject("calculateStore")
@observer
export default class CompareDetailImportModal extends React.Component {
constructor(props) {
super(props);
this.state = {
step: 0,
modalParam: {
salaryAcctRecordId: ""
}
};
}
componentWillMount() {
const { id } = this.props;
let modalParam = { ...this.state.modalParam };
modalParam.salaryAcctRecordId = id;
this.setState({
modalParam
});
}
// 设置步骤
setStep(step) {
this.setState({ step });
}
handleTemplateLink() {
let url="";
if(this.props.id){
url= "/api/bs/hrmsalary/salaryacct/comparisonresult/importtemplate/export?salaryAcctRecordId=" + this.props.id
}else{
url=`/api/bs/hrmsalary/siaccount/comparisonwelfare/importtemplate/export`
}
window.open(url);
}
// 初始化导入参数
handleInitImportModal() {
const {
calculateStore: {
setComparisonPreviewColumns,
setComparisonPreviewDataSource,
setComparisonImportAcctResult
}
} = this.props;
setComparisonPreviewColumns([]);
setComparisonPreviewDataSource([]);
setComparisonImportAcctResult({});
}
render() {
const { visiable } = this.props;
const { step, modalParam } = this.state;
const { calculateStore } = this.props;
const {
previewComparisonResult,
comparisonPreviewColumns,
comparisonPreviewDataSource,
importComparisonExcelAcctResult,
comparisonImportAcctResult
} = calculateStore;
return (
<div>
{
visiable && <ImportModal
init={() => {
this.handleInitImportModal();
}}
params={modalParam}
columns={comparisonPreviewColumns}
step={step}
setStep={this.setStep.bind(this)}
slideDataSource={comparisonPreviewDataSource}
importResult={comparisonImportAcctResult}
onFinish={() => {
this.props.onCancel();
this.props.onFinish();
}}
previewImport={(params) => {
previewComparisonResult(params);
}}
importFile={(params) => {
importComparisonExcelAcctResult(params);
}}
templateLink={() => {
this.handleTemplateLink();
}}
visiable={visiable}
onCancel={() => {
this.props.onCancel();
}}
/>
}
</div>
);
}
}