- 修复BCryptPasswordEncoder密码验证问题 - 实现密码设置提示弹窗功能(仅对无密码用户显示一次) - 优化修改密码逻辑和验证流程 - 更新Welcome页面背景样式 - 清理临时SQL文件和测试代码 - 移动数据库备份文件到database/backups目录 - 删除不必要的MD文档和临时文件
13 lines
28 KiB
JavaScript
13 lines
28 KiB
JavaScript
import{aA as Qe,r as m,c as Xe,m as Je,Y as Ze,al as y,z as f,A as h,B as s,R as r,J as c,u as a,P as n,O as g,a5 as eo,Q as ue,M as T,a4 as oo,D as q,I as ve,K as to,S as lo,T as so,W as K}from"./vue-vendor-164775a6.js";import{_ as ao,f as ro,u as no,a as io,L as co,g as uo}from"./index-467ea2ad.js";import{_ as pe}from"./avatar-default-20a1956c.js";import{E as w,a as Q,u as vo,o as po,f as _o,v as X,q as mo,r as fo,t as _e,j as ho,x as go,y as yo,z as wo,e as ko,A as bo,B as To}from"./element-plus-83a396df.js";import{g as So,d as me,a as xo,r as Co,b as Do}from"./userWorks-42fb5a3e.js";import"./utils-edfcd65b.js";const Uo={class:"works-page"},Vo={class:"sidebar"},zo={class:"nav-menu"},Eo={class:"nav-item active"},Io={class:"divider"},Bo={class:"tools-menu"},Oo={class:"main-content"},Lo={class:"top-header"},Ro={class:"header-right"},Fo={class:"points"},Ao={class:"points-icon"},Mo={class:"points-number"},Wo={class:"user-avatar"},No=["alt"],Po={class:"toolbar"},qo={class:"filters-bar"},Ho={class:"filters-left"},$o={class:"filters-right"},jo={class:"select-row"},Go=["onClick"];const Yo=["src","data-cover","poster"],Ko=["src","alt"],Qo={key:3,class:"work-placeholder"},Xo={class:"placeholder-text"},Jo={key:4,class:"checker"},Zo=["onClick"],et={class:"meta"},ot=["title"],tt={class:"sub"},lt={key:0,class:"detail-content"},st={class:"detail-left"},at={class:"video-container"},rt={key:0,class:"video-error-overlay"},nt={class:"error-content"},it={class:"error-actions"},ct=["src","poster"],dt=["src","alt"],ut={class:"detail-right"},vt={class:"detail-header"},pt={class:"user-info"},_t={class:"avatar"},mt=["alt"],ft={class:"username"},ht={class:"tabs"},gt={key:0,class:"description-section"},yt={class:"section-title"},wt={class:"description-text"},kt={key:1,class:"reference-content"},bt={class:"input-details-section"},Tt={class:"section-title"},St={class:"input-images"},xt={class:"input-image-item"},Ct=["src","alt"],Dt={class:"input-image-item"},Ut=["src","alt"],Vt={class:"description-section"},zt={class:"section-title"},Et={class:"description-text"},It={key:2,class:"description-section"},Bt={class:"section-title"},Ot={class:"description-text"},Lt={class:"metadata-section"},Rt={class:"metadata-item"},Ft={class:"label"},At={class:"value"},Mt={class:"metadata-item"},Wt={class:"label"},Nt={class:"value"},Pt={class:"metadata-item"},qt={class:"label"},Ht={class:"value"},$t={key:0,class:"metadata-item"},jt={class:"label"},Gt={class:"value"},Yt={key:1,class:"metadata-item"},Kt={class:"label"},Qt={class:"value"},Xt={class:"metadata-item"},Jt={class:"label"},Zt={class:"value"},el={key:2,class:"metadata-item"},ol={class:"label"},tl={class:"value"},ll={class:"action-section"},sl={key:0,class:"loading-indicator"},al={key:1,class:"finished"},rl=["title"],nl={__name:"MyWorks",setup(il){const{t}=ro(),D=Qe(),fe=no(),J=m({username:"",nickname:"",bio:"",avatar:"",id:"",points:0,frozenPoints:0}),E=m("all");m([]);const V=m(""),z=m("all"),I=m(""),H=m("date");m("desc");const B=m(""),O=m(!1),S=m(new Set),A=m(!1),v=m(null),U=m("detail"),L=m(!1),$=m(null),R=m(1),Z=m(20),F=m(!1),M=m(!0),x=m([]),ee=m(!1),W=m(new Set),oe=e=>e?e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e:null,te=e=>{var d,b;const o=oe(e.resultUrl),l=oe(e.thumbnailUrl),i=l||o||"/images/backgrounds/welcome.jpg";return console.log(`转换作品 ${e.id}:`,{原始resultUrl:e.resultUrl,原始thumbnailUrl:e.thumbnailUrl,处理后resultUrl:o,处理后thumbnailUrl:l,最终cover:i}),{id:((d=e.id)==null?void 0:d.toString())||e.taskId||"",title:e.title||e.prompt||"未命名作品",cover:i,resultUrl:o||"",type:e.workType==="TEXT_TO_VIDEO"||e.workType==="IMAGE_TO_VIDEO"||e.workType==="STORYBOARD_VIDEO"?"video":"image",category:e.workType==="TEXT_TO_VIDEO"?"文生视频":e.workType==="IMAGE_TO_VIDEO"?"图生视频":e.workType==="STORYBOARD_VIDEO"?"分镜视频":e.workType==="STORYBOARD_IMAGE"?"分镜图":"未知",sizeText:e.fileSize||"未知大小",createTime:e.createdAt?new Date(e.createdAt).toLocaleString("zh-CN"):"",date:e.createdAt?new Date(e.createdAt).toLocaleDateString("zh-CN"):"",description:e.description||e.prompt||"",prompt:e.prompt||"",duration:e.duration||e.videoDuration||e.length||"",aspectRatio:e.aspectRatio||e.ratio||e.aspect||"",quality:e.quality||e.resolution||"",username:e.username||((b=e.user)==null?void 0:b.username)||e.creator||e.author||e.owner||"未知用户",status:e.status||"COMPLETED"}},N=async()=>{F.value=!0;try{const e=await So({page:R.value-1,size:Z.value});if(e.data.success){const o=e.data.data||[];console.log("原始作品数据:",o),o.forEach((i,d)=>{console.log(`作品 ${d}:`,{id:i.id,title:i.title||i.prompt,status:i.status,resultUrl:i.resultUrl,thumbnailUrl:i.thumbnailUrl,workType:i.workType})});const l=o.map(te);console.log("转换后的作品数据:",l),R.value===1&&(x.value=[]),x.value=x.value.concat(l),M.value=o.length===Z.value}else throw new Error(e.data.message||t("profile.loadWorksFailed"))}catch(e){console.error("加载作品列表失败:",e),w.error(t("profile.loadWorksFailed"))}finally{F.value=!1}},j=Xe(()=>{let e=[...x.value];if(e=e.filter(o=>{const l=o.resultUrl&&W.value.has(o.resultUrl),i=o.cover&&W.value.has(o.cover);return!l&&!i}),V.value){const o=new Date,l=new Date(o.getFullYear(),o.getMonth(),o.getDate());e=e.filter(i=>{if(!i.createdAt&&!i.date)return!1;let d;if(i.createdAt?d=new Date(i.createdAt):i.date&&(d=new Date(i.date)),!d||isNaN(d.getTime()))return!1;const b=new Date(d.getFullYear(),d.getMonth(),d.getDate());if(V.value==="today")return b.getTime()===l.getTime();if(V.value==="week"){const p=new Date(l);return p.setDate(p.getDate()-7),b>=p&&b<=l}else if(V.value==="month"){const p=new Date(l);return p.setDate(p.getDate()-30),b>=p&&b<=l}return!0})}if(E.value==="video"?e=e.filter(o=>o.type==="video"):E.value==="image"&&(e=e.filter(o=>o.type==="image")),z.value!=="all"){const l={text2video:"文生视频",image2video:"图生视频",storyboard:"分镜视频",reference:"参考图"}[z.value];l&&(e=e.filter(i=>i.category===l))}if(I.value&&(e=e.filter(o=>{const l=(o.quality||"").toLowerCase(),i=I.value.toLowerCase();return i==="sd"?l==="sd"||l.includes("标清"):i==="hd"?l==="hd"||l.includes("高清"):i==="uhd"?l==="uhd"||l.includes("超清")||l.includes("4k"):!1})),B.value){const o=B.value.toLowerCase();e=e.filter(l=>l.title.toLowerCase().includes(o)||l.id.includes(o))}return e}),he=()=>{R.value=1,M.value=!0,N()},ge=()=>{console.log("筛选条件变化:",{category:z.value,activeTab:E.value})},ye=()=>{F.value||!M.value||(R.value+=1,N())},we=e=>{const o=e.target,l=o.scrollTop,i=o.scrollHeight,d=o.clientHeight;ee.value=l>300,i-l-d<100&&ye()},ke=()=>{const e=document.querySelector(".content-area");e&&e.scrollTo({top:0,behavior:"smooth"})},be=async e=>{var o;try{const l=await xo(e.id),i=((o=l==null?void 0:l.data)==null?void 0:o.data)||(l==null?void 0:l.data)||null;i?v.value=te(i):v.value=e}catch(l){console.warn("获取作品详情失败,使用已有数据:",l),v.value=e}A.value=!0},le=e=>{if(!e)return"";const o=e.prompt&&e.prompt.trim()?e.prompt:e.description&&e.description.trim()?e.description:"";return o||t("profile.noPrompt")},Te=e=>{if(!e)return"";const o=e.toUpperCase();return{SD:t("works.sd"),HD:t("works.hd"),UHD:t("works.uhd"),"4K":t("works.uhd")}[o]||o},Se=e=>{if(e==null||e==="")return"";if(typeof e=="number")return`${e}s`;if(typeof e=="string"){const o=e.trim();return/^\d+$/.test(o)?`${o}s`:o}return String(e)},se=()=>{A.value=!1,v.value=null,U.value="detail",L.value=!1},xe=e=>{console.log("✓ 详情页视频加载成功"),L.value=!1},Ce=e=>{var l,i;console.error("❌ 详情页视频加载失败:",(l=e.target)==null?void 0:l.src),L.value=!0;const o=(i=e.target)==null?void 0:i.src;o&&(console.log("🔍 开始诊断详情页视频加载失败原因..."),fetch(o,{method:"HEAD"}).then(d=>{console.log("📊 HTTP 响应状态:",d.status,d.statusText),d.status===403?(console.error("🔒 403 Forbidden - OSS Bucket 权限问题!"),console.error("💡 解决方法:"),console.error(" 1. 检查 OSS Bucket 读取权限设置"),console.error(" 2. 后端需要生成签名 URL")):d.status===404?(console.error("❌ 404 Not Found - 文件不存在!"),console.error("💡 可能原因:"),console.error(" 1. OSS 设置了生命周期规则自动删除"),console.error(" 2. 文件被手动删除"),console.error(" 3. 检查 OSS 控制台是否还有该文件")):d.ok&&(console.log("✓ 文件存在但无法播放"),console.error("💡 可能原因:CORS 配置或视频编码问题"))}).catch(d=>console.error("🌐 网络错误:",d.message)))},De=()=>{L.value=!1,$.value&&$.value.load()},Ue=async()=>{if(v.value)try{await Q.confirm(t("works.deleteFailedWorkConfirm"),t("works.deleteConfirmTitle"),{type:"warning",confirmButtonText:t("common.delete"),cancelButtonText:t("common.cancel"),confirmButtonClass:"el-button--danger"}),console.log("删除作品:",v.value.id);const e=await me(v.value.id);if(e.data.success)w.success(t("works.deleteSuccess")),se(),x.value=x.value.filter(o=>o.id!==v.value.id);else throw new Error(e.data.message||t("works.deleteFailed"))}catch(e){e!=="cancel"&&(console.error("删除作品失败:",e),w.error(e.message||t("works.deleteFailed")))}},ae=e=>{e?(w.info(t("works.createSimilarInfo",{title:e.title})),e.type==="video"?D.push("/text-to-video/create"):e.type==="image"?D.push("/image-to-video/create"):D.push("/text-to-video/create")):w.info(t("works.goToCreate"))},G=async e=>{try{if(!e.resultUrl){w.error(t("works.noDownloadUrl"));return}w.success(t("works.downloadStart",{title:e.title}));try{await Co(e.id)}catch(C){console.warn("记录下载次数失败:",C)}const o=Do(e.id,!0),l=sessionStorage.getItem("token");console.log("开始下载:",o);const i=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${l}`}});if(console.log("响应状态:",i.status),!i.ok){const C=await i.text();throw console.error("下载失败:",C),new Error(`下载失败: ${i.status}`)}const d=await i.blob();if(console.log("文件大小:",d.size,"bytes"),d.size===0)throw new Error("文件内容为空,可能URL已过期");const b=window.URL.createObjectURL(d),p=i.headers.get("content-disposition");let k=e.title||"work";if(p){const C=p.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);C&&C[1]&&(k=decodeURIComponent(C[1].replace(/['"]/g,"").replace(/%20/g," ")))}k.includes(".")||(k+=e.type==="video"?".mp4":".png"),console.log("下载文件名:",k);const _=document.createElement("a");_.href=b,_.download=k,document.body.appendChild(_),_.click(),document.body.removeChild(_),setTimeout(()=>window.URL.revokeObjectURL(b),1e3),w.success(t("works.downloadComplete"))}catch(o){console.error("下载作品失败:",o),w.error(o.message||t("works.downloadFailed"))}},Ve=async(e,o)=>{if(e==="download_with_watermark"||e==="download_without_watermark")await G(o);else if(e==="rename")w.info(t("works.renameDevMsg"));else if(e==="delete")try{await Q.confirm(t("works.deleteWorkConfirm"),t("works.deleteConfirmTitle"),{type:"warning",confirmButtonText:t("common.delete"),cancelButtonText:t("common.cancel")});const l=await me(o.id);if(l.data.success)w.success(t("works.deleteSuccess")),x.value=x.value.filter(i=>i.id!==o.id);else throw new Error(l.data.message||t("works.deleteFailed"))}catch(l){l!=="cancel"&&(console.error("删除作品失败:",l),w.error(l.message||t("works.deleteFailed")))}},re=e=>{const o=new Set(S.value);o.has(e)?o.delete(e):o.add(e),S.value=o},ze=async()=>{if(S.value.size===0){w.warning(t("works.noItemsSelected"));return}w.success(t("works.bulkDownloadStart",{count:S.value.size}));const e=x.value.filter(o=>S.value.has(o.id));for(const o of e)try{await G(o),await new Promise(l=>setTimeout(l,500))}catch(l){console.error(`下载作品 ${o.id} 失败:`,l)}w.success(t("works.bulkDownloadComplete"))},Ee=async()=>{try{await Q.confirm(t("works.bulkDeleteConfirm",{count:S.value.size}),t("works.deleteConfirmTitle"),{type:"warning",confirmButtonText:t("common.delete"),cancelButtonText:t("common.cancel")}),w.success(t("works.bulkDeleteSuccess")),S.value=new Set}catch{}},Ie=()=>{console.log("导航到个人主页"),D.push("/profile")},Be=()=>{console.log("导航到会员订阅"),D.push("/subscription")},Oe=()=>{console.log("导航到文生视频创作"),D.push("/text-to-video/create")},Le=()=>{console.log("导航到图生视频创作"),D.push("/image-to-video/create")},Re=()=>{console.log("导航到分镜视频创作"),D.push("/storyboard-video/create")},Fe=()=>{V.value="",z.value="all",I.value="",H.value="date",B.value="",w.success(t("works.filtersReset"))},Ae=e=>{const o=e.target;console.log("✓ 视频加载成功:",o.src),console.log("视频信息:",{duration:o.duration,videoWidth:o.videoWidth,videoHeight:o.videoHeight,readyState:o.readyState}),o&&o.duration&&(o.currentTime=.1,o.pause())},Me=e=>{const o=e.target,l=o.src;console.error("❌ 视频加载失败:",l),console.error("错误详情:",e),W.value.add(l),console.log("🔍 开始诊断视频加载失败原因..."),fetch(l,{method:"HEAD"}).then(d=>{console.log("📊 HTTP 响应状态:",d.status,d.statusText),console.log("📊 响应头:",[...d.headers.entries()]),d.status===403?(console.error("🔒 403 Forbidden - OSS Bucket 权限问题!"),console.error("💡 可能原因:"),console.error(' 1. Bucket 从"公共读"改为"私有"'),console.error(" 2. 需要使用签名 URL 访问"),console.error(" 3. IP 白名单限制")):d.status===404?(console.error("❌ 404 Not Found - 文件不存在!"),console.error("💡 可能原因:"),console.error(" 1. 文件被删除(手动或生命周期规则)"),console.error(" 2. 文件路径变化"),console.error(" 3. URL 格式错误")):d.ok&&(console.log("✓ HTTP 状态正常,可能是 CORS 或视频编码问题"),console.error("💡 可能原因:"),console.error(" 1. OSS CORS 配置缺失或错误"),console.error(" 2. 视频编码格式浏览器不支持"))}).catch(d=>{console.error("🌐 网络错误:",d.message),console.error("💡 可能原因:"),console.error(" 1. 网络连接问题"),console.error(" 2. DNS 解析失败"),console.error(" 3. 阿里云账户欠费")});const i=new Image;if(i.onload=()=>console.log("✓ URL 可访问(使用 Image 测试)"),i.onerror=()=>console.error("✗ URL 不可访问(使用 Image 测试)"),i.src=l,o){o.style.display="none";const d=o.parentElement,b=d.querySelector(".fallback-cover-image"),p=d.querySelector(".work-placeholder"),k=o.getAttribute("data-cover");if(k&&k!==l&&k!==""&&!b){console.log("🔄 视频加载失败,尝试使用独立封面图:",k);const _=document.createElement("img");_.className="fallback-cover-image work-thumbnail-video",_.src=k,_.alt="封面图",_.style.cssText="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;",_.onerror=()=>{console.error("❌ 封面图也加载失败:",k),_.style.display="none",ne(d,p)},d.appendChild(_)}else console.warn("⚠️ 没有独立封面图,显示占位符"),ne(d,p)}},ne=(e,o)=>{if(o)o.style.display="flex";else{const l=document.createElement("div");l.className="work-placeholder",l.innerHTML=`
|
||
<svg class="el-icon" style="width: 1em; height: 1em; font-size: 32px; margin-bottom: 8px;">
|
||
<use href="#icon-video-play"></use>
|
||
</svg>
|
||
<div class="placeholder-text" style="font-size: 13px; color: #999;">视频加载失败</div>
|
||
<div class="placeholder-text" style="font-size: 11px; color: #666; margin-top: 4px;">文件可能不存在</div>
|
||
`,l.style.cssText="position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); display: flex; flex-direction: column; align-items: center; justify-content: center;",e.appendChild(l)}},We=e=>{const o=e.target,l=o.src;if(console.error("❌ 图片加载失败:",l),console.error("错误详情:",e),W.value.add(l),fetch(l,{method:"GET"}).then(i=>{i.ok?console.log("✓ 图片文件存在但浏览器无法加载,可能是 CORS 或格式问题"):console.error(`✗ HTTP ${i.status}: ${i.statusText} - 文件不存在或无权限`)}).catch(i=>{console.error("✗ 网络错误或文件不存在:",i.message)}),o){o.style.display="none";const i=o.parentElement.querySelector(".work-placeholder");if(i)i.style.display="flex";else{const d=document.createElement("div");d.className="work-placeholder",d.innerHTML=`
|
||
<svg class="el-icon" style="width: 1em; height: 1em; font-size: 24px;">
|
||
<use href="#icon-video-play"></use>
|
||
</svg>
|
||
<div class="placeholder-text">加载失败</div>
|
||
`,o.parentElement.appendChild(d)}}},ie=async()=>{var e;try{const o=await uo();if(console.log("获取用户信息响应:",o),o&&o.data&&o.data.success&&o.data.data){const l=o.data.data;console.log("用户数据:",l),J.value={username:l.username||"",nickname:l.nickname||l.username||"",bio:l.bio||"",avatar:l.avatar||"",id:l.id?String(l.id):"",points:l.points||0,frozenPoints:l.frozenPoints||0},console.log("设置后的用户信息:",J.value)}else console.error("获取用户信息失败:",((e=o==null?void 0:o.data)==null?void 0:e.message)||"未知错误"),w.error(t("profile.loadUserInfoFailed"))}catch(o){console.error("加载用户信息失败:",o),w.error(t("profile.loadUserInfoFailed")+": "+(o.message||"未知错误"))}};return Je(()=>{ie(),N()}),Ze(()=>{R.value=1,x.value=[],ie(),N()}),(e,o)=>{var de;const l=y("el-icon"),i=y("el-tag"),d=y("el-radio-button"),b=y("el-radio-group"),p=y("el-option"),k=y("el-select"),_=y("el-button"),C=y("el-input"),ce=y("el-checkbox"),Ne=y("el-tooltip"),P=y("el-dropdown-item"),Pe=y("el-dropdown-menu"),qe=y("el-dropdown"),He=y("el-space"),$e=y("el-card"),je=y("el-col"),Ge=y("el-row"),Ye=y("el-dialog"),Ke=y("el-empty");return f(),h("div",Uo,[s("aside",Vo,[o[12]||(o[12]=s("div",{class:"logo"},[s("img",{src:io,alt:"Logo"})],-1)),s("nav",zo,[s("div",{class:"nav-item",onClick:Ie},[r(l,null,{default:c(()=>[r(a(vo))]),_:1}),s("span",null,n(a(t)("profile.title")),1)]),s("div",{class:"nav-item",onClick:Be},[r(l,null,{default:c(()=>[r(a(po))]),_:1}),s("span",null,n(a(t)("profile.subscription")),1)]),s("div",Eo,[r(l,null,{default:c(()=>[r(a(_o))]),_:1}),s("span",null,n(a(t)("works.title")),1)])]),s("div",Io,[s("span",null,n(a(t)("profile.tools")),1)]),s("nav",Bo,[s("div",{class:"nav-item",onClick:Oe},[r(l,null,{default:c(()=>[r(a(X))]),_:1}),s("span",null,n(a(t)("works.textToVideo")),1)]),s("div",{class:"nav-item",onClick:Le},[r(l,null,{default:c(()=>[r(a(mo))]),_:1}),s("span",null,n(a(t)("works.imageToVideo")),1)]),s("div",{class:"nav-item",onClick:Re},[r(l,null,{default:c(()=>[r(a(fo))]),_:1}),s("span",null,n(a(t)("works.storyboardVideo")),1),r(i,{size:"small",type:"primary",class:"sora-tag"},{default:c(()=>[...o[11]||(o[11]=[g("Sora2.0",-1)])]),_:1})])])]),s("main",Oo,[s("header",Lo,[s("div",Ro,[s("div",Fo,[s("div",Ao,[r(l,null,{default:c(()=>[r(a(_e))]),_:1})]),s("span",Mo,n(a(fe).availablePoints),1)]),r(co),s("div",Wo,[s("img",{src:pe,alt:a(t)("dashboard.userAvatar")},null,8,No)])])]),s("div",{class:"content-area",onScroll:we},[s("div",Po,[r(b,{modelValue:E.value,"onUpdate:modelValue":o[0]||(o[0]=u=>E.value=u),size:"small",class:"seg-control"},{default:c(()=>[r(d,{label:"all"},{default:c(()=>[g(n(a(t)("works.all")),1)]),_:1}),r(d,{label:"video"},{default:c(()=>[g(n(a(t)("works.video")),1)]),_:1}),r(d,{label:"image"},{default:c(()=>[g(n(a(t)("works.image")),1)]),_:1})]),_:1},8,["modelValue"])]),s("div",qo,[s("div",Ho,[r(k,{modelValue:V.value,"onUpdate:modelValue":o[1]||(o[1]=u=>V.value=u),placeholder:a(t)("works.dateFilter"),size:"small",style:{width:"100px"}},{default:c(()=>[r(p,{label:a(t)("works.today"),value:"today"},null,8,["label"]),r(p,{label:a(t)("works.thisWeek"),value:"week"},null,8,["label"]),r(p,{label:a(t)("works.thisMonth"),value:"month"},null,8,["label"])]),_:1},8,["modelValue","placeholder"]),r(k,{modelValue:z.value,"onUpdate:modelValue":o[2]||(o[2]=u=>z.value=u),placeholder:a(t)("works.taskType"),size:"small",style:{width:"100px"},onChange:ge},{default:c(()=>[r(p,{label:a(t)("works.all"),value:"all"},null,8,["label"]),r(p,{label:a(t)("works.textToVideo"),value:"text2video"},null,8,["label"]),r(p,{label:a(t)("works.imageToVideo"),value:"image2video"},null,8,["label"]),r(p,{label:a(t)("works.storyboardVideo"),value:"storyboard"},null,8,["label"])]),_:1},8,["modelValue","placeholder"]),r(k,{modelValue:I.value,"onUpdate:modelValue":o[3]||(o[3]=u=>I.value=u),placeholder:a(t)("works.resolution"),clearable:"",size:"small",style:{width:"100px"}},{default:c(()=>[r(p,{label:a(t)("works.sd"),value:"sd"},null,8,["label"]),r(p,{label:a(t)("works.hd"),value:"hd"},null,8,["label"]),r(p,{label:a(t)("works.uhd"),value:"uhd"},null,8,["label"])]),_:1},8,["modelValue","placeholder"]),r(k,{modelValue:H.value,"onUpdate:modelValue":o[4]||(o[4]=u=>H.value=u),placeholder:a(t)("works.sortBy"),size:"small",style:{width:"100px"}},{default:c(()=>[r(p,{label:a(t)("works.ratio"),value:"ratio"},null,8,["label"]),r(p,{label:a(t)("works.time"),value:"date"},null,8,["label"]),r(p,{label:a(t)("works.popular"),value:"hot"},null,8,["label"])]),_:1},8,["modelValue","placeholder"]),r(_,{size:"small",onClick:Fe},{default:c(()=>[g(n(a(t)("common.reset")),1)]),_:1})]),s("div",$o,[r(C,{modelValue:B.value,"onUpdate:modelValue":o[5]||(o[5]=u=>B.value=u),placeholder:a(t)("works.searchPlaceholder"),size:"small",clearable:"",style:{width:"220px"},onKeyup:eo(he,["enter","native"])},{prefix:c(()=>[r(l,null,{default:c(()=>[r(a(ho))]),_:1})]),_:1},8,["modelValue","placeholder"])])]),s("div",jo,[r(ce,{modelValue:O.value,"onUpdate:modelValue":o[6]||(o[6]=u=>O.value=u),size:"small"},{default:c(()=>[g(n(a(t)("works.selectItems",{count:S.value.size||6})),1)]),_:1},8,["modelValue"]),O.value&&S.value.size?(f(),h(ue,{key:0},[r(i,{type:"success",size:"small"},{default:c(()=>[g(n(a(t)("works.selectedCount",{count:S.value.size})),1)]),_:1}),r(_,{size:"small",type:"primary",onClick:ze,plain:""},{default:c(()=>[g(n(a(t)("video.download")),1)]),_:1}),r(_,{size:"small",type:"danger",onClick:Ee,plain:""},{default:c(()=>[g(n(a(t)("common.delete")),1)]),_:1})],64)):T("",!0)]),r(Ge,{gutter:16,class:"works-grid",justify:"start"},{default:c(()=>[(f(!0),h(ue,null,oo(j.value,u=>(f(),ve(je,{key:u.id,xs:24,sm:12,md:8,lg:6,xl:4},{default:c(()=>[r($e,{class:q(["work-card",{selected:S.value.has(u.id)}]),shadow:"hover"},{footer:c(()=>[r(He,{size:"small"},{default:c(()=>[r(_,{text:"",size:"small",onClick:K(cl=>G(u),["stop"])},{default:c(()=>[g(n(a(t)("video.download")),1)]),_:1},8,["onClick"])]),_:2},1024)]),default:c(()=>[s("div",{class:"thumb",onClick:Y=>O.value?re(u.id):be(u)},[T("",!0),u.type==="video"&&u.resultUrl?(f(),h("video",{key:1,src:u.resultUrl,"data-cover":u.cover!==u.resultUrl?u.cover:"",poster:u.cover!==u.resultUrl?u.cover:"/images/backgrounds/video-placeholder.jpg",class:"work-thumbnail-video",muted:"",preload:"metadata",onLoadedmetadata:Ae,onError:Me},null,40,Yo)):u.cover?(f(),h("img",{key:2,src:u.cover,alt:u.title,onError:We},null,40,Ko)):(f(),h("div",Qo,[r(l,null,{default:c(()=>[r(a(X))]),_:1}),s("div",Xo,n(u.status==="PROCESSING"?a(t)("works.processing"):a(t)("works.noPreview")),1)])),O.value?(f(),h("div",Jo,[r(ce,{"model-value":S.value.has(u.id),onChange:()=>re(u.id)},null,8,["model-value","onChange"])])):T("",!0),s("div",{class:"actions",onClick:o[7]||(o[7]=K(()=>{},["stop"]))},[r(Ne,{content:a(t)("works.favorite"),placement:"top"},{default:c(()=>[r(_,{circle:"",size:"small",text:""},{default:c(()=>[r(l,null,{default:c(()=>[r(a(_e))]),_:1})]),_:1})]),_:1},8,["content"]),r(qe,{onCommand:Y=>Ve(Y,u)},{dropdown:c(()=>[r(Pe,null,{default:c(()=>[r(P,{command:"download_with_watermark"},{default:c(()=>[g(n(a(t)("works.downloadWithWatermark")),1)]),_:1}),r(P,{command:"download_without_watermark"},{default:c(()=>[g(n(a(t)("works.downloadWithoutWatermark"))+" ",1),r(i,{type:"primary",size:"small",style:{"margin-left":"8px"}},{default:c(()=>[g(n(a(t)("works.memberOnly")),1)]),_:1})]),_:1}),r(P,{command:"rename",divided:""},{default:c(()=>[g(n(a(t)("works.rename")),1)]),_:1}),r(P,{command:"delete"},{default:c(()=>[g(n(a(t)("common.delete")),1)]),_:1})]),_:1})]),default:c(()=>[r(_,{circle:"",size:"small",text:""},{default:c(()=>[r(l,null,{default:c(()=>[r(a(go))]),_:1})]),_:1})]),_:1},8,["onCommand"])]),s("div",{class:"hover-create-btn",onClick:K(Y=>ae(u),["stop"])},[r(_,{type:"primary",size:"small",round:""},{default:c(()=>[r(l,null,{default:c(()=>[r(a(X))]),_:1}),g(" "+n(a(t)("profile.createSimilar")),1)]),_:1})],8,Zo)],8,Go),s("div",et,[s("div",{class:"title",title:u.title},n(u.title),9,ot),s("div",tt,[g(n(u.date||a(t)("profile.unknown"))+" · "+n(u.id)+" ",1),u.quality?(f(),h("span",{key:0,class:q(["quality-badge",`quality-${(u.quality||"").toLowerCase()}`])},n(Te(u.quality)),3)):T("",!0),g(" · "+n(u.sizeText),1)])])]),_:2},1032,["class"])]),_:2},1024))),128))]),_:1}),r(Ye,{modelValue:A.value,"onUpdate:modelValue":o[10]||(o[10]=u=>A.value=u),title:(de=v.value)==null?void 0:de.title,width:"60%","before-close":se,class:"detail-dialog",modal:!0,"close-on-click-modal":!0,"close-on-press-escape":!0},{default:c(()=>[v.value?(f(),h("div",lt,[s("div",st,[s("div",at,[L.value?(f(),h("div",rt,[s("div",nt,[r(l,{class:"error-icon",size:48},{default:c(()=>[r(a(yo))]),_:1}),s("h3",null,n(a(t)("works.videoLoadFailed")),1),s("p",null,n(a(t)("works.videoFileNotExist")),1),s("div",it,[r(_,{type:"primary",onClick:De},{default:c(()=>[r(l,null,{default:c(()=>[r(a(wo))]),_:1}),g(" "+n(a(t)("works.retry")),1)]),_:1}),r(_,{type:"danger",onClick:Ue},{default:c(()=>[r(l,null,{default:c(()=>[r(a(ko))]),_:1}),g(" "+n(a(t)("works.deleteFailedWork")),1)]),_:1})])])])):T("",!0),v.value.type==="video"?(f(),h("video",{key:1,ref_key:"detailVideoRef",ref:$,class:"detail-video",src:v.value.resultUrl||v.value.cover,poster:v.value.cover!==v.value.resultUrl?v.value.cover:"",controls:"",onError:Ce,onLoadedmetadata:xe},n(a(t)("profile.browserNotSupport")),41,ct)):(f(),h("img",{key:2,class:"detail-image",src:v.value.cover,alt:v.value.title},null,8,dt))])]),s("div",ut,[s("div",vt,[s("div",pt,[s("div",_t,[s("img",{src:pe,alt:a(t)("dashboard.userAvatar"),class:"avatar-image"},null,8,mt)]),s("div",ft,n(v.value&&v.value.username||a(t)("profile.anonymousUser")),1)])]),s("div",ht,[s("div",{class:q(["tab",{active:U.value==="detail"}]),onClick:o[8]||(o[8]=u=>U.value="detail")},n(a(t)("profile.workDetail")),3),s("div",{class:q(["tab",{active:U.value==="category"}]),onClick:o[9]||(o[9]=u=>U.value="category")},n(v.value.category),3)]),U.value==="detail"?(f(),h("div",gt,[s("h3",yt,n(a(t)("video.prompt")),1),s("p",wt,n(le(v.value)),1)])):T("",!0),U.value==="category"&&v.value.category==="参考图"?(f(),h("div",kt,[s("div",bt,[s("h3",Tt,n(a(t)("profile.inputDetails")),1),s("div",St,[s("div",xt,[s("img",{src:v.value.cover,alt:v.value.title,class:"input-thumbnail"},null,8,Ct)]),s("div",Dt,[s("img",{src:v.value.cover,alt:v.value.title,class:"input-thumbnail"},null,8,Ut)])])]),s("div",Vt,[s("h3",zt,n(a(t)("video.prompt")),1),s("p",Et,n(a(t)("works.referenceImagePrompt")),1)])])):T("",!0),U.value==="category"&&v.value.category!=="参考图"?(f(),h("div",It,[s("h3",Bt,n(a(t)("video.prompt")),1),s("p",Ot,n(le(v.value)),1)])):T("",!0),s("div",Lt,[s("div",Rt,[s("span",Ft,n(a(t)("profile.createTime")),1),s("span",At,n(v.value.createTime),1)]),s("div",Mt,[s("span",Wt,n(a(t)("profile.workId")),1),s("span",Nt,n(v.value.id),1)]),s("div",Pt,[s("span",qt,n(a(t)("profile.date")),1),s("span",Ht,n(v.value.date),1)]),v.value.type==="video"?(f(),h("div",$t,[s("span",jt,n(a(t)("profile.duration")),1),s("span",Gt,n(Se(v.value.duration)||a(t)("profile.unknown")),1)])):T("",!0),v.value.type==="video"?(f(),h("div",Yt,[s("span",Kt,n(a(t)("profile.quality")),1),s("span",Qt,n(v.value.quality||a(t)("profile.unknown")),1)])):T("",!0),s("div",Xt,[s("span",Jt,n(a(t)("profile.category")),1),s("span",Zt,n(v.value.category),1)]),v.value.type==="video"?(f(),h("div",el,[s("span",ol,n(a(t)("profile.aspectRatio")),1),s("span",tl,n(v.value.aspectRatio||a(t)("profile.unknown")),1)])):T("",!0)]),s("div",ll,[s("button",{class:"create-similar-btn",onClick:ae},n(a(t)("profile.createSimilar")),1)])])])):T("",!0)]),_:1},8,["modelValue","title"]),F.value?(f(),h("div",sl,[r(l,{class:"is-loading"},{default:c(()=>[r(a(bo))]),_:1}),s("span",null,n(a(t)("common.loading")),1)])):T("",!0),!M.value&&j.value.length>0?(f(),h("div",al,[s("span",null,n(a(t)("works.allLoaded")),1)])):T("",!0),!F.value&&j.value.length===0?(f(),ve(Ke,{key:2,description:a(t)("works.noContent")},null,8,["description"])):T("",!0),r(so,{name:"fade"},{default:c(()=>[to(s("div",{class:"back-to-top",onClick:ke,title:a(t)("works.backToTop")},[r(l,null,{default:c(()=>[r(a(To))]),_:1})],8,rl),[[lo,ee.value]])]),_:1})],32)])])}}},fl=ao(nl,[["__scopeId","data-v-984cd166"]]);export{fl as default};
|