diff --git a/server/main.go b/server/main.go index 9d9af7c..88f63f8 100644 --- a/server/main.go +++ b/server/main.go @@ -242,6 +242,7 @@ func main() { mux.Handle(p+"/task/create", basicAuth(cfg, http.HandlerFunc(handleCreateTask(p, cfg, db, broker)))) mux.Handle(p+"/task/stop", basicAuth(cfg, http.HandlerFunc(handleStopTask(p, db, broker)))) mux.Handle(p+"/task/delete", basicAuth(cfg, http.HandlerFunc(handleDeleteTask(p, db, broker)))) + mux.Handle(p+"/gen/install-cmd", basicAuth(cfg, http.HandlerFunc(handleGenInstallCmd(p, cfg)))) mux.Handle(p+"/settings", basicAuth(cfg, http.HandlerFunc(handleSettings(p, &cfg)))) mux.Handle(p+"/events", basicAuth(cfg, http.HandlerFunc(handleEvents(broker)))) mux.Handle(p+"/restart", basicAuth(cfg, http.HandlerFunc(handleRestart(p)))) @@ -698,8 +699,8 @@ func handleAPIData(db *sql.DB) http.HandlerFunc { for _, t := range tasks { tj = append(tj, taskJSON{ ID: t.ID, ClientID: t.ClientID, - ClientName: clientNames[t.ClientID], - Mode: t.Mode, UpMbps: t.UpMbps, DownMbps: t.DownMbps, + ClientName: clientNames[t.ClientID], + Mode: t.Mode, UpMbps: t.UpMbps, DownMbps: t.DownMbps, DurationSec: t.DurationSec, Status: t.Status, StartedAt: t.StartedAt, FinishedAt: t.FinishedAt, UploadGB: float64(t.UploadBytes) / (1024 * 1024 * 1024), @@ -876,6 +877,10 @@ func handleAdmin(cfg Config, db *sql.DB) http.HandlerFunc { PanelPathJS template.JS InitTokenJS template.JS VersionJS template.JS + GenName string + GenRemark string + GenVersion string + GeneratedCmd string } var approvedClients []approvedClient @@ -901,6 +906,13 @@ func handleAdmin(cfg Config, db *sql.DB) http.HandlerFunc { } version := getenv("BWPANEL_VERSION", "latest") + genName := strings.TrimSpace(r.URL.Query().Get("gen_name")) + genRemark := strings.TrimSpace(r.URL.Query().Get("gen_remark")) + genVersion := strings.TrimSpace(r.URL.Query().Get("gen_version")) + generatedCmd := strings.TrimSpace(r.URL.Query().Get("gen_cmd")) + if genVersion == "" { + genVersion = version + } jsStr := func(s string) template.JS { b, _ := json.Marshal(s) @@ -955,8 +967,8 @@ textarea{resize:vertical;min-height:60px} .copy-box{display:flex;gap:8px;align-items:center;margin-top:10px} .copy-box input{font-family:monospace;font-size:12px;background:#f9fafb} .gen-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end} -.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:999;align-items:center;justify-content:center} -.modal-overlay.open{display:flex} +.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:999;align-items:center;justify-content:center;pointer-events:none} +.modal-overlay.open{display:flex;pointer-events:auto} .modal-inner{background:#fff;border-radius:14px;padding:22px;width:min(600px,95vw)} .modal-inner input{font-family:monospace;font-size:12px;background:#f9fafb} @media(max-width:960px){.grid{grid-template-columns:1fr 1fr}.gen-grid{grid-template-columns:1fr 1fr}} @@ -971,6 +983,7 @@ textarea{resize:vertical;min-height:60px}

客户端管理、任务下发和实时状态查看。

+ ⚙️ Bark 设置 🐧 服务器 Linux 数据每 5 秒自动刷新。 @@ -1028,9 +1041,12 @@ textarea{resize:vertical;min-height:60px} {{.CurrentTask}}
- {{if (not .Approved)}} - - {{end}} + {{if (not .Approved)}} +
+ + +
+ {{end}}
@@ -1094,28 +1110,30 @@ textarea{resize:vertical;min-height:60px}

生成客户端安装命令

+
- +
- +
- +
- +
-
@@ -1123,7 +1141,7 @@ textarea{resize:vertical;min-height:60px}

🟢 正在执行的任务

- + {{range .RunningTasks}} @@ -1133,24 +1151,28 @@ textarea{resize:vertical;min-height:60px} + - + {{end}} - {{if (not .RunningTasks)}}{{end}} + {{if eq (len .RunningTasks) 0}}{{end}}
客户端模式上传 Mbps下载 Mbps时长状态已上传已下载开始时间操作
客户端模式上传 Mbps下载 Mbps时长状态网络延迟已上传已下载开始时间操作
{{.DownMbps}} {{.DurationSec}} 秒 {{.Status}}- - - {{.StartedAt}} - {{if eq .Status "running"}} - - {{else}}-{{end}} - + {{if eq .Status "running"}} +
+ + +
+ {{else}}-{{end}} +
暂无正在执行的任务
暂无正在执行的任务
-
+