diff --git a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go index aa197da1..96663951 100644 --- a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go +++ b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go @@ -6,6 +6,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/rpc" "github.com/TeaOSLab/EdgeAdmin/internal/utils/numberutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/dao" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" @@ -148,11 +149,15 @@ func (this *ClusterHelper) createSettingMenu(cluster *pb.NodeCluster, selectedIt "url": "/clusters/cluster/settings/services?clusterId=" + clusterId, "isActive": selectedItem == "service", }) - items = append(items, maps.Map{ - "name": "TOA设置", - "url": "/clusters/cluster/settings/toa?clusterId=" + clusterId, - "isActive": selectedItem == "toa", - }) + { + isChecked, _ := this.checkTOA(cluster.Id) + items = append(items, maps.Map{ + "name": "TOA设置", + "url": "/clusters/cluster/settings/toa?clusterId=" + clusterId, + "isActive": selectedItem == "toa", + "isOn": isChecked, + }) + } return } @@ -220,3 +225,24 @@ func (this *ClusterHelper) checkMessages(clusterId int64) (bool, error) { } return resp.Count > 0, nil } + +// 检查TOA是否设置 +func (this *ClusterHelper) checkTOA(clusterId int64) (bool, error) { + rpcClient, err := rpc.SharedRPC() + if err != nil { + return false, err + } + resp, err := rpcClient.NodeClusterRPC().FindEnabledNodeClusterTOA(rpcClient.Context(0), &pb.FindEnabledNodeClusterTOARequest{NodeClusterId: clusterId}) + if err != nil { + return false, err + } + if len(resp.ToaJSON) == 0 { + return false, nil + } + var toaConfig = &nodeconfigs.TOAConfig{} + err = json.Unmarshal(resp.ToaJSON, toaConfig) + if err != nil { + return false, err + } + return toaConfig.IsOn, nil +} diff --git a/internal/web/actions/default/servers/metrics/update.go b/internal/web/actions/default/servers/metrics/update.go new file mode 100644 index 00000000..1377bcf8 --- /dev/null +++ b/internal/web/actions/default/servers/metrics/update.go @@ -0,0 +1,17 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package metrics + +import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + +type UpdateAction struct { + actionutils.ParentAction +} + +func (this *UpdateAction) Init() { + this.Nav("", "", "") +} + +func (this *UpdateAction) RunGet(params struct{}) { + this.Show() +} diff --git a/web/public/js/components/server/metric-keys-config-box.js b/web/public/js/components/server/metric-keys-config-box.js new file mode 100644 index 00000000..ac9a5a30 --- /dev/null +++ b/web/public/js/components/server/metric-keys-config-box.js @@ -0,0 +1,36 @@ +// 指标对象 +Vue.component("metric-keys-config-box", { + props: ["v-keys"], + data: function () { + let keys = this.vKeys + if (keys == null) { + keys = [] + } + return { + keys: keys, + isAdding: false + } + }, + methods: {}, + template: `
` +}) \ No newline at end of file diff --git a/web/public/js/components/server/metric-period-config-box.js b/web/public/js/components/server/metric-period-config-box.js new file mode 100644 index 00000000..e1a338f8 --- /dev/null +++ b/web/public/js/components/server/metric-period-config-box.js @@ -0,0 +1,47 @@ +// 指标周期设置 +Vue.component("metric-period-config-box", { + props: ["v-period", "v-period-unit"], + data: function () { + let period = this.vPeriod + let periodUnit = this.vPeriodUnit + if (period == null || period.toString().length == 0) { + period = 1 + } + if (periodUnit == null || periodUnit.length == 0) { + periodUnit = "day" + } + return { + periodConfig: { + period: period, + unit: periodUnit + } + } + }, + watch: { + "periodConfig.period": function (v) { + v = parseInt(v) + if (isNaN(v) || v <= 0) { + v = 1 + } + this.periodConfig.period = v + } + }, + template: `在此周期内同一对象累积为同一数据。
+