Wardrobe/prototype/index.html
jif2.zhang 38b5e3190a init: Wardrobe 衣物管理系统 - 项目首页、OTA 升级、Android CI/CD
- 响应式项目首页 (Landing, 含 R2 APK 下载) + 路由 /home 调整
- OTA 升级: tauri-plugin-hotswap (lib.rs/main.rs 拆分, 客户端热替换)
- OTA 服务端 (check/bundle/manifest-web) + build-ota/genkey/upload 脚本
- 密钥/凭据统一存配置中心 (signing + ota + cloudflare 分组)
- Android CI (android-* 分支) + OTA CI (手动触发), 产物上传 R2
- 修复 tsc/构建阻塞问题
2026-09-11 15:46:42 +08:00

823 lines
36 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=390, initial-scale=1.0">
<title>Wardrobe - 衣物管理系统 原型设计</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="phone-frame">
<div class="status-bar">
<span class="time">9:41</span>
<div class="status-icons">
<svg width="17" height="12" viewBox="0 0 17 12"><rect x="0" y="3" width="3" height="9" rx="1" fill="#1a1a1a"/><rect x="4.5" y="2" width="3" height="10" rx="1" fill="#1a1a1a"/><rect x="9" y="0" width="3" height="12" rx="1" fill="#1a1a1a"/><rect x="13.5" y="1" width="3" height="11" rx="1" fill="#1a1a1a"/></svg>
<svg width="25" height="12" viewBox="0 0 25 12"><rect x="0" y="0.5" width="22" height="11" rx="2" stroke="#1a1a1a" fill="none" stroke-width="1"/><rect x="22.5" y="3.5" width="2" height="5" rx="1" fill="#1a1a1a"/><rect x="1.5" y="2" width="19" height="8" rx="1" fill="#1a1a1a"/></svg>
</div>
</div>
<!-- Page: Home -->
<div class="page active" id="page-home">
<div class="page-header">
<div>
<p class="greeting">早上好 ☀️</p>
<h1 class="page-title">今日穿搭</h1>
</div>
<div class="header-actions">
<button class="icon-btn" onclick="showPage('page-add')">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</button>
</div>
</div>
<div class="scroll-content">
<div class="weather-card">
<div class="weather-info">
<span class="weather-icon">🌤️</span>
<div>
<p class="weather-temp">24°C</p>
<p class="weather-desc">多云 · 适合轻薄外套</p>
</div>
</div>
<div class="weather-tags">
<span class="tag"></span>
<span class="tag">通勤</span>
</div>
</div>
<div class="section-header">
<h2>推荐搭配</h2>
<button class="text-btn" onclick="showPage('page-outfit')">查看更多</button>
</div>
<div class="outfit-card">
<div class="outfit-preview">
<div class="outfit-item-grid">
<div class="outfit-thumb" style="background:#E8DDD3;">
<span>👕</span><small>白衬衫</small>
</div>
<div class="outfit-thumb" style="background:#D4C5B5;">
<span>👖</span><small>卡其裤</small>
</div>
<div class="outfit-thumb" style="background:#C9B8A5;">
<span>🧥</span><small>米色风衣</small>
</div>
<div class="outfit-thumb" style="background:#E0D5C8;">
<span>👟</span><small>小白鞋</small>
</div>
</div>
</div>
<div class="outfit-info">
<div class="outfit-tags">
<span class="occasion-tag">通勤</span>
<span class="rating">⭐ 4.8</span>
</div>
<p class="outfit-label">简约通勤风</p>
<div class="outfit-actions">
<button class="action-btn save-btn" onclick="showToast('已保存到日历')">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>
保存到日历
</button>
<button class="action-btn refresh-btn" onclick="refreshOutfit()">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/></svg>
换一套
</button>
</div>
</div>
</div>
<div class="section-header">
<h2>衣橱概览</h2>
<button class="text-btn" onclick="showPage('page-closet')">查看全部</button>
</div>
<div class="stats-row">
<div class="stat-card">
<span class="stat-num">42</span>
<span class="stat-label">衣物总数</span>
</div>
<div class="stat-card">
<span class="stat-num">15</span>
<span class="stat-label">搭配收藏</span>
</div>
<div class="stat-card">
<span class="stat-num">73%</span>
<span class="stat-label">利用率</span>
</div>
</div>
<div class="category-grid">
<div class="category-item" onclick="showPage('page-closet')">
<div class="category-icon" style="background:#F5EDE6;">👕</div>
<span>上衣</span>
<small>12件</small>
</div>
<div class="category-item" onclick="showPage('page-closet')">
<div class="category-icon" style="background:#EDE5DA;">👖</div>
<span>下装</span>
<small>8件</small>
</div>
<div class="category-item" onclick="showPage('page-closet')">
<div class="category-icon" style="background:#E5DDD4;">🧥</div>
<span>外套</span>
<small>6件</small>
</div>
<div class="category-item" onclick="showPage('page-closet')">
<div class="category-icon" style="background:#DDD5CC;">👗</div>
<span>连衣裙</span>
<small>5件</small>
</div>
<div class="category-item" onclick="showPage('page-closet')">
<div class="category-icon" style="background:#D8D0C7;">👟</div>
<span>鞋履</span>
<small>6件</small>
</div>
<div class="category-item" onclick="showPage('page-closet')">
<div class="category-icon" style="background:#F0E8DF;">👜</div>
<span>配饰</span>
<small>5件</small>
</div>
</div>
<div class="section-header">
<h2>需要关注</h2>
</div>
<div class="alert-list">
<div class="alert-item">
<span class="alert-icon">🔔</span>
<div class="alert-text">
<p>3件衣物超过30天未穿</p>
<small>考虑搭配或整理</small>
</div>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
<div class="alert-item">
<span class="alert-icon">🧺</span>
<div class="alert-text">
<p>2件衣物待清洁</p>
<small>白衬衫、运动T恤</small>
</div>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
</div>
<div class="bottom-spacer"></div>
</div>
</div>
<!-- Page: Closet -->
<div class="page" id="page-closet">
<div class="page-header">
<h1 class="page-title">我的衣橱</h1>
<button class="icon-btn" onclick="showPage('page-add')">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</button>
</div>
<div class="scroll-content">
<div class="search-bar">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
<input type="text" placeholder="搜索衣物..." class="search-input">
</div>
<div class="filter-bar" id="filter-bar">
<button class="filter-btn active" onclick="filterCloset(this, 'all')">全部</button>
<button class="filter-btn" onclick="filterCloset(this, 'top')">上衣</button>
<button class="filter-btn" onclick="filterCloset(this, 'bottom')">下装</button>
<button class="filter-btn" onclick="filterCloset(this, 'outer')">外套</button>
<button class="filter-btn" onclick="filterCloset(this, 'dress')">连衣裙</button>
<button class="filter-btn" onclick="filterCloset(this, 'shoes')">鞋履</button>
<button class="filter-btn" onclick="filterCloset(this, 'acc')">配饰</button>
</div>
<div class="filter-bar" style="margin-top:8px;">
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
<span class="filter-sep">|</span>
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
<button class="filter-btn small" onclick="this.classList.toggle('active')"></button>
</div>
<div class="view-toggle">
<button class="view-btn active" id="grid-view-btn" onclick="setView('grid')">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>
</button>
<button class="view-btn" id="list-view-btn" onclick="setView('list')">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><rect x="3" y="4" width="18" height="4" rx="1"/><rect x="3" y="10" width="18" height="4" rx="1"/><rect x="3" y="16" width="18" height="4" rx="1"/></svg>
</button>
</div>
<div class="closet-grid" id="closet-grid">
<div class="clothing-card" data-cat="top" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#F0E8DF;"><span>👕</span></div>
<div class="clothing-meta">
<p class="clothing-name">白色衬衫</p>
<small>上衣 · 3次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="bottom" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#E5DDD4;"><span>👖</span></div>
<div class="clothing-meta">
<p class="clothing-name">卡其休闲裤</p>
<small>下装 · 5次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="outer" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#DDD5CC;"><span>🧥</span></div>
<div class="clothing-meta">
<p class="clothing-name">米色风衣</p>
<small>外套 · 2次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="dress" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#F5EDE6;"><span>👗</span></div>
<div class="clothing-meta">
<p class="clothing-name">碎花连衣裙</p>
<small>连衣裙 · 1次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="shoes" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#E8E0D7;"><span>👟</span></div>
<div class="clothing-meta">
<p class="clothing-name">白色运动鞋</p>
<small>鞋履 · 8次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="acc" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#F0E8DF;"><span>👜</span></div>
<div class="clothing-meta">
<p class="clothing-name">棕色手提包</p>
<small>配饰 · 4次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="top" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#E0D8CF;"><span>👔</span></div>
<div class="clothing-meta">
<p class="clothing-name">条纹T恤</p>
<small>上衣 · 6次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="bottom" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#D8D0C7;"><span>👖</span></div>
<div class="clothing-meta">
<p class="clothing-name">蓝色牛仔裤</p>
<small>下装 · 7次/月</small>
</div>
</div>
<div class="clothing-card" data-cat="outer" onclick="showPage('page-detail')">
<div class="clothing-img" style="background:#C9C1B8;"><span>🧶</span></div>
<div class="clothing-meta">
<p class="clothing-name">灰色针织衫</p>
<small>外套 · 3次/月</small>
</div>
</div>
</div>
<div class="closet-list hidden" id="closet-list">
<div class="list-item" onclick="showPage('page-detail')">
<div class="list-thumb" style="background:#F0E8DF;">👕</div>
<div class="list-info">
<p>白色衬衫</p>
<small>上衣 · 白色 · 春夏 · 购于2025-03</small>
</div>
<span class="list-freq">3次/月</span>
</div>
<div class="list-item" onclick="showPage('page-detail')">
<div class="list-thumb" style="background:#E5DDD4;">👖</div>
<div class="list-info">
<p>卡其休闲裤</p>
<small>下装 · 棕色 · 四季 · 购于2025-01</small>
</div>
<span class="list-freq">5次/月</span>
</div>
<div class="list-item" onclick="showPage('page-detail')">
<div class="list-thumb" style="background:#DDD5CC;">🧥</div>
<div class="list-info">
<p>米色风衣</p>
<small>外套 · 米色 · 春秋 · 购于2024-10</small>
</div>
<span class="list-freq">2次/月</span>
</div>
</div>
<div class="bottom-spacer"></div>
</div>
</div>
<!-- Page: Add Clothing -->
<div class="page" id="page-add">
<div class="page-header">
<button class="icon-btn" onclick="showPage('page-closet')">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="15 18 9 12 15 6"/></svg>
</button>
<h1 class="page-title center-title">添加衣物</h1>
<button class="text-btn save-text" onclick="showToast('已保存');showPage('page-closet')">保存</button>
</div>
<div class="scroll-content">
<div class="photo-upload-area" onclick="simulateUpload()">
<div class="upload-placeholder" id="upload-placeholder">
<div class="upload-icon">
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#ccc" stroke-width="1.5">
<rect x="3" y="3" width="18" height="18" rx="3"/>
<circle cx="8.5" cy="8.5" r="1.5"/>
<path d="M21 15l-5-5L5 21"/>
</svg>
</div>
<p>点击拍照或从相册选择</p>
<small>支持 AI 自动识别衣物信息</small>
</div>
<div class="upload-preview hidden" id="upload-preview">
<div class="preview-placeholder">
<span style="font-size:64px;">👕</span>
<small>已选择图片</small>
</div>
<button class="retake-btn" onclick="event.stopPropagation();resetUpload()">重新选择</button>
</div>
</div>
<div class="ai-badge">
<span>🤖</span> AI 将自动识别品类、颜色、材质
</div>
<div class="form-section">
<h3>基础信息</h3>
<div class="form-group">
<label>品类</label>
<select class="form-select">
<option>请选择品类</option>
<option>上衣</option>
<option>下装</option>
<option>外套</option>
<option>连衣裙</option>
<option>鞋履</option>
<option>配饰</option>
</select>
</div>
<div class="form-group">
<label>名称</label>
<input type="text" class="form-input" placeholder="如:白色衬衫">
</div>
<div class="form-group">
<label>颜色</label>
<div class="color-picker">
<span class="color-dot" style="background:#1a1a1a;" onclick="selectColor(this)"></span>
<span class="color-dot" style="background:#f5f5f5;border:1px solid #ddd;" onclick="selectColor(this)"></span>
<span class="color-dot" style="background:#4a6fa5;" onclick="selectColor(this)"></span>
<span class="color-dot" style="background:#8b7355;" onclick="selectColor(this)"></span>
<span class="color-dot" style="background:#c0392b;" onclick="selectColor(this)"></span>
<span class="color-dot" style="background:#27ae60;" onclick="selectColor(this)"></span>
<span class="color-dot" style="background:#f39c12;" onclick="selectColor(this)"></span>
<span class="color-dot" style="background:#8e44ad;" onclick="selectColor(this)"></span>
<span class="color-dot active" style="background:#ecdsa0;" onclick="selectColor(this)"></span>
</div>
</div>
<div class="form-group">
<label>品牌</label>
<input type="text" class="form-input" placeholder="如ZARA">
</div>
</div>
<div class="form-section">
<h3>属性标签</h3>
<div class="tag-select">
<span class="selectable-tag active"></span>
<span class="selectable-tag"></span>
<span class="selectable-tag active"></span>
<span class="selectable-tag"></span>
</div>
<div class="tag-select">
<span class="selectable-tag active">通勤</span>
<span class="selectable-tag">休闲</span>
<span class="selectable-tag">运动</span>
<span class="selectable-tag">约会</span>
<span class="selectable-tag">正式</span>
</div>
<div class="form-group">
<label>正式度</label>
<input type="range" class="form-range" min="0" max="100" value="60">
<div class="range-labels"><span>休闲</span><span>正式</span></div>
</div>
<div class="form-group">
<label>厚度</label>
<input type="range" class="form-range" min="0" max="100" value="30">
<div class="range-labels"><span></span><span></span></div>
</div>
</div>
<div class="form-section">
<h3>购买信息</h3>
<div class="form-row">
<div class="form-group half">
<label>购买日期</label>
<input type="date" class="form-input">
</div>
<div class="form-group half">
<label>购买价格</label>
<input type="number" class="form-input" placeholder="¥">
</div>
</div>
</div>
<button class="primary-btn" onclick="showToast('已保存');showPage('page-closet')">保存到衣橱</button>
<div class="bottom-spacer"></div>
</div>
</div>
<!-- Page: Clothing Detail -->
<div class="page" id="page-detail">
<div class="page-header">
<button class="icon-btn" onclick="showPage('page-closet')">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="15 18 9 12 15 6"/></svg>
</button>
<div class="header-actions">
<button class="icon-btn" onclick="showToast('已编辑')">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>
</button>
<button class="icon-btn danger" onclick="confirmDelete()">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></svg>
</button>
</div>
</div>
<div class="scroll-content">
<div class="detail-hero">
<div class="detail-img" style="background:#F0E8DF;">
<span style="font-size:80px;">👕</span>
</div>
</div>
<div class="detail-info-card">
<h2>白色衬衫</h2>
<div class="detail-tags">
<span class="detail-tag">上衣</span>
<span class="detail-tag">白色</span>
<span class="detail-tag"></span>
<span class="detail-tag"></span>
<span class="detail-tag">通勤</span>
</div>
</div>
<div class="detail-stats">
<div class="detail-stat">
<span class="detail-stat-num">3</span>
<span class="detail-stat-label">本月穿着</span>
</div>
<div class="detail-stat">
<span class="detail-stat-num">18</span>
<span class="detail-stat-label">总穿着次数</span>
</div>
<div class="detail-stat">
<span class="detail-stat-num">545</span>
<span class="detail-stat-label">拥有天数</span>
</div>
</div>
<div class="detail-section">
<h3>基本信息</h3>
<div class="info-row"><span>品类</span><span>上衣</span></div>
<div class="info-row"><span>颜色</span><span>白色</span></div>
<div class="info-row"><span>品牌</span><span>优衣库</span></div>
<div class="info-row"><span>材质</span><span></span></div>
<div class="info-row"><span>购买日期</span><span>2025-03-15</span></div>
<div class="info-row"><span>购买价格</span><span>¥199</span></div>
</div>
<div class="detail-section">
<h3>上次清洁</h3>
<div class="info-row"><span>清洁日期</span><span>2026-09-05</span></div>
<div class="info-row"><span>清洁方式</span><span>机洗</span></div>
<div class="info-row"><span>距今</span><span>6天</span></div>
</div>
<div class="detail-section">
<h3>搭配记录</h3>
<div class="outfit-mini-list">
<div class="outfit-mini">
<div class="mini-items">
<span>👕</span><span>👖</span><span>👟</span>
</div>
<p>2026-09-10 · 通勤</p>
</div>
<div class="outfit-mini">
<div class="mini-items">
<span>👕</span><span>👗</span><span>👜</span>
</div>
<p>2026-09-05 · 约会</p>
</div>
</div>
</div>
<div class="bottom-spacer"></div>
</div>
</div>
<!-- Page: Outfit Recommendations -->
<div class="page" id="page-outfit">
<div class="page-header">
<button class="icon-btn" onclick="showPage('page-home')">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="15 18 9 12 15 6"/></svg>
</button>
<h1 class="page-title center-title">搭配推荐</h1>
<div style="width:40px;"></div>
</div>
<div class="scroll-content">
<div class="outfit-filters">
<div class="filter-group">
<label>季节</label>
<div class="filter-btns">
<button class="filter-btn active"></button>
<button class="filter-btn"></button>
<button class="filter-btn"></button>
<button class="filter-btn"></button>
</div>
</div>
<div class="filter-group">
<label>场合</label>
<div class="filter-btns">
<button class="filter-btn active">通勤</button>
<button class="filter-btn">休闲</button>
<button class="filter-btn">约会</button>
<button class="filter-btn">运动</button>
</div>
</div>
</div>
<div class="outfit-result-list">
<div class="outfit-result-card">
<div class="outfit-result-header">
<span class="outfit-result-tag">通勤首选</span>
<span class="outfit-result-score">匹配度 92%</span>
</div>
<div class="outfit-result-items">
<div class="result-item" style="background:#F0E8DF;"><span>👕</span><small>白衬衫</small></div>
<div class="result-item" style="background:#E5DDD4;"><span>👖</span><small>卡其裤</small></div>
<div class="result-item" style="background:#DDD5CC;"><span>🧥</span><small>风衣</small></div>
<div class="result-item" style="background:#E8E0D7;"><span>👟</span><small>小白鞋</small></div>
</div>
<div class="outfit-result-ai">
<p class="ai-label">🤖 AI 解析</p>
<p class="ai-text">这套搭配以大地色系为主,白衬衫增添清爽感,适合春秋季通勤。风衣可应对早晚温差。</p>
</div>
<div class="outfit-result-actions">
<button class="action-btn" onclick="showToast('已保存')">保存搭配</button>
<button class="action-btn secondary">查看详情</button>
</div>
</div>
<div class="outfit-result-card">
<div class="outfit-result-header">
<span class="outfit-result-tag">周末休闲</span>
<span class="outfit-result-score">匹配度 87%</span>
</div>
<div class="outfit-result-items">
<div class="result-item" style="background:#E0D8CF;"><span>👔</span><small>条纹T恤</small></div>
<div class="result-item" style="background:#D8D0C7;"><span>👖</span><small>牛仔裤</small></div>
<div class="result-item" style="background:#E8E0D7;"><span>👟</span><small>运动鞋</small></div>
</div>
<div class="outfit-result-ai">
<p class="ai-label">🤖 AI 解析</p>
<p class="ai-text">休闲舒适的日常搭配,条纹元素增添活力,牛仔裤百搭耐看,适合周末出游。</p>
</div>
<div class="outfit-result-actions">
<button class="action-btn" onclick="showToast('已保存')">保存搭配</button>
<button class="action-btn secondary">查看详情</button>
</div>
</div>
<div class="outfit-result-card">
<div class="outfit-result-header">
<span class="outfit-result-tag">约会穿搭</span>
<span class="outfit-result-score">匹配度 85%</span>
</div>
<div class="outfit-result-items">
<div class="result-item" style="background:#F5EDE6;"><span>👗</span><small>碎花裙</small></div>
<div class="result-item" style="background:#F0E8DF;"><span>👜</span><small>手提包</small></div>
<div class="result-item" style="background:#E8E0D7;"><span>👠</span><small>单鞋</small></div>
</div>
<div class="outfit-result-ai">
<p class="ai-label">🤖 AI 解析</p>
<p class="ai-text">碎花连衣裙优雅浪漫,搭配精致手提包提升整体质感,适合约会或下午茶场合。</p>
</div>
<div class="outfit-result-actions">
<button class="action-btn" onclick="showToast('已保存')">保存搭配</button>
<button class="action-btn secondary">查看详情</button>
</div>
</div>
</div>
<div class="bottom-spacer"></div>
</div>
</div>
<!-- Page: Calendar -->
<div class="page" id="page-calendar">
<div class="page-header">
<h1 class="page-title">穿搭日历</h1>
</div>
<div class="scroll-content">
<div class="calendar-month">
<div class="calendar-nav">
<button class="icon-btn small"></button>
<h3>2026年9月</h3>
<button class="icon-btn small"></button>
</div>
<div class="calendar-weekdays">
<span></span><span></span><span></span><span></span><span></span><span></span><span></span>
</div>
<div class="calendar-days">
<span class="day empty"></span><span class="day empty"></span><span class="day">1</span><span class="day">2</span><span class="day">3</span><span class="day">4</span><span class="day">5</span>
<span class="day">6</span><span class="day">7</span><span class="day">8</span><span class="day">9</span><span class="day">10</span><span class="day active has-outfit">11</span><span class="day">12</span>
<span class="day">13</span><span class="day">14</span><span class="day">15</span><span class="day">16</span><span class="day">17</span><span class="day">18</span><span class="day">19</span>
<span class="day">20</span><span class="day">21</span><span class="day">22</span><span class="day">23</span><span class="day">24</span><span class="day">25</span><span class="day">26</span>
<span class="day">27</span><span class="day">28</span><span class="day">29</span><span class="day">30</span>
</div>
</div>
<div class="calendar-detail">
<h3>9月11日 · 周四</h3>
<div class="calendar-outfit-card">
<div class="outfit-mini-items">
<span>👕</span><span>👖</span><span>🧥</span><span>👟</span>
</div>
<div class="calendar-outfit-info">
<p>简约通勤风</p>
<small>白衬衫 + 卡其裤 + 风衣 + 小白鞋</small>
</div>
</div>
</div>
<div class="calendar-history">
<h3>最近穿搭</h3>
<div class="history-list">
<div class="history-item">
<div class="history-date">
<span class="history-day">10</span>
<small>周三</small>
</div>
<div class="history-items">
<span>👔</span><span>👖</span><span>👟</span>
</div>
<span class="history-label">休闲</span>
</div>
<div class="history-item">
<div class="history-date">
<span class="history-day">9</span>
<small>周二</small>
</div>
<div class="history-items">
<span>👕</span><span>👗</span><span>👜</span>
</div>
<span class="history-label">约会</span>
</div>
<div class="history-item">
<div class="history-date">
<span class="history-day">8</span>
<small>周一</small>
</div>
<div class="history-items">
<span>👕</span><span>👖</span><span>🧥</span>
</div>
<span class="history-label">通勤</span>
</div>
</div>
</div>
<div class="bottom-spacer"></div>
</div>
</div>
<!-- Page: Profile -->
<div class="page" id="page-profile">
<div class="page-header">
<h1 class="page-title">我的</h1>
</div>
<div class="scroll-content">
<div class="profile-header">
<div class="avatar">👤</div>
<h2>时尚达人</h2>
<p>已使用 545 天</p>
</div>
<div class="profile-stats">
<div class="profile-stat">
<span class="ps-num">42</span>
<span class="ps-label">衣物</span>
</div>
<div class="profile-stat">
<span class="ps-num">15</span>
<span class="ps-label">搭配</span>
</div>
<div class="profile-stat">
<span class="ps-num">73%</span>
<span class="ps-label">利用率</span>
</div>
<div class="profile-stat">
<span class="ps-num">28</span>
<span class="ps-label">天连续</span>
</div>
</div>
<div class="menu-section">
<div class="menu-item" onclick="showPage('page-calendar')">
<div class="menu-icon">📅</div>
<span>穿搭日历</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
<div class="menu-item">
<div class="menu-icon">❤️</div>
<span>我的收藏</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
<div class="menu-item">
<div class="menu-icon">🧺</div>
<span>清洁管理</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
<div class="menu-item">
<div class="menu-icon">📊</div>
<span>风格统计</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
</div>
<div class="menu-section">
<div class="menu-item">
<div class="menu-icon">☁️</div>
<span>云端同步</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
<div class="menu-item">
<div class="menu-icon">📤</div>
<span>导出数据</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
<div class="menu-item">
<div class="menu-icon">⚙️</div>
<span>设置</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
<div class="menu-item">
<div class="menu-icon"></div>
<span>帮助与反馈</span>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#999" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
</div>
</div>
<div class="bottom-spacer"></div>
</div>
</div>
<!-- Toast -->
<div class="toast hidden" id="toast"></div>
<!-- Delete Confirmation Modal -->
<div class="modal-overlay hidden" id="delete-modal">
<div class="modal">
<h3>确认删除</h3>
<p>确定要将这件衣物从衣橱中移除吗?此操作不可撤销。</p>
<div class="modal-actions">
<button class="modal-btn cancel" onclick="hideModal()">取消</button>
<button class="modal-btn confirm" onclick="hideModal();showToast('已删除');showPage('page-closet')">删除</button>
</div>
</div>
</div>
<!-- Bottom Navigation -->
<nav class="bottom-nav">
<button class="nav-item active" onclick="navTo(this, 'page-home')">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
<span>首页</span>
</button>
<button class="nav-item" onclick="navTo(this, 'page-outfit')">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>
<span>搭配</span>
</button>
<button class="nav-item center-btn" onclick="showPage('page-add')">
<div class="center-btn-circle">
<svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</div>
</button>
<button class="nav-item" onclick="navTo(this, 'page-closet')">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/><line x1="3" y1="6" x2="21" y2="6"/><path d="M16 10a4 4 0 0 1-8 0"/></svg>
<span>衣橱</span>
</button>
<button class="nav-item" onclick="navTo(this, 'page-profile')">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
<span>我的</span>
</button>
</nav>
</div>
<script src="script.js"></script>
</body>
</html>