feature: 新增伏笔管理系统,支持可视化追踪、AI智能关联回收及章节生成时的伏笔提醒
This commit is contained in:
@@ -1630,7 +1630,7 @@ export default function Chapters() {
|
||||
icon={<EditOutlined />}
|
||||
onClick={() => handleOpenEditor(item.id)}
|
||||
>
|
||||
编辑内容
|
||||
编辑
|
||||
</Button>,
|
||||
(() => {
|
||||
const task = analysisTasksMap[item.id];
|
||||
@@ -1650,7 +1650,7 @@ export default function Chapters() {
|
||||
''
|
||||
}
|
||||
>
|
||||
{isAnalyzing ? '分析中' : '查看分析'}
|
||||
{isAnalyzing ? '分析中' : '分析'}
|
||||
</Button>
|
||||
);
|
||||
})(),
|
||||
@@ -1659,7 +1659,7 @@ export default function Chapters() {
|
||||
icon={<SettingOutlined />}
|
||||
onClick={() => handleOpenModal(item.id)}
|
||||
>
|
||||
修改信息
|
||||
修改
|
||||
</Button>,
|
||||
]}
|
||||
>
|
||||
@@ -1716,7 +1716,7 @@ export default function Chapters() {
|
||||
icon={<EditOutlined />}
|
||||
onClick={() => handleOpenEditor(item.id)}
|
||||
size="small"
|
||||
title="编辑内容"
|
||||
title="编辑"
|
||||
/>
|
||||
{(() => {
|
||||
const task = analysisTasksMap[item.id];
|
||||
@@ -1734,7 +1734,7 @@ export default function Chapters() {
|
||||
title={
|
||||
!hasContent ? '请先生成章节内容' :
|
||||
isAnalyzing ? '分析中' :
|
||||
'查看分析'
|
||||
'分析'
|
||||
}
|
||||
/>
|
||||
);
|
||||
@@ -1744,7 +1744,7 @@ export default function Chapters() {
|
||||
icon={<SettingOutlined />}
|
||||
onClick={() => handleOpenModal(item.id)}
|
||||
size="small"
|
||||
title="修改信息"
|
||||
title="修改"
|
||||
/>
|
||||
</Space>
|
||||
)}
|
||||
@@ -1815,7 +1815,7 @@ export default function Chapters() {
|
||||
icon={<EditOutlined />}
|
||||
onClick={() => handleOpenEditor(item.id)}
|
||||
>
|
||||
编辑内容
|
||||
编辑
|
||||
</Button>,
|
||||
(() => {
|
||||
const task = analysisTasksMap[item.id];
|
||||
@@ -1835,7 +1835,7 @@ export default function Chapters() {
|
||||
''
|
||||
}
|
||||
>
|
||||
{isAnalyzing ? '分析中' : '查看分析'}
|
||||
{isAnalyzing ? '分析中' : '分析'}
|
||||
</Button>
|
||||
);
|
||||
})(),
|
||||
@@ -1844,7 +1844,7 @@ export default function Chapters() {
|
||||
icon={<SettingOutlined />}
|
||||
onClick={() => handleOpenModal(item.id)}
|
||||
>
|
||||
修改信息
|
||||
修改
|
||||
</Button>,
|
||||
// 只在 one-to-many 模式下显示删除按钮
|
||||
...(currentProject.outline_mode === 'one-to-many' ? [
|
||||
@@ -1940,7 +1940,7 @@ export default function Chapters() {
|
||||
icon={<EditOutlined />}
|
||||
onClick={() => handleOpenEditor(item.id)}
|
||||
size="small"
|
||||
title="编辑内容"
|
||||
title="编辑"
|
||||
/>
|
||||
{(() => {
|
||||
const task = analysisTasksMap[item.id];
|
||||
@@ -1958,7 +1958,7 @@ export default function Chapters() {
|
||||
title={
|
||||
!hasContent ? '请先生成章节内容' :
|
||||
isAnalyzing ? '分析中' :
|
||||
'查看分析'
|
||||
'分析'
|
||||
}
|
||||
/>
|
||||
);
|
||||
@@ -1968,7 +1968,7 @@ export default function Chapters() {
|
||||
icon={<SettingOutlined />}
|
||||
onClick={() => handleOpenModal(item.id)}
|
||||
size="small"
|
||||
title="修改信息"
|
||||
title="修改"
|
||||
/>
|
||||
{/* 只在 one-to-many 模式下显示删除按钮 */}
|
||||
{currentProject.outline_mode === 'one-to-many' && (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,6 +16,7 @@ import {
|
||||
FundOutlined,
|
||||
HeartOutlined,
|
||||
TrophyOutlined,
|
||||
BulbOutlined,
|
||||
} from '@ant-design/icons';
|
||||
import { useStore } from '../store';
|
||||
import { useCharacterSync, useOutlineSync, useChapterSync } from '../store/hooks';
|
||||
@@ -140,6 +141,11 @@ export default function ProjectDetail() {
|
||||
icon: <FundOutlined />,
|
||||
label: <Link to={`/project/${projectId}/chapter-analysis`}>剧情分析</Link>,
|
||||
},
|
||||
{
|
||||
key: 'foreshadows',
|
||||
icon: <BulbOutlined />,
|
||||
label: <Link to={`/project/${projectId}/foreshadows`}>伏笔管理</Link>,
|
||||
},
|
||||
{
|
||||
key: 'writing-styles',
|
||||
icon: <EditOutlined />,
|
||||
@@ -162,6 +168,7 @@ export default function ProjectDetail() {
|
||||
if (path.includes('/outline')) return 'outline';
|
||||
if (path.includes('/characters')) return 'characters';
|
||||
if (path.includes('/chapter-analysis')) return 'chapter-analysis';
|
||||
if (path.includes('/foreshadows')) return 'foreshadows';
|
||||
if (path.includes('/chapters')) return 'chapters';
|
||||
if (path.includes('/writing-styles')) return 'writing-styles';
|
||||
if (path.includes('/sponsor')) return 'sponsor';
|
||||
|
||||
@@ -122,7 +122,7 @@ export default function ProjectWizardNew() {
|
||||
narrative_perspective: '第三人称',
|
||||
character_count: 5,
|
||||
target_words: 100000,
|
||||
outline_mode: 'one-to-many', // 默认为细化模式
|
||||
outline_mode: 'one-to-one', // 默认为传统模式(1-1)
|
||||
}}
|
||||
>
|
||||
<Form.Item
|
||||
|
||||
Reference in New Issue
Block a user