157 lines
4.7 KiB
JavaScript
157 lines
4.7 KiB
JavaScript
import React from "react";
|
|
import {
|
|
WeaDatePicker,
|
|
WeaDialog,
|
|
WeaError,
|
|
WeaFormItem,
|
|
WeaHelpfulTip,
|
|
WeaLocaleProvider,
|
|
WeaSelect,
|
|
WeaTextarea
|
|
} from "ecCom";
|
|
import { Button } from "antd";
|
|
import { inject, observer } from "mobx-react";
|
|
import moment from "moment";
|
|
import "./index.less";
|
|
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
|
@inject("declareStore", "taxAgentStore")
|
|
@observer
|
|
export default class GenerateModal extends React.Component {
|
|
constructor(props) {
|
|
super(props);
|
|
this.state = {
|
|
date: "",
|
|
taxAgentId: "",
|
|
description: "",
|
|
loading: false
|
|
};
|
|
}
|
|
|
|
// 生成申报表
|
|
handleGenerate = () => {
|
|
const { declareStore: { saveDeclare } } = this.props;
|
|
const { date, taxAgentId, description } = this.state;
|
|
if (_.isEmpty(date) && _.isEmpty(taxAgentId)) {
|
|
this.refs.weaError.showError();
|
|
this.refs.weaError1.showError();
|
|
return;
|
|
}
|
|
|
|
if (_.isEmpty(date)) {
|
|
this.refs.weaError.showError();
|
|
return;
|
|
}
|
|
|
|
if (_.isEmpty(taxAgentId)) {
|
|
this.refs.weaError1.showError();
|
|
return;
|
|
}
|
|
this.setState({ loading: true });
|
|
saveDeclare({
|
|
salaryMonth: moment(date).startOf("month").format("YYYY-MM-DD"),
|
|
taxAgentId,
|
|
description
|
|
}).then(() => {
|
|
this.setState({ loading: false });
|
|
this.props.onGenerate();
|
|
}).catch(() => {
|
|
this.setState({ loading: false });
|
|
});
|
|
};
|
|
|
|
render() {
|
|
const { taxAgentStore: { taxAgentAdminOption } } = this.props;
|
|
const { loading } = this.state;
|
|
return (
|
|
<WeaDialog
|
|
visible={this.props.visible}
|
|
onCancel={() => this.props.onCancel()}
|
|
initLoadCss
|
|
className="generateWapper"
|
|
title={
|
|
<span>
|
|
<span>申报</span>
|
|
<WeaHelpfulTip
|
|
style={{ marginLeft: 8, position: "relative", top: "-1px" }}
|
|
width={200}
|
|
title="提示:一个薪资所属月下一个个税扣缴义务人的所有核算数据都归档后才可以申报"
|
|
placement="topLeft"
|
|
/>
|
|
</span>
|
|
}
|
|
buttons={
|
|
[<Button
|
|
type="primary"
|
|
loading={loading}
|
|
onClick={this.handleGenerate}>
|
|
生成申报表
|
|
</Button>]
|
|
}>
|
|
<div style={{ marginTop: "10px", padding: "20px 20%" }}>
|
|
<WeaFormItem
|
|
label="薪资所属月"
|
|
style={{ marginBottom: 10 }}
|
|
labelCol={{ span: 8 }}
|
|
wrapperCol={{ span: 16 }}>
|
|
<WeaError
|
|
style={{ width: "100%" }}
|
|
tipPosition="bottom"
|
|
ref="weaError"
|
|
error="请选择薪资所属月">
|
|
<WeaDatePicker
|
|
style={{ width: "100%" }}
|
|
viewAttr={3}
|
|
format="YYYY-MM"
|
|
value={this.state.date}
|
|
onChange={(value) => {
|
|
if (_.isEmpty(value)) this.refs.weaError.showError();
|
|
this.setState({ date: value });
|
|
}}
|
|
/>
|
|
</WeaError>
|
|
</WeaFormItem>
|
|
<WeaFormItem
|
|
label="个税扣缴义务人"
|
|
style={{ marginBottom: 10 }}
|
|
labelCol={{ span: 8 }}
|
|
wrapperCol={{ span: 16 }}>
|
|
<WeaError
|
|
style={{ width: "100%" }}
|
|
tipPosition="bottom"
|
|
ref="weaError1"
|
|
error="请选择个税扣缴义务人">
|
|
<WeaSelect
|
|
showSearch // 设置select可搜索
|
|
viewAttr={3}
|
|
options={[{ key: "", showname: "" }, ...taxAgentAdminOption]}
|
|
value={this.state.taxAgentId}
|
|
onChange={(taxAgentId) => {
|
|
if (_.isEmpty(taxAgentId)) this.refs.weaError1.showError();
|
|
this.setState({ taxAgentId });
|
|
}}
|
|
/>
|
|
<WeaHelpfulTip
|
|
style={{ position: "absolute", bottom: 8, right: -35 }}
|
|
width={200}
|
|
title="提示:可选择单个个税扣缴义务人进行申报,若不选择,则批量对管理下的所有个税扣缴义务人进行申报;"
|
|
placement="topLeft"
|
|
/>
|
|
</WeaError>
|
|
</WeaFormItem>
|
|
<WeaFormItem
|
|
label={getLabel(536726, "备注")}
|
|
style={{ marginBottom: 10 }}
|
|
labelCol={{ span: 8 }}
|
|
wrapperCol={{ span: 16 }}>
|
|
<WeaTextarea
|
|
value={this.state.description}
|
|
onChange={(description) => this.setState({ description })}
|
|
/>
|
|
</WeaFormItem>
|
|
</div>
|
|
</WeaDialog>
|
|
);
|
|
}
|
|
}
|