@@ -42,9 +42,9 @@ export function videoHyApi(id) { | |||
* @params id | |||
* @returns data | |||
*/ | |||
export function checkVideoStatusApi(list, type) { | |||
export function checkVideoStatusApi(list) { | |||
return request({ | |||
url: `/api/userPhotoVideo/checkVideoStatus?list=${list}&type=${type}`, | |||
url: `/api/userPhotoVideo/checkVideoStatus?list=${list}`, | |||
method: 'get' | |||
}) | |||
} |
@@ -107,6 +107,9 @@ export default { | |||
generating: "Generating", | |||
generationFailed: "Failed", | |||
generationSucceed: "Succeed", | |||
videoUpSucceed: "HD", | |||
videoUpFailed: "UP Failed", | |||
videoUping:'Upgrades', | |||
manuscriptText: "Manuscript", | |||
generatingText: "The video is generating, Please wait a moment", | |||
generationFailedText: "Video generation failed, click Edit button to retry.", | |||
@@ -107,6 +107,9 @@ export default { | |||
generating: "生成中", | |||
generationFailed: "生成失败", | |||
generationSucceed: "生成成功", | |||
videoUping:'升级中', | |||
videoUpFailed: "升级失败", | |||
videoUpSucceed: "HD", | |||
manuscriptText: "草稿", | |||
generatingText: "视频正在生成中,请稍等哦", | |||
generationFailedText: "视频生成失败,您可以点击下方按钮重新编辑生成", | |||
@@ -1390,18 +1390,6 @@ async function saveOrUpdate(index, isSaveVideo) { | |||
return; | |||
} | |||
try { | |||
const res2 = await saveOrUpdateApi(saveOrUpdateData); // 保存数据 | |||
if (res2.code == 1002) { | |||
} | |||
// 这个if判断是不是仅仅保存视频 | |||
if (isSaveVideo == "saveVideo") { | |||
ElMessage.success( | |||
lanChange.value == "zh-cn" ? `已保存为草稿` : `Saved as manuscript` | |||
); | |||
createLoading.value = false; | |||
router.push("/myCreating"); | |||
return; | |||
} | |||
// 获取预估时长 | |||
const res4 = await previewAudioApi( | |||
textareaContent.value, | |||
@@ -1417,6 +1405,19 @@ async function saveOrUpdate(index, isSaveVideo) { | |||
createLoading.value = false; | |||
return; | |||
} | |||
if (res4.data.data > 60) { | |||
ElMessage.error( | |||
lanChange.value == "zh-cn" | |||
? `预计生成的视频时长约为${formatTime( | |||
res4.data.data | |||
)},免费用户生成视频时长为60秒,无法生成视频` | |||
: `The video generated is expected to be about ${formatTime( | |||
res4.data.data | |||
)} long, and the free user-generated video is 60 seconds long and cannot be generated` | |||
); | |||
createLoading.value = false; | |||
return; | |||
} | |||
ElMessage.success( | |||
lanChange.value == "zh-cn" | |||
? `预计生成的视频时长约为${formatTime(res4.data.data)}` | |||
@@ -1424,6 +1425,19 @@ async function saveOrUpdate(index, isSaveVideo) { | |||
res4.data.data | |||
)} in length` | |||
); | |||
const res2 = await saveOrUpdateApi(saveOrUpdateData); // 保存数据 | |||
if (res2.code == 1002) { | |||
} | |||
// 这个if判断是不是仅仅保存视频 | |||
if (isSaveVideo == "saveVideo") { | |||
ElMessage.success( | |||
lanChange.value == "zh-cn" ? `已保存为草稿` : `Saved as manuscript` | |||
); | |||
createLoading.value = false; | |||
router.push("/myCreating"); | |||
return; | |||
} | |||
// 3秒后调用生成视频 | |||
const changeHasNewCreate = setTimeout(async () => { | |||
const res3 = await createVideoApi({ id: res2.data.id }); // 生成视频 | |||
@@ -1665,17 +1679,17 @@ async function uploadMusic() { | |||
if (uploadAudioTime.value > 60) { | |||
ElMessage.error( | |||
lanChange.value == "zh-cn" | |||
? `上传失败,免费用户上传音频时长最多为60秒` | |||
: `Upload failed, free users can upload audio for up to 60 seconds` | |||
? `上传音频大小或者长度超出限制,请重新上传` | |||
: `The size or length of the uploaded audio exceeds the limit. Please upload it again` | |||
); | |||
return; | |||
} | |||
// 限制3mb | |||
if (file.size / 1048576 > 3) { | |||
if (file.size / 1048576 > 5) { | |||
ElMessage.error( | |||
lanChange.value == "zh-cn" | |||
? `上传失败,免费用户上传音频大小最大为3MB` | |||
: `Failed to upload. The maximum size of audio uploaded by free users is 3MB` | |||
? `上传音频大小或者长度超出限制,请重新上传` | |||
: `The size or length of the uploaded audio exceeds the limit. Please upload it again` | |||
); | |||
return; | |||
} | |||
@@ -66,7 +66,7 @@ | |||
><i-ep-closeBold | |||
/></el-icon> | |||
<el-icon | |||
v-if="[5].includes(item.videoStatus)" | |||
v-if="[5, 7, 8, 9, 10, 11, 12].includes(item.videoStatus)" | |||
class="icon-videoPlay" | |||
><i-ep-videoPlay | |||
/></el-icon> | |||
@@ -130,15 +130,16 @@ | |||
center | |||
> | |||
<div class="videoBox"> | |||
<!-- 免费用户1分钟 --> | |||
<div v-if="[5].includes(presentItem.videoStatus)" class="overtimeTips"> | |||
<!-- 免费用户1分钟 [5].includes(presentItem.videoStatus)--> | |||
<div | |||
v-if="presentItem.videoPlayUrl && presentItem.videoTime > 60" | |||
class="overtimeTips" | |||
> | |||
<img src="../../assets/img/tips.png" alt="" /> | |||
{{ $t("myCreating.freeUserTip") }} | |||
</div> | |||
<video | |||
v-if=" | |||
presentItem.videoPlayUrl && [5].includes(presentItem.videoStatus) | |||
" | |||
v-if="presentItem.videoPlayUrl" | |||
controls="true" | |||
class="" | |||
:src="presentItem.videoPlayUrl" | |||
@@ -170,6 +171,7 @@ | |||
</button> | |||
<!-- 提升画质 --> | |||
<el-tooltip | |||
style="cursor: pointer" | |||
v-if="presentItem.isHy == 0" | |||
class="box-item" | |||
effect="light" | |||
@@ -177,11 +179,12 @@ | |||
placement="top" | |||
> | |||
<button | |||
v-if="false" | |||
style="cursor: pointer" | |||
v-if="presentItem.isHy == 0" | |||
class="elBtn upSharpness" | |||
@click.stop="upGrades(presentItem.id)" | |||
> | |||
<div v-if="!upGradesLoading"> | |||
<div v-if="!upGradesLoading" style="cursor: pointer"> | |||
<img src="../../assets//img/Upgrades.png" alt="" /> | |||
{{ $t("myCreating.upSharpness") }} | |||
</div> | |||
@@ -398,15 +401,8 @@ function getPhotoVideoList(pageNum, pageSize, title, searchFlag) { | |||
notGenerateList.value = []; | |||
// 找到数组中未生成的,放入列表,为了刷新 | |||
res.data.list.forEach((item) => { | |||
if (item.isHy == 0) { | |||
if ([1, 2, 4, 6].includes(item.videoStatus)) { | |||
notGenerateList.value.push(item.id); | |||
} | |||
} | |||
if (item.isHy == 1) { | |||
if ([1, 2, 4, 6].includes(item.videoStatus)) { | |||
notGenerateList2.value.push(item.id); | |||
} | |||
if ([1, 2, 4, 6, 7, 8, 10, 12].includes(item.videoStatus)) { | |||
notGenerateList.value.push(item.id); | |||
} | |||
}); | |||
res.data.list.forEach((item) => { | |||
@@ -467,19 +463,14 @@ const notGenerateList = ref([]); //页面上未生成的视频的id 普通视 | |||
const notGenerateList2 = ref([]); //页面上未生成的视频的id 升级视频 | |||
const checkVideoStatus = async () => { | |||
// 如果列表中没有生成中的视频,不发送请求 | |||
const intervalId = setInterval(async () => { | |||
// && notGenerateList2.value.length == 0; | |||
if (notGenerateList.value.length == 0) { | |||
return; | |||
} | |||
try { | |||
const res = await checkVideoStatusApi(notGenerateList.value, 1); | |||
// const res2 = checkVideoStatusApi(notGenerateList2.value, 2); | |||
const res = await checkVideoStatusApi(notGenerateList.value); | |||
// 如果有新的,则提示且更新列表 | |||
console.log(res.code); | |||
// console.log(res2.code); | |||
// || res2.code != 2115 | |||
if (res.code != 2115) { | |||
hasNewCreate.value = true; | |||
const changeHasNewCreate = setTimeout(() => { | |||
@@ -718,6 +709,18 @@ onMounted(() => { | |||
/* 生成成功 */ | |||
background: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%); | |||
} | |||
&.videoUping { | |||
/* 升级中 */ | |||
background: linear-gradient(120deg, #4512c7 0%, #4fd334 100%); | |||
} | |||
&.videoUpFailed { | |||
/* HD */ | |||
background: linear-gradient(120deg, #ff0019 0%, #ff00c3 100%); | |||
} | |||
&.videoUpSucceed { | |||
/* HD */ | |||
background: linear-gradient(120deg, #fdeb71 0%, #d37e1a 100%); | |||
} | |||
} | |||
&:hover { | |||
.more { | |||
@@ -3,7 +3,7 @@ | |||
* @param {number} status | |||
* @return: statusName | |||
*/ | |||
// 0草稿 1246生成中 3失败 5成功 | |||
// 0草稿 (1246生成中) 3失败 5成功 (7 8 10 12超分中) 11超分成功 9超分失败 | |||
export const getStatus = status => { | |||
if (status == 0) { | |||
return "manuscript" | |||
@@ -13,5 +13,11 @@ export const getStatus = status => { | |||
return "generationFailed" | |||
} else if (status == 5) { | |||
return "generationSucceed" | |||
} else if (status == 7 || status == 8 || status == 10 || status == 12) { | |||
return "videoUping" | |||
} else if (status == 9) { | |||
return "videoUpFailed" | |||
} else if (status == 11) { | |||
return "videoUpSucceed" | |||
} | |||
} |
@@ -89,15 +89,15 @@ | |||
<div class="authority-item"> | |||
{{ $t("shop.AIGeneratedPortrait") }}:<span>{{ | |||
item.userPackageDetails[0].aiPortrait == 0 | |||
? $t("shop.yes") | |||
: $t("shop.no") | |||
? $t("shop.no") | |||
: $t("shop.yes") | |||
}}</span> | |||
</div> | |||
<div class="authority-item"> | |||
{{ $t("shop.PhotoSinging") }}:<span>{{ | |||
item.userPackageDetails[0].photoSing == 0 | |||
? $t("shop.yes") | |||
: $t("shop.no") | |||
? $t("shop.no") | |||
: $t("shop.yes") | |||
}}</span> | |||
</div> | |||
<div class="authority-item"> | |||