123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>AI室内设计智能出图系统</title>
- <link href="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.13/theme-chalk/index.css" rel="stylesheet">
- <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
- <style>
- * {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- }
- body {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
- min-height: 100vh;
- }
- .container {
- display: flex;
- height: 100vh;
- max-width: 1400px;
- margin: 0 auto;
- padding: 20px;
- gap: 20px;
- }
- .panel {
- background: rgba(255, 255, 255, 0.95);
- border-radius: 16px;
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
- backdrop-filter: blur(10px);
- border: 1px solid rgba(255, 255, 255, 0.2);
- overflow: hidden;
- transition: all 0.3s ease;
- }
- .panel:hover {
- transform: translateY(-2px);
- box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15);
- }
- .left-panel {
- flex: 0 0 320px;
- display: flex;
- flex-direction: column;
- }
- .middle-panel {
- flex: 0 0 350px;
- display: flex;
- flex-direction: column;
- }
- .right-panel {
- flex: 1;
- display: flex;
- flex-direction: column;
- }
- .panel-header {
- background: linear-gradient(45deg, #4CAF50, #45a049);
- color: white;
- padding: 20px;
- text-align: center;
- position: relative;
- overflow: hidden;
- }
- .panel-header::before {
- content: '';
- position: absolute;
- top: -50%;
- left: -50%;
- width: 200%;
- height: 200%;
- background: linear-gradient(45deg, transparent, rgba(255,255,255,0.1), transparent);
- transform: rotate(45deg);
- animation: shine 3s infinite;
- }
- @keyframes shine {
- 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
- 100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
- }
- .panel-header h3 {
- font-size: 18px;
- font-weight: 600;
- margin: 0;
- position: relative;
- z-index: 1;
- }
- .panel-header .subtitle {
- font-size: 12px;
- opacity: 0.9;
- margin-top: 5px;
- position: relative;
- z-index: 1;
- }
- .panel-content {
- flex: 1;
- padding: 20px;
- overflow-y: auto;
- }
- .requirement-section {
- margin-bottom: 25px;
- }
- .section-title {
- font-size: 16px;
- font-weight: 600;
- color: #333;
- margin-bottom: 15px;
- padding-bottom: 8px;
- border-bottom: 2px solid #4CAF50;
- position: relative;
- }
- .section-title::after {
- content: '';
- position: absolute;
- bottom: -2px;
- left: 0;
- width: 30px;
- height: 2px;
- background: #2196F3;
- }
- .tag-group {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- margin-bottom: 15px;
- }
- .requirement-tag {
- padding: 8px 16px;
- border-radius: 20px;
- border: 2px solid #e0e0e0;
- background: white;
- cursor: pointer;
- transition: all 0.3s ease;
- font-size: 13px;
- color: #666;
- position: relative;
- overflow: hidden;
- }
- .requirement-tag::before {
- content: '';
- position: absolute;
- top: 0;
- left: -100%;
- width: 100%;
- height: 100%;
- background: linear-gradient(90deg, transparent, rgba(76,175,80,0.1), transparent);
- transition: left 0.5s ease;
- }
- .requirement-tag:hover::before {
- left: 100%;
- }
- .requirement-tag:hover {
- transform: translateY(-2px);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
- }
- .requirement-tag.selected {
- background: linear-gradient(45deg, #4CAF50, #45a049);
- color: white;
- border-color: #4CAF50;
- transform: scale(1.05);
- }
- .indicator-item {
- background: #f8f9fa;
- border-radius: 12px;
- padding: 15px;
- margin-bottom: 15px;
- border-left: 4px solid #4CAF50;
- transition: all 0.3s ease;
- }
- .indicator-item:hover {
- background: #e8f5e8;
- transform: translateX(5px);
- }
- .indicator-title {
- font-weight: 600;
- color: #333;
- margin-bottom: 8px;
- font-size: 14px;
- }
- .indicator-value {
- color: #666;
- font-size: 13px;
- line-height: 1.4;
- }
- .progress-bar {
- width: 100%;
- height: 6px;
- background: #e0e0e0;
- border-radius: 3px;
- overflow: hidden;
- margin-top: 8px;
- }
- .progress-fill {
- height: 100%;
- background: linear-gradient(45deg, #4CAF50, #2196F3);
- border-radius: 3px;
- transition: width 0.5s ease;
- }
- .solution-preview {
- background: #f8f9fa;
- border-radius: 12px;
- padding: 20px;
- margin-bottom: 20px;
- text-align: center;
- min-height: 200px;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- border: 2px dashed #ddd;
- transition: allall 0.3s ease;
- }
- .solution-preview.active {
- border-color: #4CAF50;
- background: linear-gradient(135deg, #e8f5e8, #f0f8f0);
- }
- .preview-icon {
- font-size: 48px;
- color: #ccc;
- margin-bottom: 15px;
- transition: all 0.3s ease;
- }
- .solution-preview.active .preview-icon {
- color: #4CAF50;
- animation: pulse 2s infinite;
- }
- @keyframes pulse {
- 0% { transform: scale(1); }
- 50% { transform: scale(1.1); }
- 100% { transform: scale(1); }
- }
- .preview-text {
- color: #666;
- font-size: 14px;
- }
- .solution-preview.active .preview-text {
- color: #333;
- font-weight: 500;
- }
- .solution-details {
- background: white;
- border-radius: 12px;
- padding: 20px;
- border: 1px solid #e0e0e0;
- margin-bottom: 15px;
- }
- .detail-title {
- font-weight: 600;
- color: #333;
- margin-bottom: 10px;
- font-size: 15px;
- }
- .detail-content {
- color: #666;
- font-size: 13px;
- line-height: 1.5;
- }
- .color-palette {
- display: flex;
- gap: 8px;
- margin-top: 10px;
- }
- .color-item {
- width: 30px;
- height: 30px;
- border-radius: 50%;
- border: 2px solid white;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
- transition: transform 0.3s ease;
- }
- .color-item:hover {
- transform: scale(1.2);
- }
- .material-list {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- margin-top: 10px;
- }
- .material-tag {
- background: #e3f2fd;
- color: #1976d2;
- padding: 4px 8px;
- border-radius: 12px;
- font-size: 12px;
- border: 1px solid #bbdefb;
- }
- .stats-grid {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 15px;
- margin-top: 20px;
- }
- .stat-item {
- background: white;
- padding: 15px;
- border-radius: 8px;
- text-align: center;
- border: 1px solid #e0e0e0;
- }
- .stat-number {
- font-size: 24px;
- font-weight: bold;
- color: #4CAF50;
- }
- .stat-label {
- font-size: 12px;
- color: #666;
- margin-top: 5px;
- }
- .floating-button {
- position: fixed;
- bottom: 30px;
- right: 30px;
- width: 60px;
- height: 60px;
- background: linear-gradient(45deg, #4CAF50, #45a049);
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- color: white;
- font-size: 24px;
- cursor: pointer;
- box-shadow: 0 4px 20px rgba(76, 175, 80, 0.4);
- transition: all 0.3s ease;
- z-index: 1000;
- }
- .floating-button:hover {
- transform: scale(1.1);
- box-shadow: 0 6px 25px rgba(76, 175, 80, 0.6);
- }
- /* 滚动条样式 */
- .panel-content::-webkit-scrollbar {
- width: 6px;
- }
- .panel-content::-webkit-scrollbar-track {
- background: #f1f1f1;
- border-radius: 3px;
- }
- .panel-content::-webkit-scrollbar-thumb {
- background: #4CAF50;
- border-radius: 3px;
- }
- .panel-content::-webkit-scrollbar-thumb:hover {
- background: #45a049;
- }
- /* 响应式设计 */
- @media (max-width: 1200px) {
- .container {
- flex-direction: column;
- height: auto;
- min-height: 100vh;
- }
-
- .left-panel, .middle-panel, .right-panel {
- flex: none;
- min-height: 400px;
- }
- }
- </style>
- </head>
- <body>
- <div class="container">
- <!-- 左栏:抽象需求 -->
- <div class="panel left-panel">
- <div class="panel-header">
- <h3><i class="fas fa-lightbulb"></i> 抽象需求输入</h3>
- <div class="subtitle">业主需求 → 标准化提取</div>
- </div>
- <div class="panel-content">
- <div class="requirement-section">
- <div class="section-title">氛围需求</div>
- <div class="tag-group">
- <div class="requirement-tag" data-category="atmosphere" data-value="温馨">温馨</div>
- <div class="requirement-tag" data-category="atmosphere" data-value="科技感">科技感</div>
- <div class="requirement-tag" data-category="atmosphere" data-value="活力">活力</div>
- <div class="requirement-tag" data-category="atmosphere" data-value="浪漫">浪漫</div>
- <div class="requirement-tag" data-category="atmosphere" data-value="极简">极简</div>
- <div class="requirement-tag" data-category="atmosphere" data-value="奢华">奢华</div>
- </div>
- </div>
- <div class="requirement-section">
- <div class="section-title">居住者类型</div>
- <div class="tag-group">
- <div class="requirement-tag" data-category="resident" data-value="单身女性">单身女性</div>
- <div class="requirement-tag" data-category="resident" data-value="单身男性">单身男性</div>
- <div class="requirement-tag" data-category="resident" data-value="年轻情侣">年轻情侣</div>
- <div class="requirement-tag" data-category="resident" data-value="亲子家庭">亲子家庭</div>
- <div class="requirement-tag" data-category="resident" data-value="三代同堂">三代同堂</div>
- </div>
- </div>
- <div class="requirement-section">
- <div class="section-title">场景偏好</div>
- <div class="tag-group">
- <div class="requirement-tag" data-category="scene" data-value="居家办公">居家办公</div>
- <div class="requirement-tag" data-category="scene" data-value="运动健身">运动健身</div>
- <div class="requirement-tag" data-category="scene" data-value="观影娱乐">观影娱乐</div>
- <div class="requirement-tag"data-category="scene" data-value="烹饪美食">烹饪美食</div>
- <div class="requirement-tag" data-category="scene" data-value="阅读学习">阅读学习</div>
- <div class="requirement-tag" data-category="scene" data-value="聚会社交">聚会社交</div>
- <div class="requirement-tag" data-category="scene" data-value="艺术创作">艺术创作</div>
- </div>
- </div>
- <div class="requirement-section">
- <div class="section-title">空间类型</div>
- <div class="tag-group">
- <div class="requirement-tag" data-category="space" data-value="客厅">客厅</div>
- <div class="requirement-tag" data-category="space" data-value="卧室">卧室</div>
- <div class="requirement-tag" data-category="space" data-value="厨房">厨房</div>
- <div class="requirement-tag" data-category="space" data-value="书房">书房</div>
- <div class="requirement-tag" data-category="space" data-value="儿童房">儿童房</div>
- </div>
- </div>
- </div>
- </div>
- <!-- 中栏:具体指标 -->
- <div class="panel middle-panel">
- <div class="panel-header">
- <h3><i class="fas fa-cogs"></i> 指标量化分析</h3>
- <div class="subtitle">需求 → 可执行指标</div>
- </div>
- <div class="panel-content">
- <div id="indicators-container">
- <div class="indicator-item" style="opacity: 0.5;">
- <div class="indicator-title">请先选择左侧需求</div>
- <div class="indicator-value">系统将自动生成对应的量化指标</div>
- </div>
- </div>
- </div>
- </div>
- <!-- 右栏:具体方案 -->
- <div class="panel right-panel">
- <div class="panel-header">
- <h3><i class="fas fa-magic"></i> 方案生成预览</h3>
- <div class="subtitle">指标 → 可视化效果</div>
- </div>
- <div class="panel-content">
- <div class="solution-preview" id="solution-preview">
- <div class="preview-icon">
- <i class="fas fa-image"></i>
- </div>
- <div class="preview-text">选择需求和指标后,这里将展示设计方案预览</div>
- </div>
- <div id="solution-details" style="display: none;">
- <div class="solution-details">
- <div class="detail-title">色彩方案</div>
- <div class="detail-content" id="color-scheme">
- <div class="color-palette" id="color-palette"></div>
- </div>
- </div>
- <div class="solution-details">
- <div class="detail-title">材质搭配</div>
- <div class="detail-content">
- <div class="material-list" id="material-list"></div>
- </div>
- </div>
- <div class="solution-details">
- <div class="detail-title">空间布局</div>
- <div class="detail-content" id="layout-description"></div>
- </div>
- <div class="solution-details">
- <div class="detail-title">灯光设计</div>
- <div class="detail-content" id="lighting-description"></div>
- </div>
- </div>
- <div class="stats-grid" id="stats-grid" style="display: none;">
- <div class="stat-item">
- <div class="stat-number" id="completion-rate">0%</div>
- <div class="stat-label">完成度</div>
- </div>
- <div class="stat-item">
- <div class="stat-number" id="match-score">0</div>
- <div class="stat-label">匹配度</div>
- </div>
- <div class="stat-item">
- <div class="stat-number" id="render-time">0分钟</div>
- <div class="stat-label">预计渲染时间</div>
- </div>
- <div class="stat-item">
- <div class="stat-number" id="cost-estimate">¥0</div>
- <div class="stat-label">预估成本</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="floating-button" onclick="generateFinalSolution()">
- <i class="fas fa-play"></i>
- </div>
- <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>
- <script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.13/index.js"></script>
- <script>
- // 需求数据配置
- const requirementData = {
- atmosphere: {
- '温馨': {
- color: { main: '暖色调(2700-3000K)', rgb: 'RGB(255,220,150)', accent: '暖木色点缀' },
- material: ['布艺60%', '木材30%', '金属10%'],
- lighting: '吊灯+氛围灯带(200-300lux)',
- layout: '圆润弧形家具,留白25-30%'
- },
- '科技感': {
- color: { main: '冷色调(5000-6000K)', rgb: 'RGB(150,200,250)', accent: '金属质感' },
- material: ['金属50%', '岩板30%', '玻璃20%'],
- lighting: '嵌入式无主灯(300-400lux)',
- layout: '直线条家具,留白35-40%'
- },
- '活力': {
- color: { main: '浅灰基调', rgb: 'RGB(240,240,240)', accent: '橙色点缀12-15%' },
- material: ['布艺40%', '金属30%', '木材30%'],
- lighting: '混合光源(250-350lux)',
- layout: '直线+局部弧形,动感布局'
- },
- '浪漫': {
- color: { main: '粉调暖色', rgb: 'RGB(255,240,245)', accent: '玫瑰金点缀' },
- material: ['布艺70%', '大理石20%', '金属10%'],
- lighting: '柔和漫射光(180-250lux)',
- layout: '弧形元素为主,层次丰富'
- },
- '极简': {
- color: { main: '纯白基调', rgb: 'RGB(255,255,255)', accent: '黑色线条' },
- material: ['岩板40%', '木材30%', '金属30%'],
- lighting: '隐藏式线性光(200-300lux)',
- layout: '几何线条,大面积留白40%+'
- },
- '奢华': {
- color: { main: '深色基调', rgb: 'RGB(30,30,40)', accent: '金色装饰' },
- material: ['大理石50%', '真皮30%', '金属20%'],
- lighting: '水晶吊灯+重点照明(400-500lux)',
- layout: '对称布局,精致细节'
- }
- }
- };
- // 选中的需求
- let selectedRequirements = {
- atmosphere: null,
- resident: null,
- scene: null,
- space: null
- };
- // 初始化事件监听
- document.addEventListener('DOMContentLoaded', function() {
- const tags = document.querySelectorAll('.requirement-tag');
- tags.forEach(tag => {
- tag.addEventListener('click', function() {
- const category = this.dataset.category;
- const value = this.dataset.value;
-
- // 取消同类别其他选中
- document.querySelectorAll(`[data-category="${category}"]`).forEach(t => {
- t.classList.remove('selected');
- });
-
- // 选中当前标签
- this.classList.add('selected');
- selectedRequirements[category] = value;
-
- // 更新指标和方案
- updateIndicators();
- updateSolution();
- });
- });
- });
- // 更新指标显示
- function updateIndicators() {
- const container = document.getElementById('indicators-container');
- container.innerHTML = '';
- if (!selectedRequirements.atmosphere) {
- container.innerHTML = '<div class="indicator-item" style="opacity: 0.5;"><div class="indicator-title">请先选择氛围需求</div><div class="indicator-value">系统将自动生成对应的量化指标</div></div>';
- return;
- }
- const data = requirementData.atmosphere[selectedRequirements.atmosphere];
- if (!data) return;
- // 色彩指标
- const colorIndicator = document.createElement('div');
- colorIndicator.className = 'indicator-item';
- colorIndicator.innerHTML = `
- <div class="indicator-title">色彩体系</div>
- <div class="indicator-value">
- 主色调: ${data.color.main}<br>
- RGB值: ${data.color.rgb}<br>
- 点缀色: ${data.color.accent}
- </div>
- <div class="progress-bar">
- <div class="progress-fill" style="width: 85%"></div>
- </div>
- `;
- container.appendChild(colorIndicator);
- // 材质指标
- const materialIndicator = document.createElement('div');
- materialIndicator.className = 'indicator-item';
- materialIndicator.innerHTML = `
- <div class="indicator-title">材质配比</div>
- <div class="indicator-value">
- ${data.material.join('<br>')}
- </div>
- <div class="progress-bar">
- <div class="progress-fill" style="width: 92%"></div>
- </div>
- `;
- container.appendChild(materialIndicator);
- // 灯光指标
- const lightingIndicator = document.createElement('div');
- lightingIndicator.className = 'indicator-item';
- lightingIndicator.innerHTML = `
- <div class="indicator-title">灯光设计</div>
- <div class="indicator-value">${data.lighting}</div>
- <div class="progress-bar">
- <div class="progress-fill" style="width: 78%"></div>
- </div>
- `;
- container.appendChild(lightingIndicator);
- // 空间结构指标
- const layoutIndicator = document.createElement('div');
- layoutIndicator.className = 'indicator-item';
- layoutIndicator.innerHTML = `
- <div class="indicator-title">空间结构</div>
- <div class="indicator-value">${data.layout}</div>
- <div class="progress-bar">
- <div class="progress-fill" style="width: 88%"></div>
- </div>
- `;
- container.appendChild(layoutIndicator);
- }
- // 更新方案显示
- function updateSolution() {
- const preview = document.getElementById('solution-preview');
- const details = document.getElementById('solution-details');
- const stats = document.getElementById('stats-grid');
- if (!selectedRequirements.atmosphere) {
- preview.classList.remove('active');
- details.style.display = 'none';
- stats.style.display = 'none';
- return;
- }
- preview.classList.add('active');
- details.style.display = 'block';
- stats.style.display = 'grid';
- const data = requirementData.atmosphere[selectedRequirements.atmosphere];
- if (!data) return;
- // 更新色彩方案
- const colorPalette = document.getElementById('color-palette');
- const colors = getColorsFromAtmosphere(selectedRequirements.atmosphere);
- colorPalette.innerHTML = colors.map(color =>
- `<div class="color-item" style="background: ${color}"></div>`
- ).join('');
- // 更新材质列表
- const materialList = document.getElementById('material-list');
- materialList.innerHTML = data.material.map(material =>
- `<span class="material-tag">${material}</span>`
- ).join('');
- // 更新布局描述
- document.getElementById('layout-description').textContent = data.layout;
- // 更新灯光描述
- document.getElementById('lighting-description').textContent = data.lighting;
- // 更新统计数据
- updateStats();
- }
- // 获取氛围对应的色彩
- function getColorsFromAtmosphere(atmosphere) {
- const colorMaps = {
- '温馨': ['#FFD700', '#DEB887', '#8B4513', '#CD853F'],
- '科技感': ['#4169E1', '#87CEEB', '#708090', '#C0C0C0'],
- '活力': ['#FF6347', '#FFA500', '#32CD32', '#FF1493'],
- '浪漫': ['#FFB6C1', '#FFC0CB', '#DDA0DD', '#F0E68C'],
- '极简': ['#FFFFFF', '#F5F5F5', '#DCDCDC', '#000000'],
- '奢华': ['#800080', '#DAA520', '#8B0000', '#2F4F4F']
- };
- return colorMaps[atmosphere] || ['#CCCCCC', '#DDDDDD', '#EEEEEE', '#FFFFFF'];
- }
- // 更新统计数据
- function updateStats() {
- const selectedCount = Object.values(selectedRequirements).filter(v => v !== null).length;
- const completionRate = Math.round((selectedCount / 4) * 100);
-
- document.getElementById('completion-rate').textContent = completionRate + '%';
- document.getElementById('match-score').textContent = Math.round(85 + Math.random() * 10);
- document.getElementById('render-time').textContent = Math.round(5 + Math.random() * 10) + '分钟';
- document.getElementById('cost-estimate').textContent = '¥' + Math.round(800 + Math.random() * 400);
- }
- // 生成最终方案
- function generateFinalSolution() {
- const selectedCount = Object.values(selectedRequirements).filter(v => v !== null).length;
-
- if (selectedCount === 0) {
- alert('请先选择需求标签');
- return;
- }
- const button = document.querySelector('.floating-button');
- button.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
-
- setTimeout(() => {
- button.innerHTML = '<i class="fas fa-check"></i>';
-
- // 模拟生成效果图
- const preview = document.getElementById('solution-preview');
- preview.innerHTML = `
- <div class="preview-icon" style="color: #4CAF50;">
- <i class="fas fa-home"></i>
- </div>
- <div class="preview-text" style="color: #333; font-weight: 500;">
- ${selectedRequirements.atmosphere || '现代'}风格方案生成完成!<br>
- <small>点击查看4K高清效果图</small>
- </div>
- `;
-
- setTimeout(() => {
- button.innerHTML = '<i class="fas fa-play"></i>';
- }, 2000);
-
- alert(`方案生成成功!\n已选择: ${Object.entries(selectedRequirements).filter(([k,v]) => v).map(([k,v]) => v).join(', ')}`);
- }, 2000);
- }
- </script>
- </body>
- </html>
|