mp4-f57dab76.js 7.6 KB

12
  1. import{d as L,c as h,r as K,h as V,Z as C,a1 as F,n as l,T as t,bg as J,a7 as T,at as W,Q as X,f as $,o as ee,a2 as te,a0 as d,$ as B,aC as ae,aP as Z,a5 as z,a6 as P,b3 as j,bs as O,br as E,bq as re,a8 as U,a9 as q,b8 as se,cC as ie,bb as ne}from"./index-8a67e3df.js";import{d as o}from"./dayjs-919e6097.js";import{_ as oe,u as le,b as me,d as A}from"./usePlay-6965d852.js";import{u as ue}from"./system-7d6c6ba1.js";import{a as de,g as ce}from"./mp4-0d5b1f75.js";import{u as ge}from"./index-c6560d80.js";import{V as fe}from"./VideoPlayer-ced8f94f.js";import{L as I}from"./index-b1cfe141.js";import"./gb28181-a8ace5d9.js";import"./jb4-5138f1a1.js";import"./canvas-2aaf4e1d.js";import"./index-6a257713.js";const pe={class:"root"},ve={class:"time-range"},Te=L({__name:"time-range",props:{data:{type:Array,default:[]},streamPath:{type:String,default:""},showDatePicker:{type:Boolean,default:!0}},setup(N){const m=[],s=N,x=h(),b=h(),a=K({initTime:o(),currentTime:o(),timeSegments:[],initZoomIndex:0,inTimeSegments:!1}),y=(i,u)=>{a.currentTime=o(i),u?Y(i):a.inTimeSegments=!1},R=(i,u)=>{a.currentTime=o(i),u?Y(i):a.inTimeSegments=!1};function Y(i){a.inTimeSegments=!0,b.value.seek(i/1e3-a.timeSegments[0].StartTime.getTime()/1e3)}const g=i=>{const u=i.sort((v,S)=>Date.parse(v.startTime)-Date.parse(S.startTime)),c=[];let f;return u.forEach(v=>{const S=new Date(v.startTime),w=new Date(v.endTime);f?.EndTime.getTime()==S.getTime()?f.EndTime=w:(f&&m.push({StartTime:f.EndTime,EndTime:S}),f={StartTime:S,EndTime:w},c.push(f))}),c};V(()=>s.data,()=>{if(s.data?.length){a.timeSegments=g(s.data);const i=a.timeSegments[0].StartTime;a.currentTime=o(i),a.initTime=o(i)}else a.currentTime=o(),a.initTime=o(),a.timeSegments=[];x.value?.reRender()},{immediate:!0});function M(i){let u=a.timeSegments[0].StartTime.getTime()+i*1e3;for(const c of m)if(u>=c.StartTime.getTime())u+=c.EndTime.getTime()-c.StartTime.getTime();else break;return o(u)}const _=i=>{x.value.setTime(a.currentTime=M(i))};return(i,u)=>(C(),F("div",pe,[l(fe,{class:"player",ref_key:"videoPlayerRef",ref:b,src:`${t(J)("hls","/vod")}/fmp4.m3u8?start=${new Date(s.data[0].startTime).getTime()}&end=${new Date(s.data[s.data.length-1].endTime).getTime()}&streamPath=${s.streamPath}`,onTimeupdate:_},null,8,["src"]),T("div",ve,[l(oe,{ref_key:"timeRuleRef",ref:x,"init-zoom-index":a.initZoomIndex,initTime:a.initTime,timeSegments:a.timeSegments,enableZoom:!0,onDragTimeChange:y,onClick_timeline:R},null,8,["init-zoom-index","initTime","timeSegments"])])]))}});const he=W(Te,[["__scopeId","data-v-eedde1f7"]]),_e={class:"flex",style:{height:"calc(100% - 8px)"}},Se={class:"h-full"},ye={class:"flex justify-between mb-16px"},Pe={class:"flex items-center gap-16px"},Ce={class:"w-full",style:{height:"calc(100% - 32px)"}},xe=L({name:"Record"}),Ie=L({...xe,setup(N){const{t:m}=ae(),s=le(),x=ue(),{plugins:b}=X(x),a=ge(),y=$(()=>b.value?.some(e=>e.name==="MP4")),R=$(()=>b.value?.some(e=>e.name==="FLV")),Y=$(()=>y.value||R.value),g=h(y.value?"mp4":"flv");V([y,R],([e,n])=>{!e&&!n||(!e&&n&&(g.value="flv"),e&&!n&&(g.value="mp4"))});const M=e=>{s.setCurrentStreamPath(e.streamPath),s.setTimeRangeMP4([o(e.startTime),o(e.startTime).add(1,"day")])},_=h([]),i=async()=>{_.value=await de(g.value),_.value.length>0&&M(_.value[0])};ee(()=>{i()}),V(()=>g.value,()=>{i(),s.setCurrentStreamPath("")});const u=$(()=>s.getTimeRangeMP4),c=h("list"),f=h(),v=h(),S=e=>{if(s.getCurrentStreamPath){const{startTime:n,endTime:r}=_.value.find(D=>D.streamPath===s.getCurrentStreamPath)||{};return e.isBefore(o(n),"day")||e.isAfter(o(r),"day")}return!1},w=e=>{e?(f.value=[],v.value=[]):v.value=void 0},G=e=>{f.value=e},Q=e=>{s.setTimeRangeMP4(e)},k=h([]),H=e=>{e&&(p.pagerConfig?(p.pagerConfig.currentPage=e.currentPage,p.pagerConfig.pageSize=e.pageSize):p.pagerConfig={currentPage:e.currentPage,pageSize:e.pageSize,total:0});const n=p.pagerConfig;ce({type:g.value,streamPath:s.getCurrentStreamPath,range:`${A(u.value[0],"YYYY-MM-DD 00:00:00")/1e3}~${A(u.value[1],"YYYY-MM-DD 24:00:00")/1e3}`,pageNum:n?.currentPage||1,pageSize:n?.pageSize||10}).then(r=>{k.value=r,p.pagerConfig&&(p.pagerConfig.total=r.total||0),p.data=k.value,a.tableRef.reloadData(k.value),k.value?.length||ne.warn(m("routes.record.当前无可播放的录像"))}).catch(r=>{console.error(`getRecords-error: ${r}`)})};V([()=>s.getCurrentStreamPath,()=>u.value],()=>{H()});const p=K({data:[],height:"auto",rowConfig:{keyField:"startTime",useKey:!0},columnConfig:{useKey:!0},pagerConfig:{currentPage:1,pageSize:10,total:0},columns:[{field:"id",get title(){return m("routes.record.ID")},width:"70px"},{field:"filePath",get title(){return m("routes.record.文件路径")}},{field:"startTime",get title(){return m("routes.record.录像开始时间")},formatter:({cellValue:e})=>o(e).format("YYYY-MM-DD HH:mm:ss")},{field:"endTime",get title(){return m("routes.record.录像结束时间")},formatter:({cellValue:e})=>o(e).format("YYYY-MM-DD HH:mm:ss")},{field:"any",get title(){return m("routes.record.录像时长")},width:"100px",formatter:({row:e})=>{const{startTime:n,endTime:r}=e,D=o(r).diff(o(n),"seconds");return`${Math.floor(D/60)}′${D%60}″`}},{field:"operate",get title(){return m("routes.record.操作")},width:"70px",slots:{default:"operate"},align:"center",fixed:"right"}]});return(e,n)=>(C(),F("div",_e,[Y.value?(C(),F(te,{key:0},[l(t(j),{class:"w-342px m-r-8px flex-shrink-0",bordered:!1,bodyStyle:{height:"100%",padding:"16px",overflowY:"scroll"}},{default:d(()=>[l(t(I),{dataSource:_.value,"item-layout":"horizontal"},{renderItem:d(({item:r})=>[l(t(I).Item,null,{default:d(()=>[l(t(I).Item.Meta,{description:t(o)(r.startTime).format("YYYY-MM-DD")+"-"+t(o)(r.endTime).format("YYYY-MM-DD")},{title:d(()=>[l(t(Z),{type:t(s).getCurrentStreamPath===r.streamPath?"primary":"link",onClick:D=>M(r)},{default:d(()=>[z(P(r.streamPath),1)]),_:2},1032,["type","onClick"])]),_:2},1032,["description"]),T("div",null,P(r.count)+P(t(m)("routes.record.个文件")),1)]),_:2},1024)]),_:1},8,["dataSource"])]),_:1}),l(t(j),{class:"flex-1",bordered:!1,bodyStyle:{height:"100%",padding:"16px"}},{default:d(()=>[T("div",Se,[T("div",ye,[T("div",Pe,[l(t(O),{value:g.value,"onUpdate:value":n[0]||(n[0]=r=>g.value=r)},{default:d(()=>[l(t(E),{value:"mp4",disabled:!y.value},{default:d(()=>n[2]||(n[2]=[z("MP4")])),_:1},8,["disabled"]),l(t(E),{value:"flv",disabled:!R.value},{default:d(()=>n[3]||(n[3]=[z("FLV")])),_:1},8,["disabled"])]),_:1},8,["value"]),l(t(re),{value:v.value||u.value,disabledDate:S,onOpenChange:w,onChange:Q,onCalendarChange:G,allowClear:!1},null,8,["value"])]),l(t(O),{value:c.value,"onUpdate:value":n[1]||(n[1]=r=>c.value=r)},{default:d(()=>[l(t(E),{value:"video"},{default:d(()=>[l(t(U),{icon:"mdi:timeline-clock-outline",class:"v-text-bottom"}),T("span",null,P(t(m)("routes.record.时间轴视图")),1)]),_:1}),l(t(E),{value:"list"},{default:d(()=>[l(t(U),{icon:"pixelarticons:list-box",class:"v-text-bottom"}),T("span",null,P(t(m)("routes.record.列表视图")),1)]),_:1})]),_:1},8,["value"])]),T("div",Ce,[c.value==="video"?(C(),B(he,{data:k.value,streamPath:t(s).getCurrentStreamPath,key:t(s).getCurrentStreamPath},null,8,["data","streamPath"])):q("",!0),c.value==="list"?(C(),B(t(se),{key:1,uid:t(a).uid,gridOptions:p,gridEvent:{pageChange:H}},{operate:d(({row:r})=>[l(t(Z),{size:"small",type:"link",onClick:()=>t(me)({row:r})},{default:d(()=>[z(P(t(m)("routes.record.播放")),1)]),_:2},1032,["onClick"])]),_:1},8,["uid","gridOptions","gridEvent"])):q("",!0)])])]),_:1})],64)):(C(),B(t(ie),{key:1,status:"warning",title:t(m)("routes.record.MP4或FLV插件未启用"),"sub-title":t(m)("routes.record.请先启用插件"),class:"w-full h-full"},null,8,["title","sub-title"]))]))}});export{Ie as default};
  2. //# sourceMappingURL=mp4-f57dab76.js.map