Files
frontend_v2/.workbuddy/memory/2026-08-30.md
toom1996 662b12c612
Some checks failed
deploy / deploy (push) Has been cancelled
update
2026-08-30 22:49:56 +08:00

5.4 KiB
Raw Blame History

2026-08-30 工作日志

首页 Street Style 图片过大调整(11:33)

  • 用户反馈首页 Street Style 区块图片太大。定位到 src/components/Index.astro 的 <style>:
    • .ss-banner 原 aspect-ratio:16/9 + w-full → 桌面端整宽约 675px 高(巨型 hero);
    • .ss-grid 原仅 sm:grid-cols-2 + .ss-card aspect-ratio:3/4 → 桌面两列每张卡约 1000px 高,竖排 11 张占空间极大。
  • 调整(保守,不改图片比例、保持编辑风):
    • .ss-banner 加 max-height: 440px;(仅桌面端收窄 hero)。
    • .ss-grid 改为 grid-cols-1 sm:grid-cols-2 md:grid-cols-3(中等屏起加第 3 列,单图立刻变小)。
  • 验证:npm run build BUILD_EXIT=0;read_lints Index.astro 0;dev 服务 http://localhost:4321 已起(HMR 生效)。
  • 待定:若用户仍嫌大,可进一步把 .ss-card 比例从 3/4 改为 4/5 或 1/1 直接缩高度。

Runway 头部下拉:方案 A 落地(16:26)

  • 用户拍板:header 的 Runway 下拉按「真实 collection_type」分 5 类(方案 A),不做婚纱等无数据类。
  • 关键发现:Layout.astro 早就有 runways 下拉数组,但里面 8 项全是占位垃圾(Spring/Summer 2026…Menswear FW25),且全指向死路由 ROUTES.shows(/shows);下拉父链接 <a> 也错链到 /shows。
  • 改动:
    • src/i18n/dictionary.ts:新增 5 个分类 cn 翻译(ready-to-wear→女装成衣、menswear→男装、couture→高级定制、resort→度假系列、pre-fall→早秋系列)。标签用 t('Ready-to-Wear') 等英文 key(英文环境回退显示英文,与列表页 COLLECTION 筛选项 label 一致)。
    • Layout.astro:runways 数组换成 全部 + 5 类,href 用 href(locale, ROUTES.runwayLooks) + '?collection=xxx';父链接 ROUTES.shows→ROUTES.runwayLooks(修死路由)。
    • RunwayLooks.astro:init() 读 URLSearchParams(window.location.search).get('collection'),命中白名单(rtw/menswear/womenswear/couture/resort/pre_fall/bridal/swimwear)则赋值 selectedCt,从而深链自动选中筛选(复用现有 loadPage→getArticles({collection}) 链路)。
  • 关键事实:getArticles(api.ts) 把 collection 映射成后端查询参数 ?collection=(不是 collection_type),故深链参数名用 collection。
    • 验证:npm run build BUILD_EXIT=0;read_lints Layout/RunwayLooks 均 0。
  • 待用户预览确认;深链真实筛选需后端(:8090)在跑。

街拍按地区分类(全链路,18:30 收尾)

  • 用户拍板「全链路做」:SQL 加 city 列 + 从 title/URL 回填 + 后端 city 筛选 + 前端 header 下拉 + 列表筛选。
  • 后端:model 加 City 字段;dto StreetSnapQuery.City + Normalize;repo List 加 WHERE city = ?(精确、大小写敏感);handler parseListQuery 解析 c.DefaultQuery("city","");SQL scripts/sql/004_add_streetsnap_city.sql + 幂等回填 scripts/backfill_city/main.go(首选 title 第一段 location 关键词匹配,兜底 URL slug)。
  • 前端:Layout.astro streets 下拉 18 城(全部 + Paris/New York/Milan/London/Copenhagen/Florence/Berlin/Tokyo/Seoul/Shanghai/Beijing/Rome/Madrid/Amsterdam/Antwerp/Los Angeles/Moscow/Mumbai),href 带 ?city=规范大写名;StreetSnaps.astro 侧栏 City pills + init() 读 ?city 深链自动选中;api.ts.getStreetSnaps 透传 city;dictionary.ts 有各城 cn 翻译(t('Paris') 经 translate 自动 toLowerCase 查到「巴黎」)。
  • 关键约定:city 规范值首字母大写英文(Paris / New York / Copenhagen…),前后端必须一致且大小写敏感。
  • DB+验证:dev 库 db_dev.street_snap 仅 12 行(Paris 8 / Copenhagen 4),其余城本地预览为空属预期(生产真实爬取数据才有完整覆盖)。重启后端 :8090 后 Node 直连验证:?city=Paris→8、?city=Copenhagen→4、?city=London→0、无参→12,全链路通过(client_sign 本地 enabled:false,无需签名)。
  • 复盘:标题实际格式为「Street Style 2027 Day 12」而非 location\tseason\tevent,city 由旧回填按 URL 预置;生产真实数据靠 title/URL 解析归类。dev 环境 go run 可正常编译(仅 go build ./... 全量链接会 OOM,非代码问题)。

Header 精简:移除死链 + street style 减为 3 下拉(18:57)

  • 用户要求:去掉 Latest Projects / About / Contact Us;street style 下拉只留三个。
  • 现状确认:Layout.astro 主导航早已无此三项(仅 Portfolio / Runway(下拉) / Street Style(下拉) / 语言 / Login / Signup);streets 下拉当前已是 3 项(全部 / Paris / New York)。
  • 清理:routes.ts 删 latestProjects/about/contact 键;dictionary.ts 删 about/contact/latest projects 翻译键;全 src 搜索确认无 latestProjects|about|contact 残留引用。
  • 验证:npm run build exit 0(日志仅 npm warn 包装的 NativeCommandError,非构建错误)。

Header 下拉数量微调(19:00)

  • 用户:street style 下拉再加一个、runway 下拉去掉一个。
  • Street:加 Milan → 全部 / Paris / New York / Milan = 4 项(时尚三都补齐;dictionary 已有 milan→米兰)。
  • Runway:去 Pre-Fall(早秋系列,过渡线、数据最少 2376 行),保留 全部 / rtw / menswear / couture / resort = 5 项。
  • 两个下拉均保留"全部"重置项(结构对称);Runway 父链接仍指向无参列表。
  • 验证:待 build。