← 返回文档索引

热卖商品页 — 设计规范

最后更新:2026-05-27 | 页面:https://sieta.vip/sietadata/hotsale.html | 手机版:hotsale_mobile.html

页面概述

动态日期热卖商品排行页。API 从 sales_ledger 拉取指定日期范围内售出 ≥3 双的商品,按数量降序排列。排除 BMD 配件。

布局规格

属性
最大宽度 800px 居中
背景 #FFFDF5
容器阴影 box-shadow: 4px 4px 0 #000
卡片边框 border: 4px solid #000
字体 系统默认无衬线(非 Space Grotesk)

产品卡片布局

┌──────────────────────────────────────────┐
│ 热卖排行                    共 N 款      │ ← 黑底白字 .st-hd
├──────────────────────────────────────────┤
│ [5 双] YG753208              [图片80×80] │ ← .cd (flex, align-items:center)
│ [4 双] YG08879               [图片80×80] │
│ ...                                      │
└──────────────────────────────────────────┘

日期选择器

控件排列

[年] [月] [日] → [年] [月] [日]    [本周] [本月] [REFRESH]
                                    ↑黄色   ↑黄色   ↑紫色

日期联动

默认进入

条件 默认范围
周一或周二打开 上周一 ~ 上周日
周三~周日打开 本周一 ~ 昨天

end 日期 capped 到 D[D.length-1](当天 22:30 pipeline 未跑时回退)。

快捷按钮

按钮 颜色 行为
本周 #FFD93D 本周一 ~ 昨天(capped)
本月 #FFD93D 本月 1 日 ~ 昨天(capped)
REFRESH #C4B5FD 重新查询当前日期范围

API

GET /api/sietadata/hot-products

参数 说明
start_date 起始日期 YYYY-MM-DD
end_date 结束日期 YYYY-MM-DD
min_qty 最低销量门槛,默认 3

SQL:

SELECT s.货号 as code, SUM(s.数量) as qty, COALESCE(p.品牌, '') as brand
FROM sales_ledger s LEFT JOIN product p ON s.货号 = p.货号
WHERE s.日期 BETWEEN ? AND ? AND s.数量 > 0 AND s.货号 NOT LIKE '%BMD%'
GROUP BY s.货号 HAVING SUM(s.数量) >= ?
ORDER BY qty DESC

GET /api/sietadata/available-dates

返回 {sales: [...], inventory: [...]}。⚠️ JS 必须读 d.sales,不是 d.dates

踩坑记录

1. API 字段名陷阱(5 次踩坑)

2. new Date() 时区陷阱(4 次踩坑)

3. Grid 多卡片阴影累积

4. 下拉框联动残留

5. 浏览器缓存 JS

6. BMD 配件排除

手机版

hotsale_mobile.html — 全宽满屏布局,无 max-width 限制。CSS/JS 逻辑相同。用于飞书周报发送链接。

部署文件

文件 路径
页面 /var/www/sieta/sietadata/hotsale.html
手机版 /var/www/sieta/sietadata/hotsale_mobile.html
API /home/ubuntu/admin-auth-server.py/api/sietadata/hot-products