更新 pricing说明

This commit is contained in:
moux1024 2025-10-11 22:44:22 +08:00
parent 153d0d49f8
commit 928c666305
3 changed files with 66 additions and 26 deletions

View File

@ -163,9 +163,26 @@ function HomeModule5() {
xl:text-[3.375rem] xl:leading-[110%] xl:mb-[1.5rem] xl:text-[3.375rem] xl:leading-[110%] xl:mb-[1.5rem]
2xl:text-[3.5rem] 2xl:leading-[110%] 2xl:mb-[1.5rem]" 2xl:text-[3.5rem] 2xl:leading-[110%] 2xl:mb-[1.5rem]"
> >
Pick a plan and make it yours CREATE FOR $0.
</h2> </h2>
<p
className="text-white font-normal text-center
/* 移动端字体 */
text-[1rem] leading-[140%]
/* 平板字体 */
sm:text-[1.25rem] sm:leading-[140%]
/* 小屏笔记本字体 */
md:text-[1.5rem] md:leading-[140%]
/* 大屏笔记本字体 */
lg:text-[1.6rem] lg:leading-[140%]
/* 桌面端字体 */
xl:text-[1.7rem] xl:leading-[140%]
/* 大屏显示器字体 */
2xl:text-[1.8rem] 2xl:leading-[140%]"
>
Remove watermark with Credits.
</p>
{/* 计费切换 */} {/* 计费切换 */}
<div <div
className="flex bg-black rounded-full border border-white/20 className="flex bg-black rounded-full border border-white/20

View File

@ -1315,9 +1315,26 @@ function HomeModule5() {
/* 大屏显示器字体 */ /* 大屏显示器字体 */
2xl:text-[3.5rem] 2xl:leading-[110%] 2xl:mb-[1.5rem]" 2xl:text-[3.5rem] 2xl:leading-[110%] 2xl:mb-[1.5rem]"
> >
Pick a plan and make it yours CREATE FOR $0.
</h2> </h2>
<p
className="text-white font-normal text-center
/* 移动端字体 */
text-[1rem] leading-[140%]
/* 平板字体 */
sm:text-[1.25rem] sm:leading-[140%]
/* 小屏笔记本字体 */
md:text-[1.5rem] md:leading-[140%]
/* 大屏笔记本字体 */
lg:text-[1.6rem] lg:leading-[140%]
/* 桌面端字体 */
xl:text-[1.7rem] xl:leading-[140%]
/* 大屏显示器字体 */
2xl:text-[1.8rem] 2xl:leading-[140%]"
>
Remove watermark with Credits.
</p>
{/* 计费切换 */} {/* 计费切换 */}
<div <div
className="flex bg-black rounded-full border border-white/20 className="flex bg-black rounded-full border border-white/20

View File

@ -13,6 +13,7 @@ import ScriptLoading from './script-loading';
import { TaskObject } from '@/api/DTO/movieEdit'; import { TaskObject } from '@/api/DTO/movieEdit';
import { Button, Tooltip } from 'antd'; import { Button, Tooltip } from 'antd';
import { downloadVideo, downloadAllVideos, getFirstFrame } from '@/utils/tools'; import { downloadVideo, downloadAllVideos, getFirstFrame } from '@/utils/tools';
import { post } from '@/api/request';
import { VideoEditOverlay } from './video-edit/VideoEditOverlay'; import { VideoEditOverlay } from './video-edit/VideoEditOverlay';
import { EditPoint as EditPointType } from './video-edit/types'; import { EditPoint as EditPointType } from './video-edit/types';
import { isVideoModificationEnabled } from '@/lib/server-config'; import { isVideoModificationEnabled } from '@/lib/server-config';
@ -518,18 +519,21 @@ export const MediaViewer = React.memo(function MediaViewer({
totalVideos: totalVideos + 1, totalVideos: totalVideos + 1,
isCurrentVideoFailed: false, isCurrentVideoFailed: false,
isFinalStage: true, isFinalStage: true,
onDownloadCurrent: async () => { projectId: projectId || '',
onDownloadCurrent: async (withWatermark: boolean) => {
setIsLoadingDownloadBtn(true); setIsLoadingDownloadBtn(true);
await downloadVideo(taskObject.final.url); try {
setIsLoadingDownloadBtn(false); const json: any = await post('/movie/download_video', {
project_id: projectId || '',
watermark: !withWatermark
});
const url = json?.data?.download_url as string | undefined;
if (url) await downloadVideo(url);
} finally {
setIsLoadingDownloadBtn(false);
}
}, },
onDownloadAll: async () => { onDownloadAll: () => {}
setIsLoadingDownloadAllVideosBtn(true);
const all = taskObject.videos.data.flatMap((video: any) => video.urls);
all.push(taskObject.final.url);
await downloadAllVideos(all);
setIsLoadingDownloadAllVideosBtn(false);
}
}); });
}} }}
/> />
@ -675,22 +679,24 @@ export const MediaViewer = React.memo(function MediaViewer({
totalVideos: taskObject.final.url ? totalVideos + 1 : totalVideos, totalVideos: taskObject.final.url ? totalVideos + 1 : totalVideos,
isCurrentVideoFailed: isCurrentVideoFailed, isCurrentVideoFailed: isCurrentVideoFailed,
isFinalStage: false, isFinalStage: false,
onDownloadCurrent: async () => { projectId: projectId || '',
if (currentVideo && currentVideo.urls && currentVideo.urls.length > 0) { videoId: currentVideo?.video_id,
setIsLoadingDownloadBtn(true); onDownloadCurrent: async (withWatermark: boolean) => {
await downloadVideo(currentVideo.urls[0]); if (!currentVideo?.video_id) return;
setIsLoadingDownloadBtn(true);
try {
const json: any = await post('/movie/download_video', {
project_id: projectId || '',
video_id: currentVideo.video_id,
watermark: !withWatermark
});
const url = json?.data?.download_url as string | undefined;
if (url) await downloadVideo(url);
} finally {
setIsLoadingDownloadBtn(false); setIsLoadingDownloadBtn(false);
} }
}, },
onDownloadAll: async () => { onDownloadAll: () => {}
setIsLoadingDownloadAllVideosBtn(true);
const all = taskObject.videos.data.flatMap((video: any) => video.urls);
if (taskObject.final.url) {
all.push(taskObject.final.url);
}
await downloadAllVideos(all);
setIsLoadingDownloadAllVideosBtn(false);
}
}); });
}} }}
/> />