Merge branch 'feature/2.8.3.2307.02-工资单反馈' into develop

# Conflicts:
#	pc4mobx/hrmSalary/pages/mobilePayroll/index.js
#	pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js
#	pc4mobx/hrmSalary/pages/ruleConfig/index.js
This commit is contained in:
黎永顺 2023-07-17 17:45:24 +08:00
commit f15ace5c33
10 changed files with 75 additions and 29 deletions

View File

@ -375,6 +375,10 @@ export const sendMobileCode = (params) => {
export const payrollCheckType = params => {
return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/payrollCheckType", "GET", params);
};
//工资单-反馈验证
export const feedBackSalaryBill = params => {
return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/feedBackSalaryBill", "GET", params);
};
//工资单-确认
export const confirmSalaryBill = params => {
return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/confirmSalaryBill", "GET", params);

View File

@ -2,19 +2,19 @@ import React from "react";
import { inject, observer } from "mobx-react";
import { getQueryString } from "../../util/url";
import { WeaDialog, WeaError, WeaInput, WeaLocaleProvider } from "ecCom";
import { Button, message } from "antd";
import { Button, message, Modal } from "antd";
import Authority from "../mySalary/authority";
import ComputerTemplate from "../payroll/templatePreview/computerTemplate";
import PhoneTemplate from "../payroll/templatePreview/phoneTemplate";
import "../payroll/templatePreview/index.less";
import * as API from "../../apis/mySalaryBenefits";
import { payrollCheckType, confirmSalaryBill } from "../../apis/payroll";
import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../apis/payroll";
import CaptchaModal from "../../components/captchaModal";
import { ConfirmBtns } from "../mySalary/mySalaryView";
import PassSetDialog from "./passSetDialog";
import { ConfirmBtns } from "../mySalary/mySalaryView";
import "./index.less";
const { getLabel } = WeaLocaleProvider;
const getLabel = WeaLocaleProvider.getLabel;
@inject("mySalaryStore")
@observer
@ -125,10 +125,22 @@ export default class MobilePayroll extends React.Component {
});
};
handleGoFeedback = () => {
const { mySalaryBillData } = this.state;
const { salaryTemplate } = mySalaryBillData;
const { feedbackUrl } = salaryTemplate;
window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`);
Modal.confirm({
title: getLabel(131329, "信息确认"),
content: getLabel(111, "请确认薪资信息是有误,进行反馈并发起反馈流程。"),
onOk: () => {
feedBackSalaryBill({ salaryInfoId: getQueryString("id") }).then(({ status, errorMsg }) => {
if (status) {
const { mySalaryBillData } = this.state;
const { salaryTemplate } = mySalaryBillData;
const { feedbackUrl } = salaryTemplate;
window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`);
} else {
message.error(errorMsg);
}
});
}
});
};
render() {

View File

@ -37,7 +37,8 @@ export const condition = [
labelcol: 6,
detailtype: 3,
rules: "required|string",
viewAttr: 3
viewAttr: 3,
type: "password"
},
{
colSpan: 1,
@ -47,7 +48,8 @@ export const condition = [
label: getLabel(511112, "确认密码"),
labelcol: 6,
rules: "required|string",
viewAttr: 3
viewAttr: 3,
type: "password"
},
{
colSpan: 1,

View File

@ -6,11 +6,11 @@
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { Button, message } from "antd";
import { Button, message, Modal } from "antd";
import { WeaLocaleProvider } from "ecCom";
import Authority from "./authority";
import ComputerTemplate from "../payroll/templatePreview/computerTemplate";
import { confirmSalaryBill, payrollCheckType } from "../../apis/payroll";
import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../apis/payroll";
import CaptchaModal from "../../components/captchaModal";
import "../payroll/templatePreview/index.less";
@ -55,10 +55,23 @@ class MySalaryView extends Component {
});
};
handleGoFeedback = () => {
const { mySalaryStore } = this.state;
const { salaryTemplate } = mySalaryStore;
const { feedbackUrl } = salaryTemplate;
window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`);
Modal.confirm({
title: getLabel(131329, "信息确认"),
content: getLabel(111, "请确认薪资信息是有误,进行反馈并发起反馈流程。"),
onOk: () => {
const { params: { salaryInfoId } } = this.props;
feedBackSalaryBill({ salaryInfoId }).then(({ status, errorMsg }) => {
if (status) {
const { mySalaryStore } = this.state;
const { salaryTemplate } = mySalaryStore;
const { feedbackUrl } = salaryTemplate;
window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`);
} else {
message.error(errorMsg);
}
});
}
});
};
render() {

View File

@ -506,7 +506,7 @@ export default class Payroll extends React.Component {
className="slideOuterWrapper"
visible={this.state.editSlideVisible}
top={0}
width={50}
width={65}
height={100}
direction="right"
measure="%"

View File

@ -2,6 +2,7 @@ import React from "react";
import {
WeaCheckbox,
WeaFormItem,
WeaHelpfulTip,
WeaInput,
WeaInputNumber,
WeaLocaleProvider,
@ -203,6 +204,9 @@ export default class BaseInformForm extends React.Component {
autoSendCycleType: value === "1" ? 1 : null
});
}}/>
<WeaHelpfulTip title={getLabel(111, "开启后,还需在计划任务中配置定时任务,执行工资单定时发送任务;")}
style={{ marginLeft: 10 }}
placement="top" width={200}/>
</WeaFormItem>
{
autoSendStatus &&
@ -235,8 +239,13 @@ export default class BaseInformForm extends React.Component {
<WeaFormItem label={getLabel(111, "自动确认超时天数")} labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
<WeaInputNumber
min={1} value={autoAckDays} viewAttr={3}
style={{ width: "95%" }}
onChange={autoAckDays => this.handleChange({ autoAckDays })}
/>
<WeaHelpfulTip
title={getLabel(111, "开启后,还需在计划任务中配置定时任务,执行自动确认任务;邮箱端查看工资单暂不支持确认及反馈;")}
style={{ marginLeft: 10 }}
placement="top" width={200}/>
</WeaFormItem>
<WeaFormItem label={getLabel(111, "反馈流程地址")} labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
<WeaInput

View File

@ -8,6 +8,7 @@ import React, { Component } from "react";
import {
WeaCheckbox,
WeaFormItem,
WeaHelpfulTip,
WeaInput,
WeaInputNumber,
WeaLocaleProvider,
@ -136,11 +137,16 @@ class TemplateBaseSettings extends Component {
<WeaFormItem label={getLabel(111, "自动确认超时天数")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaInputNumber
min={1} value={autoAckDays} viewAttr={3}
style={{ width: "90%" }}
onChange={autoAckDays => this.setState({
ackFeedbackSetting: {
...ackFeedbackSetting, autoAckDays
}
})}/>
<WeaHelpfulTip
title={getLabel(111, "开启后,还需在计划任务中配置定时任务,执行自动确认任务;邮箱端查看工资单暂不支持确认及反馈;")}
style={{ marginLeft: 10 }}
placement="top" width={200}/>
</WeaFormItem>
<WeaFormItem label={getLabel(111, "反馈流程地址")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaInput

View File

@ -132,7 +132,7 @@ class Index extends Component {
const { taxAgentStore } = this.props;
const { statuses, archiveStatus, taxAgentId } = this.state.searchItemsValue;
const { archiveStatusList, userStatusList } = this.state;
const { taxAgentAdminOption } = taxAgentStore;
const { taxAgentOption } = taxAgentStore;
return (
<WeaFormItem
label={value}
@ -145,7 +145,7 @@ class Index extends Component {
options={key === "statuses" ? userStatusList : key === "taxAgentId" ? [{
key: "",
showname: ""
}, ...taxAgentAdminOption] : archiveStatusList}
}, ...taxAgentOption] : archiveStatusList}
onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/>
</WeaFormItem>
);
@ -153,8 +153,8 @@ class Index extends Component {
componentDidMount() {
const { taxAgentStore } = this.props;
const { getTaxAgentSelectListAsAdmin } = taxAgentStore;
getTaxAgentSelectListAsAdmin();
const { fetchTaxAgentOption } = taxAgentStore;
fetchTaxAgentOption();
this.queryTabTotal();
this.queryList("/api/bs/hrmsalary/salaryArchive/pendingList");
this.getSysinfo();

View File

@ -362,24 +362,24 @@ export default class Index extends Component {
</WeaFormItem>
</WeaSearchGroup>
}
<WeaSearchGroup title={getLabel(543359, "报税规则")} showGroup center>
<WeaFormItem label={getLabel(543353, "个税申报")} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
<WeaCheckbox display="switch" value={operateTaxDeclaration !== "0" ? "1" : "0"}
<WeaSearchGroup title={getLabel(111, "算税规则")} showGroup center>
<WeaFormItem label={getLabel(111, "系统算税")} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
<WeaCheckbox display="switch" value={operateTaxDeclaration}
onChange={val => this.handleChange("operateTaxDeclaration", val)}/>
</WeaFormItem>
<WeaFormItem label={getLabel(111, "允许个税申报撤回")} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
<WeaFormItem label={getLabel(111, "撤回申报表")} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
<WeaCheckbox display="switch" value={withDrawTaxDeclaration}
onChange={val => this.handleChange("withDrawTaxDeclaration", val)}/>
</WeaFormItem>
</WeaSearchGroup>
<WeaSearchGroup title={getLabel(111, "档案删除规则")} showGroup center>
<WeaSearchGroup title={getLabel(538004, "薪资档案")} showGroup center>
<WeaFormItem label={getLabel(111, "允许删除档案")} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
<WeaCheckbox display="switch" value={confValue}
onChange={val => this.handleChange("confValue", val)}/>
</WeaFormItem>
</WeaSearchGroup>
<WeaSearchGroup title={getLabel(111, "薪资核算人员匹配规则")} showGroup center>
<WeaFormItem label={getLabel(111, "匹配规则")} labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
<WeaSearchGroup title={getLabel(538011, "薪资核算")} showGroup center>
<WeaFormItem label={getLabel(111, "核算人员匹配规则")} labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
<WeaSelect options={matchRuleOptions} value={matchRule}
onChange={val => this.handleChange("matchRule", val)}
/>

View File

@ -459,7 +459,7 @@ export default class NormalIndex extends Component {
const { loading } = standingBookStore;
const btn1 = [
<Button type="primary" onClick={this.handleBatchDelete}>批量删除</Button>,
<Button type="primary" onClick={this.handleAdd}>添加该月正常缴纳人员</Button>
<Button type="primary" onClick={this.handleAdd}>添加缴纳人员</Button>
];
const btn2 = [
<Button type="primary" onClick={this.handleCommonAccountClick}>核算</Button>,