2022-03-29 17:33:54 +08:00
|
|
|
|
import React from 'react'
|
|
|
|
|
|
import { inject, observer } from 'mobx-react';
|
|
|
|
|
|
import { Modal, Button, message, Switch } from 'antd'
|
2022-04-20 15:28:40 +08:00
|
|
|
|
import { WeaInputSearch, WeaTable } from 'ecCom'
|
2022-03-29 17:33:54 +08:00
|
|
|
|
import { WeaTableNew } from "comsMobx"
|
|
|
|
|
|
import { toJS } from 'mobx'
|
2022-04-27 19:27:23 +08:00
|
|
|
|
import CustomTable from '../../../components/customTable'
|
2022-03-29 17:33:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@inject('ledgerStore')
|
|
|
|
|
|
@observer
|
|
|
|
|
|
export default class AddSalaryItemModal extends React.Component {
|
|
|
|
|
|
constructor(props) {
|
|
|
|
|
|
super(props)
|
|
|
|
|
|
this.state = {
|
2022-04-20 15:28:40 +08:00
|
|
|
|
searchValue: "",
|
|
|
|
|
|
selectedRowKeys:[]
|
2022-03-29 17:33:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
componentWillMount() {
|
|
|
|
|
|
const { ledgerStore: {listSalaryItem}} = this.props;
|
|
|
|
|
|
listSalaryItem()
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 增加编辑功能,重写columns绑定事件
|
2022-04-27 19:27:23 +08:00
|
|
|
|
getColumns(columns) {
|
2022-04-20 15:28:40 +08:00
|
|
|
|
if(!columns) {
|
|
|
|
|
|
return []
|
|
|
|
|
|
}
|
2022-03-29 17:33:54 +08:00
|
|
|
|
let newColumns = '';
|
|
|
|
|
|
newColumns = columns.map(column => {
|
2022-04-27 19:27:23 +08:00
|
|
|
|
let newColumn = column;
|
|
|
|
|
|
newColumn.render = (text, record, index) => { //前端元素转义
|
|
|
|
|
|
let valueSpan = record[newColumn.dataIndex + "span"] !== undefined ? record[newColumn.dataIndex + "span"] : record[newColumn.dataIndex];
|
|
|
|
|
|
switch(newColumn.dataIndex) {
|
|
|
|
|
|
case "useDefault":
|
|
|
|
|
|
case "useInEmployeeSalary":
|
|
|
|
|
|
return <Switch checked={text == 1}/>
|
|
|
|
|
|
default:
|
|
|
|
|
|
return <div dangerouslySetInnerHTML={{ __html: valueSpan }} />
|
|
|
|
|
|
}
|
2022-03-29 17:33:54 +08:00
|
|
|
|
}
|
2022-04-27 19:27:23 +08:00
|
|
|
|
return newColumn;
|
2022-03-29 17:33:54 +08:00
|
|
|
|
});
|
|
|
|
|
|
return newColumns;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
handleAdd() {
|
|
|
|
|
|
const { ledgerStore } = this.props;
|
2022-04-20 15:28:40 +08:00
|
|
|
|
const { addSalaryItemDataSource, addItemsToGroup, addExcludeIds } = ledgerStore
|
|
|
|
|
|
const { selectedRowKeys } = this.state;
|
2022-03-29 17:33:54 +08:00
|
|
|
|
if(selectedRowKeys.length == 0) {
|
|
|
|
|
|
message.warning("未选择条目")
|
|
|
|
|
|
}
|
|
|
|
|
|
let selectItems = []
|
2022-04-19 19:55:16 +08:00
|
|
|
|
|
2022-04-20 15:28:40 +08:00
|
|
|
|
addSalaryItemDataSource.map(item => {
|
2022-03-29 17:33:54 +08:00
|
|
|
|
selectedRowKeys.map(key => {
|
|
|
|
|
|
if(item.id == key) {
|
2022-04-19 19:55:16 +08:00
|
|
|
|
item.salaryItemId = item.id
|
2022-03-29 17:33:54 +08:00
|
|
|
|
selectItems.push(item)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
2022-04-20 15:28:40 +08:00
|
|
|
|
|
2022-03-29 17:33:54 +08:00
|
|
|
|
addItemsToGroup(this.props.title, selectItems)
|
|
|
|
|
|
this.props.onCancel();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
handleSearch = (value) => {
|
|
|
|
|
|
const { ledgerStore: {listSalaryItem}} = this.props
|
|
|
|
|
|
listSalaryItem(value)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-04-20 15:28:40 +08:00
|
|
|
|
|
|
|
|
|
|
onSelectChange = selectedRowKeys => {
|
|
|
|
|
|
this.setState({ selectedRowKeys });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-04-27 19:27:23 +08:00
|
|
|
|
// 分页
|
|
|
|
|
|
handleDataPageChange(value) {
|
|
|
|
|
|
const { ledgerStore: {listSalaryItem}} = this.props;
|
|
|
|
|
|
listSalaryItem(this.state.searchValue, value)
|
|
|
|
|
|
}
|
2022-04-20 15:28:40 +08:00
|
|
|
|
|
2022-03-29 17:33:54 +08:00
|
|
|
|
render() {
|
|
|
|
|
|
const { ledgerStore } = this.props;
|
2022-04-27 19:27:23 +08:00
|
|
|
|
const { addSalaryItemDataSource, addSalaryItemColumns, addSalaryItemPageInfo,loading } = ledgerStore
|
2022-04-20 15:28:40 +08:00
|
|
|
|
const { searchValue, selectedRowKeys } = this.state;
|
|
|
|
|
|
|
|
|
|
|
|
const rowSelection = {
|
|
|
|
|
|
selectedRowKeys,
|
|
|
|
|
|
onChange: this.onSelectChange,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2022-03-29 17:33:54 +08:00
|
|
|
|
return (
|
|
|
|
|
|
<Modal
|
2022-04-27 19:27:23 +08:00
|
|
|
|
visible={this.props.visible} onCancel={() => {this.props.onCancel()}} width={900} height={600}
|
|
|
|
|
|
style={{top: 20}}
|
2022-03-29 17:33:54 +08:00
|
|
|
|
footer={null}
|
|
|
|
|
|
>
|
|
|
|
|
|
<div style={{height: "47px", lineHeight: '47px'}}>
|
|
|
|
|
|
<span style={{marginLeft: "10px", fontSize: '14px'}}>添加薪资项目</span>
|
|
|
|
|
|
<div style={{float: "right", marginRight: "40px"}}>
|
|
|
|
|
|
<Button type="primary" style={{marginRight: '10px'}} onClick={() => {this.handleAdd()}}>添加</Button>
|
|
|
|
|
|
<WeaInputSearch value={searchValue} onChange={(value) => {this.setState({searchValue: value})}} onSearch={(value) => {this.handleSearch(value)}}/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2022-04-27 19:27:23 +08:00
|
|
|
|
<div style={{margin: "10px", height: "400px", overflowY: "scroll"}}>
|
2022-04-20 15:28:40 +08:00
|
|
|
|
{/* <WeaTable // table内部做了loading加载处理,页面就不需要再加了
|
2022-03-29 17:33:54 +08:00
|
|
|
|
comsWeaTableStore={salaryItemTableStore} // table store
|
|
|
|
|
|
hasOrder={true} // 是否启用排序
|
|
|
|
|
|
needScroll={true} // 是否启用table内部列表滚动,将自适应到父级高度
|
|
|
|
|
|
getColumns={this.getColumns}
|
|
|
|
|
|
// onOperatesClick={this.onOperatesClick.bind(this)}
|
2022-04-20 15:28:40 +08:00
|
|
|
|
/> */}
|
|
|
|
|
|
|
2022-04-27 19:27:23 +08:00
|
|
|
|
<CustomTable
|
|
|
|
|
|
loading={loading}
|
2022-04-20 15:28:40 +08:00
|
|
|
|
dataSource={addSalaryItemDataSource}
|
|
|
|
|
|
columns={this.getColumns(addSalaryItemColumns)}
|
|
|
|
|
|
rowSelection={rowSelection}
|
2022-04-27 19:27:23 +08:00
|
|
|
|
pagination={{
|
|
|
|
|
|
onChange: (value) => {this.handleDataPageChange(value)},
|
|
|
|
|
|
total: addSalaryItemPageInfo.total,
|
2022-05-30 17:30:53 +08:00
|
|
|
|
showTotal: (total) => `共 ${total} 条`,
|
2022-04-27 19:27:23 +08:00
|
|
|
|
current: addSalaryItemPageInfo.pageNum
|
|
|
|
|
|
}}
|
2022-03-29 17:33:54 +08:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</Modal>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|