diff --git a/internal/web/actions/default/servers/server/settings/stat/index.go b/internal/web/actions/default/servers/server/settings/stat/index.go index 185c665f..8f245bac 100644 --- a/internal/web/actions/default/servers/server/settings/stat/index.go +++ b/internal/web/actions/default/servers/server/settings/stat/index.go @@ -1,7 +1,11 @@ package stat import ( + "encoding/json" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" + "github.com/iwind/TeaGo/actions" ) type IndexAction struct { @@ -16,7 +20,39 @@ func (this *IndexAction) Init() { func (this *IndexAction) RunGet(params struct { ServerId int64 }) { - // TODO + webResp, err := this.RPC().ServerRPC().FindAndInitServerWebConfig(this.AdminContext(), &pb.FindAndInitServerWebRequest{ServerId: params.ServerId}) + if err != nil { + this.ErrorPage(err) + return + } + webConfig := &serverconfigs.HTTPWebConfig{} + err = json.Unmarshal(webResp.Config, webConfig) + if err != nil { + this.ErrorPage(err) + return + } + + this.Data["webId"] = webConfig.Id + this.Data["statConfig"] = webConfig.Stat this.Show() } + +func (this *IndexAction) RunPost(params struct { + WebId int64 + StatJSON []byte + + Must *actions.Must +}) { + // TODO 校验配置 + + _, err := this.RPC().HTTPWebRPC().UpdateHTTPStat(this.AdminContext(), &pb.UpdateHTTPStatRequest{ + WebId: params.WebId, + StatJSON: params.StatJSON, + }) + if err != nil { + this.ErrorPage(err) + return + } + this.Success() +} diff --git a/internal/web/actions/default/servers/server/settings/stat/init.go b/internal/web/actions/default/servers/server/settings/stat/init.go index c8200907..4e7da8ec 100644 --- a/internal/web/actions/default/servers/server/settings/stat/init.go +++ b/internal/web/actions/default/servers/server/settings/stat/init.go @@ -12,7 +12,7 @@ func init() { Helper(helpers.NewUserMustAuth()). Helper(serverutils.NewServerHelper()). Prefix("/servers/server/settings/stat"). - Get("", new(IndexAction)). + GetPost("", new(IndexAction)). EndAll() }) } diff --git a/web/public/js/components/server/http-stat-config-box.js b/web/public/js/components/server/http-stat-config-box.js new file mode 100644 index 00000000..e6ca1bf5 --- /dev/null +++ b/web/public/js/components/server/http-stat-config-box.js @@ -0,0 +1,29 @@ +Vue.component("http-stat-config-box", { + props: ["v-stat-config"], + data: function () { + let stat = this.vStatConfig + if (stat == null) { + stat = { + isOn: true + } + } + return { + stat: stat + } + }, + template: `
+ + + + + + +
是否开启统计 +
+ + +
+
+
+
` +}) \ No newline at end of file diff --git a/web/views/@default/servers/server/settings/stat/index.html b/web/views/@default/servers/server/settings/stat/index.html index eae519e9..409740fd 100644 --- a/web/views/@default/servers/server/settings/stat/index.html +++ b/web/views/@default/servers/server/settings/stat/index.html @@ -3,5 +3,9 @@ {$template "/left_menu"}
-

此功能暂未开放,敬请期待。

+
+ + + +
\ No newline at end of file diff --git a/web/views/@default/servers/server/settings/stat/index.js b/web/views/@default/servers/server/settings/stat/index.js new file mode 100644 index 00000000..295a9aaf --- /dev/null +++ b/web/views/@default/servers/server/settings/stat/index.js @@ -0,0 +1,3 @@ +Tea.context(function () { + this.success = NotifyReloadSuccess("保存成功") +}) \ No newline at end of file