We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Table
latest
No response
import React, { useState, useMemo } from 'react'; import { Table, Avatar } from '@douyinfe/semi-ui'; import * as dateFns from 'date-fns'; const DAY = 24 * 60 * 60 * 1000; const figmaIconUrl = 'https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/figma-icon.png'; const pageSize = 5; const columns = [ { title: '标题', dataIndex: 'name', width: 400, render: (text, record, index) => { return ( <div> <Avatar size="small" shape="square" src={figmaIconUrl} style={{ marginRight: 12 }}></Avatar> {text} </div> ); }, filters: [ { text: 'Semi Design 设计稿', value: 'Semi Design 设计稿', }, { text: 'Semi D2C 设计稿', value: 'Semi D2C 设计稿', }, ], onFilter: (value, record) => record.name.includes(value), }, { title: '大小', dataIndex: 'size', sorter: (a, b) => (a.size - b.size > 0 ? 1 : -1), render: text => `${text} KB`, }, { title: '交付状态', dataIndex: 'status', render: (text) => { const tagConfig = { success: { color: 'green', prefixIcon: <IconTickCircle />, text: '已交付' }, pending: { color: 'pink', prefixIcon: <IconClear />, text: '已延期' }, wait: { color: 'cyan', prefixIcon: <IconComment />, text: '待评审' }, }; const tagProps = tagConfig[text] || {}; return <Tag shape='circle' {...tagProps} style={{ userSelect: 'text' }}>{tagProps.text}</Tag> } }, { title: '所有者', dataIndex: 'owner', render: (text, record, index) => { return ( <div> <Avatar size="small" color={record.avatarBg} style={{ marginRight: 4 }}> {typeof text === 'string' && text.slice(0, 1)} </Avatar> {text} </div> ); }, }, { title: '更新日期', dataIndex: 'updateTime', sorter: (a, b) => (a.updateTime - b.updateTime > 0 ? 1 : -1), render: value => { return dateFns.format(new Date(value), 'yyyy-MM-dd'); }, }, ]; const getData = () => { const data = []; for (let i = 0; i < 46; i++) { const isSemiDesign = i % 2 === 0; const randomNumber = (i * 1000) % 199; data.push({ key: '' + i, name: isSemiDesign ? `Semi Design 设计稿${i}.fig` : `Semi D2C 设计稿${i}.fig`, owner: isSemiDesign ? '姜鹏志' : '郝宣', size: randomNumber, status: isSemiDesign ? 'success' : 'wait', updateTime: new Date().valueOf() + randomNumber * DAY, avatarBg: isSemiDesign ? 'grey' : 'red', }); } return data; }; const data = getData(); function App() { const [dataSource, setData] = useState([]); const [loading, setLoading] = useState(false); const [currentPage, setPage] = useState(1); const fetchData = (currentPage = 1) => { setLoading(true); setPage(currentPage); return new Promise((res, rej) => { setTimeout(() => { const data = getData(); let dataSource = data.slice((currentPage - 1) * pageSize, currentPage * pageSize); res(dataSource); }, 300); }).then(dataSource => { setLoading(false); setData(dataSource); }); }; const handlePageChange = page => { fetchData(page); }; useEffect(() => { fetchData(); }, []); return ( <Table columns={columns} dataSource={dataSource} pagination={{ currentPage, pageSize: 5, total: data.length, onPageChange: handlePageChange, }} loading={loading} /> ); } render(App);
- OS: - browser:
The text was updated successfully, but these errors were encountered:
feat: wip need discussion #2399
0a20097
shijiatongxue
No branches or pull requests
Is there an existing issue for this?
Which Component
Table
Semi Version
latest
Current Behavior
Expected Behavior
No response
Steps To Reproduce
No response
ReproducibleCode
Environment
Anything else?
No response
The text was updated successfully, but these errors were encountered: