salary-management-front/pc4mobx/hrmSalary/pages/dataAcquisition/layout.js

155 lines
5.1 KiB
JavaScript
Raw Normal View History

2023-02-17 17:21:05 +08:00
/*
* Author: 黎永顺
* name: 数据采集-组件框
* Description:
* Date: 2023/2/17
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
2023-02-21 09:57:44 +08:00
import { toJS } from "mobx";
import { WeaLocaleProvider, WeaNewScroll, WeaSlideModal, WeaTab, WeaTop } from "ecCom";
import ImportModal from "./importDialog";
import LogDialog from "../../components/logViewModal";
2023-02-20 09:41:36 +08:00
import SlideModalTitle from "../../components/slideModalTitle";
2023-02-21 09:57:44 +08:00
import { getSearchs } from "../../util";
2023-02-17 17:21:05 +08:00
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
2023-02-17 17:21:05 +08:00
@inject("taxAgentStore")
@observer
class Layout extends Component {
constructor(props) {
super(props);
this.state = {
showSearchAd: false, logDialogVisible: false, filterConditions: "[]"
2023-02-17 17:21:05 +08:00
};
}
componentDidMount() {
const { taxAgentStore: { fetchTaxAgentOption } } = this.props;
fetchTaxAgentOption();
window.addEventListener("resize", this.resizeUpdate);
}
2023-02-21 09:57:44 +08:00
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.exportPayloadType !== this.props.exportPayloadType) {
2023-02-21 09:57:44 +08:00
/*
* Author: 黎永顺
* Description:导出数据采集数据
* Params:
* Date: 2023/2/20
*/
window.open(nextProps.exportPayloadUrl, "_self");
}
if (nextProps.targetid !== this.props.targetid && nextProps.targetid) {
/*
* Author: 黎永顺
* Description:操作日志
* Params:
* Date: 2023/2/20
*/
this.onDropMenuClick("log", nextProps.targetid);
}
2023-02-21 09:57:44 +08:00
}
2023-02-17 17:21:05 +08:00
componentWillUnmount() {
window.removeEventListener("resize", this.resizeUpdate);
}
resizeUpdate = () => {
const { onResizeWindowInnerWidth } = this.props;
onResizeWindowInnerWidth(window.innerWidth);
};
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
}
};
2023-02-17 17:21:05 +08:00
render() {
const { showSearchAd, logDialogVisible, filterConditions } = this.state;
2023-02-20 09:41:36 +08:00
const {
title, btns, leftComp, children, taxAgentStore: { showOperateBtn },
slidePayload, onClose, onSave, slideLoading, form, condition, onImportFile,
onAdSearch, onCancel, importPayload, detailOptBtns, logFunction, onClearTargrtid
2023-02-20 09:41:36 +08:00
} = this.props;
2023-02-20 14:28:08 +08:00
const { visible, title: subtitle, children: slideChildren } = slidePayload;
2023-02-21 09:57:44 +08:00
const {
visible: importVisiable, importFormComponent, importOpts,
importResult, templateLink, previewUrl
2023-02-21 09:57:44 +08:00
} = importPayload;
2023-02-17 17:21:05 +08:00
return (
<div className="layoutWrapper">
<WeaTop title={title} buttons={showOperateBtn ? btns : []}
icon={<i className="icon-coms-fa"/>} iconBgcolor="#F14A2D"
showDropIcon onDropMenuClick={this.onDropMenuClick}
dropMenuDatas={[
{
key: "log", icon: <i className="iconfont icon-caozuorizhi32"/>,
content: getLabel(545781, "操作日志")
}
]}
2023-02-17 17:21:05 +08:00
/>
<WeaTab
searchType={["base", "advanced"]}
replaceLeft={leftComp}
2023-02-21 09:57:44 +08:00
searchsAd={getSearchs(form, toJS(condition), 2)}
2023-02-17 17:21:05 +08:00
showSearchAd={showSearchAd}
setShowSearchAd={bool => this.setState({ showSearchAd: bool })}
2023-02-21 09:57:44 +08:00
onAdReset={() => form.resetForm()}
onAdSearch={onAdSearch}
onSearch={onAdSearch}
onSearchChange={(v) => form.updateFields({ username: v })}
searchsBaseValue={form.getFormParams().username}
2023-02-17 17:21:05 +08:00
/>
<div className="dataContent">
<WeaNewScroll height="100%">{children}</WeaNewScroll>
2023-02-21 09:57:44 +08:00
{/*导入弹框*/}
<ImportModal
visible={importVisiable} onCancel={onCancel} importParams={importFormComponent}
importOpts={importOpts} importResult={importResult} templateLink={templateLink}
previewUrl={previewUrl} onImportFile={onImportFile}
2023-02-21 09:57:44 +08:00
/>
2023-02-20 09:41:36 +08:00
{/* 新增-编辑-详情弹框 */}
<WeaSlideModal
className="slideOuterWrapper"
visible={visible}
top={0}
measureT="%"
width={80}
measureX="%"
2023-02-20 09:41:36 +08:00
height={100}
measureY="%"
direction="right"
title={
<SlideModalTitle
subtitle={subtitle}
2023-02-20 14:28:08 +08:00
loading={slideLoading}
onSave={onSave}
2023-02-21 09:57:44 +08:00
editable={subtitle.length <= 2}
2023-02-20 09:41:36 +08:00
showOperateBtn={showOperateBtn}
2023-02-21 09:57:44 +08:00
customOperate={subtitle.length <= 2 ? [] : detailOptBtns}
2023-02-20 09:41:36 +08:00
/>
}
content={slideChildren}
onClose={onClose}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction={logFunction} filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false }, () => onClearTargrtid())}/>
2023-02-17 17:21:05 +08:00
</div>
</div>
);
}
}
export default Layout;