薪资核算编辑框权限

This commit is contained in:
liyongshun 2022-07-11 18:21:47 +08:00
parent e22fa6429f
commit c9722919fe
7 changed files with 193 additions and 173 deletions

View File

@ -1,6 +1,6 @@
/*
* Author: 黎永顺
* Description:
* Description:
* Date: 2022-06-21 14:27:29
* LastEditTime: 2022-06-21 15:05:12
*/
@ -22,7 +22,6 @@ export default class CustomTable extends React.Component {
? <WeaTable {...this.props} />
: <Table
{...this.props}
size="middle"
className="wea-new-table antd-wrap"
bordered
/>}

View File

@ -82,7 +82,7 @@ export default class EditSalaryDetail extends React.Component {
<Col span={8}>
<Row style={{paddingLeft:"10px", paddingRight: "10px"}}>
<Col span={12}>{item.salaryItemName}</Col>
<Col span={12}><WeaInput value={item.resultValue} onChange={(value) => {
<Col span={12}><WeaInput value={item.resultValue} disabled={!item.canEdit} onChange={(value) => {
this.handleItemValueChange(item.salaryItemName, value, true)
}}/></Col>
</Row>
@ -90,7 +90,7 @@ export default class EditSalaryDetail extends React.Component {
)
})
}
</Row>
</div>
</div>
@ -115,7 +115,7 @@ export default class EditSalaryDetail extends React.Component {
<Col span={8}>
<Row style={{paddingLeft:"10px", paddingRight: "10px"}}>
<Col span={12}>{item.salaryItemName}</Col>
<Col span={12}><WeaInput value={item.resultValue} onChange={(value) => {
<Col span={12}><WeaInput value={item.resultValue} disabled={!item.canEdit} onChange={(value) => {
this.handleItemValueChange(item.salaryItemName, value, false)
}}/></Col>
</Row>
@ -129,4 +129,4 @@ export default class EditSalaryDetail extends React.Component {
</div>
)
}
}
}

View File

