import { formatMillis } from "@/shared/utils/time.js"; import { AdminSwitch } from "@/shared/ui/AdminSwitch.jsx"; import { DataState } from "@/shared/ui/DataState.jsx"; import { agencyStatusFilters } from "@/features/host-org/constants.js"; import { HostOrgEntity, HostOrgPerson, hostOrgRegionName } from "@/features/host-org/components/HostOrgIdentity.jsx"; import { HostOrgTable } from "@/features/host-org/components/HostOrgTable.jsx"; import { useHostManagersPage } from "@/features/host-org/hooks/useHostManagersPage.js"; import { createOptionsColumnFilter, createTextColumnFilter } from "@/shared/ui/tableFilters.js"; import styles from "@/features/host-org/host-org.module.css"; const managerColumns = [ { key: "ownerUserId", label: "经理", render: (item) => , width: "minmax(220px, 1.25fr)", }, { key: "agency", label: "Agency", render: (item) => , width: "minmax(190px, 1fr)", }, { key: "parentBdUserId", label: "上级 BD", render: (item) => , width: "minmax(220px, 1.2fr)", }, { key: "regionId", label: "区域", render: (item, _index, context) => hostOrgRegionName(item, context?.regionOptions), width: "minmax(130px, 0.75fr)", }, { key: "status", label: "状态", render: (item, _index, context) => , width: "minmax(90px, 0.7fr)", }, { key: "joinEnabled", label: "入会", render: (item) => ( {item.joinEnabled ? "允许" : "禁止"} ), width: "minmax(80px, 0.6fr)", }, { key: "maxHosts", label: "最大主播数", width: "minmax(100px, 0.7fr)" }, { key: "updatedAtMs", label: "更新时间", render: (item) => formatMillis(item.updatedAtMs), width: "minmax(170px, 1fr)", }, ]; export function HostManagersPage() { const page = useHostManagersPage(); const items = page.data.items || []; const total = page.data.total || 0; const columns = managerColumns.map((column) => { if (column.key === "ownerUserId") { return { ...column, filter: createTextColumnFilter({ placeholder: "搜索经理、Agency、用户", value: page.query, onChange: page.changeQuery, }), }; } if (column.key === "parentBdUserId") { return { ...column, filter: createTextColumnFilter({ placeholder: "搜索上级 BD 用户 ID", value: page.parentBdUserId, onChange: page.changeParentBdUserId, }), }; } if (column.key === "status") { return { ...column, filter: createOptionsColumnFilter({ options: agencyStatusFilters, placeholder: "搜索状态", value: page.status, onChange: page.changeStatus, }), }; } return column; }); return (
0 ? { page: page.page, pageSize: page.data.pageSize || 50, total, onPageChange: page.setPage, } : undefined } rowKey={(item) => `manager-${item.ownerUserId || item.agencyId}`} />
); } function ManagerUser({ item }) { return ( ); } function ParentBD({ item }) { if (!item.parentBdUserId) { return "-"; } return ( ); } function ManagerStatusSwitch({ item, page }) { const active = item.status === "active"; return ( { if (!event.target.checked) { page.closeManagerAgency(item); } }} /> ); }