uiuJun 60b89dd188
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m29s
feat: 优化
2025-09-18 19:40:30 +08:00

115 lines
3.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { MyPageContainer, usePageTabs } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProCard } from '@ant-design/pro-components';
import { useParams } from '@umijs/max';
import { Space, Tabs } from 'antd';
import { useEffect, useState } from 'react';
import Announcement from '../components/Announcement';
import AssetAccounts from '../components/AssetAccounts';
import MyAssetBuildings from '../components/AssetBuildings';
import AssetGrid from '../components/AssetGrid';
import AssetInfo from '../components/AssetInfo';
import ChargeStandard from '../components/ChargeStandard';
import ConvenienceServices from '../components/ConvenienceServices';
import BindCompany from '../components/modals/BindCompany';
import AssetUpdate from '../modals/AssetUpdate';
export default function Show({ title }: { title?: string } = {}) {
const { id } = useParams<{ id: string }>();
const [data, setShow] = useState<any>({});
// 注册当前页面为标签页
const { addTab } = usePageTabs({
tabKey: `asset-show-${id}`,
tabLabel: data?.name || title || '项目详情',
});
const loadShow = () => {
let paramsId: any = { id: id ?? 0 };
Apis.Asset.AssetProjects.Show(paramsId).then((res) => {
setShow(res?.data);
// 更新标签页名称为API返回的name
if (res?.data?.name) {
addTab({
key: `asset-show-${id}`,
label: res.data.name,
path: `/asset/${id}`,
});
}
});
};
useEffect(() => {
loadShow();
}, [id]);
let items = [
// {
// label: '基本信息',
// key: 'info',
// closable: false,
// children: <AssetInfo item={data} reload={() => loadShow()} />,
// },
{
label: '楼栋管理',
key: 'asset_buildings',
closable: false,
children: <MyAssetBuildings item={data} />,
},
{
label: '楼栋划分',
key: 'grid',
closable: false,
children: <AssetGrid item={data} />,
},
{
label: '收费标准',
key: 'charge_standard',
closable: false,
children: <ChargeStandard item={data} />,
},
{
label: '收款账号',
key: 'asset_accounts',
closable: false,
children: <AssetAccounts item={data} />,
},
{
label: '项目公告',
key: 'announcement',
closable: false,
children: <Announcement item={data} />,
},
{
label: '便民服务',
key: 'convenience_services',
closable: false,
children: <ConvenienceServices item={data} />,
},
];
return (
<MyPageContainer title={data?.name || title || '项目详情'}>
<ProCard
title={`${data?.name} ${
data?.alias_name ? `${data?.alias_name}` : ''
}`}
extra={
<Space>
<AssetInfo
item={{ ...data, type: 'primary' }}
title="查看"
reload={loadShow}
/>
<AssetUpdate item={data} title="项目" reload={loadShow} />
<BindCompany item={data} title="机构" reload={loadShow} />
</Space>
}
>
<div>* </div>
</ProCard>
<ProCard>
<Tabs type="card" items={data?.id ? items : []} />
</ProCard>
</MyPageContainer>
);
}