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