Merge branch 'feature/2.8.3.2307.02-薪资项目添加默认隐藏的功能' into release/2.8.3.2307.02

This commit is contained in:
黎永顺 2023-07-20 13:44:54 +08:00
commit f3712e03ef
8 changed files with 114 additions and 58 deletions

View File

@ -6,13 +6,25 @@
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaCheckbox, WeaFormItem, WeaHelpfulTip, WeaInput, WeaSelect, WeaSlideModal, WeaTextarea, WeaInputNumber } from "ecCom";
import {
WeaCheckbox,
WeaFormItem,
WeaHelpfulTip,
WeaInput,
WeaInputNumber,
WeaLocaleProvider,
WeaSelect,
WeaSlideModal,
WeaTextarea
} from "ecCom";
import { message, Modal } from "antd";
import SlideModalTitle from "../../../components/slideModalTitle";
import { getSalaryFieldForm, saveSalaryField } from "../../../apis/fieldManage";
import { commonEnumList } from "../../../apis/payrollFiles";
import { dataTypeOptions, patternOptions, roundingModeOptions } from "../../salaryItem/options";
const getLabel = WeaLocaleProvider.getLabel;
@inject("taxAgentStore")
@observer
class FieldSlide extends Component {
@ -54,6 +66,7 @@ class FieldSlide extends Component {
const {
name,
useDefault,
hideDefault,
useInEmployeeSalary,
dataType,
description,
@ -68,6 +81,7 @@ class FieldSlide extends Component {
name,
useInEmployeeSalary: useInEmployeeSalary ? useInEmployeeSalary.toString() : "0",
useDefault: useDefault ? useDefault.toString() : "0",
hideDefault: hideDefault ? hideDefault.toString() : "0",
dataType,
description,
sortedIndex,
@ -120,6 +134,7 @@ class FieldSlide extends Component {
const {
name,
useDefault,
hideDefault,
useInEmployeeSalary,
dataType,
description,
@ -133,6 +148,7 @@ class FieldSlide extends Component {
name,
useInEmployeeSalary: Number(useInEmployeeSalary),
useDefault: Number(useDefault),
hideDefault: Number(hideDefault),
dataType,
description,
sortedIndex,
@ -168,6 +184,7 @@ class FieldSlide extends Component {
name: "",
useInEmployeeSalary: "1",
useDefault: "0",
hideDefault: "0",
sharedType: "0",
taxAgentIds: "",
dataType: "number",
@ -191,6 +208,7 @@ class FieldSlide extends Component {
name,
useInEmployeeSalary,
useDefault,
hideDefault,
shareTypeList,
sharedType,
taxAgentIds,
@ -250,6 +268,17 @@ class FieldSlide extends Component {
placement="topLeft"
/>
</WeaFormItem>
<WeaFormItem label={getLabel(111, "核算时隐藏")} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
<WeaCheckbox
value={hideDefault}
display="switch"
onChange={value => this.handleChangeFields("hideDefault", value)}
/>
<WeaHelpfulTip style={{ marginLeft: "10px" }}
title={getLabel(111, "提示:开启后,在薪资账套中添加该项目时,默认勾选隐藏且在核算时隐藏该薪资项目,可在具体薪资账套中设置是否隐藏")}
placement="topLeft"
/>
</WeaFormItem>
<WeaFormItem label="可见性" labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
<WeaSelect
value={sharedType}

View File

@ -63,7 +63,7 @@ class FieldTable extends Component {
title: "操作"
}], item => {
const { dataIndex } = item;
if (dataIndex === "useDefault") {
if (dataIndex === "useDefault" || dataIndex === "hideDefault") {
item.render = (text) => (<Switch checked={text === 1} disabled/>);
} else if (dataIndex === "operate") {
item.width = 120;

View File

@ -74,8 +74,9 @@ export default class LedgerSalaryItemAddModal extends React.Component {
let valueSpan = record[newColumn.dataIndex + "span"] !== undefined ? record[newColumn.dataIndex + "span"] : record[newColumn.dataIndex];
switch (newColumn.dataIndex) {
case "useDefault":
case "hideDefault":
case "useInEmployeeSalary":
return <Switch checked={text == 1}/>;
return <Switch checked={text === 1}/>;
default:
return <div dangerouslySetInnerHTML={{ __html: valueSpan }}/>;
}
@ -96,6 +97,7 @@ export default class LedgerSalaryItemAddModal extends React.Component {
if (item.id === key) {
item.salaryItemId = item.id;
item.key = item.id;
item.itemHide = item.hideDefault;
item.sortedIndex = (!_.isEmpty(_.maxBy(arrItems, it => it.sortedIndex)) ? _.maxBy(arrItems, it => it.sortedIndex).sortedIndex : 0) + keyIdx + 1;
selectItems.push(item);
}

View File

@ -1,5 +1,7 @@
import { WeaLocaleProvider } from "ecCom";
import { dataTypeOptions, patternOptions, roundingModeOptions } from "./options";
const getLabel = WeaLocaleProvider.getLabel;
export const columns = [
{
title: "名称",
@ -54,11 +56,11 @@ export const columns = [
];
export const salaryItemFields = [
{
key: 'name',
label: '名称',
type: 'INPUT',
key: "name",
label: "名称",
type: "INPUT",
viewAttr: 3,
tip: ''
tip: ""
},
// {
// key: 'useInEmployeeSalary',
@ -68,63 +70,70 @@ export const salaryItemFields = [
// tip: '提示:开启后,该薪资项目不可删除或设为无效,取值方式会默认置为输入'
// },
{
key: 'useDefault',
label: '默认使用',
type: 'SWITCH',
key: "useDefault",
label: "默认使用",
type: "SWITCH",
viewAttr: 2,
tip: '提示:开启后,每个薪资方案都有该薪资项目,可在具体薪资方案中删除'
tip: "提示:开启后,每个薪资方案都有该薪资项目,可在具体薪资方案中删除"
},
{
key: 'sharedType',
label: '可见性',
type: 'SELECT',
key: "hideDefault",
label: getLabel(111, "核算时隐藏"),
type: "SWITCH",
viewAttr: 2,
tip: ''
tip: getLabel(111, "提示:开启后,在薪资账套中添加该项目时,默认勾选隐藏且在核算时隐藏该薪资项目,可在具体薪资账套中设置是否隐藏")
},
{
key: 'taxAgentIds',
label: '可见性范围',
type: 'SELECT',
key: "sharedType",
label: "可见性",
type: "SELECT",
viewAttr: 2,
tip: ""
},
{
key: "taxAgentIds",
label: "可见性范围",
type: "SELECT",
viewAttr: 3,
tip: ''
tip: ""
},
{
key: 'dataType',
label: '字段类型',
type: 'SELECT',
key: "dataType",
label: "字段类型",
type: "SELECT",
viewAttr: 3,
options: dataTypeOptions,
tip: ''
tip: ""
},
{
key: 'roundingMode',
label: '舍入规则',
type: 'SELECT',
key: "roundingMode",
label: "舍入规则",
type: "SELECT",
viewAttr: 2,
options: roundingModeOptions,
tip: ''
tip: ""
},
{
key: 'pattern',
label: '保留小数位',
type: 'SELECT',
key: "pattern",
label: "保留小数位",
type: "SELECT",
viewAttr: 2,
options: patternOptions,
tip: ''
tip: ""
},
{
key: 'valueType',
label: '取值方式',
type: 'RADIO',
key: "valueType",
label: "取值方式",
type: "RADIO",
viewAttr: 2,
tip: ''
tip: ""
},
{
key: 'formulaContent',
label: '公式',
type: 'INPUT',
key: "formulaContent",
label: "公式",
type: "INPUT",
viewAttr: 2,
tip: ''
tip: ""
},
{
key: "sortedIndex",
@ -134,18 +143,18 @@ export const salaryItemFields = [
tip: ""
},
{
key: 'description',
label: '备注',
type: 'TEXTAREA',
key: "description",
label: "备注",
type: "TEXTAREA",
viewAttr: 2,
tip: ''
},
tip: ""
}
];
export const valTakeOptions = [
{ key: "1", showname: "输入" },
{ key: "2", showname: "公式" },
{ key: "3", showname: "SQL" }
];
export const valTakeOptions=[
{key: "1", showname: '输入'},
{key: "2", showname: '公式'},
{key: "3", showname: 'SQL'},
]

View File

@ -112,9 +112,9 @@ export default class SalaryItem extends React.Component {
return <a onClick={() => {
this.onEditItem(record, false);
}}>{text}</a>;
case "useInEmployeeSalary":
return <Switch checked={text === 1} disabled/>;
case "useDefault":
case "hideDefault":
case "useInEmployeeSalary":
return <Switch checked={text === 1} disabled/>;
default:
return <div dangerouslySetInnerHTML={{ __html: valueSpan }}/>;
@ -366,9 +366,23 @@ export default class SalaryItem extends React.Component {
</WeaTop>
{
systemItemVisible && <SystemSalaryItemModal visible={systemItemVisible} onCancel={() => {
setSystemItemVisible(false);
}}/>
systemItemVisible &&
<SystemSalaryItemModal
visible={systemItemVisible}
onCancel={() => {
setSystemItemVisible(false);
}}
onInitTableList={() => {
getTableDatas({ ...this.state.searchParams, name: this.state.searchValue }).then(res => {
this.setState({
searchParams: {
...this.state.searchParams,
total: res.total
}
});
});
}}
/>
}
{
editSlideVisible &&

View File

@ -5,7 +5,7 @@
* Date: 2023/2/9
*/
import React, { Component } from "react";
import { WeaCheckbox, WeaFormItem, WeaInput, WeaSearchGroup, WeaSelect, WeaTextarea, WeaInputNumber } from "ecCom";
import { WeaCheckbox, WeaFormItem, WeaInput, WeaInputNumber, WeaSearchGroup, WeaSelect, WeaTextarea } from "ecCom";
import { salaryItemFields, valTakeOptions } from "./columns";
class SalaryItemForm extends Component {
@ -86,7 +86,7 @@ class SalaryItemForm extends Component {
if (key === "valueType") {
onChangeFieldsItem({ formulaContent: "", formulaId: 0, valueType: v });
} else {
onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary") ? Number(v) : v });
onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary" || key === "hideDefault") ? Number(v) : v });
}
});
};
@ -131,7 +131,7 @@ class SalaryItemForm extends Component {
(type === "INPUTNUMBER" && display) ?
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
<WeaInputNumber value={value} viewAttr={viewAttr} precision={0}
onChange={v => this.handleChangeSalaryFiledItems(key, v)}/>
onChange={v => this.handleChangeSalaryFiledItems(key, v)}/>
</WeaFormItem> : null
}
</React.Fragment>;

View File

@ -60,7 +60,7 @@ export default class SystemSalaryItemModal extends React.Component {
if (status) {
message.success(getLabel(111, "添加成功"));
this.setState({ selectedRowKeys: [] }, () => {
this.getSysItemList();
this.props.onInitTableList();
this.props.onCancel();
});
} else {

View File

@ -23,6 +23,7 @@ export class SalaryItemStore {
@observable request = {
name: "",
useDefault: 0,
hideDefault: 0,
useInEmployeeSalary: 0,
systemType: 0,
roundingMode: "1",
@ -63,6 +64,7 @@ export class SalaryItemStore {
initRequest = () => this.request = {
name: "",
useDefault: 0,
hideDefault: 0,
useInEmployeeSalary: 0,
systemType: 0,
roundingMode: "1",