薪资核算编辑框权限
This commit is contained in:
parent
e22fa6429f
commit
c9722919fe
|
|
@ -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
|
||||
/>}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
/>}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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"}
|
||||
|
|
|
|||
Loading…
Reference in New Issue