diff --git a/pc4mobx/hrmSalary/components/importDialog/components/impStep1.js b/pc4mobx/hrmSalary/components/importDialog/components/impStep1.js
new file mode 100644
index 00000000..6ab09b3e
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/importDialog/components/impStep1.js
@@ -0,0 +1,87 @@
+/*
+ * Author: 黎永顺
+ * name: 导入-步骤一
+ * Description:
+ * Date: 2023/8/11
+ */
+import React, { Component } from "react";
+import { WeaLocaleProvider } from "ecCom";
+import { Icon, message, Upload } from "antd";
+
+const Dragger = Upload.Dragger;
+const { getLabel } = WeaLocaleProvider;
+
+class ImpStep1 extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ fileList: []
+ };
+ }
+
+ handleChange = (data) => {
+ const { fileList, file } = data;
+ if (file.response && typeof (file.response) != "undefined" && file.status !== "removed") message.success(getLabel(111, "上传成功"));
+ this.setState({ fileList: fileList.slice(-1) });
+ };
+
+ render() {
+ const { fileList } = this.state;
+ const dragger = {
+ accept: ".xlsx",
+ name: "file",
+ multiple: false,
+ action: "/api/doc/upload/uploadFile",
+ fileList,
+ onChange: this.handleChange
+ };
+ return (
+
+ {/* 导入选项 */}
+ {
+ this.props.importParams &&
+
+
{getLabel(543201, "导入选项")}
+ {this.props.importParams}
+
+ }
+
{getLabel(543202, "导入Excel")}
+
+
+
+
+
{getLabel(543203, "点击或将文件拖拽到此区域上传")}
+
{getLabel(543204, "支持单个或批量上传,严禁上传公司内部资料及其他违禁文件")}
+
+
+
+
+
+
{getLabel(27577, "操作步骤")}
+
+ {`1. ${getLabel(30907, "第一步")},${getLabel(543205, "请选择导出的Excel文件或")}`}
+ {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文档的错误之处")}。`}
+
+
+
+
+
{getLabel(543223, "Excel文件说明")}
+
{`1. ${getLabel(543224, "后缀名为xls或者xlsx")};`}
+
{`2. ${getLabel(543225, "数据请勿放在合并的单元格中")};`}
+
{`3. ${getLabel(543226, "账单月份格式必须为")}:YYYY-MM;`}
+
+
+
+ );
+ }
+}
+
+export default ImpStep1;
diff --git a/pc4mobx/hrmSalary/components/importDialog/components/impStep2.js b/pc4mobx/hrmSalary/components/importDialog/components/impStep2.js
new file mode 100644
index 00000000..8a7373d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/importDialog/components/impStep2.js
@@ -0,0 +1,49 @@
+/*
+ * Author: 黎永顺
+ * name: 导入-步骤二
+ * Description:
+ * Date: 2023/9/5
+ */
+import React, { Component } from "react";
+import { WeaTable } from "ecCom";
+import { postFetch } from "../../../util/request";
+
+class ImpStep2 extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ loading: false, columns: [], dataSource: []
+ };
+ }
+
+ componentDidMount() {
+ this.init();
+ }
+
+ init = () => {
+ const { previewUrl, imageId } = this.props;
+ const payload = { imageId };
+ this.setState({ loading: true });
+ postFetch(previewUrl, payload).then(({ status, data }) => {
+ this.setState({ loading: false });
+ if (status) {
+ const { headers, list } = data;
+ this.setState({
+ columns: _.map(headers, (item, index) => ({ title: item, dataIndex: index + "", width: 120 })),
+ dataSource: _.map(list, item => {
+ return _.reduce(item, (pre, cur, key) => (_.assign(pre, { [key]: cur })), {});
+ })
+ });
+ }
+ }).catch(() => this.setState({ loading: false }));
+ };
+
+ render() {
+ const { dataSource, columns, loading } = this.state;
+ return (
+
+ {
+ !_.isEmpty(importResult) ?
+
+

+
+ {getLabel(389249, "已导入")}
+ {importResult.successCount}
+ {`${getLabel(30690, "条数据")},${getLabel(25009, "失败")}`}
+ {importResult.errorCount} {getLabel(30690, "条数据")}
+
+
:
+
+
{getLabel(111, "导入失败")}
+
+ }
+ {
+ !_.isEmpty(importResult.errorData) &&
+
+ }
+
+ );
+ }
+}
+
+export default ImpStep3;
diff --git a/pc4mobx/hrmSalary/components/importDialog/index.js b/pc4mobx/hrmSalary/components/importDialog/index.js
new file mode 100644
index 00000000..b7eafd97
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/importDialog/index.js
@@ -0,0 +1,153 @@
+/*
+ * Author: 黎永顺
+ * name: 导入弹框-步骤条
+ * Description:
+ * Date: 2023/8/11
+ */
+import React, { Component } from "react";
+import { Button, message, Modal } from "antd";
+import { WeaDialog, WeaLocaleProvider, WeaSteps } from "ecCom";
+import ImpStep1 from "./components/impStep1";
+import ImpStep2 from "./components/impStep2";
+import ImpStep3 from "./components/impStep3";
+import "./index.less";
+
+const { getLabel } = WeaLocaleProvider;
+const Step = WeaSteps.Step;
+
+class Index extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ current: 0
+ };
+ }
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (JSON.stringify(nextProps.importResult) !== JSON.stringify(this.props.importResult) && !_.isEmpty(nextProps.importResult)) {
+ this.setState({
+ current: this.state.current + 1
+ });
+ }
+ if (nextProps.visible !== this.props.visible && !nextProps.visible) this.setState({ current: 0 });
+ }
+
+ renderChildren = () => {
+ const { current } = this.state;
+ const { importParams, link, excludeKey, importResult, exportDataDom = null } = this.props;
+ let CurrentDom = null;
+ switch (current) {
+ case 0:
+ CurrentDom =