/* * Author: 黎永顺 * name: 薪资项目-正常薪资所得 * Description: * Date: 2022/12/13 */ import React, { Component } from "react"; import { inject, observer } from "mobx-react"; import { WeaButtonIcon, WeaInputSearch, WeaLocaleProvider, WeaSearchGroup } from "ecCom"; import { Button, Modal } from "antd"; import CategoryAddModal from "./categoryAddModal"; import LedgerSalaryItemAddModal from "./ledgerSalaryItemAddModal"; import LedgerSalaryItemTable from "./ledgerSalaryItemTable"; import LedgerMovoTo from "./ledgerMovoTo"; import "./index.less"; const getLabel = WeaLocaleProvider.getLabel; @inject("ledgerStore") @observer class LedgerSalaryItemNormal extends Component { constructor(props) { super(props); this.state = { addCategoryItemsVisible: false, categoryModal: { visible: false, title: "新增分类", name: "", id: "" }, moveModalPayload: { visible: false, title: "", dataList: [], record: null, value: "" }, salaryItemKeywords: "" }; } handleAddCategory = (name = "", id = "") => { const { categoryModal } = this.state; this.setState({ categoryModal: { ...categoryModal, visible: true, name, title: name ? "编辑分类" : "新增分类", id } }); }; handleDeleteCategory = (id) => { const { onDeleteCategroy } = this.props; Modal.confirm({ title: "信息确认", content: "确认要删除吗?", onOk: () => { onDeleteCategroy(id); } }); }; handleDeleteCategoryItems = (id, selectedRowKeys) => { const { onDeleteCategroyItems } = this.props; Modal.confirm({ title: "信息确认", content: "确认删除所选薪资项目吗?删除后此项目下的进位规则/保留小数位/公式内容会一起被清除!", onOk: () => { onDeleteCategroyItems(id, selectedRowKeys); } }); }; handleUpgo = (sortedIndex) => { const { onUpgo } = this.props; onUpgo(sortedIndex); }; handleDowngo = (sortedIndex) => { const { onDowngo } = this.props; onDowngo(sortedIndex); }; handleClose = () => { const { ledgerStore } = this.props; const { categoryForm: form } = ledgerStore; const { categoryModal } = this.state; this.setState({ categoryModal: { ...categoryModal, visible: false, title: "新增分类", name: "", id: "" } }, () => form.resetForm()); }; handleCancelMove = () => { this.setState({ moveModalPayload: { visible: false, title: "", dataList: [], value: "", record: null } }); }; handleChangeMoveVal = (value) => { const { moveModalPayload } = this.state; this.setState({ moveModalPayload: { ...moveModalPayload, value } }); }; handleMoveTo = (record) => { const { salaryItemGroupId } = record; const { dataSource } = this.props; this.setState({ moveModalPayload: { visible: true, title: "移动到", value: salaryItemGroupId !== "0" ? salaryItemGroupId : (_.find(dataSource, it => it.name === "未分类").id || _.find(dataSource, it => it.name === "未分类").uuid), record, dataList: _.map(dataSource, item => ({ key: item.id || item.uuid, showname: item.name })) } }); }; handleSubmitMoveTo = () => { const { onMoveSalaryItem, dataSource } = this.props; const { moveModalPayload } = this.state; const { record, value } = moveModalPayload; this.handleCancelMove(); onMoveSalaryItem(value, record, _.find(dataSource, it => (it.id === value || it.uuid === value)).name); }; render() { const { editId, saveSalarySobId, dataSource, onSaveCategory, onDropCategoryItem, onHandleItemhide, onChangeSelectedRowKeys, onAddSalaryItems, incomeCategoriesTitleName, taxAgentStore } = this.props; const { showOperateBtn } = taxAgentStore; const { categoryModal, addCategoryItemsVisible, moveModalPayload, salaryItemKeywords } = this.state; const newDateSource = _.map(dataSource, item => { return { ...item, items: _.filter(item.items || [], child => (child.name.indexOf(salaryItemKeywords) !== -1 || child.formulaContent.indexOf(salaryItemKeywords) !== -1)) }; }); return ( this.setState({ salaryItemKeywords: val })} />}>
{ _.map(newDateSource, field => { const { items, id, uuid } = field; return this.setState({ addCategoryItemsVisible: { visible: true, id } })} onUpgo={this.handleUpgo} onDowngo={this.handleDowngo} /> } > childItem.id === id || childItem.uuid === uuid).items} salarySobId={editId || saveSalarySobId} selectedRowKeys={field.selectedRowKeys || []} onDropCategoryItem={(data) => onDropCategoryItem(field, data)} onHandleItemhide={(data) => onHandleItemhide(field, data)} onChangeSelectedRowKeys={(data) => onChangeSelectedRowKeys(field, data)} onMoveTo={this.handleMoveTo} /> ; }) } this.setState({ addCategoryItemsVisible: { visible: false, id: "" } })} onAddSalaryItems={onAddSalaryItems} />
); } } export default LedgerSalaryItemNormal; const TitleNormalComp = (props) => { const { name, onEditCategory, onDeleteCategory, sortedIndex, dataSourceLen, uuid, onUpgo, onDowngo, selectedRowKeys = [], onDeleteCategoryItems, onAddCategoryItems, items, showOperateBtn } = props; return
{name} { name !== "未分类" && showOperateBtn && onEditCategory(name, uuid)}/> } { name !== "未分类" && _.isEmpty(items) && showOperateBtn && onDeleteCategory(uuid)}/> } { sortedIndex !== 0 && showOperateBtn && onUpgo(sortedIndex)}/> } { sortedIndex !== dataSourceLen - 1 && showOperateBtn && onDowngo(sortedIndex)}/> }
{ showOperateBtn && onDeleteCategoryItems(uuid, selectedRowKeys)}/> onAddCategoryItems(uuid)}/> }
; }; const TitleComp = (props) => { const { onAddCategory, titleName, showOperateBtn, salaryItemKeywords, onChange } = props; return
{titleName}
{ showOperateBtn && }
; };