fix: harden exploration data flow
This commit is contained in:
@@ -156,7 +156,7 @@ export function WorkspaceExplorePage({
|
||||
...sourceRecords.map((source) => ({
|
||||
...source,
|
||||
icon: source.iconUrl
|
||||
? <img className="explore-source-image" src={source.iconUrl} alt="" />
|
||||
? <img className="explore-source-image" src={source.iconUrl} alt="" loading="lazy" referrerPolicy="no-referrer" />
|
||||
: sourceIcon(source.kind),
|
||||
color: sourceColor(source.kind),
|
||||
})),
|
||||
@@ -243,14 +243,18 @@ export function WorkspaceExplorePage({
|
||||
function deleteSource(source: DataSourceCard) {
|
||||
Modal.confirm({
|
||||
title: `删除“${source.name}”数据源?`,
|
||||
content: '删除后,该数据源及其采集条目和待执行任务都会移除。',
|
||||
content: '删除后,该数据源及其采集条目都会移除。',
|
||||
okButtonProps: { status: 'danger' },
|
||||
onOk: async () => {
|
||||
try {
|
||||
await onDeleteSource(source.id)
|
||||
setSourceRecords((current) => current.filter((item) => item.id !== source.id))
|
||||
setItems((current) => current.filter((item) => item.sourceId !== source.id))
|
||||
if (activeSourceID === source.id) setActiveSourceID('all')
|
||||
if (activeSourceID === source.id) {
|
||||
setActiveSourceID('all')
|
||||
} else {
|
||||
setItemTotal((current) => Math.max(0, current - source.itemCount))
|
||||
}
|
||||
Message.success('数据源已删除')
|
||||
} catch (error) {
|
||||
Message.error(error instanceof Error ? error.message : '数据源删除失败')
|
||||
@@ -275,9 +279,14 @@ export function WorkspaceExplorePage({
|
||||
setSourceRecords(nextSources)
|
||||
setItems(nextPage.items)
|
||||
setItemTotal(nextPage.total)
|
||||
const failed = results.filter((result) => result.status === 'failed').length
|
||||
if (failed > 0) {
|
||||
Message.warning(`${results.length - failed} 个数据源采集完成,${failed} 个失败`)
|
||||
const failedResults = results.filter((result) => result.status === 'failed')
|
||||
if (failedResults.length > 0) {
|
||||
const firstFailure = failedResults[0]
|
||||
const failedSource = sourceRecords.find((source) => source.id === firstFailure.sourceId)
|
||||
const detail = firstFailure.result
|
||||
? `;${failedSource?.name || '数据源'}:${firstFailure.result.slice(0, 120)}`
|
||||
: ''
|
||||
Message.warning(`${results.length - failedResults.length} 个数据源采集完成,${failedResults.length} 个失败${detail}`)
|
||||
} else {
|
||||
Message.success(`已完成 ${results.length} 个数据源采集任务`)
|
||||
}
|
||||
@@ -459,7 +468,13 @@ export function WorkspaceExplorePage({
|
||||
<Text type="secondary">{itemTime(selected)}</Text>
|
||||
</Space>
|
||||
{selected.imageUrl ? (
|
||||
<img className="explore-article-image" src={selected.imageUrl} alt="" />
|
||||
<img
|
||||
className="explore-article-image"
|
||||
src={selected.imageUrl}
|
||||
alt=""
|
||||
loading="lazy"
|
||||
referrerPolicy="no-referrer"
|
||||
/>
|
||||
) : null}
|
||||
<Paragraph className="explore-article-content">{selected.content || selected.summary || '暂无正文'}</Paragraph>
|
||||
</article>
|
||||
|
||||
Reference in New Issue
Block a user