Merge branch 'release/2.15.1.2407.01' into release/2.15.1.2407.01-个税
This commit is contained in:
commit
fdfd784c64
|
|
@ -242,13 +242,21 @@ class Index extends Component {
|
||||||
<BaseInfo {...this.props}/>
|
<BaseInfo {...this.props}/>
|
||||||
<WeaTab
|
<WeaTab
|
||||||
datas={tabDatas} keyParam="viewcondition" selectedKey={selectedKey}
|
datas={tabDatas} keyParam="viewcondition" selectedKey={selectedKey}
|
||||||
onChange={v => this.setState({ selectedKey: v }, () => this.queryPCList())}
|
onChange={v => this.setState({
|
||||||
|
selectedKey: v,
|
||||||
|
pageInfo: { ...pageInfo, current: 1 }
|
||||||
|
}, () => this.queryPCList())}
|
||||||
|
onSearch={v => this.setState({
|
||||||
|
pageInfo: { ...pageInfo, current: 1 }
|
||||||
|
}, () => this.queryPCList())}
|
||||||
|
onAdSearch={v => this.setState({
|
||||||
|
pageInfo: { ...pageInfo, current: 1 }
|
||||||
|
}, () => this.queryPCList())}
|
||||||
buttons={this.renderTabBtns()} searchType={["base", "advanced"]} advanceHeight={220}
|
buttons={this.renderTabBtns()} searchType={["base", "advanced"]} advanceHeight={220}
|
||||||
showSearchAd={showSearchAd} setShowSearchAd={bool => this.setState({ showSearchAd: bool })}
|
showSearchAd={showSearchAd} setShowSearchAd={bool => this.setState({ showSearchAd: bool })}
|
||||||
searchsAd={getSearchs(PCSearchForm, searchConditions, 2, false)}
|
searchsAd={getSearchs(PCSearchForm, searchConditions, 2, false)}
|
||||||
onSearchChange={(v) => PCSearchForm.updateFields({ employeeName: v })}
|
onSearchChange={(v) => PCSearchForm.updateFields({ employeeName: v })}
|
||||||
searchsBaseValue={PCSearchForm.getFormParams().employeeName}
|
searchsBaseValue={PCSearchForm.getFormParams().employeeName}
|
||||||
onSearch={this.queryPCList} onAdSearch={this.queryPCList}
|
|
||||||
onAdReset={() => PCSearchForm.resetForm()} autoCalculateWidth
|
onAdReset={() => PCSearchForm.resetForm()} autoCalculateWidth
|
||||||
/>
|
/>
|
||||||
<WeaTable
|
<WeaTable
|
||||||
|
|
|
||||||
|
|
@ -271,6 +271,9 @@ class EditCalcTable extends Component {
|
||||||
}
|
}
|
||||||
}).catch(() => this.setState({ loading: false }));
|
}).catch(() => this.setState({ loading: false }));
|
||||||
};
|
};
|
||||||
|
handleQuery = () => {
|
||||||
|
this.setState({ pageInfo: { ...this.state.pageInfo, current: 1 } }, () => this.queryCalcResultList());
|
||||||
|
};
|
||||||
handleBatchEditing = () => {
|
handleBatchEditing = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class Index extends Component {
|
||||||
|
|
||||||
openAdvanceSearch = () => this.setState({ showSearchAd: !this.state.showSearchAd });
|
openAdvanceSearch = () => this.setState({ showSearchAd: !this.state.showSearchAd });
|
||||||
onAdSearch = (bool = true) => {
|
onAdSearch = (bool = true) => {
|
||||||
this.calcTableRef.wrappedInstance.queryCalcResultList();
|
this.calcTableRef.wrappedInstance.handleQuery();
|
||||||
bool && this.openAdvanceSearch();
|
bool && this.openAdvanceSearch();
|
||||||
};
|
};
|
||||||
init = async () => {
|
init = async () => {
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,8 @@ class LedgerSlide extends Component {
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
items: _.map(item.items, it => {
|
items: _.map(item.items, it => {
|
||||||
// delete it.formulaContent;
|
delete it.originFormulaContent;
|
||||||
|
delete it.originSqlContent;
|
||||||
// if (it.id && it.id.length > 4) delete it.id;
|
// if (it.id && it.id.length > 4) delete it.id;
|
||||||
return { ...it };
|
return { ...it };
|
||||||
})
|
})
|
||||||
|
|
@ -135,7 +136,8 @@ class LedgerSlide extends Component {
|
||||||
}),
|
}),
|
||||||
items: _.map(_.find(itemGroups, it => it.name === "未分类").items, child => {
|
items: _.map(_.find(itemGroups, it => it.name === "未分类").items, child => {
|
||||||
// if (child.id && child.id.length > 4) delete child.id;
|
// if (child.id && child.id.length > 4) delete child.id;
|
||||||
// delete child.formulaContent;
|
delete child.originFormulaContent;
|
||||||
|
delete child.originSqlContent;
|
||||||
return { ...child };
|
return { ...child };
|
||||||
}) || [],
|
}) || [],
|
||||||
salarySobId: salarySobId || saveSalarySobId
|
salarySobId: salarySobId || saveSalarySobId
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,8 @@ class PovitpivotChartModal extends Component {
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps, nextContext) {
|
componentWillReceiveProps(nextProps, nextContext) {
|
||||||
if (nextProps.visible !== this.props.visible && nextProps.visible) {
|
if (nextProps.visible !== this.props.visible && nextProps.visible) {
|
||||||
const { id, dimensionId, dimensionValue, isShare } = nextProps;
|
const { id, dimensionId, dimensionValue, isShare, salaryStartMonth, salaryEndMonth } = nextProps;
|
||||||
this.getDataPerspective({ id, dimensionId, dimensionValue, isShare });
|
this.getDataPerspective({ id, dimensionId, dimensionValue, isShare, salaryStartMonth, salaryEndMonth });
|
||||||
} else {
|
} else {
|
||||||
this.setState({
|
this.setState({
|
||||||
dataSource: [],
|
dataSource: [],
|
||||||
|
|
@ -64,11 +64,11 @@ class PovitpivotChartModal extends Component {
|
||||||
});
|
});
|
||||||
} else if (type === "turn") {
|
} else if (type === "turn") {
|
||||||
if (id === "PAGEINFO") {
|
if (id === "PAGEINFO") {
|
||||||
const { id, dimensionId, dimensionValue, isShare } = this.props;
|
const { id, dimensionId, dimensionValue, isShare, salaryStartMonth, salaryEndMonth } = this.props;
|
||||||
const { pageNum: current, size: pageSize } = params;
|
const { pageNum: current, size: pageSize } = params;
|
||||||
this.setState({ pageInfo: { ...pageInfo, current, pageSize } }, () =>
|
this.setState({ pageInfo: { ...pageInfo, current, pageSize } }, () =>
|
||||||
this.getDataPerspective({
|
this.getDataPerspective({
|
||||||
id, dimensionId, dimensionValue, isShare
|
id, dimensionId, dimensionValue, isShare, salaryStartMonth, salaryEndMonth
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ class ReportContent extends Component {
|
||||||
chartsType: "0",
|
chartsType: "0",
|
||||||
chartsInfo: {},
|
chartsInfo: {},
|
||||||
povitView: {
|
povitView: {
|
||||||
visible: false, id: "", isShare: false,
|
visible: false, id: "", isShare: false, dimensionId: "", dimensionValue: "", salaryStartMonth: "",
|
||||||
dimensionId: "", dimensionValue: ""
|
salaryEndMonth: ""
|
||||||
},
|
},
|
||||||
rangSet: {
|
rangSet: {
|
||||||
visible: false, reportId: "",
|
visible: false, reportId: "",
|
||||||
|
|
@ -69,10 +69,15 @@ class ReportContent extends Component {
|
||||||
if (id === "PIVOTCHART") {
|
if (id === "PIVOTCHART") {
|
||||||
const { record } = params;
|
const { record } = params;
|
||||||
const { dimension: dimensionValue } = record;
|
const { dimension: dimensionValue } = record;
|
||||||
const { id: pivotId, dimensionId, isShare } = this.props.report;
|
const {
|
||||||
|
id: pivotId, dimensionId, isShare, timeType, salaryEndMonth: end, salaryStartMonth: start
|
||||||
|
} = this.props.report;
|
||||||
|
const [salaryStartMonth, salaryEndMonth] = getSalaryMonthValue(timeType);
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
povitView: {
|
povitView: {
|
||||||
visible: true, id: pivotId, dimensionId, dimensionValue, isShare
|
visible: true, id: pivotId, dimensionId, dimensionValue, isShare,
|
||||||
|
salaryStartMonth: (salaryStartMonth || start) + "-01", salaryEndMonth: (salaryEndMonth || end) + "-01"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (id === "PAGEINFO_REPORT") {
|
} else if (id === "PAGEINFO_REPORT") {
|
||||||
|
|
@ -282,7 +287,7 @@ class ReportContent extends Component {
|
||||||
onCancel={() => this.setState({
|
onCancel={() => this.setState({
|
||||||
povitView: {
|
povitView: {
|
||||||
visible: false, id: "", dimensionId: "", dimensionValue: "",
|
visible: false, id: "", dimensionId: "", dimensionValue: "",
|
||||||
isShare: false
|
isShare: false, salaryStartMonth: "", salaryEndMonth: ""
|
||||||
}
|
}
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
/*
|
||||||
|
* 方案信息确认
|
||||||
|
* 保存并自动修改基数,仅保存方案设置
|
||||||
|
* @Author: 黎永顺
|
||||||
|
* @Date: 2024/8/19
|
||||||
|
* @Wechat:
|
||||||
|
* @Email: 971387674@qq.com
|
||||||
|
* @description:
|
||||||
|
*/
|
||||||
|
import React, { Component } from "react";
|
||||||
|
import { WeaDialog, WeaLocaleProvider, WeaTransfer } from "ecCom";
|
||||||
|
import { Alert, Button } from "antd";
|
||||||
|
|
||||||
|
const getLabel = WeaLocaleProvider.getLabel;
|
||||||
|
const WeaTransferList = WeaTransfer.list;
|
||||||
|
|
||||||
|
class BaseValidateDialog extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = { dataSource: [] };
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillReceiveProps(nextProps, nextContext) {
|
||||||
|
if (nextProps.visible !== this.props.visible && nextProps.visible) {
|
||||||
|
this.setState({
|
||||||
|
dataSource: _.filter(_.map(nextProps.baseChangeInfo.split("\n"), (g, gi) => ({
|
||||||
|
id: gi + 1, name: g
|
||||||
|
})), k => !!k.name)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (nextProps.visible !== this.props.visible && !nextProps.visible) this.setState({
|
||||||
|
dataSource: []
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { dataSource } = this.state, { onCancel } = this.props;
|
||||||
|
const scrollHeight = this.baseChangeRef ? this.baseChangeRef.state.height - 118 : 606.6;
|
||||||
|
const buttons = [
|
||||||
|
<Button type="primary" onClick={() => onCancel({
|
||||||
|
validate: false, changeData: true
|
||||||
|
})}>{getLabel(111, "保存并自动修改基数")}</Button>,
|
||||||
|
<Button type="ghost" onClick={() => onCancel({
|
||||||
|
validate: false, changeData: false
|
||||||
|
})}>{getLabel(111, "仅保存方案设置")}</Button>
|
||||||
|
];
|
||||||
|
return (
|
||||||
|
<WeaDialog
|
||||||
|
{...this.props} hasScroll className="baseChangeDialog" initLoadCss ref={dom => this.baseChangeRef = dom}
|
||||||
|
title={getLabel(131329, "信息确认")} buttons={buttons}
|
||||||
|
style={{
|
||||||
|
width: 750, height: 606.6, minHeight: 200, minWidth: 380,
|
||||||
|
maxHeight: "90%", maxWidth: "90%", overflow: "hidden", transform: "translate(0px, 0px)"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div className="baseChangeContent">
|
||||||
|
<Alert
|
||||||
|
message={getLabel(111, "是否需要将社保档案中不满足上下限的基数值,自动设置为对应的上限或下限值?")}
|
||||||
|
description={getLabel(111, "以下员工的社保福利档案基数大于上限值,或小于下限值:")}
|
||||||
|
type="warning"/>
|
||||||
|
{
|
||||||
|
!_.isEmpty(dataSource) ? <WeaTransferList
|
||||||
|
data={dataSource} renderItem={(it) => (<div className="detailBox">
|
||||||
|
<div className="order">{it.id}</div>
|
||||||
|
<div className="content" title={it.name}>{it.name}</div>
|
||||||
|
</div>)}
|
||||||
|
height={scrollHeight} checkedCb={() => ({})} checkedKeys={[]}
|
||||||
|
/> : <div className="empty">{getLabel(111, "无数据变更记录")}</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</WeaDialog>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BaseValidateDialog;
|
||||||
|
|
@ -12,6 +12,7 @@ import { Button, message, Modal } from "antd";
|
||||||
import * as API from "../../../../../apis/welfareScheme";
|
import * as API from "../../../../../apis/welfareScheme";
|
||||||
import { getTaxAgentSelectListAsAdmin } from "../../../../../apis/taxAgent";
|
import { getTaxAgentSelectListAsAdmin } from "../../../../../apis/taxAgent";
|
||||||
import { getConditionDomkeys, getSearchs } from "../../../../../util";
|
import { getConditionDomkeys, getSearchs } from "../../../../../util";
|
||||||
|
import BaseValidateDialog from "./baseValidateDialog";
|
||||||
import { planConditons } from "../../config";
|
import { planConditons } from "../../config";
|
||||||
import cs from "classnames";
|
import cs from "classnames";
|
||||||
|
|
||||||
|
|
@ -24,7 +25,10 @@ class Index extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
loading: false, conditions: [], selectedKey: "2", planDatas: []
|
loading: false, conditions: [], selectedKey: "2", planDatas: [],
|
||||||
|
baseValidateDialog: {
|
||||||
|
visible: false, baseChangeInfo: [], validatePayload: { validate: true, changeData: false }
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,21 +90,37 @@ class Index extends Component {
|
||||||
if (planForm.getFormParams().sharedType === "1" && _.isEmpty(planForm.getFormParams().taxAgentIds)) {
|
if (planForm.getFormParams().sharedType === "1" && _.isEmpty(planForm.getFormParams().taxAgentIds)) {
|
||||||
planForm.showError("taxAgentIds", getLabel(111, "\"可见范围\"未填写"));
|
planForm.showError("taxAgentIds", getLabel(111, "\"可见范围\"未填写"));
|
||||||
} else {
|
} else {
|
||||||
const { planDatas } = this.state;
|
const { planDatas, baseValidateDialog } = this.state;
|
||||||
const payload = {
|
const { validatePayload } = baseValidateDialog;
|
||||||
|
let payload = {
|
||||||
insuranceScheme: {
|
insuranceScheme: {
|
||||||
...planForm.getFormParams(), welfareType: welfareTypeEnum, id,
|
...planForm.getFormParams(), welfareType: welfareTypeEnum, id,
|
||||||
paymentArea: planForm.getFormParams().paymentType
|
paymentArea: planForm.getFormParams().paymentType
|
||||||
},
|
},
|
||||||
insuranceSchemeDetailList: planDatas
|
insuranceSchemeDetailList: planDatas
|
||||||
};
|
};
|
||||||
|
id && (payload = { ...payload, ...validatePayload });
|
||||||
this.setState({ loading: true });
|
this.setState({ loading: true });
|
||||||
API[id ? "updateScheme" : "createScheme"](payload).then(({ status, errormsg }) => {
|
API[id ? "updateScheme" : "createScheme"](payload).then(({ status, data, errormsg }) => {
|
||||||
this.setState({ loading: false });
|
this.setState({ loading: false });
|
||||||
if (status) {
|
if (status) {
|
||||||
message.success(getLabel(30700, "操作成功!"));
|
if (id && Object.prototype.toString.call(data) === "[object String]" && data.indexOf("\n") !== -1) {
|
||||||
setHasBeenModify(false);
|
this.setState({
|
||||||
this.props.onClose(true);
|
baseValidateDialog: {
|
||||||
|
visible: true, baseChangeInfo: data,
|
||||||
|
validatePayload: { ...baseValidateDialog.validatePayload, validate: false }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
message.success(getLabel(30700, "操作成功!"));
|
||||||
|
setHasBeenModify(false);
|
||||||
|
this.props.onClose(true);
|
||||||
|
this.setState({
|
||||||
|
baseValidateDialog: {
|
||||||
|
...baseValidateDialog, baseChangeInfo: [], validatePayload: { validate: true, changeData: false }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
message.error(errormsg);
|
message.error(errormsg);
|
||||||
}
|
}
|
||||||
|
|
@ -194,7 +214,7 @@ class Index extends Component {
|
||||||
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { conditions, planDatas, selectedKey } = this.state;
|
const { conditions, planDatas, selectedKey, baseValidateDialog } = this.state;
|
||||||
const { programmeStore: { planForm }, showOperateBtn } = this.props;
|
const { programmeStore: { planForm }, showOperateBtn } = this.props;
|
||||||
return (
|
return (
|
||||||
<WeaSlideModal
|
<WeaSlideModal
|
||||||
|
|
@ -207,6 +227,14 @@ class Index extends Component {
|
||||||
<PlanSetTable dataSource={planDatas} selectedKey={selectedKey} showOperateBtn={showOperateBtn}
|
<PlanSetTable dataSource={planDatas} selectedKey={selectedKey} showOperateBtn={showOperateBtn}
|
||||||
onPlanSet={this.handleSetPlanDatas}/>
|
onPlanSet={this.handleSetPlanDatas}/>
|
||||||
</WeaSearchGroup>
|
</WeaSearchGroup>
|
||||||
|
{/* */}
|
||||||
|
<BaseValidateDialog {...baseValidateDialog}
|
||||||
|
onCancel={(validatePayload = {}) => this.setState({
|
||||||
|
baseValidateDialog: {
|
||||||
|
visible: false, baseChangeInfo: [],
|
||||||
|
validatePayload: { validate: true, changeData: false, ...validatePayload }
|
||||||
|
}
|
||||||
|
}, () => !_.isEmpty(validatePayload) && this.save())}/>
|
||||||
</div>}
|
</div>}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import WelfarePlanList from "./components/welfarePlanList";
|
||||||
import LogDialog from "../../../components/logViewModal";
|
import LogDialog from "../../../components/logViewModal";
|
||||||
import cs from "classnames";
|
import cs from "classnames";
|
||||||
import "./index.less";
|
import "./index.less";
|
||||||
import { tabList } from "../welfareArchive/config";
|
|
||||||
|
|
||||||
const getLabel = WeaLocaleProvider.getLabel;
|
const getLabel = WeaLocaleProvider.getLabel;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -269,3 +269,91 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//方案基数变化
|
||||||
|
.baseChangeDialog {
|
||||||
|
.wea-dialog-body {
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.baseChangeContent {
|
||||||
|
background: #F6F6F6;
|
||||||
|
padding: 16px;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.empty {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background: #ffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wea-search-group {
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background: #FFF;
|
||||||
|
|
||||||
|
.wea-form-cell {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.wea-form-item {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logTable {
|
||||||
|
background: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wea-transfer-list-wrapper {
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
.ant-tree-switcher {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.transfer-tree {
|
||||||
|
background: #FFF;
|
||||||
|
border: 1px solid #dadada;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
& > li:not(:last-child) {
|
||||||
|
.detailBox .content {
|
||||||
|
border-bottom: 1px solid #dadada;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& > li {
|
||||||
|
margin: 0 !important;
|
||||||
|
|
||||||
|
.detailBox {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.order {
|
||||||
|
width: 35px;
|
||||||
|
color: #999;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
position: relative;
|
||||||
|
flex: 1;
|
||||||
|
min-height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
color: #000;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue