diff --git a/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.js b/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.js
index 03ff17c6..6e6479c0 100644
--- a/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.js
+++ b/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.js
@@ -133,7 +133,7 @@ export default class PayrollDetail extends React.Component {
];
return (
-
+
导出全部]}
diff --git a/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.less b/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.less
index 9bb70233..01a180a0 100644
--- a/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.less
+++ b/pc4mobx/hrmSalary/pages/payroll/payrollDetail/index.less
@@ -1,12 +1,17 @@
-.payrollGrant {
+.payrollDetail {
display: flex;
flex-direction: column;
height: 100%;
+ background: #f6f6f6;
+
+ .wea-tab .wea-tab-right, .wea-input-focus {
+ background: #f6f6f6;
+ }
.titleBar {
height: 47px;
line-height: 47px;
- padding: 0 10px;
+ padding: 0 16px;
.titleBarLeft {
float: left;
@@ -19,6 +24,7 @@
.tableWrapper {
flex: 1;
+ padding: 0 16px;
.ant-spin-nested-loading, .ant-spin-container {
height: 100%;
diff --git a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.js b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.js
index 9582c550..d52797f0 100644
--- a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.js
+++ b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.js
@@ -595,6 +595,7 @@ export default class PayrollGrant extends React.Component {
this.pageInfo = { current, pageSize };
this.handleShowSizeChange(this.pageInfo);
}}
+ scroll={{ y: `calc(100vh - 236px)` }}
/> : renderLoading()
}
diff --git a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.less b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.less
index 9699454a..cd2ce262 100644
--- a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.less
+++ b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/index.less
@@ -1,8 +1,15 @@
.payrollGrant_new {
+ background: #f6f6f6;
+ height: 100%;
+
+ .wea-tab .wea-tab-right, .wea-input-focus {
+ background: #f6f6f6;
+ }
+
.titleBar {
height: 47px;
line-height: 47px;
- padding: 0 10px;
+ padding: 0 16px;
.titleBarLeft {
float: left;
@@ -14,8 +21,11 @@
}
.tableWrapper {
- height: calc(100vh - 180.22px);
- overflow: auto;
+ padding: 0 16px;
+
+ .wea-new-table {
+ background: #FFF;
+ }
}
}
diff --git a/pc4mobx/hrmSalary/pages/payroll/stepForm/salaryItemSettings.js b/pc4mobx/hrmSalary/pages/payroll/stepForm/salaryItemSettings.js
index 0113ecd5..53802244 100644
--- a/pc4mobx/hrmSalary/pages/payroll/stepForm/salaryItemSettings.js
+++ b/pc4mobx/hrmSalary/pages/payroll/stepForm/salaryItemSettings.js
@@ -86,9 +86,11 @@ class SalaryItemSettings extends Component {
}
});
this.setState({
- dataList: resultSalaryItemSet
+ dataList: resultSalaryItemSet,
+ itemShowNamesetting: _.filter(this.state.itemShowNamesetting, it => it.salaryItemId !== item.id)
}, () => {
this.props.onChangeSalaryItem(resultSalaryItemSet);
+ this.props.onChangeSalaryItemShowNamesetting(this.state.itemShowNamesetting);
});
};
handleCloseModal = () => {
diff --git a/pc4mobx/hrmSalary/pages/payrollFiles/index.js b/pc4mobx/hrmSalary/pages/payrollFiles/index.js
index 74326a8f..db623a70 100644
--- a/pc4mobx/hrmSalary/pages/payrollFiles/index.js
+++ b/pc4mobx/hrmSalary/pages/payrollFiles/index.js
@@ -30,8 +30,8 @@ import AllWithoutPay from "./components/allWithoutPay";
import BatchSuspendsPay from "./components/batchSuspendsPay";
import SlideModalTitle from "../../components/slideModalTitle";
import SalaryFileViewSlide from "../salaryFile/saralyFileViewSlide";
-import ChangeSalaryModal from "../salaryFile/changeSalaryModal";
import { sysinfo } from "../../apis/ruleconfig";
+import SalaryArchiveEditAdjLogRecord from "../salaryFile/salaryArchiveEditAdjLogRecord";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@@ -77,7 +77,9 @@ class Index extends Component {
subcompanyIds: ""
},
salaryAdjustmentInfo: {},
- changeSalaryVisible: false,
+ adjLogRecordDialog: {
+ visible: false, title: "", id: "", salaryArchiveId: ""
+ },
noPayDate: "",
slideParams: {
visible: false,
@@ -624,7 +626,12 @@ class Index extends Component {
}
if (showOperateBtn && (selectedKey === "fixed" || selectedKey === "ext")) {
arrList.push(
);
}
selectedKey !== "stop" && arrList.push(
);
@@ -719,7 +726,7 @@ class Index extends Component {
pageInfo,
showSearchAd,
slideParams,
- changeSalaryVisible,
+ adjLogRecordDialog,
paysetParams,
extEmpsWitch
} = this.state;
@@ -884,15 +891,14 @@ class Index extends Component {
}}
/>
)}
- {changeSalaryVisible && (
-
{
- this.setState({ changeSalaryVisible: false });
- }}
- />
- )}
+ this.setState({
+ adjLogRecordDialog: {
+ adjLogRecordDialog, visible: false, title: "", id: "", salaryArchiveId: ""
+ }
+ })}
+ />
);
}
diff --git a/pc4mobx/hrmSalary/pages/ruleConfig/index.js b/pc4mobx/hrmSalary/pages/ruleConfig/index.js
index 3ac96bf9..2fccbadf 100644
--- a/pc4mobx/hrmSalary/pages/ruleConfig/index.js
+++ b/pc4mobx/hrmSalary/pages/ruleConfig/index.js
@@ -23,7 +23,7 @@ export default class Index extends Component {
orderRule: "",
ascOrDesc: "",
rule: "",
- enctry: "",
+ enctry: "1",
operateTaxDeclaration: "1",
matchRule: "",
confValue: "0",
@@ -56,7 +56,7 @@ export default class Index extends Component {
ascOrDesc = "", orderRule = "", showEncryptOperationButton, matchEmployeeMode: rule = "",
taxDeclarationFunction: operateTaxDeclaration = "1", salaryArchiveDelete: confValue,
salaryAcctEmployeeRule: matchRule, WITHDRAW_TAX_DECLARATION: withDrawTaxDeclaration = "0",
- OPEN_APPLICATION_ENCRYPT: enctry = "0", extEmpsWitch = "0"
+ OPEN_APPLICATION_ENCRYPT: enctry = "1", extEmpsWitch = "0"
}
} = sysInfo;
// const { data: { ascOrDesc, orderRule } } = orderRules;
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/columns.js b/pc4mobx/hrmSalary/pages/salaryFile/columns.js
index 7cfdb4d9..a34d95bf 100644
--- a/pc4mobx/hrmSalary/pages/salaryFile/columns.js
+++ b/pc4mobx/hrmSalary/pages/salaryFile/columns.js
@@ -1,175 +1,203 @@
export const columns = [
- {
- title: "姓名",
- dataIndex: 'title',
- key: 'title',
- },
- {
- title: "个税扣缴义务人",
- dataIndex: 'title',
- key: 'title',
- },
- {
- title: "部门",
- dataIndex: 'title',
- key: 'title',
- },
- {
- title: "手机号",
- dataIndex: 'title',
- key: 'title',
- },
- {
- title: "员工状态",
- dataIndex: 'title',
- key: 'title',
- },
- {
- title: "基本工资",
- dataIndex: 'title',
- key: 'title',
- },
- {
- title: "操作",
- dataIndex: 'cz',
- key: 'cz',
- }
-]
+ {
+ title: "姓名",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "部门",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "手机号",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "员工状态",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "基本工资",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "操作",
+ dataIndex: "cz",
+ key: "cz"
+ }
+];
-export const changeSalaryModalColumns = [
- {
- title: '薪资项目',
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: '调整前',
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: '调整后',
- dataIndex: 'title',
- key: 'title'
- }
-]
+export const adjCondition = [
+ {
+ items: [
+ {
+ colSpan: 1,
+ conditionType: "DATEPICKER",
+ domkey: ["effectiveTime"],
+ fieldcol: 18,
+ label: "生效日期",
+ lanId: 19548,
+ labelcol: 6,
+ rules: "required",
+ value: "",
+ viewAttr: 3
+ },
+ {
+ colSpan: 1,
+ checkbox: false,
+ checkboxValue: false,
+ conditionType: "SELECT",
+ domkey: ["adjustReason"],
+ fieldcol: 18,
+ label: "调整原因",
+ lanId: 1897,
+ labelcol: 6,
+ options: [],
+ rules: "required",
+ viewAttr: 3
+ },
+ {
+ colSpan: 1,
+ conditionType: "INPUT",
+ domkey: ["description"],
+ fieldcol: 18,
+ label: "说明",
+ lanId: 25734,
+ labelcol: 6,
+ value: "",
+ viewAttr: 2
+ }
+ ],
+ title: "调薪信息",
+ defaultshow: true
+ }
+];
export const slideSalaryItemColumns = [
- {
- title: "姓名",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "员工状态",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "部门",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "薪资项目",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "调整前",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "调整后",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "调整原因",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "生效日期",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "操作人",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "操作日期",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "说明",
- dataIndex: 'title',
- key: 'title'
- }
-]
+ {
+ title: "姓名",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "员工状态",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "部门",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "薪资项目",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "调整前",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "调整后",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "调整原因",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "生效日期",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "操作人",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "操作日期",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "说明",
+ dataIndex: "title",
+ key: "title"
+ }
+];
export const slieAgentColumns = [
- {
- title: "姓名",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "员工状态",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "部门",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "调整前",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "调整后",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "调整原因",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "生效日期",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "操作人",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "操作日期",
- dataIndex: 'title',
- key: 'title'
- },
- {
- title: "说明",
- dataIndex: 'title',
- key: 'title'
- }
-]
+ {
+ title: "姓名",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "员工状态",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "部门",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "调整前",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "调整后",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "调整原因",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "生效日期",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "操作人",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "操作日期",
+ dataIndex: "title",
+ key: "title"
+ },
+ {
+ title: "说明",
+ dataIndex: "title",
+ key: "title"
+ }
+];
export const dataSource = [
- {
- title: "测试"
- }
+ {
+ title: "测试"
+ }
];
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/index.less b/pc4mobx/hrmSalary/pages/salaryFile/index.less
index 506beb63..ebc4a8a4 100644
--- a/pc4mobx/hrmSalary/pages/salaryFile/index.less
+++ b/pc4mobx/hrmSalary/pages/salaryFile/index.less
@@ -73,7 +73,6 @@
}
}
-
.salaryFileSlide {
padding: 10px 20px;
@@ -125,7 +124,6 @@
}
}
-
.salaryFileTabWrapper {
.searchPanel {
position: absolute;
@@ -169,3 +167,55 @@
}
}
}
+
+.adjustItem-layout {
+ .ant-table-fixed td {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+}
+
+.adjLogRecordDialogContent {
+ background: #f6f6f6;
+ padding: 16px;
+ height: 100%;
+ overflow-y: auto;
+
+ .empty {
+ text-align: center;
+ background: transparent;
+ margin-bottom: 20px;
+ padding: 30px 50px;
+ }
+
+ .wea-search-group:first-child {
+ margin-bottom: 16px;
+ }
+
+ .wea-search-group {
+ background: #FFF;
+ padding: 0;
+ border: 1px solid #e5e5e5;
+ border-bottom: none;
+ }
+
+ .wea-content, .wea-form-cell {
+ padding: 0;
+ }
+
+ .wea-form-item {
+ padding: 5px 16px;
+ border-bottom: 1px solid #e5e5e5;
+ }
+
+ .wea-select, .ant-select {
+ width: 100%;
+ }
+
+ .ant-select-selection {
+ width: 100%;
+ height: 30px;
+ border-radius: 0;
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/salaryArchiveEditAdjLogRecord.js b/pc4mobx/hrmSalary/pages/salaryFile/salaryArchiveEditAdjLogRecord.js
new file mode 100644
index 00000000..a1656d53
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryFile/salaryArchiveEditAdjLogRecord.js
@@ -0,0 +1,221 @@
+/*
+ * Author: 黎永顺
+ * name: 薪资档案-调薪
+ * Description:
+ * Date: 2023/9/4
+ */
+import React, { Component } from "react";
+import { WeaDialog, WeaLocaleProvider, WeaSearchGroup, WeaTableEdit, WeaTools } from "ecCom";
+import { Button, message, Spin } from "antd";
+import {
+ editSingleSalaryItem,
+ getSalaryItemAdjustBeforeValue,
+ getSalaryItemForm,
+ getSingleSalaryItemInfo,
+ saveSalaryItem
+} from "../../apis/archive";
+import { inject, observer } from "mobx-react";
+import { adjCondition } from "./columns";
+import { getDomkes, getSearchs } from "../../util";
+import moment from "moment";
+
+const { getLabel } = WeaLocaleProvider;
+const getKey = WeaTools.getKey;
+const APIFox = {
+ save: saveSalaryItem,
+ edit: editSingleSalaryItem,
+ saveForm: getSalaryItemForm,
+ editForm: getSingleSalaryItemInfo
+};
+
+@inject("salaryFileStore")
+@observer
+class SalaryArchiveEditAdjLogRecordDialog extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ conditions: [], loading: false, saveLoading: false,
+ salaryArchiveItemDetail: {}, canOperator: false
+ };
+ }
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ const { id, visible, salaryFileStore: { adjForm, initAdjForm } } = nextProps;
+ if (nextProps.visible !== this.props.visible && visible) {
+ this.getSingleSalaryItemInfo(nextProps);
+ } else {
+ adjForm.resetForm();
+ initAdjForm();
+ }
+ }
+
+ getSingleSalaryItemInfo = (props) => {
+ const { salaryFileStore: { adjForm }, id, salaryArchiveId: salaryArchiveItemId } = props;
+ this.setState({ loading: true });
+ APIFox[id ? "editForm" : "saveForm"](id ? { id } : { salaryArchiveItemId })
+ .then(({ status, data }) => {
+ this.setState({ loading: false });
+ if (status) {
+ const { salaryArchiveItemForm, salaryArchiveItemDetail, canOperator } = data;
+ const { adjustReasonList } = salaryArchiveItemForm;
+ this.setState({
+ canOperator, salaryArchiveItemDetail,
+ conditions: _.map(adjCondition, item => {
+ return {
+ ...item,
+ title: getLabel(111, "调薪信息"),
+ items: _.map(item.items, o => {
+ if (getKey(o) === "adjustReason") {
+ return {
+ ...o,
+ options: _.map(adjustReasonList, it => ({ key: it.id, showname: it.content }))
+ };
+ }
+ return { ...o };
+ })
+ };
+ })
+ }, () => {
+ adjForm.initFormFields(this.state.conditions);
+ _.map(getDomkes(this.state.conditions), domkey => {
+ adjForm.updateFields({
+ [domkey]: salaryArchiveItemForm[domkey] || ""
+ });
+ });
+ });
+ }
+ }).catch(() => this.setState({ loading: false }));
+ };
+ getSalaryItemAdjustBeforeValue = (salaryItemId) => {
+ const payload = {
+ salaryArchiveId: this.props.salaryArchiveId,
+ salaryItemId
+ };
+ getSalaryItemAdjustBeforeValue(payload).then(({ status, data }) => {
+ if (status) {
+ const { salaryArchiveItemDetail } = this.state;
+ const { list } = salaryArchiveItemDetail;
+ this.setState({
+ salaryArchiveItemDetail: {
+ ...salaryArchiveItemDetail,
+ list: _.map(list, o => {
+ if (o.salaryItem === salaryItemId) {
+ return { ...o, salaryBefore: data };
+ }
+ return { ...o };
+ })
+ }
+ });
+ }
+ });
+ };
+ save = () => {
+ const { salaryFileStore: { adjForm, fetchSingleSalaryItemList, getArchiveForm } } = this.props;
+ const { pass } = this.tableEdit.refs.edit.doRequiredCheck();
+ adjForm.validateForm().then(f => {
+ if (f.isValid) {
+ if (!pass) return;
+ const { salaryArchiveId, id: salaryArchiveItemId } = this.props;
+ const { salaryArchiveItemDetail, canOperator } = this.state;
+ const { list } = salaryArchiveItemDetail;
+ let payload = {
+ ...adjForm.getFormParams(), salaryArchiveId,
+ effectiveTime: moment(new Date(adjForm.getFormParams().effectiveTime)).format("YYYY-MM-DD"),
+ salaryArchiveItems: _.map(list, o => ({ salaryItemId: o.salaryItem, adjustValue: o.adjustAfter }))
+ };
+ if (salaryArchiveItemId) {
+ payload = { ...payload, canOperator, salaryArchiveItemId };
+ }
+ this.setState({ saveLoading: true });
+ APIFox[salaryArchiveItemId ? "edit" : "save"](payload).then(({ status, errormsg }) => {
+ this.setState({ saveLoading: false });
+ if (status) {
+ message.success(getLabel(22619, "保存成功!"));
+ this.props.onCancel();
+ fetchSingleSalaryItemList({ salaryArchiveId });
+ getArchiveForm(salaryArchiveId);
+ } else {
+ message.error(errormsg);
+ }
+ }).catch(() => this.setState({ saveLoading: false }));
+ } else {
+ f.showErrors();
+ }
+ });
+ };
+
+ render() {
+ const { salaryFileStore: { adjForm }, id } = this.props;
+ const { loading, saveLoading, salaryArchiveItemDetail, conditions } = this.state;
+ const { salaryItemList, list } = salaryArchiveItemDetail;
+ const adjColumns = [
+ {
+ title: "薪资项目",
+ dataIndex: "salaryItem",
+ key: "salaryItem",
+ com: [{
+ options: _.map(salaryItemList, o => ({ key: o.id, showname: o.content })),
+ type: "SELECT", viewAttr: id ? 1 : 3, key: "salaryItem",
+ onChange: (v) => this.getSalaryItemAdjustBeforeValue(v)
+ }],
+ colSpan: 1,
+ width: "40%"
+ },
+ {
+ title: getLabel(111, "调整前"),
+ dataIndex: "salaryBefore",
+ key: "salaryBefore",
+ com: [{ label: "", type: "INPUT", viewAttr: 1, key: "salaryBefore" }],
+ colSpan: 1,
+ width: "30%"
+ },
+ {
+ title: getLabel(111, "调整后"),
+ dataIndex: "adjustAfter",
+ key: "adjustAfter",
+ com: [{ label: "", type: "INPUTNUMBER", otherParams: { precision: 3 }, viewAttr: 3, key: "adjustAfter" }],
+ colSpan: 1,
+ width: "30%"
+ }
+ ];
+ return (
+