From 15d3eb6e1588d9a85ff8c8367edb947a8efebafb Mon Sep 17 00:00:00 2001
From: MustangDeng <670124965@qq.com>
Date: Thu, 7 Apr 2022 09:41:16 +0800
Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=E5=AF=B9=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pc4mobx/hrmSalary/apis/archive.js | 48 ++++++
.../hrmSalary/components/EditTable/index.js | 1 -
.../pages/salaryFile/changeSalaryModal.js | 139 +++++++++++++++++-
pc4mobx/hrmSalary/pages/salaryFile/index.js | 1 +
.../pages/salaryFile/saralyFileViewSlide.js | 13 +-
.../pages/salaryFile/slideSalaryItem.js | 7 +
pc4mobx/hrmSalary/stores/salaryFile.js | 108 +++++++++++++-
7 files changed, 304 insertions(+), 13 deletions(-)
diff --git a/pc4mobx/hrmSalary/apis/archive.js b/pc4mobx/hrmSalary/apis/archive.js
index 5140cc40..08e77645 100644
--- a/pc4mobx/hrmSalary/apis/archive.js
+++ b/pc4mobx/hrmSalary/apis/archive.js
@@ -165,3 +165,51 @@ export const exportSalaryArchive = (ids = "") => {
window.URL.revokeObjectURL(url);
}))
}
+
+// 调整记录-个税扣缴义务人列表
+export const adjustRecordTaxAgentList = (params) => {
+ return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/taxAgentList', {
+ method: 'POST',
+ mode: 'cors',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(params)
+ }).then(res => res.json())
+}
+
+// 调整记录-薪资项目-列表
+export const adjustRecordSalaryItemList = (params) => {
+ return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/salaryItemList', {
+ method: 'POST',
+ mode: 'cors',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(params)
+ }).then(res => res.json())
+}
+
+// 调整记录-薪资项目-单个
+export const singleSalaryItemList = (params) => {
+ return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/singleSalaryItemList', {
+ method: 'POST',
+ mode: 'cors',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(params)
+ }).then(res => res.json())
+}
+
+// 调整记录-个税扣缴义务人-单个
+export const singleTaxAgentList = (params) => {
+ return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/singleTaxAgentList', {
+ method: 'POST',
+ mode: 'cors',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(params)
+ }).then(res => res.json())
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/components/EditTable/index.js b/pc4mobx/hrmSalary/components/EditTable/index.js
index 8cc7f433..b747078b 100644
--- a/pc4mobx/hrmSalary/components/EditTable/index.js
+++ b/pc4mobx/hrmSalary/components/EditTable/index.js
@@ -60,7 +60,6 @@ export default class EditableTable extends React.Component {
{text}
)
-
}
if (item.children) {
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/changeSalaryModal.js b/pc4mobx/hrmSalary/pages/salaryFile/changeSalaryModal.js
index f86f72ed..13204d90 100644
--- a/pc4mobx/hrmSalary/pages/salaryFile/changeSalaryModal.js
+++ b/pc4mobx/hrmSalary/pages/salaryFile/changeSalaryModal.js
@@ -1,20 +1,129 @@
import React from 'react'
import { Row, Col, Table, Modal, Icon } from 'antd'
-import { WeaInput, WeaSelect } from "ecCom"
+import { WeaInput, WeaSelect, WeaDatePicker } from "ecCom"
import { changeSalaryModalColumns, dataSource } from './columns'
import "./index.less"
-
+import { inject, observer } from 'mobx-react';
+import moment from 'moment'
+
+@inject('salaryFileStore')
+@observer
export default class ChangeSalaryModal extends React.Component {
+ constructor(props) {
+ super(props)
+ this.state = {
+ inited: false,
+ salaryArchiveItems: [
+ {
+ key: "1",
+ salaryItem: "",
+ before: "",
+ after: ""
+ }
+ ],
+ request: {
+ effectiveTime: moment(new Date()).format("YYYY-MM-DD"),
+ salaryArchiveId: this.props.currentId,
+ adjustReason: "",
+ description: ""
+ }
+ }
+ }
+
+ // 改变回调
+ handleChange(params) {
+ let request = {...this.state.request, ...params}
+ this.setState({
+ request
+ })
+ }
+
+ // 表格中薪资项目选择项下拉,改变事件
+ handleSalaryItemChange(item, value) {
+ const { salaryArchiveItems} = this.state;
+ let dataSource = [ ...salaryArchiveItems ]
+ dataSource.map(i => {
+ if(i.key == item.key) {
+ i.salaryItem = value;
+ }
+ })
+ this.setState({
+ salaryArchiveItems: dataSource
+ })
+ }
+
+ // 调整后表格字段变化回调
+ handleSalaryAfterItemChange(record, value) {
+ const { } = this.state;
+
+ }
+
+ // 解析Columns
+ getColumns() {
+ const {salaryFileStore: {salaryItemChangeForm} } = this.props;
+ const { salaryItemList } = salaryItemChangeForm
+ let {columns} = salaryItemChangeForm
+ return columns.map(item => {
+ item = {...item}
+ if(item.dataIndex == "salaryItem") {
+ item.render = (text, record) => {
+ return (
+ {
+ this.handleSalaryItemChange(record, value)
+ }}/>
+ )
+ }
+ }else if(item.dataIndex == "after"){
+ item.render = (text, record) => {
+ return (
+ {
+ this.handleSalaryAfterItemChange(record, value)
+ }}/>
+ )
+ }
+ }
+ return item;
+ })
+ }
+
+ handleAddItemClick() {
+ const { } = this.props;
+ }
+
+ componentWillMount() {
+ const { salaryFileStore: {getSalaryItemForm}, currentId} = this.props;
+ getSalaryItemForm(currentId).then(() => {this.setState({
+ inited: true
+ })})
+ }
+
+ // 保存
+ handleSave() {
+
+ }
+
render() {
+ const { salaryFileStore: {salaryItemChangeForm} } = this.props;
+ const { request, salaryArchiveItems } = this.state;
+ const { effectiveTime, adjustReason, description } = request
return (
- {this.props.onCancel()}}>
+ {this.props.onCancel()}}
+ footer={}
+ >
生效日期
-
+ {this.handleChange({ effectiveTime: value })}}
+ />
@@ -22,7 +131,14 @@ export default class ChangeSalaryModal extends React.Component {
调整原因
-
+ {
+ this.state.inited && {this.handleChange({ adjustReason: value })}}
+ />
+ }
@@ -30,7 +146,12 @@ export default class ChangeSalaryModal extends React.Component {
说明
-
+
+ {this.handleChange({description: value})}}
+ />
@@ -39,13 +160,15 @@ export default class ChangeSalaryModal extends React.Component {
调薪明细
-
+ {this.handleAddItemClick()}}/>
-
+ {
+ this.state.inited &&
+ }
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/index.js b/pc4mobx/hrmSalary/pages/salaryFile/index.js
index e4b7121f..1b55d525 100644
--- a/pc4mobx/hrmSalary/pages/salaryFile/index.js
+++ b/pc4mobx/hrmSalary/pages/salaryFile/index.js
@@ -303,6 +303,7 @@ export default class SalaryFile extends React.Component {
{
this.state.changeSalaryVisible && {this.setState({changeSalaryVisible: false})}}
/>
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/saralyFileViewSlide.js b/pc4mobx/hrmSalary/pages/salaryFile/saralyFileViewSlide.js
index f2d32e89..0b6507a3 100644
--- a/pc4mobx/hrmSalary/pages/salaryFile/saralyFileViewSlide.js
+++ b/pc4mobx/hrmSalary/pages/salaryFile/saralyFileViewSlide.js
@@ -30,8 +30,14 @@ export default class SalaryFileViewSlide extends React.Component {
}
componentWillMount() {
- const { salaryFileStore: {getArchiveForm} } = this.props;
+ const { salaryFileStore: {getArchiveForm, fetchSingleSalaryItemList} } = this.props;
getArchiveForm(this.props.id)
+ fetchSingleSalaryItemList({salaryArchiveId: this.props.id})
+ }
+
+ // tab页签切换回调
+ handleTabChange(item) {
+ this.setState({ selectedTab: item.key})
}
render() {
@@ -104,8 +110,9 @@ export default class SalaryFileViewSlide extends React.Component {
}
-
- {this.setState({ selectedTab: item.key})}}/>} items={[]} onVisibleChange={(value) => {this.setState({salaryItemVisible: value})}}/>
+ {this.handleTabChange(item)}}/>} items={[]} onVisibleChange={(value) => {this.setState({salaryItemVisible: value})}}/>
+
+
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/slideSalaryItem.js b/pc4mobx/hrmSalary/pages/salaryFile/slideSalaryItem.js
index 1d0de073..d36e9030 100644
--- a/pc4mobx/hrmSalary/pages/salaryFile/slideSalaryItem.js
+++ b/pc4mobx/hrmSalary/pages/salaryFile/slideSalaryItem.js
@@ -2,9 +2,16 @@ import React from 'react'
import { dataSource, slideSalaryItemColumns } from "./columns"
import { WeaInputSearch } from 'ecCom'
import { Table } from 'antd'
+import { inject, observer } from 'mobx-react';
import "./index.less"
+@inject('salaryFileStore')
+@observer
export default class SlideSalaryItem extends React.Component {
+ componentWillMount() {
+ const { salaryFileStore: {adjustRecordSalaryItemList}} = this.props;
+ adjustRecordSalaryItemList({})
+ }
render() {
return (
diff --git a/pc4mobx/hrmSalary/stores/salaryFile.js b/pc4mobx/hrmSalary/stores/salaryFile.js
index dc2f9efa..13250a8c 100644
--- a/pc4mobx/hrmSalary/stores/salaryFile.js
+++ b/pc4mobx/hrmSalary/stores/salaryFile.js
@@ -21,6 +21,11 @@ export class salaryFileStore {
@observable dataSource = [];
@observable detailForm= {}
@observable salaryArchiveTaxAgentForm = {}
+ @observable salaryItemChangeForm = {}
+ @observable taxAgentList = []
+ @observable salaryItemList = []
+ @observable singleSalaryItemList = []
+ @observable singleTaxAgentList = []
// 初始化操作
@@ -197,7 +202,108 @@ export class salaryFileStore {
}
})
})
-
}
+ // 薪资档案-获取薪资项目调整表单
+ @action
+ getSalaryItemForm = (id) => {
+ return new Promise((resolve, reject) => {
+ API.getSalaryItemForm({salaryArchiveItemId: id}).then(res => {
+ if(res.status) {
+ this.salaryItemChangeForm = {}
+ this.salaryItemChangeForm.adjustReasonList = res.data.salaryArchiveItemForm.adjustReasonList.map(item => {
+ item = {...item}
+ item.key = item.id;
+ item.showname = item.content
+ item.selected = false
+ return item
+ })
+
+ this.salaryItemChangeForm.salaryItemList = res.data.salaryArchiveItemDetail.salaryItemList.map(item => {
+ item = {...item}
+ item.key = item.id;
+ item.showname = item.content
+ item.selected = false
+ return item
+ })
+
+ this.salaryItemChangeForm.columns = res.data.salaryArchiveItemDetail.columns.map(item => {
+ let result = {}
+ result.title = item
+ if(item == "薪资项目") {
+ result.dataIndex = "salaryItem"
+ result.key = "salaryItem"
+ }
+ if(item == "调整前") {
+ result.dataIndex = "before"
+ result.key = "before"
+ }
+ if(item == "调整后") {
+ result.dataIndex = "after"
+ result.key = "after"
+ }
+ return result
+ })
+ resolve()
+ } else {
+ message.error(res.errormsg || "获取失败")
+ reject()
+ }
+ })
+ })
+ }
+
+ // 调整记录 个税义务人调整列表
+ @action
+ adjustRecordTaxAgentList = (params) => {
+ API.adjustRecordTaxAgentList(params).then(res => {
+ if(res.status) {
+ this.taxAgentList = res.data
+ } else {
+ message.error(res.errormsg || "获取失败")
+ }
+ })
+ }
+
+ // 调整记录 薪资项目调整记录
+ @action
+ adjustRecordSalaryItemList = (params) => {
+ API.adjustRecordSalaryItemList(params).then(res => {
+ if(res.status) {
+ this.salaryItemList = res.data;
+ } else {
+ message.error(res.errormsg || "获取失败")
+ }
+ })
+ }
+
+ // slide 薪资项目列表
+ @action
+ fetchSingleSalaryItemList = (params) => {
+ API.singleSalaryItemList(params).then(res => {
+ if(res.status) {
+ this.singleSalaryItemList = res.data
+ } else {
+ message.error(res.errormsg || "获取失败");
+ }
+ })
+ }
+
+ // slide 个税义务人列表
+ @action
+ fetchSingleTaxAgentList = (params) => {
+ API.singleTaxAgentList(params).then(res => {
+ if(res.status) {
+ this.singleTaxAgentList = res.data
+ } else {
+ message.error(res.errormsg || "获取失败")
+ }
+ })
+ }
+
+
+
+
+
+
}
\ No newline at end of file