feat: filter rooms by rental category
This commit is contained in:
@@ -88,6 +88,7 @@ const RoomsPage: React.FC = () => {
|
|||||||
const [searchText, setSearchText] = useState('');
|
const [searchText, setSearchText] = useState('');
|
||||||
const [filterBuilding, setFilterBuilding] = useState<string | undefined>(undefined);
|
const [filterBuilding, setFilterBuilding] = useState<string | undefined>(undefined);
|
||||||
const [filterStatus, setFilterStatus] = useState<string | undefined>(undefined);
|
const [filterStatus, setFilterStatus] = useState<string | undefined>(undefined);
|
||||||
|
const [filterRentalCategory, setFilterRentalCategory] = useState<string | undefined>(undefined);
|
||||||
const [selectedRowKeys, setSelectedRowKeys] = useState<number[]>([]);
|
const [selectedRowKeys, setSelectedRowKeys] = useState<number[]>([]);
|
||||||
const [saving, setSaving] = useState(false);
|
const [saving, setSaving] = useState(false);
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
@@ -154,8 +155,11 @@ const RoomsPage: React.FC = () => {
|
|||||||
}
|
}
|
||||||
if (filterBuilding) result = result.filter((r: Record<string, unknown>) => r.building === filterBuilding);
|
if (filterBuilding) result = result.filter((r: Record<string, unknown>) => r.building === filterBuilding);
|
||||||
if (filterStatus) result = result.filter((r: Record<string, unknown>) => r.status === filterStatus);
|
if (filterStatus) result = result.filter((r: Record<string, unknown>) => r.status === filterStatus);
|
||||||
|
if (filterRentalCategory) {
|
||||||
|
result = result.filter((r: Record<string, unknown>) => r.rentalCategory === filterRentalCategory);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}, [data, searchText, filterBuilding, filterStatus]);
|
}, [data, searchText, filterBuilding, filterStatus, filterRentalCategory]);
|
||||||
const remainingBedSlots = useMemo(() => {
|
const remainingBedSlots = useMemo(() => {
|
||||||
const capacity = Number(drawerRoom?.capacity) || 0;
|
const capacity = Number(drawerRoom?.capacity) || 0;
|
||||||
return Math.max(capacity - beds.length, 0);
|
return Math.max(capacity - beds.length, 0);
|
||||||
@@ -434,6 +438,17 @@ const RoomsPage: React.FC = () => {
|
|||||||
/>
|
/>
|
||||||
<Select placeholder="状态" allowClear style={{ width: 110 }} value={filterStatus} onChange={setFilterStatus}
|
<Select placeholder="状态" allowClear style={{ width: 110 }} value={filterStatus} onChange={setFilterStatus}
|
||||||
options={[{value:'available',label:'可入住'},{value:'full',label:'已满'},{value:'maintenance',label:'维护中'}]} />
|
options={[{value:'available',label:'可入住'},{value:'full',label:'已满'},{value:'maintenance',label:'维护中'}]} />
|
||||||
|
<Select
|
||||||
|
placeholder="租赁类型"
|
||||||
|
allowClear
|
||||||
|
style={{ width: 120 }}
|
||||||
|
value={filterRentalCategory}
|
||||||
|
onChange={setFilterRentalCategory}
|
||||||
|
options={[
|
||||||
|
{ value: 'long', label: '长租' },
|
||||||
|
{ value: 'short', label: '短租' },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
<Button
|
<Button
|
||||||
type={showArchived ? 'primary' : 'default'}
|
type={showArchived ? 'primary' : 'default'}
|
||||||
onClick={() => setShowArchived(!showArchived)}
|
onClick={() => setShowArchived(!showArchived)}
|
||||||
|
|||||||
Reference in New Issue
Block a user