1 |
- import{d as S,r as L,X as p,Y as v,Z as l,f as i,u as r,E as n,_ as b,a9 as d,a6 as z,F as M,a2 as N,aa as F}from"./vue-fae2b924.js";import{V as k,k as I,x as H}from"./index-bad227d6.js";import{u as K}from"./index-ac72395e.js";import{L as W,aW as G,b5 as X,aG as m,aV as w,bs as q,by as A,U as g,M as Y,bc as Z,bz as y,b9 as P,bA as h}from"./radical-24ede98f.js";import{u as j,c as J,h as Q}from"./global-d3aa2cdf.js";import{s as V}from"./mp4-bb27143c.js";import{g as C}from"./utils-40aa8058.js";import{s as ee}from"./state-fd73822f.js";import{u as te}from"./usePlay-a8635f7c.js";import"./index-b7a6e0fa.js";import"./jb4-5a340080.js";import"./canvas-14fb4930.js";import"./gb28181-e318e8a2.js";const ae={style:{padding:"16px"}},re=S({name:"StreamPush"}),ye=S({...re,setup(oe){const{pause:T,resume:D}=j(f);k.renderer.add("State",{renderDefault(a,e){const{row:t}=e;return ee[t.state]}}),k.renderer.add("BPS",{renderDefault(a,e){const{row:t}=e;let s=0,u=0;return t.audioTrack&&(s=t.audioTrack.bps,u=t.audioTrack.bpsOut),t.videoTrack&&(s+=t.videoTrack.bps,u+=t.videoTrack.bpsOut),`↑${C(s)} ↓${C(u)}`}});const c=K(),O=a=>{a.length>1&&(a=a.sort((e,t)=>Date.parse(e.startTime)-Date.parse(t.startTime))),c.tableRef.reloadData(a)};async function f(){O(await J())}f();const o=L({visible:!1,form:{streamPath:"",filePath:"records",hours:0,minutes:1,seconds:0}});function R(a){c.tableRef.toggleRowExpand(a)}function x(a){o.form.streamPath=a.path,o.visible=!0}async function B(){try{const a=`${o.form.hours}h${o.form.minutes}m${o.form.seconds}s`;await V({streamPath:o.form.streamPath,filePath:o.form.filePath,fragment:a}),o.visible=!1,f()}catch(a){console.error("录制失败:",a)}}async function $(a){try{await Q(a),f()}catch(e){console.error("停止录制失败:",e)}}const E={maxHeight:"100%",rowConfig:{keyField:"path",useKey:!0},expandConfig:{expandRowKeys:[],accordion:!1,lazy:!1},columnConfig:{useKey:!0},columns:[{field:"pluginName",title:"所属插件",width:"100px"},{field:"path",title:"StreamPath",showOverflow:"tooltip",minWidth:"150px"},{field:"audioTrack",title:"音频",width:"60px",formatter:({cellValue:a})=>a==null?void 0:a.codec},{field:"videoTrack",title:"视频",width:"60px",formatter:({cellValue:a})=>a==null?void 0:a.codec},{field:"state",title:"状态",showOverflow:"tooltip",cellRender:{name:"State"},width:"120px"},{field:"type",title:"类型",width:"80px",showOverflow:"tooltip"},{field:"subscribers",title:"订阅",showOverflow:"tooltip",width:"50px"},{field:"startTime",title:"创建时间",width:"180px",formatter:({cellValue:a})=>H.toDateString(new Date(a),"yyyy-MM-dd HH:mm:ss")},{field:"BPS",title:"BPS",cellRender:{name:"BPS"}},{field:"recording",title:"录制",width:"50px",align:"center",slots:{default:"recording",content:"recordingExpand"}},{field:"operate",title:"操作",width:"120px",align:"center",slots:{default:"operate"}}],data:[]},U=W(),_=a=>{U({name:"StreamPushDetail",query:{path:a}})};return(a,e)=>(p(),v(r(w),{bordered:!1,bodyStyle:{padding:"10px",height:"100%"},style:{height:"calc(100% - 100px)"}},{default:l(()=>[i(r(G),{windowWidth:1716}),i(r(I),{uid:r(c).uid,gridOptions:E},{recording:l(({row:t})=>[i(r(X),{color:t.recording.length>0?"blue":"",style:{cursor:"pointer"},onClick:s=>t.recording.length>0?R(t):x(t)},{default:l(()=>[n(b(t.recording.length||0),1)]),_:2},1032,["color","onClick"])]),recordingExpand:l(({row:t})=>[d("div",ae,[i(r(m),{direction:"vertical",style:{width:"100%"}},{default:l(()=>[t.recording.length?(p(),v(r(w),{key:0,size:"small",bordered:!1},{title:l(()=>e[7]||(e[7]=[n("录制列表")])),default:l(()=>[i(r(q),null,{default:l(()=>[(p(!0),z(M,null,N(t.recording,(s,u)=>(p(),v(r(A),{key:u},{default:l(()=>[i(r(m),null,{default:l(()=>[d("span",null,"文件路径: "+b(s.filePath),1),d("span",null,"片段时长: "+b(s.fragment),1),i(r(g),{type:"link",danger:"",onClick:()=>$(t.pointer)},{default:l(()=>e[8]||(e[8]=[n(" 停止 ")])),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024)):F("",!0),i(r(g),{type:"primary",onClick:()=>x(t)},{default:l(()=>e[9]||(e[9]=[n(" 新增录制 ")])),_:2},1032,["onClick"])]),_:2},1024)])]),operate:l(({row:t})=>[i(r(m),null,{default:l(()=>[i(r(g),{size:"small",type:"link",onClick:()=>(r(te)({path:t.path,type:t.type},{onClose:r(D)}),r(T)())},{default:l(()=>e[10]||(e[10]=[n(" 播放 ")])),_:2},1032,["onClick"]),i(r(g),{size:"small",type:"link",onClick:()=>_(t.path)},{default:l(()=>e[11]||(e[11]=[n(" 详情 ")])),_:2},1032,["onClick"])]),_:2},1024)]),_:1},8,["uid"]),i(r(Y),{visible:o.visible,"onUpdate:visible":e[5]||(e[5]=t=>o.visible=t),title:"录制设置",onOk:B,onCancel:e[6]||(e[6]=t=>o.visible=!1)},{default:l(()=>[i(r(Z),{model:o.form,layout:"vertical"},{default:l(()=>[i(r(y),{label:"流路径"},{default:l(()=>[i(r(P),{value:o.form.streamPath,"onUpdate:value":e[0]||(e[0]=t=>o.form.streamPath=t),disabled:""},null,8,["value"])]),_:1}),i(r(y),{label:"文件路径"},{default:l(()=>[i(r(P),{value:o.form.filePath,"onUpdate:value":e[1]||(e[1]=t=>o.form.filePath=t),placeholder:"请输入保存文件路径"},null,8,["value"])]),_:1}),i(r(y),{label:"片段时长"},{default:l(()=>[i(r(m),null,{default:l(()=>[i(r(h),{value:o.form.hours,"onUpdate:value":e[2]||(e[2]=t=>o.form.hours=t),min:0,max:23,placeholder:"时",style:{width:"80px"}},null,8,["value"]),e[12]||(e[12]=d("span",null,"时",-1)),i(r(h),{value:o.form.minutes,"onUpdate:value":e[3]||(e[3]=t=>o.form.minutes=t),min:0,max:59,placeholder:"分",style:{width:"80px"}},null,8,["value"]),e[13]||(e[13]=d("span",null,"分",-1)),i(r(h),{value:o.form.seconds,"onUpdate:value":e[4]||(e[4]=t=>o.form.seconds=t),min:0,max:59,placeholder:"秒",style:{width:"80px"}},null,8,["value"]),e[14]||(e[14]=d("span",null,"秒",-1))]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["visible"])]),_:1}))}});export{ye as default};
|