|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
|
- <div class="mirror-setting">
|
|
|
+ <div class="mirror-setting" v-if="!isNotFound">
|
|
|
<!-- 图片预览 -->
|
|
|
<el-dialog v-model="dialogVisible">
|
|
|
<img
|
|
@@ -101,8 +101,9 @@
|
|
|
<template #file="{ file }">
|
|
|
<div style="width: 100%">
|
|
|
<img
|
|
|
+ v-if="file.cover"
|
|
|
class="el-upload-list__item-thumbnail"
|
|
|
- :src="getCoverUrl(file.url)"
|
|
|
+ :src="getCoverUrl(file.cover)"
|
|
|
alt=""
|
|
|
/>
|
|
|
<span class="el-upload-list__item-actions">
|
|
@@ -170,6 +171,7 @@
|
|
|
</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <noCase :show-btn="false" v-else></noCase>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
@@ -181,19 +183,23 @@ import { uploadFile as uploadFileUrl } from "@/request";
|
|
|
import {
|
|
|
getCaseScriptInfo,
|
|
|
CaseScriptSaveOrUpdate,
|
|
|
+ CaseScriptGetCover,
|
|
|
} from "@/app/mirror/store/script";
|
|
|
import linkIco from "@/assets/image/fire.ico";
|
|
|
import musicHeadphones from "@/assets/image/music.png";
|
|
|
+import { getCaseInfo } from "@/store/case";
|
|
|
+import noCase from "@/view/case/no-case.vue";
|
|
|
|
|
|
const link = document.querySelector<HTMLLinkElement>("#app-icon")!;
|
|
|
link.setAttribute("href", linkIco);
|
|
|
|
|
|
const caseId = ref(null);
|
|
|
const project = reactive({
|
|
|
- title: "我的脚本",
|
|
|
+ title: "",
|
|
|
});
|
|
|
|
|
|
-document.title = project.title;
|
|
|
+const isNotFound = ref(false);
|
|
|
+
|
|
|
const dialogImageUrl = ref("");
|
|
|
const dialogVisible = ref(false);
|
|
|
const disabled = ref(false);
|
|
@@ -259,10 +265,10 @@ const checkSourceIsImage = computed(() => (url: string) => {
|
|
|
|
|
|
const getCoverUrl = computed(() => (url: string) => {
|
|
|
switch (true) {
|
|
|
- case url.includes(".mp4"):
|
|
|
- return (
|
|
|
- url + "?x-oss-process=video/snapshot,t_0,f_jpg,w_0,h_0,m_fast,ar_auto"
|
|
|
- );
|
|
|
+ // case url.includes(".mp4"):
|
|
|
+ // return (
|
|
|
+ // url + "?x-oss-process=video/snapshot,t_0,f_jpg,w_0,h_0,m_fast,ar_auto"
|
|
|
+ // );
|
|
|
case url.includes(".mp3") || url.includes(".wmv"):
|
|
|
return musicHeadphones;
|
|
|
default:
|
|
@@ -275,8 +281,15 @@ const data = reactive({
|
|
|
newSortList: [],
|
|
|
});
|
|
|
const sortList = ref([0]);
|
|
|
-onMounted(() => {
|
|
|
+
|
|
|
+onMounted(async () => {
|
|
|
caseId.value = GetRequest("caseId");
|
|
|
+ const caseInfo = await getCaseInfo(caseId.value!);
|
|
|
+ if (caseInfo && caseId.value) {
|
|
|
+ document.title = caseInfo.caseTitle + " | 分配配置";
|
|
|
+ } else {
|
|
|
+ isNotFound.value = true;
|
|
|
+ }
|
|
|
getCaseScriptList();
|
|
|
console.log("caseId", caseId); //query传参
|
|
|
});
|
|
@@ -285,11 +298,22 @@ function getCaseScriptList() {
|
|
|
getCaseScriptInfo(caseId.value)
|
|
|
.then((res) => {
|
|
|
project.title = res.name;
|
|
|
- data.list = res.content;
|
|
|
- data.newSortList = res.content;
|
|
|
+ data.list = res.content || [];
|
|
|
+ data.newSortList = res.content || [];
|
|
|
const idList = data.list.map((ele) => ele.id);
|
|
|
active.value = Math.max.apply(null, idList) || 1;
|
|
|
sortList.value = data.list.map((_, index) => index);
|
|
|
+
|
|
|
+ Array.from(data.list).forEach((item) => {
|
|
|
+ item.fileList.forEach(async (file: File, index) => {
|
|
|
+ if ((file as any).url.includes(".mp4")) {
|
|
|
+ const res = await CaseScriptGetCover((file as any).url);
|
|
|
+ (item.fileList[index] as any).cover = res;
|
|
|
+ } else {
|
|
|
+ (item.fileList[index] as any).cover = (file as any).url;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
console.log(err);
|
|
@@ -343,9 +367,13 @@ const saveProject = () => {
|
|
|
console.log("saveProject");
|
|
|
});
|
|
|
};
|
|
|
-function handleUploadSuccess(response: any, uploadFile: UploadFile) {
|
|
|
+async function handleUploadSuccess(response: any, uploadFile: UploadFile) {
|
|
|
uploadFile.url = response.data;
|
|
|
- console.log(response, uploadFile);
|
|
|
+ if (uploadFile.url!.includes(".mp4")) {
|
|
|
+ const res = await CaseScriptGetCover(uploadFile.url!);
|
|
|
+ (uploadFile as any).cover = res;
|
|
|
+ }
|
|
|
+ console.log("handleUploadSuccess", response, uploadFile);
|
|
|
}
|
|
|
|
|
|
function GetRequest(value) {
|