index-a692a1f5.js 7.0 KB

1
  1. import{f as r,d as O,k as N,s as K,e as W,U as j,V as $,a0 as i,u as t,E as z,F as J}from"./vue-18ee037d.js";import{u as R,o as Y}from"./formily-0068546b.js";import{J as b,av as g,aw as y,ag as Q,R as X,ai as Z,aj as ee,aa as te,ak as re}from"./index-421a14fe.js";import{u as oe}from"./index-9374feb1.js";import"./dayjs-4778c158.js";import{_ as se}from"./scroll-tip.vue_vue_type_script_setup_true_lang-c90dd8b9.js";import{u as ae}from"./useModal-dcba92a3.js";import{u as ne}from"./device-7f4f68cd.js";import{C as w}from"./Card-d71cd81e.js";import{a as le,T as h}from"./useFlexGapSupport-cba5400e.js";import{S as ie}from"./index-eff29412.js";import"./index-071ed9a7.js";import"./LeftOutlined-3e294183.js";import"./index-f96d75f8.js";import"./index-15629871.js";import"./index-979d22ee.js";import"./index-4e08099e.js";import"./Group-1d18c385.js";import"./createForOfIteratorHelper-0e399d34.js";import"./index-9edae1f7.js";import"./index-9e831b2b.js";import"./TextArea-792f0a90.js";import"./scrollTo-c3ec85b6.js";import"./mockjs-890b569b.js";import"./gb28281-89f88f1c.js";const pe=(e,s)=>({type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"inline"},properties:{Name:{type:"string","x-decorator":"FormItem","x-decorator-props":{style:"margin-right: 10px;width: 260px"},"x-component":"Input","x-component-props":{placeholder:"请输入流标识或源地址搜索","@keyup":e},"x-content":{prefix:()=>r(b,{icon:"ic:outline-search"},null)}},add:{type:"void","x-component":"Button","x-component-props":{"@click":()=>s()},"x-content":{default:"添加拉流转发",icon:()=>r(b,{icon:"ant-design:plus-outlined",class:"v-text-bottom mr-4px"},null)}}}}}}),ue=()=>({type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"horizontal",labelCol:6,wrapperCol:14},properties:{streamPath:{type:"string",title:"流标识",description:"拉流进入SagooMedia后的流地址","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入 SagooMedia 流标识,如:live/test",allowClear:!0},required:!0},target:{type:"string",title:"源地址",description:"远端的http-flv、rtmp、rtsp或m3u8的地址","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入源地址",allowClear:!0},required:!0},type:{type:"boolean",title:"拉流协议",description:"无法根据源地址识别拉流协议,需要您确认","x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:"hdl",value:"hdl"},{label:"hls",value:"hls"}],"x-hidden":!0,required:!0},save:{type:"boolean",title:"拉流方式",enum:[{label:"临时拉流",value:0},{label:"启动拉流",value:1},{label:"按需拉流",value:2}],default:0,"x-decorator":"FormItem","x-component":"Radio.Group"}}}}}),F=g({requestOptions:{apiUrl:()=>y("hdl")}});function P(e){return F.get({url:"/pull",params:e},{errorMessageMode:"message"})}function L(){return F.get({url:"/list"},{errorMessageMode:"message"})}const C=g({requestOptions:{apiUrl:()=>y("rtmp")}});function me(e){return C.get({url:"/pull",params:e},{errorMessageMode:"message"})}function ce(){return C.get({url:"/list"},{errorMessageMode:"message"})}const V=g({requestOptions:{apiUrl:()=>y("rtsp")}});function de(e){return V.get({url:"/pull",params:e},{errorMessageMode:"message"})}function fe(){return V.get({url:"/list"},{errorMessageMode:"message"})}const D=g({requestOptions:{apiUrl:()=>y("hls")}});function he(e){return D.get({url:"/pull",params:e},{errorMessageMode:"message"})}function ge(){return D.get({url:"/list"},{errorMessageMode:"message"})}const{FormilyForm:ye,form:v,submit:xe}=R({schema:ue(),formProps:{initialValues:{streamPath:`live/test${new Date().getTime()}`},effects(){Y("target",e=>{if(!e.value){v.setFieldState("type",a=>{a.hidden=!0});return}const s=S(e.value);v.setFieldState("type",a=>{a.hidden=s!=="none"})})}}}),_e=e=>{switch(e){case"hdl":return P;case"rtmp":return me;case"rtsp":return de;case"hls":return he;default:return P}},S=e=>e?e.startsWith("rtmp://")?"rtmp":e.startsWith("rtsp://")?"rtsp":e.endsWith(".flv")?"hdl":e.endsWith(".m3u8")?"hls":"none":"none",Ee=({updateList:e,pause:s,resume:a})=>{s(),ae({content:()=>r(ye,null,null),modalConfig:{title:"添加拉流转发",maskClosable:!1,width:700,onOk:async()=>{const{streamPath:c,target:n,type:x,save:p}=await xe(),u=S(n)==="none"?x:S(n);return c?(await _e(u)({streamPath:c,target:n,save:p}),Q.success("已启动拉流!"),e(),Promise.resolve(!0)):(a(),Promise.reject(!1))},onClose:()=>{v.reset(),a()}}})},ve=O({name:"StreamProxy"}),ze=O({...ve,setup(e){const s=N("hdl"),a=o=>{switch(o){case"hdl":return L;case"rtmp":return ce;case"rtsp":return fe;case"hls":return ge;default:return L}};K(()=>{d()});const c=ne(),n=W(()=>c.deviceList),{httpRefreshTime:x}=X({VITE_PORT:"3000",VITE_GLOB_APP_TITLE:"SagooMedia",VITE_GLOB_APP_SHORT_NAME:"SagooMedia",VITE_M7S_SERVER:"/media",VITE_USE_MOCK:"true",VITE_PUBLIC_PATH:"/plugin/media",VITE_DROP_CONSOLE:"true",VITE_BUILD_COMPRESS:"none",VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE:"false",VITE_GLOB_HTTP_REFRESH_TIME:"5000",VITE_USE_IMAGEMIN:"true",VITE_LEGACY:"false",BASE_URL:"/plugin/media",MODE:"production",DEV:!1,PROD:!0,SSR:!1}),{pause:p,resume:u}=Z(d,x),U=o=>{const l=String(o.target.value).trim().toLowerCase();if(l){const f=new RegExp(l,"gi"),I=["ID","Name"],G=n.value.filter(E=>I.some(m=>String(E[m]).toLowerCase().indexOf(l)>-1)).map(E=>{const m=Object.assign({},E);return I.forEach(T=>{m[T]=String(m[T]).replace(f,H=>`<span style="color: #ff99a0">${H}</span>`)}),m});_(G),p()}else _(n.value),u()},k=()=>{Ee({updateList:d,pause:p,resume:u})},{FormilyForm:B}=R({schema:pe(U,k)}),A={toggleRowExpand:({expanded:o})=>{o?p():u()}},M=oe(),_=o=>{M.tableRef.reloadData(o||[])};function d(){return a(s.value)().then(o=>{_(o)}).catch(o=>{console.error(`stream-proxy-getList-error: ${o}`)})}d();const q={maxHeight:"100%",rowConfig:{keyField:"ID",useKey:!0},columnConfig:{useKey:!0},columns:[{field:"StreamPath",title:"流标识",showOverflow:"tooltip",width:"200px",fixed:"left",type:"html"},{field:"URL",title:"源地址",showOverflow:"tooltip",width:"120px",type:"html"},{field:"StartTime",title:"开始时间",minWidth:"180px",formatter:({cellValue:o})=>re.toDateString(new Date(o),"yyyy-MM-dd HH:ss:mm")},{field:"operate",title:"操作",width:"120px",fixed:"right",align:"center",slots:{default:"operate"}}],data:[]};return(o,l)=>(j(),$(J,null,[r(t(w),{bordered:!1,bodyStyle:{padding:"26px 10px 0 10px",marginBottom:"8px"}},{default:i(()=>[r(t(B))]),_:1}),r(t(w),{bordered:!1,bodyStyle:{padding:"10px",height:"calc(100% - 50px)"},style:{height:"calc(100% - 100px)"}},{default:i(()=>[r(t(se),{windowWidth:1716}),r(t(le),{activeKey:s.value,"onUpdate:activeKey":l[0]||(l[0]=f=>s.value=f)},{default:i(()=>[r(t(h),{key:"hdl",tab:"hdl"}),r(t(h),{key:"rtmp",tab:"rtmp"}),r(t(h),{key:"rtsp",tab:"rtsp"}),r(t(h),{key:"hls",tab:"hls"})]),_:1},8,["activeKey"]),r(t(ee),{uid:t(M).uid,gridOptions:t(q),gridEvent:t(A)},{operate:i(({row:f})=>[r(t(ie),null,{default:i(()=>[r(t(te),{size:"small",type:"link"},{default:i(()=>[z(" 测试 ")]),_:1})]),_:1})]),_:1},8,["uid","gridOptions","gridEvent"])]),_:1},8,["bodyStyle"])],64))}});export{ze as default};