diff --git a/web/src/pages/creator/competitors/index.tsx b/web/src/pages/creator/competitors/index.tsx index bff2fda..380b025 100644 --- a/web/src/pages/creator/competitors/index.tsx +++ b/web/src/pages/creator/competitors/index.tsx @@ -1,9 +1,10 @@ // 竞品分析:作品列表对齐 ant-design-pro card-list——antd Row/Col 响应式栅格 + Card 原样组合; -// 作品详情改走 Drawer;素材三步处理与仿写流程内联卡片原样保留;筛选自动刷新、手动翻页不变。 +// 作品详情与素材处理均走 Drawer;日期筛选用 antd DatePicker;筛选自动刷新、手动翻页不变。 // 平台筛选已随 migration 038(platform 收敛 douyin)移除。 import { useEffect, useState } from 'react'; import { CommentOutlined, LikeOutlined, ShareAltOutlined } from '@ant-design/icons'; -import { Alert, App, Button, Card, Col, Drawer, Empty, Flex, Input, InputNumber, Modal, Row, Select, Space, Spin, Table, Tag, Typography } from 'antd'; +import { Alert, App, Button, Card, Col, DatePicker, Drawer, Empty, Flex, Input, InputNumber, Modal, Row, Select, Space, Spin, Table, Tag, Typography } from 'antd'; +import type { Dayjs } from 'dayjs'; import { creatorAction, creatorGet, creatorUpdate, getList } from '@/services/api'; import { conflictMessage, dateTime } from '@/utils/helpers'; @@ -25,8 +26,8 @@ interface Filters { minComments?: number; minShares?: number; publishedAtStatus?: string; - publishedAfter?: string; - publishedBefore?: string; + publishedAfter?: Dayjs; + publishedBefore?: Dayjs; } function statusTag(status?: string) { @@ -224,8 +225,20 @@ export default function Page() { onChange={(value) => setFilters((f) => ({ ...f, publishedAtStatus: value }))} options={publishedAtStatusOptions} /> - setFilters((f) => ({ ...f, publishedAfter: e.target.value }))} /> - setFilters((f) => ({ ...f, publishedBefore: e.target.value }))} /> + setFilters((f) => ({ ...f, publishedAfter: value ?? undefined }))} + allowClear + /> + setFilters((f) => ({ ...f, publishedBefore: value ?? undefined }))} + allowClear + /> @@ -255,8 +268,13 @@ export default function Page() { , - , ...(work.original_url ? [原文] : []), ]} @@ -306,65 +324,73 @@ export default function Page() { ) : null} + setMaterial(null)} + size="large" + title="素材处理" + destroyOnHidden + > {material ? ( - - 每一步都保留真实状态;失败不会被显示为成功。 - -
- -
- - {stepTag(material.download_status, `下载:${material.download_status}`)} - {stepTag(material.audio_status, `音轨:${material.audio_status}`)} - {stepTag(material.transcription_status, `转写:${material.transcription_status}`)} - - {material.failure_reason ? ( - - ) : null} -
- 仿写要求 - 必须先确认要求,才允许保存可编辑结果。 - setRewriteRequirement(event.target.value)} - disabled={Boolean(material.rewrite_confirmed_at) || materialPending} - /> -
- {material.rewrite_confirmed_at ? ( - <> - - - 生成结果不会自动发布,保存前必须人工复核。 - -
- 可编辑标题 - setRewriteTitle(event.target.value)} style={{ marginTop: 4 }} /> -
-
- 可编辑口播 - setRewriteScript(event.target.value)} style={{ marginTop: 4 }} /> -
-
- -
- - ) : ( -
- -
- )} -
-
+ + 每一步都保留真实状态;失败不会被显示为成功。 + +
+ +
+ + {stepTag(material.download_status, `下载:${material.download_status}`)} + {stepTag(material.audio_status, `音轨:${material.audio_status}`)} + {stepTag(material.transcription_status, `转写:${material.transcription_status}`)} + + {material.failure_reason ? ( + + ) : null} +
+ 仿写要求 + 必须先确认要求,才允许保存可编辑结果。 + setRewriteRequirement(event.target.value)} + disabled={Boolean(material.rewrite_confirmed_at) || materialPending} + /> +
+ {material.rewrite_confirmed_at ? ( + <> + + + 生成结果不会自动发布,保存前必须人工复核。 + +
+ 可编辑标题 + setRewriteTitle(event.target.value)} style={{ marginTop: 4 }} /> +
+
+ 可编辑口播 + setRewriteScript(event.target.value)} style={{ marginTop: 4 }} /> +
+
+ +
+ + ) : ( +
+ +
+ )} +
+
) : null} +
setWorkDetail(null)} size="large" title="作品详情"> {workDetail ? (