From 75b6c0969a94e56211e2a9a67b767577045fee87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Wed, 7 Aug 2024 15:22:10 +0800 Subject: [PATCH 01/18] =?UTF-8?q?feature/2.15.1.2407.01-=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/apis/item.js | 18 ++- pc4mobx/hrmSalary/pages/salaryItem/index.js | 127 ++++++++++-------- .../salaryItem/salaryItemImport/index.js | 87 ++++++++++++ 3 files changed, 174 insertions(+), 58 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/salaryItem/salaryItemImport/index.js diff --git a/pc4mobx/hrmSalary/apis/item.js b/pc4mobx/hrmSalary/apis/item.js index ab4ff6c2..180b22d0 100644 --- a/pc4mobx/hrmSalary/apis/item.js +++ b/pc4mobx/hrmSalary/apis/item.js @@ -1,5 +1,5 @@ import { WeaTools } from "ecCom"; -import { postFetch } from "../util/request"; +import { postExportFetch, postFetch } from "../util/request"; // 薪资项目-获取列表 export const getItemList = params => { @@ -84,3 +84,19 @@ export const getSalarySobBySalaryItem = params => { export const syncSalaryItemToSalarySobItem = params => { return postFetch("/api/bs/hrmsalary/salaryitem/syncSalaryItemToSalarySobItem", params); }; + +// 导出薪资项目 +export const exportSalaryitem = (params) => { + return postExportFetch("/api/bs/hrmsalary/salaryitem/export", params); +}; +// 下载模板 +export const downloadTemplate = (params) => { + return postExportFetch("/api/bs/hrmsalary/salaryitem/downloadTemplate", params); +}; + +// 导入薪资项目 +export const importSalaryitem = (params) => { + return postFetch("/api/bs/hrmsalary/salaryitem/import", params); +}; + + diff --git a/pc4mobx/hrmSalary/pages/salaryItem/index.js b/pc4mobx/hrmSalary/pages/salaryItem/index.js index 09875add..f6898090 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/index.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/index.js @@ -1,9 +1,8 @@ import React from "react"; import { inject, observer } from "mobx-react"; import { Button, Dropdown, Menu, message, Modal, Switch } from "antd"; -import { WeaInputSearch, WeaLocaleProvider, WeaNewScroll, WeaSlideModal, WeaTop } from "ecCom"; +import { WeaInputSearch, WeaLoadingGlobal, WeaLocaleProvider, WeaNewScroll, WeaSlideModal, WeaTop } from "ecCom"; import { renderLoading, toDecimal_n } from "../../util"; -import CustomTab from "../../components/customTab"; import SystemSalaryItemModal from "./systemSalaryItemModal"; import { columns } from "./columns"; import SlideModalTitle from "../../components/slideModalTitle"; @@ -12,6 +11,8 @@ import CustomPaginationTable from "../../components/customPaginationTable"; import SyncToSalaryAccountSetDialog from "./syncToSalaryAccountSetDialog"; import "../socialSecurityBenefits/programme/index.less"; import LogDialog from "../../components/logViewModal"; +import SalaryItemImportDialog from "./salaryItemImport"; +import * as API from "../../apis/item"; const { getLabel } = WeaLocaleProvider; @inject("salaryItemStore", "taxAgentStore", "salaryFileStore") @@ -29,7 +30,8 @@ export default class SalaryItem extends React.Component { searchParams: { current: 1, pageSize: 10, total: 0 }, selectedRowKeys: [], syncSalarySetDialog: { visible: false, title: "", id: "" }, - logDialogVisible: false, filterConditions: "[]" + logDialogVisible: false, filterConditions: "[]", + salaryItemImpDialog: { visible: false, title: getLabel(24023, "数据导入") } }; columns.map(item => { if (item.dataIndex == "refere") { @@ -213,6 +215,19 @@ export default class SalaryItem extends React.Component { filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]" }); break; + case "export": + WeaLoadingGlobal.start(); + const { selectedRowKeys } = this.state; + const promise = API.exportSalaryitem({ ids: selectedRowKeys }); + WeaLoadingGlobal.destroy(); + break; + case "import": + this.setState({ + salaryItemImpDialog: { + ...this.state.salaryItemImpDialog, visible: true + } + }); + break; default: break; } @@ -220,12 +235,10 @@ export default class SalaryItem extends React.Component { render() { const { - salaryItemStore, - salaryFileStore, - taxAgentStore: { showOperateBtn, showSalaryItemBtn, taxAgentOption } + salaryItemStore, salaryFileStore, taxAgentStore: { showOperateBtn, showSalaryItemBtn, taxAgentOption } } = this.props; const { userStatusList } = salaryFileStore; - const { selectedRowKeys, logDialogVisible, filterConditions } = this.state; + const { selectedRowKeys, logDialogVisible, filterConditions, salaryItemImpDialog } = this.state; const { loading, deleteItemRequest, getTableDatas } = salaryItemStore; const { tableDataSource, @@ -257,51 +270,36 @@ export default class SalaryItem extends React.Component { ); - const renderRightOperation = () => { - return (
+ {`1. ${getLabel(30907, "第一步")},${getLabel(543205, "请选择导出的Excel文件或")}`} + { + typeof this.props.link === "string" ? + {getLabel(543207, "点击这里下载模板")} : + {getLabel(543207, "点击这里下载模板")} + } + + {this.props.exportDataDom} +
+{`2. ${getLabel(543211, "第二步")},${getLabel(543212, "请一定要确定Excel文档中的格式是模板中的格式")},${getLabel(543213, "没有被修改掉")};`}
+{`3. ${getLabel(543216, "第三步")},${getLabel(543215, "选择填写好的Excel文档")},${getLabel(543214, "点击“下一步”按钮进行数据预览")};`}
++ {`4. ${getLabel(543217, "第四步")},${getLabel(543218, "如果以上步骤和Excel文档正确的话")},${getLabel(543219, "导入成功会有提示")},${getLabel(543220, "数据会被正确导入")}。${getLabel(543221, "如果有问题")},${getLabel(543222, "则会提示Excel文档的错误之处")}。`} +
+- {`1. ${getLabel(30907, "第一步")},${getLabel(543205, "请选择导出的Excel文件或")}`} - { - typeof this.props.link === "string" ? - {getLabel(543207, "点击这里下载模板")} : - {getLabel(543207, "点击这里下载模板")} - } - - {this.props.exportDataDom} -
-{`2. ${getLabel(543211, "第二步")},${getLabel(543212, "请一定要确定Excel文档中的格式是模板中的格式")},${getLabel(543213, "没有被修改掉")};`}
-{`3. ${getLabel(543216, "第三步")},${getLabel(543215, "选择填写好的Excel文档")},${getLabel(543214, "点击“下一步”按钮进行数据预览")};`}
-- {`4. ${getLabel(543217, "第四步")},${getLabel(543218, "如果以上步骤和Excel文档正确的话")},${getLabel(543219, "导入成功会有提示")},${getLabel(543220, "数据会被正确导入")}。${getLabel(543221, "如果有问题")},${getLabel(543222, "则会提示Excel文档的错误之处")}。`} -
-{`1. ${getLabel(543224, "后缀名为xls或者xlsx")};`}
-{`2. ${getLabel(543225, "数据请勿放在合并的单元格中")};`}
-{`3. ${getLabel(543226, "账单月份格式必须为")}:YYYY-MM;`}
-{`1. ${getLabel(543224, "后缀名为xls或者xlsx")};`}
+{`2. ${getLabel(543225, "数据请勿放在合并的单元格中")};`}
+{`3. ${getLabel(543226, "账单月份格式必须为")}:YYYY-MM;`}
+- {getLabel(389249, "已导入")} - {importResult.successCount} - {`${getLabel(30690, "条数据")},${getLabel(25009, "失败")}`} - {importResult.errorCount} {getLabel(30690, "条数据")} -
+ { + importResult.successCount && ++ {getLabel(389249, "已导入")} + {importResult.successCount} + {`${getLabel(30690, "条数据")},${getLabel(25009, "失败")}`} + {importResult.errorCount} {getLabel(30690, "条数据")} +
+ }{getLabel(111, "导入失败")}
diff --git a/pc4mobx/hrmSalary/pages/appConfig/moveInDialog.js b/pc4mobx/hrmSalary/pages/appConfig/moveInDialog.js index 7fcc32cc..7707cc6c 100644 --- a/pc4mobx/hrmSalary/pages/appConfig/moveInDialog.js +++ b/pc4mobx/hrmSalary/pages/appConfig/moveInDialog.js @@ -26,6 +26,17 @@ class MoveInDialog extends Component { }; } + componentWillReceiveProps(nextProps, nextContext) { + if (nextProps.visible !== this.props.visible && !nextProps.visible) { + this.setState({ + importDialog: { + ...this.state.importDialog, + importResult: {}, imageId: "", + customDragger: { showOperateDesc: false, accept: ".xml" } + } + }); + } + } handleImport = (payload) => { const { importDialog } = this.state = this.props; From e8625fd0ef6adb1a36fce542efbb3d2d59e69362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Thu, 15 Aug 2024 16:29:21 +0800 Subject: [PATCH 04/18] =?UTF-8?q?feature/2.15.1.2407.01-=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrmSalary/components/importDialog/index.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pc4mobx/hrmSalary/components/importDialog/index.js b/pc4mobx/hrmSalary/components/importDialog/index.js index 01ef6493..633df0ee 100644 --- a/pc4mobx/hrmSalary/components/importDialog/index.js +++ b/pc4mobx/hrmSalary/components/importDialog/index.js @@ -103,13 +103,16 @@ class Index extends Component { } const [file] = fileList; const { response } = file; - this.setState({ - current: this.state.current + 1, - fileid: response.data.fileid - }, () => { - !excludeKey && this.props.nextCallback && this.props.nextCallback(this.state.fileid); - excludeKey && this.props.nextUplaodCallback && this.props.nextUplaodCallback(this.state.fileid); - }); + if (!excludeKey) { + this.setState({ + current: this.state.current + 1, + fileid: response.data.fileid + }, () => { + this.props.nextCallback && this.props.nextCallback(this.state.fileid); + }); + } else { + this.props.nextUplaodCallback && this.props.nextUplaodCallback(response.data.fileid); + } } else { this.props.nextUplaodCallback && this.props.nextUplaodCallback(this.state.fileid); } From f730cba8decc76a7326d49197c7705be3210379a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Fri, 16 Aug 2024 16:37:45 +0800 Subject: [PATCH 05/18] =?UTF-8?q?feature/2.15.1.2407.01-=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../importDialog/components/impStep3.js | 3 +++ .../importDialog/components/moveInResult.js | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 pc4mobx/hrmSalary/components/importDialog/components/moveInResult.js diff --git a/pc4mobx/hrmSalary/components/importDialog/components/impStep3.js b/pc4mobx/hrmSalary/components/importDialog/components/impStep3.js index 888cc763..f42c7ef2 100644 --- a/pc4mobx/hrmSalary/components/importDialog/components/impStep3.js +++ b/pc4mobx/hrmSalary/components/importDialog/components/impStep3.js @@ -7,6 +7,7 @@ import React, { Component } from "react"; import { WeaLocaleProvider, WeaTable } from "ecCom"; import successImg from "../../importModal/success.svg"; +import MoveInResult from "./moveInResult"; const getLabel = WeaLocaleProvider.getLabel; @@ -15,6 +16,8 @@ class ImpStep3 extends Component { const { importResult } = this.props; return (- {getLabel(389249, "已导入")} - {importResult.successCount} - {`${getLabel(30690, "条数据")},${getLabel(25009, "失败")}`} - {importResult.errorCount} {getLabel(30690, "条数据")} -
+ !_.isEmpty(importResult) ? ++ {getLabel(389249, "已导入")} + {importResult.successCount} + {`${getLabel(30690, "条数据")},${getLabel(25009, "失败")}`} + {importResult.errorCount} {getLabel(30690, "条数据")} +
+ } +{getLabel(111, "导入失败")}
+{getLabel(111, "导入失败")}
-