{% extends "base.html" %} {% block title %}{{ project.title }} - 项目详情 - LandPPT{% endblock %} {% block extra_css %} {% endblock %} {% block content %}

{{ project.title }}

项目ID: {{ project.project_id }}

项目信息

{% if project.status == 'completed' %}
完成
{% elif project.status == 'in_progress' %}
进行
{% elif project.status == 'draft' %}
草稿
{% else %}
异常
{% endif %}
{% if project.status == 'completed' %}

项目已完成

所有阶段已完成

{% elif project.status == 'in_progress' %} {% if todo_board %} {% set current_stage = todo_board.stages | selectattr('status', 'equalto', 'running') | first %} {% if current_stage %}

{{ current_stage.name }}中

当前正在执行

{% else %} {% set next_stage = todo_board.stages | selectattr('status', 'equalto', 'pending') | first %} {% if next_stage %}

等待{{ next_stage.name }}

下一个阶段

{% else %}

项目进行中

正在处理中

{% endif %} {% endif %} {% else %}

项目进行中

正在处理中

{% endif %} {% elif project.status == 'draft' %}

草稿状态

等待开始

{% else %}

{{ project.status | title }}

当前项目状态

{% endif %}
主题

{{ project.topic }}

场景

{{ project.scenario }}

版本

v{{ project.version }}

创建时间

{{ project.created_at | strftime('%Y-%m-%d %H:%M') }}

{% if project.requirements %}
特殊要求

{{ project.requirements }}

{% endif %}
{% if project.status == 'in_progress' and todo_board %} 查看 TODO 看板 {% endif %} {% if project.status == 'completed' and project.slides_html %} 预览 PPT {% endif %}
{% if todo_board %}

进度概览

总体进度: {{ "%.1f" | format(todo_board.overall_progress) }}%

阶段状态

{% for stage in todo_board.stages %}
{% if stage.status == 'completed' %} {% elif stage.status == 'running' %} {% elif stage.status == 'failed' %} {% else %} {% endif %}
{{ stage.name }}

{{ stage.description }}

{% if stage.status == 'running' and stage.progress is defined %}
{% endif %}
{% if stage.status == 'pending' %} {% if stage.id == 'requirements_confirmation' %} 开始 {% elif stage.id == 'outline_generation' %} 生成大纲 {% elif stage.id == 'ppt_creation' %} 生成PPT {% else %} 开始 {% endif %} {% elif stage.status == 'running' %} 查看进度 {% elif stage.status == 'completed' %} 已完成 {% elif stage.status == 'failed' %} 重试 {% endif %}
{% endfor %}
{% endif %}
{% if project.outline and project.outline is not none and project.outline.get('slides') %}

PPT 大纲

{{ project.outline.get('title', project.topic or '未命名大纲') }}

总共 {{ project.outline.get('slides', [])|length }} 页幻灯片 | 场景: {{ project.outline.get('metadata', {}).get('scenario', project.scenario) }} | 语言: {{ project.outline.get('metadata', {}).get('language', 'zh') }}

{% for slide in project.outline.get('slides', []) %}
{{ slide.get('page_number', loop.index) }} {{ slide.get('title', '未命名幻灯片') }}
{% if slide.get('subtitle') %}

{{ slide.get('subtitle') }}

{% endif %}
{% if slide.get('content_points') and slide.get('content_points')|length > 0 %} {{ slide.get('content_points')[0][:80] }}{% if slide.get('content_points')[0]|length > 80 %}...{% endif %} {% if slide.get('content_points')|length > 1 %}
+{{ slide.get('content_points')|length - 1 }} 个要点 {% endif %} {% elif slide.get('content') %} {{ slide.get('content')[:80] }}{% if slide.get('content')|length > 80 %}...{% endif %} {% else %} 暂无内容 {% endif %}
{% endfor %}
{% elif project.outline and project.outline is not none %}

PPT 大纲

{{ project.outline.get('title', project.topic or '未命名大纲') if project.outline else (project.topic or '未命名大纲') }}

大纲内容

{% if project.outline and project.outline.get('content') %}
{{ project.outline.get('content') }}
{% else %}

大纲内容正在生成中...

{% endif %}
{% endif %} {% if versions %}

版本历史

{% for version in versions %}
v{{ version.version }}
{{ version.description }}

{{ version.timestamp | strftime('%Y-%m-%d %H:%M:%S') }}

{% endfor %}
{% endif %}
返回项目列表 项目仪表板
{% endblock %} {% block extra_js %} {% endblock %}