实现统计设置

This commit is contained in:
刘祥超
2020-09-20 14:48:35 +08:00
parent 85991b7f3b
commit d7bb9570a9
5 changed files with 75 additions and 3 deletions

View File

@@ -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()
}

View File

@@ -12,7 +12,7 @@ func init() {
Helper(helpers.NewUserMustAuth()).
Helper(serverutils.NewServerHelper()).
Prefix("/servers/server/settings/stat").
Get("", new(IndexAction)).
GetPost("", new(IndexAction)).
EndAll()
})
}

View File

@@ -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: `<div>
<input type="hidden" name="statJSON" :value="JSON.stringify(stat)"/>
<table class="ui table definition selectable">
<tr>
<td class="title">是否开启统计</td>
<td>
<div class="ui checkbox">
<input type="checkbox" v-model="stat.isOn"/>
<label></label>
</div>
</td>
</tr>
</table>
<div class="margin"></div>
</div>`
})

View File

@@ -3,5 +3,9 @@
{$template "/left_menu"}
<div class="right-box">
<p class="ui message">此功能暂未开放,敬请期待。</p>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="webId" :value="webId"/>
<http-stat-config-box :v-stat-config="statConfig"></http-stat-config-box>
<submit-btn></submit-btn>
</form>
</div>

View File

@@ -0,0 +1,3 @@
Tea.context(function () {
this.success = NotifyReloadSuccess("保存成功")
})