139 lines
5.0 KiB
JavaScript
139 lines
5.0 KiB
JavaScript
/*
|
|
* Author: 黎永顺
|
|
* name: 工资单发放-重构页面
|
|
* Description:
|
|
* Date: 2023/10/12
|
|
*/
|
|
import React, { Component } from "react";
|
|
import { inject, observer } from "mobx-react";
|
|
import { WeaLocaleProvider, WeaReqTop } from "ecCom";
|
|
import GrantQuery from "./components/reqQuery/grantQuery";
|
|
import TemplateQuery from "./components/reqQuery/templateQuery";
|
|
import GrantTableList from "./components/grantTableList";
|
|
import PayrollTemplateTableList from "./components/payrollTemplateTableList";
|
|
import TemplateBaseSettings from "../payroll/templateBaseSettings";
|
|
import { Button } from "antd";
|
|
import moment from "moment";
|
|
import "./index.less";
|
|
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
|
|
|
@inject("taxAgentStore")
|
|
@observer
|
|
class Index extends Component {
|
|
constructor(props) {
|
|
super(props);
|
|
this.state = {
|
|
selectedKey: "grant", isRefresh: false, baseSetSaveLoading: false,
|
|
queryParams: {
|
|
salarySobId: "", name: "",
|
|
dateRange: [
|
|
moment(new Date()).startOf("year").format("YYYY-MM"),
|
|
moment(new Date()).endOf("year").format("YYYY-MM")
|
|
]
|
|
}
|
|
};
|
|
this.templateRef = null;
|
|
this.baseSetRef = null;
|
|
}
|
|
|
|
renderReqBtns = () => {
|
|
const { taxAgentStore: { showOperateBtn } } = this.props;
|
|
const { selectedKey, isRefresh, queryParams } = this.state;
|
|
let reqBtns = [];
|
|
switch (selectedKey) {
|
|
case "grant":
|
|
reqBtns = [
|
|
<GrantQuery queryParams={queryParams}
|
|
onChange={v => this.setState({
|
|
isRefresh: !isRefresh,
|
|
queryParams: { ...queryParams, ...v }
|
|
})}/>
|
|
];
|
|
break;
|
|
case "template":
|
|
const loading = this.templateRef ? this.templateRef.wrappedInstance.state.delLoading : false;
|
|
const delDisabled = !this.templateRef || _.isEmpty(this.templateRef.wrappedInstance.state.selectedRowKeys);
|
|
const btns = [
|
|
<Button type="primary" onClick={() => {
|
|
this.templateRef.wrappedInstance.handleOpts({ key: "edit" }, {});
|
|
}}>{getLabel(365, "新建")}</Button>,
|
|
<Button type="ghost" loading={loading} disabled={delDisabled} onClick={() => {
|
|
this.templateRef.wrappedInstance.handleOpts({ key: "del" }, {});
|
|
}}>{getLabel(32136, "批量删除")}</Button>
|
|
];
|
|
const queryBtns = [
|
|
<TemplateQuery queryParams={queryParams} onSearch={() => this.setState({ isRefresh: !isRefresh })}
|
|
onChange={v => this.setState({
|
|
isRefresh: _.keys(v)[0] === "name" ? isRefresh : !isRefresh,
|
|
queryParams: { ...queryParams, ...v }
|
|
})}/>
|
|
];
|
|
reqBtns = showOperateBtn ? [...btns, ...queryBtns] : [...queryBtns];
|
|
break;
|
|
case "watermark":
|
|
const { baseSetSaveLoading } = this.state;
|
|
reqBtns = [
|
|
<Button type="primary" loading={baseSetSaveLoading}
|
|
onClick={() => this.baseSetRef.salaryBillBaseSetSave()}>{getLabel(537558, "保存")}</Button>
|
|
];
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return reqBtns;
|
|
};
|
|
renderContent = () => {
|
|
const { selectedKey, queryParams, isRefresh } = this.state;
|
|
let dom = null;
|
|
switch (selectedKey) {
|
|
case "grant":
|
|
dom = <GrantTableList queryParams={queryParams} isRefresh={isRefresh}
|
|
onUpdateTemp={(id) => this.setState({ selectedKey: "template" }, () => {
|
|
this.templateRef.wrappedInstance.handleOpts({ key: "edit" }, { id });
|
|
})}
|
|
/>;
|
|
break;
|
|
case "template":
|
|
dom = <PayrollTemplateTableList ref={dom => this.templateRef = dom} queryParams={queryParams}
|
|
isRefresh={isRefresh} forceUpdate={() => this.forceUpdate()}/>;
|
|
break;
|
|
case "watermark":
|
|
dom = <TemplateBaseSettings
|
|
ref={dom => this.baseSetRef = dom}
|
|
onChangeLoading={loading => this.setState({ baseSetSaveLoading: loading })}
|
|
/>;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return dom;
|
|
};
|
|
|
|
render() {
|
|
const { selectedKey, queryParams } = this.state;
|
|
const tabs = [
|
|
{ key: "grant", title: getLabel(538012, "工资单发放") },
|
|
{ key: "template", title: getLabel(543575, "工资单模板设置") },
|
|
{ key: "watermark", title: getLabel(545285, "工资单基础设置") }
|
|
];
|
|
return (
|
|
<div className="salary-payroll-main-page">
|
|
<WeaReqTop
|
|
title={getLabel(538012, "工资单发放")} tabDatas={tabs} selectedKey={selectedKey}
|
|
buttonSpace={10} icon={<i className="icon-coms-fa"/>} iconBgcolor="#F14A2D"
|
|
onChange={key => this.setState({
|
|
selectedKey: key,
|
|
queryParams: { ...queryParams, name: "", salarySobId: "" }
|
|
})}
|
|
buttons={this.renderReqBtns()}
|
|
>
|
|
<div className="salary-payroll-content">{this.renderContent()}</div>
|
|
</WeaReqTop>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default Index;
|