import{d as B,O as G,k as J,l as H,v as D,r as K,o as y,c as g,a as l,z as F,b as r,t as v,u as a,M as C,y as b,B as x,n as Z}from"./vue.1703796278973.js";import{cC as ee,M as w,a9 as te,a5 as ae,r as oe,q as se,I as le,Y as re,a0 as ie,a7 as ne,F as pe,W as ue}from"./index.17037962789732.js";import"./index.170379627897337.js";import"./index.170379627897315.js";import"./index.170379627897318.js";import"./index.170379627897319.js";import"./index.170379627897338.js";import"./index.170379627897336.js";import"./index.170379627897314.js";import"./index.170379627897329.js";import"./index.170379627897330.js";import"./index.170379627897316.js";import"./index.170379627897317.js";import{m as P}from"./instance.1703796278973.js";import{b as me,c as de,m as h}from"./product.17037962789737.js";import{u as ce}from"./instance.17037962789732.js";import{u as fe}from"./product.17037962789738.js";import{F as ve}from"./system.1703796278973.js";import{g as _e}from"./comm.1703796278973.js";import{u as ye}from"./metadata.1703796278973.js";import{_ as ge}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"./encodeQuery.1703796278973.js";import"./index.170379627897332.js";import"./index.170379627897333.js";import"./index.170379627897334.js";import"./default.1703796278973.js";import"./permission.1703796278973.js";import"./consts.1703796278973.js";import"./404.1703796278973.js";const ke={class:"import-content"},be={class:"import-tip"},xe=B({name:"Import"}),Ie=B({...xe,props:{visible:{type:Boolean},type:null},emits:["update:visible"],setup(I,{emit:V}){const p=I,M=G(),S=ce(),q=fe(),_=J(!1),T=H({get:()=>p.visible,set:i=>{V("update:visible",i)}}),N=()=>{V("update:visible",!1)},s=D({type:"import",metadata:"jetlinks",metadataType:"script"}),E=D({type:[{required:!0,message:"请选择导入方式"}],copy:[{required:!0,message:"请选择产品"}],metadata:[{required:!0,message:"请选择物模型类型"}],metadataType:[{required:!0,message:"请选择导入类型"}],upload:[{required:!0,message:"请上传文件"}],import:[{required:!0,message:"请输入物模型"}]}),{validate:R,validateInfos:k}=ee(s,E),O=J([]),L=J([]);(async()=>{const{id:i}=M.params||{},e=await me({paging:!1,sorts:[{name:"createTime",order:"desc"}],terms:[{column:"id$not",value:i}]});L.value=e.result.filter(t=>t==null?void 0:t.metadata).map(t=>({label:t.name,value:t.metadata,key:t.id}))})();const z=i=>{const e=new FileReader;e.readAsText(i),e.onload=t=>{var o;s.import=(o=t.target)==null?void 0:o.result}},Q=i=>{if(i.file.status==="done"){const{response:e}=i.file;e.status===200&&(s.upload=e.result)}},U=i=>{var m,u,f;const e={...i},t=JSON.parse(((m=S.detail)==null?void 0:m.metadata)||"{}"),o=(f=(u=S.detail)==null?void 0:u.features)==null?void 0:f.map(d=>d.id);return o!=null&&o.includes("eventNotModifiable")&&(e.events=(t==null?void 0:t.events)||[]),o!=null&&o.includes("propertyNotModifiable")&&(e.properties=(t==null?void 0:t.properties)||[]),((e==null?void 0:e.events)||[]).map((d,c)=>({...d,sortsIndex:c})),((e==null?void 0:e.properties)||[]).map((d,c)=>({...d,sortsIndex:c})),((e==null?void 0:e.functions)||[]).map((d,c)=>({...d,sortsIndex:c})),((e==null?void 0:e.tags)||[]).map((d,c)=>({...d,sortsIndex:c})),e},A=ye(),W=async()=>{R().then(async i=>{_.value=!0;const{id:e}=M.params||{};if(i.metadata==="alink"){const t=await de("from","alink",JSON.parse(i.import)).catch(o=>o);if(t.status===200){const o=U(t.result);let m;(p==null?void 0:p.type)==="device"?m=await P(e,o).catch(u=>u):m=await h(e,{id:e,metadata:JSON.stringify(o)}).catch(u=>u),m.success&&w.success("导入成功"),_.value=!1}else{_.value=!1;return}(p==null?void 0:p.type)==="device"?await S.refresh(e):await q.getDetail(e),A.set("importMetadata",!0),N()}else try{const t=JSON.parse(i[(p==null?void 0:p.type)==="device"?"import":i==null?void 0:i.type]||"{}");if(!(t!=null&&t.properties||t!=null&&t.events||t!=null&&t.functions||t!=null&&t.tags)){w.error("物模型数据不正确"),_.value=!1;return}const{id:o}=M.params||{},m={id:o,metadata:JSON.stringify(U(t))},u=U(t);let f;(p==null?void 0:p.type)==="device"?f=await P(o,u):f=await h(o,m),_.value=!1,f.success&&w.success("导入成功"),(p==null?void 0:p.type)==="device"?await S.refresh(o):await q.getDetail(o),A.set("importMetadata",!0),N()}catch(t){_.value=!1,w.error(t==="error"?"物模型数据不正确":"上传json格式的物模型文件")}})};return(i,e)=>{const t=K("AIcon"),o=te,m=ae,u=oe,f=se,d=le,c=re,X=ie,Y=ne,$=pe,j=ue;return y(),g(j,{"mask-closable":!1,title:"导入物模型","destroy-on-close":"",visible:a(T),"onUpdate:visible":e[8]||(e[8]=n=>C(T)?T.value=n:null),onCancel:N,onOk:W,"confirm-loading":a(_)},{default:l(()=>[F("div",ke,[F("p",be,[r(t,{type:"ExclamationCircleOutlined",style:{"margin-right":"5px"}}),v(" 导入的物模型会覆盖原来的属性、功能、事件、标签,请谨慎操作。 ")])]),r($,{layout:"vertical",modelValue:a(s),"onUpdate:modelValue":e[7]||(e[7]=n=>C(s)?s.value=n:null)},{default:l(()=>[I.type==="product"?(y(),g(u,b({key:0,label:"导入方式"},a(k).type),{default:l(()=>[r(m,{value:a(s).type,"onUpdate:value":e[0]||(e[0]=n=>a(s).type=n)},{default:l(()=>[r(o,{value:"copy"},{default:l(()=>[v("拷贝产品")]),_:1}),r(o,{value:"import"},{default:l(()=>[v("导入物模型")]),_:1})]),_:1},8,["value"])]),_:1},16)):x("",!0),a(s).type==="copy"?(y(),g(u,b({key:1,label:"选择产品"},a(k).copy),{default:l(()=>[r(m,{options:a(L),value:a(s).copy,"onUpdate:value":e[1]||(e[1]=n=>a(s).copy=n),"option-filter-prop":"label",showSearch:""},null,8,["options","value"])]),_:1},16)):x("",!0),I.type==="device"||a(s).type==="import"?(y(),g(u,b({key:2,label:"物模型类型"},a(k).metadata),{default:l(()=>[r(m,{value:a(s).metadata,"onUpdate:value":e[2]||(e[2]=n=>a(s).metadata=n)},{default:l(()=>[r(o,{value:"jetlinks"},{default:l(()=>[v("Jetlinks物模型")]),_:1}),r(o,{value:"alink"},{default:l(()=>[v("阿里云物模型TSL")]),_:1})]),_:1},8,["value"])]),_:1},16)):x("",!0),I.type==="device"||a(s).type==="import"?(y(),g(u,b({key:3,label:"导入类型"},a(k).metadataType),{default:l(()=>[r(m,{value:a(s).metadataType,"onUpdate:value":e[3]||(e[3]=n=>a(s).metadataType=n)},{default:l(()=>[r(o,{value:"file"},{default:l(()=>[v("文件上传")]),_:1}),r(o,{value:"script"},{default:l(()=>[v("脚本")]),_:1})]),_:1},8,["value"])]),_:1},16)):x("",!0),a(s).metadataType==="file"?(y(),g(u,b({key:4,label:"文件上传"},a(k).upload),{default:l(()=>[r(d,{value:a(s).upload,"onUpdate:value":e[5]||(e[5]=n=>a(s).upload=n)},{addonAfter:l(()=>[r(f,{"file-list":a(O),"onUpdate:file-list":e[4]||(e[4]=n=>C(O)?O.value=n:null),"before-upload":z,accept:".json","show-upload-list":!1,action:a(ve),onChange:Q,headers:{"X-Access-Token":a(_e)()}},{default:l(()=>[r(t,{type:"UploadOutlined",class:"upload-button"})]),_:1},8,["file-list","action","headers"])]),_:1},8,["value"])]),_:1},16)):x("",!0),(I.type==="device"||a(s).type==="import")&&a(s).metadataType==="script"?(y(),g(u,Z(b({key:5},a(k).import)),{label:l(()=>[r(X,null,{default:l(()=>[v(" 物模型 "),r(c,{title:"在线编辑器中编写物模型脚本"},{default:l(()=>[r(t,{type:"QuestionCircleOutlined",style:{color:"rgb(136, 136, 136)"}})]),_:1})]),_:1})]),default:l(()=>[r(Y,{modelValue:a(s).import,"onUpdate:modelValue":e[6]||(e[6]=n=>a(s).import=n),theme:"vs",style:{height:"300px"},lang:"json"},null,8,["modelValue"])]),_:1},16)):x("",!0)]),_:1},8,["modelValue"])]),_:1},8,["visible","confirm-loading"])}}});const lt=ge(Ie,[["__scopeId","data-v-19b42f1b"]]);export{lt as default};