UNPKG

@aliretail/react-materials-components

Version:
123 lines (113 loc) 2.82 kB
--- title: DataExport-Usage order: 1 --- ```jsx import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import { DataExport } from '@aliretail/react-materials-components'; import { Button } from '@alifd/next'; import '../../src/DataExport/index.scss'; class App extends Component { state = { useDefault: true, }; onExportButtonClick = () => { return { foo: '123', bar: 'test', }; }; onExport = (query) => { console.log('onExport:', query); return Promise.resolve({ success: true, message: 'testtst', data: { jobid: 'aaa', }, }); }; queryExportState = (jobId, cb) => { console.log('jobId:', jobId); return Promise.resolve({ success: true, finished: 100, }); }; translateQuery = (query) => { const result = []; for (const key in query) { result.push({ label: key, value: query[key], }); } return result; }; onFetchHistory = (currentPage, pageSize) => { console.log(`currentPage=${currentPage},pageSize=${pageSize}`); const list = []; for (let idx = 0; idx < pageSize; idx++) { const statusArr = ['process', 'finish', 'fail']; const status = statusArr[idx % 3]; list.push({ creator: `creator_${idx}`, finished: status === 'finish' ? 100 : 48, createdTime: 1604460724968, finishedTime: 160446073498, exportQuery: { foo: 'test', idx: (currentPage - 1) * pageSize + idx, status, }, status, downloadUrl: 'http://download.com/xxx', }); } return Promise.resolve({ success: true, data: { total: 123, list, }, }); }; render() { const exportProps = { onExportButtonClick: this.onExportButtonClick, queryExportState: this.queryExportState, onExport: this.onExport, translateQuery: this.translateQuery, onFetchHistory: this.onFetchHistory, }; const { useDefault } = this.state; const onClick = () => { this.setState({ useDefault: !useDefault, }); }; return ( <div> <div> 切换按钮:<Button onClick={onClick}>{useDefault ? '自定义' : '使用默认'}</Button> </div> {useDefault ? ( <DataExport {...exportProps} /> ) : ( <DataExport {...exportProps}> <Button data-button-type="history" type="secondary"> 查看历史 </Button> <Button>其他无关的按钮</Button> <Button data-button-type="export" type="primary"> 导出 </Button> </DataExport> )} </div> ); } } ReactDOM.render(<App />, mountNode); ```