feature/2.14.4.2406.02-个税在线算税

This commit is contained in:
黎永顺 2024-06-19 10:55:22 +08:00
parent 808936f540
commit 40d1504231
4 changed files with 109 additions and 3 deletions

View File

@ -286,3 +286,8 @@ export const acctresultCalcTax = (params) => {
export const calcTaxFeedback = (params) => {
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/calcTaxFeedback", params);
};
//薪资核算-人员异常
export const listPage4NotDeclare = (params) => {
return postFetch("/api/bs/hrmsalary/salaryacct/acctemployee/listPage4NotDeclare", params);
};

View File

@ -12,6 +12,7 @@ import EditCalcAdvanceSearchPannel from "./editCalcAdvanceSearchPannel";
import EditCalcTable from "./editCalcTable";
import SalaryMonthTip from "../salaryMonthTip";
import SalaryCalcLayout from "./salaryCalcLayout";
import PersonAbnormalDialog from "./personAbnormalDialog";
import cs from "classnames";
import "./index.less";
@ -22,7 +23,8 @@ class Index extends Component {
super(props);
this.state = {
salarySobCycle: {}, showSearchAd: false,
columnDesc: {}, formulaTd: "", showTotalCell: false
columnDesc: {}, formulaTd: "", showTotalCell: false,
perAbnormalDialog: { visible: false, salaryAcctRecordId: "" }
};
}
@ -50,7 +52,7 @@ class Index extends Component {
};
render() {
const { salarySobCycle, showSearchAd, formulaTd, columnDesc, showTotalCell } = this.state;
const { salarySobCycle, showSearchAd, formulaTd, columnDesc, showTotalCell, perAbnormalDialog } = this.state;
const { routeParams: { salaryAcctRecordId } } = this.props;
const formulaObj = _.get(columnDesc, [formulaTd]) || {};
return (<SalaryCalcLayout {...this.props} init={this.init} onConfirm={() => this.onAdSearch(false)}>
@ -65,7 +67,13 @@ class Index extends Component {
style={{ marginLeft: 10 }}
/>
</div>
<div></div>
<div>
<div className="abnormal-text"
onClick={() => this.setState({
perAbnormalDialog: { visible: true, salaryAcctRecordId }
})}>{getLabel(111, "未报送人员")}{salarySobCycle.abnormalEmployeeNum}
</div>
</div>
</div>
<div className="salary-flex-between formula-detail-area">
<div className="formula-detail">
@ -87,6 +95,10 @@ class Index extends Component {
<EditCalcTable ref={dom => this.calcTableRef = dom} salarySobId={salarySobCycle.salarySobId}
{...this.props} showTotalCell={showTotalCell}
onShowFormulaTd={this.handleShowFormulaTa}/>
<PersonAbnormalDialog {...perAbnormalDialog}
onCancel={() => this.setState({
perAbnormalDialog: { ...perAbnormalDialog, visible: false }
})}/>
</div>
</SalaryCalcLayout>);
}

View File

@ -14,6 +14,11 @@
padding-bottom: 0;
height: 46px;
margin-bottom: 0;
.abnormal-text {
color: #ef9502;
cursor: pointer;
}
}
.formula-detail-area {

View File

@ -0,0 +1,84 @@
/*
* Author: 黎永顺
* name: 薪资核算-人员异常
* Description:
* Date: 2023/8/18
*/
import React, { Component } from "react";
import { WeaDialog, WeaLocaleProvider, WeaTable } from "ecCom";
import { listPage4NotDeclare } from "../../../../../apis/calculate";
const { getLabel } = WeaLocaleProvider;
class PersonAbnormalDialog extends Component {
constructor(props) {
super(props);
this.state = {
pageInfo: { current: 1, pageSize: 10, total: 0 },
loading: false, columns: [], dataSource: []
};
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visible && nextProps.visible) this.queryList(nextProps);
}
queryList = (props) => {
const { salaryAcctRecordId } = props, { pageInfo } = this.state;
const payload = { ...pageInfo, recordId: salaryAcctRecordId };
this.setState({ loading: true });
listPage4NotDeclare(payload).then(({ status, data }) => {
this.setState({ loading: false });
if (status) {
const { columns, list: dataSource, pageNum: current, pageSize, total } = data;
this.setState({
dataSource, pageInfo: { ...pageInfo, current, pageSize, total }, columns
});
} else {
}
}).catch(() => this.setState({ loading: false }));
};
render() {
const { loading, columns, dataSource, pageInfo } = this.state;
const pagination = {
...pageInfo,
showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`,
showQuickJumper: true,
showSizeChanger: true,
pageSizeOptions: ["10", "20", "50", "100"],
onShowSizeChange: (current, pageSize) => {
this.setState({
pageInfo: { ...pageInfo, current, pageSize }
}, () => this.queryList(this.props));
},
onChange: current => {
this.setState({
pageInfo: { ...pageInfo, current }
}, () => this.queryList(this.props));
}
};
return (
<WeaDialog
{...this.props}
scalable hasScroll className="declareResultDialog" initLoadCss
title={getLabel(111, "未报送人员")}
style={{
width: 1150, height: 606.6, minHeight: 200, minWidth: 380, maxHeight: "90%",
maxWidth: "90%", overflow: "hidden", transform: "translate(0px, 0px)"
}}
>
<div className="declareResultDialogContent">
<WeaTable
columns={columns} dataSource={dataSource}
loading={loading} className="declareTable"
pagination={pagination}
/>
</div>
</WeaDialog>
);
}
}
export default PersonAbnormalDialog;