feat: dutytable page

mgy
Dawn1Ocean 2024-09-18 13:58:08 +08:00
parent 5158fd19d9
commit f023e4b64a
5 changed files with 410 additions and 350 deletions

View File

@ -79,5 +79,4 @@
"shift": "3",
"detail": "收到电脑 n 台,维修成功 m 台,已取回 x 台,有 y 台正在维修交接给下一班"
}
]
]

View File

@ -1,10 +1,9 @@
{
"current": 514,
"list": [
[
{
"name": "2024 春学期值班表",
"createdTime": "2024-03-07T19:52:48.523303",
"id": 114,
"isSelect": true,
"sheet": [
{
"weekday": 1,
@ -132,6 +131,7 @@
"name": "2024 秋学期值班表",
"createdTime": "2024-03-07T11:45:14.523303",
"id": 514,
"isSelect": false,
"sheet": [
{
"weekday": 1,
@ -255,6 +255,4 @@
}
]
}
]
}
]

View File

@ -1,14 +0,0 @@
import { Todo } from '@/components';
import { PageContainer } from '@ant-design/pro-components';
import { Card } from 'antd';
const Logs: React.FC = () => {
return (
<PageContainer>
<Card>
<Todo />
</Card>
</PageContainer>
);
};
export default Logs;

View File

@ -0,0 +1,6 @@
export type DutyTableItem = {
name: string;
isSelect: boolean;
time: string;
id: number;
};

View File

@ -0,0 +1,71 @@
import { PageContainer, ProList } from '@ant-design/pro-components';
import { Card, Space, Tag } from 'antd';
import moment from 'moment';
import request from 'umi-request';
import { DutyTableItem } from './dutyTableItem';
const DutyTable: React.FC = () => {
return (
<PageContainer>
<Card>
<ProList<DutyTableItem>
search={{
filterType: 'light',
}}
rowKey="op"
headerTitle="值班表列表"
request={async (params = {} as Record<string, any>) =>
request<{
data: DutyTableItem[];
}>('/admin/sheet/list', {
params,
})
}
pagination={{
pageSize: 10,
}}
metas={{
title: {
dataIndex: 'name',
title: '值班表',
},
subTitle: {
dataIndex: ['isSelect'],
render: (_, row) => {
return row.isSelect ? (
<Space size={0}>
<Tag color="blue"></Tag>
</Space>
) : (
<div></div>
);
},
title: '值班时间',
search: false,
},
extra: {
dataIndex: 'time',
render: (_: React.ReactNode, row: DutyTableItem) => {
return (
<div style={{ marginLeft: '3vh' }}>
{moment(row.time).format('YYYY-M-D HH:mm:ss')}
</div>
);
},
search: false,
},
actions: {
render: () => [
<a href="" target="_blank" rel="noopener noreferrer" key="view">
</a>,
],
search: false,
},
}}
/>
</Card>
</PageContainer>
);
};
export default DutyTable;