import{aH as q,O as J,S as h,k3 as L,k4 as M,hs as N,f as z,k5 as A,_ as H}from"./utils-lib.js?v=1775629002";import{c as P,a7 as U,r as j,g as G,aE as K,e as f,v as Q,I as X,J as Y,z as k,x as Z,y as $}from"./base-lib.js?v=1775629002";import{b as w,d as _,n as y,g as b,h as F}from"./form-item.js?v=1775629002";import{f as R}from"./validator.js?v=1775629002";import{B as x}from"./index121.js?v=1775629002";import"./__commonjsHelpers__.js?v=1775629002";import"./index111.js?v=1775629002";import"./column.js?v=1775629002";import"./index108.js?v=1775629002";import"./ace.js?v=1775629002";const ee={class:"flex flex-col lib-box p-2rem"},ae=P({__name:"add-compose-template",props:{compData:{default:()=>({})}},emits:["close","complate"],setup(S,{expose:C,emit:T}){const r=z(),B=U(),{refs:{isRefreshTemplateList:D}}=q(),n=S,i=T,m=j(!1),E=async()=>{const e={name:"",remark:"",data:"",env:""};e.name=n.compData.row.name,e.remark=n.compData.row.remark;const a=await h({request:A({data:JSON.stringify({template_id:n.compData.row.id})}),loading:m});return a.status?(e.data=a.data.compose_data,e.env=a.data.env_data):r.error(a.msg),e},c={mode:"ace/mode/nginx",theme:B.value?"ace/theme/clouds_midnight":"ace/theme/chrome",wrap:!0,showInvisibles:!1,showFoldWidgets:!1,useSoftTabs:!0,tabSize:2,showPrintMargin:!1,readOnly:!1,fontSize:"12px"},{BtForm:O,submit:W}=J({data:async()=>{var e;return(e=n.compData.row)!=null&&e.id?E():{name:"",remark:"",data:"",env:"",path:"",envpath:""}},options:e=>G(()=>[w("创建模板","name",{attrs:{class:"!w-[35rem]",placeholder:"请输入模板名"},rules:[{required:!0,message:"请输入模板名",trigger:"blur"}]}),w("备注","remark",{attrs:{class:"!w-[35rem]",placeholder:"备注"}}),_([y(" ","path",{attrs:{class:"!w-[30rem]",placeholder:"请选择compose文件"}},()=>d(e,"compose")),b("本地上传",{attrs:{class:"!ml-[1rem]",onClick:()=>{u(e,"compose")}}})]),F("compose内容",()=>K(x,{id:"templateEditor",class:"max-h-[30rem] h-[30rem] !w-[43rem]",modelValue:e.value.data,"onUpdate:modelValue":a=>e.value.data=a,editorOption:c}),"data",{rules:[{required:!0,message:"请输入内容",trigger:"blur"}]}),_([y(" ","envpath",{attrs:{class:"!w-[30rem]",placeholder:"请选择.env文件"}},()=>d(e,"env")),b("本地上传",{attrs:{class:"!ml-[1rem]",onClick:()=>{u(e,"env")}}})]),F(".env内容",()=>f(x,{key:"editer2",class:"w-full h-[10rem]",modelValue:e.value.env,"onUpdate:modelValue":a=>e.value.env=a,editorOption:c},null),"data")]),submit:async(e,a,t)=>{var o;await a(),h({request:(o=n.compData.row)!=null&&o.id?L({data:JSON.stringify({id:n.compData.row.id,name:e.value.name,remark:e.value.remark,data:e.value.data,env:e.value.env})}):M({data:JSON.stringify({name:e.value.name,remark:e.value.remark,data:e.value.data,env:e.value.env})}),loading:"提交中...",message:!0,success:s=>{s.status&&(i("complate",s),D.value=!0,i("close"))}})}}),d=(e,a)=>{R({type:"file",change:t=>{if(t){if(a=="compose"&&(e.value.path=t),a=="env"&&(e.value.envpath=t),!t.endsWith(".yml")&&!t.endsWith(".yaml")&&a=="compose"){r.error("请选择compose文件");return}if(!t.endsWith(".env")&&a=="env"){r.error("请选择.env文件");return}I(t,e,a)}}})},I=async(e,a,t)=>{try{const{data:o}=await N({path:e});typeof o=="object"&&(t=="compose"&&(a.value.data=o.data||""),t=="env"&&(a.value.env=o.data||""))}catch(o){}},u=(e,a)=>{const t=document.createElement("input");t.type="file",t.style.display="none",a==="compose"&&(t.accept=".yml,.yaml"),t.addEventListener("change",o=>{var p;const s=(p=o.target.files)==null?void 0:p[0];if(!s)return;if(a==="compose"&&!s.name.endsWith(".yml")&&!s.name.endsWith(".yaml")){r.error("请选择compose文件");return}if(a==="env"&&!s.name.endsWith("env")){r.error("请选择env文件");return}const l=new FileReader;l.onload=V=>{var g;const v=(g=V.target)==null?void 0:g.result;a==="compose"?(e.value.path=s.name,e.value.data=v):a==="env"&&(e.value.envpath=s.name,e.value.env=v)},l.onerror=()=>{r.error("读取文件内容失败")},l.readAsText(s)}),document.body.appendChild(t),t.click(),setTimeout(()=>{document.body.removeChild(t)},0)};return Q(async()=>{}),C({onConfirm:W}),(e,a)=>{const t=X("bt-loading");return Y((Z(),$("div",ee,[f(k(O))])),[[t,k(m)],[t,"正在获取模板消息,请稍候...","title"]])}}}),ue=H(ae,[["__scopeId","data-v-d7a80191"]]);export{ue as default};