feat: add date range filter to Occupancies, status filter to Tenants

This commit is contained in:
2026-07-06 14:36:03 +08:00
parent ca909fae86
commit fb6d99266e
2 changed files with 20 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
import React, { useEffect, useState, useMemo } from 'react';
import { Table, Modal, Form, Input, Space, message, Tag, Popconfirm } from 'antd';
import { Table, Modal, Form, Input, Select, Space, message, Tag, Popconfirm } from 'antd';
import { PlusOutlined, InboxOutlined } from '@ant-design/icons';
import api from '../../api';
import PermissionButton from '../../components/PermissionButton';
@@ -24,14 +24,19 @@ const TenantsPage: React.FC = () => {
const [editing, setEditing] = useState<any>(null);
const [form] = Form.useForm();
const [searchText, setSearchText] = useState('');
const [filterStatus, setFilterStatus] = useState<string | undefined>(undefined);
const filteredData = useMemo(() => {
if (!searchText) return data;
const s = searchText.toLowerCase();
return data.filter(
(d: any) => d.name?.toLowerCase().includes(s) || d.contact?.toLowerCase().includes(s),
);
}, [data, searchText]);
let result = data;
if (searchText) {
const s = searchText.toLowerCase();
result = result.filter((d: Record<string, unknown>) =>
(typeof d.name === 'string' && d.name.toLowerCase().includes(s)) ||
(typeof d.contact === 'string' && d.contact.toLowerCase().includes(s)));
}
if (filterStatus) result = result.filter((d: Record<string, unknown>) => d.status === filterStatus);
return result;
}, [data, searchText, filterStatus]);
const fetchData = async () => {
setLoading(true);
@@ -165,6 +170,8 @@ const TenantsPage: React.FC = () => {
if (!e.target.value) setSearchText('');
}}
/>
<Select placeholder="状态" allowClear style={{ width: 110 }} value={filterStatus} onChange={setFilterStatus}
options={[{value:'active',label:'活跃'},{value:'archived',label:'已归档'}]} />
<PermissionButton
permission="tenant:create"
type="primary"