高版本表格组件修改

This commit is contained in:
黎永顺 2023-01-16 11:39:49 +08:00
parent 8fd6579dfd
commit d6f7d3c19b
3 changed files with 76 additions and 135 deletions

View File

@ -178,7 +178,9 @@
}
.tableWrapper {
margin-top: 10px;
padding: 10px;
height: calc(100vh - 121px);
overflow: hidden;
}
}

View File

@ -2,143 +2,97 @@ import React from "react";
import CustomTab from "../../components/customTab";
import { Dropdown, Menu, message } from "antd";
import { WeaHelpfulTip, WeaInputSearch, WeaSlideModal } from "ecCom";
import { placeOnFileColumns } from "./columns";
import SlideModalTitle from "../../components/slideModalTitle";
import FileMergeDetail from "./fileMergeDetail";
import { getQueryString } from "../../util/url";
import { inject, observer } from "mobx-react";
import CustomPaginationTable from "../../components/customPaginationTable";
import { renderLoading } from "../../util";
import "./index.less";
@inject("calculateStore")
@observer
export default class PlaceOnFileDetail extends React.Component {
constructor(props) {
super(props);
placeOnFileColumns.map(item => {
if (item.dataIndex == "username") {
item.render = (text, record) => (
<a onClick={() => {
this.onDetail();
}}>{text}</a>
);
}
});
this.state = {
slideVisiable: false,
selectedRowKeys: [],
searchValue: ""
};
this.id = "";
this.length = 0;
this.pageInfo = {
current: 1,
pageSize: 10
};
}
componentWillMount() {
let id = getQueryString("id");
this.id = id;
const { calculateStore: { getSalarySobCycle, acctResultList } } = this.props;
getSalarySobCycle(id);
acctResultList({ salaryAcctRecordId: id });
this.id = getQueryString("id");
const { calculateStore: { getSalarySobCycle } } = this.props;
getSalarySobCycle(this.id);
}
componentDidMount() {
window.addEventListener("message", this.handleClick, false);
}
// 获取列表的列
getColumns() {
const { calculateStore: { acctResultListTableStore, acctResultListColumns } } = this.props;
let columns = acctResultListColumns ? acctResultListColumns : [];
columns = columns.filter(item => item.hide == "FALSE").map(item => {
let result = { ...item };
result.title = item.text;
result.dataIndex = item.column;
result.oldWidth = result.width;
result.width = null;
this.length = 0;
if (result.children) {
result.children.map(child => {
child.width = 150;
child.title = child.text;
child.dataIndex = child.column;
this.length++;
});
} else {
this.length++;
result.width = 150;
componentWillUnmount() {
window.removeEventListener("message", this.handleClick, false);
}
handleClick = ({ data }) => {
const childFrameObj = document.getElementById("atdTable");
const salaryAcctRecordId = getQueryString("id");
const { type, data: { id, data: record } = {} } = data;
if (type === "PR") {
if (id === "BATCHDELETE") {
this.setState({ selectedRowKeys: record });
}
return result;
});
columns.push({
title: "操作",
key: "cz",
render: (text, record) => {
return <a onClick={() => {
this.handleEdit(record);
}}>编辑</a>;
} else {
const payload = {
type: "PR",
listType: "",
hasOperate: false,
url: "/api/bs/hrmsalary/salaryacct/acctresult/list",
queryParams: {
salaryAcctRecordId,
employeeName: this.state.searchValue
}
};
childFrameObj.contentWindow.postMessage(JSON.stringify(payload), "*");
}
};
handleSearch = (employeeName) => {
const childFrameObj = document.getElementById("atdTable");
const salaryAcctRecordId = getQueryString("id");
const payload = {
type: "PR",
listType: "",
url: "/api/bs/hrmsalary/salaryacct/acctresult/list",
queryParams: {
salaryAcctRecordId,
employeeName
}
});
return columns;
}
onDetail() {
this.setState({ slideVisiable: true });
}
handleSearch(employeeName) {
const { calculateStore: { acctResultList } } = this.props;
acctResultList({ salaryAcctRecordId: this.id, employeeName, ...this.pageInfo, current: 1 });
}
// 分页
handleDataPageChange(current) {
const { calculateStore: { acctResultList } } = this.props;
acctResultList({ salaryAcctRecordId: this.id, employeeName: this.state.searchValue, ...this.pageInfo, current });
}
handleShowSizeChange(pageInfo) {
const { calculateStore: { acctResultList } } = this.props;
acctResultList({
salaryAcctRecordId: this.id,
employeeName: this.state.searchValue, ...this.pageInfo, ...pageInfo
});
}
};
childFrameObj.contentWindow.postMessage(JSON.stringify(payload), "*");
};
handleMenuClick() {
const { calculateStore: { exportAll } } = this.props;
const { selectedRowKeys } = this.state;
if (selectedRowKeys.length == 0) {
if (selectedRowKeys.length === 0) {
message.warning("未选择条目");
return;
}
exportAll(this.id, selectedRowKeys.join(","));
}
handleExportAll() {
handleExportAll = () => {
const { calculateStore: { exportAll } } = this.props;
exportAll(this.id);
}
onSelectChange = selectedRowKeys => {
this.setState({ selectedRowKeys });
};
render() {
const { calculateStore } = this.props;
const {
baseSalarySobCycle,
acctResultListDateSource,
acctResultListPageInfo
} = calculateStore;
const { selectedRowKeys, slideVisiable } = this.state;
const { baseSalarySobCycle } = calculateStore;
const { slideVisiable } = this.state;
const rowSelection = {
selectedRowKeys,
onChange: this.onSelectChange
};
const menu = (
<Menu onClick={(e) => this.handleMenuClick(e)}>
@ -161,9 +115,6 @@ export default class PlaceOnFileDetail extends React.Component {
);
};
if (this.getColumns().length === 1) { // 无权限处理
return renderLoading();
}
return (
<div className="placeOnFileDetail">
@ -188,42 +139,32 @@ export default class PlaceOnFileDetail extends React.Component {
/>
</div>
<div className="tableWrapper">
<CustomPaginationTable
columns={this.getColumns()}
scroll={{ x: this.length * 150 }}
dataSource={acctResultListDateSource}
rowSelection={rowSelection}
total={acctResultListPageInfo.total}
current={acctResultListPageInfo.pageNum}
pageSize={this.pageInfo.pageSize}
onPageChange={(value) => {
this.pageInfo.current = value;
this.handleDataPageChange(value);
}}
onShowSizeChange={(current, pageSize) => {
this.pageInfo = { current, pageSize };
this.handleShowSizeChange(this.pageInfo);
}}
<iframe
style={{ border: 0, width: "100%", height: "100%" }}
// src="http://localhost:7607/#/atdTable"
src="/spa/hrmSalary/hrmSalaryCalculateDetail/index.html#/atdTable"
id="atdTable"
/>
</div>
{
slideVisiable && <WeaSlideModal visible={slideVisiable}
top={0}
width={40}
height={100}
direction={"right"}
measure={"%"}
title={
<SlideModalTitle
subtitle={"合并计税详情"}
editable={true}
/>
}
content={(<FileMergeDetail/>)}
onClose={() => this.setState({ slideVisiable: false })}
showMask={true}
closeMaskOnClick={() => this.setState({ slideVisiable: false })}/>
slideVisiable &&
<WeaSlideModal
visible={slideVisiable}
top={0}
width={40}
height={100}
direction={"right"}
measure={"%"}
title={
<SlideModalTitle
subtitle={"合并计税详情"}
editable={true}
/>
}
content={(<FileMergeDetail/>)}
onClose={() => this.setState({ slideVisiable: false })}
showMask={true}
closeMaskOnClick={() => this.setState({ slideVisiable: false })}/>
}
</div>
);

View File

@ -266,7 +266,6 @@ export class calculateStore {
API.getSalarySobCycle({ salaryAcctRecordId: id }).then(res => {
if (res.status) {
this.baseSalarySobCycle = res.data;
this.getColumnDesc({ salaryAcctRecordId: id });
} else {
message.error(res.errormsg || "获取失败");
}
@ -343,7 +342,6 @@ export class calculateStore {
this.acctResultListDateSource = list;
this.acctResultListPageInfo = res.data.pageInfo;
this.acctResultListColumns = res.data.columns;
this.getColumnDesc({ salaryAcctRecordId: params.salaryAcctRecordId });
resolve(res.data.columns);
} else {
message.error(res.errormsg || "");