import{M as Y,I as Z,r as ee,a5 as ae,h as oe,K as se,a as te,av as ne,L as le,aw as re,F as ce,W as pe}from"./index.17037962789732.js";import"./index.170379627897337.js";import"./index.170379627897315.js";import"./index.170379627897318.js";import"./index.170379627897319.js";import{_ as de}from"./index.170379627897313.js";import"./index.170379627897333.js";import"./index.170379627897327.js";import"./index.170379627897317.js";import"./index.170379627897314.js";import"./index.170379627897316.js";import{d as j}from"./device.17037962789735.js";import{a as ue}from"./comm.1703796278973.js";import{p as ie}from"./const.17037962789732.js";import{u as me}from"./permission.1703796278973.js";import{d as _e,l as ve,k as f,m as fe,r as ye,o as l,c as d,a as n,b as c,u as s,x as i,F as k,h as $,B as E,z as y,t as b,A as m,y as ge,j as he,M as ke}from"./vue.1703796278973.js";import{_ as be}from"./_plugin-vue_export-helper.1703796278973.js";import"./index.17037962789733.js";import"./dayjs.min.1703796278973.js";import"./isArray.1703796278973.js";import"./editor.api.1703796278973.js";import"./preload-helper.1703796278973.js";import"./monaco.contribution.1703796278973.js";import"./index.170379627897335.js";import"./index.vue_vue_type_script_setup_true_lang.17037962789733.js";import"./system.1703796278973.js";import"./index.170379627897332.js";import"./index.170379627897334.js";import"./default.1703796278973.js";import"./consts.1703796278973.js";import"./404.1703796278973.js";const we={class:"gateway-box"},xe=["src"],Pe={class:"card-item-content-title"},Ce={class:"desc"},Ie={class:"subtitle"},je=_e({__name:"SaveProduct",props:{visible:{type:Boolean,default:!1},productId:{type:String,default:""},channel:{type:String,default:""},deviceType:{type:String,default:"device"}},emits:["update:visible","update:productId","close","save"],setup(q,{emit:w}){const _=q,M=me().hasPermission("link/AccessConfig:add"),g=ve({get:()=>_.visible,set:a=>w("update:visible",a)}),S=f([]),R=async()=>{const a={pageSize:100,sorts:[{name:"createTime",order:"desc"}],terms:[{column:"provider",value:_.channel}]},{result:o}=await j.queryProvider(a);S.value=o.data},T=f([]),B=f(),F=async a=>{T.value=[a.id],t.value.accessId=a.id,t.value.accessName=a.name,t.value.accessProvider=a.provider,t.value.messageProtocol=a.protocolDetail.id,t.value.protocolName=a.protocolDetail.name,t.value.transportProtocol=a.transport;const{result:o}=await j.getConfiguration(a.protocol,a.transport);B.value=o.properties.map(r=>{var v,x,P,C,I;return{name:["configuration",r.property],label:r.name,type:(v=r.type)==null?void 0:v.type,value:(x=r.type.expands)==null?void 0:x.defaultValue,options:(P=r.type.elements)==null?void 0:P.map(u=>({label:u.text,value:u.value})),required:!!((C=r.type.expands)!=null&&C.required),message:((I=r.type)==null?void 0:I.type)==="enum"?`请选择${r.name}`:`请输入${r.name}`}})};fe(()=>g.value,a=>{a?R():(T.value=[],B.value=[],w("close"))});const L=f(),t=f({accessId:"",accessName:"",accessProvider:"",configuration:{access_pwd:"",stream_mode:"UDP"},deviceType:_.deviceType,messageProtocol:"",name:"",protocolName:"",transportProtocol:""}),N=f(!1),z=()=>{var a;(a=L.value)==null||a.validate().then(async()=>{N.value=!0;const o=await j.saveProduct(t.value);o.success&&(w("update:productId",o.result.id),(await j.deployProductById(o.result.id)).success&&(w("save",{...o.result}),Y.success("操作成功"),J())),N.value=!1}).catch(o=>{console.log("err: ",o)})},J=()=>{g.value=!1,L.value.resetFields()},K=()=>{const a=window.open(`${origin}/#/iot/link/accessConfig/detail/:id?save=true&view=false&type=${_.channel}`);a.onTabSaveSuccess=async o=>{await R(),F(o==null?void 0:o.result)}};return(a,o)=>{const r=Z,v=ee,x=ae,P=oe,C=se,I=te,u=ne,O=le,G=ye("Ellipsis"),V=re,W=de,H=ce,Q=pe;return l(),d(Q,{visible:s(g),"onUpdate:visible":o[1]||(o[1]=e=>ke(g)?g.value=e:null),title:"快速添加",cancelText:"取消",okText:"确定",onOk:z,onCancel:J,confirmLoading:s(N),width:"660px"},{default:n(()=>[c(H,{ref_key:"formRef",ref:L,model:s(t),layout:"vertical"},{default:n(()=>[c(v,{label:"产品名称",name:"name",rules:[{required:!0,message:"请输入产品名称"},{max:64,message:"最多输入64个字符"}]},{default:n(()=>[c(r,{value:s(t).name,"onUpdate:value":o[0]||(o[0]=e=>s(t).name=e),placeholder:"请输入名称"},null,8,["value"])]),_:1}),q.deviceType!=="gateway"?(l(!0),i(k,{key:0},$(s(B),(e,U)=>(l(),d(v,{key:U,name:e.name,label:e.label,rules:[{required:e.required,message:e.message,trigger:"change"},{max:64,message:"最多输入64个字符"}]},{default:n(()=>[e.type==="enum"?(l(),d(x,{key:0,value:s(t)[e.name[0]][e.name[1]],"onUpdate:value":p=>s(t)[e.name[0]][e.name[1]]=p,options:e.options,placeholder:e.message},null,8,["value","onUpdate:value","options","placeholder"])):e.type==="password"?(l(),d(P,{key:1,value:s(t)[e.name[0]][e.name[1]],"onUpdate:value":p=>s(t)[e.name[0]][e.name[1]]=p,placeholder:e.message},null,8,["value","onUpdate:value","placeholder"])):(l(),d(r,{key:2,value:s(t)[e.name[0]][e.name[1]],"onUpdate:value":p=>s(t)[e.name[0]][e.name[1]]=p,placeholder:e.message},null,8,["value","onUpdate:value","placeholder"]))]),_:2},1032,["name","label","rules"]))),128)):E("",!0),c(v,{label:"接入网关",name:"accessId",rules:{required:!0,message:"请选择接入网关"}},{default:n(()=>[y("div",we,[s(S).length?E("",!0):(l(),d(I,{key:0,style:{"margin-top":"50px"}},{description:n(()=>[s(M)?(l(),i(k,{key:1},[b(" 暂无数据,请先 "),c(C,{type:"link",style:{padding:"0"},onClick:K},{default:n(()=>[b(" 添加"+m(s(ie)[_.channel])+"接入网关 ",1)]),_:1})],64)):(l(),i(k,{key:0},[b("暂无权限, 请联系管理员")],64))]),_:1})),(l(!0),i(k,null,$(s(S),(e,U)=>{var p,A;return l(),i("div",{class:"gateway-item",key:U},[c(W,ge({onClick:F,active:s(T).includes(e.id),value:e},e,{status:(p=e.state)==null?void 0:p.value,statusText:(A=e.state)==null?void 0:A.text,statusNames:{enabled:"processing",disabled:"error"}}),{img:n(()=>[he(a.$slots,"img",{},()=>[y("img",{src:s(ue)("/device-access.png")},null,8,xe)],!0)]),content:n(()=>[y("h3",Pe,m(e.name),1),y("div",Ce,m(e.description),1),_.channel==="gb28181-2016"?(l(),d(V,{key:0},{default:n(()=>[c(u,{span:12},{default:n(()=>{var h;return[b(m((h=e.channelInfo)==null?void 0:h.name),1)]}),_:2},1024),c(u,{span:12},{default:n(()=>[b(m(e.protocolDetail.name),1)]),_:2},1024),c(u,{span:12},{default:n(()=>{var h;return[(l(!0),i(k,null,$((h=e.channelInfo)==null?void 0:h.addresses,(D,X)=>(l(),i("p",{key:`${D.address}_address${X}`},[c(G,null,{default:n(()=>[c(O,{text:D.address,color:D.health===-1?"red":"green"},null,8,["text","color"])]),_:2},1024)]))),128))]}),_:2},1024)]),_:2},1024)):(l(),d(V,{key:1},{default:n(()=>[c(u,{span:24},{default:n(()=>[y("div",Ie,m(e.protocolDetail.name),1),y("p",null,m(e.protocolDetail.description),1)]),_:2},1024)]),_:2},1024))]),_:2},1040,["active","value","status","statusText"])])}),128))])]),_:3})]),_:3},8,["model"])]),_:3},8,["visible","confirmLoading"])}}});const na=be(je,[["__scopeId","data-v-98a977ad"]]);export{na as default};