pay-admin/src/pages/archive/components/OccupantsNow.tsx

126 lines
3.8 KiB
TypeScript
Raw Normal View History

2025-07-10 18:01:45 +08:00
import { MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis';
import {
HouseOccupantsHouseRelationEnum,
HouseOccupantsRelationWithOwnerEnum,
HouseOccupantsStatusEnum,
} from '@/gen/Enums';
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
import { useEffect, useRef } from 'react';
import AddOccupant from './modals/AddOccupant';
import AddRent from './modals/AddRent';
import MoveIn from './modals/MoveIn';
import MoveOut from './modals/MoveOut';
import OccupantShow from './modals/OccupantShow';
import OccupantsUpdate from './modals/OccupantsUpdate';
import RemoveOwner from './modals/RemoveOwner';
import Transfer from './modals/Transfer';
2025-07-10 18:01:45 +08:00
export default function Index({ ...rest }) {
const actionLooks = useRef<any>();
useEffect(() => {
actionLooks?.current.reloadAndRest();
}, [rest.loadmore]);
return (
<>
<ProTable<Record<any, any>>
{...MyProTableProps.props}
actionRef={actionLooks}
request={async (params, sort) =>
MyProTableProps.request(
{
...params,
2025-07-16 10:18:01 +08:00
asset_houses_id: rest.item?.asset_houses_id,
2025-07-10 18:01:45 +08:00
status: 'Normal',
},
sort,
Apis.Archive.HouseOccupants.List,
)
}
toolBarRender={(action) => [
<AddOccupant
key="AddOccupant"
2025-07-16 10:18:01 +08:00
item={rest.item}
reload={action?.reload}
title="添加住户"
2025-07-16 10:18:01 +08:00
/>,
<AddRent
key="AddOccupant"
2025-07-10 18:01:45 +08:00
item={rest.item}
reload={action?.reload}
title="添加租客"
2025-07-10 18:01:45 +08:00
/>,
<Transfer
key="Transfer"
2025-07-10 18:01:45 +08:00
item={rest.item}
reload={action?.reload}
title=" 过户登记"
2025-07-10 18:01:45 +08:00
/>,
]}
search={false}
columns={[
MyColumns.EnumTag({
title: '房客关系',
dataIndex: 'house_relation',
valueEnum: HouseOccupantsHouseRelationEnum,
search: false,
}),
MyColumns.EnumTag({
2025-07-25 16:42:54 +08:00
title:
rest?.item?.status === 'Rented' ? '与租客关系' : '与业主关系',
2025-07-10 18:01:45 +08:00
dataIndex: 'relation_with_owner',
valueEnum: HouseOccupantsRelationWithOwnerEnum,
search: false,
}),
{
title: '姓名',
dataIndex: 'name',
},
{
title: '电话',
dataIndex: 'phone',
},
// {
// title: '是否入住',
// dataIndex: 'is_live_in',
// render(_, record) {
// return `${record?.is_live_in ? '是' : '-'} `;
// },
// },
2025-07-10 18:01:45 +08:00
{
title: '入住日期',
dataIndex: 'is_live_in',
render(_, record) {
return `${record?.move_in_date || '未入住'}`;
2025-07-10 18:01:45 +08:00
},
},
MyColumns.EnumTag({
title: '状态',
dataIndex: 'status',
valueEnum: HouseOccupantsStatusEnum,
search: false,
}),
// MyColumns.UpdatedAt(),
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>
2025-07-25 16:42:54 +08:00
<OccupantShow item={item} reload={action?.reload} />
<OccupantsUpdate item={item} reload={action?.reload} />
2025-07-25 16:42:54 +08:00
{!item?.is_live_in && (
2025-07-16 10:18:01 +08:00
<MoveIn item={item} reload={action?.reload} title="入住" />
)}
{item?.move_in_date && (
2025-07-10 18:01:45 +08:00
<MoveOut item={item} reload={action?.reload} title="搬离" />
)}
<RemoveOwner item={item} reload={action?.reload} title="移除" />
2025-07-10 18:01:45 +08:00
</Space>
),
}),
]}
/>
</>
);
}