npmapps 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +3 -1
  2. package/app/nginxManagement/backend/command_records.json +46 -0
  3. package/app/nginxManagement/backend/nginx-1.28.0/conf/api.conf +2 -1
  4. package/app/nginxManagement/backend/nginx-1.28.0/conf/nginx.conf +1 -0
  5. package/app/nginxManagement/backend/nginx-1.28.0/logs/error.log +18 -62
  6. package/app/nginxManagement/backend/nm.exe +0 -0
  7. package/app/nginxManagement/frontend/dist/assets/index-AG5xSNXD.css +1 -0
  8. package/app/nginxManagement/frontend/dist/assets/{index-_jG9n0U8.js → index-B2VcD4B4.js} +1 -1
  9. package/app/nginxManagement/frontend/dist/assets/index-BW5QC1wD.js +58 -0
  10. package/app/nginxManagement/frontend/dist/assets/index-BXCmlf1X.js +1 -0
  11. package/app/nginxManagement/frontend/dist/assets/index-BqD_g85X.js +1 -0
  12. package/app/nginxManagement/frontend/dist/assets/index-CZs0cWnm.js +1 -0
  13. package/app/nginxManagement/frontend/dist/assets/index-CckWg4BZ.js +1 -0
  14. package/app/nginxManagement/frontend/dist/assets/index-CfQ0CtE1.js +21 -0
  15. package/app/nginxManagement/frontend/dist/assets/index-CnlsVqSb.js +1 -0
  16. package/app/nginxManagement/frontend/dist/assets/index-D80vACWt.js +58 -0
  17. package/app/nginxManagement/frontend/dist/assets/index-DCkNgPTg.css +1 -0
  18. package/app/nginxManagement/frontend/dist/assets/index-DDbr5qwm.css +1 -0
  19. package/app/nginxManagement/frontend/dist/assets/index-DIf3GFFr.js +1 -0
  20. package/app/nginxManagement/frontend/dist/assets/index-DIkZrekD.js +21 -0
  21. package/app/nginxManagement/frontend/dist/assets/index-DJ10N3ef.js +21 -0
  22. package/app/nginxManagement/frontend/dist/assets/index-DZqALzxJ.css +1 -0
  23. package/app/nginxManagement/frontend/dist/assets/index-DijMOVEo.js +1 -0
  24. package/app/nginxManagement/frontend/dist/assets/index-Dj94f0_e.js +58 -0
  25. package/app/nginxManagement/frontend/dist/assets/index-DxsiA9NS.css +1 -0
  26. package/app/nginxManagement/frontend/dist/assets/index-MbI1qjjU.js +21 -0
  27. package/app/nginxManagement/frontend/dist/assets/index-PO5K0hSX.js +58 -0
  28. package/app/nginxManagement/frontend/dist/assets/request-DK54gOQ7.js +6 -0
  29. package/app/nginxManagement/frontend/dist/index.html +2 -2
  30. package/package.json +1 -1
  31. package/app/nginxManagement/backend/nginx-1.28.0/logs/nginx.pid +0 -1
  32. package/app/nginxManagement/frontend/dist/assets/index-Bx3YfIlI.css +0 -1
  33. package/app/nginxManagement/frontend/dist/assets/index-CR2wJXtr.js +0 -58
  34. package/app/nginxManagement/frontend/dist/assets/index-eLDUQSKK.js +0 -26
