Files
AIGC/demo/deploy_baota/frontend/static/ImageToVideoCreate-7e4a813e.js
AIGC Developer dbd06435cb feat: 完成管理员密码登录修复和项目清理
- 修复BCryptPasswordEncoder密码验证问题
- 实现密码设置提示弹窗功能(仅对无密码用户显示一次)
- 优化修改密码逻辑和验证流程
- 更新Welcome页面背景样式
- 清理临时SQL文件和测试代码
- 移动数据库备份文件到database/backups目录
- 删除不必要的MD文档和临时文件
2025-11-21 16:10:00 +08:00

2 lines
20 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{aA as Fe,c as ee,r as u,h as xe,m as Se,U as Re,al as oe,z as v,A as m,B as e,P as n,u as a,R as g,J as P,W as te,K as I,aj as Me,aE as se,aD as ze,M as S,E as B,ae as Ae,ag as ie,Q as Le,a4 as Ne,I as We,a1 as Oe}from"./vue-vendor-164775a6.js";import{_ as $e}from"./avatar-default-20a1956c.js";import{_ as De,u as Ge,f as Be,L as He}from"./index-467ea2ad.js";import{E as d,I as ae,t as le,u as qe,y as je,h as Je,J as Ke}from"./element-plus-83a396df.js";import{i as H}from"./imageToVideo-9aa4ef65.js";import{o as Qe}from"./promptOptimizer-7b528a8c.js";import{c as Ye}from"./userWorks-42fb5a3e.js";import"./utils-edfcd65b.js";const Xe={class:"image-to-video-create-page"},Ze={class:"top-header"},eo={class:"header-left"},oo={class:"header-right"},to={class:"points-display"},so={class:"points-icon"},io={class:"points-number"},ao=["alt"],lo={class:"main-content"},ro={class:"left-panel"},no={class:"creation-tabs"},co={class:"tab active"},uo={class:"image-input-section"},vo={class:"image-upload-area"},mo={key:0,class:"upload-placeholder"},po={class:"upload-text"},go={key:1,class:"upload-preview"},ho=["src","alt"],_o={class:"text-input-section"},fo=["placeholder"],To={class:"optimize-btn"},yo=["disabled"],Vo={class:"video-settings"},ko={class:"setting-item"},bo={class:"setting-item"},wo={class:"setting-item"},Co={class:"hd-setting"},Uo={class:"cost-text"},Eo={class:"generate-section"},Po=["disabled"],Io={key:0,class:"login-tip"},Fo={class:"right-panel"},xo={class:"preview-area"},So={key:0,class:"task-status"},Ro={class:"status-header"},Mo={class:"task-id"},zo={class:"task-description"},Ao={class:"video-preview-container"},Lo={key:0,class:"generating-container"},No={class:"generating-placeholder"},Wo={class:"generating-text"},Oo={class:"progress-bar-large"},$o={key:1,class:"completed-container"},Do={class:"task-info-header"},Go={class:"task-checkbox"},Bo={for:"inProgress"},Ho={class:"video-player-container"},qo=["src"],jo={key:1,class:"no-video-placeholder"},Jo={class:"no-video-text"},Ko={class:"watermark-overlay"},Qo={class:"watermark-options"},Yo={class:"watermark-option"},Xo={for:"withWatermark"},Zo={class:"watermark-option"},et={for:"withoutWatermark"},ot={class:"result-actions"},tt={class:"action-icons"},st=["title"],it=["title"],at={key:2,class:"failed-container"},lt={class:"failed-placeholder"},rt={class:"failed-text"},nt={class:"failed-desc"},dt={class:"result-actions"},ct={key:3,class:"status-placeholder"},ut={class:"status-text"},vt={key:1,class:"preview-content"},mt={class:"preview-placeholder"},pt={class:"placeholder-text"},gt={key:2,class:"history-section"},ht={class:"history-list"},_t={key:0,class:"history-status-checkbox"},ft={class:"history-item-header"},Tt={class:"history-type"},yt={class:"history-date"},Vt={class:"history-prompt"},kt={class:"history-preview"},bt={key:0,class:"history-placeholder"},wt={class:"queue-text"},Ct={class:"queue-link"},Ut=["onClick"],Et=["onClick"],Pt=["src","onClick"],It={key:0,class:"play-overlay"},Ft={key:2,class:"history-image-thumbnail"},xt=["src","alt"],St={key:3,class:"history-placeholder"},Rt={class:"no-result-text"},Mt={class:"history-actions"},zt=["onClick"],At={__name:"ImageToVideoCreate",setup(Lt){const T=Fe(),y=Ge(),{t}=Be(),W=ee(()=>y.isAuthenticated),h=u(""),E=u("16:9"),F=u("10"),R=u(!1),f=u(!1),x=u("");u("");const M=u(null);u(null);const c=u(null),k=u(0),_=u(""),z=u(null),q=u(!1),A=u("without"),L=u(!1),C=u([]),U=u({}),b=u({}),w=u(!1),O=u(!1),V=u(!1),$=u(null),re=ee(()=>{if(!$.value||!V.value)return{};const o=$.value.getBoundingClientRect();return{position:"fixed",top:`${o.bottom+8}px`,right:`${window.innerWidth-o.right}px`,zIndex:99999}}),ne=()=>{T.push("/")},j=()=>{T.push({path:"/login",query:{redirect:T.currentRoute.value.fullPath}})},de=()=>{T.push("/text-to-video/create")},ce=()=>{T.push("/storyboard-video/create")},ue=()=>{V.value=!V.value},ve=()=>{V.value=!1,T.push("/profile")},me=()=>{V.value=!1,T.push("/works")},pe=()=>{V.value=!1,T.push("/subscription")},ge=()=>{V.value=!1,T.push("/settings")},he=()=>{V.value=!1,y.logout(),T.push("/login")},_e=()=>{const o=document.createElement("input");o.type="file",o.accept="image/*",o.onchange=s=>{const r=s.target.files[0];if(r){if(r.size>104857600){d.error(t("video.imageToVideo.fileSizeLimit"));return}if(!r.type.startsWith("image/")){d.error(t("video.imageToVideo.invalidImageFile"));return}M.value=r;const i=new FileReader;i.onload=p=>{x.value=p.target.result},i.readAsDataURL(r)}},o.click()},fe=()=>{x.value="",M.value=null},D=async()=>{var s;if(!y.isAuthenticated){d.warning(t("video.imageToVideo.pleaseLoginFirst")),j();return}if(f.value){d.warning(t("video.imageToVideo.taskInProgress"));return}if(!M.value){d.error(t("video.imageToVideo.uploadFirstFrameRequired"));return}if(!h.value.trim()){d.error(t("video.imageToVideo.enterDescriptionRequired"));return}w.value=!0;const o=ae.service({lock:!0,text:t("video.imageToVideo.creatingTask"),background:"rgba(0, 0, 0, 0.7)"});try{const r={firstFrame:M.value,prompt:h.value.trim(),aspectRatio:E.value,duration:parseInt(F.value),hdMode:R.value},l=await H.createTask(r);l.data&&l.data.success?(c.value=l.data.data,f.value=!0,k.value=0,_.value="PENDING",d.success(t("video.imageToVideo.taskCreatedSuccess")),setTimeout(async()=>{try{await y.fetchCurrentUser(),console.log("用户积分已更新")}catch(i){console.error("更新用户积分失败:",i)}},0),J(),setTimeout(()=>{w.value=!1},2e3)):(d.error(((s=l.data)==null?void 0:s.message)||t("video.imageToVideo.createTaskFailed")),f.value=!1,w.value=!1,c.value=null,_.value="",k.value=0)}catch(r){console.error("创建任务失败:",r),d.error(t("video.imageToVideo.createTaskFailedRetry")),f.value=!1,w.value=!1,c.value=null,_.value="",k.value=0}finally{o.close()}},J=()=>{c.value&&(z.value=H.pollTaskStatus(c.value.taskId,o=>{o&&typeof o.progress=="number"&&(k.value=o.progress),o&&o.status&&(_.value=o.status),o&&o.resultUrl&&o.resultUrl.trim()&&c.value&&(c.value.resultUrl=o.resultUrl,console.log("更新resultUrl:",o.resultUrl.substring(0,50)+"...")),console.log("任务进度:",o)},async o=>{f.value=!1,k.value=100,_.value="COMPLETED",o&&o.resultUrl&&o.resultUrl.trim()?c.value&&(c.value.resultUrl=o.resultUrl,console.log("任务完成resultUrl已更新:",o.resultUrl.substring(0,50)+"...")):c.value&&!c.value.resultUrl&&console.warn("任务完成但未获取到resultUrl"),d.success(t("video.imageToVideo.videoGenerateCompleted")),setTimeout(async()=>{try{await y.fetchCurrentUser(),console.log("用户积分已更新")}catch(s){console.error("更新用户积分失败:",s)}},0),console.log("任务完成:",o)},o=>{f.value=!1,_.value="FAILED",d.error(t("video.imageToVideo.videoGenerateFailed")+o.message),console.error("任务失败:",o)}))},K=o=>({PENDING:t("video.imageToVideo.statusPending"),PROCESSING:t("video.imageToVideo.statusProcessing"),COMPLETED:t("video.imageToVideo.statusCompleted"),FAILED:t("video.imageToVideo.statusFailed"),CANCELLED:t("video.imageToVideo.statusCancelled")})[o]||t("profile.unknown"),Q=o=>{if(!o)return"";const s=new Date(o),r=s.getFullYear(),l=String(s.getMonth()+1).padStart(2,"0"),i=String(s.getDate()).padStart(2,"0"),p=String(s.getHours()).padStart(2,"0"),N=String(s.getMinutes()).padStart(2,"0");return`${r}${t("video.imageToVideo.year")}${l}${t("video.imageToVideo.month")}${i}${t("video.imageToVideo.day")} ${p}:${N}`},Te=()=>{var l;const o=((l=c.value)==null?void 0:l.aspectRatio)||E.value||"16:9",[s,r]=o.split(":").map(Number);return{aspectRatio:`${s} / ${r}`,maxHeight:"70vh"}},ye=async()=>{var o,s,r;if(!h.value.trim()){d.warning(t("video.imageToVideo.enterPromptFirst"));return}if(h.value.length>2e3){d.warning(t("video.imageToVideo.promptTooLong"));return}try{L.value=!0;const l=ae.service({lock:!1,text:t("video.imageToVideo.optimizingPrompt"),background:"rgba(0, 0, 0, 0.3)"}),i=await Qe(h.value.trim(),"image-to-video");if(l.close(),i.data&&i.data.success){const p=i.data.data,N=p.optimizedPrompt;p.optimized&&N!==h.value.trim()?(h.value=N,d.success(t("video.imageToVideo.promptOptimizedSuccess"))):d.warning(t("video.imageToVideo.promptAlreadyOptimized"))}else d.error(((o=i.data)==null?void 0:o.message)||t("video.imageToVideo.optimizeFailed"))}catch(l){console.error("优化提示词失败:",l);let i=t("video.imageToVideo.optimizePromptFailed");if(l.response){const p=l.response.status;p===400?i=((s=l.response.data)==null?void 0:s.message)||t("video.imageToVideo.requestParameterError"):p===408||l.code==="ECONNABORTED"?i=t("video.imageToVideo.requestTimeout"):p>=500?i=t("video.imageToVideo.serverError"):i=((r=l.response.data)==null?void 0:r.message)||t("video.imageToVideo.optimizeFailed")}else l.request?i=t("video.imageToVideo.networkError"):l.code==="ERR_NETWORK"?i=t("video.imageToVideo.networkConnectionError"):i=l.message||t("video.imageToVideo.optimizeFailed");d.error(i)}finally{L.value=!1}},Ve=()=>{D()},ke=()=>{if(c.value&&c.value.resultUrl){const o=document.createElement("a");o.href=c.value.resultUrl,o.download=`video_${c.value.taskId}.mp4`,document.body.appendChild(o),o.click(),document.body.removeChild(o),d.success(t("video.imageToVideo.startDownload"))}else d.error(t("video.imageToVideo.videoUrlNotAvailable"))},be=()=>{c.value=null,f.value=!1,k.value=0,_.value="",D()},we=()=>{if(!c.value){d.error(t("video.imageToVideo.noWorkToDelete"));return}d.confirm(t("video.imageToVideo.confirmDeleteWork"),t("video.imageToVideo.confirmDelete"),{confirmButtonText:t("common.confirm"),cancelButtonText:t("common.cancel"),type:"warning"}).then(()=>{c.value=null,_.value="",d.success(t("video.imageToVideo.workDeleted"))}).catch(()=>{d.info(t("video.imageToVideo.deleteCancelled"))})},G=o=>o?(o.startsWith("/")||!o.startsWith("http"))&&!o.startsWith("/uploads/")&&!o.startsWith("/api/")?o.startsWith("/")?o:`/${o}`:o:"",Y=async()=>{if(!y.isAuthenticated){C.value=[];return}try{const o=await H.getTasks(0,5);if(o.data&&o.data.success){const s=(o.data.data||[]).filter(r=>r.status==="COMPLETED").slice(0,5);C.value=s.map(r=>({...r,resultUrl:r.resultUrl?G(r.resultUrl):null,firstFrameUrl:r.firstFrameUrl?G(r.firstFrameUrl):null})),console.log("历史记录加载成功:",C.value.length,"条")}}catch(o){console.error("加载历史记录失败:",o),C.value=[]}},Ce=o=>{o.prompt&&(h.value=o.prompt),o.aspectRatio&&(E.value=o.aspectRatio),o.duration&&(F.value=o.duration),o.hdMode!==void 0&&(R.value=o.hdMode),o.firstFrameUrl&&(x.value=o.firstFrameUrl),window.scrollTo({top:0,behavior:"smooth"}),d.success(t("video.imageToVideo.historyParamsFilled"))},Ue=async o=>{try{d.info(t("video.imageToVideo.cancelFeatureTodo"))}catch(s){console.error("取消任务失败:",s)}},Ee=o=>{const s=o.target;s.currentTime=1,s.addEventListener("play",()=>{const r=Object.keys(b.value).find(l=>b.value[l]===s);r&&(U.value[r]=!0)}),s.addEventListener("pause",()=>{const r=Object.keys(b.value).find(l=>b.value[l]===s);r&&(U.value[r]=!1)}),s.addEventListener("ended",()=>{const r=Object.keys(b.value).find(l=>b.value[l]===s);r&&(U.value[r]=!1,s.currentTime=1)})},Pe=o=>{console.error("历史记录视频加载失败:",o.target.src)},Ie=(o,s)=>{s&&(b.value[o]=s)},X=o=>{const s=b.value[o.taskId];if(s)if(U.value[o.taskId])s.pause(),U.value[o.taskId]=!1;else{try{s.muted=!1,s.volume=1,s.play()}catch{s.play()}U.value[o.taskId]=!0}};xe(()=>y.isAuthenticated,o=>{o?(Y(),setTimeout(()=>{w.value||Z()},500)):(C.value=[],O.value=!1)});const Z=async()=>{if(y.isAuthenticated){if(w.value){console.log("[Task Restore] 跳过恢复:正在创建新任务");return}if(O.value&&c.value){console.log("[Task Restore] 跳过恢复:已有任务在进行中");return}try{const o=await Ye();if(o.data&&o.data.success&&o.data.data){const r=o.data.data.filter(l=>l.workType==="IMAGE_TO_VIDEO");if(r.length>0){const l=r[0];c.value={taskId:l.taskId,prompt:l.prompt,aspectRatio:l.aspectRatio,duration:l.duration,resultUrl:l.resultUrl,createdAt:l.createdAt},l.prompt&&(h.value=l.prompt),l.aspectRatio&&(E.value=l.aspectRatio),l.duration&&(F.value=l.duration||"10"),f.value=!0,_.value=l.status||"PROCESSING",k.value=50,console.log("恢复正在进行中的任务:",l.taskId,"状态:",l.status),d.info(t("video.imageToVideo.resumingTask")),O.value=!0,J()}}}catch(o){console.error("恢复任务失败:",o)}}};return Se(()=>{Y(),Z()}),Re(()=>{z.value&&(z.value(),z.value=null)}),(o,s)=>{const r=oe("el-icon"),l=oe("el-switch");return v(),m("div",Xe,[e("header",Ze,[e("div",eo,[e("button",{class:"back-btn",onClick:ne}," ← "+n(a(t)("common.home")),1)]),e("div",oo,[e("div",to,[e("div",so,[g(r,null,{default:P(()=>[g(a(le))]),_:1})]),e("span",io,n(a(y).availablePoints),1)]),g(He),e("div",{class:"user-avatar",onClick:ue,ref_key:"userAvatarRef",ref:$},[e("img",{src:$e,alt:a(t)("video.imageToVideo.userAvatar")},null,8,ao)],512)])]),e("div",lo,[e("div",ro,[e("div",no,[e("div",{class:"tab",onClick:de},n(a(t)("home.textToVideo")),1),e("div",co,n(a(t)("home.imageToVideo")),1),e("div",{class:"tab",onClick:ce},n(a(t)("home.storyboardVideo")),1)]),e("div",uo,[e("div",vo,[e("div",{class:"upload-box",onClick:_e},[x.value?(v(),m("div",go,[e("img",{src:x.value,alt:a(t)("video.imageToVideo.firstFrame")},null,8,ho),e("button",{class:"remove-btn",onClick:te(fe,["stop"])},"×")])):(v(),m("div",mo,[s[7]||(s[7]=e("div",{class:"upload-icon"},"+",-1)),e("div",po,n(a(t)("video.imageToVideo.firstFrame")),1)]))])])]),e("div",_o,[I(e("textarea",{"onUpdate:modelValue":s[0]||(s[0]=i=>h.value=i),placeholder:a(t)("video.imageToVideo.promptPlaceholder"),class:"text-input",rows:"6"},null,8,fo),[[Me,h.value]]),e("div",To,[e("button",{class:"optimize-button",onClick:ye,disabled:!h.value.trim()||L.value}," ✨ "+n(L.value?a(t)("video.imageToVideo.optimizing"):a(t)("video.imageToVideo.optimizePrompt")),9,yo)])]),e("div",Vo,[e("div",ko,[e("label",null,n(a(t)("video.aspectRatio")),1),I(e("select",{"onUpdate:modelValue":s[1]||(s[1]=i=>E.value=i),class:"setting-select"},[...s[8]||(s[8]=[ze('<option value="16:9" data-v-44c16b28>16:9</option><option value="4:3" data-v-44c16b28>4:3</option><option value="1:1" data-v-44c16b28>1:1</option><option value="3:4" data-v-44c16b28>3:4</option><option value="9:16" data-v-44c16b28>9:16</option>',5)])],512),[[se,E.value]])]),e("div",bo,[e("label",null,n(a(t)("video.duration")),1),I(e("select",{"onUpdate:modelValue":s[2]||(s[2]=i=>F.value=i),class:"setting-select"},[...s[9]||(s[9]=[e("option",{value:"10"},"10s",-1),e("option",{value:"15"},"15s",-1),e("option",{value:"25"},"25s",-1)])],512),[[se,F.value]])]),e("div",wo,[e("label",null,n(a(t)("video.imageToVideo.hdMode"))+" (1080P)",1),e("div",Co,[g(l,{modelValue:R.value,"onUpdate:modelValue":s[3]||(s[3]=i=>R.value=i)},null,8,["modelValue"]),e("span",Uo,n(a(t)("video.imageToVideo.hdModeCost")),1)])])]),e("div",Eo,[e("button",{class:"generate-btn",onClick:D,disabled:!W.value||f.value||w.value},n(W.value?f.value||w.value?a(t)("video.imageToVideo.taskInProgress"):a(t)("video.imageToVideo.startGenerate"):a(t)("video.imageToVideo.pleaseLogin")),9,Po),W.value?S("",!0):(v(),m("div",Io,[e("p",null,n(a(t)("video.imageToVideo.loginRequired")),1),e("button",{class:"login-link-btn",onClick:j},n(a(t)("video.imageToVideo.loginNow")),1)]))])]),e("div",Fo,[e("div",xo,[c.value?(v(),m("div",So,[e("div",Ro,[e("h3",null,n(K(_.value)),1),e("div",Mo,n(a(t)("home.imageToVideo"))+" "+n(Q(c.value.createdAt)),1)]),e("div",zo,n(h.value),1),e("div",Ao,[f.value?(v(),m("div",Lo,[e("div",No,[e("div",Wo,n(a(t)("video.generating")),1),e("div",Oo,[e("div",{class:"progress-fill-large",style:B({width:k.value+"%"})},null,4)])])])):_.value==="COMPLETED"?(v(),m("div",$o,[e("div",Do,[e("div",Go,[I(e("input",{type:"checkbox",id:"inProgress","onUpdate:modelValue":s[4]||(s[4]=i=>q.value=i)},null,512),[[Ae,q.value]]),e("label",Bo,n(a(t)("video.imageToVideo.inProgress")),1)])]),e("div",Ho,[e("div",{class:"video-player",style:B(Te())},[c.value.resultUrl?(v(),m("video",{key:0,src:c.value.resultUrl,controls:"",class:"result-video",poster:""},null,8,qo)):(v(),m("div",jo,[e("div",Jo,n(a(t)("video.imageToVideo.noVideoUrl")),1)])),e("div",Ko,[e("div",Qo,[e("div",Yo,[I(e("input",{type:"radio",id:"withWatermark",name:"watermark",value:"with","onUpdate:modelValue":s[5]||(s[5]=i=>A.value=i)},null,512),[[ie,A.value]]),e("label",Xo,n(a(t)("video.imageToVideo.withWatermark")),1)]),e("div",Zo,[I(e("input",{type:"radio",id:"withoutWatermark",name:"watermark",value:"without","onUpdate:modelValue":s[6]||(s[6]=i=>A.value=i)},null,512),[[ie,A.value]]),e("label",et,n(a(t)("video.imageToVideo.withoutWatermark")),1)])])])],4)]),e("div",ot,[e("button",{class:"action-btn primary",onClick:Ve},n(a(t)("video.imageToVideo.createSimilar")),1),e("div",tt,[e("button",{class:"icon-btn",onClick:ke,title:a(t)("video.imageToVideo.downloadVideo")},[...s[10]||(s[10]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e("path",{d:"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"})],-1)])],8,st),e("button",{class:"icon-btn",onClick:we,title:a(t)("video.imageToVideo.deleteWork")},[...s[11]||(s[11]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"})],-1)])],8,it)])])])):_.value==="FAILED"?(v(),m("div",at,[e("div",lt,[s[12]||(s[12]=e("div",{class:"failed-icon"},"❌",-1)),e("div",rt,n(a(t)("video.imageToVideo.generateFailed")),1),e("div",nt,n(a(t)("video.imageToVideo.generateFailedDesc")),1)]),e("div",dt,[e("button",{class:"action-btn primary",onClick:be},n(a(t)("video.imageToVideo.retry")),1)])])):(v(),m("div",ct,[e("div",ut,n(K(_.value)),1)]))])])):(v(),m("div",vt,[e("div",mt,[e("div",pt,n(a(t)("video.imageToVideo.startCreating")),1)])])),C.value.length>0?(v(),m("div",gt,[e("div",ht,[(v(!0),m(Le,null,Ne(C.value,i=>(v(),m("div",{key:i.taskId,class:"history-item"},[i.status==="PENDING"||i.status==="PROCESSING"?(v(),m("div",_t,[s[13]||(s[13]=e("input",{type:"checkbox",checked:!0,disabled:""},null,-1)),e("label",null,n(a(t)("video.imageToVideo.inProgress")),1)])):S("",!0),e("div",ft,[e("span",Tt,n(a(t)("home.imageToVideo")),1),e("span",yt,n(Q(i.createdAt)),1)]),e("div",Vt,n(i.prompt||a(t)("video.imageToVideo.noDescription")),1),e("div",kt,[i.status==="PENDING"||i.status==="PROCESSING"?(v(),m("div",bt,[e("div",wt,n(a(t)("video.imageToVideo.queuing")),1),e("div",Ct,n(a(t)("video.imageToVideo.subscribeToSpeedUp")),1),e("button",{class:"cancel-btn",onClick:p=>Ue(i.taskId)},n(a(t)("video.imageToVideo.cancel")),9,Ut)])):i.status==="COMPLETED"&&i.resultUrl?(v(),m("div",{key:1,class:"history-video-thumbnail",onClick:p=>X(i)},[e("video",{ref_for:!0,ref:p=>Ie(i.taskId,p),src:G(i.resultUrl),muted:"",preload:"metadata",onLoadedmetadata:Ee,onError:Pe,onClick:te(p=>X(i),["stop"])},null,40,Pt),U.value[i.taskId]?S("",!0):(v(),m("div",It,[...s[14]||(s[14]=[e("div",{class:"play-icon"},"▶",-1)])]))],8,Et)):i.firstFrameUrl?(v(),m("div",Ft,[e("img",{src:i.firstFrameUrl,alt:a(t)("video.imageToVideo.firstFrameImage")},null,8,xt)])):(v(),m("div",St,[e("div",Rt,n(a(t)("video.imageToVideo.noResult")),1)]))]),e("div",Mt,[e("button",{class:"similar-btn",onClick:p=>Ce(i)},n(a(t)("video.imageToVideo.createSimilar")),9,zt)])]))),128))])])):S("",!0)])])]),(v(),We(Oe,{to:"body"},[V.value?(v(),m("div",{key:0,class:"user-menu-teleport",style:B(re.value)},[e("div",{class:"menu-item",onClick:ve},[g(r,null,{default:P(()=>[g(a(qe))]),_:1}),e("span",null,n(a(t)("common.userProfile")),1)]),e("div",{class:"menu-item",onClick:me},[g(r,null,{default:P(()=>[g(a(je))]),_:1}),e("span",null,n(a(t)("profile.myWorks")),1)]),e("div",{class:"menu-item",onClick:pe},[g(r,null,{default:P(()=>[g(a(le))]),_:1}),e("span",null,n(a(t)("profile.subscription")),1)]),e("div",{class:"menu-item",onClick:ge},[g(r,null,{default:P(()=>[g(a(Je))]),_:1}),e("span",null,n(a(t)("common.settings")),1)]),s[15]||(s[15]=e("div",{class:"menu-divider"},null,-1)),e("div",{class:"menu-item logout",onClick:he},[g(r,null,{default:P(()=>[g(a(Ke))]),_:1}),e("span",null,n(a(t)("common.logout")),1)])],4)):S("",!0)]))])}}},qt=De(At,[["__scopeId","data-v-44c16b28"]]);export{qt as default};