index-56c13197.js 16 KB

12
  1. import{b0 as O,bp as $,n as l,bc as v,d as N,c as b,h as B,Z as G,$ as T,a0 as p,T as a,aH as R,aI as j,a7 as V,bB as E,a5 as C,aQ as P,aG as L,b9 as z,ba as U,C as W,at as M,o as H,a1 as Q,a2 as Z,b4 as D}from"./index-1f7267da.js";import{u as K}from"./index-4ed641ec.js";import{m as J,n as X,o as Y,p as ee,q as te,t as oe,v as re,w as ae}from"./gb28181-59fe2452.js";import"./dayjs-919e6097.js";const le=({handleSubmit:e,handleReset:r,handleAdd:n})=>({type:"object",properties:{layout:{type:"void","x-component":"FormLayout","x-component-props":{layout:"inline",style:"marginTop: 22px",labelCol:8,wrapperCol:16},properties:{query:{type:"string",title:"平台名称/平台编号","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入平台名称或平台编号",allowClear:!0,style:{width:"300px",marginRight:"16px",boxSizing:"border-box"},"@pressEnter":()=>e()}},btns:{type:"void","x-component":"FormButtonGroup","x-component-props":{style:"marginLeft: 8px"},properties:{submit:{type:"void","x-component":"Button","x-component-props":{type:"primary","@click":()=>e(),style:"width: 70px;"},"x-content":"查询"},reset:{type:"void","x-component":"Button","x-component-props":{"@click":()=>r(),style:"width: 70px"},"x-content":"重置"},add:{type:"void","x-component":"Button","x-component-props":{type:"primary","@click":()=>n(),style:"width: 90px"},"x-content":"添加上级"}}}}}}}),A=(e=[])=>({type:"object",properties:{layout:{type:"void","x-component":"FormGrid","x-component-props":{minColumns:5,maxColumns:5,colWrap:!1},properties:{left:{type:"void","x-decorator":"FormGrid.GridColumn","x-decorator-props":{gridSpan:2},"x-component":"FormLayout","x-component-props":{labelCol:8,wrapperCol:16,fullness:!0},properties:{name:{type:"string",title:"上级平台名称","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入上级平台名称",allowClear:!0},required:!0},serverGBId:{type:"string",title:"上级平台国标编码","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入上级平台国标编码",allowClear:!0},required:!0,"x-validator":[{pattern:/^\d{20}$/,message:"上级平台国标编码必须为20位数字"}]},serverGBDomain:{type:"string",title:"上级平台国标域","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入上级平台国标域",allowClear:!0},required:!0,"x-reactions":[{dependencies:[".serverGBId"],when:"{{$deps[0] && $deps[0].length === 20}}",fulfill:{state:{value:"{{$deps[0].substring(0, 10)}}"}}}]},serverIp:{type:"string",title:"上级平台IP","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入上级平台IP",allowClear:!0},required:!0},serverPort:{type:"number",title:"上级平台端口","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入上级平台端口",allowClear:!0},required:!0},deviceGBId:{type:"string",title:"设备国标编号","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入设备国标编号",allowClear:!0},required:!0},deviceGBDomain:{type:"string",title:"设备国标域","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入设备国标域",allowClear:!0},required:!0},localIP:{type:"string",title:"本地IP","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:"请选择本地IP",allowClear:!0},required:!0,enum:e.map(r=>({label:r,value:r}))},devicePort:{type:"number",title:"本地端口","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入本地端口",allowClear:!0},required:!0},username:{type:"string",title:"SIP认证用户名","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入SIP认证用户名",allowClear:!0}},password:{type:"string",title:"SIP认证密码","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入SIP认证密码",allowClear:!0}}}},mid:{type:"void","x-decorator":"FormGrid.GridColumn","x-decorator-props":{gridSpan:2},"x-component":"FormLayout","x-component-props":{labelCol:8,wrapperCol:16,fullness:!0},properties:{expires:{type:"number",title:"注册有效期(秒)","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入注册有效期(秒)",allowClear:!0},default:3600,required:!0},registerInterval:{type:"number",title:"注册间隔(秒)","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入注册间隔(秒)",allowClear:!0},default:60,required:!0},registerInterval:{type:"number",title:"注册间隔(秒)","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入注册间隔(秒)",allowClear:!0},default:60,required:!0},keepTimeout:{type:"number",title:"心跳周期(秒)","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入心跳周期(秒)",allowClear:!0},default:60,required:!0},maxTimeoutCount:{type:"number",title:"最大心跳超时次数","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入最大心跳超时次数",allowClear:!0},default:3,required:!0},maxTimeoutCount:{type:"number",title:"最大心跳超时次数","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{placeholder:"请输入最大心跳超时次数",allowClear:!0},default:3,required:!0},sendStreamIp:{type:"string",title:"SDP发流IP","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入SDP发流IP",allowClear:!0}},transport:{type:"string",title:"信令传输",enum:[{label:"UDP",value:"UDP"},{label:"TCP",value:"TCP"}],default:"UDP","x-decorator":"FormItem","x-component":"Select"},secrecy:{type:"number",title:"保密属性",enum:[{label:"涉密",value:1},{label:"不涉密",value:0}],default:0,"x-decorator":"FormItem","x-component":"Select"},characterSet:{type:"string",title:"字符集",enum:[{label:"GB2312",value:"GB2312"},{label:"UTF-8",value:"UTF-8"}],default:"GB2312","x-decorator":"FormItem","x-component":"Select"},civilCode:{type:"string",title:"行政区域","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入行政区域",allowClear:!0}},manufacturer:{type:"string",title:"平台厂商","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入平台厂商",allowClear:!0}},model:{type:"string",title:"平台型号","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入平台型号",allowClear:!0}},address:{type:"string",title:"平台安装地址","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"请输入平台安装地址",allowClear:!0}}}},right:{type:"void","x-decorator":"FormGrid.GridColumn","x-decorator-props":{gridSpan:1},"x-component":"FormLayout","x-component-props":{labelCol:14,wrapperCol:8,fullness:!0},properties:{enable:{type:"boolean",title:"启用","x-decorator":"FormItem","x-component":"Switch",default:!0,"x-component-props":{style:"width: 40px;"}},rtcp:{type:"boolean",title:"RTCP保活","x-decorator":"FormItem","x-component":"Switch",default:!1,"x-component-props":{style:"width: 40px;"}},as_message_channel:{type:"boolean",title:"消息通道","x-decorator":"FormItem","x-component":"Switch",default:!1,"x-component-props":{style:"width: 40px;"}},auto_push_channel:{type:"boolean",title:"主动推送通道","x-decorator":"FormItem","x-component":"Switch",default:!1,"x-component-props":{style:"width: 40px;"}},catalog_with_platform:{type:"boolean",title:"推送平台信息","x-decorator":"FormItem","x-component":"Switch",default:!1,"x-component-props":{style:"width: 40px;"}},catalog_with_group:{type:"boolean",title:"推送分组信息","x-decorator":"FormItem","x-component":"Switch",default:!1,"x-component-props":{style:"width: 40px;"}},catalog_with_region:{type:"boolean",title:"推送行政区域","x-decorator":"FormItem","x-component":"Switch",default:!1,"x-component-props":{style:"width: 40px;"}}}}}}}}),ne=(e,r)=>{const n=r?.localIPs||[],{FormilyForm:I,form:x,submit:c}=O({schema:A(n),formProps:{initialValues:r?{localIP:n.length>0?n[0]:void 0,devicePort:r.localPort,deviceGBId:r.deviceGBId,deviceGBDomain:r.deviceGBDomain}:{}}});$({content:()=>l(I,null,null),modalConfig:{title:"添加上级级联平台",maskClosable:!1,width:"90%",onOk:async()=>{const f=await c();if(f){const m={...f};return m.localIP!==void 0&&(m.deviceIp=m.localIP,delete m.localIP),await J(m),v.success("添加成功"),e(),Promise.resolve(!0)}return Promise.reject(!1)},onClose:()=>{x.reset()}}})},ie=(e,r,n)=>{const I=n?.localIPs||[],{FormilyForm:x,form:c,submit:f}=O({schema:A(I),formProps:{initialValues:{name:e.name,serverGBId:e.serverGBId,serverGBDomain:e.serverGBDomain,serverIp:e.serverIp,serverPort:e.serverPort,localIP:e.deviceIp,deviceGBId:e.deviceGBId,deviceGBDomain:e.deviceGBDomain,devicePort:e.devicePort,username:e.username,password:e.password,expires:e.expires,registerInterval:e.registerInterval,keepTimeout:e.keepTimeout,maxTimeoutCount:e.maxTimeoutCount,sendStreamIp:e.sendStreamIp,transport:e.transport,secrecy:e.secrecy,characterSet:e.characterSet,civilCode:e.civilCode,manufacturer:e.manufacturer,model:e.model,address:e.address,enable:e.enable,rtcp:e.rtcp,asMessageChannel:e.asMessageChannel,autoPushChannel:e.autoPushChannel,catalogWithPlatform:e.catalogWithPlatform,catalogWithGroup:e.catalogWithGroup,catalogWithRegion:e.catalogWithRegion}}});$({content:()=>l(x,null,null),modalConfig:{title:"编辑上级级联平台",maskClosable:!1,width:"90%",onOk:async()=>{const m=await f();if(m){const u={...m};return u.localIP!==void 0&&(u.deviceIp=u.localIP,delete u.localIP),await X(u),v.success("编辑成功"),r(),Promise.resolve(!0)}return Promise.reject(!1)},onClose:()=>{c.reset()}}})},se={style:{margin:"12px 0"}},pe=N({__name:"index",props:{visible:{type:Boolean},platformId:{},platformName:{}},emits:["update:visible"],setup(e,{emit:r}){const n=e,I=r,x=b(n.visible);B(()=>n.visible,i=>{x.value=i});const c=b("shared"),f=b("");B(c,async()=>{await W(),h.tableRef?.commitProxy("query")}),B(()=>n.platformId,async()=>{x.value&&(await W(),h.tableRef?.commitProxy("query"))}),B(()=>x.value,async i=>{i&&(await W(),h.tableRef?.commitProxy("query"))});const m=()=>{I("update:visible",!1)},u=()=>{h.tableRef?.commitProxy("query")},S=async i=>{try{const o=n.platformId||"";await Y(o,i.id),v.success("添加成功"),h.tableRef?.commitProxy("query")}catch(o){console.error(o)}},_=async i=>{try{const o=n.platformId||"";await ee(o,i.id),v.success("移出成功"),h.tableRef?.commitProxy("query")}catch(o){console.error(o)}},k=(i,o)=>new Promise(async y=>{const t={page:i,count:o,query:f.value||void 0,shared:c.value==="shared"?1:c.value==="unshared"?0:-1},s=n.platformId||"",d=await te(s,t),F=(d.data||[]).map(q=>({...q,type:q.channelType||(q.streamPath?"自定义通道":"设备通道")}));y({total:d.total||0,data:F})}),h=K(),g={height:"420px",rowConfig:{keyField:"id",useKey:!0},columnConfig:{useKey:!0},pagerConfig:{pageSize:10},proxyConfig:{autoLoad:!0,props:{result:"data",total:"total"},ajax:{query:({page:i})=>k(i.currentPage,i.pageSize)}},columns:[{field:"channelId",title:"通道编号",minWidth:"160px",showOverflow:"tooltip",fixed:"left"},{field:"channelName",title:"通道名称",minWidth:"160px",showOverflow:"tooltip"},{field:"customChannelId",title:"自定义通道编号",minWidth:"160px",showOverflow:"tooltip"},{field:"customChannelName",title:"自定义通道名称",minWidth:"160px",showOverflow:"tooltip"},{field:"streamPath",title:"流标识",minWidth:"180px",showOverflow:"tooltip"},{field:"type",title:"类型",minWidth:"120px"},{field:"operate",title:"操作",width:"150px",fixed:"right",align:"center",slots:{default:"operate"}}]};return(i,o)=>(G(),T(a(U),{visible:x.value,title:`通道共享 - ${i.platformName||""}`,width:"900px",onCancel:m,footer:null},{default:p(()=>[l(a(j),{activeKey:c.value,"onUpdate:activeKey":o[0]||(o[0]=y=>c.value=y)},{default:p(()=>[l(a(R),{key:"shared",tab:"已共享"}),l(a(R),{key:"unshared",tab:"未共享"})]),_:1},8,["activeKey"]),V("div",se,[l(a(E),{value:f.value,"onUpdate:value":o[1]||(o[1]=y=>f.value=y),allowClear:"",placeholder:"请输入通道编号或通道名称搜索",onPressEnter:u,style:{width:"360px"}},null,8,["value"]),l(a(P),{style:{"margin-left":"8px"},type:"primary",onClick:u},{default:p(()=>o[2]||(o[2]=[C("搜索")])),_:1})]),l(a(z),{uid:a(h).uid,gridOptions:g},{operate:p(({row:y})=>[l(a(L),null,{default:p(()=>[c.value==="unshared"?(G(),T(a(P),{key:0,size:"small",type:"primary",onClick:t=>S(y)},{default:p(()=>o[3]||(o[3]=[C(" 添加 ")])),_:2},1032,["onClick"])):(G(),T(a(P),{key:1,size:"small",type:"default",danger:"",onClick:t=>_(y)},{default:p(()=>o[4]||(o[4]=[C(" 移出 ")])),_:2},1032,["onClick"]))]),_:2},1024)]),_:1},8,["uid"])]),_:1},8,["visible","title"]))}});const de=M(pe,[["__scopeId","data-v-9bca9555"]]),ce=N({name:"Alarms"}),ye=N({...ce,setup(e){const r=b(null),n=async()=>{try{const t=await oe();t.data&&(r.value=t.data)}catch(t){console.error("获取服务器配置失败:",t)}};H(()=>{n()});const I=async()=>{g.submit(),!(g.errors.length>0)&&o.tableRef.commitProxy("query")},x=()=>{g.reset(),o.tableRef.commitProxy("query")},c=()=>{if(!r.value){v.warning("正在加载服务器配置,请稍后再试");return}ne(()=>{o.tableRef.commitProxy("query")},r.value)},f=t=>{if(t.readOnly){v.warning("只读平台无法编辑");return}ie(t,()=>{o.tableRef.commitProxy("query")},r.value||void 0)},m=t=>{if(t.readOnly){v.warning("只读平台无法删除");return}U.confirm({title:"确认删除",content:`确定要删除级联平台"${t.name}"吗?`,okText:"确认",cancelText:"取消",onOk:async()=>{try{await re(t.serverGBId),v.success("删除成功"),o.tableRef.commitProxy("query")}catch(s){console.error("删除失败:",s)}}})},u=b(!1),S=b(void 0),_=b(void 0),k=t=>{S.value=t.serverGBId,_.value=t.name,u.value=!0},{FormilyForm:h,form:g}=O({schema:le({handleSubmit:I,handleReset:()=>x(),handleAdd:()=>c()})}),i=(t,s)=>{const{query:d}=g.values;return new Promise(async w=>{const F=await ae({query:d,enable:-1,page:t,count:s});w({total:F.total||0,data:F.list||F.data||[]})})},o=K(),y={height:"auto",rowConfig:{keyField:"serverGBId",useKey:!0},columnConfig:{useKey:!0},pagerConfig:{pageSize:10},proxyConfig:{autoLoad:!0,seq:!0,props:{result:"data",total:"total"},ajax:{query:({page:t})=>i(t.currentPage,t.pageSize)}},columns:[{field:"name",title:"名称",minWidth:"120px",showOverflow:"tooltip"},{field:"serverGBId",title:"平台编号",minWidth:"150px",showOverflow:"tooltip"},{field:"enable",title:"是否启用",minWidth:"100px",formatter:({cellValue:t})=>t?"是":"否"},{field:"status",title:"状态",minWidth:"100px",formatter:({cellValue:t})=>t?"在线":"离线"},{field:"address",title:"地址",minWidth:"150px",showOverflow:"tooltip"},{field:"deviceGBId",title:"设备国标编号",minWidth:"150px",showOverflow:"tooltip"},{field:"transport",title:"信令传输模式",minWidth:"120px"},{field:"channelCount",title:"通道数",minWidth:"100px"},{field:"operate",title:"操作",width:"250px",fixed:"right",align:"center",slots:{default:"operate"}}]};return(t,s)=>(G(),Q(Z,null,[l(a(D),{bordered:!1,bodyStyle:{padding:"10px",marginBottom:"8px"}},{default:p(()=>[l(a(h))]),_:1}),l(a(D),{bordered:!1,bodyStyle:{padding:"10px",height:"100%"},style:{height:"calc(100% - 100px)"}},{default:p(()=>[l(a(z),{uid:a(o).uid,gridOptions:y},{operate:p(({row:d})=>[l(a(L),null,{default:p(()=>[l(a(P),{size:"small",type:"link",disabled:d.readOnly,onClick:w=>f(d)},{default:p(()=>s[1]||(s[1]=[C(" 编辑 ")])),_:2},1032,["disabled","onClick"]),l(a(P),{size:"small",type:"text",disabled:d.readOnly,onClick:w=>k(d)},{default:p(()=>s[2]||(s[2]=[C(" 通道共享 ")])),_:2},1032,["disabled","onClick"]),l(a(P),{size:"small",type:"link",danger:"",disabled:d.readOnly,onClick:w=>m(d)},{default:p(()=>s[3]||(s[3]=[C(" 删除 ")])),_:2},1032,["disabled","onClick"])]),_:2},1024)]),_:1},8,["uid"])]),_:1}),l(de,{visible:u.value,"onUpdate:visible":s[0]||(s[0]=d=>u.value=d),platformId:S.value,platformName:_.value},null,8,["visible","platformId","platformName"])],64))}});export{ye as default};
  2. //# sourceMappingURL=index-56c13197.js.map