import{d as ze,f as qe,r as i,X as Je,P as Ke,al as Qe,N as we,h as p,c as _,e as t,w as a,a as l,m as $,i as d,t as n,u as r,k as u,B as h,J as V,ae as U,F as w,T as de,n as Xe,Y as Ce,aZ as Ye,aa as Te,V as Ee,a3 as Ze,aB as Ge,at as We,au as el,av as ll,aw as al,Q as tl,a1 as sl,ap as ol,E as nl,a_ as ul,S as rl,p as il,g as pl}from"./index-729a8626.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{_ as dl,a as cl}from"./error_icon-2e0733d9.js";import{b as vl}from"./module-e4b139d3.js";import{c as _l,g as fl,e as gl,p as ml,u as xl,a as kl,b as ce}from"./upgrade-a5dd7bd8.js";import{T as bl,_ as yl}from"./dark-a8551606.js";import{_ as hl}from"./_plugin-vue_export-helper-c27b6911.js";const C=J=>(il("data-v-b4d92211"),J=J(),pl(),J),wl={class:"text-lg"},Cl={class:"font-bold px-[2px]"},Tl=C(()=>l("span",null,"升级到",-1)),El={class:"font-bold px-[2px]"},Bl=C(()=>l("span",null,"版本",-1)),Vl={class:"font-bold px-[2px]"},Ul=C(()=>l("span",null,"当前版本",-1)),Sl={class:"font-bold px-[2px]"},$l=C(()=>l("span",null,[d("如需升级到最新版可在"),l("a",{class:"text-primary",href:"https://www.niucloud.com",target:"_blank"},"niucloud-admin官网"),d("购买相关服务后再进行升级")],-1)),Il={class:"h-[400px]",style:{overflow:"auto"}},Dl={key:0,class:"flex flex-col"},Ml={key:0,class:"bg-[#fff] my-3"},Nl={class:"px-[20px] pt-[10px] text-[14px] el-table"},Fl={style:{height:"calc(300px)",overflow:"auto"}},jl={key:0},Ll={key:1},Al={key:0},Rl={key:1},Hl={class:"h-[370px] mt-[30px]"},Ol={class:"flex flex-col"},Pl={class:"bg-[#fff] my-3"},zl={class:"p-[20px] mt-[50px] mx-[10px] border-[1px] border-[#E6E6E6] rounded-[10px]"},ql={class:"flex justify-between items-center mt-[-9px]"},Jl={class:"text-[14px] text-[#374151] mb-[10px]"},Kl={key:0,class:"p-[20px] mt-[20px] mx-[10px] border-[1px] border-[#E6E6E6] rounded-[10px]"},Ql={class:"flex justify-between items-center mt-[-9px]"},Xl={class:"text-[14px] text-[#374151] mb-[10px]"},Yl={class:"text-[14px] text-[#9699B6]"},Zl={key:1},Gl={class:"mt-[10px]"},Wl=C(()=>l("img",{src:dl,alt:""},null,-1)),ea={key:0,class:"w-[750px]"},la=C(()=>l("span",{class:"text-error"},"警告:",-1)),aa=C(()=>l("span",{class:"text-black"},"升级过程中发生云编译错误",-1)),ta=C(()=>l("div",{class:"text-left mt-[10px] leading-8"},[l("div",{class:"font-bold"},"为了保证系统稳定,建议您做以下处理:"),l("div",null,[l("span",{class:"w-[6px] h-[6px] rounded-[6px] bg-black inline-block mr-[10px]"}),d("如果您是开发者,安装的框架或者插件二开过或者正在开发中,可能是因为您的本地代码不完整导致的云编译失败,需要自己调试并重新进行编译才算升级完成(云编译会把本地插件前端代码上传编译)。")]),l("div",null,[l("span",{class:"w-[6px] h-[6px] rounded-[6px] bg-black inline-block mr-[10px]"}),d("如果您没有二开过任何代码,可能是本地插件存在兼容性问题,请联系插件开发者或者官方客服解决。")]),l("div",null,[l("span",{class:"w-[6px] h-[6px] rounded-[6px] bg-black inline-block mr-[10px]"}),d("如果您的项目已经投入正式运营中,请立即回滚。")])],-1)),sa={class:"text-left mt-[10px]"},oa=C(()=>l("div",{class:"font-bold"},"编译信息错误",-1)),na={class:"mt-[10px] text-secondary overflow-hidden line-clamp-4"},ua={class:"mt-[20px]"},ra={key:1,class:"mt-[20px]"},ia={class:"mt-[20px] h-[370px]"},pa=C(()=>l("img",{src:cl,alt:""},null,-1)),da={class:"dialog-footer"},ca=["innerHTML"],va={class:"flex justify-end"},_a=["innerHTML"],fa={class:"flex justify-end"},ga=C(()=>l("div",{class:"flex items-center"},[l("span",null,"如需升级框架,请点击升级框架操作。")],-1)),ma={class:"dialog-footer"},xa=ze({__name:"index",emits:["complete","cloudbuild"],setup(J,{expose:Be,emit:Ve}){const Ue=qe(),Se=i(Date.now()),b=i(!1),c=i(null),F=i(!0),m=i(null),f=i("upgrade"),y=i(1),j=i(null),T=i(!1),I=i(null),D=i(!1);let le=[],ae=[];const K=i(!1),Q=i(30);let L=null;const M=i({is_need_backup:!0,is_need_cloudbuild:!0});i([{name:"备份源码",code:"backupCode"},{name:"备份数据库",code:"backupSql"}]);const X=i(!1),A=i(!1),$e=i(null),te=i(0);let B=null;const R=i(!1),se=i(""),N=()=>{fl().then(({data:s})=>{if(s){if(!c.value){if(c.value=s.upgrade_content,!s.upgrade_content||!Array.isArray(s.upgrade_content.content))return;let e=0,g=0;for(let x=0;x{te.value++},1e3)),m.value=s,s.log.forEach(e=>{le.includes(e)||(I.value.pushMessage({content:`${e}`}),le.push(e))}),s.error&&(s.error.forEach(e=>{ae.includes(e)||(I.value.pushMessage({content:e,class:"error"}),ae.push(e),se.value=e)}),B&&(clearInterval(B),B=null),X.value=!1),s.step=="restoreComplete"){P&&clearInterval(P),y.value=3,f.value="fail";return}if(s.step=="upgradeComplete"){s.cloud_build_error&&I.value.pushMessage({content:s.cloud_build_error,class:"error"}),y.value=3,f.value="complete",E.value=4,H&&H.close(),Ve("complete"),B&&(clearInterval(B),B=null),X.value=!1;return}E.value=2,f.value="upgrade",ne()}}).catch(s=>{console.log(s)})};N();const Ie=()=>{O.value=!1,me("niucloud-admin")},oe=i(!1),Y=()=>{f.value="upgrade",oe.value=!0,A.value=!0,R.value=!1,y.value=2},De=Je(()=>{const s=te.value,e=Math.floor(s/3600),g=Math.floor(s%3600/60),x=s%60;return[e>0?`${e}小时`:"",g>0?`${g}分钟`:"",`${x}秒`].filter(Boolean).join("")}),ne=()=>{gl().then(()=>{N()}).catch(s=>{s.message.indexOf("队列")!=-1?(Q.value=30,L=setInterval(()=>{Q.value--,Q.value==0&&z("retry")},1e3),K.value=!0):Ce({message:s.message,type:"error"})})};let H=null;const Me=()=>{H=Ye.success({title:u("warning"),dangerouslyUseHTMLString:!0,message:Te("div",{},[u("upgrade.upgradingTips"),Te("span",{class:"text-primary cursor-pointer",onClick:Ne},[u("upgrade.clickView")])]),duration:0,showClose:!1})},Ne=()=>{b.value=!0,N(),y.value=2,E.value=3,f.value="upgrade",H&&H.close()},ue=i("");Ke().then(s=>{ue.value=s.data.version.version});const re=i("");vl().then(({data:s})=>{re.value=s.last_version});const ie=i(!1),Z=i(!1),G=i(!1),ve=async()=>{var e,g;if(Z.value)return;Z.value=!0,G.value=!0;const s=((e=c.value)==null?void 0:e.upgrade_apps.join(","))!="niucloud-admin"?(g=c.value)==null?void 0:g.upgrade_apps.join(","):"";await ml(s).then(async({data:x})=>{j.value=x,ie.value=x.is_pass,f.value="upgrade",m.value?E.value:E.value=0,D.value=!1,b.value=!0,Z.value=!1,G.value=!1}).catch(()=>{Z.value=!1,G.value=!1})},Fe=()=>{var e,g;if(!ie.value||T.value)return;T.value=!0;const s=((e=c.value)==null?void 0:e.upgrade_apps.join(","))!="niucloud-admin"?(g=c.value)==null?void 0:g.upgrade_apps.join(","):"";xl(s,M.value).then(()=>{N()}).catch(()=>{T.value=!1})},O=i(!1),_e=i(""),fe=i(""),ge=i("app"),me=(s="",e=null,g={})=>{if(R.value=!1,m.value)Ce({message:"已有正在执行中的升级任务",type:"error"}),b.value=!0,y.value=2,E.value=3,f.value="upgrade",e&&e();else{if(s&&s.indexOf("niucloud-admin")==-1&&ue.value!=re.value){_e.value=g.install_info.version,fe.value=g.version,ge.value=g.type,O.value=!0,e&&e();return}if(T.value)return;T.value=!0,kl(s).then(({data:x})=>{T.value=!1,c.value=x;let q=0,k=0;for(let S=0;S{T.value=!1,e&&e()})}};let P=null;const xe=new bl,je=(s,e,g,x,q)=>{if(e=="开始升级"){g(xe);const k=Le(["/","——","\\","|"]);P=setInterval(()=>{xe.flush("> "+k.next().value)},150)}},Le=s=>{let e=0;return{next(){return e+1==s.length&&(e=0),{value:s[e++]}}}},Ae=s=>{f.value=="upgrade"&&m.value&&["upgradeComplete","restoreComplete"].includes(m.value.step)===!1&&!oe.value?Ze.confirm(u("upgrade.showDialogCloseTips"),u("warning"),{confirmButtonText:u("confirm"),cancelButtonText:u("cancel"),type:"warning"}).then(()=>{s()}):s()};Qe(()=>b.value,()=>{b.value||Re()});const Re=()=>{f.value="upgrade",T.value=!1,m.value=null,oe.value=!1,R.value=!1,se.value="",A.value=!1,le=[],ae=[],E.value=0,P&&clearInterval(P),L&&clearInterval(L),M.value={is_need_backup:!0,is_need_cloudbuild:!0},y.value=1,_l().then(()=>{})},z=s=>{switch(K.value=!1,s){case"local":ce(s).then(()=>{N()});break;case"retry":ne(),L&&clearInterval(L);break;case"rollback":ce(s).then(()=>{N()});break;case"cloud_build_error_rollback":ce(s).then(()=>{Y(),ne()});break}},He=(s=!1)=>{s&&Ee.set({key:"upgradeTipsLock",data:s}),D.value=!1,!s&&(b.value=!0)};i(0);const E=i(0),Oe=()=>{const s=Ue.resolve({path:"/tools/backup_records"});window.open(s.href,"_blank")};return Be({open:me,loading:T}),(s,e)=>{const g=Ge,x=We,q=el,k=ll,S=al,ke=we("Select"),W=tl,be=we("CloseBold"),pe=sl,ye=ol,v=nl,he=ul,ee=rl;return p(),_(w,null,[t(ee,{modelValue:b.value,"onUpdate:modelValue":e[14]||(e[14]=o=>b.value=o),title:r(u)("upgrade.title"),width:"850px","close-on-click-modal":!1,"close-on-press-escape":!1,"before-close":Ae},{footer:a(()=>[l("div",da,[y.value==1&&c.value.content.length&&F.value?(p(),$(v,{key:0,onClick:e[9]||(e[9]=o=>y.value=2),type:"primary"},{default:a(()=>[d(n(r(u)("upgrade.upgradeButton")),1)]),_:1})):h("",!0),V(t(v,{type:"primary",loading:X.value,class:"!w-[140px]"},{default:a(()=>[d("已用时 "+n(r(De)),1)]),_:1},8,["loading"]),[[U,y.value==2&&A.value&&m.value&&!R.value]]),y.value==2&&f.value!="complete"?(p(),_(w,{key:1},[f.value=="upgrade"&&!m.value?(p(),$(v,{key:0,type:"primary",disabled:!ie.value,onClick:e[10]||(e[10]=()=>{f.value="backup",E.value=1})},{default:a(()=>[d(n(r(u)("nextStep")),1)]),_:1},8,["disabled"])):h("",!0),f.value=="backup"?(p(),$(v,{key:1,onClick:e[11]||(e[11]=()=>{f.value="upgrade",E.value=1})},{default:a(()=>[d(n(r(u)("prev")),1)]),_:1})):h("",!0),f.value=="backup"?(p(),$(v,{key:2,type:"primary",loading:T.value,onClick:e[12]||(e[12]=()=>{Fe()})},{default:a(()=>[d(n(r(u)("nextStep")),1)]),_:1},8,["loading"])):h("",!0),f.value=="complete"?(p(),$(v,{key:3,onClick:e[13]||(e[13]=o=>b.value=!1)},{default:a(()=>[d(n(r(u)("complete")),1)]),_:1})):h("",!0)],64)):h("",!0)])]),default:a(()=>[c.value?(p(),_(w,{key:0},[y.value==1?(p(!0),_(w,{key:0},de(c.value.content,(o,Pe)=>(p(),_(w,null,[l("div",wl,[o.upgrade_version?(p(),_(w,{key:0},[l("span",null,"【"+n(o.app.app_name)+"】本次升级将从",1),l("span",Cl,n(o.version),1),Tl,l("span",El,n(o.upgrade_version),1),Bl],64)):(p(),_(w,{key:1},[c.value.content.length>1?(p(),_(w,{key:0},[l("span",null,"【"+n(o.app.app_name)+"】当前版本",1),l("span",Vl,n(o.version),1)],64)):(p(),_(w,{key:1},[Ul,l("span",Sl,n(o.version),1)],64))],64))]),o.upgrade_version!=o.last_version?(p(),_("div",{key:0,class:Xe(["mt-[10px]",{"mb-[10px]":Pe+1[l("span",null,"当前最新版本为"+n(o.last_version)+",您的服务"+n(o.expire_time?`已于${o.expire_time}到期`:"长期有效")+"。",1),$l]),_:2},1024)],2)):h("",!0)],64))),256)):h("",!0),V(l("div",null,[t(q,{active:E.value,"align-center":"",class:"number-of-steps","process-status":"process"},{default:a(()=>[t(x,{title:r(u)("testDirectoryPermissions")},null,8,["title"]),t(x,{title:r(u)("upgrade.option")},null,8,["title"]),t(x,{title:r(u)("startUpgrade")},null,8,["title"]),t(x,{title:r(u)("upgradeEnd")},null,8,["title"])]),_:1},8,["active"]),l("div",Il,[V(l("div",null,[j.value&&!m.value?(p(),_("div",Dl,[t(pe,null,{default:a(()=>[j.value.dir?(p(),_("div",Ml,[l("div",Nl,[t(S,{class:"py-[10px] items table-head-bg pl-[15px] mb-[10px]"},{default:a(()=>[t(k,{span:18},{default:a(()=>[l("span",null,n(r(u)("upgrade.path")),1)]),_:1}),t(k,{span:3},{default:a(()=>[l("span",null,n(r(u)("upgrade.demand")),1)]),_:1}),t(k,{span:3},{default:a(()=>[l("span",null,n(r(u)("status")),1)]),_:1})]),_:1}),l("div",Fl,[(p(!0),_(w,null,de(j.value.dir.is_readable,o=>(p(),$(S,{class:"pb-[10px] items pl-[15px]"},{default:a(()=>[t(k,{span:18},{default:a(()=>[l("span",null,n(o.dir),1)]),_:2},1024),t(k,{span:3},{default:a(()=>[l("span",null,n(r(u)("upgrade.readable")),1)]),_:1}),t(k,{span:3},{default:a(()=>[o.status?(p(),_("span",jl,[t(W,{color:"green"},{default:a(()=>[t(ke)]),_:1})])):(p(),_("span",Ll,[t(W,{color:"red"},{default:a(()=>[t(be)]),_:1})]))]),_:2},1024)]),_:2},1024))),256)),(p(!0),_(w,null,de(j.value.dir.is_write,o=>(p(),$(S,{class:"pb-[10px] items pl-[15px]"},{default:a(()=>[t(k,{span:18},{default:a(()=>[l("span",null,n(o.dir),1)]),_:2},1024),t(k,{span:3},{default:a(()=>[l("span",null,n(r(u)("upgrade.write")),1)]),_:1}),t(k,{span:3},{default:a(()=>[o.status?(p(),_("span",Al,[t(W,{color:"green"},{default:a(()=>[t(ke)]),_:1})])):(p(),_("span",Rl,[t(W,{color:"red"},{default:a(()=>[t(be)]),_:1})]))]),_:2},1024)]),_:2},1024))),256))])])])):h("",!0)]),_:1})])):h("",!0),V(l("div",Hl,[t(r(yl),{ref_key:"terminalRef",ref:I,name:`upgrade-${Se.value}`,context:m.value?m.value.upgrade.app_key:"","init-log":null,"show-header":!1,"show-log-time":!0,onExecCmd:je},null,8,["name","context"])],512),[[U,A.value&&m.value&&!R.value]])],512),[[U,f.value=="upgrade"]]),V(l("div",Ol,[t(pe,null,{default:a(()=>[l("div",Pl,[l("div",zl,[l("div",ql,[t(ye,{modelValue:M.value.is_need_cloudbuild,"onUpdate:modelValue":e[0]||(e[0]=o=>M.value.is_need_cloudbuild=o),label:r(u)("upgrade.isNeedCloudbuild"),"true-value":!0,"false-value":!1,size:"large"},null,8,["modelValue","label"])]),l("div",Jl,n(r(u)("upgrade.cloudbuildTips")),1)]),c.value.last_backup?(p(),_("div",Kl,[l("div",Ql,[t(ye,{modelValue:M.value.is_need_backup,"onUpdate:modelValue":e[1]||(e[1]=o=>M.value.is_need_backup=o),label:r(u)("upgrade.isNeedBackup"),"true-value":!0,"false-value":!1,size:"large"},null,8,["modelValue","label"]),t(v,{link:"",type:"primary",class:"!text-[#9699B6]",onClick:Oe},{default:a(()=>[d(n(r(u)("upgrade.isNeedBackupBtn")),1)]),_:1})]),l("div",Xl,n(r(u)("upgrade.isNeedBackupTips")),1),l("div",Yl,n(r(u)("上次备份时间:"))+n(c.value.last_backup.complete_time),1)])):h("",!0)])]),_:1})],512),[[U,f.value=="backup"]])])],512),[[U,y.value==2]]),y.value==3?(p(),_("div",Zl,[V(l("div",Gl,[t(he,{icon:"success",title:r(u)("upgrade.upgradeSuccess")},{icon:a(()=>[Wl]),extra:a(()=>[V(l("div",{class:"text-[16px] text-[#4F516D] mt-[-5px]"},n(r(u)("upgrade.upgradeCompleteTips")),513),[[U,m.value&&m.value.executed&&!m.value.executed.includes("cloudBuild")]]),m.value.cloud_build_error?(p(),_("div",ea,[t(g,{class:"!w-[750px] border-warning !border-[1px] !rounded-[0px] border-solid",type:"warning",closable:!1},{title:a(()=>[la,aa]),_:1}),ta,l("div",sa,[oa,l("div",na,n(m.value.cloud_build_error),1)]),l("div",ua,[t(v,{onClick:e[2]||(e[2]=o=>Y()),class:"!w-[90px]"},{default:a(()=>[d("更多信息")]),_:1}),t(v,{onClick:e[3]||(e[3]=o=>b.value=!1),type:"primary",plain:"",class:"!w-[90px]"},{default:a(()=>[d("我已知晓")]),_:1}),t(v,{onClick:e[4]||(e[4]=o=>z("cloud_build_error_rollback")),type:"primary",class:"!w-[90px]"},{default:a(()=>[d("回滚")]),_:1})])])):(p(),_("div",ra,[t(v,{onClick:e[5]||(e[5]=o=>Y()),class:"!w-[90px]"},{default:a(()=>[d("返回")]),_:1}),t(v,{onClick:e[6]||(e[6]=o=>b.value=!1),type:"primary",class:"!w-[90px]"},{default:a(()=>[d("完成")]),_:1})]))]),_:1},8,["title"])],512),[[U,f.value=="complete"]]),V(l("div",ia,[t(he,{icon:"error",title:r(u)("升级失败")},{icon:a(()=>[pa]),extra:a(()=>[t(pe,{class:"max-h-[120px] !overflow-auto text-[15px] text-[#4F516D] mb-[15px] mt-[-15px]"},{default:a(()=>[d(n(se.value),1)]),_:1}),t(v,{onClick:e[7]||(e[7]=o=>Y()),class:"!w-[90px]"},{default:a(()=>[d("错误信息")]),_:1}),t(v,{onClick:e[8]||(e[8]=o=>b.value=!1),type:"primary",class:"!w-[90px]"},{default:a(()=>[d("完成")]),_:1})]),_:1},8,["title"])],512),[[U,f.value=="fail"]])])):h("",!0)],64)):h("",!0)]),_:1},8,["modelValue","title"]),t(ee,{modelValue:D.value,"onUpdate:modelValue":e[18]||(e[18]=o=>D.value=o),title:r(u)("warning"),width:"500px",draggable:""},{footer:a(()=>[l("div",va,[t(v,{onClick:e[15]||(e[15]=o=>He(!0)),type:"primary"},{default:a(()=>[d(n(r(u)("upgrade.knownToKnow")),1)]),_:1}),t(v,{onClick:e[16]||(e[16]=o=>ve()),type:"primary",plain:"",loading:G.value},{default:a(()=>[d(n(r(u)("upgrade.upgradeButton")),1)]),_:1},8,["loading"]),t(v,{onClick:e[17]||(e[17]=o=>D.value=!1)},{default:a(()=>[d(n(r(u)("cancel")),1)]),_:1})])]),default:a(()=>[l("span",{innerHTML:r(u)("upgrade.upgradeTips")},null,8,ca)]),_:1},8,["modelValue","title"]),t(ee,{modelValue:K.value,"onUpdate:modelValue":e[22]||(e[22]=o=>K.value=o),title:r(u)("warning"),width:"500px",draggable:"","show-close":!1},{footer:a(()=>[l("div",fa,[t(v,{onClick:e[19]||(e[19]=o=>z("local")),type:"primary"},{default:a(()=>[d(n(r(u)("upgrade.localBuild")),1)]),_:1}),t(v,{onClick:e[20]||(e[20]=o=>z("retry")),type:"primary"},{default:a(()=>[d(n(r(u)("upgrade.cloudBuild"))+"("+n(Q.value)+"S)",1)]),_:1}),t(v,{onClick:e[21]||(e[21]=o=>z("rollback")),type:"primary"},{default:a(()=>[d(n(r(u)("upgrade.rollback")),1)]),_:1})])]),default:a(()=>[l("span",{innerHTML:r(u)("upgrade.cloudBuildErrorTips")},null,8,_a)]),_:1},8,["modelValue","title"]),t(ee,{modelValue:O.value,"onUpdate:modelValue":e[24]||(e[24]=o=>O.value=o),title:"升级提示",width:"500","before-close":s.handleClose},{footer:a(()=>[l("div",ma,[t(v,{type:"primary",onClick:Ie},{default:a(()=>[d("升级框架")]),_:1}),t(v,{onClick:e[23]||(e[23]=o=>O.value=!1)},{default:a(()=>[d("取消")]),_:1})])]),default:a(()=>[l("p",null,"您当前使用的"+n(ge.value=="app"?"应用":"插件")+"版本是 "+n(_e.value)+",若想升级到 "+n(fe.value)+" 版本,需要先把框架从 v"+n(ue.value)+" 升级到 v"+n(re.value)+" 。",1),ga]),_:1},8,["modelValue","before-close"])],64)}}});const Ma=hl(xa,[["__scopeId","data-v-b4d92211"]]);export{Ma as default};