指标图表可以设置忽略空值和其他对象值

This commit is contained in:
刘祥超
2021-07-26 16:44:22 +08:00
parent 5084d9f87e
commit cbd312e67d
6 changed files with 88 additions and 31 deletions

View File

@@ -25,6 +25,9 @@ func InitChart(parent *actionutils.ParentAction, chartId int64) (*pb.MetricChart
if chart == nil { if chart == nil {
return nil, errors.New("metric chart not found") return nil, errors.New("metric chart not found")
} }
if len(chart.IgnoredKeys) == 0 {
chart.IgnoredKeys = []string{}
}
parent.Data["chart"] = maps.Map{ parent.Data["chart"] = maps.Map{
"id": chart.Id, "id": chart.Id,
"name": chart.Name, "name": chart.Name,
@@ -33,6 +36,8 @@ func InitChart(parent *actionutils.ParentAction, chartId int64) (*pb.MetricChart
"maxItems": chart.MaxItems, "maxItems": chart.MaxItems,
"type": chart.Type, "type": chart.Type,
"typeName": serverconfigs.FindMetricChartTypeName(chart.Type), "typeName": serverconfigs.FindMetricChartTypeName(chart.Type),
"ignoreEmptyKeys": chart.IgnoreEmptyKeys,
"ignoredKeys": chart.IgnoredKeys,
} }
return chart, nil return chart, nil
} }

View File

@@ -32,6 +32,8 @@ func (this *CreatePopupAction) RunPost(params struct {
Type string Type string
WidthDiv int32 WidthDiv int32
MaxItems int32 MaxItems int32
IgnoreEmptyKeys bool
IgnoredKeys []string
Must *actions.Must Must *actions.Must
CSRF *actionutils.CSRF CSRF *actionutils.CSRF
@@ -54,6 +56,8 @@ func (this *CreatePopupAction) RunPost(params struct {
WidthDiv: params.WidthDiv, WidthDiv: params.WidthDiv,
MaxItems: params.MaxItems, MaxItems: params.MaxItems,
ParamsJSON: nil, ParamsJSON: nil,
IgnoreEmptyKeys: params.IgnoreEmptyKeys,
IgnoredKeys: params.IgnoredKeys,
}) })
if err != nil { if err != nil {
this.ErrorPage(err) this.ErrorPage(err)

View File

@@ -46,6 +46,8 @@ func (this *UpdateAction) RunPost(params struct {
WidthDiv int32 WidthDiv int32
MaxItems int32 MaxItems int32
IsOn bool IsOn bool
IgnoreEmptyKeys bool
IgnoredKeys []string
Must *actions.Must Must *actions.Must
CSRF *actionutils.CSRF CSRF *actionutils.CSRF
@@ -65,6 +67,8 @@ func (this *UpdateAction) RunPost(params struct {
WidthDiv: params.WidthDiv, WidthDiv: params.WidthDiv,
MaxItems: params.MaxItems, MaxItems: params.MaxItems,
ParamsJSON: nil, ParamsJSON: nil,
IgnoreEmptyKeys: params.IgnoreEmptyKeys,
IgnoredKeys: params.IgnoredKeys,
IsOn: params.IsOn, IsOn: params.IsOn,
}) })
if err != nil { if err != nil {

View File

@@ -36,6 +36,22 @@
<span v-else>{{chart.maxItems}}</span> <span v-else>{{chart.maxItems}}</span>
</td> </td>
</tr> </tr>
<tr>
<td>忽略空值对象</td>
<td>
<span v-if="chart.ignoreEmptyKeys" class="green">Y</span>
<span v-else class="disabled">N</span>
</td>
</tr>
<tr>
<td>忽略其他对象</td>
<td>
<div v-if="chart.ignoredKeys.length > 0">
<span v-for="key in chart.ignoredKeys" class="ui label basic small">{{key}}</span>
</div>
<span v-else class="disabled">没有要忽略的对象。</span>
</td>
</tr>
</table> </table>
<h4>图表示例</h4> <h4>图表示例</h4>

View File

@@ -43,6 +43,20 @@
<p class="comment">在图表中能显示的最多对象数0表示不限制。</p> <p class="comment">在图表中能显示的最多对象数0表示不限制。</p>
</td> </td>
</tr> </tr>
<tr>
<td>忽略空值对象</td>
<td>
<checkbox name="ignoreEmptyKeys"></checkbox>
<p class="comment">选中后,空的对象值不会在图表中出现。</p>
</td>
</tr>
<tr>
<td>忽略其他对象</td>
<td>
<values-box name="ignoredKeys"></values-box>
<p class="comment">这些对象不会在图表中出现。</p>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<submit-btn></submit-btn> <submit-btn></submit-btn>

View File

@@ -48,6 +48,20 @@
<p class="comment">在图表中能显示的最多对象数0表示不限制。</p> <p class="comment">在图表中能显示的最多对象数0表示不限制。</p>
</td> </td>
</tr> </tr>
<tr>
<td>忽略空值对象</td>
<td>
<checkbox name="ignoreEmptyKeys" value="1" checked="checked" v-model="chart.ignoreEmptyKeys"></checkbox>
<p class="comment">选中后,空的对象值不会在图表中出现。</p>
</td>
</tr>
<tr>
<td>忽略其他对象</td>
<td>
<values-box name="ignoredKeys" :values="chart.ignoredKeys"></values-box>
<p class="comment">这些对象不会在图表中出现。</p>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<submit-btn></submit-btn> <submit-btn></submit-btn>