79 lines
2.0 KiB
TypeScript
79 lines
2.0 KiB
TypeScript
import { MyPageContainer, usePageTabs } from '@/common';
|
|
import { Apis } from '@/gen/Apis';
|
|
import { ProCard } from '@ant-design/pro-components';
|
|
import { useParams } from '@umijs/max';
|
|
import { Tabs } from 'antd';
|
|
import { useEffect, useState } from 'react';
|
|
import MeteInfo from '../components/MeteInfo';
|
|
import HasHouse from '../table/HasHouse';
|
|
import ReadingLIst from '../table/ReadingLIst';
|
|
import Tasks from '../table/Tasks';
|
|
|
|
export default function Show({ title = '仪表详情' }) {
|
|
const { id } = useParams<{ id: string }>();
|
|
const [data, setShow] = useState<any>({});
|
|
console.log('id', data);
|
|
|
|
// 注册标签页
|
|
const { addTab } = usePageTabs({
|
|
tabKey: `meter-detail-${id}`,
|
|
tabLabel: `仪表:${data?.name}` || title,
|
|
});
|
|
|
|
const loadShow = () => {
|
|
let paramsId: any = { id: id ?? 0 };
|
|
Apis.Meter.HouseMeters.Show(paramsId).then((res) => {
|
|
setShow(res?.data);
|
|
// 更新标签页标题
|
|
// if (res?.data?.name) {
|
|
// addTab({
|
|
// key: `meter-detail-${id}`,
|
|
// label: title,
|
|
// path: `/mete/readings/show/${id}`,
|
|
// });
|
|
// }
|
|
});
|
|
};
|
|
|
|
useEffect(() => {
|
|
loadShow();
|
|
}, [id]);
|
|
|
|
let items = [
|
|
{
|
|
label: '抄表数据',
|
|
key: 'Readings',
|
|
closable: false,
|
|
children: (
|
|
<ReadingLIst
|
|
item={{ ...data, id: id }}
|
|
reload={() => {
|
|
loadShow();
|
|
}}
|
|
/>
|
|
),
|
|
},
|
|
{
|
|
label: '仪表任务',
|
|
key: 'Tasks',
|
|
closable: false,
|
|
children: <Tasks item={{ ...data, id: id }} />,
|
|
},
|
|
{
|
|
label: '关联房屋',
|
|
key: 'HasHouse',
|
|
closable: false,
|
|
children: <HasHouse item={{ ...data, id: id }} />,
|
|
},
|
|
];
|
|
|
|
return (
|
|
<MyPageContainer title={title}>
|
|
<MeteInfo item={data} reload={loadShow} />
|
|
<ProCard style={{ marginTop: 16 }}>
|
|
<Tabs type="card" items={items} defaultActiveKey="1" />
|
|
</ProCard>
|
|
</MyPageContainer>
|
|
);
|
|
}
|