All checks were successful
Build and Push Docker Image / build (push) Successful in 3m27s
127 lines
4.1 KiB
TypeScript
127 lines
4.1 KiB
TypeScript
import { MyBetaModalFormProps, renderTextHelper } from '@/common';
|
|
import { MyModal } from '@/components/MyModal';
|
|
import { Apis } from '@/gen/Apis';
|
|
import {
|
|
ActivitiesPublishStatusEnum,
|
|
ActivitiesPublishTypeEnum,
|
|
ActivitiesStatusEnum,
|
|
} from '@/gen/Enums';
|
|
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
|
|
import { Space, Spin } from 'antd';
|
|
import { useState } from 'react';
|
|
|
|
export default function Show(props: MyBetaModalFormProps) {
|
|
const [show, setShow] = useState<any>({});
|
|
const [loading, setLoading] = useState(false);
|
|
const [hasLoaded, setHasLoaded] = useState(false);
|
|
|
|
const getShow = () => {
|
|
if (props?.item?.id && !loading && !hasLoaded) {
|
|
setLoading(true);
|
|
setHasLoaded(true);
|
|
Apis.Activity.Activities.Show({
|
|
id: props?.item?.id,
|
|
})
|
|
.then((res: any) => {
|
|
setShow(res?.data);
|
|
})
|
|
.catch(() => {
|
|
setHasLoaded(false); // 如果请求失败,允许重试
|
|
})
|
|
.finally(() => {
|
|
setLoading(false);
|
|
});
|
|
}
|
|
};
|
|
|
|
return (
|
|
<MyModal
|
|
title={props.title || '查看'}
|
|
width={800}
|
|
onOpen={getShow}
|
|
node={
|
|
<ProCard>
|
|
<Spin spinning={loading}>
|
|
<ProDescriptions
|
|
// bordered
|
|
column={1}
|
|
size="small"
|
|
>
|
|
<ProDescriptions.Item label=" 关联项目">
|
|
{show?.activity_projects
|
|
?.map((project: any) => project?.asset_project?.name)
|
|
.join(', ') || '-'}
|
|
</ProDescriptions.Item>
|
|
<ProDescriptions.Item label="活动标题">
|
|
{show?.title || '-'}
|
|
</ProDescriptions.Item>
|
|
<ProDescriptions.Item label="活动时间">
|
|
<Space>
|
|
<renderTextHelper.Tag
|
|
Enums={ActivitiesStatusEnum}
|
|
value={props?.item?.status}
|
|
key="status"
|
|
/>
|
|
{show?.start_time || '-'} 至 {show?.end_time || '-'}
|
|
</Space>
|
|
</ProDescriptions.Item>
|
|
<ProDescriptions.Item label="发布时间">
|
|
<Space>
|
|
<renderTextHelper.Tag
|
|
Enums={ActivitiesPublishStatusEnum}
|
|
value={props?.item?.publish_status}
|
|
key="publish_status"
|
|
/>
|
|
<renderTextHelper.Tag
|
|
Enums={ActivitiesPublishTypeEnum}
|
|
value={props?.item?.publish_type}
|
|
key="publish_type"
|
|
/>
|
|
{show?.publish_time || '-'}
|
|
</Space>
|
|
</ProDescriptions.Item>
|
|
<ProDescriptions.Item label="活动封面">
|
|
{show?.cover_image?.[0]?.url ? (
|
|
<img
|
|
src={show?.cover_image?.[0]?.url}
|
|
alt={show?.title || '-'}
|
|
style={{
|
|
width: 160,
|
|
height: 90,
|
|
objectFit: 'cover',
|
|
}}
|
|
/>
|
|
) : (
|
|
'-'
|
|
)}
|
|
</ProDescriptions.Item>
|
|
<ProDescriptions.Item label="活动内容">
|
|
<div
|
|
style={{
|
|
border: '1px solid #ccc',
|
|
borderRadius: '6px',
|
|
padding: '12px',
|
|
maxHeight: '300px',
|
|
width: '100%',
|
|
overflow: 'auto',
|
|
backgroundColor: '#fafafa',
|
|
}}
|
|
dangerouslySetInnerHTML={{
|
|
__html: show?.content || '暂无内容',
|
|
}}
|
|
/>
|
|
</ProDescriptions.Item>
|
|
<ProDescriptions.Item label="创建时间">
|
|
{show?.created_at || '-'}
|
|
</ProDescriptions.Item>
|
|
<ProDescriptions.Item label="最近修改">
|
|
{show?.updated_at || '-'}
|
|
</ProDescriptions.Item>
|
|
</ProDescriptions>
|
|
</Spin>
|
|
</ProCard>
|
|
}
|
|
/>
|
|
);
|
|
}
|