import { useEffect, useState } from 'react'; import { Text, View } from '@tarojs/components'; import { loadContentEntriesAdmin, loadImportJobs, loadPublicQuestionBanks, type ContentEntryAdminItem, type ImportJobItem, type PublicQuestionBankItem } from '@/services/tenantAdmin'; import '../admin.css'; export default function TenantContentPage() { const [entries, setEntries] = useState([]); const [jobs, setJobs] = useState([]); const [publicBanks, setPublicBanks] = useState([]); const [error, setError] = useState(''); useEffect(() => { Promise.all([ loadContentEntriesAdmin().catch(() => ({ items: [] })), loadImportJobs(20).catch(() => ({ items: [] })), loadPublicQuestionBanks().catch(() => ({ items: [] })), ]).then(([entryPayload, jobPayload, bankPayload]) => { setEntries(entryPayload.items || []); setJobs(jobPayload.items || []); setPublicBanks(bankPayload.items || []); }).catch(nextError => setError(nextError instanceof Error ? nextError.message : '内容数据加载失败')); }, []); return ( Content 题库内容 入口、分类、导入任务、公共题库采纳和同步状态。 内容入口 {entries.map(item => ( {item.name} {item.entryType || 'entry'} · {item.visibility || 'visible'} · {item.isActive === false ? '停用' : '启用'} ))} {!entries.length ? 暂无内容入口。 : null} 导入任务 {jobs.map(item => ( {item.importType || 'import'} · {item.status || 'unknown'} 总数 {item.totalCount || 0} · 成功 {item.successCount || 0} · 错误 {item.errorCount || 0} · 警告 {item.warningCount || 0} ))} {!jobs.length ? 暂无导入任务。 : null} 公共题库 {publicBanks.map((item, index) => ( {item.name || '公共题库'} {item.regionName || '通用'} · {item.grantScope || '授权'} · {item.adoption ? '已采纳' : '可采纳'} ))} {!publicBanks.length ? 暂无可见公共题库授权。 : null} {error ? {error} : null} ); }