109 lines
3.8 KiB
HTML
109 lines
3.8 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}文件中心{% endblock %}
|
|
|
|
{% block content %}
|
|
<section class="page-header">
|
|
<span class="eyebrow">Documents</span>
|
|
<h1 class="page-title">文件中心</h1>
|
|
<p class="page-lead">上传资料、查看状态、执行入库。页面只保留最常用操作。</p>
|
|
<div class="button-row">
|
|
<a class="button button-primary" href="{% url 'documents:upload' %}">上传文件</a>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="metric-grid">
|
|
<article class="metric-card">
|
|
<div class="metric-label">文件总数</div>
|
|
<div class="metric-value">{{ status_counts.total }}</div>
|
|
</article>
|
|
<article class="metric-card">
|
|
<div class="metric-label">已完成入库</div>
|
|
<div class="metric-value">{{ status_counts.indexed }}</div>
|
|
</article>
|
|
<article class="metric-card">
|
|
<div class="metric-label">待入库</div>
|
|
<div class="metric-value">{{ status_counts.uploaded }}</div>
|
|
</article>
|
|
<article class="metric-card">
|
|
<div class="metric-label">失败</div>
|
|
<div class="metric-value">{{ status_counts.failed }}</div>
|
|
</article>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<div class="section-heading">
|
|
<div>
|
|
<h2 class="section-title">异常提示</h2>
|
|
<p class="section-copy">只保留需要处理的异常。</p>
|
|
</div>
|
|
</div>
|
|
<ul class="risk-list">
|
|
{% for item in exception_items %}
|
|
<li class="risk-item">
|
|
<strong>{{ item.title }}</strong>
|
|
<div class="muted">{{ item.detail }}</div>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<div class="section-heading">
|
|
<div>
|
|
<h2 class="section-title">资料目录总览</h2>
|
|
<p class="section-copy">页面下方保留真实文件记录与手动入库动作,保证演示原型仍基于当前系统能力运行。</p>
|
|
</div>
|
|
</div>
|
|
<div class="table-wrap">
|
|
<table class="data-table">
|
|
<thead>
|
|
<tr>
|
|
<th>文件名</th>
|
|
<th>场景</th>
|
|
<th>类型</th>
|
|
<th>大小</th>
|
|
<th>状态</th>
|
|
<th>操作与备注</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for document in documents %}
|
|
<tr>
|
|
<td>{{ document.original_name }}</td>
|
|
<td>{{ document.scenario_id }}</td>
|
|
<td>{{ document.file_type }}</td>
|
|
<td>{{ document.size }}</td>
|
|
<td>
|
|
<span class="pill {% if document.status == 'indexed' %}pill-success{% elif document.status == 'failed' %}pill-danger{% else %}pill-signal{% endif %}">
|
|
{{ document.get_status_display_text }}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<div class="stack">
|
|
{% if document.status != "indexed" %}
|
|
<form action="{% url 'documents:index' document.id %}" method="post">
|
|
{% csrf_token %}
|
|
<button type="submit">执行入库</button>
|
|
</form>
|
|
{% else %}
|
|
<span class="status status-success">已可参与检索与审核</span>
|
|
{% endif %}
|
|
{% if document.error_message %}
|
|
<pre class="code-block">{{ document.error_message }}</pre>
|
|
{% endif %}
|
|
<span class="muted">上传时间:{{ document.created_at|date:"Y-m-d H:i" }}</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% empty %}
|
|
<tr>
|
|
<td colspan="6">暂无文件,请先导入申报资料或法规原文。</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
{% endblock %}
|