import { MyBetaModalFormProps, MyButtons, MyColumns, MyProTableProps, } from '@/common'; import { Apis } from '@/gen/Apis'; import { AssetHousesOwnershipTypeEnum, AssetHousesStatusEnum, AssetHousesUsageEnum, } from '@/gen/Enums'; import { ProCard, ProTable } from '@ant-design/pro-components'; import { Space } from 'antd'; import { useRef, useState } from 'react'; import BuildingsCreate from '../modals/BuildingsCreate'; import AssetBuildingsUpdate from '../modals/BuildingsUpdate'; import AssetHousesCreate from '../modals/HousesCreate'; import AssetHousesShow from '../modals/HousesShow'; import AssetHousesUpdate from '../modals/HousesUpdate'; import AssetUnitsCreate from '../modals/UnitsCreate'; import AssetUnitsUpdate from '../modals/UnitsUpdate'; export default function AssetBuildings(props: MyBetaModalFormProps) { const actionBuildingsRef: any = useRef(); const actionUnitsRef: any = useRef(); const actionHousesRef: any = useRef(); const [selectKey, setSelectkey] = useState({}); const [selectKeyUnits, setSelectKeyUnits] = useState({}); return ( actionBuildingsRef?.current?.reload()} title="楼栋" /> actionUnitsRef?.current?.reload()} title="单元" /> actionHousesRef?.current?.reload()} title="房屋" /> } > { console.log(selectKey?.id, 'key', record?.id); return selectKey?.id === record?.id ? 'ant-table-row-selected' : ''; }} onRow={(record: any) => { return { onClick: () => { setSelectkey(record); setSelectKeyUnits({}); actionUnitsRef?.current?.reload(); actionHousesRef?.current?.reload(); }, style: { cursor: 'pointer', }, }; }} request={async (params, sort) => MyProTableProps.request( { ...params, asset_projects_id: props?.item?.id }, sort, Apis.Asset.AssetBuildings.List, ) } options={false} columns={[ MyColumns.ID(), { title: '楼栋名称', dataIndex: 'name', }, MyColumns.Option({ render: (_, item: any, index, action) => ( Apis.Asset.AssetBuildings.Delete({ id: item.id }).then( () => action?.reload(), ) } /> ), }), ]} /> {selectKey?.id && ( MyProTableProps.request( { ...params, asset_projects_id: props?.item?.id, asset_buildings_id: selectKey?.id, }, sort, Apis.Asset.AssetUnits.List, ) } rowClassName={(record: any) => { return selectKeyUnits?.id === record?.id ? 'ant-table-row-selected' : ''; }} onRow={(record: any) => { return { onClick: () => { setSelectKeyUnits(record); actionHousesRef?.current?.reload(); }, style: { cursor: 'pointer', }, }; }} options={false} columns={[ MyColumns.ID(), { title: '单元名称', dataIndex: 'name', }, MyColumns.Option({ render: (_, item: any, index, action) => ( Apis.Asset.AssetUnits.Delete({ id: item.id }).then(() => action?.reload(), ) } /> ), }), ]} /> )} {selectKeyUnits?.id && ( MyProTableProps.request( { ...params, asset_projects_id: props?.item?.id, asset_buildings_id: selectKey?.id, asset_units_id: selectKeyUnits?.id, }, sort, Apis.Asset.AssetHouses.List, ) } options={false} columns={[ MyColumns.ID(), MyColumns.EnumTag({ title: '用途', dataIndex: 'usage', valueEnum: AssetHousesUsageEnum, }), { title: '房号', dataIndex: 'name', }, { title: '楼层', dataIndex: 'floor', render(_, record) { return `${record?.floor}层`; }, }, MyColumns.EnumTag({ title: '产权性质', dataIndex: 'ownership_type', valueEnum: AssetHousesOwnershipTypeEnum, }), MyColumns.EnumTag({ title: '房屋状态', dataIndex: 'status', valueEnum: AssetHousesStatusEnum, }), MyColumns.Option({ render: (_, item: any, index, action) => ( Apis.Asset.AssetBuildings.Delete({ id: item.id }).then( () => action?.reload(), ) } /> ), }), ]} /> )} ); }