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

2 lines
7.2 KiB
JavaScript

import{_ as G,a as J}from"./index-69868281.js";import{_ as Q}from"./avatar-default-20a1956c.js";import{aB as Y,aA as H,r as v,m as K,U as Z,al as T,z as _,A as w,B as e,R as a,J as i,u,P as d,O as I,Q as ee,I as R,E as te}from"./vue-vendor-164775a6.js";import{E as b,a as se,u as p,f as ae,A as oe,C as le,b as ne}from"./element-plus-83a396df.js";import{a as ie}from"./userWorks-aba806c8.js";import"./utils-edfcd65b.js";const re={class:"video-detail-page"},ce={class:"sidebar"},de={class:"nav-menu"},ue={class:"nav-item active"},ve={class:"main-content"},_e={key:0,class:"loading-container"},pe={key:1,class:"error-container"},me={class:"video-player-section"},fe={class:"video-container"},ge=["src","poster"],be={class:"video-controls"},ye={class:"control-left"},ke={class:"progress-container"},he={class:"time-display"},Te={class:"control-right"},we={class:"video-actions"},De={class:"detail-sidebar"},Ee={class:"sidebar-header"},Ce={class:"user-info"},Ve={class:"username"},Be={class:"description-section"},Se={class:"description-text"},xe={class:"metadata-section"},Pe={class:"metadata-item"},Ue={class:"value"},Ie={class:"metadata-item"},Re={class:"value"},Ae={class:"metadata-item"},Le={class:"value"},Oe={class:"metadata-item"},ze={class:"value"},Me={class:"metadata-item"},Ne={class:"value"},Fe={class:"metadata-item"},We={class:"value"},Xe={__name:"VideoDetail",setup(je){const A=Y(),y=H(),n=v(null),m=v(!1),D=v(0),k=v(0),E=v(0),h=v(!0),f=v(null),r=v({id:"",username:"",title:"",description:"",createTime:"",duration:"",resolution:"",category:"",aspectRatio:"",videoUrl:"",cover:""}),C=o=>o?o.startsWith("http://")||o.startsWith("https://")||o.startsWith("/")?o:"/"+o:null,V=async()=>{var t,l;const o=A.params.id;if(!o){f.value="缺少视频ID",h.value=!1,b.error("缺少视频ID");return}try{h.value=!0;const c=await ie(o);if(c.data.success){const s=c.data.data,g=C(s.resultUrl),U=C(s.thumbnailUrl);r.value={id:((t=s.id)==null?void 0:t.toString())||"",username:s.username||((l=s.user)==null?void 0:l.username)||"未知用户",title:s.title||s.prompt||"未命名作品",description:s.prompt||s.description||"暂无提示词",createTime:s.createdAt?new Date(s.createdAt).toLocaleString("zh-CN"):"",date:s.createdAt?new Date(s.createdAt).toLocaleDateString("zh-CN"):"",duration:s.duration||s.videoDuration||s.length||5,resolution:s.quality||s.resolution||"1080p",category:s.workType==="TEXT_TO_VIDEO"?"文生视频":s.workType==="IMAGE_TO_VIDEO"?"图生视频":s.workType==="STORYBOARD_VIDEO"?"分镜视频":"未知",aspectRatio:s.aspectRatio||s.ratio||s.aspect||"16:9",videoUrl:g||U||"/images/backgrounds/welcome.jpg",cover:U||g||"/images/backgrounds/welcome.jpg"},f.value=null}else throw new Error(c.data.message||"获取作品详情失败")}catch(c){console.error("加载视频数据失败:",c),f.value=c.message||"加载作品详情失败",b.error("加载作品详情失败: "+(c.message||"未知错误"))}finally{h.value=!1}},L=()=>{n.value&&(m.value?n.value.pause():n.value.play())},O=()=>{k.value=n.value.duration},z=()=>{D.value=n.value.currentTime,E.value=D.value/k.value*100},M=()=>{m.value=!1},N=o=>{if(!n.value)return;const t=o.currentTarget.getBoundingClientRect(),s=(o.clientX-t.left)/t.width*k.value;n.value.currentTime=s},B=o=>{const t=Math.floor(o/60),l=Math.floor(o%60);return`${t.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}`},F=()=>{n.value&&(document.fullscreenElement?document.exitFullscreen():n.value.requestFullscreen())},W=()=>{b.success("开始下载视频")},X=async()=>{try{await se.confirm("确定删除这个视频吗?","删除确认",{type:"warning",confirmButtonText:"删除",cancelButtonText:"取消"}),b.success("视频已删除"),y.back()}catch{}},j=()=>{b.info("跳转到文生视频创作页面")},q=()=>{y.push("/profile")},$=()=>{y.push("/subscription")},S=()=>{y.back()},x=()=>{m.value=!0},P=()=>{m.value=!1};return K(async()=>{await V(),n.value&&(n.value.addEventListener("play",x),n.value.addEventListener("pause",P))}),Z(()=>{n.value&&(n.value.removeEventListener("play",x),n.value.removeEventListener("pause",P))}),(o,t)=>{const l=T("el-icon"),c=T("el-button"),s=T("Pause"),g=T("el-tooltip");return _(),w("div",re,[e("aside",ce,[t[3]||(t[3]=e("div",{class:"logo"},[e("img",{src:J,alt:"Logo"})],-1)),e("nav",de,[e("div",{class:"nav-item",onClick:q},[a(l,null,{default:i(()=>[a(u(p))]),_:1}),t[0]||(t[0]=e("span",null,"个人主页",-1))]),e("div",{class:"nav-item",onClick:$},[a(l,null,{default:i(()=>[a(u(p))]),_:1}),t[1]||(t[1]=e("span",null,"会员订阅",-1))]),e("div",ue,[a(l,null,{default:i(()=>[a(u(ae))]),_:1}),t[2]||(t[2]=e("span",null,"我的作品",-1))])])]),e("main",ve,[h.value?(_(),w("div",_e,[a(l,{class:"is-loading",size:40},{default:i(()=>[a(u(oe))]),_:1}),t[4]||(t[4]=e("p",null,"加载中...",-1))])):f.value?(_(),w("div",pe,[a(l,{size:60,color:"#f56c6c"},{default:i(()=>[a(u(le))]),_:1}),e("p",null,d(f.value),1),a(c,{type:"primary",onClick:V},{default:i(()=>[...t[5]||(t[5]=[I("重试",-1)])]),_:1}),a(c,{onClick:S},{default:i(()=>[...t[6]||(t[6]=[I("返回",-1)])]),_:1})])):(_(),w(ee,{key:2},[e("div",me,[e("div",fe,[e("video",{ref_key:"videoPlayer",ref:n,class:"video-player",src:r.value.videoUrl,poster:r.value.cover,onLoadedmetadata:O,onTimeupdate:z,onEnded:M}," 您的浏览器不支持视频播放 ",40,ge),e("div",be,[e("div",ye,[e("button",{class:"play-btn",onClick:L},[m.value?(_(),R(l,{key:1},{default:i(()=>[a(s)]),_:1})):(_(),R(l,{key:0},{default:i(()=>[a(u(p))]),_:1}))]),e("div",ke,[e("div",{class:"progress-bar",onClick:N},[e("div",{class:"progress-fill",style:te({width:E.value+"%"})},null,4)]),e("div",he,d(B(D.value))+" / "+d(B(k.value)),1)])]),e("div",Te,[e("button",{class:"control-btn",onClick:F},[a(l,null,{default:i(()=>[a(u(p))]),_:1})])])]),e("div",we,[a(g,{content:"下载",placement:"bottom"},{default:i(()=>[e("button",{class:"action-btn",onClick:W},[a(l,null,{default:i(()=>[a(u(p))]),_:1})])]),_:1}),a(g,{content:"删除",placement:"bottom"},{default:i(()=>[e("button",{class:"action-btn delete-btn",onClick:X},[a(l,null,{default:i(()=>[a(u(p))]),_:1})])]),_:1})])])]),e("div",De,[e("div",Ee,[e("div",Ce,[t[7]||(t[7]=e("div",{class:"avatar"},[e("img",{src:Q,alt:"用户头像",class:"avatar-image"})],-1)),e("div",Ve,d(r.value.username),1)]),e("button",{class:"close-btn",onClick:S},[a(l,null,{default:i(()=>[a(u(ne))]),_:1})])]),t[15]||(t[15]=e("div",{class:"tabs"},[e("div",{class:"tab active"},"视频详情"),e("div",{class:"tab"},"文生视频")],-1)),e("div",Be,[t[8]||(t[8]=e("h3",{class:"section-title"},"提示词",-1)),e("p",Se,d(r.value.description),1)]),e("div",xe,[e("div",Pe,[t[9]||(t[9]=e("span",{class:"label"},"创建时间",-1)),e("span",Ue,d(r.value.createTime),1)]),e("div",Ie,[t[10]||(t[10]=e("span",{class:"label"},"视频 ID",-1)),e("span",Re,d(r.value.id),1)]),e("div",Ae,[t[11]||(t[11]=e("span",{class:"label"},"时长",-1)),e("span",Le,d(r.value.duration)+"s",1)]),e("div",Oe,[t[12]||(t[12]=e("span",{class:"label"},"清晰度",-1)),e("span",ze,d(r.value.resolution),1)]),e("div",Me,[t[13]||(t[13]=e("span",{class:"label"},"分类",-1)),e("span",Ne,d(r.value.category),1)]),e("div",Fe,[t[14]||(t[14]=e("span",{class:"label"},"宽高比",-1)),e("span",We,d(r.value.aspectRatio),1)])]),e("div",{class:"action-section"},[e("button",{class:"create-similar-btn",onClick:j}," 做同款 ")])])],64))])])}}},He=G(Xe,[["__scopeId","data-v-03fa66db"]]);export{He as default};