changelog.html 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. {% extends "assetapp/base.html" %}
  2. {% block title %}变更记录{% endblock %}
  3. {% block content %}
  4. <div class="d-flex justify-content-between align-items-center mb-4">
  5. <h4 class="mb-0"><i class="bi bi-clock-history me-2"></i>变更记录</h4>
  6. </div>
  7. <!-- 筛选 -->
  8. <div class="card card-dark mb-3">
  9. <div class="card-body">
  10. <form method="get" class="row g-2 align-items-end">
  11. <div class="col-md-4">
  12. <label class="form-label text-muted small">资产编号</label>
  13. <input type="text" name="asset_number" class="form-control form-control-sm"
  14. placeholder="输入资产编号搜索" value="{{ asset_number }}">
  15. </div>
  16. <div class="col-md-3">
  17. <label class="form-label text-muted small">操作类型</label>
  18. <select name="action" class="form-select form-select-sm">
  19. <option value="">全部</option>
  20. <option value="create" {% if current_action == 'create' %}selected{% endif %}>创建</option>
  21. <option value="update" {% if current_action == 'update' %}selected{% endif %}>更新</option>
  22. <option value="delete" {% if current_action == 'delete' %}selected{% endif %}>删除</option>
  23. <option value="import" {% if current_action == 'import' %}selected{% endif %}>导入</option>
  24. <option value="export" {% if current_action == 'export' %}selected{% endif %}>导出</option>
  25. <option value="status_change" {% if current_action == 'status_change' %}selected{% endif %}>状态变更</option>
  26. </select>
  27. </div>
  28. <div class="col-md-2">
  29. <button type="submit" class="btn btn-primary btn-sm"><i class="bi bi-search"></i> 搜索</button>
  30. <a href="{% url 'change_log_list' %}" class="btn btn-outline-secondary btn-sm"><i class="bi bi-arrow-counterclockwise"></i></a>
  31. </div>
  32. </form>
  33. </div>
  34. </div>
  35. <!-- 记录表 -->
  36. <div class="card card-dark">
  37. <div class="card-body p-0">
  38. <div class="table-responsive">
  39. <table class="table table-dark table-hover mb-0">
  40. <thead>
  41. <tr>
  42. <th>时间</th>
  43. <th>资产编号</th>
  44. <th>操作</th>
  45. <th>变更字段</th>
  46. <th>旧值</th>
  47. <th>新值</th>
  48. <th>描述</th>
  49. <th>操作人</th>
  50. </tr>
  51. </thead>
  52. <tbody>
  53. {% for log in page_obj %}
  54. <tr>
  55. <td>{{ log.created_at|date:"Y-m-d H:i:s" }}</td>
  56. <td>
  57. {% if log.asset %}
  58. <a href="{% url 'asset_detail' log.asset.pk %}" class="text-info">{{ log.asset_number }}</a>
  59. {% else %}
  60. {{ log.asset_number }}
  61. {% endif %}
  62. </td>
  63. <td><span class="badge
  64. {% if log.action == 'create' %}bg-success
  65. {% elif log.action == 'update' %}bg-primary
  66. {% elif log.action == 'delete' %}bg-danger
  67. {% elif log.action == 'import' %}bg-info
  68. {% elif log.action == 'export' %}bg-secondary
  69. {% else %}bg-warning{% endif %}">
  70. {{ log.get_action_display }}</span></td>
  71. <td>{{ log.field_name|default:"-" }}</td>
  72. <td><code class="small">{{ log.old_value|default:"-"|truncatechars:30 }}</code></td>
  73. <td><code class="small">{{ log.new_value|default:"-"|truncatechars:30 }}</code></td>
  74. <td>{{ log.description|default:"-" }}</td>
  75. <td>{{ log.operator|default:"-" }}</td>
  76. </tr>
  77. {% empty %}
  78. <tr><td colspan="8" class="text-center text-muted py-4">暂无变更记录</td></tr>
  79. {% endfor %}
  80. </tbody>
  81. </table>
  82. </div>
  83. </div>
  84. </div>
  85. <!-- 分页 -->
  86. {% if page_obj.has_other_pages %}
  87. <nav class="mt-3">
  88. <ul class="pagination pagination-sm justify-content-center">
  89. {% if page_obj.has_previous %}
  90. <li class="page-item"><a class="page-link" href="?page={{ page_obj.previous_page_number }}&asset_number={{ asset_number }}&action={{ current_action }}"><i class="bi bi-chevron-left"></i></a></li>
  91. {% endif %}
  92. {% for num in page_obj.paginator.page_range %}
  93. {% if page_obj.number == num %}
  94. <li class="page-item active"><span class="page-link">{{ num }}</span></li>
  95. {% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
  96. <li class="page-item"><a class="page-link" href="?page={{ num }}&asset_number={{ asset_number }}&action={{ current_action }}">{{ num }}</a></li>
  97. {% endif %}
  98. {% endfor %}
  99. {% if page_obj.has_next %}
  100. <li class="page-item"><a class="page-link" href="?page={{ page_obj.next_page_number }}&asset_number={{ asset_number }}&action={{ current_action }}"><i class="bi bi-chevron-right"></i></a></li>
  101. {% endif %}
  102. </ul>
  103. </nav>
  104. {% endif %}
  105. {% endblock %}