diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less b/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less index 00a620c0..b0f3e1b0 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less @@ -220,7 +220,8 @@ font-size: 20px; line-height: 20px; } -.icon-coms-leading-in-btn:hover, .icon-coms-leading-in-btn:active{ + +.icon-coms-leading-in-btn:hover, .icon-coms-leading-in-btn:active { background: transparent; } @@ -231,3 +232,15 @@ .icon-coms-leading-in-btn.ant-btn-primary { color: #55a1f8; } + + +.moveModalWrapper { + .ant-radio-group { + display: flex; + flex-direction: column; + + .ant-radio-wrapper { + margin: 4px 16px; + } + } +} diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerMovoTo.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerMovoTo.js new file mode 100644 index 00000000..e0b20c93 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerMovoTo.js @@ -0,0 +1,38 @@ +/* + * Author: 黎永顺 + * name: 薪资账套-薪资项目移动到的功能 + * Description: + * Date: 2023/3/8 + */ +import React, { Component } from "react"; +import { WeaDialog, WeaSearchGroup, WeaSelect } from "ecCom"; +import { Button } from "antd"; +import "./index.less"; + +class LedgerMovoTo extends Component { + render() { + const { dataList, value, onChangeMoveVal, onSubmitMoveTo, ...extraProps } = this.props; + const buttons = [ + , + + ]; + return ( + + + + + + ); + } +} + +export default LedgerMovoTo; + diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItem.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItem.js index c9329afa..b341b4ce 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItem.js +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItem.js @@ -262,7 +262,7 @@ class LedgerSalaryItem extends Component { return { ...it, items: [...it.items, ..._.map(items, child => { const { id: itemsId, ...extraItems } = child; - return { ...extraItems }; + return { ...extraItems, salaryItemGroupId: it.uuid }; })] }; } @@ -295,6 +295,43 @@ class LedgerSalaryItem extends Component { onSaveSalaryItem(empFields, itemGroups); }); }; + /* + * Author: 黎永顺 + * Description:确认移动薪资项目项 + * Params: + * Date: 2023/3/8 + */ + handleMoveSalaryItem = (moveToItemId, items) => { + const { itemGroups } = this.state; + const { salaryItemGroupId: deleteItemId, id, key } = items; + if (moveToItemId === deleteItemId) return; + this.setState({ + itemGroups: _.map(itemGroups, it => { + if (moveToItemId === it.uuid) { + const { id: moveId, ...extraItems } = items; + return { + ...it, + items: [...it.items, { + ...extraItems, + key: moveId, + sortedIndex: !_.isEmpty(it.items) ? it.items[it.items.length - 1].sortedIndex + 1 : 0 + }] + }; + } + if (deleteItemId === it.uuid) { + return { + ...it, + items: _.filter(it.items, filterItem => (filterItem.id !== id || filterItem.key !== key)) + }; + } + return { ...it }; + }) + }, () => { + const { empFields, itemGroups } = this.state; + const { onSaveSalaryItem } = this.props; + onSaveSalaryItem(empFields, itemGroups); + }); + }; /* * Author: 黎永顺 @@ -334,6 +371,7 @@ class LedgerSalaryItem extends Component { onChangeSelectedRowKeys={this.handleChangeSelectedRowKeys} onAddSalaryItems={this.handleAddSalaryItems} onSaveFormnul={this.handleSaveFormnul} + onMoveSalaryItem={this.handleMoveSalaryItem} /> ); diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js index 6873a769..d1017f60 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js @@ -12,6 +12,7 @@ import CategoryAddModal from "./categoryAddModal"; import LedgerSalaryItemAddModal from "./ledgerSalaryItemAddModal"; import LedgerSalaryItemTable from "./ledgerSalaryItemTable"; import FormalFormModal from "../../salaryItem/formalFormModal"; +import LedgerMovoTo from "./ledgerMovoTo"; import "./index.less"; @inject("ledgerStore") @@ -35,7 +36,11 @@ class LedgerSalaryItemNormal extends Component { }, //公式保存数据 formnulField: {}, - formnulId: "" + formnulId: "", + moveModalPayload: { + visible: false, title: "", + dataList: [], record: null, value: "" + } }; } @@ -139,6 +144,43 @@ class LedgerSalaryItemNormal extends Component { formnulId: "" }); }; + 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 } = this.props; + const { moveModalPayload } = this.state; + const { record, value } = moveModalPayload; + this.handleCancelMove(); + onMoveSalaryItem(value, record); + }; render() { const { @@ -152,7 +194,7 @@ class LedgerSalaryItemNormal extends Component { taxAgentStore } = this.props; const { showOperateBtn } = taxAgentStore; - const { categoryModal, addCategoryItemsVisible, editFormulModal } = this.state; + const { categoryModal, addCategoryItemsVisible, editFormulModal, moveModalPayload } = this.state; return ( onHandleItemhide(field, data)} onChangeSelectedRowKeys={(data) => onChangeSelectedRowKeys(field, data)} onEditFormnul={(data) => this.handleEditFormnul(field, data)} + onMoveTo={this.handleMoveTo} /> ; }) } + this.setState({ selectedRowKeys }, () => { @@ -99,10 +99,20 @@ class LedgerSalaryItemTable extends Component { , dataIndex: "itemHide", key: "itemHide", + width: 80, render: (text, record) => this.handleChangeItem(value, record.id)} /> + }, + { + title: "操作", + dataIndex: "operate", + key: "operate", + width: 100, + render: (_, record) => ( + onMoveTo(record)}>移动到 + ) } ]; return (