import React from "react"; import { Button, Icon } from "antd"; import { WeaHelpfulTip } from "ecCom"; import "./index.less"; import AddCategoryModal from "./step3/AddCategoryModal"; import { inject, observer } from "mobx-react"; import { toJS } from "mobx"; import CanMoveItem from "./step3/canMoveItem"; import UserInfoSelected from "./step3/UserInfoSelect"; import PreviewSalaryModal from "./step3/previewSalaryModal"; @inject("ledgerStore") @observer export default class SalaryItemForm extends React.Component { constructor(props) { super(props); this.state = { addCategoryVisible: false, previewVisible: false, date: '' }; const { ledgerStore: { empFieldList } } = this.props; empFieldList(); } componentWillMount() { const { ledgerStore: { getLedgerItemForm } } = this.props; getLedgerItemForm(); } handleAddCategorySave(name) { const { ledgerStore: { addItemGroup } } = this.props; addItemGroup(name); } handleCanMoveItemChange(dataSource, item) { const { ledgerStore: { itemGroups, setItemGroups } } = this.props; let groups = [...itemGroups]; groups.map(i => { if (i.title == item.title) { item.items = dataSource; } }); setItemGroups(groups); this.setState({date: new Date()}) } // 薪资项目 handleItemDataSourceChange(dataSource, item) { const { ledgerStore: { itemGroups, setItemGroups } } = this.props; let newItemGroups = [...itemGroups]; newItemGroups.map(group => { if (group.id == item.id) { group.items = dataSource; } }); setItemGroups(newItemGroups); } // 预览点击事件 handlePreview() { this.setState({ previewVisible: true }); } // 修改薪资分类标题回调 handleItemTitleChange(item, value) { const { ledgerStore: { itemGroups, setItemGroups } } = this.props; let newItemGroups = [...itemGroups]; newItemGroups.map(group => { if (group.id == item.id) { group.name = value; } }); setItemGroups(newItemGroups); } // 删除分类回调 handleGroupDelete(item) { const { ledgerStore: { itemGroups, setItemGroups } } = this.props; let newItemGroups = [...itemGroups]; newItemGroups = newItemGroups.filter(group => group.id !== item.id); setItemGroups(newItemGroups); } // 修改项目组数据顺序 handleUpgo = (index) => { const { ledgerStore: { itemGroups, setItemGroups } } = this.props; let newItemGroups = [...itemGroups]; if (index !== 0) { newItemGroups[index] = newItemGroups.splice(index - 1, 1, newItemGroups[index])[0]; } else { newItemGroups.push(newItemGroups.shift()); } setItemGroups(_.map(newItemGroups, (it, idx) => ({ ...it, sortedIndex: it.sortedIndex ? idx : undefined }))); }; handleDowngo = (index) => { const { ledgerStore: { itemGroups, setItemGroups } } = this.props; let newItemGroups = [...itemGroups]; if (index !== newItemGroups.length - 1) { newItemGroups[index] = newItemGroups.splice(index + 1, 1, newItemGroups[index])[0]; } else { newItemGroups.unshift(newItemGroups.splice(index, 1)[0]); } setItemGroups(_.map(newItemGroups, (it, idx) => ({ ...it, sortedIndex: it.sortedIndex ? idx : undefined }))); }; render() { const { ledgerStore: { itemGroups, setAddCategoryVisible, addCategoryVisible, baseInfoRequest } } = this.props; const { canEdit = "true" } = baseInfoRequest; const { previewVisible } = this.state; return (
员工基本信息
{itemGroups && itemGroups.map((item, index) => { if (item.items) { return ( { this.handleItemDataSourceChange(dataSource, item); }} title={item.name} sortedIndex={index} onGroupDelete={() => { this.handleGroupDelete(item); }} onTitleChange={value => { this.handleItemTitleChange(item, value); }} onChange={dataSource => { this.handleCanMoveItemChange(dataSource, item); }} /> ); } return ""; })} {addCategoryVisible && { this.handleAddCategorySave(value); }} visible={addCategoryVisible} onCancel={() => { setAddCategoryVisible(false); }} />} {previewVisible && { this.setState({ previewVisible: false }); }} />}
); } }