diff --git a/pc4mobx/hrmSalary/apis/declare.js b/pc4mobx/hrmSalary/apis/declare.js
index da1099df..746bcf99 100644
--- a/pc4mobx/hrmSalary/apis/declare.js
+++ b/pc4mobx/hrmSalary/apis/declare.js
@@ -16,9 +16,13 @@ export const saveDeclare = params => {
return postFetch("/api/bs/hrmsalary/taxdeclaration/save", params);
};
+//个税申报表-获取分类
+export const getTaxReports = params => {
+ return WeaTools.callApi("/api/bs/hrmsalary/taxdeclaration/getTaxReports", "get", params);
+};
//个税申报表-个税申报表相关信息
export const getDeclareInfo = params => {
- return WeaTools.callApi("/api/bs/hrmsalary/taxdeclaration/getTaxDeclarationInfo", "get", params);
+ return postFetch("/api/bs/hrmsalary/taxdeclaration/getTaxDeclarationInfo", params);
};
// 个税申报表详情列表
@@ -110,7 +114,7 @@ export const employeedeclareDeclare = (params) => {
//个税在线对接-获取个税申报记录下的个税申报表TAB
export const getTaxDeclarationTab = params => {
- return WeaTools.callApi("/api/bs/hrmsalary/taxdeclaration/getTaxDeclarationTab", "GET", params);
+ return postFetch("/api/bs/hrmsalary/taxdeclaration/getTaxDeclarationTab", params);
};
//个税在线对接-个税申报表是否已经生成
diff --git a/pc4mobx/hrmSalary/pages/bankVoucherDetail/index.js b/pc4mobx/hrmSalary/pages/bankVoucherDetail/index.js
index ff40a205..43916c7f 100644
--- a/pc4mobx/hrmSalary/pages/bankVoucherDetail/index.js
+++ b/pc4mobx/hrmSalary/pages/bankVoucherDetail/index.js
@@ -31,7 +31,7 @@ class Index extends Component {
const payload = {
taxDeclareRecordId: getQueryString("taxDeclareRecordId"),
taxAgentId: getQueryString("taxAgentId"),
- taxYearMonth: getQueryString("taxYearMonth") + "-01",
+ taxYearMonth: getQueryString("taxYearMonth"),
checkFeedback: 0
};
this.setState({ loading: true });
diff --git a/pc4mobx/hrmSalary/pages/declareDetail/components/leftTab.js b/pc4mobx/hrmSalary/pages/declareDetail/components/leftTab.js
new file mode 100644
index 00000000..0703aa07
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/declareDetail/components/leftTab.js
@@ -0,0 +1,71 @@
+/*
+ * Author: 黎永顺
+ * name: 报表查看-左侧tab标题
+ * Description:
+ * Date: 2023/4/20
+ */
+import React, { Component } from "react";
+import { WeaLocaleProvider } from "ecCom";
+import { Menu } from "antd";
+import * as API from "../../../apis/declare";
+import { getQueryString } from "../../../util/url";
+
+const { getLabel } = WeaLocaleProvider;
+
+class LeftTab extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ reportName: "",
+ selectedKeys: "",
+ dataSource: []
+ };
+ }
+
+ componentDidMount() {
+ this.getTaxReports();
+ }
+
+ getTaxReports = () => {
+ const { onChangeTab, onCollapse } = this.props;
+ API.getTaxReports({ id: getQueryString("id") }).then(({ status, data: dataSource }) => {
+ if (status) this.setState({
+ dataSource, selectedKeys: !_.isEmpty(dataSource) ? _.head(dataSource).id + "" : ""
+ }, () => {
+ !_.isEmpty(this.state.dataSource) && onChangeTab(_.head(this.state.dataSource).reportType);
+ onCollapse(!_.isEmpty(this.state.dataSource) && this.state.dataSource.length > 1);
+ });
+ });
+ };
+
+ render() {
+ const { selectedKeys, dataSource } = this.state;
+ const { onChangeTab } = this.props;
+ const reportTypeNameMap = {
+ 1: getLabel(111, "综合所得"),
+ 2: getLabel(111, "分类所得"),
+ 3: getLabel(111, "非居民所得"),
+ 4: getLabel(111, "限售股所得")
+ };
+ return (
+
+
+
+ );
+ }
+}
+
+export default LeftTab;
diff --git a/pc4mobx/hrmSalary/pages/declareDetail/components/paymentBtn.js b/pc4mobx/hrmSalary/pages/declareDetail/components/paymentBtn.js
index 986a05ae..4f6ad59f 100644
--- a/pc4mobx/hrmSalary/pages/declareDetail/components/paymentBtn.js
+++ b/pc4mobx/hrmSalary/pages/declareDetail/components/paymentBtn.js
@@ -262,7 +262,8 @@ class PaymentBtn extends Component {
const { taxAgentId, taxCycle: taxYearMonth } = this.props.declareInfo;
const payload = {
taxDeclareRecordId: getQueryString("id"),
- taxAgentId, taxYearMonth: taxYearMonth + "-01"
+ taxAgentId, taxYearMonth: taxYearMonth + "-01",
+ reportType: this.props.reportType
};
taxPaymentVoucherCancel(payload).then(({ status, errormsg }) => {
if (status) {
diff --git a/pc4mobx/hrmSalary/pages/declareDetail/components/taxDeclarationInfo.js b/pc4mobx/hrmSalary/pages/declareDetail/components/taxDeclarationInfo.js
index bfc15a46..ec5edc9c 100644
--- a/pc4mobx/hrmSalary/pages/declareDetail/components/taxDeclarationInfo.js
+++ b/pc4mobx/hrmSalary/pages/declareDetail/components/taxDeclarationInfo.js
@@ -46,11 +46,11 @@ class TaxDeclarationInfo extends Component {
const { declareInfo, onOperate } = this.props;
const { abnormalSize, declareFailSize } = declareInfo;
const infoItem = [
+ { key: "taxCycle", label: getLabel(542240, "税款所属期") },
{ key: "salaryMonth", label: getLabel(542604, "薪资所属月") },
{ key: "taxAgentName", label: getLabel(537996, "个税扣缴义务人") },
{ key: "declareTypeDesc", label: getLabel(111, "申报类型") },
{ key: "declareStatusDesc", label: getLabel(111, "申报状态") },
- { key: "taxCycle", label: getLabel(542240, "税款所属期") },
{ key: "taxPaidAmount", label: getLabel(111, "已缴金额") }
];
let dropMenuDatas = [];
diff --git a/pc4mobx/hrmSalary/pages/declareDetail/confirm.js b/pc4mobx/hrmSalary/pages/declareDetail/confirm.js
index a64db297..39c6c2d5 100644
--- a/pc4mobx/hrmSalary/pages/declareDetail/confirm.js
+++ b/pc4mobx/hrmSalary/pages/declareDetail/confirm.js
@@ -2,7 +2,7 @@ import { WeaLocaleProvider } from "ecCom";
import { Modal } from "antd";
const { getLabel } = WeaLocaleProvider;
-export const confirmDialog = (type, callback) => {
+export const confirmDialog = (type, callback, reportType) => {
let content = "";
switch (type) {
case "refresh":
@@ -15,7 +15,7 @@ export const confirmDialog = (type, callback) => {
content = getLabel(111, "申报作废,只有申报成功,无需缴款/申报成功,未缴款的状态才能作废,当作废成功时,企业状态会变成未申报;当作废失败时,企业状态还是原来的未缴款或无需缴款的状态。");
break;
case "declare":
- content = getLabel(111, "解除劳动合同一次性补偿金、全年一次性奖金所得,不能单独申报,需要同正常工资薪金一起申报;解除劳动合同一次性补偿金、稿酬所得,由于税务规则需要,解除劳动合同一次性补偿金、稿酬所得必须填写免税附表。是否确认申报?");
+ content = reportType === 1 ? getLabel(111, "解除劳动合同一次性补偿金、全年一次性奖金所得,不能单独申报,需要同正常工资薪金一起申报;解除劳动合同一次性补偿金、稿酬所得,由于税务规则需要,解除劳动合同一次性补偿金、稿酬所得必须填写免税附表。是否确认申报?") : getLabel(111, "确认申报?");
break;
default:
break;
diff --git a/pc4mobx/hrmSalary/pages/declareDetail/index.js b/pc4mobx/hrmSalary/pages/declareDetail/index.js
index 280bfc5b..cf369c11 100644
--- a/pc4mobx/hrmSalary/pages/declareDetail/index.js
+++ b/pc4mobx/hrmSalary/pages/declareDetail/index.js
@@ -5,7 +5,7 @@
* Date: 2023/8/18
*/
import React, { Component } from "react";
-import { WeaLocaleProvider, WeaTab } from "ecCom";
+import { WeaLeftRightLayout, WeaLocaleProvider, WeaTab } from "ecCom";
import { Button, message, Modal, Spin } from "antd";
import TaxDeclarationInfo from "./components/taxDeclarationInfo";
import { apiflowBillingConfigStatus } from "../../apis/intelligentCalculateSalarySettings";
@@ -25,13 +25,13 @@ import {
taxdeclarationRefreshData,
taxdeclaratioUpdateCancel,
taxdeclaratioUpdateDeclare,
- taxPaymentVoucherStatusSync,
- taxPaymentWithheldVoucherGet
+ taxPaymentVoucherStatusSync
} from "../../apis/declare";
import { convertToUrlString, getQueryString } from "../../util/url";
import IncomeTaxDeclarationPersonnelSlide from "./components/incomeTaxDeclarationPersonnelSlide";
import TaxDeclareDetailImportDialog from "./components/taxDeclareDetailImportDialog";
import TabEditDialog from "./components/tabEditDialog";
+import LeftTab from "./components/leftTab";
import { confirmDialog } from "./confirm";
import "./index.less";
@@ -60,7 +60,8 @@ class Index extends Component {
visible: false, title: getLabel(1421, "新增"), taxDeclarationId: "", id: ""
},
intelCalcSalaryStatus: false, //智能算薪 总开关是否开启
- declareInfo: {}, pageInfo: { current: 0, pageSize: 10, total: 0 }
+ declareInfo: {}, pageInfo: { current: 0, pageSize: 10, total: 0 },
+ reportType: "", showLeft: false
};
this.timer = null;
this.taxDeclareRef = null;
@@ -75,7 +76,8 @@ class Index extends Component {
}
init = async (isInit = true) => {
- const [tabsResult, infoResult, calcResult] = await Promise.all([this.getTaxDeclarationTab(), this.getDeclareInfo(), this.apiflowBillingConfigStatus()]);
+ const [tabsResult, infoResult, calcResult] = await Promise.all([
+ this.getTaxDeclarationTab(), this.getDeclareInfo(), this.apiflowBillingConfigStatus()]);
const { data: tabDataSource, status: tabStatus } = tabsResult;
const { data: infoDataSource, status: infoStatus } = infoResult;
const { data: calcSalaryStatus, status: calcStatus } = calcResult;
@@ -101,10 +103,12 @@ class Index extends Component {
this.getDetailList();
};
getTaxDeclarationTab = () => {
- return getTaxDeclarationTab({ id: getQueryString("id") });
+ const { reportType } = this.state;
+ return getTaxDeclarationTab({ taxDeclareRecordId: getQueryString("id"), reportType });
};
getDeclareInfo = () => {
- return getDeclareInfo({ id: getQueryString("id") });
+ const { reportType } = this.state;
+ return getDeclareInfo({ taxDeclareRecordId: getQueryString("id"), reportType });
};
apiflowBillingConfigStatus = () => {
return apiflowBillingConfigStatus();
@@ -183,7 +187,7 @@ class Index extends Component {
}
}).catch(() => this.setState({ loading: { ...loading, query: false } }));
};
- handleOperateDeclare = (type) => {
+ handleOperateDeclare = (type, params = {}) => {
const loadingTxt = {
refresh: getLabel(111, "刷新中..."), //刷新数据
declare: getLabel(111, "申报中..."), //在线申报
@@ -207,7 +211,7 @@ class Index extends Component {
cancelFeedback: getLabel(111, "作废反馈失败!")//作废反馈
};
this.setState({ loading: { ...this.state.loading, [type]: true } });
- APIFox[type]({ taxDeclareRecordId: getQueryString("id") })
+ APIFox[type]({ taxDeclareRecordId: getQueryString("id"), ...params })
.then(async ({ status, data, errormsg }) => {
if (status) {
message.destroy();
@@ -247,7 +251,8 @@ class Index extends Component {
const { taxAgentId, taxCycle: taxYearMonth } = this.state.declareInfo;
const payload = {
taxDeclareRecordId: getQueryString("id"),
- taxAgentId, taxYearMonth: taxYearMonth + "-01"
+ taxAgentId, taxYearMonth: taxYearMonth + "-01",
+ reportType: this.state.reportType
};
this.setState({ loading: { ...this.state.loading, refreshingPay: true } });
taxPaymentVoucherStatusSync(payload).then(({ status, errormsg }) => {
@@ -264,17 +269,19 @@ class Index extends Component {
const { taxAgentId, taxCycle: taxYearMonth } = this.state.declareInfo;
const payload = {
taxDeclareRecordId: getQueryString("id"),
- taxAgentId, taxYearMonth: taxYearMonth + "-01"
+ taxAgentId, taxYearMonth: taxYearMonth + "-01",
+ reportType: this.state.reportType
};
- this.setState({ loading: { ...this.state.loading, issuance: true } });
- taxPaymentWithheldVoucherGet(payload).then(({ status, data, errormsg }) => {
- this.setState({ loading: { ...this.state.loading, issuance: false } });
- if (status && !_.isEmpty(data.vouchers)) {
- window.open(`${window.ecologyContentPath || ""}/spa/hrmSalary/static/index.html#/main/hrmSalary/enterprisePayCertificationDetail?${convertToUrlString(payload)}`);
- } else {
- message.error(errormsg || "");
- }
- }).catch(() => this.setState({ loading: { ...this.state.loading, issuance: false } }));
+ window.open(`${window.ecologyContentPath || ""}/spa/hrmSalary/static/index.html#/main/hrmSalary/enterprisePayCertificationDetail?${convertToUrlString(payload)}`);
+ // this.setState({ loading: { ...this.state.loading, issuance: true } });
+ // taxPaymentWithheldVoucherGet(payload).then(({ status, data, errormsg }) => {
+ // this.setState({ loading: { ...this.state.loading, issuance: false } });
+ // if (status && !_.isEmpty(data.vouchers)) {
+ // window.open(`${window.ecologyContentPath || ""}/spa/hrmSalary/static/index.html#/main/hrmSalary/enterprisePayCertificationDetail?${convertToUrlString(payload)}`);
+ // } else {
+ // message.error(errormsg || "");
+ // }
+ // }).catch(() => this.setState({ loading: { ...this.state.loading, issuance: false } }));
};
export = () => {
const [incomeCategory, taxDeclarationId] = this.state.selectedKey.split("%%");
@@ -294,9 +301,10 @@ class Index extends Component {
}, () => callback && this.getDetailList());
};
exportGetDeclareTaxResultFeedback = () => {
+ const { reportType } = this.state;
message.destroy();
message.loading(getLabel(111, "下载中..."), 0);
- exportGetDeclareTaxResultFeedback({ id: getQueryString("id") })
+ exportGetDeclareTaxResultFeedback({ id: getQueryString("id"), reportType })
.then(async () => {
message.destroy();
message.success(getLabel(111, "下载成功!"));
@@ -338,12 +346,13 @@ class Index extends Component {
render() {
const {
tabs, selectedKey, loading, declareInfo, intelCalcSalaryStatus, taxDecPersonSlide,
- editTabVisible
+ editTabVisible, reportType, showLeft
} = this.state;
const [__, taxDeclarationId] = selectedKey.split("%%");
let btns = [
,
- ));
//申报状态:缴款中
declareInfo.declareStatus === "DECLARE_SUCCESS_PAYING" && (btns.splice(1, 2));
//申报状态:已缴款
declareInfo.declareStatus === "DECLARE_SUCCESS_PAID" && (btns.splice(1, 2,
confirmDialog("correct", () => this.handleOperateDeclare("correct"))}>{getLabel(111, "更正申报")}));
+ onClick={() => confirmDialog("correct", () => this.handleOperateDeclare("correct", { reportType }))}>{getLabel(111, "更正申报")}));
//申报状态:申报成功,无需缴款
declareInfo.declareStatus === "DECLARE_SUCCESS_NO_PAY" &&
(btns.splice(1, 2,
confirmDialog("correct", () => this.handleOperateDeclare("correct"))}>{getLabel(111, "更正申报")},
+ onClick={() => confirmDialog("correct", () => this.handleOperateDeclare("correct", { reportType }))}>{getLabel(111, "更正申报")},
confirmDialog("cancel", () => this.handleOperateDeclare("cancel"))}>{getLabel(111, "作废申报")}
+ onClick={() => confirmDialog("cancel", () => this.handleOperateDeclare("cancel", { reportType }))}>{getLabel(111, "作废申报")}
));
//申报状态:申报成功,未缴款
declareInfo.declareStatus === "DECLARE_SUCCESS_UNPAID" &&
(btns.splice(1, 2,
confirmDialog("correct", () => this.handleOperateDeclare("correct"))}>{getLabel(111, "更正申报")},
+ onClick={() => confirmDialog("correct", () => this.handleOperateDeclare("correct", { reportType }))}>{getLabel(111, "更正申报")},
confirmDialog("cancel", () => this.handleOperateDeclare("cancel"))}>{getLabel(111, "作废申报")},
+ onClick={() => confirmDialog("cancel", () => this.handleOperateDeclare("cancel", { reportType }))}>{getLabel(111, "作废申报")},
{getLabel(111, "刷新缴款状态")}
@@ -404,7 +413,7 @@ class Index extends Component {
}
if (intelCalcSalaryStatus && (declareInfo.declareStatus === "DECLARE_SUCCESS_UNPAID")) {
btns.push(
- ,
+ ,
);
}
@@ -413,41 +422,49 @@ class Index extends Component {
onClick={this.getEnterprisePayCertificate}>{getLabel(111, "开具企业完税证明")});
}
return (
-
-
this[fun]()}/>
-
- this.setState({ selectedKey: v }, () => this.getDetailList())}
- searchType={["base"]} searchsBasePlaceHolder={getLabel(26919, "请输入姓名")}
- onSearchChange={keyword => this.setState({ keyword })}
- onSearch={this.getDetailList}
- />
- {/*个税申报表-新增编辑框*/}
- this.handleTaxDescPerSlide({ visible: false, id: "", callback })}
- />
- {/*个税申报表导入*/}
- this.taxDeclareRef = dom}
- onSuccess={this.declare}
- />
- {/*个税申报表-新增tab弹框*/}
- this.setState({ editTabVisible: false }, () => isRefresh && this.init(false))}/>
-
-
+
);
}
}
diff --git a/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/employeeDeclareDetailSchemaEditDialog.js b/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/employeeDeclareDetailSchemaEditDialog.js
index a76fecfa..bb6f4b44 100644
--- a/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/employeeDeclareDetailSchemaEditDialog.js
+++ b/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/employeeDeclareDetailSchemaEditDialog.js
@@ -5,14 +5,16 @@
* Date: 2023/8/14
*/
import React, { Component } from "react";
-import { WeaLocaleProvider, WeaSlideModal } from "ecCom";
-import { Button, Col, message, Modal, Row } from "antd";
+import { WeaLocaleProvider, WeaSlideModal, WeaTools } from "ecCom";
+import { Button, Col, message, Row } from "antd";
import { inject, observer } from "mobx-react";
import { declareConditions } from "../constants";
import { getSearchs } from "../../../util";
import { getQueryString } from "../../../util/url";
import { employeedeclareGetForm, getEmployeeSave } from "../../../apis/declare";
+import { commonEnumList } from "../../../apis/archive";
+const getKey = WeaTools.getKey;
const { getLabel } = WeaLocaleProvider;
@inject("employeeDeclareStore")
@@ -33,7 +35,8 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
if (nextProps.visible !== this.props.visible && !nextProps.visible) this.employeeChangeInfo = {};
}
- employeedeclareGetForm = (props) => {
+ employeedeclareGetForm = async (props) => {
+ const { data: cardTypeEnum } = await commonEnumList({ enumClass: `com.engine.salary.enums.employeedeclare.CardTypeEnum` });
employeedeclareGetForm(_.pick(props, ["id"])).then(({ status, data }) => {
if (status) {
this.setState({
@@ -41,7 +44,7 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
return {
...it,
items: _.map(it.items, child => {
- if (child.domkey[0] === "employmentStatus") {
+ if (getKey(child) === "employmentStatus") {
return {
...child,
value: _.take(props.employmentStatusList)[0].enum,
@@ -50,7 +53,7 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
showname: getLabel(it.labelId, it.defaultLabel)
}))
};
- } else if (child.domkey[0] === "employmentType") {
+ } else if (getKey(child) === "employmentType") {
return {
...child,
value: _.take(props.employmentTypeList)[0].enum,
@@ -59,7 +62,7 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
showname: getLabel(it.labelId, it.defaultLabel)
}))
};
- } else if (child.domkey[0] === "gender") {
+ } else if (getKey(child) === "gender") {
return {
...child,
value: "MALE",
@@ -68,7 +71,11 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
{ key: "FEMALE", showname: getLabel(111, "女") }
]
};
- } else if (child.domkey[0] === "employeeType") {
+ } else if (getKey(child) === "cardType") {
+ return {
+ ...child, options: _.map(cardTypeEnum, o => ({ key: o.enum, showname: o.defaultLabel }))
+ };
+ } else if (getKey(child) === "employeeType") {
return {
...child,
viewAttr: props.id ? 1 : 3,
@@ -77,7 +84,7 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
]
};
}
- if (child.conditionType === "SELECT" && child.domkey[0] !== "gender" && child.domkey[0] !== "employmentStatus" && child.domkey[0] !== "employmentType") {
+ if (child.conditionType === "SELECT" && getKey(child) !== "gender" && getKey(child) !== "employmentStatus" && getKey(child) !== "employmentType" && getKey(child) !== "taxReasons") {
return {
...child,
options: [
@@ -93,37 +100,37 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
employeeInfo: data.data
}, () => {
const { data: result, columns } = data;
- const { employeeDeclareStore: { declareForm } } = this.props;
+ const { employeeDeclareStore: { declareForm }, id } = props;
declareForm.initFormFields(this.state.eConditions);
- const filedKes = _.map(columns, it => it.dataIndex);
- _.map(filedKes, item => {
- if (item === "disability" || item === "lonelyOld" || item === "martyrDependents") {
- declareForm.updateFields({ [item]: result[item] || "OFF" });
- } else if (item === "deductExpenses") {
- declareForm.updateFields({ [item]: result[item] || "ON" });
- } else if (item === "gender") {
- declareForm.updateFields({ [item]: result[item] || "MALE" });
- } else if (item === "employmentStatus") {
- declareForm.updateFields({ [item]: result[item] || _.take(props.employmentStatusList)[0].enum });
- } else if (item === "employmentType") {
- declareForm.updateFields({ [item]: result[item] || _.take(props.employmentTypeList)[0].enum });
- } else if (item === "cardType") {
- declareForm.updateFields({ [item]: "居民身份证" });
- } else if (item === "employee") {
- const [employeeData] = result[item] || [];
- !_.isEmpty(employeeData) && declareForm.updateFields({
- employeeType: {
- value: [employeeData._entityType, [employeeData.id, employeeData.name, [{
- id: employeeData.id,
- lastname: employeeData.name
- }]]],
- valueSpan: ["employeeId"]
- }
- });
- } else {
- declareForm.updateFields({ [item]: result[item] || "" });
- }
- });
+ if (id) {
+ const filedKes = _.map(columns, it => it.dataIndex);
+ _.map(filedKes, item => {
+ if (item === "disability" || item === "lonelyOld" || item === "martyrDependents") {
+ declareForm.updateFields({ [item]: result[item] || "OFF" });
+ } else if (item === "deductExpenses") {
+ declareForm.updateFields({ [item]: result[item] || "ON" });
+ } else if (item === "gender") {
+ declareForm.updateFields({ [item]: result[item] || "MALE" });
+ } else if (item === "employmentStatus") {
+ declareForm.updateFields({ [item]: result[item] || _.take(props.employmentStatusList)[0].enum });
+ } else if (item === "employmentType") {
+ declareForm.updateFields({ [item]: result[item] || _.take(props.employmentTypeList)[0].enum });
+ } else if (item === "employee") {
+ const [employeeData] = result[item] || [];
+ !_.isEmpty(employeeData) && declareForm.updateFields({
+ employeeType: {
+ value: [employeeData._entityType, [employeeData.id, employeeData.name, [{
+ id: employeeData.id,
+ lastname: employeeData.name
+ }]]],
+ valueSpan: ["employeeId"]
+ }
+ });
+ } else {
+ declareForm.updateFields({ [item]: result[item] || "" });
+ }
+ });
+ }
});
}
});
@@ -146,7 +153,7 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
return {
...it,
items: _.map(it.items, child => {
- if (child.domkey[0] === "dismissDate") {
+ if (getKey(child) === "dismissDate") {
return {
...child,
viewAttr: value === "ABNORMAL" ? 3 : 2
@@ -176,7 +183,7 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
return {
...it,
items: _.map(it.items, child => {
- if (child.domkey[0] === "employmentDate") {
+ if (getKey(child) === "employmentDate") {
return {
...child,
viewAttr: value !== "OTHER" ? 3 : 2
@@ -200,6 +207,39 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
});
});
break;
+ case "cardType":
+ this.setState({
+ eConditions: _.map(eConditions, it => {
+ return {
+ ...it,
+ items: _.map(it.items, child => {
+ if (
+ getKey(child) === "entryDate" || getKey(child) === "departureDate" ||
+ getKey(child) === "birthplace" || getKey(child) === "taxReasons"
+ ) {
+ return {
+ ...child,
+ viewAttr: value !== "RESIDENT_IDENTITY_CARDS" ? 3 : 2
+ };
+ }
+ return { ...child };
+ })
+ };
+ })
+ }, () => {
+ declareForm.initFormFields(this.state.eConditions);
+ const [employeeData] = this.state.employeeInfo["employee"] || this.employeeChangeInfo["employee"] || [];
+ !_.isEmpty(employeeData) && declareForm.updateFields({
+ employeeType: {
+ value: [employeeData._entityType, [employeeData.id, employeeData.name, [{
+ id: employeeData.id,
+ lastname: employeeData.name
+ }]]],
+ valueSpan: ["employeeId"]
+ }
+ });
+ });
+ break;
default:
break;
}
@@ -209,17 +249,39 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
const { employeeDeclareStore: { declareForm: form } } = this.props;
form.validateForm().then(f => {
if (f.isValid) {
- const { employmentType, employmentDate, employmentStatus, dismissDate, ...params } = form.getFormParams();
+ const {
+ employmentType, employmentDate, employmentStatus, dismissDate, cardType, entryDate, departureDate,
+ birthplace, taxReasons, ...params
+ } = form.getFormParams();
if ((employmentType !== "OTHER" && !employmentDate) || (employmentStatus === "ABNORMAL" && !dismissDate)) {
- Modal.warning({
- title: getLabel(131329, "信息确认"),
- content: getLabel(518702, "必要信息不完整,红色*为必填项!")
- });
+ form.showError("dismissDate", getLabel(111, "\"离职日期\"未填写"));
+ return;
+ }
+ if ((cardType !== "RESIDENT_IDENTITY_CARDS" && !entryDate && !departureDate && !birthplace && !taxReasons)) {
+ form.showError("entryDate", getLabel(111, "\"首次入境时间\"未填写"));
+ form.showError("departureDate", getLabel(111, "\"预计离境时间\"未填写"));
+ form.showError("birthplace", getLabel(111, "\"出生地\"未填写"));
+ form.showError("taxReasons", getLabel(111, "\"涉税事由\"未填写"));
+ return;
+ }
+ if ((cardType !== "RESIDENT_IDENTITY_CARDS" && !entryDate)) {
+ form.showError("entryDate", getLabel(111, "\"首次入境时间\"未填写"));
+ return;
+ }
+ if ((cardType !== "RESIDENT_IDENTITY_CARDS" && !departureDate)) {
+ form.showError("departureDate", getLabel(111, "\"预计离境时间\"未填写"));
+ return;
+ }
+ if ((cardType !== "RESIDENT_IDENTITY_CARDS" && !birthplace)) {
+ form.showError("birthplace", getLabel(111, "\"出生地\"未填写"));
+ return;
+ }
+ if ((cardType !== "RESIDENT_IDENTITY_CARDS" && !taxReasons)) {
+ form.showError("taxReasons", getLabel(111, "\"涉税事由\"未填写"));
return;
}
const payload = {
...form.getFormParams(), id: this.props.id,
- cardType: "RESIDENT_IDENTITY_CARDS", //暂时写死身份证类型
taxAgentId: getQueryString("id"),
taxCycle: this.props.taxCycle
};
diff --git a/pc4mobx/hrmSalary/pages/employeedeclareDetail/constants.js b/pc4mobx/hrmSalary/pages/employeedeclareDetail/constants.js
index e602f0e4..a9e370ab 100644
--- a/pc4mobx/hrmSalary/pages/employeedeclareDetail/constants.js
+++ b/pc4mobx/hrmSalary/pages/employeedeclareDetail/constants.js
@@ -1,3 +1,7 @@
+import React from "react";
+import { WeaLocaleProvider } from "ecCom";
+
+const { getLabel } = WeaLocaleProvider;
export const submitStatus = [
{
key: "ALL",
@@ -243,18 +247,21 @@ export const declareConditions = [
lanId: 111,
labelcol: 6,
value: "",
- viewAttr: 1
+ rules: "required|string",
+ viewAttr: 3
},
{
colSpan: 1,
- conditionType: "INPUT",
+ conditionType: "SELECT",
domkey: ["cardType"],
fieldcol: 12,
label: "证件类型",
lanId: 111,
labelcol: 6,
- value: "居民身份证",
- viewAttr: 1
+ value: "",
+ options: [],
+ rules: "required|string",
+ viewAttr: 3
},
{
colSpan: 1,
@@ -281,6 +288,17 @@ export const declareConditions = [
rules: "required",
options: []
},
+ {
+ colSpan: 1,
+ conditionType: "INPUT",
+ domkey: ["birthplace"],
+ fieldcol: 12,
+ label: "出生地",
+ lanId: 111,
+ labelcol: 6,
+ value: "",
+ viewAttr: 2
+ },
{
colSpan: 1,
conditionType: "DATEPICKER",
@@ -354,6 +372,47 @@ export const declareConditions = [
value: "",
viewAttr: 2
},
+ {
+ colSpan: 1,
+ conditionType: "DATEPICKER",
+ domkey: ["entryDate"],
+ fieldcol: 12,
+ label: "首次入境时间",
+ lanId: 111,
+ labelcol: 6,
+ value: "",
+ viewAttr: 2
+ },
+ {
+ colSpan: 1,
+ conditionType: "DATEPICKER",
+ domkey: ["departureDate"],
+ fieldcol: 12,
+ label: "预计离境时间",
+ lanId: 111,
+ labelcol: 6,
+ value: "",
+ viewAttr: 2
+ },
+ {
+ colSpan: 1,
+ conditionType: "SELECT",
+ domkey: ["taxReasons"],
+ fieldcol: 12,
+ label: "涉税事由",
+ lanId: 111,
+ labelcol: 6,
+ value: "",
+ multiple: true,
+ viewAttr: 2,
+ options: [
+ { key: getLabel(111, "任职受雇"), showname: getLabel(111, "任职受雇") },
+ { key: getLabel(111, "提供临时劳务"), showname: getLabel(111, "提供临时劳务") },
+ { key: getLabel(111, "转让财产"), showname: getLabel(111, "转让财产") },
+ { key: getLabel(111, "从事投资和经营活动"), showname: getLabel(111, "从事投资和经营活动") },
+ { key: getLabel(111, "其他"), showname: getLabel(111, "其他") }
+ ]
+ },
{
colSpan: 1,
conditionType: "SELECT",
diff --git a/pc4mobx/hrmSalary/pages/enterprisePayCertificationDetail/index.js b/pc4mobx/hrmSalary/pages/enterprisePayCertificationDetail/index.js
index 026f4cde..456497f2 100644
--- a/pc4mobx/hrmSalary/pages/enterprisePayCertificationDetail/index.js
+++ b/pc4mobx/hrmSalary/pages/enterprisePayCertificationDetail/index.js
@@ -31,7 +31,8 @@ class Index extends Component {
const payload = {
taxDeclareRecordId: getQueryString("taxDeclareRecordId"),
taxAgentId: getQueryString("taxAgentId"),
- taxYearMonth: getQueryString("taxYearMonth")
+ taxYearMonth: getQueryString("taxYearMonth"),
+ reportType: getQueryString("reportType")
};
this.setState({ loading: true });
taxPaymentWithheldVoucherGet(payload).then(({ status, data, errormsg }) => {