泛微薪资核算iframe表格
parent
22964c13ba
commit
978a248cf3
@ -0,0 +1,84 @@
|
|||||||
|
import React, { useEffect, useState } from "react";
|
||||||
|
import { Table } from "antd";
|
||||||
|
import API from "@/api";
|
||||||
|
import "../atdTable/components/index.less";
|
||||||
|
|
||||||
|
const RankMapTable: React.FC = () => {
|
||||||
|
const [cols, setCols] = useState<Array<any>>([]);
|
||||||
|
const [dataSource, setDataSource] = useState<Array<any>>([]);
|
||||||
|
useEffect(() => {
|
||||||
|
getRankInfo();
|
||||||
|
}, []);
|
||||||
|
useEffect(() => {
|
||||||
|
if (!_.isEmpty(dataSource)) {
|
||||||
|
setCols(
|
||||||
|
_.map(cols, item => {
|
||||||
|
const dataIndex = item.dataIndex + "_rowSpan";
|
||||||
|
const colsIndex = item.dataIndex.split("_")[1];
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
align: "center",
|
||||||
|
className: colsIndex === "1" ? "bg_1_Cols" : colsIndex === "2" ? "bg_2_Cols" : "",
|
||||||
|
render: (text: string, _: any) => {
|
||||||
|
return {
|
||||||
|
children: <span>{text}</span>,
|
||||||
|
props: {
|
||||||
|
rowSpan: _[dataIndex]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}, [dataSource]);
|
||||||
|
|
||||||
|
const changeData = (data: any, field: any) => {
|
||||||
|
let count = 0, indexCount = 1;
|
||||||
|
const rowSpan = field + "_rowSpan";
|
||||||
|
try {
|
||||||
|
while (indexCount < data.length) {
|
||||||
|
let item = data.slice(count, count + 1)[0];
|
||||||
|
if (!item[rowSpan]) {
|
||||||
|
item[rowSpan] = 1;
|
||||||
|
}
|
||||||
|
if (item[field] === data[indexCount][field]) {
|
||||||
|
item[rowSpan]++;
|
||||||
|
data[indexCount][rowSpan] = 0;
|
||||||
|
} else {
|
||||||
|
count = indexCount;
|
||||||
|
}
|
||||||
|
indexCount++;
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
const getRankInfo = () => {
|
||||||
|
API.CalculateService.getRankInfo().then(({ success, data }) => {
|
||||||
|
if (success) {
|
||||||
|
const { data: dataCopy } = data;
|
||||||
|
const { col: columns, data: list } = dataCopy;
|
||||||
|
let tmpV: any = [];
|
||||||
|
_.forEach(_.reduce(columns, (pre: any, cur: any) => ([...pre, cur["dataIndex"]]), []), item => {
|
||||||
|
tmpV = changeData(list, item);
|
||||||
|
});
|
||||||
|
setCols(columns);
|
||||||
|
setDataSource(tmpV);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
return <div style={{ height: "100%", overflowY: "auto" }}>
|
||||||
|
<Table
|
||||||
|
className="rankMapWrapper"
|
||||||
|
columns={cols}
|
||||||
|
dataSource={dataSource}
|
||||||
|
bordered
|
||||||
|
pagination={false}
|
||||||
|
size="middle"
|
||||||
|
/>;
|
||||||
|
</div>;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
export default RankMapTable;
|
Loading…
Reference in New Issue