Merge branch 'release/2.14.3.2406.01' into release/2.14.3.2406.01-个税

This commit is contained in:
黎永顺 2024-06-11 10:52:50 +08:00
commit 84f6d25b51
7 changed files with 76 additions and 9 deletions

View File

@ -228,6 +228,10 @@ export const getColumnDesc = (params) => {
export const updateLockStatus = (params) => { export const updateLockStatus = (params) => {
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/updateLockStatus", params); return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/updateLockStatus", params);
}; };
// 更新薪资核算结果的锁定状态
export const updateLockEmpStatus = (params) => {
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/lockEmp", params);
};
// 导入薪资核算添加表头字段缓存 // 导入薪资核算添加表头字段缓存
export const cacheImportField = (params) => { export const cacheImportField = (params) => {
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/cacheImportField", params); return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/cacheImportField", params);

View File

@ -14,7 +14,7 @@ const getLabel = WeaLocaleProvider.getLabel;
class Index extends Component { class Index extends Component {
render() { render() {
const { theme, background, tip, tipPosi, itemTypeList, title } = this.props; const { theme, background, tip, tipPosi, itemTypeList, title } = this.props;
const { onlyOneGrup, showData } = dealTemplate(itemTypeList, "mobile"); const { onlyOneGrup, showData } = dealTemplate(_.filter(itemTypeList, o => !!o), "mobile");
return ( return (
<React.Fragment> <React.Fragment>
{/*<div className="pbmc-head">{title || getLabel(111, "薪酬预览")}</div>*/} {/*<div className="pbmc-head">{title || getLabel(111, "薪酬预览")}</div>*/}

View File

@ -7,7 +7,7 @@ const getLabel = WeaLocaleProvider.getLabel;
class Content extends Component { class Content extends Component {
render() { render() {
const { theme, background, tip, tipPosi, itemTypeList, sendTime = new Date() } = this.props; const { theme, background, tip, tipPosi, itemTypeList, sendTime = new Date() } = this.props;
const { onlyOneGrup, showData } = dealTemplate(itemTypeList, "pc"); const { onlyOneGrup, showData } = dealTemplate(_.filter(itemTypeList, o => !!o), "pc");
return ( return (
<div className="salary-preview-container"> <div className="salary-preview-container">
<div style={{ border: "10px solid #F3F9FF" }}> <div style={{ border: "10px solid #F3F9FF" }}>

View File

@ -105,7 +105,7 @@ class SalaryDetails extends Component {
return; return;
} }
WeaLoadingGlobal.start(); WeaLoadingGlobal.start();
const promise = API.exportSalaryList({ ...payload, ids: selectedRowKeys }); const promise = API.exportSalaryList({ ...payload, ids: key === "SELECTED" ? selectedRowKeys : [] });
}; };
getColumns = () => { getColumns = () => {
const { attendanceStore: { tableStore } } = this.props; const { attendanceStore: { tableStore } } = this.props;

View File

@ -8,7 +8,7 @@ import React, { Component } from "react";
import { WeaLocaleProvider, WeaTools } from "ecCom"; import { WeaLocaleProvider, WeaTools } from "ecCom";
import { message, Modal, Spin } from "antd"; import { message, Modal, Spin } from "antd";
import { inject, observer } from "mobx-react"; import { inject, observer } from "mobx-react";
import { acctResultList, updateLockStatus } from "../../../../../apis/calculate"; import { acctResultList, updateLockEmpStatus, updateLockStatus } from "../../../../../apis/calculate";
import ProgressModal from "../../../../../components/progressModal"; import ProgressModal from "../../../../../components/progressModal";
import BatchUpdateSalaryItemValDialog from "./batchUpdateSalaryItemValDialog"; import BatchUpdateSalaryItemValDialog from "./batchUpdateSalaryItemValDialog";
import EditSalaryCalcSlide from "./editSalaryCalcSlide"; import EditSalaryCalcSlide from "./editSalaryCalcSlide";
@ -57,12 +57,15 @@ class EditCalcTable extends Component {
this.props.onShowFormulaTd(dataIndex); this.props.onShowFormulaTd(dataIndex);
break; break;
case "LOCKING": case "LOCKING":
const { salaryItemId, lockType: lockStatus } = params; const { salaryItemId, lockType } = params;
if (lockStatus === "BATCHUPDATE") { if (lockType === "BATCHUPDATE") {
this.batchUpdateSalaryItemVal(params); this.batchUpdateSalaryItemVal(params);
return; return;
} }
this.updateLockStatus({ lockStatus, salaryItemId }); this.updateLockStatus({ lockStatus: lockType, salaryItemId });
break;
case "LOCKEMP":
this.updateEmpLockStatus({ ...params });
break; break;
case "EDIT": case "EDIT":
const { id: salaryCalcId } = params; const { id: salaryCalcId } = params;
@ -131,6 +134,52 @@ class EditCalcTable extends Component {
} }
}); });
}; };
updateEmpLockStatus = (payload) => {
const { lockStatus } = payload;
Modal.confirm({
title: getLabel(131329, "信息确认"),
content: <div>
<div style={{ textAlign: "center" }}>
{lockStatus === "LOCK" ? getLabel(111, "确定要锁定该人员核算数据吗?") : getLabel(111, "确定要解锁该人员核算数据吗?")}
</div>
<div style={{ textAlign: "center" }}>
{lockStatus === "LOCK" ? getLabel(111, "确定后,核算数据锁定,项目公式失效;点击核算将跳过该人员已核算的项目!") :
getLabel(111, "确定后,则项目公式生效,页面仍显示手动修改的项目值;点击核算将按公式重新核算,不再显示解锁标识!")}
</div>
</div>,
onOk: () => {
this.setState({
progressVisible: true
}, () => {
this.timerLock = setInterval(() => {
if (this.state.progress !== 100) {
this.setState({
progress: this.state.progress + 1
});
} else {
clearInterval(this.timerLock);
this.setState({
progressVisible: false,
progress: 0
});
}
}, 500);
});
const { routeParams: { salaryAcctRecordId } } = this.props;
updateLockEmpStatus({ ...payload, salaryAcctRecordId }).then(({ status, errormsg }) => {
if (status) {
clearInterval(this.timerLock);
this.setState({
progressVisible: false,
progress: 0
}, () => this.queryCalcResultList());
} else {
message.error(errormsg);
}
});
}
});
};
batchUpdateSalaryItemVal = (payload) => { batchUpdateSalaryItemVal = (payload) => {
Modal.confirm({ Modal.confirm({
title: getLabel(131329, "信息确认"), title: getLabel(131329, "信息确认"),
@ -180,7 +229,8 @@ class EditCalcTable extends Component {
"共": getLabel(18609, "共"), "条": getLabel(18256, "条"), "共": getLabel(18609, "共"), "条": getLabel(18256, "条"),
"总计": getLabel(523, "总计"), "批量解锁": getLabel(111, "批量解锁"), "总计": getLabel(523, "总计"), "批量解锁": getLabel(111, "批量解锁"),
"批量锁定": getLabel(111, "批量锁定"), "批量更新": getLabel(111, "批量更新"), "批量锁定": getLabel(111, "批量锁定"), "批量更新": getLabel(111, "批量更新"),
"查看拓扑图": getLabel(111, "查看拓扑图") "查看拓扑图": getLabel(111, "查看拓扑图"), "锁定": getLabel(111, "锁定"),
"解锁": getLabel(111, "解锁")
}; };
this.setState({ originPayloadData: { ...payload, i18n } }); this.setState({ originPayloadData: { ...payload, i18n } });
const childFrameObj = document.getElementById("atdTable"); const childFrameObj = document.getElementById("atdTable");

View File

@ -40,7 +40,8 @@ class AttendanceDataViewSlide extends Component {
const { columns, list: dataSource, pageNum: current, pageSize, total } = data.pageInfo; const { columns, list: dataSource, pageNum: current, pageSize, total } = data.pageInfo;
this.setState({ this.setState({
pageInfo: { ...pageInfo, current, pageSize, total }, dataSource, pageInfo: { ...pageInfo, current, pageSize, total }, dataSource,
columns: _.map(columns, o => ({ ...o, width: 150, fixed: o.dataIndex === "username" ? "left" : null })) // o.dataIndex === "username" ? "left" :
columns: _.map(columns, o => ({ ...o, width: 150, fixed: null }))
}); });
} }
}).catch(() => this.setState({ loading: { ...loading, query: false } })); }).catch(() => this.setState({ loading: { ...loading, query: false } }));

View File

@ -71,3 +71,15 @@
} }
} }
} }
//公式编辑框样式
.excel-codeBox {
.cm-variable {
}
.cm-string-2 {
color: inherit !important;
}
}