import{d as ye,O as he,k as M,v as Me,l as H,m as X,r as A,o as d,c as v,a as e,b as a,z as h,u as c,x as C,F as k,h as T,t as g,A as w,X as Ce,a0 as ke,B as Y,G as Te,H as be}from"./vue.1703796278973.js";import{_ as Se}from"./index.vue_vue_type_script_setup_true_name_PermissionButton_lang.1703796278973.js";import{aI as K,M as Oe,I as we,r as xe,av as De,a9 as Pe,a5 as je,Y as Ie,aw as Ue,aC as Ne,aD as qe,a as Be,aB as Fe,K as Ae,aG as Ke,F as Ve}from"./index.17037962789732.js";import"./index.170379627897318.js";import"./index.170379627897319.js";import"./index.170379627897314.js";import"./index.170379627897315.js";import"./index.1703796278973308.js";import"./index.170379627897334.js";import"./index.170379627897327.js";import"./index.170379627897317.js";import"./index.1703796278973309.js";import"./index.170379627897316.js";import{_ as Je}from"./index.17037962789739.js";import $e from"./doc.17037962789732.js";import Re from"./index.170379627897364.js";import{d as Le,q as Qe,a as Ee,s as Ge}from"./dueros.1703796278973.js";import{h as ze}from"./system.1703796278973.js";import{_ as He}from"./_plugin-vue_export-helper.1703796278973.js";import"./index.170379627897320.js";import"./index.170379627897321.js";import"./permission.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.1703796278973315.js";import"./comm.1703796278973.js";import"./index.vue_vue_type_script_setup_true_name_ValueItem_lang.1703796278973.js";import"./index.170379627897337.js";import"./index.170379627897338.js";import"./index.170379627897329.js";import"./index.170379627897330.js";import"./index.170379627897325.js";import"./index.170379627897322.js";import"./index.170379627897323.js";import"./index.170379627897324.js";import"./style.1703796278973.js";import"./EditTable.vue_vue_type_script_setup_true_lang.1703796278973.js";import"./index.1703796278973305.js";import"./index.1703796278973301.js";import"./index.1703796278973302.js";import"./index.170379627897332.js";import"./index.1703796278973303.js";import"./index.170379627897339.js";import"./index.1703796278973304.js";import"./index.170379627897333.js";import"./default.1703796278973.js";import"./consts.1703796278973.js";import"./404.1703796278973.js";const W=x=>(Te("data-v-c5987ff6"),x=x(),be(),x),Xe={class:"box"},Ye={class:"left"},We={class:"left-content"},Ze=W(()=>h("p",null,"动作映射",-1)),ea=W(()=>h("p",{style:{"margin-top":"20px"}},"属性映射",-1)),aa={key:0},ta={class:"right"},oa=ye({__name:"index",setup(x){const Z=ze(),V=he(),P=M(),o=Me({id:void 0,name:void 0,applianceType:void 0,productName:void 0,actionMappings:[{actionType:void 0,action:void 0,command:{messageType:void 0,message:{properties:void 0,functionId:void 0,inputs:[]}}}],propertyMappings:[{source:void 0,target:[]}],description:void 0}),D=M([]),j=M([]),I=M([]),U=M(!1),N=M("edit"),b=M(["0"]),S=M(["0"]),ee=t=>{S.value=t},ae=t=>{b.value=t},te=t=>{o.actionMappings[t].command={messageType:void 0,message:{properties:void 0,functionId:void 0,inputs:[],value:void 0}}},oe=()=>{b.value.push(String(o.actionMappings.length)),o.actionMappings.push({actionType:void 0,action:void 0,command:{messageType:void 0,message:{properties:void 0,functionId:void 0,inputs:[]}}})},ne=t=>{o.actionMappings.splice(t,1)},se=()=>{S.value.push(String(o.propertyMappings.length)),o.propertyMappings.push({source:void 0,target:[]})},pe=t=>{o.propertyMappings.splice(t,1)},le=t=>{o.propertyMappings=o.propertyMappings.map(r=>({source:r.source,target:[]})),o.actionMappings=o.actionMappings.map(r=>({...r,command:{messageType:void 0,message:{properties:void 0,functionId:void 0,inputs:[],value:void 0}}}));const p=D.value.find(r=>r.id===t);p&&(o.productName=p.name)},re=()=>{o.propertyMappings=o.propertyMappings.map(t=>({source:void 0,target:t.target})),o.actionMappings=o.actionMappings.map(t=>({...t,action:void 0}))},J=H(()=>{if(o.applianceType)return j.value.find(t=>t.id===o.applianceType)}),$=H(()=>{var p;if(!o.id)return;const t=(p=D.value)==null?void 0:p.find(r=>r.id===o.id);return(t==null?void 0:t.metadata)&&JSON.parse(t.metadata||"{}")}),ue=async t=>{const p=await Qe(t);p.status===200&&(D.value=p==null?void 0:p.result)},ie=async()=>{const t=await Ee();t.status===200&&(j.value=t==null?void 0:t.result)},R=t=>{var _;console.log(t);const p=o.propertyMappings.map(s=>s==null?void 0:s.source)||[],r=K.cloneDeep(p),i=r.findIndex(s=>s===t);r.splice(i,1);const l=(_=J.value)==null?void 0:_.properties;return(l==null?void 0:l.filter(s=>!r.includes(s==null?void 0:s.id)))||[]},ce=t=>{var _;const p=o.propertyMappings.map(s=>s==null?void 0:s.target.map(y=>y))||[],r=K.flatMap(p),i=[];r.map(s=>{t.includes(s)||i.push(s)});const l=(_=$.value)==null?void 0:_.properties;return(l==null?void 0:l.filter(s=>!i.includes(s.id)))||[]},L=t=>{var _;const p=o.actionMappings.map(s=>s==null?void 0:s.action)||[],r=K.cloneDeep(p),i=r.findIndex(s=>s===t);r.splice(i,1);const l=((_=J.value)==null?void 0:_.actions)||[];return(l==null?void 0:l.filter(s=>!r.includes(s==null?void 0:s.id)))||[]},de=async()=>{var p;const t=[];for(let r=0;r{t.every(i=>i)&&r&&(U.value=!0,(await Ge(r).finally(()=>{U.value=!1})).status===200&&(Oe.success("操作成功!"),P.value.resetFields(),Z.jumpPage("Northbound/DuerOS")))}).catch(r=>{r.errorFields.map(l=>l.name).map(l=>{l.length>=3&&(l[0]==="propertyMappings"&&!S.value.includes(l[1])&&S.value.push(l[1]),l[0]==="actionMappings"&&!b.value.includes(l[1])&&b.value.push(l[1]))})})};return X(()=>{var t;return(t=V.params)==null?void 0:t.id},async t=>{var p;if(t){if(ue(t),ie(),t===":id")return;const i=(await Le(t)).result;i&&(i.applianceType=(p=i==null?void 0:i.applianceType)==null?void 0:p.value),Object.assign(o,i),console.log(o.propertyMappings)}},{immediate:!0,deep:!0}),X(()=>V.query.type,t=>{t&&(N.value=t)},{immediate:!0,deep:!0}),(t,p)=>{const r=Je,i=we,l=xe,m=De,_=Pe,s=je,y=A("AIcon"),q=Ie,B=Ue,Q=Ne,E=qe,G=Be,F=Fe,z=Ae,me=Ke,_e=Ve,fe=Se,ve=A("FullPage"),ge=A("page-container");return d(),v(ge,null,{default:e(()=>[a(ve,null,{default:e(()=>[a(F,null,{default:e(()=>[h("div",Xe,[h("div",Ye,[h("div",We,[a(r,{data:"基本信息"}),a(_e,{layout:"vertical",ref_key:"formRef",ref:P,model:c(o)},{default:e(()=>[a(B,{gutter:24},{default:e(()=>[a(m,{span:24},{default:e(()=>[a(l,{label:"名称",name:"name",rules:[{required:!0,message:"请输入名称"},{max:64,message:"最多输入64个字符"}]},{default:e(()=>[a(i,{placeholder:"请输入名称",value:c(o).name,"onUpdate:value":p[0]||(p[0]=n=>c(o).name=n)},null,8,["value"])]),_:1})]),_:1}),a(m,{span:12},{default:e(()=>[a(l,{label:"产品",name:"id",rules:[{required:!0,message:"请选择产品"}]},{default:e(()=>[a(s,{disabled:c(N)!=="edit"&&c(o).id&&c(o).id!==":id",placeholder:"请选择产品",value:c(o).id,"onUpdate:value":p[1]||(p[1]=n=>c(o).id=n),"show-search":"",onChange:le},{default:e(()=>[(d(!0),C(k,null,T(c(D),n=>(d(),v(_,{key:n.id,value:n.id,label:n.name},{default:e(()=>[g(w(n.name),1)]),_:2},1032,["value","label"]))),128))]),_:1},8,["disabled","value"])]),_:1})]),_:1}),a(m,{span:12},{default:e(()=>[a(l,{name:"applianceType",rules:{required:!0,message:"请选择设备类型"}},{label:e(()=>[h("span",null,[g(" 设备类型 "),a(q,{title:"DuerOS平台拟定的规范"},{default:e(()=>[a(y,{type:"QuestionCircleOutlined",style:{"margin-left":"2px"}})]),_:1})])]),default:e(()=>[a(s,{placeholder:"请选择设备类型",value:c(o).applianceType,"onUpdate:value":p[2]||(p[2]=n=>c(o).applianceType=n),"show-search":"",onChange:re},{default:e(()=>[(d(!0),C(k,null,T(c(j),n=>(d(),v(_,{key:n.id,value:n.id,label:n.name},{default:e(()=>[g(w(n.name),1)]),_:2},1032,["value","label"]))),128))]),_:1},8,["value"])]),_:1}),Ce(a(l,{name:"productName",label:"产品名称"},{default:e(()=>[a(i,{value:c(o).productName,"onUpdate:value":p[3]||(p[3]=n=>c(o).productName=n)},null,8,["value"])]),_:1},512),[[ke,!1]])]),_:1}),a(m,{span:24},{default:e(()=>[Ze,c(o).actionMappings.length?(d(),v(E,{key:0,activeKey:c(b),onChange:ae},{default:e(()=>[(d(!0),C(k,null,T(c(o).actionMappings,(n,f)=>{var O;return d(),v(Q,{key:f,header:n.action?(O=L(n.action).find(u=>u.id===n.action))==null?void 0:O.name:`动作映射${f+1}`},{extra:e(()=>[a(y,{type:"DeleteOutlined",onClick:u=>ne(f)},null,8,["onClick"])]),default:e(()=>[a(B,{gutter:24},{default:e(()=>[a(m,{span:12},{default:e(()=>[a(l,{name:["actionMappings",f,"action"],rules:{required:!0,message:"请选择动作"}},{label:e(()=>[h("span",null,[g(" 动作 "),a(q,{title:"DuerOS平台拟定的设备类型具有的相关动作"},{default:e(()=>[a(y,{type:"QuestionCircleOutlined"})]),_:1})])]),default:e(()=>[a(s,{placeholder:"请选择动作",value:n.action,"onUpdate:value":u=>n.action=u,"show-search":""},{default:e(()=>[(d(!0),C(k,null,T(L(n.action||""),u=>(d(),v(_,{key:u.id,value:u.id,label:u.name},{default:e(()=>[g(w(u.name),1)]),_:2},1032,["value","label"]))),128))]),_:2},1032,["value","onUpdate:value"])]),_:2},1032,["name"])]),_:2},1024),a(m,{span:12},{default:e(()=>[a(l,{name:["actionMappings",f,"actionType"],rules:{required:!0,message:"请选择操作"}},{label:e(()=>[h("span",null,[g(" 操作 "),a(q,{title:"映射物联网平台中所选产品具备的动作"},{default:e(()=>[a(y,{type:"QuestionCircleOutlined"})]),_:1})])]),default:e(()=>[a(s,{placeholder:"请选择操作",value:n.actionType,"onUpdate:value":u=>n.actionType=u,"show-search":"",onChange:()=>te(f)},{default:e(()=>[a(_,{value:"command"},{default:e(()=>[g("下发指令")]),_:1}),a(_,{value:"latestData"},{default:e(()=>[g("获取历史数据")]),_:1})]),_:2},1032,["value","onUpdate:value","onChange"])]),_:2},1032,["name"])]),_:2},1024),n.actionType?(d(),v(m,{key:0,span:24},{default:e(()=>[a(l,{name:["actionMappings",f,"command"]},{default:e(()=>[a(Re,{ref_for:!0,ref_key:"command",ref:I,metadata:c($),modelValue:n.command,"onUpdate:modelValue":u=>n.command=u,actionType:n.actionType},null,8,["metadata","modelValue","onUpdate:modelValue","actionType"])]),_:2},1032,["name"])]),_:2},1024)):Y("",!0)]),_:2},1024)]),_:2},1032,["header"])}),128))]),_:1},8,["activeKey"])):(d(),v(F,{key:1},{default:e(()=>[a(G)]),_:1}))]),_:1}),a(m,{span:24},{default:e(()=>[a(z,{type:"dashed",style:{width:"100%","margin-top":"10px"},onClick:oe},{default:e(()=>[a(y,{type:"PlusOutlined",style:{"margin-left":"2px"}}),g("新增动作 ")]),_:1})]),_:1}),a(m,{span:24},{default:e(()=>[ea,c(o).propertyMappings.length?(d(),v(E,{key:0,activeKey:c(S),onChange:ee},{default:e(()=>[(d(!0),C(k,null,T(c(o).propertyMappings,(n,f)=>{var O;return d(),v(Q,{key:f,header:n.source?(O=R(n.source).find(u=>u.id===n.source))==null?void 0:O.name:`属性映射${f+1}`},{extra:e(()=>[a(y,{type:"DeleteOutlined",onClick:u=>pe(f)},null,8,["onClick"])]),default:e(()=>[a(B,{gutter:24},{default:e(()=>[a(m,{span:12},{default:e(()=>[a(l,{label:"DuerOS属性",name:["propertyMappings",f,"source"],rules:{required:!0,message:"请选择DuerOS属性"}},{default:e(()=>[a(s,{placeholder:"请选择DuerOS属性",value:n.source,"onUpdate:value":u=>n.source=u,"show-search":""},{default:e(()=>[(d(!0),C(k,null,T(R(n.source||""),u=>(d(),v(_,{key:u.id,value:u.id},{default:e(()=>[g(w(u.name),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["value","onUpdate:value"])]),_:2},1032,["name"])]),_:2},1024),a(m,{span:12},{default:e(()=>[a(l,{label:"平台属性",name:["propertyMappings",f,"target"],rules:{required:!0,message:"请选择平台属性"}},{default:e(()=>[a(s,{placeholder:"请选择平台属性",value:n.target,"onUpdate:value":u=>n.target=u,mode:"tags","show-search":""},{default:e(()=>[(d(!0),C(k,null,T(ce(n.target),u=>(d(),v(_,{key:u.id,value:u.id},{default:e(()=>[g(w(u.name),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["value","onUpdate:value"])]),_:2},1032,["name"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["header"])}),128))]),_:1},8,["activeKey"])):(d(),v(F,{key:1},{default:e(()=>[a(G)]),_:1}))]),_:1}),a(m,{span:24},{default:e(()=>[a(z,{type:"dashed",style:{width:"100%","margin-top":"10px"},onClick:se},{default:e(()=>[a(y,{type:"PlusOutlined",style:{"margin-left":"2px"}}),g("新增属性 ")]),_:1})]),_:1}),a(m,{span:24,style:{"margin-top":"20px"}},{default:e(()=>[a(l,{label:"说明",name:"description",rules:{max:200,message:"最多输入200个字符"}},{default:e(()=>[a(me,{value:c(o).description,"onUpdate:value":p[4]||(p[4]=n=>c(o).description=n),placeholder:"请输入说明",showCount:"",maxlength:200},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"]),c(N)==="edit"?(d(),C("div",aa,[a(fe,{type:"primary",loading:c(U),onClick:de,hasPermission:["Northbound/DuerOS:add","Northbound/DuerOS:update"]},{default:e(()=>[g(" 保存 ")]),_:1},8,["loading"])])):Y("",!0)])]),h("div",ta,[a($e)])])]),_:1})]),_:1})]),_:1})}}});const tt=He(oa,[["__scopeId","data-v-c5987ff6"]]);export{tt as default};