2026-04-22 17:45:00 +08:00
|
|
|
|
import {
|
|
|
|
|
|
MyButtons,
|
|
|
|
|
|
MyColumns,
|
2026-04-27 10:37:21 +08:00
|
|
|
|
MyPageContainer,
|
2026-04-22 17:45:00 +08:00
|
|
|
|
MyProTableProps,
|
|
|
|
|
|
MyTableActions,
|
|
|
|
|
|
MyToolBarActions,
|
|
|
|
|
|
} from '@/common';
|
|
|
|
|
|
import { Apis } from '@/gen/Apis';
|
|
|
|
|
|
import {
|
|
|
|
|
|
EmergencyEventsCompensationTypeEnum,
|
|
|
|
|
|
EmergencyEventsStatusEnum,
|
|
|
|
|
|
} from '@/gen/Enums';
|
|
|
|
|
|
import { ProTable } from '@ant-design/pro-components';
|
|
|
|
|
|
import { Space } from 'antd';
|
2026-04-29 17:03:35 +08:00
|
|
|
|
import CategoriesModal from './modals/CategoriesModal';
|
2026-04-22 17:45:00 +08:00
|
|
|
|
import EventApplyClose from './modals/EventApplyClose';
|
|
|
|
|
|
import EventCreate from './modals/EventCreate';
|
|
|
|
|
|
import EventReview from './modals/EventReview';
|
|
|
|
|
|
import EventUpdate from './modals/EventUpdate';
|
2026-04-29 17:03:35 +08:00
|
|
|
|
import LevelsModal from './modals/LevelsModal';
|
|
|
|
|
|
import TeamsModal from './modals/TeamsModal';
|
2026-04-14 21:36:19 +08:00
|
|
|
|
|
|
|
|
|
|
export default function Index({ title = '突发事件' }) {
|
|
|
|
|
|
return (
|
2026-04-27 10:37:21 +08:00
|
|
|
|
<MyPageContainer
|
|
|
|
|
|
title={title}
|
|
|
|
|
|
enableTabs={true}
|
|
|
|
|
|
tabKey="emergency_events"
|
|
|
|
|
|
tabLabel={title}
|
|
|
|
|
|
>
|
|
|
|
|
|
<ProTable
|
|
|
|
|
|
{...MyProTableProps.props}
|
|
|
|
|
|
request={async (params, sort) =>
|
|
|
|
|
|
MyProTableProps.request(
|
|
|
|
|
|
params,
|
|
|
|
|
|
sort,
|
|
|
|
|
|
Apis.Emergency.EmergencyEvents.List,
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
headerTitle={`${title}列表`}
|
|
|
|
|
|
toolBarRender={(action: any) => [
|
|
|
|
|
|
<MyToolBarActions
|
|
|
|
|
|
key="toolbar"
|
|
|
|
|
|
actions={{
|
|
|
|
|
|
create: (
|
|
|
|
|
|
<EventCreate
|
|
|
|
|
|
key="Create"
|
|
|
|
|
|
reload={action?.reload}
|
|
|
|
|
|
title={title}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
2026-04-29 17:03:35 +08:00
|
|
|
|
teams: <TeamsModal key="TeamsModal" />,
|
|
|
|
|
|
categories: <CategoriesModal key="CategoriesModal" />,
|
|
|
|
|
|
levels: <LevelsModal key="LevelsModal" />,
|
2026-04-27 10:37:21 +08:00
|
|
|
|
}}
|
|
|
|
|
|
/>,
|
|
|
|
|
|
]}
|
|
|
|
|
|
columns={[
|
|
|
|
|
|
MyColumns.ID({
|
|
|
|
|
|
search: false,
|
|
|
|
|
|
}),
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '名称',
|
|
|
|
|
|
dataIndex: 'name',
|
2026-04-22 17:45:00 +08:00
|
|
|
|
},
|
2026-04-27 10:37:21 +08:00
|
|
|
|
{
|
|
|
|
|
|
title: '所属项目',
|
|
|
|
|
|
dataIndex: ['asset_project', 'name'],
|
|
|
|
|
|
search: false,
|
2026-04-22 17:45:00 +08:00
|
|
|
|
},
|
2026-04-27 10:37:21 +08:00
|
|
|
|
MyColumns.EnumTag({
|
|
|
|
|
|
title: '状态',
|
|
|
|
|
|
dataIndex: 'status',
|
|
|
|
|
|
valueEnum: EmergencyEventsStatusEnum,
|
|
|
|
|
|
}),
|
|
|
|
|
|
MyColumns.EnumTag({
|
|
|
|
|
|
title: '赔偿方',
|
|
|
|
|
|
dataIndex: 'compensation_type',
|
|
|
|
|
|
valueEnum: EmergencyEventsCompensationTypeEnum,
|
|
|
|
|
|
}),
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '赔偿事项',
|
|
|
|
|
|
search: false,
|
|
|
|
|
|
render: (_, item: any) => {
|
|
|
|
|
|
return (
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div>赔偿比例:{item?.compensation_rate}%</div>
|
|
|
|
|
|
<div>赔偿金额:{item?.compensation_amount}元</div>
|
|
|
|
|
|
<div>已支付赔偿金额:{item?.compensation_paid_amount}元</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
);
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '分类',
|
|
|
|
|
|
search: false,
|
|
|
|
|
|
render: (_, item: any) => {
|
|
|
|
|
|
return `${item?.one_emergency_categories_name} / ${item?.two_emergency_categories_name}`;
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '等级',
|
|
|
|
|
|
dataIndex: 'emergency_event_levels_name',
|
|
|
|
|
|
search: false,
|
|
|
|
|
|
},
|
|
|
|
|
|
MyColumns.UpdatedAt(),
|
|
|
|
|
|
MyColumns.CreatedAt(),
|
|
|
|
|
|
MyColumns.Option({
|
|
|
|
|
|
render: (_, item: any, index, action) => (
|
|
|
|
|
|
<Space key={index}>
|
|
|
|
|
|
<MyTableActions
|
|
|
|
|
|
actions={{
|
|
|
|
|
|
show: (
|
|
|
|
|
|
<MyButtons.View
|
|
|
|
|
|
key="show"
|
|
|
|
|
|
title="查看"
|
|
|
|
|
|
to={`/quality/emergency/show/${item.id}`}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
close: (
|
|
|
|
|
|
<EventApplyClose
|
|
|
|
|
|
key="close"
|
|
|
|
|
|
item={item}
|
|
|
|
|
|
reload={action?.reload}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
update: (
|
|
|
|
|
|
<EventUpdate
|
|
|
|
|
|
key="update"
|
|
|
|
|
|
item={item}
|
|
|
|
|
|
reload={action?.reload}
|
|
|
|
|
|
title={title}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
audit: (
|
|
|
|
|
|
<EventReview
|
|
|
|
|
|
key="audit"
|
|
|
|
|
|
item={item}
|
|
|
|
|
|
reload={action?.reload}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
delete: (
|
|
|
|
|
|
<MyButtons.Delete
|
|
|
|
|
|
key="delete"
|
|
|
|
|
|
onConfirm={() =>
|
|
|
|
|
|
Apis.Emergency.EmergencyEvents.Delete({
|
|
|
|
|
|
id: item.id,
|
|
|
|
|
|
}).then(() => action?.reload())
|
|
|
|
|
|
}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
}}
|
|
|
|
|
|
maxVisible={3}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Space>
|
|
|
|
|
|
),
|
|
|
|
|
|
}),
|
|
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</MyPageContainer>
|
2026-04-14 21:36:19 +08:00
|
|
|
|
);
|
|
|
|
|
|
}
|