const [query,setQuery] = useState("");
const [domain,setDomain] = useState("");
const [statusFilter,setStatusFilter] = useState("");
- const [preview,setPreview] = useState<SiteSummary|null>(null);
const {confirm, el:confirmEl}=useConfirm();
const toggle = (id:number)=> setSelected(prev=>{ const n=new Set(prev); if(n.has(id)) n.delete(id); else n.add(id); return n; });
const domains = useMemo(()=>Array.from(new Set(sites.map(s=>s.domain).filter(Boolean))),[sites]);
const hasKids=rowKids.length>0;
const isCollapsed=collapsed.has(row.id);
out.push(
- <tr key={row.id} onClick={()=>setPreview(row)}>
+ <tr key={row.id} onClick={()=>openProject(row)}>
<td onClick={e=>e.stopPropagation()}><input type="checkbox" checked={selected.has(row.id)} onChange={()=>toggle(row.id)}/></td>
<td>
{hasKids&&<AntButton type="text" onClick={e=>{e.stopPropagation();toggleCollapse(row.id);}} aria-label={isCollapsed?"展开":"收起"} icon={isCollapsed?<CaretRightOutlined/>:<CaretDownOutlined/>}/>}
- <button className="link company-record-link" style={{paddingLeft: depth*22}} onClick={e=>{e.stopPropagation();setPreview(row);}}><b>{row.name||"未命名站点"}</b></button>
+ <button className="link company-record-link" style={{paddingLeft: depth*22}} onClick={e=>{e.stopPropagation();openProject(row);}}><b>{row.name||"未命名站点"}</b></button>
</td>
<td>{row.domain||"—"}</td>
<td>{row.device_count}</td>
{visibleIds.size===0&&<div className="empty-state">没有符合条件的站点</div>}
<div className="pagination"><span>{visibleIds.size} / 总数</span><button disabled>‹</button><button className="active">1</button><button disabled>›</button><select><option>10 / 页</option></select></div>
</Panel>
- <Drawer title={preview?.name||"站点详情"} width={420} open={!!preview} onClose={()=>setPreview(null)} extra={preview&&<Button onClick={()=>openProject(preview)}>打开项目</Button>}>
- {preview&&<div className="company-detail"><div className="detail-status"><Status>{statusText(preview.status)}</Status></div><h3>基础信息</h3><dl><dt>所属领域</dt><dd>{preview.domain||"—"}</dd><dt>设备数量</dt><dd>{preview.device_count}</dd><dt>MU 页面</dt><dd>{preview.mu_count}</dd><dt>Cube 页面</dt><dd>{preview.cube_count}</dd><dt>生成文件</dt><dd>{preview.gen_count}</dd><dt>最近修改</dt><dd>{preview.updated_at}</dd><dt>创建时间</dt><dd>{preview.created_at}</dd></dl></div>}
- </Drawer>
</>
}