From 9a03c6ad8b021130c9c24a003dbbb2039a48032b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com>
Date: Mon, 16 Oct 2023 15:27:29 +0800
Subject: [PATCH] =?UTF-8?q?feature/2.9.42310.01-=E8=B0=83=E8=96=AA?=
=?UTF-8?q?=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pc4mobx/hrmSalary/apis/adjustManage.js | 2 +-
.../adjustAdvanceSearchPannel/index.js | 101 ++++++++++
.../components/advanceInputBtn/index.js | 27 +++
.../components/advanceInputBtn/index.less | 28 +++
.../components/conditions.js | 176 ++++++++++++++++++
.../pages/adjustSalaryManage/index.js | 75 ++++++--
.../pages/adjustSalaryManage/index.less | 47 +++++
pc4mobx/hrmSalary/stores/payrollFiles.js | 4 +-
8 files changed, 445 insertions(+), 15 deletions(-)
create mode 100644 pc4mobx/hrmSalary/pages/adjustSalaryManage/components/adjustAdvanceSearchPannel/index.js
create mode 100644 pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.js
create mode 100644 pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.less
create mode 100644 pc4mobx/hrmSalary/pages/adjustSalaryManage/components/conditions.js
diff --git a/pc4mobx/hrmSalary/apis/adjustManage.js b/pc4mobx/hrmSalary/apis/adjustManage.js
index 0ccce814..8eda378d 100644
--- a/pc4mobx/hrmSalary/apis/adjustManage.js
+++ b/pc4mobx/hrmSalary/apis/adjustManage.js
@@ -2,5 +2,5 @@ import { postFetch } from "../util/request";
// 薪资项目调整记录列表
export const adjustRecordItemList = (params) => {
- return postFetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/adjustRecordItemList", params);
+ return postFetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/salaryItemList", params);
};
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/adjustAdvanceSearchPannel/index.js b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/adjustAdvanceSearchPannel/index.js
new file mode 100644
index 00000000..fc98193a
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/adjustAdvanceSearchPannel/index.js
@@ -0,0 +1,101 @@
+/*
+ * Author: 黎永顺
+ * name: 调薪记录-查看面板
+ * Description:
+ * Date: 2023/10/16
+ */
+import React, { Component } from "react";
+import { WeaLocaleProvider, WeaTools } from "ecCom";
+import { Button } from "antd";
+import { inject, observer } from "mobx-react";
+import { adjustSearchConditions } from "../conditions";
+import { getSearchs } from "../../../../util";
+import { commonEnumList } from "../../../../apis/ruleconfig";
+
+const getKey = WeaTools.getKey;
+const getLabel = WeaLocaleProvider.getLabel;
+
+@inject("payrollFilesStore")
+@observer
+class Index extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ searchConditions: []
+ };
+ }
+
+ componentDidMount() {
+ commonEnumList({ enumClass: "com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum" })
+ .then(({ status, data }) => {
+ if (status) {
+ this.setState({
+ searchConditions: _.map(adjustSearchConditions, item => {
+ return {
+ ...item,
+ items: _.map(item.items, o => {
+ if (getKey(o) === "userStatus") {
+ return {
+ ...o,
+ options: [
+ { key: "0", showname: getLabel(18883, "试用") }, {
+ key: "1",
+ showname: getLabel(15711, "正式")
+ },
+ { key: "2", showname: getLabel(480, "临时") }, {
+ key: "3",
+ showname: getLabel(15844, "试用延期")
+ },
+ { key: "4", showname: getLabel(542707, "解雇") }, {
+ key: "5",
+ showname: getLabel(6091, "离职")
+ },
+ { key: "6", showname: getLabel(6092, "退休") }
+ ]
+ };
+ } else if (getKey(o) === "adjustReason") {
+ return {
+ ...o,
+ options: _.map(data, item => ({
+ key: item.value,
+ showname: item.defaultLabel
+ }))
+ };
+ }
+ return { ...o };
+ }),
+ title: getLabel(32905, "常用条件")
+ };
+ })
+ }, () => {
+ const { payrollFilesStore: { adjustForm } } = this.props;
+ adjustForm.initFormFields(this.state.searchConditions);
+ });
+ }
+ });
+ }
+
+ render() {
+ const { searchConditions } = this.state;
+ const { payrollFilesStore: { adjustForm } } = this.props;
+ return (
+
+
+ {getSearchs(adjustForm, searchConditions, 2, false)}
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default Index;
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.js b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.js
new file mode 100644
index 00000000..847db526
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.js
@@ -0,0 +1,27 @@
+import React, { Component } from "react";
+import { inject, observer } from "mobx-react";
+import { Button } from "antd";
+import { WeaInputSearch, WeaLocaleProvider } from "ecCom";
+import "./index.less";
+
+const getLabel = WeaLocaleProvider.getLabel;
+
+@inject("payrollFilesStore")
+@observer
+class Index extends Component {
+ render() {
+ const { payrollFilesStore: { adjustForm } } = this.props;
+ return (
+
+ adjustForm.updateFields({ username: v })}
+ onSearch={this.props.onAdvanceSearch}
+ />
+
+
+ );
+ }
+}
+
+export default Index;
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.less b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.less
new file mode 100644
index 00000000..1a3d7283
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/advanceInputBtn/index.less
@@ -0,0 +1,28 @@
+.advance-search {
+ display: flex;
+ align-items: center;
+ position: relative;
+ top: -2.5px;
+
+ .wea-advanced-search {
+ top: 2px;
+ left: -1px;
+ height: 28px;
+ line-height: 1;
+ border-radius: 0;
+ position: relative;
+ color: #474747;
+ padding: 4px 15px;
+ }
+
+ .wea-advanced-search:hover {
+ border: 1px solid #dadada;
+ color: #474747;
+ }
+
+ .text-elli {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/conditions.js b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/conditions.js
new file mode 100644
index 00000000..22674611
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/components/conditions.js
@@ -0,0 +1,176 @@
+export const adjustSearchConditions = [
+ {
+ items: [
+ {
+ colSpan: 2,
+ conditionType: "INPUT",
+ domkey: ["username"],
+ fieldcol: 12,
+ label: "姓名",
+ lanId: 25034,
+ labelcol: 6,
+ value: "",
+ viewAttr: 2
+ },
+ {
+ 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: "57",
+ viewAttr: 2
+ },
+ colSpan: 2,
+ conditionType: "BROWSER",
+ domkey: ["departmentIds"],
+ fieldcol: 12,
+ label: "部门",
+ lanId: 27511,
+ labelcol: 6,
+ viewAttr: 2
+ },
+ {
+ 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: "24",
+ viewAttr: 2
+ },
+ colSpan: 2,
+ conditionType: "BROWSER",
+ domkey: ["positionIds"],
+ fieldcol: 12,
+ label: "岗位",
+ lanId: 6086,
+ labelcol: 6,
+ viewAttr: 2
+ },
+ {
+ colSpan: 2,
+ conditionType: "SELECT",
+ domkey: ["userStatus"],
+ fieldcol: 12,
+ label: "状态",
+ lanId: 535101,
+ labelcol: 6,
+ options: [],
+ viewAttr: 2
+ },
+ {
+ colSpan: 2,
+ conditionType: "INPUT",
+ domkey: ["adjustItem"],
+ fieldcol: 12,
+ label: "项目名称",
+ lanId: 111,
+ labelcol: 6,
+ value: "",
+ viewAttr: 2
+ },
+ {
+ colSpan: 2,
+ conditionType: "SELECT",
+ domkey: ["adjustReason"],
+ fieldcol: 12,
+ label: "调整原因",
+ lanId: 1897,
+ labelcol: 6,
+ options: [],
+ viewAttr: 2
+ },
+ {
+ colSpan: 2,
+ conditionType: "RANGEPICKER",
+ domkey: ["effectiveTime1", "effectiveTime2"],
+ fieldcol: 12,
+ label: "生效日期",
+ lanId: 19548,
+ labelcol: 6,
+ viewAttr: 2
+ },
+ {
+ colSpan: 2,
+ conditionType: "RANGEPICKER",
+ domkey: ["operateTime1", "operateTime2"],
+ fieldcol: 12,
+ label: "操作日期",
+ lanId: 111,
+ labelcol: 6,
+ viewAttr: 2
+ },
+ {
+ 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: "BROWSER",
+ domkey: ["operatorIds"],
+ fieldcol: 12,
+ label: "操作人",
+ lanId: 111,
+ labelcol: 6,
+ viewAttr: 2
+ },
+ {
+ colSpan: 2,
+ conditionType: "INPUT",
+ domkey: ["description"],
+ fieldcol: 12,
+ label: "备注",
+ lanId: 536726,
+ labelcol: 6,
+ value: "",
+ viewAttr: 2
+ },
+ ],
+ defaultshow: true,
+ title: "common"
+ }
+];
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js
index 40b5a61a..e57ffa58 100644
--- a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js
@@ -5,19 +5,26 @@
* Date: 2023/10/13
*/
import React, { Component } from "react";
+import { inject, observer } from "mobx-react";
import { WeaLocaleProvider, WeaTable, WeaTop } from "ecCom";
import { adjustRecordItemList } from "../../apis/adjustManage";
+import AdvanceInputBtn from "./components/advanceInputBtn";
+import AdjustAdvanceSearchPannel from "./components/adjustAdvanceSearchPannel";
+import cs from "classnames";
import { Button } from "antd";
import "./index.less";
+import { convertToUrlString } from "../../util/url";
const getLabel = WeaLocaleProvider.getLabel;
+@inject("payrollFilesStore")
+@observer
class Index extends Component {
constructor(props) {
super(props);
this.state = {
- loading: false, columns: [], dataSource: [],
+ loading: false, columns: [], dataSource: [], showSearchAd: false,
pageInfo: { current: 1, pageSize: 10, total: 0 }
};
}
@@ -27,8 +34,22 @@ class Index extends Component {
}
adjustRecordItemList = () => {
+ const { payrollFilesStore: { adjustForm } } = this.props;
+ const {
+ departmentIds, positionIds, operatorIds,
+ effectiveTime1 = "", effectiveTime2 = "",
+ operateTime1 = "", operateTime2 = "",
+ ...extra
+ } = adjustForm.getFormParams();
const { pageInfo } = this.state;
- const payload = { ...pageInfo };
+ const payload = {
+ ...pageInfo, ...extra,
+ departmentIds: departmentIds ? departmentIds.split(",") : [],
+ positionIds: departmentIds ? departmentIds.split(",") : [],
+ operatorIds: departmentIds ? departmentIds.split(",") : [],
+ effectiveTime: effectiveTime1 ? [effectiveTime1, effectiveTime2] : [],
+ operateTime: operateTime1 ? [operateTime1, operateTime2] : []
+ };
this.setState({ loading: true });
adjustRecordItemList(payload).then(({ status, data }) => {
this.setState({ loading: false });
@@ -37,17 +58,39 @@ class Index extends Component {
this.setState({
dataSource, pageInfo: { ...pageInfo, pageNum, pageSize, total },
columns: _.map(columns, o => {
- const { dataIndex } = o;
- let width = "";
- return { ...o, width };
+ if (o.dataIndex === "username") {
+ return { ...o, width: 150, fixed: "left" };
+ }
+ return { ...o, width: 150 };
})
});
}
}).catch(() => this.setState({ loading: false }));
};
+ openAdvanceSearch = () => this.setState({ showSearchAd: !this.state.showSearchAd });
+ adjustExport = () => {
+ if (!this.handleDebounce) {
+ this.handleDebounce = _.debounce(() => {
+ const { payrollFilesStore: { adjustForm } } = this.props;
+ const {
+ effectiveTime1 = "", effectiveTime2 = "",
+ operateTime1 = "", operateTime2 = "",
+ ...extra
+ } = adjustForm.getFormParams();
+ const payload = {
+ ...extra,
+ effectiveTime: effectiveTime1 ? `${effectiveTime1},${effectiveTime2}` : "",
+ operateTime: operateTime1 ? `${operateTime1},${operateTime2}` : ""
+ };
+ window.open(`${window.location.origin}/api/bs/hrmsalary/salaryArchive/adjustRecord/exportSalaryItemList?${convertToUrlString(payload)}`, "_target");
+ this.handleDebounce = null;
+ }, 500);
+ }
+ this.handleDebounce();
+ };
render() {
- const { loading, dataSource, columns, pageInfo } = this.state;
+ const { loading, dataSource, columns, pageInfo, showSearchAd } = this.state;
const pagination = {
...pageInfo,
showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`,
@@ -57,26 +100,32 @@ class Index extends Component {
onShowSizeChange: (current, pageSize) => {
this.setState({
pageInfo: { ...pageInfo, current, pageSize }
- }, () => {
- });
+ }, () => this.adjustRecordItemList());
},
onChange: current => {
this.setState({
pageInfo: { ...pageInfo, current }
- }, () => {
- });
+ }, () => this.adjustRecordItemList());
}
};
return (
} iconBgcolor="#F14A2D"
buttons={[
-
+ ,
+ this.openAdvanceSearch()}
+ onAdvanceSearch={this.adjustRecordItemList}/>
]}
>
+
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less
index e69de29b..f7648ef8 100644
--- a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less
@@ -0,0 +1,47 @@
+.adjustManageLayout {
+
+ .searchAdvanced-condition-hide {
+ display: none;
+ }
+
+ .searchAdvanced-condition-container {
+ background: #FFF;
+ margin-bottom: 10px;
+ border: 1px solid #e5e5e5;
+
+ .wea-search-buttons {
+ border-top: 1px solid #dadada;
+ padding: 15px 0;
+ }
+
+ .wea-advanced-searchsAd {
+ height: 320px;
+ overflow: hidden auto;
+
+ .formItem-delete {
+ position: absolute;
+ top: 0;
+ right: -40px;
+ }
+
+ .searchAdvanced-commonSelect {
+ border-top: 1px solid #ebebeb;
+ margin: 0 25px;
+ padding: 10px 0;
+ }
+
+ .custom-advance-largeSpacing {
+ padding-left: 26px;
+
+ .link {
+ border: none;
+ border-radius: 0;
+ padding: 12px 10px 12px 26px;
+ color: #2db7f5
+ }
+ }
+
+ }
+ }
+}
+
diff --git a/pc4mobx/hrmSalary/stores/payrollFiles.js b/pc4mobx/hrmSalary/stores/payrollFiles.js
index 70088da8..529bde71 100644
--- a/pc4mobx/hrmSalary/stores/payrollFiles.js
+++ b/pc4mobx/hrmSalary/stores/payrollFiles.js
@@ -1,5 +1,5 @@
import { action, observable } from "mobx";
-import { WeaTableNew } from "comsMobx";
+import { WeaForm, WeaTableNew } from "comsMobx";
import * as API from "../apis/payrollFiles";
import { getDataPerspective, statisticsEmployeeDetailList } from "../apis/statistics";
@@ -10,6 +10,8 @@ export class PayrollFilesStore {
@observable tableStore = new TableStore();
@observable employeeTableStore = new TableStore();
@observable pivotTableStore = new TableStore();
+ @observable adjustForm = new WeaForm(); //调薪记录-核算form
+ @action initAdjustForm = () => this.adjustForm = new WeaForm();//调薪记录-初始化核算form
@action("薪资档案-列表查询")
queryList = (payload = {}, searchItemsValue = {}, url = "") => {