bug的修正

This commit is contained in:
liyongshun 2022-08-25 17:54:18 +08:00
parent ad13e078e4
commit 6768649ac4
24 changed files with 760 additions and 484 deletions

View File

@ -139,6 +139,10 @@ export const getImportTypes = () => {
export const commonEnumList = (params) => {
return WeaTools.callApi('/api/bs/hrmsalary/common/enum/list', 'GET', params);
}
// 发起调薪地址
export const salaryAdjustmentInfo = (params) => {
return WeaTools.callApi('/api/bs/hrmsalary/process/salaryAdjustmentInfo', 'GET', params);
}
// 导入预览
export const importPreview = (params) => {

View File

@ -1,24 +1,26 @@
import React from 'react'
import { Table, Button } from 'antd'
import { WeaTable } from "ecCom"
import React from "react";
import { Button } from "antd";
import { WeaTable } from "ecCom";
export default class ModalStep2 extends React.Component {
componentWillMount() {
this.props.onPreviewDate();
}
render() {
const {dataSource, columns} = this.props;
return (
<div style={{height: "550px", display: "flex", flexFlow: "column"}}>
<div style={{flex: "1", maxHeight: '500px', overflowY: "scroll"}}>
<WeaTable dataSource={dataSource} columns={columns} scroll={{x: columns.length * 150 }}/>
</div>
<div className="footerBtnWrapper" style={{marginTop: "10px", overflow: "hidden", height: "30px"}}>
<Button type="primary" style={{float: "right", marginLeft: "10px"}} onClick={this.props.onStep2Next}>下一步</Button>
<Button type="default" style={{float: "right"}} onClick={this.props.onStep2Pre}>上一步</Button>
</div>
</div>
)
}
}
componentWillMount() {
this.props.onPreviewDate();
}
render() {
const { dataSource, columns } = this.props;
return (
<div style={{ height: "550px", display: "flex", flexFlow: "column" }}>
<div style={{ flex: "1", maxHeight: "500px", overflowY: "scroll" }}>
<WeaTable dataSource={dataSource} columns={columns} scroll={{ x: columns.length * 150 }}/>
</div>
<div className="footerBtnWrapper" style={{ marginTop: "10px", overflow: "hidden", height: "30px" }}>
<Button type="primary" style={{ float: "right", marginLeft: "10px" }}
onClick={this.props.onStep2Next}>下一步</Button>
<Button type="default" style={{ float: "right" }} onClick={this.props.onStep2Pre}>上一步</Button>
</div>
</div>
);
}
}

View File

@ -31,12 +31,12 @@ export default class AcctResultImportModal extends React.Component {
// 获取模板
handleAccResultTemplateLink() {
const { calculateStore: { getImportTemplate } } = this.props;
if (_.isEmpty(this.state.modalParam.salaryItemIds)) {
message.warning("请选择表单字段");
return;
}
getImportTemplate(this.state.modalParam.salaryItemIds, this.state.modalParam.salaryAcctRecordId);
const url= `${window.location.origin}/api/bs/hrmsalary/salaryacct/acctresult/importtemplate/export?salaryItemIds=${this.state.modalParam.salaryItemIds}&salaryAcctRecordId=${this.state.modalParam.salaryAcctRecordId}`;
window.open(url, "_self");
}
// 设置步骤

View File

@ -1,165 +1,232 @@
import React from 'react'
import { Modal, Row, Col, Button } from 'antd'
import { inject, observer } from 'mobx-react';
import { WeaCheckbox } from 'ecCom'
import React from "react";
import { Button, Col, Modal, Row } from "antd";
import { inject, observer } from "mobx-react";
import { WeaCheckbox } from "ecCom";
@inject('calculateStore')
@inject("calculateStore")
@observer
export default class SelectFieldModal extends React.Component {
constructor(props) {
super(props)
this.state = {
fieldData: {}
constructor(props) {
super(props);
this.state = {
fieldData: {}
};
}
componentWillMount() {
const { calculateStore: { getImportField } } = this.props;
getImportField(this.props.id).then(data => {
let fieldData = {};
let formulaItems = [];
formulaItems = data.formulaItems;
if (this.props.fieldData.formulaItems) {
formulaItems = this.props.fieldData.formulaItems;
}
let inputItems = [];
inputItems = data.inputItems;
if (this.props.fieldData.inputItems) {
inputItems = this.props.fieldData.inputItems;
}
let sqlItems = [];
sqlItems = data.sqlItems;
if (this.props.fieldData.inputItems) {
sqlItems = this.props.fieldData.sqlItems;
}
fieldData.formulaItems = formulaItems;
fieldData.inputItems = inputItems;
fieldData.sqlItems = sqlItems;
this.setState({
fieldData
});
this.fieldData = fieldData;
});
}
// 公式项改变
handleFormalChange(item, value, flag) {
item.checked = value == 1 ? true : false;
let fieldData = { ...this.state.fieldData };
if (flag === "formluma") { // 公式项
fieldData.formulaItems.map(fieldItem => {
if (item.salaryItemId === fieldItem.salaryItemId) {
fieldItem.checked = item.checked;
}
}
componentWillMount() {
const {calculateStore: { getImportField } } = this.props;
getImportField(this.props.id).then(data => {
let fieldData = {};
let formulaItems = []
formulaItems = data.formulaItems
if(this.props.fieldData.formulaItems) {
formulaItems = this.props.fieldData.formulaItems
}
let inputItems = []
inputItems = data.inputItems
if(this.props.fieldData.inputItems) {
inputItems = this.props.fieldData.inputItems
}
fieldData.formulaItems = formulaItems;
fieldData.inputItems = inputItems;
this.setState({
fieldData
})
this.fieldData = fieldData
})
}
// 公式项改变
handleFormalChange(item, value, flag) {
item.checked = value == 1 ? true: false
let fieldData = {...this.state.fieldData}
if(flag) { // 公式项
fieldData.formulaItems.map(fieldItem => {
if(item.salaryItemId == fieldItem.salaryItemId) {
fieldItem.checked = item.checked
}
})
} else { // 输入项
fieldData.inputItems.map(fieldItem => {
if(item.salaryItemId == fieldItem.salaryItemId) {
fieldItem.checked = item.checked
}
})
});
} else if (flag === "inputs") { // 输入项
fieldData.inputItems.map(fieldItem => {
if (item.salaryItemId === fieldItem.salaryItemId) {
fieldItem.checked = item.checked;
}
this.setState({
fieldData
})
this.fieldData = fieldData
}
// 添加按钮点击回调
handleAddClick() {
this.props.onAdd(this.fieldData)
this.props.onCancel()
}
// 标题checkbox点击
handleTitleCheckboxChange(value, flag) {
let checked = value == 1 ? true: false
let fieldData = {...this.state.fieldData}
if(flag === 'formula') {
fieldData.formulaItems.map(fieldItem => {
fieldItem.checked = checked
})
} else if(flag === "input") {
fieldData.inputItems.map(fieldItem => {
fieldItem.checked = checked
})
});
} else if (flag === "sql") { // sql项
fieldData.sqlItems.map(fieldItem => {
if (item.salaryItemId === fieldItem.salaryItemId) {
fieldItem.checked = item.checked;
}
this.setState({
fieldData
})
});
}
this.setState({
fieldData
});
this.fieldData = fieldData;
}
this.fieldData = fieldData;
// 添加按钮点击回调
handleAddClick() {
this.props.onAdd(this.fieldData);
this.props.onCancel();
}
// 标题checkbox点击
handleTitleCheckboxChange(value, flag) {
let checked = value == 1 ? true : false;
let fieldData = { ...this.state.fieldData };
if (flag === "formula") {
fieldData.formulaItems.map(fieldItem => {
fieldItem.checked = checked;
});
} else if (flag === "input") {
fieldData.inputItems.map(fieldItem => {
fieldItem.checked = checked;
});
} else if (flag === "sql") {
fieldData.sqlItems.map(fieldItem => {
fieldItem.checked = checked;
});
}
this.setState({
fieldData
});
this.fieldData = fieldData;
}
// 只显示已选中
showSelectedChange(value) {
let checked = value == 1 ? true : false;
let fieldData = { ...this.fieldData };
if (checked) {
if (fieldData.formulaItems) {
fieldData.formulaItems = fieldData.formulaItems.filter(fieldItem => fieldItem.checked);
}
if (fieldData.inputItems) {
fieldData.inputItems = fieldData.inputItems.filter(fieldItem => fieldItem.checked);
}
if (fieldData.sqlItems) {
fieldData.sqlItems = fieldData.sqlItems.filter(fieldItem => fieldItem.checked);
}
}
// 只显示已选中
showSelectedChange(value) {
let checked = value == 1 ? true: false
let fieldData = {...this.fieldData}
if(checked) {
if(fieldData.formulaItems) {
fieldData.formulaItems = fieldData.formulaItems.filter(fieldItem => fieldItem.checked)
}
if(fieldData.inputItems) {
fieldData.inputItems = fieldData.inputItems.filter(fieldItem => fieldItem.checked)
}
}
this.setState({
fieldData
})
}
this.setState({
fieldData
});
}
render() {
const { fieldData } = this.state;
return (
<Modal
visible={this.props.visible}
width={800} onCancel={() => {
this.props.onCancel();
}}
footer={null}
>
<div style={{ height: "50px", lineHeight: "50px" }}>
<span style={{ fontSize: "14px", fontWeight: "600" }}>添加表头字段</span>
<Button type="primary" style={{ float: "right", marginRight: "50px" }} onClick={() => {
this.handleAddClick();
}}>添加</Button>
</div>
<div style={{ marginTop: "20px" }}>
<div style={{ height: "40px", lineHeight: "40px" }}>
<WeaCheckbox content="公式项" onChange={(value) => {
this.handleTitleCheckboxChange(value, "formula");
}}/>
</div>
<div style={{
height: "100px",
border: "1px solid #f2f2f2",
margin: "10px",
padding: "10px",
overflowY: "scroll"
}}>
<Row>
{fieldData.formulaItems && fieldData.formulaItems.map(item => (
<Col span={6}>
<WeaCheckbox
value={item.checked ? 1 : 0}
content={item.salaryItemName}
onChange={(value) => {
this.handleFormalChange(item, value, "formula");
}}/></Col>
))}
</Row>
</div>
</div>
render() {
const { fieldData } = this.state;
return (
<Modal visible={this.props.visible} width={800} onCancel={() =>{
this.props.onCancel()
}}
footer={null}
>
<div style={{height: "50px", lineHeight: "50px"}}>
<span style={{fontSize: "14px", fontWeight: "600"}}>添加表头字段</span>
<Button type="primary" style={{float: "right", marginRight: "50px"}} onClick={() => {
this.handleAddClick()
}}>添加</Button>
</div>
<div style={{marginTop: "20px"}}>
<div style={{height: "40px", lineHeight: "40px"}}>
<WeaCheckbox content="公式项" onChange={(value) => {
this.handleTitleCheckboxChange(value, "formula")
}}/>
</div>
<div style={{height: "100px", border: "1px solid #f2f2f2", margin: "10px", padding: "10px", overflowY: 'scroll'}}>
<Row>
{ fieldData.formulaItems && fieldData.formulaItems.map(item => (
<Col span={6}><WeaCheckbox value={item.checked ? 1 : 0} content={item.salaryItemName} onChange={(value) => {
this.handleFormalChange(item, value, true)
}}/></Col>
))}
</Row>
</div>
</div>
<div style={{ marginTop: "20px" }}>
<div style={{ height: "50px", lineHeight: "50px" }}>
<WeaCheckbox content="输入项" onChange={(value) => {
this.handleTitleCheckboxChange(value, "input");
}}/>
</div>
<div style={{
height: "100px",
border: "1px solid #f2f2f2",
margin: "10px",
padding: "10px",
overflowY: "scroll"
}}>
<Row>
{fieldData.inputItems && fieldData.inputItems.map(item => (
<Col span={6}>
<WeaCheckbox
value={item.checked ? 1 : 0}
content={item.salaryItemName}
onChange={(value) => {
this.handleFormalChange(item, value, "input");
}}/></Col>
))}
</Row>
</div>
</div>
<div style={{marginTop: "20px"}}>
<div style={{height: "50px", lineHeight: "50px"}}>
<WeaCheckbox content="输入项" onChange={(value) => {
this.handleTitleCheckboxChange(value, "input")
}}/>
</div>
<div style={{height: "100px", border: "1px solid #f2f2f2", margin: "10px", padding: "10px", overflowY: "scroll"}}>
<Row>
{ fieldData.inputItems && fieldData.inputItems.map(item => (
<Col span={6}><WeaCheckbox value={item.checked ? 1 : 0} content={item.salaryItemName} onChange={(value) => {
this.handleFormalChange(item, value, true)
}}/></Col>
))}
</Row>
</div>
</div>
<div style={{ marginTop: "20px" }}>
<div style={{ height: "50px", lineHeight: "50px" }}>
<WeaCheckbox content="SQL项" onChange={(value) => {
this.handleTitleCheckboxChange(value, "sql");
}}/>
</div>
<div style={{
height: "100px",
border: "1px solid #f2f2f2",
margin: "10px",
padding: "10px",
overflowY: "scroll"
}}>
<Row>
{fieldData.sqlItems && fieldData.sqlItems.map(item => (
<Col span={6}>
<WeaCheckbox
value={item.checked ? 1 : 0}
content={item.salaryItemName}
onChange={(value) => {
this.handleFormalChange(item, value, "sql");
}}/></Col>
))}
</Row>
</div>
</div>
<div style={{marginTop: "20px"}}>
<WeaCheckbox content="只显示已选中" onChange={(value) => {
this.showSelectedChange(value)
}}/>
</div>
</Modal>
)
}
}
<div style={{ marginTop: "20px" }}>
<WeaCheckbox content="只显示已选中" onChange={(value) => {
this.showSelectedChange(value);
}}/>
</div>
</Modal>
);
}
}

View File

@ -234,10 +234,7 @@ export default class CalculateDetail extends React.Component {
}
render() {
const { selectedKey, modalParam, acctResultImportVisiable, showSearchAd } = this.state;
const { calculateStore } = this.props;
const { calculateProgress } = calculateStore;
const { selectedKey, acctResultImportVisiable, showSearchAd } = this.state;
const menu = (
<Menu onClick={this.handleMenuClick.bind(this)}>
<Menu.Item key="1">导入</Menu.Item>

View File

@ -134,9 +134,10 @@ export default class SalaryDetail extends React.Component {
引用${baseSalarySobCycle.socialSecurityCycle}的福利台账数据`}
placement="topLeft"
/>
<span className="warningspan" onClick={() => {
this.setState({ visible: true });
}}>校验异常0</span>
{/*暂时隐藏*/}
{/*<span className="warningspan" onClick={() => {*/}
{/* this.setState({ visible: true });*/}
{/*}}>校验异常0</span>*/}
</div>
<div className="salaryBarWrapper" style={{ borderBottom: "1px solid #eee" }}>
<span>公式=</span>

View File

@ -16,7 +16,7 @@ export default class UserSure extends React.Component {
employeeName: "",
departmentIds: "",
positionIds: "",
status: ""
status: 0
},
selectedKey: "0",
selectedRowKeys: [], // table 选中项
@ -96,9 +96,9 @@ export default class UserSure extends React.Component {
wrapperCol={{ span: 18 }}
>
<WeaSelect
value={status}
value={String(status)}
options={userStatusList}
onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/>
onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: Number(val) } })}/>
</WeaFormItem>
);
};

View File

@ -134,27 +134,27 @@ export const modalColumns = [
key: 'addUpContinuingEducation',
},
{
title: "累计住房租金",
title: "累计住房贷款利息",
dataIndex: 'addUpHousingLoanInterest',
key: 'addUpHousingLoanInterest',
},
{
title: "累计赡养老人",
title: "累计住房租金",
dataIndex: 'addUpHousingRent',
key: 'addUpHousingRent',
},
{
title: "累计企业(职业)年金及其他福利",
title: "累计赡养老人",
dataIndex: 'addUpSupportElderly',
key: 'addUpSupportElderly',
},
{
title: "累计住房租金",
title: "累计企业(职业)年金及其他福利",
dataIndex: 'addUpEnterpriseAndOther',
key: 'addUpEnterpriseAndOther',
},
{
title: "累计其他扣除",
title: "累计其他免税扣除",
dataIndex: 'addUpOtherDeduction',
key: 'addUpOtherDeduction',
},
@ -168,6 +168,11 @@ export const modalColumns = [
dataIndex: 'addUpAllowedDonation',
key: 'addUpAllowedDonation',
},
{
title: "累计减免税额",
dataIndex: 'addUpTaxSavings',
key: 'addUpTaxSavings',
},
{
title: "累计已预扣预缴税额",
dataIndex: 'addUpAdvanceTax',

View File

@ -42,19 +42,6 @@ export default class Ledger extends React.Component {
getTableDatas({ name: value });
}
refereUser() {
this.setState({
editSlideVisible: true,
selectedTab: 1
});
}
onEdit() {
this.setState({
editSlideVisible: true
});
}
componentWillMount() {
const {
ledgerStore: { doInit },
@ -538,7 +525,7 @@ export default class Ledger extends React.Component {
<WeaSlideModal
visible={this.state.editSlideVisible}
top={0}
width={40}
width={45}
height={100}
direction={"right"}
measure={"%"}

View File

@ -220,3 +220,15 @@
}
}
}
.slideRefereUserTableWrapper {
.ant-table-tbody > tr > td {
padding: 10px 8px;
}
.ant-table-thead th {
font-weight: 400;
border-bottom: 2px solid #e2ecf2;
background-color: #f7fbfe;
}
}

View File

@ -16,7 +16,8 @@ export default class SalaryItemForm extends React.Component {
super(props);
this.state = {
addCategoryVisible: false,
previewVisible: false
previewVisible: false,
date: ''
};
const { ledgerStore: { empFieldList } } = this.props;
empFieldList();
@ -41,6 +42,7 @@ export default class SalaryItemForm extends React.Component {
}
});
setItemGroups(groups);
this.setState({date: new Date()})
}
// 薪资项目
@ -112,8 +114,6 @@ export default class SalaryItemForm extends React.Component {
const {
ledgerStore: {
itemGroups,
salaryItems,
empBrowserList,
setAddCategoryVisible,
addCategoryVisible,
baseInfoRequest
@ -143,15 +143,12 @@ export default class SalaryItemForm extends React.Component {
预览
</Button>
</div>
{/* <div className="searchInputWrapper">
<WeaInputSearch style={{width: "150px"}} />
</div> */}
</div>
<div className="userInfoWrapper">
<div>
<span>
员工信息{" "}
<span>员工信息</span>
<WeaHelpfulTip
style={{ marginLeft: "10px" }}
width={100}
@ -163,7 +160,6 @@ export default class SalaryItemForm extends React.Component {
<Icon type="down"/>
</div>
</div>
<UserInfoSelected/>
</div>
{itemGroups &&

View File

@ -1,9 +1,9 @@
import React from "react";
import { inject, observer } from "mobx-react";
import { Icon, Table, message, Modal } from "antd";
import { Icon, message, Modal, Table } from "antd";
import { WeaInputSearch } from "ecCom";
import { slideStep2Columns, dataSource } from "./columns";
import AddUserModal from "./addUserModal";
import "./index.less";
@inject("ledgerStore")
@observer
@ -15,6 +15,11 @@ export default class SlideRefereUser extends React.Component {
selectedRowKeys: [],
searchValue: ""
};
this.pageInfo = {
current: 1,
pageSize: 10,
total: 0
};
}
handleTabClick(tab) {
@ -63,7 +68,8 @@ export default class SlideRefereUser extends React.Component {
onOk: () => {
deleteLedgerPersonRange(this.state.selectedRowKeys);
},
onCancel: () => {}
onCancel: () => {
}
});
};
@ -79,12 +85,14 @@ export default class SlideRefereUser extends React.Component {
if (includeType == 1) {
getLedgerPersonRangeInclude({
salarySobId: salarySobId,
targetName: value
targetName: value,
...this.pageInfo
});
} else {
getLedgerPersonRangeExclude({
salarySobId: salarySobId,
targetName: value
targetName: value,
...this.pageInfo
});
}
};
@ -92,11 +100,15 @@ export default class SlideRefereUser extends React.Component {
render() {
const {
ledgerStore: {
loading,
includeType,
salarySobId,
userTableStore,
addUserModalVisible,
setAddUserModalVisible,
baseInfoRequest
baseInfoRequest,
getLedgerPersonRangeInclude,
getLedgerPersonRangeExclude
}
} = this.props;
const { canEdit = "true" } = baseInfoRequest;
@ -122,8 +134,8 @@ export default class SlideRefereUser extends React.Component {
this.handleTabClick(1);
}}>
关联人员范围
</span>{" "}
{" "} | {" "}{" "}
</span>
<span style={{ margin: "0 4px" }}>|</span>
<span
className={includeType == 0 ? "selectedCrumbs" : "tabItem"}
onClick={() => {
@ -160,15 +172,46 @@ export default class SlideRefereUser extends React.Component {
/>
</div>}
</div>
<div>
<div className="slideRefereUserTableWrapper">
<Table
loading={loading}
rowSelection={rowSelection}
dataSource={list}
columns={columns}
pagination={{
total: userTableStore.total,
current: userTableStore.pageNum,
showTotal: total => `${total}`,
current: userTableStore.pageNum
showSizeChanger: true,
pageSizeOptions: ["10", "20", "50", "100"],
onShowSizeChange: (current, pageSize) => {
this.pageInfo = { ...this.pageInfo, current, pageSize };
if (includeType == 1) {
getLedgerPersonRangeInclude({
salarySobId: salarySobId,
...this.pageInfo
});
} else {
getLedgerPersonRangeExclude({
salarySobId: salarySobId,
...this.pageInfo
});
}
},
onChange: current => {
this.pageInfo = { ...this.pageInfo, current };
if (includeType == 1) {
getLedgerPersonRangeInclude({
salarySobId: salarySobId,
...this.pageInfo
});
} else {
getLedgerPersonRangeExclude({
salarySobId: salarySobId,
...this.pageInfo
});
}
}
}}
/>
</div>

View File

@ -1,6 +1,6 @@
import React, { Fragment } from "react";
import { Icon, message, Modal } from "antd";
import { WeaHelpfulTip, WeaTable } from "ecCom";
import { WeaHelpfulTip, WeaTable, WeaCheckbox } from "ecCom";
import { slideStep3Columns } from "../columns";
import AddSalaryItemModal from "./AddSalaryItemModal";
import { inject, observer } from "mobx-react";
@ -12,7 +12,7 @@ const helpContent = () => {
return <span>
<span>1新建薪资账套时核算公式与薪资项目管理菜单一致</span><br/>
<span>2取值方式为公式的薪资项目核算公式显示为具体公式点击公式可编辑公式核算时按照当前薪资项目的公式进行核算</span><br/>
<span>3薪资账套内的薪资项目的取值方式的修改或公式的修改都不影响薪资项目管理菜单的薪资项目取值方式或公式只对当前账套生效</span><br/>
<span>3薪资账套内的薪资项目的公式或SQL的修改或公式的修改都不影响薪资项目管理菜单的薪资项目取值方式或公式只对当前账套生效</span><br/>
</span>;
};
@ -69,6 +69,34 @@ export default class CanMoveItem extends React.Component {
this.title = "";
}
handleChangeItem= (value,id)=>{
const { dataSource } = this.props;
let result = [...dataSource];
this.props.onChange(
_.map(result, item => {
if(id === item.id){
return {
...item,
itemHide: String(value)
}
}
return {...item}
})
);
}
handleChangeAllItem= (value)=>{
const { dataSource } = this.props;
let result = [...dataSource];
this.props.onChange(
_.map(result, item => {
return {
...item,
itemHide: String(value)
}
})
);
}
// 编辑公式
handleFormulaClick(formulaId, record) {
this.formulaId = formulaId;
@ -90,7 +118,7 @@ export default class CanMoveItem extends React.Component {
handleDelete = () => {
const { selectedRowKeys } = this.state;
if (selectedRowKeys.length == 0) {
message.warning("选择任何条目");
message.warning("选择任何条目");
return;
}
Modal.confirm({
@ -155,10 +183,13 @@ export default class CanMoveItem extends React.Component {
sortedIndex,
ledgerStore: { setAddItemVisible, addItemVisible, itemGroups = [] }
} = this.props;
console.log(this.props.dataSource)
const checkValue= _.every(this.props.dataSource, it => it.itemHide && it.itemHide === '1' ) ? "1" : "0";
const {
selectedRowKeys,
formalModalVisible,
addCategoryVisible
addCategoryVisible,
columns
} = this.state;
const rowSelection = {
selectedRowKeys,
@ -167,6 +198,27 @@ export default class CanMoveItem extends React.Component {
disabled: !record.canDelete
})
};
console.log(checkValue)
const newColumns= [...columns,{
title: <span>
<WeaCheckbox
value={checkValue}
onChange={value => {
this.handleChangeAllItem(value)
}}
/>
<span style={{ marginLeft: 8 }}>隐藏</span>
</span>,
dataIndex: 'itemHide',
key: 'itemHide',
render: (text,record) => <WeaCheckbox
value={text ? String(text) : !text ? "0" : "1"}
onChange={value => {
this.handleChangeItem(value, record.id)
}}
/>,
}]
return (
<div className="tableItemWrapper">
@ -253,7 +305,7 @@ export default class CanMoveItem extends React.Component {
<WeaTable
rowSelection={rowSelection}
dataSource={this.props.dataSource}
columns={this.state.columns}
columns={newColumns}
onRow={(record, index) => ({
index,
moveRow: record

View File

@ -101,11 +101,11 @@ export default class RuleEditModal extends React.Component {
this.props.onCancel();
}}
className="rule-modal-wrapper"
footer={<Button
buttons={[<Button
type="primary"
onClick={() => {
this.handleSave();
}}>保存</Button>}
}}>保存</Button>]}
>
<div style={{ padding: "20px" }}>
<Row style={{ lineHeight: "40px" }}>

View File

@ -54,7 +54,8 @@ export default class SalaryFile extends React.Component {
departmentIds: "",
positionIds: "",
userstatus: "",
archiveStatus: ""
archiveStatus: "",
taxAgentId: ""
}
};
this.pageInfo = { current: 1, pageSize: 10 };
@ -116,9 +117,10 @@ export default class SalaryFile extends React.Component {
);
};
Select = (value, key) => {
const { salaryFileStore } = this.props;
const { userstatus, archiveStatus } = this.state.searchItemsValue;
const { salaryFileStore, taxAgentStore } = this.props;
const { userstatus, archiveStatus, taxAgentId } = this.state.searchItemsValue;
const { archiveStatusList, userStatusList } = salaryFileStore;
const { taxAgentAdminOption } = taxAgentStore;
return (
<WeaFormItem
label={value}
@ -126,18 +128,20 @@ export default class SalaryFile extends React.Component {
wrapperCol={{ span: 18 }}
>
<WeaSelect
value={key === "userstatus" ? userstatus : archiveStatus}
options={key === "userstatus" ? userStatusList : archiveStatusList}
value={key === "userstatus" ? userstatus : key === "taxAgentId" ? taxAgentId : archiveStatus}
options={key === "userstatus" ? userStatusList : key === "taxAgentId" ? [{
key: "",
showname: ""
}, ...taxAgentAdminOption] : archiveStatusList}
onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/>
</WeaFormItem>
);
};
componentWillMount() {
const {
salaryFileStore: { doInit }
} = this.props;
const { salaryFileStore: { doInit }, taxAgentStore: { getTaxAgentSelectListAsAdmin } } = this.props;
doInit({ ...this.state.searchItemsValue });
getTaxAgentSelectListAsAdmin();
}
// 设置导入步数
@ -234,13 +238,23 @@ export default class SalaryFile extends React.Component {
}
// 查看 Slide 头部操作按钮
renderEditSlideOperate() {
const { taxAgentStore: { showOperateBtn } } = this.props;
renderEditSlideOperate = () => {
const { taxAgentStore: { showOperateBtn }, salaryFileStore: { salaryIncreaseUrl, currentId } } = this.props;
const { isShow, url } = salaryIncreaseUrl;
return (
<div style={{ display: "inline-block" }}>
<Button type="primary" onClick={() => {
this.setState({ changeSalaryVisible: true });
}}>调薪</Button>
{
showOperateBtn && isShow === "true" &&
<Button type="primary" style={{ marginRight: 10 }} onClick={() => {
window.open(`${url}&salaryArchiveId=${currentId}`);
}}>发起调薪</Button>
}
{
showOperateBtn &&
<Button type="primary" onClick={() => {
this.setState({ changeSalaryVisible: true });
}}>调薪</Button>
}
{/*暂时去掉调整个税扣缴义务人导入按钮*/}
{/*{*/}
{/* showOperateBtn &&*/}
@ -259,7 +273,7 @@ export default class SalaryFile extends React.Component {
{/*}*/}
</div>
);
}
};
// table选中条目
onSelectChange = (selectedRowKeys) => {
@ -323,7 +337,8 @@ export default class SalaryFile extends React.Component {
showSearchAd,
getTableDatas,
doSearch,
setShowSearchAd
setShowSearchAd,
setSalaryIncreaseUrl
} = salaryFileStore;
const {
importType,
@ -500,7 +515,8 @@ export default class SalaryFile extends React.Component {
{ com: this.Browser("部门", "departmentIds") },
{ com: this.Browser("岗位", "positionIds") },
{ com: this.Select("人员状态", "userstatus") },
{ com: this.Select("档案状态", "archiveStatus") }
{ com: this.Select("档案状态", "archiveStatus") },
{ com: this.Select("个税扣缴义务人", "taxAgentId") }
];
return <WeaSearchGroup title={"基本信息"} items={searchItems} showGroup/>;
};
@ -701,9 +717,15 @@ export default class SalaryFile extends React.Component {
/>
}
content={<SalaryFileViewSlide id={currentId}/>}
onClose={() => this.setState({ editSlideVisible: false })}
onClose={() => {
this.setState({ editSlideVisible: false });
setSalaryIncreaseUrl({});
}}
showMask={true}
closeMaskOnClick={() => this.setState({ editSlideVisible: false })}
closeMaskOnClick={() => {
setSalaryIncreaseUrl({});
this.setState({ editSlideVisible: false });
}}
/>
)}
</div>

View File

@ -1,134 +1,135 @@
import React from "react"
import { Row, Col } from 'antd'
import { WeaHelpfulTip, WeaSearchGroup } from 'ecCom'
import GroupCard from "../../components/groupCard"
import { inject, observer } from 'mobx-react';
import "./index.less"
import SelectedTab from '../../components/selectedTab'
import React from "react";
import { Col, Row } from "antd";
import { WeaHelpfulTip, WeaSearchGroup } from "ecCom";
import { inject, observer } from "mobx-react";
import "./index.less";
import SelectedTab from "../../components/selectedTab";
import SalaryItemChangeList from "./salaryItemChangeList";
import TaxAgentChangeList from "./taxAgentChangeList";
const selectedTabItems = [
{
key: '0',
name: "薪资调整记录"
},
{/*暂时去掉调整个税扣缴义务人导入按钮*/}
// {
// key: "1",
// name: "个税扣缴义务人调整记录"
// }
]
{
key: "0",
name: "薪资调整记录"
},
{/*暂时去掉调整个税扣缴义务人导入按钮*/ }
// {
// key: "1",
// name: "个税扣缴义务人调整记录"
// }
];
@inject('salaryFileStore')
@inject("salaryFileStore")
@observer
export default class SalaryFileViewSlide extends React.Component {
constructor(props) {
super(props)
this.state = {
baseInfoVisible: true,
salaryItemVisible: true,
selectedTab: "0"
constructor(props) {
super(props);
this.state = {
baseInfoVisible: true,
salaryItemVisible: true,
selectedTab: "0",
};
}
componentWillMount() {
const { salaryFileStore: { getArchiveForm, fetchSingleSalaryItemList, salaryAdjustmentInfo } } = this.props;
getArchiveForm(this.props.id);
fetchSingleSalaryItemList({ salaryArchiveId: this.props.id });
salaryAdjustmentInfo()
}
// tab页签切换回调
handleTabChange(item) {
this.setState({ selectedTab: item.key });
}
render() {
const { salaryFileStore: { detailForm } } = this.props;
const { baseInfo, adjustSalaryItems } = detailForm;
return (
<div className="salaryFileViewSlide">
<WeaSearchGroup title={"基本信息"} items={[]} onVisibleChange={(value) => {
this.setState({ baseInfoVisible: value });
}}/>
{
this.state.baseInfoVisible && <div className="slideItemWrapper">
<Row className="formRow">
<Col span={8}>
<Row>
<Col span={6} className="formTitle">姓名</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.username}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">部门</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.department}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">岗位</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.position}</Col>
</Row>
</Col>
</Row>
<Row className="formRow">
<Col span={8}>
<Row>
<Col span={6} className="formTitle">入职时间</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.hiredate}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">手机号</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.mobile}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">个税扣缴义务人</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.taxAgent}</Col>
</Row>
</Col>
</Row>
</div>
}
}
componentWillMount() {
const { salaryFileStore: {getArchiveForm, fetchSingleSalaryItemList} } = this.props;
getArchiveForm(this.props.id)
fetchSingleSalaryItemList({salaryArchiveId: this.props.id})
}
// tab页签切换回调
handleTabChange(item) {
this.setState({ selectedTab: item.key})
}
render() {
const { salaryFileStore: {detailForm} } = this.props;
const { baseInfo, adjustSalaryItems } = detailForm;
return (
<div className="salaryFileViewSlide">
<WeaSearchGroup title={"基本信息"} items={[]} onVisibleChange={(value) => {
this.setState({baseInfoVisible: value})
}}/>
{
this.state.baseInfoVisible && <div className="slideItemWrapper">
<Row className="formRow">
<Col span={8}>
<Row>
<Col span={6} className="formTitle">姓名</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.username}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">部门</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.department}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">岗位</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.position}</Col>
</Row>
</Col>
</Row>
<Row className="formRow">
<Col span={8}>
<Row>
<Col span={6} className="formTitle">入职时间</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.hiredate}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">手机号</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.mobile}</Col>
</Row>
</Col>
<Col span={8}>
<Row>
<Col span={6} className="formTitle">个税扣缴义务人</Col>
<Col span={18}>{baseInfo && baseInfo.employee && baseInfo.employee.taxAgent}</Col>
</Row>
</Col>
</Row>
</div>
}
<WeaSearchGroup title={<span>薪资档案 <WeaHelpfulTip
width={200}
title="提示:显示已生效的最新数据"
placement="topLeft"
/></span>} items={[]} onVisibleChange={(value) => {
this.setState({salaryItemVisible: value})
}}/>
{
this.state.salaryItemVisible && <div style={{lineHeight: '40px'}} className="slideItemWrapper">
{
adjustSalaryItems && adjustSalaryItems.map(item => (
<div style={{display: "inline-block", width: '50%' }}>
<div style={{display:'inline-block', width: '50%'}}>{item.name}</div>
<div style={{display:'inline-block', width: '50%'}}>{item.value}</div>
</div>
))
}
</div>
}
<WeaSearchGroup title={<SelectedTab items={selectedTabItems} onChange={(item) => {
this.handleTabChange(item)
}}/>} items={[]} onVisibleChange={(value) => {
this.setState({salaryItemVisible: value})
}}/>
{
this.state.selectedTab == "0" ? <SalaryItemChangeList id={this.props.id}/> : <TaxAgentChangeList id={this.props.id}/>
}
<div>
<WeaSearchGroup title={<span>薪资档案 <WeaHelpfulTip
width={200}
title="提示:显示已生效的最新数据"
placement="topLeft"
/></span>} items={[]} onVisibleChange={(value) => {
this.setState({ salaryItemVisible: value });
}}/>
{
this.state.salaryItemVisible && <div style={{ lineHeight: "40px" }} className="slideItemWrapper">
{
adjustSalaryItems && adjustSalaryItems.map(item => (
<div style={{ display: "inline-block", width: "50%" }}>
<div style={{ display: "inline-block", width: "50%" }}>{item.name}</div>
<div style={{ display: "inline-block", width: "50%" }}>{item.value}</div>
</div>
</div>
)
}
))
}
</div>
}
<WeaSearchGroup title={<SelectedTab items={selectedTabItems} onChange={(item) => {
this.handleTabChange(item);
}}/>} items={[]} onVisibleChange={(value) => {
this.setState({ salaryItemVisible: value });
}}/>
{
this.state.selectedTab == "0" ? <SalaryItemChangeList id={this.props.id}/> :
<TaxAgentChangeList id={this.props.id}/>
}
<div>
</div>
</div>
);
}
}

View File

@ -18,6 +18,11 @@ export const roundingModeOptions = [
key: "4",
selected: false,
showname: "向下舍入"
},
{
key: "5",
selected: false,
showname: "见分进角"
}
];
@ -65,4 +70,4 @@ export const dataTypeOptions = [
showname: "字符",
selected: false
},
]
]

View File

@ -109,7 +109,7 @@ export default class OtherForm extends React.Component {
}
</Select>
</Col>
<Col span={6} className="formItem borderR-none">社保个人实际承担方</Col>
<Col span={6} className="formItem borderR-none"><span title="其他福利个人实际承担方">其他福利个人实际承担方</span></Col>
<Col span={6} className="formItem">
<Select defaultValue={data && data.underTake} value={data && data.underTake} style={{ width: "100%" }}
onChange={(value) => this.handleFormChange({ underTake: value })}>
@ -135,38 +135,39 @@ export default class OtherForm extends React.Component {
{/* */}
{/*</Col>*/}
{/*</Row>*/}
{
paymentItems && paymentItems.map(group => (
<div>
{
group.items && group.items.length > 0 && <GroupCard title={group.title}>
<Row>
{
group.items && group.items.map(item => (
<Col span={12}>
<Row>
<Col span={12} className="formItem">{item.label}</Col>
<Col span={12} className="formItem">
<WeaInput
type="number"
value={paymentData && paymentData[item.domkey[0]]} onChange={(value) => {
this.handlePaymentChange({ [item.domkey[0]]: value });
}}
/>
</Col>
</Row>
</Col>
))
}
</Row>
</GroupCard>
}
</div>
))
}
</GroupCard>
{
paymentItems && paymentItems.map(group => (
<div>
{
group.items && group.items.length > 0 && <GroupCard title={group.title}>
<Row>
{
group.items && group.items.map(item => (
<Col span={12}>
<Row>
<Col span={12} className="formItem">{item.label}</Col>
<Col span={12} className="formItem">
<WeaInput
type="number"
value={paymentData && paymentData[item.domkey[0]]} onChange={(value) => {
this.handlePaymentChange({ [item.domkey[0]]: value });
}}
/>
</Col>
</Row>
</Col>
))
}
</Row>
</GroupCard>
}
</div>
))
}
</div>
);
}

View File

@ -94,7 +94,7 @@ export default class SocialSecurityForm extends React.Component {
notFoundContent="暂无数据" value={data && data.socialName} style={{ width: "100%" }}
onChange={(value) => {
this.handleFormChange({ socialName: value });
// this.handleFetchPaymentForm(value);
this.handleFetchPaymentForm(value);
}}>
{
items && items[0].items && items[0].items[0] && items[0].items[0].options.map(item => (

View File

@ -7,7 +7,7 @@ import SmallTab from "../../../components/smallTab";
import "./index.less";
import RequiredLabelTip from "../../../components/requiredLabelTip";
@inject("programmeStore")
@inject("programmeStore", "salaryFileStore", "taxAgentStore")
@observer
export default class DefaultSlideForm extends React.Component {
constructor(props) {
@ -79,7 +79,12 @@ export default class DefaultSlideForm extends React.Component {
key: "4",
selected: false,
showname: "向下舍入"
}
},
{
key: "5",
selected: false,
showname: "见分进角"
},
];
item.render = (text, record) => {
return (
@ -146,19 +151,22 @@ export default class DefaultSlideForm extends React.Component {
}
}
componentWillMount() {
const { programmeStore } = this.props;
const { getForm, selectedKey, defaultPersonDataSource } = programmeStore;
componentWillReceiveProps(nextProps, nextContext) {
const { taxAgentStore } = this.props;
const { getTaxAgentSelectListAsAdmin } = taxAgentStore;
if(nextProps.customEditVisible !== this.props.customEditVisible){
getTaxAgentSelectListAsAdmin();
}
}
render() {
const { programmeStore } = this.props;
const { programmeStore, salaryFileStore, taxAgentStore } = this.props;
const { userStatusList } = salaryFileStore;
const { taxAgentAdminOption,getTaxAgentSelectListAsAdmin } = taxAgentStore;
const {
defaultPersonDataSource,
defaultCompanyDataSource,
selectedKey
} = programmeStore;
const { dataSource } = this.state;
const options = [
{
key: "SCHEME_TOWN",
@ -218,7 +226,41 @@ export default class DefaultSlideForm extends React.Component {
/>
</Col>
</Row>
<Row style={{ lineHeight: "40px" }}>
<Col span={6}>可见性</Col>
<Col span={18}>
<WeaSelect
style={{ width: "200px" }}
value={this.props.requestParams.sharedType}
options={userStatusList}
onChange={(visibleVal) => {
let requestParams = { ...this.props.requestParams };
requestParams.sharedType = visibleVal;
this.props.onChange(requestParams);
visibleVal=== '1' && getTaxAgentSelectListAsAdmin();
}}
/>
</Col>
</Row>
{
this.props.requestParams.sharedType === "1" &&
<Row style={{display:"flex",alignItems:"center",height:40,marginTop: 8}}>
<Col span={6}>可见性范围<RequiredLabelTip /></Col>
<Col span={18}>
<WeaSelect
multiple
style={{ width: "200px" }}
value={this.props.requestParams.taxAgentIds}
options={taxAgentAdminOption}
onChange={(value) => {
let requestParams = { ...this.props.requestParams };
requestParams.taxAgentIds = value;
this.props.onChange(requestParams);
}}
/>
</Col>
</Row>
}
<Row style={{ lineHeight: "40px" }}>
<Col span={6}>备注</Col>
<Col span={18}>

View File

@ -22,7 +22,7 @@ const WeaMobxTable = WeaTableNew.WeaTable;
const { MonthPicker } = DatePicker;
@inject("programmeStore", "taxAgentStore")
@inject("programmeStore", "taxAgentStore", "salaryFileStore")
@observer
export default class Programme extends React.Component {
constructor(props) {
@ -42,9 +42,11 @@ export default class Programme extends React.Component {
}
componentWillMount() {
const { programmeStore } = this.props;
const { programmeStore, salaryFileStore } = this.props;
const { doInit } = programmeStore;
doInit();
const { commonEnumList } = salaryFileStore;
commonEnumList("user", { enumClass: "com.engine.salary.enums.sicategory.SharedTypeEnum" });
}
// 增加编辑功能重写columns绑定事件
@ -192,7 +194,7 @@ export default class Programme extends React.Component {
welfareTypeEnum: selectedKey,
id
});
this.setState({ slideVisiable: true, currentOperate: "update" });
this.setState({ slideVisiable: true, customEdit: true, currentOperate: "update" });
}
onCopy(record) {
@ -204,13 +206,13 @@ export default class Programme extends React.Component {
}
onDelete = (record) => {
const { programmeStore: { deleteScheme, deleteLoading } } = this.props;
const { programmeStore: { deleteScheme, deleteLoading, selectedKey } } = this.props;
Modal.confirm({
title: "确认信息",
content: "确认删除本条数据吗?",
confirmLoading: deleteLoading,
onOk: () => {
deleteScheme({ ids: [record.id] });
deleteScheme({ ids: [record.id], welfareTypeEnum: selectedKey });
},
onCancel: () => {
}
@ -393,14 +395,16 @@ export default class Programme extends React.Component {
requestParams,
updateScheme
} = programmeStore;
let { schemeName, remarks, paymentArea, paymentType } = requestParams;
let { schemeName, remarks, paymentArea, paymentType, sharedType, taxAgentIds } = requestParams;
let request = {
insuranceScheme: {
paymentType,
welfareType: selectedKey,
schemeName,
remarks,
paymentArea
paymentArea,
sharedType,
taxAgentIds
},
insuranceSchemeDetailList: [
...defaultPersonDataSource,
@ -409,12 +413,15 @@ export default class Programme extends React.Component {
};
if (currentOperate == "add") {
createScheme(request);
createScheme(request).then(res => {
if (res.status) this.setState({ slideVisiable: false });
});
} else if (currentOperate == "update") {
request.insuranceScheme.id = requestParams.id;
updateScheme(request);
updateScheme(request).then(res => {
if (res.status) this.setState({ slideVisiable: false });
});
}
this.setState({ slideVisiable: false });
};
const renderCustomRightContent = () => {
@ -434,7 +441,7 @@ export default class Programme extends React.Component {
};
const handleSlideClose = () => {
this.setState({ slideVisiable: false });
this.setState({ slideVisiable: false, customEdit: false });
const { programmeStore: { initSlideParms } } = this.props;
initSlideParms();
};
@ -486,6 +493,7 @@ export default class Programme extends React.Component {
}
onChange={v => {
setSelectedKey(v);
handleSlideClose();
if (v == "custom") {
// 自定义福利
getCustomCategoryList();
@ -527,42 +535,41 @@ export default class Programme extends React.Component {
/>}
</WeaTop>
</WeaRightMenu>
{this.state.slideVisiable &&
<WeaSlideModal
visible={this.state.slideVisiable}
top={0}
width={40}
height={100}
direction={"right"}
measure={"%"}
title={
<SlideModalTitle
subtitle={this.state.customEdit ? "修改" : "新增"}
subTabs={[{ title: "基础设置" }]}
editable={true}
showOperateBtn={showOperateBtn}
onSave={() => {
handleOnSave();
}}
/>
}
content={
<DefaultSlideForm
requestParams={requestParams}
onChange={requestParams => {
setRequestParams(requestParams);
}}
/>
}
onClose={() => {
handleSlideClose();
}}
showMask={true}
closeMaskOnClick={() => {
handleSlideClose();
}}
onAnimationEnd={() => console.log("onAnimationEnd")}
/>}
<WeaSlideModal
visible={this.state.slideVisiable}
top={0}
width={50}
height={100}
direction={"right"}
measure={"%"}
title={
<SlideModalTitle
subtitle={this.state.customEdit ? "修改" : "新增"}
subTabs={[{ title: "基础设置" }]}
editable={true}
showOperateBtn={showOperateBtn}
onSave={() => {
handleOnSave();
}}
/>
}
content={
<DefaultSlideForm
customEditVisible={this.state.customEdit}
requestParams={requestParams}
onChange={requestParams => {
setRequestParams(requestParams);
}}
/>
}
onClose={() => {
handleSlideClose();
}}
showMask={true}
closeMaskOnClick={() => {
handleSlideClose();
}}
/>
{this.state.copyModalVisible &&
<CopySchemaModal

View File

@ -447,7 +447,9 @@ export class LedgerStore {
//薪资帐套人员范围(包含)列表
getLedgerPersonRangeInclude = params => {
this.loading= true;
API.getLedgerPersonRangeInclude(params).then(res => {
this.loading= false;
if (res.status) {
this.setUserTableStore(res.data);
} else {
@ -458,7 +460,9 @@ export class LedgerStore {
//薪资帐套人员范围(排除)列表
getLedgerPersonRangeExclude = params => {
this.loading= true;
API.getLedgerPersonRangeExclude(params).then(res => {
this.loading= false;
if (res.status) {
this.setUserTableStore(res.data);
} else {
@ -540,7 +544,8 @@ export class LedgerStore {
result.items = result.items.map((i, index) => ({
salaryItemId: i.salaryItemId,
sortedIndex: index + 1,
formulaId: i.formulaId
formulaId: i.formulaId,
itemHide: i.itemHide || "0",
}));
return result;
}

View File

@ -21,7 +21,9 @@ export class ProgrammeStore {
@observable requestParams = {
schemeName: "",
remarks: "",
paymentArea: "1"
paymentArea: "1",
sharedType: "",
taxAgentIds: "",
}
@observable form = new WeaForm();
@observable formCondition = []; // 存储后台得到的form数据
@ -57,7 +59,9 @@ export class ProgrammeStore {
this.requestParams = {
schemeName: "",
remarks: "",
paymentType: "SCHEME_TOWN"
paymentType: "SCHEME_TOWN",
sharedType: "",
taxAgentIds: "",
}
this.defaultPersonDataSource = [];
this.defaultCompanyDataSource = [];
@ -165,39 +169,51 @@ export class ProgrammeStore {
message.warning("方案名称不能为空")
return false
}
if(this.requestParams.sharedType=== "1" && !notNull(params.insuranceScheme.taxAgentIds)) {
message.warning("可见性范围不能为空")
return false
}
return true;
}
@action createScheme = (params) => {
params.insuranceScheme.paymentArea = params.insuranceScheme.paymentType;
if(!this.valideForm(params)) {
return
}
console.log("params:", params);
API.createScheme(params).then(res => {
if(res.status) {
message.success("新建成功");
this.getTableDatas(this.selectedKey);
} else {
message.error(res.errormsg || "新建失败")
return new Promise((resolve, reject)=>{
if(!this.valideForm(params)) {
reject("新建失败");
return
}
API.createScheme(params).then(res => {
if(res.status) {
resolve(res)
message.success("新建成功");
this.getTableDatas(this.selectedKey);
} else {
reject("新建失败");
message.error(res.errormsg || "新建失败")
}
})
})
}
@action updateScheme = (params) => {
params.insuranceScheme.paymentArea = params.insuranceScheme.paymentType;
if(!this.valideForm(params)) {
return
}
console.log("params:", params);
API.updateScheme(params).then(res => {
if(res.status) {
message.success("更新成功");
this.getTableDatas(this.selectedKey);
} else {
message.error(res.errormsg || "更新失败")
return new Promise((resolve, reject)=>{
if(!this.valideForm(params)) {
reject("新建失败");
return
}
API.updateScheme(params).then(res => {
if(res.status) {
resolve(res)
message.success("更新成功");
this.getTableDatas(this.selectedKey);
} else {
reject("更新失败")
message.error(res.errormsg || "更新失败")
}
})
})
}
@ -252,7 +268,7 @@ export class ProgrammeStore {
}
})
} catch(e) {
flag = false
flag = false
}
return flag;
}

View File

@ -33,9 +33,11 @@ export class salaryFileStore {
@observable singleTaxAgentList = [];
@observable currentId = "";
@observable salaryIncreaseUrl = {}; //发起流程url地址 isShow:是否显示按钮url链接地址
@observable editAgentVisible = false;
@action("设置发起调薪地址")
setSalaryIncreaseUrl = data => (this.salaryIncreaseUrl = data);
// ** 设置导入参数 start **
@action
setPreviewDataSource = (previewDataSource) => {
@ -53,6 +55,15 @@ export class salaryFileStore {
this.commonEnumList("user", { enumClass: "com.engine.salary.enums.UserStatusEnum" });
};
// 发起调薪地址
@action
salaryAdjustmentInfo = () => {
API.salaryAdjustmentInfo().then(({ status, data }) => {
if (status) {
this.setSalaryIncreaseUrl(data);
}
});
};
// 获取导入类型
@action
getImportTypes = () => {