npmapps 1.0.11 → 1.0.12
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.
- package/README.md +2 -1
- package/app/nginxManagement/backend/command_records.json +46 -0
- package/app/nginxManagement/backend/nginx-1.28.0/conf/api.conf +2 -1
- package/app/nginxManagement/backend/nginx-1.28.0/conf/nginx.conf +1 -0
- package/app/nginxManagement/backend/nginx-1.28.0/logs/error.log +18 -62
- package/app/nginxManagement/backend/nm.exe +0 -0
- package/app/nginxManagement/frontend/dist/assets/index-AG5xSNXD.css +1 -0
- package/app/nginxManagement/frontend/dist/assets/{index-_jG9n0U8.js → index-B2VcD4B4.js} +1 -1
- package/app/nginxManagement/frontend/dist/assets/index-BXCmlf1X.js +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-CZs0cWnm.js +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-CckWg4BZ.js +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-CnlsVqSb.js +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-D80vACWt.js +58 -0
- package/app/nginxManagement/frontend/dist/assets/index-DCkNgPTg.css +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-DIkZrekD.js +21 -0
- package/app/nginxManagement/frontend/dist/assets/index-DJ10N3ef.js +21 -0
- package/app/nginxManagement/frontend/dist/assets/index-DZqALzxJ.css +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-DijMOVEo.js +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-Dj94f0_e.js +58 -0
- package/app/nginxManagement/frontend/dist/assets/index-DxsiA9NS.css +1 -0
- package/app/nginxManagement/frontend/dist/assets/index-MbI1qjjU.js +21 -0
- package/app/nginxManagement/frontend/dist/assets/index-PO5K0hSX.js +58 -0
- package/app/nginxManagement/frontend/dist/assets/request-DK54gOQ7.js +6 -0
- package/app/nginxManagement/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/app/nginxManagement/backend/nginx-1.28.0/logs/nginx.pid +0 -1
- package/app/nginxManagement/frontend/dist/assets/index-Bx3YfIlI.css +0 -1
- package/app/nginxManagement/frontend/dist/assets/index-CR2wJXtr.js +0 -58
- package/app/nginxManagement/frontend/dist/assets/index-eLDUQSKK.js +0 -26
package/README.md
CHANGED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": 1,
|
|
4
|
+
"command": "nginx.exe -t",
|
|
5
|
+
"output": "",
|
|
6
|
+
"status": "success",
|
|
7
|
+
"startTime": "2025-07-03T11:02:11.9433783+08:00",
|
|
8
|
+
"endTime": "2025-07-03T11:02:12.0535445+08:00",
|
|
9
|
+
"duration": 110,
|
|
10
|
+
"errorMsg": "",
|
|
11
|
+
"createdAt": "2025-07-03T11:02:11.9433783+08:00"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": 2,
|
|
15
|
+
"command": "start /B nginx.exe -c conf/nginx.conf",
|
|
16
|
+
"output": "nginx启动成功",
|
|
17
|
+
"status": "success",
|
|
18
|
+
"startTime": "2025-07-03T11:02:12.1545539+08:00",
|
|
19
|
+
"endTime": "2025-07-03T11:02:12.2087331+08:00",
|
|
20
|
+
"duration": 54,
|
|
21
|
+
"errorMsg": "",
|
|
22
|
+
"createdAt": "2025-07-03T11:02:12.1545539+08:00"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": 3,
|
|
26
|
+
"command": "nginx.exe -s reload",
|
|
27
|
+
"output": "",
|
|
28
|
+
"status": "success",
|
|
29
|
+
"startTime": "2025-07-03T11:02:22.4103608+08:00",
|
|
30
|
+
"endTime": "2025-07-03T11:02:22.5142276+08:00",
|
|
31
|
+
"duration": 103,
|
|
32
|
+
"errorMsg": "",
|
|
33
|
+
"createdAt": "2025-07-03T11:02:22.4103608+08:00"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": 4,
|
|
37
|
+
"command": "nginx.exe -s stop",
|
|
38
|
+
"output": "",
|
|
39
|
+
"status": "success",
|
|
40
|
+
"startTime": "2025-07-03T11:02:49.500976+08:00",
|
|
41
|
+
"endTime": "2025-07-03T11:02:49.5999347+08:00",
|
|
42
|
+
"duration": 98,
|
|
43
|
+
"errorMsg": "",
|
|
44
|
+
"createdAt": "2025-07-03T11:02:49.500976+08:00"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
@@ -10,7 +10,8 @@ server {
|
|
|
10
10
|
error_log logs/api_80_error.log;
|
|
11
11
|
|
|
12
12
|
location /api/ {
|
|
13
|
-
proxy_pass http://localhost:8081; #R 新地址
|
|
13
|
+
# proxy_pass http://localhost:8081; #R 新地址
|
|
14
|
+
proxy_pass http://localhost:8080; #R 新地址
|
|
14
15
|
# proxy_pass http://localhost:8082; #R 新地址
|
|
15
16
|
proxy_set_header Host $host;
|
|
16
17
|
proxy_set_header X-Real-IP $remote_addr;
|
|
@@ -13,65 +13,21 @@
|
|
|
13
13
|
2025/07/02 10:47:53 [notice] 31088#29580: signal process started
|
|
14
14
|
2025/07/02 10:48:04 [notice] 13636#28108: signal process started
|
|
15
15
|
2025/07/02 10:48:06 [notice] 3644#32680: signal process started
|
|
16
|
-
2025/07/
|
|
17
|
-
2025/07/
|
|
18
|
-
2025/07/
|
|
19
|
-
2025/07/
|
|
20
|
-
2025/07/
|
|
21
|
-
2025/07/
|
|
22
|
-
2025/07/
|
|
23
|
-
2025/07/
|
|
24
|
-
2025/07/
|
|
25
|
-
2025/07/
|
|
26
|
-
2025/07/
|
|
27
|
-
2025/07/
|
|
28
|
-
2025/07/
|
|
29
|
-
2025/07/
|
|
30
|
-
2025/07/
|
|
31
|
-
2025/07/
|
|
32
|
-
2025/07/
|
|
33
|
-
2025/07/
|
|
34
|
-
2025/07/02 15:00:40 [notice] 36552#18780: signal process started
|
|
35
|
-
2025/07/02 15:00:40 [error] 36552#18780: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
36
|
-
2025/07/02 15:00:49 [notice] 42884#43640: signal process started
|
|
37
|
-
2025/07/02 15:00:51 [notice] 36324#41676: signal process started
|
|
38
|
-
2025/07/02 15:00:52 [notice] 34448#41356: signal process started
|
|
39
|
-
2025/07/02 15:00:55 [notice] 42832#34368: signal process started
|
|
40
|
-
2025/07/02 15:00:55 [error] 42832#34368: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
41
|
-
2025/07/02 15:02:01 [notice] 39788#15176: signal process started
|
|
42
|
-
2025/07/02 15:02:05 [notice] 40904#26560: signal process started
|
|
43
|
-
2025/07/02 15:02:05 [error] 40904#26560: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
44
|
-
2025/07/02 15:02:25 [notice] 31368#14620: signal process started
|
|
45
|
-
2025/07/02 15:02:53 [notice] 15484#21136: signal process started
|
|
46
|
-
2025/07/02 15:02:54 [notice] 43760#29120: signal process started
|
|
47
|
-
2025/07/02 15:02:54 [error] 43760#29120: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
48
|
-
2025/07/02 15:02:55 [notice] 22652#41616: signal process started
|
|
49
|
-
2025/07/02 15:02:55 [error] 22652#41616: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
50
|
-
2025/07/02 16:16:43 [notice] 38692#12456: signal process started
|
|
51
|
-
2025/07/02 16:16:43 [error] 38692#12456: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
52
|
-
2025/07/02 16:16:48 [notice] 21684#19316: signal process started
|
|
53
|
-
2025/07/02 16:16:53 [notice] 16112#19796: signal process started
|
|
54
|
-
2025/07/02 16:17:12 [notice] 27740#5888: signal process started
|
|
55
|
-
2025/07/02 16:17:13 [notice] 44296#38724: signal process started
|
|
56
|
-
2025/07/02 16:17:14 [notice] 36480#31124: signal process started
|
|
57
|
-
2025/07/02 16:17:14 [notice] 28600#37620: signal process started
|
|
58
|
-
2025/07/02 16:17:15 [notice] 27632#3380: signal process started
|
|
59
|
-
2025/07/02 16:17:16 [notice] 21656#41176: signal process started
|
|
60
|
-
2025/07/02 16:17:16 [notice] 33320#37692: signal process started
|
|
61
|
-
2025/07/02 16:17:21 [notice] 39928#42700: signal process started
|
|
62
|
-
2025/07/02 16:17:24 [notice] 34464#43652: signal process started
|
|
63
|
-
2025/07/02 16:17:24 [error] 34464#43652: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
64
|
-
2025/07/02 16:17:36 [notice] 33240#28616: signal process started
|
|
65
|
-
2025/07/02 16:17:36 [error] 33240#28616: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
66
|
-
2025/07/02 16:17:40 [notice] 29172#24812: signal process started
|
|
67
|
-
2025/07/02 16:17:40 [error] 29172#24812: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
68
|
-
2025/07/02 16:17:43 [notice] 14784#43660: signal process started
|
|
69
|
-
2025/07/02 16:17:57 [notice] 33216#30144: signal process started
|
|
70
|
-
2025/07/02 16:17:57 [error] 33216#30144: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
71
|
-
2025/07/02 16:17:58 [notice] 32892#25524: signal process started
|
|
72
|
-
2025/07/02 16:17:58 [error] 32892#25524: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
73
|
-
2025/07/02 16:18:04 [notice] 28292#19048: signal process started
|
|
74
|
-
2025/07/02 16:23:45 [notice] 33964#26816: signal process started
|
|
75
|
-
2025/07/02 16:23:50 [notice] 39056#32776: signal process started
|
|
76
|
-
2025/07/02 16:23:50 [error] 39056#32776: CreateFile() "C:\Users\w1768\Documents\wk\web\npm\npmapps\app\nginxManagement\backend\nginx-1.28.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
|
|
77
|
-
2025/07/02 16:44:02 [notice] 7360#40444: signal process started
|
|
16
|
+
2025/07/03 09:13:00 [notice] 28356#28164: signal process started
|
|
17
|
+
2025/07/03 10:05:23 [notice] 31992#12720: signal process started
|
|
18
|
+
2025/07/03 10:11:17 [notice] 29132#19404: signal process started
|
|
19
|
+
2025/07/03 10:49:02 [notice] 10400#28508: signal process started
|
|
20
|
+
2025/07/03 10:52:30 [notice] 33048#30396: signal process started
|
|
21
|
+
2025/07/03 10:52:37 [notice] 16144#27736: signal process started
|
|
22
|
+
2025/07/03 10:52:53 [notice] 26948#27324: signal process started
|
|
23
|
+
2025/07/03 10:53:20 [notice] 30212#30396: signal process started
|
|
24
|
+
2025/07/03 10:53:31 [notice] 34408#12892: signal process started
|
|
25
|
+
2025/07/03 10:53:36 [notice] 27200#29132: signal process started
|
|
26
|
+
2025/07/03 10:55:30 [notice] 25312#31604: signal process started
|
|
27
|
+
2025/07/03 10:55:55 [notice] 10332#29032: signal process started
|
|
28
|
+
2025/07/03 10:55:55 [error] 10332#29032: OpenEvent("Global\ngx_stop_14148") failed (2: The system cannot find the file specified)
|
|
29
|
+
2025/07/03 10:57:33 [notice] 25464#17272: signal process started
|
|
30
|
+
2025/07/03 10:57:44 [notice] 1416#31524: signal process started
|
|
31
|
+
2025/07/03 10:58:07 [notice] 17908#27604: signal process started
|
|
32
|
+
2025/07/03 11:02:22 [notice] 19508#5724: signal process started
|
|
33
|
+
2025/07/03 11:02:49 [notice] 19516#28348: signal process started
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.card-header[data-v-4ed7fb36]{display:flex;justify-content:space-between;align-items:center}.header-actions[data-v-4ed7fb36]{display:flex;gap:10px}.config-content[data-v-4ed7fb36]{margin-bottom:30px}.config-preview[data-v-4ed7fb36]{margin-top:30px}.config-preview h3[data-v-4ed7fb36]{margin-bottom:15px;color:#303133}.el-table[data-v-4ed7fb36]{margin-bottom:10px}.el-form-item[data-v-4ed7fb36]{margin-bottom:20px}.proxy-addresses[data-v-4ed7fb36]{display:flex;flex-direction:column;gap:5px}.proxy-address-item[data-v-4ed7fb36]{display:flex;gap:5px;align-items:center}.proxy-address-item .el-input[data-v-4ed7fb36]{flex:1}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as C,r as d,c as N,o as D,a as e,w as a,b as l,d as t,t as i}from"./index-
|
|
1
|
+
import{_ as C,r as d,c as N,o as D,a as e,w as a,b as l,d as t,t as i}from"./index-D80vACWt.js";const R={class:"dashboard-container"},S={class:"card-header"},h={class:"card-header"},z={class:"stat-value"},E={class:"card-header"},I={class:"stat-value"},P={class:"card-header"},T={class:"stat-value"},U={slot:"header",class:"card-header"},j={class:"chart-container"},A={__name:"index",setup(F){const m=d(128),v=d(35.6),f=d(99.8),p=d("today"),g=d([{domain:"api.example.com",requests:12543,percentage:"45.2%"},{domain:"www.example.com",requests:8762,percentage:"31.4%"},{domain:"static.example.com",requests:6321,percentage:"22.8%"},{domain:"admin.example.com",requests:1532,percentage:"5.5%"}]);return(G,s)=>{const b=l("monitor"),c=l("el-icon"),o=l("el-card"),n=l("el-col"),x=l("connection"),w=l("refresh-left"),q=l("success"),u=l("el-row"),r=l("el-option"),y=l("el-select"),V=l("el-progress"),_=l("el-table-column"),k=l("el-table");return D(),N("div",R,[e(u,{gutter:20},{default:a(()=>[e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",S,[e(c,{class:"card-icon"},{default:a(()=>[e(b)]),_:1}),s[1]||(s[1]=t("span",null,"服务器状态",-1))]),s[2]||(s[2]=t("div",{class:"stat-value"},"运行中",-1)),s[3]||(s[3]=t("div",{class:"stat-desc"},"Nginx 1.23.3",-1))]),_:1,__:[2,3]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",h,[e(c,{class:"card-icon"},{default:a(()=>[e(x)]),_:1}),s[4]||(s[4]=t("span",null,"活跃连接",-1))]),t("div",z,i(m.value),1),s[5]||(s[5]=t("div",{class:"stat-desc"},"较昨日 +12%",-1))]),_:1,__:[5]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",E,[e(c,{class:"card-icon"},{default:a(()=>[e(w)]),_:1}),s[6]||(s[6]=t("span",null,"请求/秒",-1))]),t("div",I,i(v.value),1),s[7]||(s[7]=t("div",{class:"stat-desc"},"较昨日 +5%",-1))]),_:1,__:[7]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",P,[e(c,{class:"card-icon"},{default:a(()=>[e(q)]),_:1}),s[8]||(s[8]=t("span",null,"成功率",-1))]),t("div",T,i(f.value)+"%",1),s[9]||(s[9]=t("div",{class:"stat-desc"},"较昨日 -1%",-1))]),_:1,__:[9]})]),_:1})]),_:1}),e(u,{gutter:20,style:{"margin-top":"20px"}},{default:a(()=>[e(n,{span:16},{default:a(()=>[e(o,null,{default:a(()=>[t("div",U,[s[10]||(s[10]=t("span",null,"请求趋势",-1)),e(y,{modelValue:p.value,"onUpdate:modelValue":s[0]||(s[0]=B=>p.value=B),size:"small",style:{"margin-left":"10px"}},{default:a(()=>[e(r,{label:"今日",value:"today"}),e(r,{label:"本周",value:"week"}),e(r,{label:"本月",value:"month"})]),_:1},8,["modelValue"])]),t("div",j,[e(V,{percentage:65,status:"success"}),s[11]||(s[11]=t("div",{class:"chart-placeholder"},"请求趋势图表将显示在这里",-1))])]),_:1})]),_:1}),e(n,{span:8},{default:a(()=>[e(o,null,{default:a(()=>[s[12]||(s[12]=t("div",{slot:"header",class:"card-header"},[t("span",null,"Top 访问域名")],-1)),e(k,{data:g.value},{default:a(()=>[e(_,{prop:"domain",label:"域名"}),e(_,{prop:"requests",label:"请求数"}),e(_,{prop:"percentage",label:"占比"})]),_:1},8,["data"])]),_:1,__:[12]})]),_:1})]),_:1})])}}},J=C(A,[["__scopeId","data-v-c33ec8b9"]]);export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as W,r as _,g as X,c as V,o as g,a as t,w as l,E as u,b as r,m as Y,d as m,n as Z,u as T,l as s,p as h,i as I,t as d,j as z,q as ee}from"./index-D80vACWt.js";import{r as $}from"./request-DK54gOQ7.js";function te(B){return $({url:"/api/command/execute",method:"post",data:{command:B}})}function le(){return $({url:"/api/command/records",method:"get"})}function oe(){return $({url:"/api/command/records",method:"delete"})}const ae={class:"command-page"},ne={class:"quick-commands"},se={class:"card-header"},re={key:0},ue={key:0},de={__name:"index",setup(B){const c=_({command:""}),D=_([]),x=_(!1),k=_(!1),w=_(!1),n=_(null),C=async()=>{x.value=!0;try{const o=await le();o.success?D.value=o.data||[]:u.error(o.message||"获取记录失败")}catch(o){u.error("获取记录失败: "+o.message)}finally{x.value=!1}},M=async()=>{if(!c.value.command.trim()){u.warning("请输入要执行的命令");return}k.value=!0;try{const o=await te(c.value.command);o.success?(u.success("命令执行完成"),c.value.command="",await C()):u.error(o.message||"命令执行失败")}catch(o){u.error("命令执行失败: "+o.message)}finally{k.value=!1}},v=o=>{c.value.command=o,M()},K=async()=>{try{await ee.confirm("确定要清空所有记录吗?","确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const o=await oe();o.success?(u.success("记录已清空"),await C()):u.error(o.message||"清空记录失败")}catch(o){o!=="cancel"&&u.error("清空记录失败: "+o.message)}},S=o=>{n.value=o,w.value=!0},H=()=>{w.value=!1,n.value=null},R=o=>{switch(o){case"success":return"success";case"error":return"danger";case"running":return"warning";default:return"info"}},N=o=>{switch(o){case"success":return"成功";case"error":return"失败";case"running":return"执行中";default:return"未知"}},y=o=>o?new Date(o).toLocaleString("zh-CN"):"-",U=M,j=K;return X(()=>{C()}),(o,e)=>{const i=r("el-button"),b=r("el-input"),A=r("el-form-item"),F=r("el-form"),L=r("el-button-group"),q=r("el-card"),p=r("el-table-column"),E=r("el-tag"),G=r("el-table"),f=r("el-descriptions-item"),J=r("el-descriptions"),O=r("el-divider"),P=r("el-dialog"),Q=Y("loading");return g(),V("div",ae,[t(q,{class:"command-card"},{header:l(()=>e[10]||(e[10]=[m("div",{class:"card-header"},[m("span",null,"命令执行")],-1)])),default:l(()=>[t(F,{model:c.value,"label-width":"80px"},{default:l(()=>[t(A,{label:"命令"},{default:l(()=>[t(b,{modelValue:c.value.command,"onUpdate:modelValue":e[0]||(e[0]=a=>c.value.command=a),placeholder:"请输入要执行的命令",onKeyup:Z(T(U),["enter"])},{append:l(()=>[t(i,{onClick:T(U),loading:k.value},{default:l(()=>e[11]||(e[11]=[s(" 执行 ")])),_:1,__:[11]},8,["onClick","loading"])]),_:1},8,["modelValue","onKeyup"])]),_:1})]),_:1},8,["model"]),m("div",ne,[e[17]||(e[17]=m("h4",null,"常用命令:",-1)),t(L,null,{default:l(()=>[t(i,{onClick:e[1]||(e[1]=a=>v("dir")),size:"small"},{default:l(()=>e[12]||(e[12]=[s("dir")])),_:1,__:[12]}),t(i,{onClick:e[2]||(e[2]=a=>v("ipconfig")),size:"small"},{default:l(()=>e[13]||(e[13]=[s("ipconfig")])),_:1,__:[13]}),t(i,{onClick:e[3]||(e[3]=a=>v("netstat -an")),size:"small"},{default:l(()=>e[14]||(e[14]=[s("netstat -an")])),_:1,__:[14]}),t(i,{onClick:e[4]||(e[4]=a=>v("tasklist")),size:"small"},{default:l(()=>e[15]||(e[15]=[s("tasklist")])),_:1,__:[15]}),t(i,{onClick:e[5]||(e[5]=a=>v("ping 127.0.0.1")),size:"small"},{default:l(()=>e[16]||(e[16]=[s("ping 127.0.0.1")])),_:1,__:[16]})]),_:1})])]),_:1}),t(q,{class:"records-card"},{header:l(()=>[m("div",se,[e[19]||(e[19]=m("span",null,"执行记录",-1)),t(i,{onClick:T(j),type:"danger",size:"small"},{default:l(()=>e[18]||(e[18]=[s(" 清空记录 ")])),_:1,__:[18]},8,["onClick"])])]),default:l(()=>[h((g(),I(G,{data:D.value,style:{width:"100%"}},{default:l(()=>[t(p,{prop:"id",label:"ID",width:"60"}),t(p,{prop:"command",label:"命令","min-width":"200","show-overflow-tooltip":""}),t(p,{prop:"status",label:"状态",width:"100"},{default:l(a=>[t(E,{type:R(a.row.status)},{default:l(()=>[s(d(N(a.row.status)),1)]),_:2},1032,["type"])]),_:1}),t(p,{prop:"startTime",label:"开始时间",width:"180"},{default:l(a=>[s(d(y(a.row.startTime)),1)]),_:1}),t(p,{prop:"duration",label:"耗时",width:"100"},{default:l(a=>[s(d(a.row.duration)+"ms ",1)]),_:1}),t(p,{label:"操作",width:"120"},{default:l(a=>[t(i,{onClick:ie=>S(a.row),size:"small",type:"primary"},{default:l(()=>e[20]||(e[20]=[s(" 查看详情 ")])),_:2,__:[20]},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[Q,x.value]])]),_:1}),t(P,{modelValue:w.value,"onUpdate:modelValue":e[9]||(e[9]=a=>w.value=a),title:"命令执行详情",width:"80%","before-close":H},{default:l(()=>[n.value?(g(),V("div",re,[t(J,{column:2,border:""},{default:l(()=>[t(f,{label:"命令ID"},{default:l(()=>[s(d(n.value.id),1)]),_:1}),t(f,{label:"状态"},{default:l(()=>[t(E,{type:R(n.value.status)},{default:l(()=>[s(d(N(n.value.status)),1)]),_:1},8,["type"])]),_:1}),t(f,{label:"开始时间"},{default:l(()=>[s(d(y(n.value.startTime)),1)]),_:1}),t(f,{label:"结束时间"},{default:l(()=>[s(d(y(n.value.endTime)),1)]),_:1}),t(f,{label:"执行时长"},{default:l(()=>[s(d(n.value.duration)+"ms",1)]),_:1}),t(f,{label:"创建时间"},{default:l(()=>[s(d(y(n.value.createdAt)),1)]),_:1})]),_:1}),t(O),e[21]||(e[21]=m("h4",null,"执行的命令:",-1)),t(b,{modelValue:n.value.command,"onUpdate:modelValue":e[6]||(e[6]=a=>n.value.command=a),type:"textarea",rows:2,readonly:"",style:{"margin-bottom":"20px"}},null,8,["modelValue"]),e[22]||(e[22]=m("h4",null,"命令输出:",-1)),t(b,{modelValue:n.value.output,"onUpdate:modelValue":e[7]||(e[7]=a=>n.value.output=a),type:"textarea",rows:10,readonly:"",style:{"margin-bottom":"20px"}},null,8,["modelValue"]),n.value.errorMsg?(g(),V("h4",ue,"错误信息:")):z("",!0),n.value.errorMsg?(g(),I(b,{key:1,modelValue:n.value.errorMsg,"onUpdate:modelValue":e[8]||(e[8]=a=>n.value.errorMsg=a),type:"textarea",rows:5,readonly:"",style:{color:"#f56c6c"}},null,8,["modelValue"])):z("",!0)])):z("",!0)]),_:1},8,["modelValue"])])}}},pe=W(de,[["__scopeId","data-v-19e2b22e"]]);export{pe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as C,r as d,c as N,o as D,a as e,w as a,b as l,d as t,t as i}from"./index-PO5K0hSX.js";const R={class:"dashboard-container"},S={class:"card-header"},h={class:"card-header"},z={class:"stat-value"},E={class:"card-header"},I={class:"stat-value"},P={class:"card-header"},T={class:"stat-value"},U={slot:"header",class:"card-header"},j={class:"chart-container"},A={__name:"index",setup(F){const m=d(128),v=d(35.6),f=d(99.8),p=d("today"),g=d([{domain:"api.example.com",requests:12543,percentage:"45.2%"},{domain:"www.example.com",requests:8762,percentage:"31.4%"},{domain:"static.example.com",requests:6321,percentage:"22.8%"},{domain:"admin.example.com",requests:1532,percentage:"5.5%"}]);return(G,s)=>{const b=l("monitor"),c=l("el-icon"),o=l("el-card"),n=l("el-col"),x=l("connection"),w=l("refresh-left"),q=l("success"),u=l("el-row"),r=l("el-option"),y=l("el-select"),V=l("el-progress"),_=l("el-table-column"),k=l("el-table");return D(),N("div",R,[e(u,{gutter:20},{default:a(()=>[e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",S,[e(c,{class:"card-icon"},{default:a(()=>[e(b)]),_:1}),s[1]||(s[1]=t("span",null,"服务器状态",-1))]),s[2]||(s[2]=t("div",{class:"stat-value"},"运行中",-1)),s[3]||(s[3]=t("div",{class:"stat-desc"},"Nginx 1.23.3",-1))]),_:1,__:[2,3]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",h,[e(c,{class:"card-icon"},{default:a(()=>[e(x)]),_:1}),s[4]||(s[4]=t("span",null,"活跃连接",-1))]),t("div",z,i(m.value),1),s[5]||(s[5]=t("div",{class:"stat-desc"},"较昨日 +12%",-1))]),_:1,__:[5]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",E,[e(c,{class:"card-icon"},{default:a(()=>[e(w)]),_:1}),s[6]||(s[6]=t("span",null,"请求/秒",-1))]),t("div",I,i(v.value),1),s[7]||(s[7]=t("div",{class:"stat-desc"},"较昨日 +5%",-1))]),_:1,__:[7]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",P,[e(c,{class:"card-icon"},{default:a(()=>[e(q)]),_:1}),s[8]||(s[8]=t("span",null,"成功率",-1))]),t("div",T,i(f.value)+"%",1),s[9]||(s[9]=t("div",{class:"stat-desc"},"较昨日 -1%",-1))]),_:1,__:[9]})]),_:1})]),_:1}),e(u,{gutter:20,style:{"margin-top":"20px"}},{default:a(()=>[e(n,{span:16},{default:a(()=>[e(o,null,{default:a(()=>[t("div",U,[s[10]||(s[10]=t("span",null,"请求趋势",-1)),e(y,{modelValue:p.value,"onUpdate:modelValue":s[0]||(s[0]=B=>p.value=B),size:"small",style:{"margin-left":"10px"}},{default:a(()=>[e(r,{label:"今日",value:"today"}),e(r,{label:"本周",value:"week"}),e(r,{label:"本月",value:"month"})]),_:1},8,["modelValue"])]),t("div",j,[e(V,{percentage:65,status:"success"}),s[11]||(s[11]=t("div",{class:"chart-placeholder"},"请求趋势图表将显示在这里",-1))])]),_:1})]),_:1}),e(n,{span:8},{default:a(()=>[e(o,null,{default:a(()=>[s[12]||(s[12]=t("div",{slot:"header",class:"card-header"},[t("span",null,"Top 访问域名")],-1)),e(k,{data:g.value},{default:a(()=>[e(_,{prop:"domain",label:"域名"}),e(_,{prop:"requests",label:"请求数"}),e(_,{prop:"percentage",label:"占比"})]),_:1},8,["data"])]),_:1,__:[12]})]),_:1})]),_:1})])}}},J=C(A,[["__scopeId","data-v-c33ec8b9"]]);export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as C,r as d,c as N,o as D,a as e,w as a,b as l,d as t,t as i}from"./index-Dj94f0_e.js";const R={class:"dashboard-container"},S={class:"card-header"},h={class:"card-header"},z={class:"stat-value"},E={class:"card-header"},I={class:"stat-value"},P={class:"card-header"},T={class:"stat-value"},U={slot:"header",class:"card-header"},j={class:"chart-container"},A={__name:"index",setup(F){const m=d(128),v=d(35.6),f=d(99.8),p=d("today"),g=d([{domain:"api.example.com",requests:12543,percentage:"45.2%"},{domain:"www.example.com",requests:8762,percentage:"31.4%"},{domain:"static.example.com",requests:6321,percentage:"22.8%"},{domain:"admin.example.com",requests:1532,percentage:"5.5%"}]);return(G,s)=>{const b=l("monitor"),c=l("el-icon"),o=l("el-card"),n=l("el-col"),x=l("connection"),w=l("refresh-left"),q=l("success"),u=l("el-row"),r=l("el-option"),y=l("el-select"),V=l("el-progress"),_=l("el-table-column"),k=l("el-table");return D(),N("div",R,[e(u,{gutter:20},{default:a(()=>[e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",S,[e(c,{class:"card-icon"},{default:a(()=>[e(b)]),_:1}),s[1]||(s[1]=t("span",null,"服务器状态",-1))]),s[2]||(s[2]=t("div",{class:"stat-value"},"运行中",-1)),s[3]||(s[3]=t("div",{class:"stat-desc"},"Nginx 1.23.3",-1))]),_:1,__:[2,3]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",h,[e(c,{class:"card-icon"},{default:a(()=>[e(x)]),_:1}),s[4]||(s[4]=t("span",null,"活跃连接",-1))]),t("div",z,i(m.value),1),s[5]||(s[5]=t("div",{class:"stat-desc"},"较昨日 +12%",-1))]),_:1,__:[5]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",E,[e(c,{class:"card-icon"},{default:a(()=>[e(w)]),_:1}),s[6]||(s[6]=t("span",null,"请求/秒",-1))]),t("div",I,i(v.value),1),s[7]||(s[7]=t("div",{class:"stat-desc"},"较昨日 +5%",-1))]),_:1,__:[7]})]),_:1}),e(n,{span:6},{default:a(()=>[e(o,{class:"stat-card"},{default:a(()=>[t("div",P,[e(c,{class:"card-icon"},{default:a(()=>[e(q)]),_:1}),s[8]||(s[8]=t("span",null,"成功率",-1))]),t("div",T,i(f.value)+"%",1),s[9]||(s[9]=t("div",{class:"stat-desc"},"较昨日 -1%",-1))]),_:1,__:[9]})]),_:1})]),_:1}),e(u,{gutter:20,style:{"margin-top":"20px"}},{default:a(()=>[e(n,{span:16},{default:a(()=>[e(o,null,{default:a(()=>[t("div",U,[s[10]||(s[10]=t("span",null,"请求趋势",-1)),e(y,{modelValue:p.value,"onUpdate:modelValue":s[0]||(s[0]=B=>p.value=B),size:"small",style:{"margin-left":"10px"}},{default:a(()=>[e(r,{label:"今日",value:"today"}),e(r,{label:"本周",value:"week"}),e(r,{label:"本月",value:"month"})]),_:1},8,["modelValue"])]),t("div",j,[e(V,{percentage:65,status:"success"}),s[11]||(s[11]=t("div",{class:"chart-placeholder"},"请求趋势图表将显示在这里",-1))])]),_:1})]),_:1}),e(n,{span:8},{default:a(()=>[e(o,null,{default:a(()=>[s[12]||(s[12]=t("div",{slot:"header",class:"card-header"},[t("span",null,"Top 访问域名")],-1)),e(k,{data:g.value},{default:a(()=>[e(_,{prop:"domain",label:"域名"}),e(_,{prop:"requests",label:"请求数"}),e(_,{prop:"percentage",label:"占比"})]),_:1},8,["data"])]),_:1,__:[12]})]),_:1})]),_:1})])}}},J=C(A,[["__scopeId","data-v-c33ec8b9"]]);export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as W,r as _,g as X,c as V,o as g,a as t,w as l,E as u,b as r,m as Y,d as m,n as Z,u as T,l as s,p as h,i as I,t as d,j as z,q as ee}from"./index-Dj94f0_e.js";import{r as $}from"./request-DK54gOQ7.js";function te(B){return $({url:"/api/command/execute",method:"post",data:{command:B}})}function le(){return $({url:"/api/command/records",method:"get"})}function oe(){return $({url:"/api/command/records",method:"delete"})}const ae={class:"command-page"},ne={class:"quick-commands"},se={class:"card-header"},re={key:0},ue={key:0},de={__name:"index",setup(B){const c=_({command:""}),D=_([]),x=_(!1),k=_(!1),w=_(!1),n=_(null),C=async()=>{x.value=!0;try{const o=await le();o.success?D.value=o.data||[]:u.error(o.message||"获取记录失败")}catch(o){u.error("获取记录失败: "+o.message)}finally{x.value=!1}},M=async()=>{if(!c.value.command.trim()){u.warning("请输入要执行的命令");return}k.value=!0;try{const o=await te(c.value.command);o.success?(u.success("命令执行完成"),c.value.command="",await C()):u.error(o.message||"命令执行失败")}catch(o){u.error("命令执行失败: "+o.message)}finally{k.value=!1}},v=o=>{c.value.command=o,M()},K=async()=>{try{await ee.confirm("确定要清空所有记录吗?","确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const o=await oe();o.success?(u.success("记录已清空"),await C()):u.error(o.message||"清空记录失败")}catch(o){o!=="cancel"&&u.error("清空记录失败: "+o.message)}},S=o=>{n.value=o,w.value=!0},H=()=>{w.value=!1,n.value=null},R=o=>{switch(o){case"success":return"success";case"error":return"danger";case"running":return"warning";default:return"info"}},N=o=>{switch(o){case"success":return"成功";case"error":return"失败";case"running":return"执行中";default:return"未知"}},y=o=>o?new Date(o).toLocaleString("zh-CN"):"-",U=M,j=K;return X(()=>{C()}),(o,e)=>{const i=r("el-button"),b=r("el-input"),A=r("el-form-item"),F=r("el-form"),L=r("el-button-group"),q=r("el-card"),p=r("el-table-column"),E=r("el-tag"),G=r("el-table"),f=r("el-descriptions-item"),J=r("el-descriptions"),O=r("el-divider"),P=r("el-dialog"),Q=Y("loading");return g(),V("div",ae,[t(q,{class:"command-card"},{header:l(()=>e[10]||(e[10]=[m("div",{class:"card-header"},[m("span",null,"命令执行")],-1)])),default:l(()=>[t(F,{model:c.value,"label-width":"80px"},{default:l(()=>[t(A,{label:"命令"},{default:l(()=>[t(b,{modelValue:c.value.command,"onUpdate:modelValue":e[0]||(e[0]=a=>c.value.command=a),placeholder:"请输入要执行的命令",onKeyup:Z(T(U),["enter"])},{append:l(()=>[t(i,{onClick:T(U),loading:k.value},{default:l(()=>e[11]||(e[11]=[s(" 执行 ")])),_:1,__:[11]},8,["onClick","loading"])]),_:1},8,["modelValue","onKeyup"])]),_:1})]),_:1},8,["model"]),m("div",ne,[e[17]||(e[17]=m("h4",null,"常用命令:",-1)),t(L,null,{default:l(()=>[t(i,{onClick:e[1]||(e[1]=a=>v("dir")),size:"small"},{default:l(()=>e[12]||(e[12]=[s("dir")])),_:1,__:[12]}),t(i,{onClick:e[2]||(e[2]=a=>v("ipconfig")),size:"small"},{default:l(()=>e[13]||(e[13]=[s("ipconfig")])),_:1,__:[13]}),t(i,{onClick:e[3]||(e[3]=a=>v("netstat -an")),size:"small"},{default:l(()=>e[14]||(e[14]=[s("netstat -an")])),_:1,__:[14]}),t(i,{onClick:e[4]||(e[4]=a=>v("tasklist")),size:"small"},{default:l(()=>e[15]||(e[15]=[s("tasklist")])),_:1,__:[15]}),t(i,{onClick:e[5]||(e[5]=a=>v("ping 127.0.0.1")),size:"small"},{default:l(()=>e[16]||(e[16]=[s("ping 127.0.0.1")])),_:1,__:[16]})]),_:1})])]),_:1}),t(q,{class:"records-card"},{header:l(()=>[m("div",se,[e[19]||(e[19]=m("span",null,"执行记录",-1)),t(i,{onClick:T(j),type:"danger",size:"small"},{default:l(()=>e[18]||(e[18]=[s(" 清空记录 ")])),_:1,__:[18]},8,["onClick"])])]),default:l(()=>[h((g(),I(G,{data:D.value,style:{width:"100%"}},{default:l(()=>[t(p,{prop:"id",label:"ID",width:"60"}),t(p,{prop:"command",label:"命令","min-width":"200","show-overflow-tooltip":""}),t(p,{prop:"status",label:"状态",width:"100"},{default:l(a=>[t(E,{type:R(a.row.status)},{default:l(()=>[s(d(N(a.row.status)),1)]),_:2},1032,["type"])]),_:1}),t(p,{prop:"startTime",label:"开始时间",width:"180"},{default:l(a=>[s(d(y(a.row.startTime)),1)]),_:1}),t(p,{prop:"duration",label:"耗时",width:"100"},{default:l(a=>[s(d(a.row.duration)+"ms ",1)]),_:1}),t(p,{label:"操作",width:"120"},{default:l(a=>[t(i,{onClick:ie=>S(a.row),size:"small",type:"primary"},{default:l(()=>e[20]||(e[20]=[s(" 查看详情 ")])),_:2,__:[20]},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[Q,x.value]])]),_:1}),t(P,{modelValue:w.value,"onUpdate:modelValue":e[9]||(e[9]=a=>w.value=a),title:"命令执行详情",width:"80%","before-close":H},{default:l(()=>[n.value?(g(),V("div",re,[t(J,{column:2,border:""},{default:l(()=>[t(f,{label:"命令ID"},{default:l(()=>[s(d(n.value.id),1)]),_:1}),t(f,{label:"状态"},{default:l(()=>[t(E,{type:R(n.value.status)},{default:l(()=>[s(d(N(n.value.status)),1)]),_:1},8,["type"])]),_:1}),t(f,{label:"开始时间"},{default:l(()=>[s(d(y(n.value.startTime)),1)]),_:1}),t(f,{label:"结束时间"},{default:l(()=>[s(d(y(n.value.endTime)),1)]),_:1}),t(f,{label:"执行时长"},{default:l(()=>[s(d(n.value.duration)+"ms",1)]),_:1}),t(f,{label:"创建时间"},{default:l(()=>[s(d(y(n.value.createdAt)),1)]),_:1})]),_:1}),t(O),e[21]||(e[21]=m("h4",null,"执行的命令:",-1)),t(b,{modelValue:n.value.command,"onUpdate:modelValue":e[6]||(e[6]=a=>n.value.command=a),type:"textarea",rows:2,readonly:"",style:{"margin-bottom":"20px"}},null,8,["modelValue"]),e[22]||(e[22]=m("h4",null,"命令输出:",-1)),t(b,{modelValue:n.value.output,"onUpdate:modelValue":e[7]||(e[7]=a=>n.value.output=a),type:"textarea",rows:10,readonly:"",style:{"margin-bottom":"20px"}},null,8,["modelValue"]),n.value.errorMsg?(g(),V("h4",ue,"错误信息:")):z("",!0),n.value.errorMsg?(g(),I(b,{key:1,modelValue:n.value.errorMsg,"onUpdate:modelValue":e[8]||(e[8]=a=>n.value.errorMsg=a),type:"textarea",rows:5,readonly:"",style:{color:"#f56c6c"}},null,8,["modelValue"])):z("",!0)])):z("",!0)]),_:1},8,["modelValue"])])}}},pe=W(de,[["__scopeId","data-v-19e2b22e"]]);export{pe as default};
|