fix: 导出

feature/year-over-year
Lei OT 2 years ago
parent 42f4cbd134
commit 13fad7dfc5

@ -35,7 +35,8 @@ export const TableExportBtn = (props) => {
const output_name = `${props.label}`; const output_name = `${props.label}`;
const [columnsMap, setColumnsMap] = useState([]); const [columnsMap, setColumnsMap] = useState([]);
useEffect(() => { useEffect(() => {
const flatCols = props.columns.flatMap((v, k) => (v.children ? v.children.map((vc) => ({ ...vc, title: `${v.title}-${vc.title}` })) : v)).filter(c => c.title); const flatCols = props.columns.flatMap((v, k) => (v.children ? v.children.map((vc) => ({ ...vc, title: `${v.title}-${vc.title || ''}` })) : v)).filter(c => c.title);
// console.log('flatCols', flatCols);
setColumnsMap(flatCols); setColumnsMap(flatCols);
return () => {}; return () => {};
@ -50,11 +51,12 @@ export const TableExportBtn = (props) => {
const itemMapped = columnsMap.reduce((sv, kset) => { const itemMapped = columnsMap.reduce((sv, kset) => {
const render_val = typeof kset?.render === 'function' ? kset.render('', item) : null; const render_val = typeof kset?.render === 'function' ? kset.render('', item) : null;
const data_val = kset?.dataIndex ? (Array.isArray(kset.dataIndex) ? getNestedValue(item, kset.dataIndex) : item[kset.dataIndex]) : undefined; const data_val = kset?.dataIndex ? (Array.isArray(kset.dataIndex) ? getNestedValue(item, kset.dataIndex) : item[kset.dataIndex]) : undefined;
const v = { [kset.title]: render_val || data_val }; const v = { [kset.title]: data_val || render_val };
return { ...sv, ...v }; return { ...sv, ...v };
}, {}); }, {});
return itemMapped; return itemMapped;
}); });
// console.log('data', data);
const ws = utils.json_to_sheet(data, { header: columnsMap.filter((r) => r.dataIndex).map((r) => r.title) }); const ws = utils.json_to_sheet(data, { header: columnsMap.filter((r) => r.dataIndex).map((r) => r.title) });
const wb = utils.book_new(); const wb = utils.book_new();
utils.book_append_sheet(wb, ws, 'sheet'); utils.book_append_sheet(wb, ws, 'sheet');

@ -5,6 +5,7 @@ import { observer } from 'mobx-react';
import 'moment/locale/zh-cn'; import 'moment/locale/zh-cn';
import { utils, writeFileXLSX } from 'xlsx'; import { utils, writeFileXLSX } from 'xlsx';
import SearchForm from './../components/search/SearchForm'; import SearchForm from './../components/search/SearchForm';
import { TableExportBtn } from './../components/Data';
const AgentGroupCount = () => { const AgentGroupCount = () => {
const { customerServicesStore, date_picker_store } = useContext(stores_Context); const { customerServicesStore, date_picker_store } = useContext(stores_Context);
@ -56,14 +57,7 @@ const AgentGroupCount = () => {
scroll={{ x: 1000 }} scroll={{ x: 1000 }}
/> />
<Divider orientation="right" plain> <Divider orientation="right" plain>
<a <TableExportBtn label={'地接社团信息'} {...{ columns: agentGroupListColumns, dataSource: agentGroupList }} />
onClick={() => {
const wb = utils.table_to_book(document.getElementById('agentGroupList').getElementsByTagName('table')[0]);
writeFileXLSX(wb, '地接社团信息.xlsx');
}}
>
导出excel
</a>
</Divider> </Divider>
</Col> </Col>
</Row> </Row>

@ -5,6 +5,7 @@ import { observer } from 'mobx-react';
import 'moment/locale/zh-cn'; import 'moment/locale/zh-cn';
import { utils, writeFileXLSX } from 'xlsx'; import { utils, writeFileXLSX } from 'xlsx';
import SearchForm from './../components/search/SearchForm'; import SearchForm from './../components/search/SearchForm';
import { TableExportBtn } from './../components/Data';
const DestinationGroupCount = () => { const DestinationGroupCount = () => {
const { customerServicesStore, date_picker_store } = useContext(stores_Context); const { customerServicesStore, date_picker_store } = useContext(stores_Context);
@ -62,6 +63,7 @@ const DestinationGroupCount = () => {
> >
导出excel 导出excel
</a> </a>
<TableExportBtn label={'目的地团信息'} {...{ columns: destinationGroupCountColumns, dataSource: destinationGroupCount }} />
</Divider> </Divider>
</Col> </Col>
</Row> </Row>

@ -10,6 +10,7 @@ import * as comm from "../utils/commons";
import { utils, writeFileXLSX } from "xlsx"; import { utils, writeFileXLSX } from "xlsx";
import DateGroupRadio from '../components/DateGroupRadio'; import DateGroupRadio from '../components/DateGroupRadio';
import SearchForm from './../components/search/SearchForm'; import SearchForm from './../components/search/SearchForm';
import { TableExportBtn } from './../components/Data';
class Orders extends Component { class Orders extends Component {
static contextType = stores_Context; static contextType = stores_Context;
@ -446,14 +447,7 @@ class Orders extends Component {
<> <>
<Table sticky id={`table_to_xlsx_${ele.key}`} {...tableProps} /> <Table sticky id={`table_to_xlsx_${ele.key}`} {...tableProps} />
<Divider orientation="right" plain> <Divider orientation="right" plain>
<a <TableExportBtn label={ele.key} {...{ columns: tableProps.columns, dataSource: tableProps.dataSource }} />
onClick={() => {
const wb = utils.table_to_book(document.getElementById(`table_to_xlsx_${ele.key}`).getElementsByTagName('table')[0]);
writeFileXLSX(wb, `${ele.key}.xlsx`);
}}
>
导出excel
</a>
</Divider> </Divider>
</> </>
), ),

@ -7,6 +7,7 @@ import { observer } from 'mobx-react';
import * as comm from '../utils/commons'; import * as comm from '../utils/commons';
import { utils, writeFileXLSX } from 'xlsx'; import { utils, writeFileXLSX } from 'xlsx';
import SearchForm from './../components/search/SearchForm'; import SearchForm from './../components/search/SearchForm';
import { TableExportBtn } from './../components/Data';
const Sale = () => { const Sale = () => {
const { sale_store, date_picker_store } = useContext(stores_Context); const { sale_store, date_picker_store } = useContext(stores_Context);
@ -291,14 +292,7 @@ const Sale = () => {
scroll={{ x: (100*(tableColumns.length)) }} scroll={{ x: (100*(tableColumns.length)) }}
/> />
<Divider orientation="right" plain> <Divider orientation="right" plain>
<a <TableExportBtn label={'sale'} {...{ columns: tableColumns, dataSource: type_data.dataSource }} />
onClick={() => {
const wb = utils.table_to_book(document.getElementById('table_to_xlsx_sale').getElementsByTagName('table')[0]);
writeFileXLSX(wb, 'sale.xlsx');
}}
>
导出excel
</a>
</Divider> </Divider>
</Col> </Col>
<Col sm={24} lg={12}> <Col sm={24} lg={12}>

Loading…
Cancel
Save