+
@@ -210,8 +222,8 @@
🕬🔊
🕗
@@ -460,20 +472,26 @@ import {
saveOrUpdateApi,
createVideoApi,
previewAudioApi,
+ findByIdApi,
} from "@/apis/createVideo";
import { useI18n } from "vue-i18n";
import Recorder from "js-audio-recorder"; //mp3插件
import imageCompression from "browser-image-compression"; //压缩图片插件
-
+import { useRoute, useRouter } from "vue-router";
+const route = useRoute();
+const router = useRouter();
const { locale } = useI18n();
const lanChange = ref(locale);
+const AccessToken = localStorage.getItem("AccessToken"); // 判断有没有登录
+
//#region 头像区的逻辑
// 获取AI头像
-const AiFaceList = ref([]);
-const userAiFaceList = ref([]);
+const AiFaceList = ref([]); //系统相册列表
+const userAiFaceList = ref([]); //个人相册列表
const feceItemLoading = ref(false);
const feceItemLoading2 = ref(false);
+
function getAiFaceList(pageNum, pageSize, sendType) {
feceItemLoading.value = true;
personPhotoList(pageNum, pageSize, sendType)
@@ -498,16 +516,43 @@ function getAiFaceUserList(pageNum, pageSize, sendType) {
console.log(err, "err");
});
}
+const pageNumSystem = ref(1);
+const overLoadSystem = ref(false); //禁用系统相册加载更多
+const pageNumUser = ref(1);
+const overLoadUser = ref(false); //禁用个人相册加载更多
+//系统相册触底加载更多
+function loadMoreAiFaceSystem() {
+ pageNumSystem.value += 1;
+ personPhotoList(pageNumSystem.value, 10, 1)
+ .then((res) => {
+ AiFaceList.value.push(...res.data.list);
+ if (res.data.list.length == 0) {
+ overLoadSystem.value = true;
+ pageNumSystem.value = pageNumSystem.value - 1;
+ }
+ })
+ .catch((err) => {
+ console.log(err, "err");
+ });
+}
+//个人相册触底加载更多
+function loadMoreAiFaceUser() {
+ pageNumUser.value += 1;
+ personPhotoUserListList(pageNumUser.value, 10, 3)
+ .then((res) => {
+ if (res.data.list.length == 0) {
+ overLoadUser.value = true;
+ pageNumUser.value = pageNumUser.value - 1;
+ }
+ userAiFaceList.value.push(...res.data.list);
+ })
+ .catch((err) => {
+ console.log(err, "err");
+ });
+}
// 选择显示的face列表
const showFace = ref("0");
function ChangeShowFaceList(index) {
- AiFaceList.value = null;
- if (index == 0) {
- getAiFaceList(1, 100, 1);
- }
- if (index == 1) {
- getAiFaceUserList(1, 100, 3);
- }
showFace.value = index;
}
const faceItemActive = ref(); //高亮处理和当前选择图片的ID
@@ -518,6 +563,7 @@ function setImgUrl(url, id) {
submitImgBtn.value = false;
imgUrl.value = url;
}
+// 删除个人相册照片
async function deleteFaceImg(id) {
const msg =
lanChange.value == "zh-cn"
@@ -534,7 +580,10 @@ async function deleteFaceImg(id) {
const res = await delImgApi(id);
imgUrl.value = null;
faceItemActive.value = null;
- getAiFaceUserList(1, 100, 3);
+ userAiFaceList.value = [];
+ getAiFaceUserList(1, 10, 3);
+ pageNumUser.value = 1;
+ overLoadUser.value = false;
} catch (error) {
ElMessage.error(errpr);
}
@@ -598,7 +647,10 @@ async function changeFile() {
// 重新获取列表
compressionImgLoad.value = false;
showUploadBtn.value = 4;
- getAiFaceUserList(1, 100, 3);
+ userAiFaceList.value = [];
+ getAiFaceUserList(1, 10, 3);
+ pageNumUser.value = 1;
+ overLoadUser.value = false;
if (res2.code == 200) {
ElMessage.success(
lanChange.value == "zh-cn" ? `上传成功` : `Upload successfully`
@@ -697,8 +749,14 @@ async function getPreviewAudio() {
sound.value,
soundStyle.value
);
+ if (!res.data.data) {
+ ElMessage.error(
+ lanChange.value == "zh-cn"
+ ? `暂时无法试听,请稍后重试`
+ : `Unable to listen, please try again later`
+ );
+ }
previewAudioUrl.value = res.data.data;
- console.log(previewAudioUrl.value);
} catch (error) {
ElMessage.error(error);
}
@@ -798,6 +856,7 @@ async function uploadProgress(videoId, isSaveVideo) {
}
// 定义参数
const saveOrUpdateData = {
+ id: id.value, //从草稿或者重新编辑回到创建视频时有id
title: title.value,
personPhotoId: faceItemActive.value, //任务照片id,
voiceFrom: tabFrom.value, //:声音来源 1:来自选择模板,2:来自用户上传
@@ -808,11 +867,13 @@ async function uploadProgress(videoId, isSaveVideo) {
};
try {
const res3 = await saveOrUpdateApi(saveOrUpdateData); // 保存数据
+ // 这个if判断是不是仅仅保存视频
if (isSaveVideo == "saveVideo") {
ElMessage.success(
lanChange.value == "zh-cn" ? `已保存为草稿` : `Saved as draft`
);
createLoading.value = false;
+ router.push("/myCreating");
return;
}
const res4 = await createVideoApi({ id: res3.data.id }); // 生成视频
@@ -824,6 +885,7 @@ async function uploadProgress(videoId, isSaveVideo) {
);
}
createLoading.value = false;
+ router.push("/myCreating");
} catch (error) {
ElMessage.error(error);
createLoading.value = false;
@@ -844,6 +906,7 @@ async function saveOrUpdate(index, isSaveVideo) {
}
tabFrom.value = index;
const saveOrUpdateData = {
+ id: id.value, //从草稿或者重新编辑回到创建视频时有id
title: title.value,
personPhotoId: faceItemActive.value, //任务照片id,
voiceFrom: tabFrom.value, //:声音来源 1:来自选择模板,2:来自用户上传
@@ -856,11 +919,13 @@ async function saveOrUpdate(index, isSaveVideo) {
createLoading.value = true;
try {
const res2 = await saveOrUpdateApi(saveOrUpdateData); // 保存数据
+ // 这个if判断是不是仅仅保存视频
if (isSaveVideo == "saveVideo") {
ElMessage.success(
lanChange.value == "zh-cn" ? `已保存为草稿` : `Saved as draft`
);
createLoading.value = false;
+ router.push("/myCreating");
return;
}
const res3 = await createVideoApi({ id: res2.data.id }); // 生成视频
@@ -872,6 +937,7 @@ async function saveOrUpdate(index, isSaveVideo) {
);
}
createLoading.value = false;
+ router.push("/myCreating");
} catch (error) {
ElMessage.error(error);
createLoading.value = false;
@@ -888,6 +954,26 @@ async function saveOrUpdate(index, isSaveVideo) {
}
//#endregion ----------------------------
+//#region 根据作品id查询作品信息并回显
+const id = ref(null); //作品的id
+async function findById(findId) {
+ const res = await findByIdApi(findId);
+ id.value = res.data.id;
+ title.value = res.data.title; //标题回显
+ faceItemActive.value = res.data.personPhotoId; //aiface高亮和图片id
+ tabFrom.value = res.data.voiceFrom; //输入文案还是上传mp3模式
+ textareaContent.value = res.data.paperwork; //文案内容
+ afterSaveAudioId.value = res.data.voiceMaterialId; //保存音频后得到的id
+ imgUrl.value = res.data.personPhotoUrl; //图片回显
+ audioUrl.value = res.data.voiceMaterialUrl; // mp3回显
+ language.value = res.data.voiceInfo.languageId;
+ await chooseType(language.value);
+ sound.value = res.data.voiceMouldId; //声音id
+ chooseStyle();
+ soundStyle.value = res.data.speakTypeStr; //选择风格
+}
+//#endregion ----------------------------
+
//#region
//#endregion ----------------------------
@@ -902,11 +988,15 @@ const {
const string = "createVideo.typeScript";
const t = globalProperties.$t(string);
-onMounted(() => {
- getAiFaceList(1, 100, 1);
- getAiFaceUserList(1, 100, 3);
- voiceTotal();
- chooseType();
+onMounted(async () => {
+ getAiFaceList(1, 10, 1);
+ if (AccessToken) {
+ getAiFaceUserList(1, 10, 3);
+ }
+ await voiceTotal();
+ if (route.query.id) {
+ findById(route.query.id);
+ }
});
diff --git a/src/views/myCreating/index.vue b/src/views/myCreating/index.vue
index d5dfddd..ba775b7 100644
--- a/src/views/myCreating/index.vue
+++ b/src/views/myCreating/index.vue
@@ -116,7 +116,7 @@
{{ $t("myCreating.loading") }}