Merge branch 'feature/v2-薪资账套-薪资项目项移动到大类新功能开发' into develop

This commit is contained in:
黎永顺 2023-03-08 18:58:44 +08:00
commit bd1de3531f
5 changed files with 153 additions and 5 deletions

View File

@ -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;
}
}
}

View File

@ -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 = [
<Button type="primary" onClick={onSubmitMoveTo}>移动</Button>,
<Button type="ghost" onClick={extraProps.onCancel}>取消</Button>
];
return (
<WeaDialog
{...extraProps} style={{ width: 440, height: 232 }}
buttons={buttons} hasScroll initLoadCss
className="moveModalWrapper"
>
<WeaSearchGroup showGroup needTigger={false}>
<WeaSelect
options={dataList}
detailtype={3} value={value}
onChange={onChangeMoveVal}
/>
</WeaSearchGroup>
</WeaDialog>
);
}
}
export default LedgerMovoTo;

View File

@ -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}
/>
</div>
);

View File

@ -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 (
<WeaSearchGroup needTigger={false} showGroup
title={<TitleComp showOperateBtn={showOperateBtn} titleName={incomeCategoriesTitleName}
@ -184,10 +226,17 @@ class LedgerSalaryItemNormal extends Component {
onHandleItemhide={(data) => onHandleItemhide(field, data)}
onChangeSelectedRowKeys={(data) => onChangeSelectedRowKeys(field, data)}
onEditFormnul={(data) => this.handleEditFormnul(field, data)}
onMoveTo={this.handleMoveTo}
/>
</WeaSearchGroup>;
})
}
<LedgerMovoTo
{...moveModalPayload}
onCancel={this.handleCancelMove}
onChangeMoveVal={this.handleChangeMoveVal}
onSubmitMoveTo={this.handleSubmitMoveTo}
/>
<LedgerSalaryItemAddModal
{...addCategoryItemsVisible}
itemGroups={dataSource}

View File

@ -48,7 +48,7 @@ class LedgerSalaryItemTable extends Component {
};
render() {
const { dataSource, onDropCategoryItem, onChangeSelectedRowKeys, onEditFormnul, selectedRowKeys } = this.props;
const { dataSource, onDropCategoryItem, onChangeSelectedRowKeys, onEditFormnul, selectedRowKeys, onMoveTo } = this.props;
const rowSelection = {
selectedRowKeys,
onChange: (selectedRowKeys) => this.setState({ selectedRowKeys }, () => {
@ -99,10 +99,20 @@ class LedgerSalaryItemTable extends Component {
</span>,
dataIndex: "itemHide",
key: "itemHide",
width: 80,
render: (text, record) => <WeaCheckbox
value={text ? String(text) : !text ? "0" : "1"}
onChange={value => this.handleChangeItem(value, record.id)}
/>
},
{
title: "操作",
dataIndex: "operate",
key: "operate",
width: 100,
render: (_, record) => (
<a href="javascript:void(0);" onClick={() => onMoveTo(record)}>移动到</a>
)
}
];
return (