产品-薪资账套薪资项目项添加编辑的功能

This commit is contained in:
黎永顺 2023-07-26 14:10:55 +08:00
parent c9c79460c7
commit 3f63b26184
3 changed files with 57 additions and 25 deletions

View File

@ -6,7 +6,7 @@
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaButtonIcon, WeaSearchGroup } from "ecCom";
import { WeaButtonIcon, WeaInputSearch, WeaLocaleProvider, WeaSearchGroup } from "ecCom";
import { Button, Modal } from "antd";
import CategoryAddModal from "./categoryAddModal";
import LedgerSalaryItemAddModal from "./ledgerSalaryItemAddModal";
@ -14,6 +14,8 @@ import LedgerSalaryItemTable from "./ledgerSalaryItemTable";
import LedgerMovoTo from "./ledgerMovoTo";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("ledgerStore")
@observer
class LedgerSalaryItemNormal extends Component {
@ -30,7 +32,8 @@ class LedgerSalaryItemNormal extends Component {
moveModalPayload: {
visible: false, title: "",
dataList: [], record: null, value: ""
}
},
salaryItemKeywords: ""
};
}
@ -140,15 +143,23 @@ class LedgerSalaryItemNormal extends Component {
taxAgentStore
} = this.props;
const { showOperateBtn } = taxAgentStore;
const { categoryModal, addCategoryItemsVisible, moveModalPayload } = this.state;
const { categoryModal, addCategoryItemsVisible, moveModalPayload, salaryItemKeywords } = this.state;
const newDateSource = _.map(dataSource, item => {
return {
...item,
items: _.filter(item.items || [], child => child.name.indexOf(salaryItemKeywords) !== -1)
};
});
return (
<WeaSearchGroup needTigger={false} showGroup
title={<TitleComp showOperateBtn={showOperateBtn} titleName={incomeCategoriesTitleName}
onAddCategory={this.handleAddCategory}/>}>
onAddCategory={this.handleAddCategory} keyword={salaryItemKeywords}
onChange={val => this.setState({ salaryItemKeywords: val })}
/>}>
<div className="categroyListWrapper">
{
_.map(dataSource, field => {
const { items } = field;
_.map(newDateSource, field => {
const { items, id, uuid } = field;
return <WeaSearchGroup
needTigger showGroup
title={
@ -166,7 +177,9 @@ class LedgerSalaryItemNormal extends Component {
}
>
<LedgerSalaryItemTable
dataSource={items} salarySobId={editId || saveSalarySobId}
tableData={items}
dataSource={_.find(dataSource, childItem => childItem.id === id || childItem.uuid === uuid).items}
salarySobId={editId || saveSalarySobId}
selectedRowKeys={field.selectedRowKeys || []}
onDropCategoryItem={(data) => onDropCategoryItem(field, data)}
onHandleItemhide={(data) => onHandleItemhide(field, data)}
@ -240,12 +253,17 @@ const TitleNormalComp = (props) => {
};
const TitleComp = (props) => {
const { onAddCategory, titleName, showOperateBtn } = props;
const { onAddCategory, titleName, showOperateBtn, salaryItemKeywords, onChange } = props;
return <div className="titleWrapper">
<div><span className="topTitle active">{titleName}</span></div>
{
showOperateBtn &&
<Button type="ghost" onClick={() => onAddCategory()}>新增分类</Button>
}
<div>
{
showOperateBtn &&
<Button type="ghost" onClick={() => onAddCategory()} style={{ marginRight: 10 }}>新增分类</Button>
}
<WeaInputSearch value={salaryItemKeywords} onChange={onChange}
placeholder={getLabel(111, "请输入薪资项目名称")}
/>
</div>
</div>;
};

View File

@ -88,8 +88,8 @@ class LedgerSalaryItemTable extends Component {
const {
itemHide: hideDefault,
valueType, name, description,
roundingMode, formulaId, dataType,
pattern, canEdit, formulaContent
roundingMode, formulaId, dataType, useInEmployeeSalary,
pattern, canEdit, formulaContent, originFormulaContent, originSqlContent
} = _.find(dataSource, it => it.salaryItemId === salaryItemId);
const { data: userStatusList } = await commonEnumList({ enumClass: "com.engine.salary.enums.sicategory.SharedTypeEnum" });
if (id) {
@ -101,6 +101,7 @@ class LedgerSalaryItemTable extends Component {
visible: true,
request: {
...data,
useInEmployeeSalary: !_.isNil(data.useInEmployeeSalary) ? data.useInEmployeeSalary : "0",
hideDefault: _.isNil(hideDefault) ? "0" : hideDefault,
valueType,
roundingMode,
@ -121,9 +122,9 @@ class LedgerSalaryItemTable extends Component {
canEdit, dataType, description,
formulaContent, formulaId, name,
hideDefault: _.isNil(hideDefault) ? "0" : hideDefault,
valueType,
roundingMode,
pattern
valueType, roundingMode, pattern,
originFormulaContent, originSqlContent,
useInEmployeeSalary: !_.isNil(useInEmployeeSalary) ? useInEmployeeSalary : "0"
},
record,
userStatusList: _.map(userStatusList, it => ({ key: it.value.toString(), showname: it.defaultLabel }))
@ -221,6 +222,7 @@ class LedgerSalaryItemTable extends Component {
render() {
const { salaryItemPayload, editFormulModal } = this.state;
const {
tableData,
dataSource,
onDropCategoryItem,
onChangeSelectedRowKeys,
@ -236,7 +238,7 @@ class LedgerSalaryItemTable extends Component {
disabled: !record.canDelete
})
};
const checkValue = (!_.isEmpty(dataSource) && _.every(dataSource, it => it.itemHide && it.itemHide === "1")) ? "1" : "0";
const checkValue = (!_.isEmpty(tableData) && _.every(tableData, it => it.itemHide && it.itemHide === "1")) ? "1" : "0";
const columns = [
{
title: "名称",
@ -296,7 +298,7 @@ class LedgerSalaryItemTable extends Component {
<WeaTable
rowKey={record => record.id || record.key}
rowSelection={rowSelection}
dataSource={dataSource}
dataSource={tableData}
columns={columns}
onRow={(record, index) => ({
index,
@ -304,7 +306,7 @@ class LedgerSalaryItemTable extends Component {
})}
pagination={false}
onDrop={onDropCategoryItem}
draggable={true}
draggable={dataSource.length === tableData.length}
/>
<LedgerSalaryItemEditSlide
{...salaryItemPayload}

View File

@ -5,9 +5,20 @@
* Date: 2023/2/9
*/
import React, { Component } from "react";
import { WeaCheckbox, WeaFormItem, WeaInput, WeaInputNumber, WeaSearchGroup, WeaSelect, WeaTextarea } from "ecCom";
import {
WeaCheckbox,
WeaFormItem,
WeaInput,
WeaInputNumber,
WeaLocaleProvider,
WeaSearchGroup,
WeaSelect,
WeaTextarea
} from "ecCom";
import { salaryItemFields, valTakeOptions } from "./columns";
const getLabel = WeaLocaleProvider.getLabel;
class SalaryItemForm extends Component {
constructor(props) {
super(props);
@ -19,7 +30,7 @@ class SalaryItemForm extends Component {
componentDidMount() {
const { salaryItemFieldsList } = this.state;
const { request, editable, record, isAdd = false, taxAgentAdminOption, isLedger = false } = this.props;
const { systemType = "", sharedType, valueType } = request;
const { systemType = "", sharedType, valueType, useInEmployeeSalary } = request;
this.setState({
salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
const { key } = item;
@ -56,18 +67,19 @@ class SalaryItemForm extends Component {
case "hideDefault":
return {
...item,
viewAttr: 2
viewAttr: 2,
tip: isLedger ? getLabel(111, "开启后,薪资核算不会展示该项目,但是不影响该项目的核算值") : item.tip
};
case "valueType":
return {
...item,
viewAttr: (isLedger && record.canEdit) || (editable && record.canEdit) || isAdd ? 2 : 1
viewAttr: (useInEmployeeSalary.toString() === "0" && ((isLedger && record.canEdit) || (editable && record.canEdit) || isAdd)) ? 2 : 1
};
case "formulaContent":
return {
...item,
key: valueType.toString() === "3" ? "originSqlContent" : "originFormulaContent",
display: valueType && (valueType.toString() === "2" || valueType.toString() === "3"),
display: useInEmployeeSalary.toString() === "0" && valueType && (valueType.toString() === "2" || valueType.toString() === "3"),
viewAttr: (isLedger && record.canEdit) || (editable && record.canEdit) || isAdd ? 2 : 1
};
default: