134 lines
4.0 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';
2025-07-17 13:58:54 +08:00
import AddOwner from '../modals/AddOwner';
2025-07-25 16:42:54 +08:00
import MoveIn from '../modals/MoveIn00';
2025-07-10 18:01:45 +08:00
import MoveOut from '../modals/MoveOut';
2025-07-25 16:42:54 +08:00
import OccupantShow from '../modals/OccupantShow';
2025-07-17 13:58:54 +08:00
import OccupantsUpdate from '../modals/OccupantsUpdate';
2025-07-10 18:01:45 +08:00
import Transfer from '../modals/Transfer';
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) => [
2025-07-17 13:58:54 +08:00
<AddOwner
2025-07-16 10:18:01 +08:00
key="add"
item={rest.item}
reload={action?.reload}
title="添加产权人"
/>,
2025-07-10 18:01:45 +08:00
<Transfer
key="Transfer"
item={rest.item}
reload={action?.reload}
title=" 过户登记"
/>,
<AddOccupant
key="AddOccupant"
item={rest.item}
reload={action?.reload}
title="添加住户"
/>,
]}
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 ? '是' : '-'} `;
},
},
{
title: '入住日期',
dataIndex: 'is_live_in',
render(_, record) {
2025-07-25 16:42:54 +08:00
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} />
2025-07-17 13:58:54 +08:00
{item?.house_relation !== 'Owner' && (
<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="搬离" />
)}
2025-07-25 16:42:54 +08:00
{/* <MyButtons.Delete
onConfirm={() =>
Apis.Archive.HouseOccupants.Delete({ id: item.id }).then(
() => action?.reload(),
)
}
/> */}
2025-07-10 18:01:45 +08:00
</Space>
),
}),
]}
/>
</>
);
}