@@ -0,0 +1 @@
1
+ .command-page[data-v-19e2b22e]{max-width:1200px;margin:0 auto}.command-card[data-v-19e2b22e],.records-card[data-v-19e2b22e]{margin-bottom:20px}.card-header[data-v-19e2b22e]{display:flex;justify-content:space-between;align-items:center}.quick-commands[data-v-19e2b22e]{margin-top:20px;padding-top:20px;border-top:1px solid #ebeef5}.quick-commands h4[data-v-19e2b22e]{margin:0 0 10px;color:#606266;font-size:14px}[data-v-19e2b22e] .el-textarea__inner{font-family:Courier New,monospace;font-size:12px}
@@ -0,0 +1,21 @@
1
+ import{r as w}from"./request-DK54gOQ7.js";import{_ as me,r as m,e as ye,f as _e,g as fe,h as ge,c as z,o as P,a as l,w as t,b as n,i as S,j as T,d as _,F as ve,k as xe,l as u,t as j}from"./index-PO5K0hSX.js";const he=async()=>{try{return await w.get("/api/proxy/config")}catch(r){throw r}},Ve=async r=>{try{return await w.post("/api/proxy/config",r)}catch(v){throw v}},we=async()=>{try{return await w.post("/api/proxy/test-config")}catch(r){throw r}},be=async()=>{try{return await w.post("/api/proxy/reload-config")}catch(r){throw r}},Ce=async()=>{try{return await w.post("/api/proxy/start-nginx")}catch(r){throw r}},Ae=async()=>{try{return await w.post("/api/proxy/stop-nginx")}catch(r){throw r}},ke=async(r,v="access")=>{try{return await w.get("/api/proxy/log",{params:{port:r,type:v}})}catch(b){throw b}},Pe={class:"proxy-container"},$e={class:"card-header"},Ue={class:"header-actions"},Ie={class:"config-content"},Re={class:"proxy-addresses"},Ne={style:{"margin-top":"10px"}},ze={class:"config-preview"},Fe={style:{"margin-bottom":"10px"}},Le={style:{"margin-left":"20px",color:"#888"}},De={__name:"index",setup(r){const v=m(!1),b=m(!1),$=m(!1),U=m(!1),I=m(!1),R=m(!1),s=m(""),d=m(""),c=ye({configPath:"/etc/nginx/conf.d/api.conf",proxyRules:[{title:"端口80的API代理",port:"80",location:"/api/",proxyAddresses:[{url:"http://localhost:8080",comment:"开发环境",isActive:!0},{url:"http://127.0.0.1:8081",comment:"测试环境",isActive:!1}],activeIndex:0,description:"API接口代理",enabled:!0}]}),F=_e(()=>{let e=`# API代理配置文件
2
+ `;return e+=`# 自动生成于 ${new Date().toLocaleString()}
3
+
4
+ `,c.proxyRules.forEach(o=>{o.enabled&&o.proxyAddresses.length>0&&(o.title&&(e+=`# ${o.title}
5
+ `),e+=`server {
6
+ listen ${o.port||"80"};
7
+ server_name localhost;
8
+
9
+ location ${o.location} {
10
+ `,o.proxyAddresses.forEach((y,f)=>{f===o.activeIndex?y.comment?e+=` proxy_pass ${y.url}; # ${y.comment}
11
+ `:e+=` proxy_pass ${y.url};
12
+ `:y.comment?e+=` # proxy_pass ${y.url}; # ${y.comment}
13
+ `:e+=` # proxy_pass ${y.url};
14
+ `}),e+=` proxy_set_header Host $host;
15
+ `,e+=` proxy_set_header X-Real-IP $remote_addr;
16
+ `,e+=` proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
17
+ `,e+=` proxy_set_header X-Forwarded-Proto $scheme;
18
+ `,e+=` }
19
+ }
20
+
21
+ `)}),e}),L=async()=>{v.value=!0,s.value="",d.value="";try{const e=await he();e.success?(c.configPath=e.data.configPath||c.configPath,c.proxyRules=e.data.proxyRules||c.proxyRules,d.value="配置加载成功"):s.value=e.message||"加载配置失败"}catch(e){s.value="加载配置时发生错误: "+e.message}finally{v.value=!1}},q=async()=>{b.value=!0,s.value="",d.value="",c.proxyRules.forEach(e=>{e.proxyAddresses&&Array.isArray(e.proxyAddresses)&&e.proxyAddresses.forEach(o=>{o.comment&&(o.comment=o.comment.replace(/[\#;]/g,"").trim())})});try{const e=await Ve({configPath:c.configPath,proxyRules:c.proxyRules});e.success?d.value="配置保存成功":s.value=e.message||"保存配置失败"}catch(e){s.value="保存配置时发生错误: "+e.message}finally{b.value=!1}},H=()=>{c.proxyRules.push({title:"新端口代理",port:"80",location:"/api/",proxyAddresses:[{url:"http://localhost:8080",comment:"新地址",isActive:!0}],activeIndex:0,description:"新代理规则",enabled:!0})},M=e=>{c.proxyRules.splice(e,1)},G=(e,o)=>{e.activeIndex=o},J=e=>{e.proxyAddresses.push({url:"http://localhost:8080",comment:"新地址",isActive:!1})},K=(e,o)=>{e.proxyAddresses.length>1&&(e.proxyAddresses.splice(o,1),e.activeIndex>=e.proxyAddresses.length&&(e.activeIndex=0))},O=async()=>{$.value=!0,s.value="",d.value="";try{const e=await we();e.success?d.value="配置测试成功: "+e.message:s.value=e.message||"配置测试失败"}catch(e){s.value="测试配置时发生错误: "+e.message}finally{$.value=!1}},Q=async()=>{U.value=!0,s.value="",d.value="";try{const e=await be();e.success?d.value="配置重载成功":s.value=e.message||"重载配置失败"}catch(e){s.value="重载配置时发生错误: "+e.message}finally{U.value=!1}},W=async()=>{I.value=!0,s.value="",d.value="";try{const e=await Ce();e.success?d.value=e.message||"nginx启动成功":s.value=e.message||"启动nginx失败"}catch(e){s.value="启动nginx时发生错误: "+e.message}finally{I.value=!1}},Y=async()=>{R.value=!0,s.value="",d.value="";try{const e=await Ae();e.success?d.value=e.message||"nginx停止成功":s.value=e.message||"停止nginx失败"}catch(e){s.value="停止nginx时发生错误: "+e.message}finally{R.value=!1}};fe(()=>{L()});const C=m(!1),h=m(""),N=m(""),A=m("access"),Z=async(e,o="access")=>{C.value=!0,N.value=e.port,A.value=o,await D()},D=async()=>{h.value="加载中...";try{const e=await ke(N.value,A.value);e.success?h.value=e.data||"(无内容)":h.value=e.message||"日志读取失败"}catch(e){h.value="日志读取失败: "+e.message}},ee=()=>{C.value=!1,h.value=""};return ge(A,async()=>{C.value&&await D()}),(e,o)=>{const y=n("refresh"),f=n("el-icon"),p=n("el-button"),oe=n("warning"),le=n("check"),te=n("reload"),ae=n("video-play"),se=n("video-pause"),E=n("el-alert"),g=n("el-input"),B=n("el-form-item"),V=n("el-table-column"),ne=n("el-switch"),re=n("el-table"),ie=n("plus"),de=n("el-form"),ce=n("el-card"),X=n("el-radio-button"),ue=n("el-radio-group"),pe=n("el-dialog");return P(),z("div",Pe,[l(ce,null,{header:t(()=>[_("div",$e,[o[11]||(o[11]=_("span",null,"接口代理配置",-1)),_("div",Ue,[l(p,{type:"primary",onClick:L,loading:v.value},{default:t(()=>[l(f,null,{default:t(()=>[l(y)]),_:1}),o[5]||(o[5]=u(" 刷新配置 "))]),_:1,__:[5]},8,["loading"]),l(p,{type:"warning",onClick:O,loading:$.value},{default:t(()=>[l(f,null,{default:t(()=>[l(oe)]),_:1}),o[6]||(o[6]=u(" 测试配置 "))]),_:1,__:[6]},8,["loading"]),l(p,{type:"success",onClick:q,loading:b.value},{default:t(()=>[l(f,null,{default:t(()=>[l(le)]),_:1}),o[7]||(o[7]=u(" 保存配置 "))]),_:1,__:[7]},8,["loading"]),l(p,{type:"info",onClick:Q,loading:U.value},{default:t(()=>[l(f,null,{default:t(()=>[l(te)]),_:1}),o[8]||(o[8]=u(" 重载配置 "))]),_:1,__:[8]},8,["loading"]),l(p,{type:"success",onClick:W,loading:I.value},{default:t(()=>[l(f,null,{default:t(()=>[l(ae)]),_:1}),o[9]||(o[9]=u(" 启动Nginx "))]),_:1,__:[9]},8,["loading"]),l(p,{type:"danger",onClick:Y,loading:R.value},{default:t(()=>[l(f,null,{default:t(()=>[l(se)]),_:1}),o[10]||(o[10]=u(" 停止Nginx "))]),_:1,__:[10]},8,["loading"])])])]),default:t(()=>[s.value?(P(),S(E,{key:0,title:s.value,type:"error","show-icon":"",closable:"",style:{"margin-bottom":"20px"}},null,8,["title"])):T("",!0),d.value?(P(),S(E,{key:1,title:d.value,type:"success","show-icon":"",closable:"",style:{"margin-bottom":"20px"}},null,8,["title"])):T("",!0),_("div",Ie,[l(de,{model:c,"label-width":"120px","label-position":"top"},{default:t(()=>[l(B,{label:"配置文件路径"},{default:t(()=>[l(g,{modelValue:c.configPath,"onUpdate:modelValue":o[0]||(o[0]=a=>c.configPath=a),placeholder:"nginx配置文件路径"},null,8,["modelValue"])]),_:1}),l(B,{label:"代理配置"},{default:t(()=>[l(re,{data:c.proxyRules,border:"",style:{width:"100%"}},{default:t(()=>[l(V,{prop:"title",label:"标题",width:"180"},{default:t(({row:a})=>[l(g,{modelValue:a.title,"onUpdate:modelValue":i=>a.title=i,placeholder:"如:端口80的API代理"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(V,{prop:"port",label:"端口号",width:"140"},{default:t(({row:a})=>[l(g,{modelValue:a.port,"onUpdate:modelValue":i=>a.port=i,placeholder:"140"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(V,{prop:"location",label:"路径",width:"140"},{default:t(({row:a})=>[l(g,{modelValue:a.location,"onUpdate:modelValue":i=>a.location=i,placeholder:"/api/"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(V,{prop:"proxyAddresses",label:"代理地址"},{default:t(({row:a})=>[_("div",Re,[(P(!0),z(ve,null,xe(a.proxyAddresses,(i,x)=>(P(),z("div",{key:x,class:"proxy-address-item"},[l(g,{modelValue:i.url,"onUpdate:modelValue":k=>i.url=k,placeholder:`代理地址 ${x+1}`,size:"small",style:{width:"160px"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),l(g,{modelValue:i.comment,"onUpdate:modelValue":k=>i.comment=k,placeholder:"备注",size:"small",style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),l(p,{size:"small",type:a.activeIndex===x?"primary":"default",onClick:k=>G(a,x)},{default:t(()=>[u(j(a.activeIndex===x?"当前":"切换"),1)]),_:2},1032,["type","onClick"]),l(p,{size:"small",type:"danger",onClick:k=>K(a,x),disabled:a.proxyAddresses.length<=1},{default:t(()=>o[12]||(o[12]=[u(" 删除 ")])),_:2,__:[12]},1032,["onClick","disabled"])]))),128)),l(p,{type:"primary",size:"small",onClick:i=>J(a),style:{"margin-top":"5px"}},{default:t(()=>o[13]||(o[13]=[u(" 添加地址 ")])),_:2,__:[13]},1032,["onClick"])])]),_:1}),l(V,{prop:"description",label:"描述",width:"140"},{default:t(({row:a})=>[l(g,{modelValue:a.description,"onUpdate:modelValue":i=>a.description=i,placeholder:"API接口代理"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(V,{prop:"enabled",label:"状态",width:"100"},{default:t(({row:a})=>[l(ne,{modelValue:a.enabled,"onUpdate:modelValue":i=>a.enabled=i},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(V,{label:"操作",width:"160"},{default:t(({row:a,$index:i})=>[l(p,{size:"small",type:"primary",onClick:x=>Z(a,"access")},{default:t(()=>o[14]||(o[14]=[u("查看日志")])),_:2,__:[14]},1032,["onClick"]),l(p,{size:"small",type:"danger",onClick:x=>M(i)},{default:t(()=>o[15]||(o[15]=[u("删除")])),_:2,__:[15]},1032,["onClick"])]),_:1})]),_:1},8,["data"]),_("div",Ne,[l(p,{type:"primary",onClick:H},{default:t(()=>[l(f,null,{default:t(()=>[l(ie)]),_:1}),o[16]||(o[16]=u(" 添加代理规则 "))]),_:1,__:[16]})])]),_:1})]),_:1},8,["model"])]),_("div",ze,[o[17]||(o[17]=_("h3",null,"配置预览",-1)),l(g,{type:"textarea",rows:15,modelValue:F.value,"onUpdate:modelValue":o[1]||(o[1]=a=>F.value=a),readonly:"",placeholder:"配置预览将在这里显示"},null,8,["modelValue"])])]),_:1}),l(pe,{modelValue:C.value,"onUpdate:modelValue":o[4]||(o[4]=a=>C.value=a),title:"查看日志",width:"60%","before-close":ee},{default:t(()=>[_("div",Fe,[l(ue,{modelValue:A.value,"onUpdate:modelValue":o[2]||(o[2]=a=>A.value=a)},{default:t(()=>[l(X,{label:"access"},{default:t(()=>o[18]||(o[18]=[u("访问日志")])),_:1,__:[18]}),l(X,{label:"error"},{default:t(()=>o[19]||(o[19]=[u("错误日志")])),_:1,__:[19]})]),_:1},8,["modelValue"]),_("span",Le,"端口: "+j(N.value),1)]),l(g,{type:"textarea",rows:20,modelValue:h.value,"onUpdate:modelValue":o[3]||(o[3]=a=>h.value=a),readonly:"",style:{"font-family":"monospace"}},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}},Xe=me(De,[["__scopeId","data-v-1ea91675"]]);export{Xe as default};