AnsysLink/frontend/index.html

385 lines
19 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CAE网格生成助手 - AI Agent</title>
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Font Awesome -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="/static/css/main.css" rel="stylesheet">
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container">
<a class="navbar-brand" href="#">
<i class="fas fa-cube me-2"></i>
CAE网格生成助手
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" href="#upload">上传文件</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#process">网格生成</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#results">结果展示</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#help">帮助</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Main Content -->
<div class="container-fluid">
<div class="row">
<!-- Sidebar -->
<div class="col-lg-3 col-md-4 sidebar">
<div class="sidebar-content">
<h5 class="sidebar-title">
<i class="fas fa-tasks me-2"></i>
处理流程
</h5>
<!-- Process Steps -->
<div class="process-steps">
<div class="step-item" id="step-upload">
<div class="step-icon">
<i class="fas fa-upload"></i>
</div>
<div class="step-content">
<h6>1. 上传STEP文件</h6>
<p class="text-muted">选择涡扇叶片STEP文件</p>
</div>
</div>
<div class="step-item" id="step-validate">
<div class="step-icon">
<i class="fas fa-check-circle"></i>
</div>
<div class="step-content">
<h6>2. 文件验证</h6>
<p class="text-muted">验证文件格式和完整性</p>
</div>
</div>
<div class="step-item" id="step-process">
<div class="step-icon">
<i class="fas fa-cogs"></i>
</div>
<div class="step-content">
<h6>3. 网格生成</h6>
<p class="text-muted">自动生成高质量网格</p>
</div>
</div>
<div class="step-item" id="step-quality">
<div class="step-icon">
<i class="fas fa-chart-line"></i>
</div>
<div class="step-content">
<h6>4. 质量检查</h6>
<p class="text-muted">评估网格质量</p>
</div>
</div>
<div class="step-item" id="step-results">
<div class="step-icon">
<i class="fas fa-download"></i>
</div>
<div class="step-content">
<h6>5. 结果导出</h6>
<p class="text-muted">下载网格文件和报告</p>
</div>
</div>
</div>
<!-- System Status -->
<div class="system-status mt-4">
<h6>
<i class="fas fa-info-circle me-2"></i>
系统状态
</h6>
<div class="status-item">
<span class="status-label">ANSYS连接:</span>
<span class="status-value" id="ansys-status">
<i class="fas fa-circle text-success"></i> 正常
</span>
</div>
<div class="status-item">
<span class="status-label">处理队列:</span>
<span class="status-value" id="queue-status">0 个任务</span>
</div>
</div>
</div>
</div>
<!-- Main Content Area -->
<div class="col-lg-9 col-md-8 main-content">
<!-- Header -->
<div class="content-header">
<h2>
<i class="fas fa-cube me-2"></i>
涡扇叶片网格生成
</h2>
<p class="text-muted">基于AI的自动化CAE网格生成系统</p>
</div>
<!-- Alert Container -->
<div id="alert-container"></div>
<!-- File Upload Section -->
<section id="upload-section" class="content-section">
<div class="card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-upload me-2"></i>
文件上传
</h5>
</div>
<div class="card-body">
<div class="upload-area" id="upload-area">
<div class="upload-content">
<i class="fas fa-cloud-upload-alt upload-icon"></i>
<h6>拖拽STEP文件到此处或点击选择</h6>
<p class="text-muted">支持 .step, .stp 格式,最大文件大小 100MB</p>
<input type="file" id="file-input" accept=".step,.stp" hidden>
<button class="btn btn-primary" onclick="document.getElementById('file-input').click()">
<i class="fas fa-folder-open me-2"></i>
选择文件
</button>
</div>
</div>
<!-- File Info -->
<div id="file-info" class="file-info mt-3" style="display: none;">
<div class="row">
<div class="col-md-6">
<strong>文件名:</strong> <span id="file-name"></span>
</div>
<div class="col-md-3">
<strong>大小:</strong> <span id="file-size"></span>
</div>
<div class="col-md-3">
<strong>状态:</strong> <span id="file-status"></span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Processing Section -->
<section id="processing-section" class="content-section" style="display: none;">
<div class="card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-cogs me-2"></i>
网格生成进度
</h5>
</div>
<div class="card-body">
<!-- Progress Bar -->
<div class="progress-container">
<div class="progress mb-3">
<div class="progress-bar progress-bar-striped progress-bar-animated"
id="progress-bar" role="progressbar" style="width: 0%">
<span id="progress-text">0%</span>
</div>
</div>
<div class="progress-info">
<div class="row">
<div class="col-md-6">
<strong>当前步骤:</strong> <span id="current-step">等待开始</span>
</div>
<div class="col-md-6">
<strong>预计剩余时间:</strong> <span id="estimated-time">--</span>
</div>
</div>
</div>
</div>
<!-- Processing Log -->
<div class="processing-log">
<h6>处理日志</h6>
<div id="log-container" class="log-container">
<!-- Log entries will be added here -->
</div>
</div>
<!-- Control Buttons -->
<div class="processing-controls mt-3">
<button id="start-processing" class="btn btn-success" disabled>
<i class="fas fa-play me-2"></i>
开始生成
</button>
<button id="pause-processing" class="btn btn-warning" disabled>
<i class="fas fa-pause me-2"></i>
暂停
</button>
<button id="stop-processing" class="btn btn-danger" disabled>
<i class="fas fa-stop me-2"></i>
停止
</button>
</div>
</div>
</div>
</section>
<!-- Results Section -->
<section id="results-section" class="content-section" style="display: none;">
<div class="row">
<!-- Mesh Statistics -->
<div class="col-lg-6">
<div class="card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-chart-bar me-2"></i>
网格统计
</h5>
</div>
<div class="card-body">
<div class="stats-grid">
<div class="stat-item">
<div class="stat-value" id="element-count">--</div>
<div class="stat-label">单元数量</div>
</div>
<div class="stat-item">
<div class="stat-value" id="node-count">--</div>
<div class="stat-label">节点数量</div>
</div>
<div class="stat-item">
<div class="stat-value" id="quality-score">--</div>
<div class="stat-label">质量评分</div>
</div>
<div class="stat-item">
<div class="stat-value" id="generation-time">--</div>
<div class="stat-label">生成时间(秒)</div>
</div>
</div>
</div>
</div>
</div>
<!-- Quality Assessment -->
<div class="col-lg-6">
<div class="card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-check-circle me-2"></i>
质量评估
</h5>
</div>
<div class="card-body">
<div class="quality-status" id="quality-status">
<div class="quality-badge">
<span class="badge bg-secondary">等待结果</span>
</div>
</div>
<div class="quality-details mt-3" id="quality-details">
<!-- Quality details will be populated here -->
</div>
</div>
</div>
</div>
</div>
<!-- Mesh Visualization -->
<div class="row mt-4">
<div class="col-12">
<div class="card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-eye me-2"></i>
网格可视化
</h5>
</div>
<div class="card-body">
<div id="mesh-visualization" class="mesh-visualization">
<div class="visualization-placeholder">
<i class="fas fa-cube visualization-placeholder-icon"></i>
<p>网格可视化将在生成完成后显示</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Export Options -->
<div class="row mt-4">
<div class="col-12">
<div class="card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-download me-2"></i>
导出选项
</h5>
</div>
<div class="card-body">
<div class="export-options">
<div class="row">
<div class="col-md-4">
<button id="download-mesh" class="btn btn-outline-primary w-100" disabled>
<i class="fas fa-file-archive me-2"></i>
下载网格文件
</button>
</div>
<div class="col-md-4">
<button id="download-report" class="btn btn-outline-primary w-100" disabled>
<i class="fas fa-file-pdf me-2"></i>
下载报告
</button>
</div>
<div class="col-md-4">
<button id="download-image" class="btn btn-outline-primary w-100" disabled>
<i class="fas fa-image me-2"></i>
下载图像
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<!-- Footer -->
<footer class="footer mt-5">
<div class="container">
<div class="row">
<div class="col-md-6">
<p>&copy; 2025 CAE网格生成助手. All rights reserved.</p>
</div>
<div class="col-md-6 text-end">
<p>Powered by ANSYS Mechanical & PyMechanical</p>
</div>
</div>
</div>
</footer>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<!-- Custom JS -->
<script src="/static/js/main.js"></script>
</body>
</html>