custom-艾志工业-合并个税
This commit is contained in:
parent
fcde0d5e8c
commit
58f213bfe5
|
|
@ -1,6 +1,8 @@
|
|||
import { WeaTools } from "ecCom";
|
||||
import { postFetch } from "../util/request";
|
||||
import * as AZ from "./custom-apis/azInterface";
|
||||
|
||||
export { AZ };
|
||||
// 薪资记录--薪资核算列表
|
||||
export const getSalaryAcctList = params => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/list", params);
|
||||
|
|
@ -219,7 +221,7 @@ export const exportComparisonResult = (salaryAcctRecordId) => {
|
|||
|
||||
// 核算进度条
|
||||
export const getCalculateProgress = (id = "", paymentOrganization = "") => {
|
||||
const extra= paymentOrganization ? `_${paymentOrganization}` : paymentOrganization
|
||||
const extra = paymentOrganization ? `_${paymentOrganization}` : paymentOrganization;
|
||||
return WeaTools.callApi(`/api/bs/hrmsalary/progress/getRate?cacheKey=ACCT_PROGRESS_${id}${extra}`, "get", {});
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -8,3 +8,19 @@ export const getAZAdjustList = params => {
|
|||
export const exportAzAdjustList = params => {
|
||||
return postExportFetch("/api/bs/hrmsalary/salaryArchive/exportAzAdjustList", params);
|
||||
};
|
||||
// 艾志-提交
|
||||
export const azSubmit = params => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/azSubmit", params);
|
||||
};
|
||||
// 艾志-退回
|
||||
export const azReturn = params => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/azReturn", params);
|
||||
};
|
||||
// 艾志-审核
|
||||
export const azApprove = params => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/azApprove", params);
|
||||
};
|
||||
// 艾志-弃审
|
||||
export const azReApprove = params => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/azReApprove", params);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -46,7 +46,8 @@ class EditSalaryBaseInfo extends Component {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
return <WeaBrowser {...browserType} viewAttr={3} value={value} valueSpan={valueSpan} inputStyle={{ width: 200 }}
|
||||
return <WeaBrowser {...browserType} viewAttr={this.props.viewAttr === 1 ? 1 : 3}
|
||||
value={value} valueSpan={valueSpan} inputStyle={{ width: 200 }}
|
||||
onChange={(value, valueSpan) => this.props.onChange(_.map(this.props.baseInfo, it => {
|
||||
if (fieldCode === it.fieldCode) {
|
||||
return { ...it, fieldValue: value, fieldValueObj: { id: value, name: valueSpan } };
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
import React, { Component } from "react";
|
||||
import { WeaLocaleProvider, WeaTools } from "ecCom";
|
||||
import { toJS } from "mobx";
|
||||
import { message, Modal, Spin } from "antd";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import {
|
||||
|
|
@ -30,7 +31,7 @@ class EditCalcTable extends Component {
|
|||
this.state = {
|
||||
loading: false, pageInfo: { current: 1, pageSize: 10, total: 0 },
|
||||
selectedRowKeys: [], progressVisible: false, progress: 0,
|
||||
salaryCalcSlide: { visible: false, id: "" }, originPayloadData: {},
|
||||
salaryCalcSlide: { visible: false, id: "", viewAttr: 2 }, originPayloadData: {},
|
||||
batchUpdateDialog: {
|
||||
visible: false, salaryAcctRecordId: "", idList: [], salaryItemId: "",
|
||||
conditions: [], pattern: 0, dataType: ""
|
||||
|
|
@ -73,9 +74,9 @@ class EditCalcTable extends Component {
|
|||
this.updateEmpLockStatus({ ...params });
|
||||
break;
|
||||
case "EDIT":
|
||||
const { id: salaryCalcId } = params;
|
||||
const { id: salaryCalcId, showSee } = params;
|
||||
this.setState({
|
||||
salaryCalcSlide: { visible: true, id: salaryCalcId }
|
||||
salaryCalcSlide: { visible: true, id: salaryCalcId, viewAttr: showSee ? 1 : 2 }
|
||||
});
|
||||
break;
|
||||
case "DIAGRAM":
|
||||
|
|
@ -248,8 +249,9 @@ class EditCalcTable extends Component {
|
|||
const { pageInfo } = this.state;
|
||||
const {
|
||||
calculateStore: { ECSearchForm, otherConditions }, routeParams: { salaryAcctRecordId },
|
||||
taxAgentStore: { showOperateBtn }, calcDetail = false
|
||||
taxAgentStore: { showOperateBtn, PageAndOptAuth }, calcDetail = false
|
||||
} = this.props;
|
||||
const { confirmAuth, submitAuth } = toJS(PageAndOptAuth);
|
||||
const { subcompanyIds, departmentIds, positionIds, statuses, ...extra } = ECSearchForm.getFormParams();
|
||||
const payload = {
|
||||
salaryAcctRecordId, ...pageInfo, ...extra, otherConditions,
|
||||
|
|
@ -269,7 +271,8 @@ class EditCalcTable extends Component {
|
|||
const sumRowlistUrl = this.props.showTotalCell ? "/api/bs/hrmsalary/salaryacct/acctresult/sum" : "";
|
||||
this.postMessageToChild({
|
||||
dataSource, pageInfo, selectedRowKeys, showTotalCell: this.props.showTotalCell, sumRowlistUrl, payload,
|
||||
calcDetail: (calcDetail || !showOperateBtn), showSee: !showOperateBtn,
|
||||
calcDetail: (calcDetail || !showOperateBtn) && !confirmAuth && !submitAuth,
|
||||
showSee: (calcDetail || !showOperateBtn),
|
||||
columns: _.every(traverse(columns, (calcDetail || !showOperateBtn)), (it, idx) => !it.fixed) ? _.map(traverse(columns, (calcDetail || !showOperateBtn)), (it, idx) => ({
|
||||
...it,
|
||||
fixed: idx < 2 ? "left" : false
|
||||
|
|
|
|||
|
|
@ -43,14 +43,17 @@ class EditSalaryCalcSlide extends Component {
|
|||
});
|
||||
};
|
||||
renderTitle = () => {
|
||||
const { loading } = this.state;
|
||||
const { loading } = this.state, { viewAttr } = this.props;
|
||||
return <div className="titleDialog">
|
||||
<div className="titleCol titleLeftBox">
|
||||
<div className="titleIcon"><i className="icon-coms-fa"/></div>
|
||||
<div className="title">{getLabel(543559, "编辑薪资")}</div>
|
||||
<div className="title">{viewAttr === 2 ? getLabel(543559, "编辑薪资") : getLabel(111, "查看薪资")}</div>
|
||||
</div>
|
||||
<div className="titleCol titleRightBox">
|
||||
<Button type="primary" onClick={this.save} loading={loading}>{getLabel(537558, "保存")}</Button>
|
||||
{
|
||||
viewAttr === 2 &&
|
||||
<Button type="primary" onClick={this.save} loading={loading}>{getLabel(537558, "保存")}</Button>
|
||||
}
|
||||
</div>
|
||||
</div>;
|
||||
};
|
||||
|
|
@ -88,7 +91,7 @@ class EditSalaryCalcSlide extends Component {
|
|||
save = () => {
|
||||
const { id: salaryAcctEmpId } = this.props;
|
||||
const { issuedAndReissueItems, itemsByGroup, baseInfo } = this.state;
|
||||
if (_.every(baseInfo, it => !it.canEdit || (it.canEdit && !it.fieldValue))) {
|
||||
if (!_.every(baseInfo, (item) => (!item.canEdit || !!item.fieldValue))) {
|
||||
Modal.warning({
|
||||
title: getLabel(131329, "信息确认"),
|
||||
content: getLabel(518702, "必要信息不完整,红色*为必填项!")
|
||||
|
|
@ -148,12 +151,14 @@ class EditSalaryCalcSlide extends Component {
|
|||
/>
|
||||
{
|
||||
selectedKey === "0" && _.map(itemsByGroup, item => {
|
||||
return <PayrollItemsTable {...item} onChangeIssueReissueValue={this.handleItemValueChange}/>;
|
||||
return <PayrollItemsTable {...this.props} {...item}
|
||||
onChangeIssueReissueValue={this.handleItemValueChange}/>;
|
||||
})
|
||||
}
|
||||
{
|
||||
selectedKey === "1" &&
|
||||
<IssuedAndReissueTable
|
||||
{...this.props}
|
||||
dataSource={issuedAndReissueItems}
|
||||
onChangeIssueReissueValue={this.handleItemValueChange}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import React, { Component } from "react";
|
|||
import { WeaLocaleProvider, WeaReqTop } from "ecCom";
|
||||
import { Button, Dropdown, Menu, message, Modal } from "antd";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { toJS } from "mobx";
|
||||
import Layout from "./layout";
|
||||
import * as API from "../../../apis/calculate";
|
||||
import AdvanceInputBtn from "./components/advanceInputBtn";
|
||||
|
|
@ -27,9 +28,10 @@ class Index extends Component {
|
|||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
selectedKey: "person", progressVisible: false, progress: 0, loading: { calcTax: false, feedback: false },
|
||||
selectedKey: "person", progressVisible: false, progress: 0,
|
||||
customExpDialog: { visible: false, salaryAcctRecordId: "", checkItems: [], itemsByGroup: [] },
|
||||
salaryImpDialog: { visible: false, title: "", salaryAcctRecordId: "" },
|
||||
loading: { calcTax: false, feedback: false, az: false },
|
||||
approvalInfo: {},//审批信息,
|
||||
accountExceptInfo: "" //核算报错信息,
|
||||
|
||||
|
|
@ -208,13 +210,35 @@ class Index extends Component {
|
|||
}, 1000);
|
||||
});
|
||||
};
|
||||
handleAZCalcOperate = (type) => {
|
||||
const { selectedRowKeys } = this.calc.calcTableRef.wrappedInstance.state;
|
||||
if (_.isEmpty(selectedRowKeys)) {
|
||||
message.warning(getLabel(543303, "请选择表格数据!"));
|
||||
return;
|
||||
}
|
||||
const { routeParams: { salaryAcctRecordId } } = this.props;
|
||||
const payload = { salaryAcctRecordId, acctEmpIds: selectedRowKeys };
|
||||
this.setState({ loading: { ...this.state.loading, az: true } });
|
||||
API.AZ[type](payload).then(({ status, errormsg }) => {
|
||||
this.setState({ loading: { ...this.state.loading, az: false } });
|
||||
if (status) {
|
||||
message.success(getLabel(111, "操作成功!"));
|
||||
this.calc.onAdSearch(false);
|
||||
} else {
|
||||
message.error(errormsg);
|
||||
}
|
||||
});
|
||||
};
|
||||
renderReqBtns = () => {
|
||||
const { routeParams: { salaryAcctRecordId }, taxAgentStore: { showOperateBtn } } = this.props;
|
||||
const { routeParams: { salaryAcctRecordId }, taxAgentStore: { showOperateBtn, PageAndOptAuth } } = this.props;
|
||||
const { selectedKey, accountExceptInfo, approvalInfo, loading } = this.state;
|
||||
const { isOpenApproval, approvalWorkflowUrl, canEdit } = approvalInfo;
|
||||
const { confirmAuth, submitAuth } = toJS(PageAndOptAuth);
|
||||
let reqBtns = [];
|
||||
switch (selectedKey) {
|
||||
case "calc":
|
||||
const selectedRowKeys = [];
|
||||
// const { selectedRowKeys } = this.calc.calcTableRef.wrappedInstance.state;
|
||||
const menu = (
|
||||
<Menu onClick={this.handleMenuClick}>
|
||||
<Menu.Item key="calc_selected">{getLabel(543546, "核算所选人员")}</Menu.Item>
|
||||
|
|
@ -247,6 +271,14 @@ class Index extends Component {
|
|||
window.open(`${approvalWorkflowUrl}&salaryAcctRecordId=${salaryAcctRecordId}`, "_blank");
|
||||
}}>{getLabel(111, "发起审批")}</Button>);
|
||||
!showOperateBtn && (reqBtns = reqBtns.slice(-1));
|
||||
confirmAuth && reqBtns.unshift(<Button type="primary" loading={loading.az}
|
||||
onClick={() => this.handleAZCalcOperate("azReturn")}>{getLabel(111, "退回")}</Button>);
|
||||
confirmAuth && reqBtns.unshift(<Button type="primary" loading={loading.az}
|
||||
onClick={() => this.handleAZCalcOperate("azApprove")}>{getLabel(111, "审核")}</Button>);
|
||||
confirmAuth && reqBtns.unshift(<Button type="primary" loading={loading.az}
|
||||
onClick={() => this.handleAZCalcOperate("azReApprove")}>{getLabel(111, "弃审")}</Button>);
|
||||
submitAuth && reqBtns.unshift(<Button type="primary" loading={loading.az}
|
||||
onClick={() => this.handleAZCalcOperate("azSubmit")}>{getLabel(111, "提交")}</Button>);
|
||||
accountExceptInfo && reqBtns.unshift(<i className="iconfont icon-jinggao"
|
||||
title={getLabel(111, "存在异常信息,点击下载!")}
|
||||
onClick={() => this.downloadTxtfile(accountExceptInfo)}/>);
|
||||
|
|
|
|||
|
|
@ -29,10 +29,11 @@ class IssuedAndReissueTable extends Component {
|
|||
/>
|
||||
</span>,
|
||||
render: (text, record) => {
|
||||
const { canEdit, pattern } = record;
|
||||
const { canEdit, pattern } = record, { viewAttr } = this.props;
|
||||
return <WeaInputNumber
|
||||
disabled={!canEdit}
|
||||
min={0}
|
||||
viewAttr={viewAttr}
|
||||
precision={pattern || 2}
|
||||
value={text || 0}
|
||||
onChange={(value) => onChangeIssueReissueValue(record.salaryItemName, value, "issuedAndReissueItems")}
|
||||
|
|
|
|||
|
|
@ -37,8 +37,9 @@ class PayrollItemsTable extends Component {
|
|||
</span>,
|
||||
width: "20%",
|
||||
render: (text, record) => {
|
||||
const { canEdit, dataType, pattern } = record;
|
||||
const { canEdit, dataType, pattern } = record, { viewAttr } = this.props;
|
||||
return dataType === "number" ? <WeaInputNumber
|
||||
viewAttr={viewAttr}
|
||||
disabled={!canEdit}
|
||||
precision={!_.isNil(pattern) ? pattern : 0}
|
||||
value={text || 0}
|
||||
|
|
@ -46,6 +47,7 @@ class PayrollItemsTable extends Component {
|
|||
/> : <WeaInput
|
||||
disabled={!canEdit}
|
||||
value={text}
|
||||
viewAttr={viewAttr}
|
||||
onChange={(value) => onChangeIssueReissueValue(record.salaryItemId, value, "itemsByGroup", salarySobItemGroupId)}
|
||||
/>;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,14 +2,34 @@ export const conditions = [
|
|||
{
|
||||
items: [
|
||||
{
|
||||
browserConditionParam: {
|
||||
completeParams: {},
|
||||
conditionDataParams: {},
|
||||
dataParams: {},
|
||||
destDataParams: {},
|
||||
hasAddBtn: false,
|
||||
hasAdvanceSerach: false,
|
||||
idSeparator: ",",
|
||||
isAutoComplete: 1,
|
||||
isDetail: 0,
|
||||
isMultCheckbox: false,
|
||||
isSingle: false,
|
||||
icon: "icon-coms-hrm",
|
||||
linkUrl: "",
|
||||
pageSize: 10,
|
||||
quickSearchName: "",
|
||||
replaceDatas: [],
|
||||
title: "",
|
||||
type: "17",
|
||||
viewAttr: 2
|
||||
},
|
||||
colSpan: 2,
|
||||
conditionType: "INPUT",
|
||||
domkey: ["username"],
|
||||
conditionType: "BROWSER",
|
||||
domkey: ["employeeIds"],
|
||||
fieldcol: 12,
|
||||
label: "姓名",
|
||||
lanId: 25034,
|
||||
lanId: 111,
|
||||
labelcol: 6,
|
||||
value: "",
|
||||
viewAttr: 2
|
||||
},
|
||||
{
|
||||
|
|
@ -74,17 +94,6 @@ export const conditions = [
|
|||
labelcol: 6,
|
||||
viewAttr: 2
|
||||
},
|
||||
{
|
||||
colSpan: 2,
|
||||
conditionType: "INPUT",
|
||||
domkey: ["adjustItem"],
|
||||
fieldcol: 12,
|
||||
label: "项目名称",
|
||||
lanId: 111,
|
||||
labelcol: 6,
|
||||
value: "",
|
||||
viewAttr: 2
|
||||
},
|
||||
{
|
||||
colSpan: 2,
|
||||
conditionType: "RANGEPICKER",
|
||||
|
|
|
|||
|
|
@ -40,9 +40,10 @@ class Index extends Component {
|
|||
}
|
||||
|
||||
getAZAdjustList = () => {
|
||||
const { departmentIds, positionIds, operatorIds, operateTime1, operateTime2 } = form.getFormParams();
|
||||
const { departmentIds, employeeIds, positionIds, operatorIds, operateTime1, operateTime2 } = form.getFormParams();
|
||||
const payload = {
|
||||
...form.getFormParams(), ...this.state.pageInfo, effectiveTime: this.state.effectiveTime,
|
||||
employeeIds: employeeIds ? employeeIds.split(",") : [],
|
||||
departmentIds: departmentIds ? departmentIds.split(",") : [],
|
||||
positionIds: positionIds ? positionIds.split(",") : [],
|
||||
operatorIds: operatorIds ? operatorIds.split(",") : [],
|
||||
|
|
|
|||
Loading…
Reference in New Issue