
{generating &&
-
-
{t('video.generating')}
+
+
+
+
{t('video.generating')}
+
+
+ }
+ {failed &&
+
+
+
+
{t('video.generate_failed')}
+
}
{/* && active*/}
- {!generating && playing &&
+ {!generating && !failed && playing &&
-
{t('video.playing')}
+
{t('video.playing')}
}
@@ -92,7 +115,7 @@ export const VideoListItem = (
{/*
:
)}*/}
-
+
{editable && !generating && <>
{onEdit &&
}
+ {onRegenerate &&
+
}
{onRemove &&
}
-
{
+ {hideCheckBox ? : {
if (onCheckedChange) {
onCheckedChange(!state.checked)
} else {
setState({checked: !state.checked})
}
- }} />
+ }} />}
>}
+ {additionOperation}
diff --git a/src/i18n/translations/en-US.json b/src/i18n/translations/en-US.json
index 17d364b..d19667e 100644
--- a/src/i18n/translations/en-US.json
+++ b/src/i18n/translations/en-US.json
@@ -136,6 +136,7 @@
"delete_empty": "Select the video you want to delete",
"download": "Download",
"generating": "Generating",
+ "generate_failed": "Generate Failed",
"playing": "Playing",
"push_confirm": "Are you sure you want to streaming these video?",
"push_empty": "Select the video you want to streaming",
diff --git a/src/i18n/translations/zh-CN.json b/src/i18n/translations/zh-CN.json
index 676c3e3..a81d41e 100644
--- a/src/i18n/translations/zh-CN.json
+++ b/src/i18n/translations/zh-CN.json
@@ -136,6 +136,7 @@
"delete_empty": "请选择要删除的视频",
"download": "下载视频",
"generating": "生成中",
+ "generate_failed": "生成失败",
"playing": "播放中",
"push_confirm": "是否确定一键推流选中新闻视频?",
"push_empty": "请选择要推流的新闻视频",
diff --git a/src/pages/news/index.tsx b/src/pages/news/index.tsx
index 59a4117..d718921 100644
--- a/src/pages/news/index.tsx
+++ b/src/pages/news/index.tsx
@@ -56,11 +56,11 @@ export default function NewsIndex() {
}
})
- const handleViewNewsDetail = (id: number) => {
+ const handleViewNewsDetail = (id: number,internal_article_id:number) => {
const {update, close} = showLoading(`${t('news.get_detail')}...`)
getById(id).then(res => {
close()
- setActiveNews({...res, id})
+ setActiveNews({...res, id,internal_article_id})
}).catch(() => {
update(t('news.get_detail_error'), 'info')
})
@@ -95,7 +95,7 @@ export default function NewsIndex() {
closeIcon={null} open={true} width={1000}
footer={null} onCancel={() => setActiveNews(undefined)}
>
-
+
{activeNews?.title}
@@ -111,11 +111,11 @@ export default function NewsIndex() {
setActiveNews(undefined)}/>
-
-
+ {activeNews.internal_article_id <= 0 && handleCheckChange(activeNews!.id)}
- >{t('select.text')}
+ >{t('select.text')}}
@@ -157,7 +157,7 @@ export default function NewsIndex() {
{
- handleViewNewsDetail(item.id)
+ handleViewNewsDetail(item.id,item.internal_article_id)
}}>{item.title}
{
- setCheckedIdArray(state.checkedAll ? [] : videoData.map(v => v.id))
+ setCheckedIdArray(state.checkedAll ? [] : videoData.filter(s=>s.status == VideoStatus.Generated).map(v => v.id))
setState({
checkedAll: !state.checkedAll
})
@@ -142,6 +142,12 @@ export default function VideoIndex() {
loadList()
}).catch(showErrorToast)
}
+ const processGenerateVideo = async (video: VideoInfo) => {
+ regenerateById(video.article_id).then(() => {
+ //showToast(t('delete_success'), 'success')
+ loadList()
+ }).catch(showErrorToast)
+ }
return (
@@ -236,7 +242,7 @@ export default function VideoIndex() {
active={checkedIdArray.includes(v.id)}
playing={state.playingId == v.id}
checked={checkedIdArray.includes(v.id)}
- className={`list-item-${index} mt-3 mb-2 list-item-state-${v.status}`}
+ className={`list-item-${index} mt-3 mb-2 list-item-state-${v.status} `}
onCheckedChange={(checked) => {
setCheckedIdArray(idArray => {
const newArr = checked ? idArray.concat(v.id) : idArray.filter(id => id != v.id);
@@ -246,17 +252,21 @@ export default function VideoIndex() {
}}
onItemClick={() => playVideo(v)}
onRemove={() => processDeleteVideo([v.id])}
- onEdit={v.status == VideoStatus.Generating ? undefined : () => {
+ onEdit={v.status == VideoStatus.Generated ? () => {
setEditId(v.article_id)
- }}
+ }:undefined}
+ onRegenerate={v.status != VideoStatus.Generating && v.status != VideoStatus.Generated?()=>{
+ processGenerateVideo(v)
+ }:undefined}
+ hideCheckBox={v.status != VideoStatus.Generating && v.status != VideoStatus.Generated}
editable={v.status != VideoStatus.Generating}
- sortable={v.status != VideoStatus.Generating}
+ sortable={v.status == VideoStatus.Generated}
/>))}
}
-
+
diff --git a/src/service/api/video.ts b/src/service/api/video.ts
index 3101ad9..5cffff9 100644
--- a/src/service/api/video.ts
+++ b/src/service/api/video.ts
@@ -1,4 +1,5 @@
-import {get, post} from "@/service/request.ts";
+import {post} from "@/service/request.ts";
+import {getById as getArticle} from "./article"
export function getList() {
return post