diff --git a/demo/frontend/src/api/novelComic.js b/demo/frontend/src/api/novelComic.js index f765d1b..433467f 100644 --- a/demo/frontend/src/api/novelComic.js +++ b/demo/frontend/src/api/novelComic.js @@ -56,3 +56,11 @@ export const getNovelComicHistory = (params = {}) => { } }) } + +// 删除历史记录 +export const deleteNovelComicHistory = (id) => { + return request({ + url: `/novel-comic/history/${id}`, + method: 'DELETE' + }) +} diff --git a/demo/frontend/src/api/userWorks.js b/demo/frontend/src/api/userWorks.js index 790dd1a..23c8ca6 100644 --- a/demo/frontend/src/api/userWorks.js +++ b/demo/frontend/src/api/userWorks.js @@ -17,7 +17,7 @@ export const getMyWorksByType = (workType, params = {}) => { return api.get('/works/my-works', { params: { page: params.page || 0, - size: params.size || 1000, + size: params.size || 20, includeProcessing: true, workType: workType // TEXT_TO_VIDEO, IMAGE_TO_VIDEO, STORYBOARD_VIDEO, STORYBOARD_IMAGE } diff --git a/demo/frontend/src/views/MyWorks.vue b/demo/frontend/src/views/MyWorks.vue index 4f2bdb1..6e48589 100644 --- a/demo/frontend/src/views/MyWorks.vue +++ b/demo/frontend/src/views/MyWorks.vue @@ -448,7 +448,7 @@ const isVerticalVideo = computed(() => { }) const page = ref(1) -const pageSize = ref(100) +const pageSize = ref(20) const loading = ref(false) const hasMore = ref(true) const items = ref([]) @@ -502,10 +502,10 @@ const setupVirtualObserver = () => { if (changed) visibleItemIds.value = next }, { - root: contentAreaRef.value, - rootMargin: '75% 0px', // 上下 75% 视口高度的缓冲区 - threshold: 0 - } + root: contentAreaRef.value, + rootMargin: '50% 0px', // 上下 50% 视口高度的缓冲区 + threshold: 0 + } ) // 观察已注册的元素 @@ -665,6 +665,8 @@ const loadList = async () => { if (response.data.success) { const data = response.data.data || [] + const totalPages = response.data.totalPages || 0 + const currentPage = response.data.currentPage || 0 // 转换数据格式 const transformedData = data @@ -673,7 +675,11 @@ const loadList = async () => { if (page.value === 1) items.value = [] items.value = items.value.concat(transformedData) - hasMore.value = data.length === pageSize.value + + // 使用后端返回的总页数来判断是否还有更多数据 + hasMore.value = currentPage < totalPages - 1 + + console.log('[MyWorks] 分页信息 - 当前页:', currentPage, '总页数:', totalPages, '是否有更多:', hasMore.value) // 检查是否有处理中的任务,如果有则启动轮询 checkAndStartPolling() diff --git a/demo/frontend/src/views/NovelComicCreate.vue b/demo/frontend/src/views/NovelComicCreate.vue index e868a3b..713580b 100644 --- a/demo/frontend/src/views/NovelComicCreate.vue +++ b/demo/frontend/src/views/NovelComicCreate.vue @@ -9,8 +9,8 @@
-
-

创作设置

+
+

创作设置

@@ -22,7 +22,7 @@ v-model:value="form.theme" placeholder="例如:都市奇幻、校园恋爱、科幻冒险..." :maxlength="100" - show-count + @input="checkThemeLength" />
@@ -37,7 +37,7 @@ placeholder="描述故事发生的世界观、时代背景、环境设定等..." :rows="4" :maxlength="2000" - show-count + @input="checkStoryBackgroundLength" />
@@ -84,7 +84,7 @@ placeholder="输入完整的故事文案/剧本内容,AI 将基于此生成漫剧..." :rows="8" :maxlength="10000" - show-count + @input="checkStoryScriptLength" />
@@ -163,35 +163,64 @@
-
+

历史记录

-
+
{{ getHistoryStatusText(item.status) }} - {{ formatDate(item.createdAt) }} + {{ formatFriendlyDate(item.createdAt) }}
{{ item.theme }}
{{ truncateText(item.storyBackground || item.storyScript || '', 80) }}
+ + +
+
+
故事背景
+
{{ item.storyBackground || '-' }}
+
+
+
故事文案
+
{{ item.storyScript || '-' }}
+
+
+
+ + {{ expandedItemId === item.id ? '收起' : '展开' }} + 复用设置 查看结果 + + 删除 +
+ +
+
📝
+

暂无历史记录

+

完成创作后,记录将显示在这里

+
+ +
+ + 加载中... +
-
+
加载更多
@@ -225,11 +254,11 @@