{% extends "service_monitor/base.html" %} {% block title %}报告对比{% endblock %} {% block extra_css %} {% endblock %} {% block content %}
{% if error %}
{{ error }}
返回报告列表
{% elif data %}

📊 报告对比

{{ data.report_a.target_name }} · {{ (data.report_a.created_at or '').replace('T', ' ') }} vs {{ (data.report_b.created_at or '').replace('T', ' ') }}
基准报告对比报告
报告ID{{ data.report_a.id }}{{ data.report_b.id }}
时间{{ (data.report_a.created_at or '').replace('T', ' ') }}{{ (data.report_b.created_at or '').replace('T', ' ') }}
总项数{{ data.report_a.total_items }}{{ data.report_b.total_items }}
正常{{ data.report_a.normal_count }}{{ data.report_b.normal_count }}
警告{{ data.report_a.warning_count }}{{ data.report_b.warning_count }}
严重{{ data.report_a.critical_count }}{{ data.report_b.critical_count }}
⚠️
{{ data.diff_summary.new_abnormal }}
新增异常
{{ data.diff_summary.recovered }}
恢复正常
📊
{{ data.diff_summary.value_changed }}
值变化
{{ data.diff_summary.new_items }}
新增检测项
{{ data.diff_summary.removed_items }}
消失检测项
{% set total_diffs = data.diff_summary.new_abnormal + data.diff_summary.recovered + data.diff_summary.value_changed + data.diff_summary.new_items + data.diff_summary.removed_items %} {% if total_diffs == 0 %}
🎉
两份报告无差异,所有检测项状态一致
{% else %} {% if data.diff_details.new_abnormal %}
⚠️ 新增异常 {{ data.diff_summary.new_abnormal }}
{% for group in data.diff_details.new_abnormal %}
{{ group.module_name }} {{ group.items|length }} 项
"> {% for it in group.items %}
{{ it.name }}
{{ it.value_a }}
{{ it.value_b }}
{{ it.change_desc }}
{% endfor %}
{% endfor %}
{% endif %} {% if data.diff_details.recovered %}
✅ 恢复正常 {{ data.diff_summary.recovered }}
{% for group in data.diff_details.recovered %}
{{ group.module_name }} {{ group.items|length }} 项
{% for it in group.items %}
{{ it.name }}
{{ it.value_a }}
{{ it.value_b }}
{{ it.change_desc }}
{% endfor %}
{% endfor %}
{% endif %} {% if data.diff_details.value_changed %}
📊 值变化 {{ data.diff_summary.value_changed }}
{% for group in data.diff_details.value_changed %}
{{ group.module_name }} {{ group.items|length }} 项
{% for it in group.items %}
{{ it.name }}
{{ it.value_a }}
{{ it.value_b }}
{{ it.change_desc }}
{% endfor %}
{% endfor %}
{% endif %} {% if data.diff_details.new_items %}
➕ 新增检测项 {{ data.diff_summary.new_items }}
{% for group in data.diff_details.new_items %}
{{ group.module_name }} {{ group.items|length }} 项
{% for it in group.items %}
{{ it.name }}
-
{{ it.value_b }}
新增检测项
{% endfor %}
{% endfor %}
{% endif %} {% if data.diff_details.removed_items %}
➖ 消失检测项 {{ data.diff_summary.removed_items }}
{% for group in data.diff_details.removed_items %}
{{ group.module_name }} {{ group.items|length }} 项
{% for it in group.items %}
{{ it.name }}
{{ it.value_a }}
-
消失检测项
{% endfor %}
{% endfor %}
{% endif %} {% endif %}{# total_diffs check #} {% endif %}{# data check #}
{% endblock %} {% block extra_js %} {% endblock %}