@ -1,11 +1,11 @@
import React from "react";
import UserSure from "./userSure";
import {inject, observer} from "mobx-react";
import { inject, observer } from "mobx-react";
import CustomTab from "../../components/customTab";
import SalaryDetail from "./salaryDetail";
import {Button, Dropdown, Menu, message, Modal} from "antd";
import {WeaInputSearch} from "ecCom";
import {getQueryString} from "../../util/url";
import { Button, Dropdown, Menu, message, Modal } from "antd";
import { WeaInputSearch } from "ecCom";
import { getQueryString } from "../../util/url";
import AcctResultImportModal from "./acctResult/importModal/acctResultImportModal";
import ProgressModal from "../../components/progressModal";
@ -28,15 +28,15 @@ export default class CalculateDetail extends React.Component {
componentWillMount() {
let id = getQueryString("id");
this.id = id;
const {calculateStore: {checkTaxAgent}} = this.props;
const { calculateStore: { checkTaxAgent } } = this.props;
checkTaxAgent(this.id);
let modalParam = {...this.state.modalParam, salaryAcctRecordId: id};
this.setState({modalParam});
let modalParam = { ...this.state.modalParam, salaryAcctRecordId: id };
this.setState({ modalParam });
}
// 核算点击事件
handleAccount() {
const {calculateStore} = this.props;
const { calculateStore } = this.props;
const {
acctresultAccounting,
acctResultList,
@ -46,7 +46,7 @@ export default class CalculateDetail extends React.Component {
title: "信息确认",
content: "点击核算,公式项将按照公式逻辑核算,核算结果将覆盖原数据",
onOk: () => {
this.setState({progress: 0});
this.setState({ progress: 0 });
acctresultAccounting(this.id).then(() => {
this.setState({
progressVisible: true
@ -73,7 +73,7 @@ export default class CalculateDetail extends React.Component {
});
message.error(data.message);
}
this.setState({progress: Number(progress) * 100});
this.setState({ progress: Number(progress) * 100 });
});
}, 1000);
});
@ -96,7 +96,7 @@ export default class CalculateDetail extends React.Component {
this.id
);
} else if (e.key == "3") {
const {calculateStore: {exportAll}} = this.props;
const { calculateStore: { exportAll } } = this.props;
exportAll(this.id);
}
};
@ -110,7 +110,7 @@ export default class CalculateDetail extends React.Component {
// 核算结果搜索
handleSearch(value) {
const {calculateStore: {acctResultList}} = this.props;
const { calculateStore: { acctResultList } } = this.props;
acctResultList(this.id, value);
}
@ -122,9 +122,9 @@ export default class CalculateDetail extends React.Component {
}
render() {
const {selectedKey, modalParam, acctResultImportVisiable} = this.state;
const {calculateStore} = this.props;
const {calculateProgress} = calculateStore;
const { selectedKey, modalParam, acctResultImportVisiable } = this.state;
const { calculateStore } = this.props;
const { calculateProgress } = calculateStore;
const menu = (
<Menu onClick={this.handleMenuClick.bind(this)}>
@ -137,26 +137,21 @@ export default class CalculateDetail extends React.Component {
const renderRightOperation = () => {
if (selectedKey == "1") {
return (
<div style={{display: "inline-block"}}>
<div style={{ display: "inline-block" }}>
<Button
type="primary"
style={{marginRight: "10px"}}
style={{ marginRight: "10px" }}
onClick={() => this.handleAccount()}>
核算
</Button>
<Button
style={{marginRight: "10px"}}
onClick={() => console.log(111)}>
校验
</Button>
{/* <Button type="default" style={{marginRight: "10px"}} onClick={() => this.setState({stepSlideVisible: true})}>校验</Button> */}
<Dropdown.Button style={{marginRight: "10px"}} overlay={menu}>
<Dropdown.Button style={{ marginRight: "10px" }} overlay={menu}>
更多
</Dropdown.Button>
<WeaInputSearch
value={this.state.searchValue}
onChange={value => {
this.setState({searchValue: value});
this.setState({ searchValue: value });
}}
onSearch={value => {
this.handleSearch(value);
@ -179,12 +174,12 @@ export default class CalculateDetail extends React.Component {
];
return (
<div style={{overflowY: "scroll", height: "100%"}}>
<div style={{ overflowY: "hidden", height: "100%" }}>
<CustomTab
topTab={topTab}
searchOperationItem={renderRightOperation()}
onChange={v => {
this.setState({selectedKey: v});
this.setState({ selectedKey: v });
}}
/>
{selectedKey == 0 && <UserSure/>}
@ -208,7 +203,7 @@ export default class CalculateDetail extends React.Component {
<ProgressModal
visible={this.state.progressVisible}
onCancel={() => {
this.setState({progressVisible: false, progress: 0});
this.setState({ progressVisible: false, progress: 0 });
}}
progress={this.state.progress}
/>}

View File

@ -1,138 +1,161 @@
.userSure {
padding: 20px;
.baseInfo {
height: 47px;
line-height: 47px;
}
.formWrapper {
line-height: 40px;
border-bottom: 1px solid #eee;
padding: 20px;
.baseInfo {
height: 47px;
line-height: 47px;
}
.formWrapper {
line-height: 40px;
border-bottom: 1px solid #eee;
}
.operateBarWrapper {
border-bottom: 1px solid #eee;
line-height: 47px;
height: 47px;
.crumbsWrapper {
display: inline-block;
.crumbItem {
margin-right: 10px;
cursor: pointer;
}
.crumbItemSelected {
color: #2db7f5;
}
}
.operateBarWrapper {
border-bottom: 1px solid #eee;
line-height: 47px;
height: 47px;
.crumbsWrapper {
display: inline-block;
.crumbItem {
margin-right: 10px;
cursor: pointer;
}
.crumbItemSelected {
color: #2db7f5;
}
}
.crumbsOperateWrapper {
float: right;
display: inline-block;
.headerIcon {
display: inline-block;
.iconItem {
margin-right: 15px;
color: #2db7f5;
cursor: pointer;
font-size: 16px;
}
}
.crumbsOperateWrapper {
float: right;
display: inline-block;
.headerIcon {
display: inline-block;
.iconItem {
margin-right: 15px;
color: #2db7f5;
cursor: pointer;
font-size: 16px;
}
}
}
}
}
.salaryDetail {
padding: 10px 20px;
overflow-y: scroll;
.salaryBarWrapper {
height: 47px;
line-height: 47px;
padding-left: 10px;
padding-right: 10px;
border-bottom: 1px solid #eee;
.warningspan {
float: right;
color: #2db7f5;
cursor: pointer;
}
}
padding: 10px 20px;
overflow-y: scroll;
.tableWrapper {
margin-top: 10px;
.salaryBarWrapper {
height: 47px;
line-height: 47px;
padding-left: 10px;
padding-right: 10px;
border-bottom: 1px solid #eee;
.warningspan {
float: right;
color: #2db7f5;
cursor: pointer;
}
}
.tableWrapper {
margin-top: 10px;
max-height: calc(100vh - 120px);
overflow: auto;
}
}
.editSalaryDetail {
padding: 20px;
.detailItemWrapper {
.itemTitle {
height: 40px;
line-height: 40px;
font-size: 14px;
}
.itemContent {
margin-top: 10px;
}
}
padding: 20px;
.itemRow {
line-height: 40px;
}
}
.placeOnFileDetail {
padding: 20px;
height: 100%;
overflow-y: scroll;
.tabWrapper {
height: 47px;
line-height: 47px;
}
.tableWrapper {
margin-top: 10px;
}
}
.fileMergeDetail {
padding: 20px;
.detialItemWrapper {
.titleWrapper {
height: 47px;
line-height: 47px;
.itemTitle {
font-size: 14px;
}
}
.rightItemWrapper {
display: inline-block;
float: right;
}
.detailItemWrapper {
.itemTitle {
height: 40px;
line-height: 40px;
font-size: 14px;
}
.itemContent {
margin-top: 10px;
.itemRow {
line-height: 40px;
}
margin-top: 10px;
}
}
.itemRow {
line-height: 40px;
}
}
.placeOnFileDetail {
padding: 20px;
height: 100%;
overflow-y: scroll;
.tabWrapper {
height: 47px;
line-height: 47px;
}
.tableWrapper {
margin-top: 10px;
}
}
.fileMergeDetail {
padding: 20px;
.detialItemWrapper {
.titleWrapper {
height: 47px;
line-height: 47px;
.itemTitle {
font-size: 14px;
}
}
.tableWrapper {
margin-top: 10px;
.rightItemWrapper {
display: inline-block;
float: right;
}
}
.itemContent {
margin-top: 10px;
.itemRow {
line-height: 40px;
}
}
.tableWrapper {
margin-top: 10px;
}
}
.compareDetail {
overflow-y: scroll;
height: 100%;
padding: 20px;
.titleBarWrapper {
height: 47px;
line-height: 47px;
.rightTitle {
float: right;
}
overflow-y: scroll;
height: 100%;
padding: 20px;
.titleBarWrapper {
height: 47px;
line-height: 47px;
.rightTitle {
float: right;
}
.tableWrapper {
margin-top: 10px;
}
}
}
.tableWrapper {
margin-top: 10px;
}
}

View File

@ -154,7 +154,6 @@ export default class SalaryDetail extends React.Component {
loading={loading}
dataSource={acctResultListDateSource}
columns={this.getColumns()}
scroll={{x: this.getColumns().length * 150}}
total={acctResultListPageInfo.total}
current={acctResultListPageInfo.pageNum}
pageSize={this.pageInfo.pageSize}
@ -163,6 +162,7 @@ export default class SalaryDetail extends React.Component {
this.handleDataPageChange(value)
}}
isWeaTable={false}
scroll={{ x: 1500 }}
onShowSizeChange={(current, pageSize) => {
this.pageInfo = {current, pageSize}
this.handleShowSizeChange(this.pageInfo)
@ -193,4 +193,4 @@ export default class SalaryDetail extends React.Component {
</div>
)
}
}
}

View File

@ -1,11 +1,9 @@
import React from "react";
import { Row, Col, Icon, Table, Modal, message } from "antd";
import { WeaHelpfulTip, WeaInputSearch, WeaBrowser, WeaTable } from "ecCom";
import { Col, Icon, message, Modal, Row } from "antd";
import { WeaBrowser, WeaHelpfulTip, WeaInputSearch } from "ecCom";
import { inject, observer } from "mobx-react";
import { dataSource, monthOnMonthColumns, userSureColumns } from "./columns";
import "./index.less";
import { getQueryString } from "../../util/url";
import CustomTable from "../../components/customTable";
import CustomPaginationTable from "../../components/customPaginationTable";
@inject("calculateStore")
@ -121,7 +119,8 @@ export default class UserSure extends React.Component {
});
});
},
onCancel: () => {}
onCancel: () => {
}
});
}
@ -182,7 +181,8 @@ export default class UserSure extends React.Component {
});
});
},
onCancel: () => {}
onCancel: () => {
}
});
};
@ -249,6 +249,7 @@ export default class UserSure extends React.Component {
...pageInfo
});
}
// 搜索
handleUserListSearch(value) {
const {
@ -301,23 +302,23 @@ export default class UserSure extends React.Component {
<Row>
<Col span={6}>
薪资所属月<WeaHelpfulTip
width={100}
title={`薪资周期\n
width={100}
title={`薪资周期\n
${baseSalarySobCycle.salaryCycle &&
baseSalarySobCycle.salaryCycle
.fromDate}至${baseSalarySobCycle.salaryCycle &&
baseSalarySobCycle.salaryCycle.endDate}\n
baseSalarySobCycle.salaryCycle
.fromDate}至${baseSalarySobCycle.salaryCycle &&
baseSalarySobCycle.salaryCycle.endDate}\n
税款所属期\n
${baseSalarySobCycle.taxCycle}\n
考勤取值周期\n
${baseSalarySobCycle.attendCycle &&
baseSalarySobCycle.attendCycle
.fromDate}至${baseSalarySobCycle.attendCycle &&
baseSalarySobCycle.attendCycle.endDate}\n
baseSalarySobCycle.attendCycle
.fromDate}至${baseSalarySobCycle.attendCycle &&
baseSalarySobCycle.attendCycle.endDate}\n
福利台账月份\n
引用${baseSalarySobCycle.socialSecurityCycle}的福利台账数据`}
placement="topLeft"
/>
placement="topLeft"
/>
</Col>
<Col span={18}>
{calculateBaseForm.formDTO &&
@ -403,7 +404,7 @@ export default class UserSure extends React.Component {
customized
onChange={(ids, names, datas) =>
this.handleUserBrowserChange(ids)}>
<Icon className="iconItem" type="plus-square" title="新增" />
<Icon className="iconItem" type="plus-square" title="新增"/>
</WeaBrowser>
<i
className="icon-coms-fawen iconItem"
@ -450,6 +451,7 @@ export default class UserSure extends React.Component {
this.handleUserListPageChange(value);
}}
isWeaTable={false}
scroll={{ y: "calc(100vh - 340px)" }}
onShowSizeChange={(current, pageSize) => {
this.pageInfo = { current, pageSize };
this.handleShowSizeChange(this.pageInfo);
@ -458,6 +460,7 @@ export default class UserSure extends React.Component {
{this.state.selectedKey == 1 &&
<CustomPaginationTable
isWeaTable={false}
scroll={{ y: "calc(100vh - 340px)" }}
dataSource={reducedemployeeListDataSource}
columns={reducedemployeeListColumns}
total={reducedemployeeListPageInfo.total}

View File

@ -218,12 +218,12 @@ export default class Ledger extends React.Component {
const rightMenu = [
// 右键菜单
{
key: "BTN_COLUMN",
icon: <i className="icon-coms-Custom"/>,
content: "显示列定制",
onClick: this.showColumn
}
// {
// key: "BTN_COLUMN",
// icon: <i className="icon-coms-Custom"/>,
// content: "显示列定制",
// onClick: this.showColumn
// }
];
const collectParams = {
// 收藏功能配置
@ -285,7 +285,7 @@ export default class Ledger extends React.Component {
"关联人员",
"薪资项目",
"调薪计薪规则",
"校验规则"
// "校验规则"
];
const handleStep1Save = () => {
@ -545,7 +545,7 @@ export default class Ledger extends React.Component {
{ title: "关联人员", key: 1 },
{ title: "薪资项目", key: 2 },
{ title: "调薪计薪规则", key: 3 },
{ title: "校验规则", key: 4 }
// { title: "校验规则", key: 4 }
]}
showOperateBtn={showOperateBtn}
editable={canEdit === "true"}