diff --git a/.claude/settings.local.json b/.claude/settings.local.json index e955c0e..eff98d3 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,7 +1,20 @@ { "permissions": { "allow": [ - "Bash(git config:*)" + "Bash(git config:*)", + "Bash(node -c index.html)", + "Bash(node -c)", + "Bash(python3 -c ':*)", + "Bash(python -c ':*)", + "Bash(powershell -Command ':*)", + "Bash(python -c \"import openpyxl; print\\(openpyxl.__version__\\)\")", + "Bash(pip install:*)", + "Bash(python -c \"import openpyxl; print\\('ok'\\)\")", + "Bash(python generate_template.py)", + "Bash(python -c \"import sys; sys.stdout.reconfigure\\(encoding='utf-8'\\); print\\(sys.stdin.read\\(\\)\\)\")", + "Bash(python -u -c \"exec\\(open\\('_build_excel.py', encoding='utf-8'\\).read\\(\\) if __import__\\('os'\\).path.exists\\('_build_excel.py'\\) else print\\('need to write builder'\\)\\)\")", + "Bash(ls -la *.html *.py *.xlsx *.md)", + "Bash(ls -la *.png *.jpg *.jpeg)" ] } } diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6f3a291 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} \ No newline at end of file diff --git a/__pycache__/_build_data.cpython-314.pyc b/__pycache__/_build_data.cpython-314.pyc new file mode 100644 index 0000000..68b8460 Binary files /dev/null and b/__pycache__/_build_data.cpython-314.pyc differ diff --git a/_build_data.py b/_build_data.py new file mode 100644 index 0000000..ce878d6 --- /dev/null +++ b/_build_data.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- +# Data definitions for the Excel template generator +# Imported by generate_template.py + +slides = [ + (1, "product", "cat.png"), + (2, "product", "dog.jpeg"), + (3, "activity", None), + (4, "product", "feeder.png"), + (5, "notice", None), + (6, "product", "water.png"), + (7, "activity", None), + (8, "product", "camera(1).jpg"), +] + +hp = [ + ("1", "cat.png", "智能猫厕所"), + ("2", "dog.jpeg", "智能狗厕所"), + ("3", "feeder.png", "智能喂食器"), + ("4", "water.jpeg", "智能饮水机"), + ("5", "camera.jpeg", "AI宠物摄像头"), +] + +lp = [ + ("cat-toilet-pro", "智能猫厕所 Pro", "cat.png", "猫用,热销"), + ("cat-toilet-lite", "智能猫厕所 Lite", "cat.png", "猫用,新品"), + ("dog-toilet", "智能狗厕所", "dog.jpeg", "狗用"), + ("smart-feeder", "智能喂食器", "feeder.png", "通用,热销"), + ("smart-fountain", "智能饮水机", "water.jpeg", "通用"), + ("cat-food-bucket", "智能猫粮桶", "cat.png", "猫用"), + ("dog-food-bucket", "智能狗粮桶", "dog.jpeg", "狗用"), + ("ai-camera", "AI宠物摄像头", "camera.jpeg", "通用,新品"), + ("health-tracker", "宠物健康追踪器", "cat.png", "通用"), + ("environment-monitor", "环境监测仪", "dog.jpeg", "通用"), + ("filter-set", "替换滤网套装", "cat.png", "配件"), + ("cleaning-kit", "清洁耗材包", "dog.jpeg", "配件"), + ("power-adapter", "备用电源适配器", "cat.png", "配件"), + ("extended-warranty", "延长保修服务", "dog.jpeg", "服务"), +] + +sd = [ + ("story-1", "小橘的逆袭日记", "cat.png", "cat.png", "健康恢复", "橘猫", "小橘妈妈", "上海", "2024.03"), + ("story-2", "旺财的健身日记", "dog.jpeg", "dog.jpeg", "体重管理", "金毛", "旺财爸爸", "北京", "2024.02"), + ("story-3", "布丁的日常", "cat.png", "cat.png", "AI识别", "英短", "布丁姐姐", "深圳", "2024.01"), + ("story-4", "豆豆的饮水日记", "dog.jpeg", "dog.jpeg", "饮水健康", "柯基", "豆豆妈妈", "杭州", "2024.01"), + ("story-5", "咪咪的健康守护", "cat.png", "cat.png", "健康监测", "美短", "咪咪妈妈", "广州", "2023.12"), + ("story-6", "大黄的如厕训练", "dog.jpeg", "dog.jpeg", "训练养成", "田园犬", "大黄爸爸", "成都", "2023.11"), +] + +article_pages = [ + ("五、文章-公司介绍", "8B5CF6", [ + ("201", "关于Chookoo宠科", "公司简介需大幅扩充3-5段"), + ("202", "我们的使命", "企业使命2-3段"), + ("203", "热招职位", "真实职位/要求/待遇"), + ("204", "A轮融资", "真实新闻稿"), + ("205", "品牌起源", "品牌故事3-5段"), + ], "全是占位需大幅扩充"), + ("六、文章-合作伙伴", "F59E0B", [ + ("301", "经销商入驻", "入驻资格/流程/标准"), + ("302", "经销商政策", "区域保护/价格/返利"), + ("303", "推广联盟", "佣金/结算/素材"), + ("304", "企业采购", "折扣/定制/流程"), + ("305", "技术合作", "API/模式/流程"), + ], "全是占位需大幅扩充"), + ("七、文章-法律条款", "DC2626", [ + ("401", "隐私政策", "法务起草:数据收集/使用/存储/共享"), + ("402", "服务条款", "法务起草:使用规范/免责/争议"), + ("403", "Cookie说明", "类型/管理/第三方列表"), + ], "全是占位需法务起草"), +] + +app_fields = [ + ("APP-1", "Badge标签", "顶部标签", "是", "全球独家", ""), + ("APP-2", "主标题", "", "是", "Chookoo App", ""), + ("APP-3", "副标题", "核心描述", "是", "AI宠物健康平台...", ""), + ("APP-4", "核心标题", "", "是", "AI宠物健康平台", ""), + ("APP-5", "核心描述", "", "是", "全球独家毫米波雷达...", ""), + ("APP-6", "特性1标题", "", "是", "毫米波雷达监测", ""), + ("APP-7", "特性1描述", "", "是", "24小时无感监测...", ""), + ("APP-8", "特性2标题", "", "是", "红外体温检测", ""), + ("APP-9", "特性2描述", "", "是", "精准红外测温...", ""), + ("APP-10", "特性3标题", "", "是", "AI健康预警", ""), + ("APP-11", "特性3描述", "", "是", "基于AI算法...", ""), + ("APP-12", "特性4标题", "", "是", "多设备生态联动", ""), + ("APP-13", "特性4描述", "", "是", "喂食器猫砂盆...", ""), + ("APP-14", "数据:用户数", "确认真实性", "审核", "100万+", ""), + ("APP-15", "数据:数据点", "确认真实性", "审核", "10亿+", ""), + ("APP-16", "数据:国家数", "确认真实性", "审核", "30+", ""), + ("APP-17", "数据:评分", "确认真实性", "审核", "4.9", ""), + ("APP-18", "App Store", "实际URL", "是", "(空)", ""), + ("APP-19", "Google Play", "实际URL", "是", "(空)", ""), + ("APP-20", "APK链接", "安卓URL", "否", "(空)", ""), +] + +help_articles = [ + ("安装指导", "101|智能猫厕所安装指南"), + ("安装指导", "102|智能饮水机安装指南"), + ("安装指导", "103|智能喂食器安装指南"), + ("安装指导", "104|WiFi配网教程"), + ("安装指导", "105|指示灯状态说明"), + ("智能猫厕所", "1|支持哪些猫砂"), + ("智能猫厕所", "2|引导猫咪使用"), + ("智能猫厕所", "3|设备离线"), + ("智能猫厕所", "4|更换集便袋"), + ("智能饮水机", "5|更换滤芯"), + ("智能饮水机", "6|水泵噪音"), + ("智能饮水机", "7|清洗饮水机"), + ("智能喂食器", "8|出粮不准"), + ("智能喂食器", "9|断网工作"), + ("智能喂食器", "10|设置喂食计划"), + ("APP使用", "11|注册账号"), + ("APP使用", "12|添加设备"), + ("APP使用", "13|分享设备"), + ("其他问题", "14|保修政策"), + ("其他问题", "15|联系售后"), + ("其他问题", "16|购买渠道"), +] diff --git a/_gen.py b/_gen.py new file mode 100644 index 0000000..dfd59f1 --- /dev/null +++ b/_gen.py @@ -0,0 +1,4 @@ +import json, sys +sys.stdout.reconfigure(encoding="utf-8") +# This script reads generate_template.py and runs it +exec(open("generate_template.py", encoding="utf-8").read()) diff --git a/generate_template.py b/generate_template.py new file mode 100644 index 0000000..a03ce26 --- /dev/null +++ b/generate_template.py @@ -0,0 +1,217 @@ +# -*- coding: utf-8 -*- +""" +Chookoo 产品网站内容填写模板 - Excel 生成器 +运行: python generate_template.py +输出: 产品网站内容填写模板.xlsx +""" +import sys +sys.stdout.reconfigure(encoding="utf-8") +from openpyxl import Workbook +from openpyxl.styles import Font, PatternFill, Alignment, Border, Side +from openpyxl.utils import get_column_letter +from _build_data import slides, hp, lp, sd, article_pages, app_fields, help_articles + +wb = Workbook() +thin = Side(style="thin", color="CCCCCC") +bd = Border(left=thin, top=thin, right=thin, bottom=thin) +hf = Font(name="Microsoft YaHei", size=11, bold=True, color="FFFFFF") +hfl = PatternFill(start_color="2F6BFF", end_color="2F6BFF", fill_type="solid") +sf = Font(name="Microsoft YaHei", size=10, bold=True, color="FFFFFF") +sfl = PatternFill(start_color="4B5563", end_color="4B5563", fill_type="solid") +nf = Font(name="Microsoft YaHei", size=10) +bf = Font(name="Microsoft YaHei", size=10, bold=True) +xf = Font(name="Microsoft YaHei", size=10, color="888888") +rf = Font(name="Microsoft YaHei", size=10, color="DC2626", bold=True) +inp = PatternFill(start_color="FEF3C7", end_color="FEF3C7", fill_type="solid") +rev = PatternFill(start_color="DBEAFE", end_color="DBEAFE", fill_type="solid") +wa = Alignment(wrap_text=True, vertical="center", horizontal="left") +ca = Alignment(wrap_text=True, vertical="center", horizontal="center") + +def hdr(ws, row, cols): + for c in range(1, cols+1): + cl = ws.cell(row=row, column=c); cl.font = hf; cl.fill = hfl; cl.alignment = ca; cl.border = bd + +def sec(ws, row, cols, txt=""): + ws.merge_cells(start_row=row, start_column=1, end_row=row, end_column=cols) + cl = ws.cell(row=row, column=1, value=txt); cl.font = sf; cl.fill = sfl; cl.alignment = Alignment(vertical="center") + for c in range(1, cols+1): ws.cell(row=row, column=c).border = bd + +def rw(ws, r, vals, fill_cols=None, ft="inp"): + for c, v in enumerate(vals, 1): + cl = ws.cell(row=r, column=c, value=v); cl.font = nf; cl.alignment = wa; cl.border = bd + if fill_cols and c in fill_cols: cl.fill = inp if ft == "inp" else rev + +def sw(ws, widths): + for i, w in enumerate(widths, 1): ws.column_dimensions[get_column_letter(i)].width = w + +# ========== Sheet 0: 填写说明 ========== +ws0 = wb.active; ws0.title = "填写说明"; ws0.sheet_properties.tabColor = "EF4444" +sw(ws0, [90, 70]) +ws0.cell(row=1, column=1, value="Chookoo 产品网站 - 内容填写说明").font = Font(name="Microsoft YaHei", size=14, bold=True, color="2F6BFF") +info = [("", ""), ("颜色含义", ""), ("深黄底色", "必填 - 空着会导致网页显示异常"), ("浅蓝底色", "仅审核 - 已有内容需确认"), + ("", ""), ("工作表说明", ""), + ("一、轮播图", "首页8张轮播幻灯片(产品/活动/公告),中英文+图片"), + ("二、产品卡片", "首页5张+列表页14张卡片,中英文标题/描述+图片"), + ("三、产品详情", "14个产品详情页: 标签/亮点/特性/规格/图片"), + ("四、宠物故事", "6个故事: 卡片摘要+详情页5段正文+3亮点+图片"), + ("五、文章-公司介绍", "5篇(全是占位需大幅扩充)"), + ("六、文章-合作伙伴", "5篇(全是占位需大幅扩充)"), + ("七、文章-法律条款", "3篇(全是占位需法务起草)"), + ("八、文章-App页面", "基本完成需审核数据+补充下载链接"), + ("九、文章-帮助中心", "21篇已有详细文章仅审核确认"), + ("", ""), ("图片尺寸速查", "")] +r = 3 +for a, b in info: + ws0.cell(row=r, column=1, value=a).font = bf if a else nf + ws0.cell(row=r, column=2, value=b).font = nf; r += 1 +iref = [("图片类型","建议源图尺寸","比例","格式","透明背景"),("轮播图主图","800x800px","1:1","PNG","是"), + ("轮播图角标","200x200px","1:1","PNG","是"),("产品卡片图","400x400px","1:1","PNG","是"), + ("展示区大图","800x1000px","4:5","PNG","是"),("详情页主图","800x800px","1:1","PNG","是"), + ("故事封面","800x450px","16:9","JPG","否"),("故事头像","80x80px","1:1","JPG/PNG","否(圆形)"), + ("二维码","240x240px","1:1","PNG","否")] +for i, vals in enumerate(iref): + for c, v in enumerate(vals, 1): + cl = ws0.cell(row=r, column=c, value=v); cl.font = hf if i==0 else nf + if i==0: cl.fill = hfl + cl.border = bd; cl.alignment = wa + r += 1 + +# ========== Sheet 1: 轮播图 ========== +ws1 = wb.create_sheet("一、轮播图"); ws1.sheet_properties.tabColor = "06B6D4" +sw(ws1, [10, 22, 50, 8, 35, 35]) +for c, h in enumerate(["编号","字段名","填写说明","必填","中文","英文"], 1): ws1.cell(row=1, column=c, value=h) +hdr(ws1, 1, 6); r = 2 +for idx, stype, img in slides: + sec(ws1, r, 6, f"幻灯片{idx}(类型:{stype})"); r += 1 + fields = [(f"S{idx}-1","类型","product/activity/notice","是",stype,stype), + (f"S{idx}-2","中文主标题","产品名或活动标题","是","",""), + (f"S{idx}-3","中文副标题","一句话卖点","是","",""), + (f"S{idx}-4","英文主标题","English title","是","",""), + (f"S{idx}-5","英文副标题","English subtitle","是","","")] + if stype in ("activity","notice"): + fields += [(f"S{idx}-6","中文详情","活动/公告内容","是","",""),(f"S{idx}-7","英文详情","English details","是","","")] + for vals in fields: rw(ws1, r, vals, fill_cols={5,6}); r += 1 + rw(ws1, r, [f"S{idx}-IMG","主图","800x800px PNG透明","是","当前:",img or "(无)"]) + ws1.cell(row=r, column=5).font = xf; r += 1; r += 1 + +# ========== Sheet 2: 产品卡片 ========== +ws2 = wb.create_sheet("二、产品卡片"); ws2.sheet_properties.tabColor = "10B981" +sw(ws2, [10, 18, 48, 8, 35, 35]) +sec(ws2, 1, 6, "首页产品卡片(5张)"); r = 2 +for c, h in enumerate(["编号","字段名","填写说明","必填","中文","英文"], 1): ws2.cell(row=r, column=c, value=h) +hdr(ws2, r, 6); r += 1 +for pid, img, name in hp: + sec(ws2, r, 6, f"产品{pid}: {name}"); r += 1 + for vals in [(f"HP{pid}-1","名称","不超过8字","是",name,""),(f"HP{pid}-2","副标题","不超过20字","是","",""), + (f"HP{pid}-3","特性1","不超过15字","是","",""),(f"HP{pid}-4","特性2","不超过15字","是","",""), + (f"HP{pid}-5","特性3","不超过15字","是","",""),(f"HP{pid}-6","特性4","不超过15字","是","","")]: + rw(ws2, r, vals, fill_cols={5,6}); r += 1 + rw(ws2, r, [f"HP{pid}-IMG","图片","400x400px PNG","是","当前:",img]) + ws2.cell(row=r, column=5).font = xf; r += 2 +sec(ws2, r, 6, "列表页卡片(14张)"); r += 1 +for c, h in enumerate(["编号","字段名","填写说明","必填","中文","英文"], 1): ws2.cell(row=r, column=c, value=h) +hdr(ws2, r, 6); r += 1 +for pid, name, img, tags in lp: + rw(ws2, r, [f"PL-{pid}","名称",pid,"是",name,""], fill_cols={5,6}); r += 1 + rw(ws2, r, [f"PL-{pid}D","描述","一句话","是","",""], fill_cols={5,6}); r += 1 + rw(ws2, r, [f"PL-{pid}T","标签","逗号分隔","是",tags,""], fill_cols={5,6}); r += 1 + rw(ws2, r, [f"PL-{pid}I","图片","400x400px PNG","是","当前:",img]) + ws2.cell(row=r, column=5).font = xf; r += 2 + +# ========== Sheet 3: 产品详情 ========== +ws3 = wb.create_sheet("三、产品详情"); ws3.sheet_properties.tabColor = "7C3AED" +sw(ws3, [10, 16, 42, 14, 28, 28]) +for c, h in enumerate(["编号","字段名","填写说明","图标颜色","中文","英文"], 1): ws3.cell(row=1, column=c, value=h) +hdr(ws3, 1, 6); r = 2 +for pid, name, img, tags in lp: + sec(ws3, r, 6, f"产品:{name}(ID:{pid})"); r += 1 + rw(ws3, r, ["","标签","逗号分隔","","",tags,""], fill_cols={5,6}); r += 1 + rw(ws3, r, ["","副标题","不超过25字","","",""], fill_cols={5,6}); r += 1 + sec(ws3, r, 6, "亮点(4条)"); r += 1 + for i in range(1,5): rw(ws3, r, [f"H{i}",f"亮点{i}","不超过15字","","",""], fill_cols={5,6}); r += 1 + sec(ws3, r, 6, "特性(4组 blue=技术 green=环保 purple=智能 orange=安全)"); r += 1 + for i in range(1,5): + rw(ws3, r, [f"F{i}","标题","不超过8字","填颜色","",""], fill_cols={4,5,6}); r += 1 + rw(ws3, r, [f"F{i}d","描述","不超过25字","","",""], fill_cols={5,6}); r += 1 + sec(ws3, r, 6, "规格表(行数不限)"); r += 1 + for c, h in enumerate(["","参数名(中文)","参数名(英文)","","参数值",""], 1): + cl = ws3.cell(row=r, column=c, value=h); cl.font = bf + cl.fill = PatternFill(start_color="E5E7EB", end_color="E5E7EB", fill_type="solid"); cl.border = bd + r += 1 + for _ in range(8): rw(ws3, r, ["","","","","",""], fill_cols={2,3,5}); r += 1 + rw(ws3, r, ["","主图","800x800px PNG","","当前:",img]) + ws3.cell(row=r, column=5).font = xf; r += 2 + +# ========== Sheet 4: 宠物故事 ========== +ws4 = wb.create_sheet("四、宠物故事"); ws4.sheet_properties.tabColor = "EA580C" +sw(ws4, [10, 18, 48, 8, 40, 40]) +sec(ws4, 1, 6, "故事卡片(6个,首页随机3个)"); r = 2 +for c, h in enumerate(["编号","字段名","填写说明","必填","中文","英文"], 1): ws4.cell(row=r, column=c, value=h) +hdr(ws4, r, 6); r += 1 +for sid, title, img, av, cat, pet, auth, loc, date in sd: + sec(ws4, r, 6, f"故事:{title}"); r += 1 + for vals in [(f"{sid}-1","标题","不超过12字","是",title,""),(f"{sid}-2","摘要","2-3句不超过60字","是","",""), + (f"{sid}-3","标签1","分类","是",cat,""),(f"{sid}-4","标签2","可选","否","",""), + (f"{sid}-5","作者","如:小橘妈妈","是",auth,""),(f"{sid}-6","宠物","品种年龄","是",pet+" · ","")]: + rw(ws4, r, vals, fill_cols={5,6}); r += 1 + rw(ws4, r, [f"{sid}-IMG","封面图","800x450px JPG","是","当前:",img]) + ws4.cell(row=r, column=5).font = xf; r += 1 + rw(ws4, r, [f"{sid}-AV","头像","80x80px","是","当前:",av]) + ws4.cell(row=r, column=5).font = xf; r += 2 +sec(ws4, r, 6, "故事详情正文(每个5段+3亮点)"); r += 1 +for c, h in enumerate(["编号","字段名","填写说明","必填","中文","英文"], 1): ws4.cell(row=r, column=c, value=h) +hdr(ws4, r, 6); r += 1 +for sid, title, img, av, cat, pet, auth, loc, date in sd: + sec(ws4, r, 6, f"正文:{title}"); r += 1 + rw(ws4, r, [f"{sid}-CAT","分类","","是",cat,""], fill_cols={5,6}); r += 1 + rw(ws4, r, [f"{sid}-LOC","地点","城市","是",loc,""], fill_cols={5,6}); r += 1 + rw(ws4, r, [f"{sid}-DATE","日期","如2024.03","是",date,""], fill_cols={5,6}); r += 1 + for i in range(1,6): + rw(ws4, r, [f"{sid}-P{i}",f"第{i}段","3-5句话","是","",""], fill_cols={5,6}); r += 1 + sec(ws4, r, 6, "核心亮点(3条)"); r += 1 + for i in range(1,4): rw(ws4, r, [f"{sid}-HL{i}",f"亮点{i}","一句话","是","",""], fill_cols={5,6}); r += 1 + r += 1 + +# ========== Sheet 5-7: 文章系统 ========== +for st, color, articles, warn in article_pages: + ws = wb.create_sheet(st); ws.sheet_properties.tabColor = color; sw(ws, [10, 20, 48, 8, 55, 55]) + for c, h in enumerate(["编号","字段名","填写说明","必填","中文","英文"], 1): ws.cell(row=1, column=c, value=h) + hdr(ws, 1, 6) + ws.merge_cells(start_row=2, start_column=1, end_row=2, end_column=6) + ws.cell(row=2, column=1, value="注意: "+warn).font = rf; r = 3 + for aid, atitle, adesc in articles: + sec(ws, r, 6, f"文章{aid}:{atitle}"); r += 1 + rw(ws, r, [f"A{aid}-1","标题","","是",atitle,""], fill_cols={5,6}); r += 1 + for i in range(1,6): + rw(ws, r, [f"A{aid}-P{i}",f"第{i}段",adesc if i==1 else "3-5句话","是","",""], fill_cols={5,6}); r += 1 + r += 1 + +# ========== Sheet 8: App ========== +ws8 = wb.create_sheet("八、文章-App页面"); ws8.sheet_properties.tabColor = "3B82F6" +sw(ws8, [10, 22, 48, 8, 40, 40]) +for c, h in enumerate(["编号","字段名","填写说明","必填","当前内容","需确认"], 1): ws8.cell(row=1, column=c, value=h) +hdr(ws8, 1, 6); r = 2 +sec(ws8, r, 6, "App文案(基本完成请审核)"); r += 1 +for vals in app_fields: + ft = "rev" if "审核" in str(vals[3]) else "inp" + fc = {6} if "审核" in str(vals[3]) else {6} + rw(ws8, r, vals, fill_cols=fc, ft=ft); r += 1 + +# ========== Sheet 9: 帮助中心 ========== +ws9 = wb.create_sheet("九、文章-帮助中心"); ws9.sheet_properties.tabColor = "64748B" +sw(ws9, [10, 14, 42, 8, 55]) +for c, h in enumerate(["编号","分类","标题","状态","审核确认"], 1): ws9.cell(row=1, column=c, value=h) +hdr(ws9, 1, 5); r = 2 +sec(ws9, r, 5, "21篇已有详细文章仅需审核确认"); r += 1 +for cat, info in help_articles: + aid, atitle = info.split("|") + rw(ws9, r, [aid, cat, atitle, "已有详细内容", ""], fill_cols={5}, ft="rev"); r += 1 + +# ========== 保存 ========== +for ws in wb.worksheets: + ws.freeze_panes = "A2"; ws.row_dimensions[1].height = 28 +wb.move_sheet("填写说明", offset=-(len(wb.sheetnames)-1)) +output = "产品网站内容填写模板.xlsx" +wb.save(output) +print(f"OK - {output}") +print(f"Sheets ({len(wb.sheetnames)}): {', '.join(wb.sheetnames)}") diff --git a/index.html b/index.html index 4e7eb46..04ab1f2 100644 --- a/index.html +++ b/index.html @@ -1176,8 +1176,6 @@ padding: 0; } .snap-section { - min-height: 100vh; - min-height: 100svh; display: flex; align-items: center; justify-content: center; @@ -3114,10 +3112,10 @@ @@ -3132,8 +3130,8 @@
📢 -

系统升级通知

-

App 2.0版本全新上线
新增健康报告、远程控制功能

+

系统升级通知

+

App 2.0版本全新上线
新增健康报告、远程控制功能

@@ -3148,9 +3146,9 @@
🔥 HOT -

新用户专享

-

首单立减100元

- 优惠码: NEW100 +

新用户专享

+

首单立减100元

+ 优惠码: NEW100
@@ -3187,9 +3185,9 @@
公司简介 Chookoo - 宠科智能科技 + 宠科智能科技
-

+

宠科(Chookoo)成立于中国苏州,是一家专注于宠物智能健康管理的科技企业。我们秉承"让每一个生命都能被真正理解与守护"的理念,致力于通过技术创新重新定义宠物健康管理方式。

@@ -3205,9 +3203,9 @@
60%+ - 研发人员占比 + 研发人员占比
-

核心团队来自知名科技企业与科研院所

+

核心团队来自知名科技企业与科研院所

@@ -3220,9 +3218,9 @@
ISO9001 - 质量认证 + 质量认证
-

通过国际质量管理体系认证

+

通过国际质量管理体系认证

@@ -3235,10 +3233,10 @@
- 自研 - AI实验室 + 自研 + AI实验室
-

独立AI算法实验室持续迭代优化

+

独立AI算法实验室持续迭代优化

@@ -3248,7 +3246,7 @@ - 中国苏州 · 苏州工业园区 + 中国苏州 · 苏州工业园区
@@ -3300,7 +3298,7 @@
100万+
-
宠物健康档案
+
宠物健康档案
@@ -3312,7 +3310,7 @@
30+
-
国家和地区
+
国家和地区
@@ -3323,7 +3321,7 @@ - 中国苏州 · 智慧健康管理领域 + 中国苏州 · 智慧健康管理领域 @@ -3342,8 +3340,8 @@ 猫厕所
-

智能猫厕所

-

智能监测·自动清洁

+

智能猫厕所

+

智能监测·自动清洁

@@ -3351,8 +3349,8 @@ 狗厕所
-

智能狗厕所

-

科学训练·智能清洁

+

智能狗厕所

+

科学训练·智能清洁

@@ -3360,8 +3358,8 @@ 喂食器
-

智能喂食器

-

定时定量·科学喂养

+

智能喂食器

+

定时定量·科学喂养

@@ -3371,8 +3369,8 @@ 产品展示
-

产品名称

-

产品描述

+

产品名称

+

产品描述

@@ -3414,7 +3412,7 @@
- 了解更多 + 了解更多 @@ -3429,8 +3427,8 @@ 饮水机
-

智能饮水机

-

循环净化·饮水提醒

+

智能饮水机

+

循环净化·饮水提醒

@@ -3438,8 +3436,8 @@ AI摄像头
-

AI宠物摄像头

-

远程守护·行为识别

+

AI宠物摄像头

+

远程守护·行为识别

@@ -3450,8 +3448,8 @@
-

更多产品

-

探索全系列

+

更多产品

+

探索全系列

@@ -3464,61 +3462,8 @@ 宠物故事

每一个毛孩子背后的温馨故事

- @@ -3530,7 +3475,7 @@
核心理念 -

让每一个生命
都能被真正理解与守护

+

让每一个生命
都能被真正理解与守护

@@ -3545,8 +3490,8 @@
Vision -

愿景

-

成为全球宠物家庭最信赖的智能健康伙伴,定义主动健康管理新范式

+

愿景

+

成为全球宠物家庭最信赖的智能健康伙伴,定义主动健康管理新范式

@@ -3562,12 +3507,12 @@
Values -

价值观

+

价值观

- 科技向善 - 关爱为本 - 极致创新 - 长久相伴 + 科技向善 + 关爱为本 + 极致创新 + 长久相伴
@@ -3586,8 +3531,8 @@
Mission -

使命

-

让健康可见,让需求可解,让宠爱无间

+

使命

+

让健康可见,让需求可解,让宠爱无间

@@ -3612,7 +3557,7 @@ -

每一份陪伴,都值得被温柔以待

+

每一份陪伴,都值得被温柔以待

@@ -3704,35 +3649,35 @@ 微信二维码
二维码
- 微信公众号 + 微信公众号
微博二维码
二维码
- 微博 + 微博
小红书二维码
二维码
- 小红书 + 小红书
抖音二维码
二维码
- 抖音 + 抖音
商城二维码
二维码
- 线上商城 + 线上商城
@@ -3760,6 +3705,7 @@ + + diff --git a/产品网站内容填写模板.md b/产品网站内容填写模板.md new file mode 100644 index 0000000..1ef6649 --- /dev/null +++ b/产品网站内容填写模板.md @@ -0,0 +1,430 @@ +# Chookoo 产品网站 — 内容填写模板 + +> **使用说明** +> 1. 本文档列出网站上所有需要填写的内容字段,请逐项填写。 +> 2. 所有文字内容需要 **中文** 和 **英文** 两个版本。 +> 3. 图片请提供源文件,并按要求的尺寸和命名规范提交。 +> 4. 填写完成后,将本文档和所有图片一起交给开发人员,我们会直接替换到网站上。 +> 5. 标有 **必填** 的字段为空则网页会显示异常,请务必填写。 + +--- + +## 一、品牌基础信息 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| B1 | 品牌Slogan | 首页顶部标语,不超过15个字 | 是 | | | +| B2 | 品牌介绍第1段 | "关于我们"区域的品牌故事第1段,3-5句话 | 是 | | | +| B3 | 品牌介绍第2段 | 品牌故事第2段,3-5句话 | 否 | | | +| B4 | 品牌介绍第3段 | 品牌故事第3段,1-2句总结性语句 | 否 | | | +| B5 | 品牌理念关键词 | 3-4个关键词,用逗号分隔,如:科技,关爱,智能,守护 | 是 | | | +| B6 | 联系电话 | 客服电话号码 | 是 | | | +| B7 | 联系邮箱 | 客服邮箱地址 | 是 | | | +| B8 | 公司地址 | 公司详细地址 | 是 | | | +| B9 | 公司名称 | 用于页脚版权声明 | 是 | | | + +### 品牌相关图片 + +| 编号 | 图片用途 | 尺寸要求 | 格式 | 说明 | 文件名(请使用此命名) | +|------|----------|----------|------|------|------------------------| +| BI1 | 网站Logo(导航栏) | **高度不低于 100px**,宽度自适应,背景透明 | PNG | 用于顶部导航栏和关于我们区域,深色背景上要清晰可见 | `logo.png` | +| BI2 | 网站Logo(白色版) | **高度不低于 100px**,宽度自适应,背景透明 | PNG | 白色文字版本,用于深色页脚区域 | `白字logo.png` | +| BI3 | 首页Hero背景图 | **3640 × 2048 px** 或同比例(16:9 横向) | JPG | 首页顶部全屏背景图,图片会铺满整个屏幕,重要内容请放在中间区域 | `hero.jpeg` | + +--- + +## 二、轮播图(首页主展示区) + +> 网站首页主展示区有 **5张** 轮播幻灯片,每张展示一个产品或活动。 +> 请为每张幻灯片填写以下信息。 + +### 幻灯片 1 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| S1-1 | 幻灯片类型 | 填 `product`(产品展示)或 `activity`(活动)或 `notice`(公告) | 是 | | | +| S1-2 | 产品主标题 | 如果类型是product,填产品名称;如果是activity/notice,填活动/公告标题 | 是 | | | +| S1-3 | 产品副标题 | 一句话描述产品核心卖点,不超过20字 | 是 | | | +| S1-4 | 活动公告内容 | 仅当类型为activity/notice时填写,1-2句详情 | 否 | | | + +**幻灯片1图片:** + +| 图片用途 | 尺寸要求 | 格式 | 说明 | 文件名 | +|----------|----------|------|------|--------| +| 产品主图 | **800 × 800 px**(正方形)或 **800 × 1000 px**(竖版),背景透明 | PNG | 产品主体图片,会居中显示在卡片中 | `slide-1-product.png` | +| 角标小图(可选) | **200 × 200 px**(正方形),背景透明 | PNG | 右上角圆形小图标,如关联产品缩略图 | `slide-1-badge.png` | + +--- + +### 幻灯片 2 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| S2-1 | 幻灯片类型 | 同上 | 是 | | | +| S2-2 | 产品主标题 | 同上 | 是 | | | +| S2-3 | 产品副标题 | 同上 | 是 | | | +| S2-4 | 活动公告内容 | 同上 | 否 | | | + +**幻灯片2图片:** + +| 图片用途 | 尺寸要求 | 格式 | 说明 | 文件名 | +|----------|----------|------|------|--------| +| 产品主图 | 同上 | PNG | | `slide-2-product.png` | +| 角标小图(可选) | 同上 | PNG | | `slide-2-badge.png` | + +--- + +### 幻灯片 3 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| S3-1 | 幻灯片类型 | 同上 | 是 | | | +| S3-2 | 产品主标题 | 同上 | 是 | | | +| S3-3 | 产品副标题 | 同上 | 是 | | | +| S3-4 | 活动公告内容 | 同上 | 否 | | | + +**幻灯片3图片:** + +| 图片用途 | 尺寸要求 | 格式 | 说明 | 文件名 | +|----------|----------|------|------|--------| +| 产品主图 | 同上 | PNG | | `slide-3-product.png` | +| 角标小图(可选) | 同上 | PNG | | `slide-3-badge.png` | + +--- + +### 幻灯片 4 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| S4-1 | 幻灯片类型 | 同上 | 是 | | | +| S4-2 | 产品主标题 | 同上 | 是 | | | +| S4-3 | 产品副标题 | 同上 | 是 | | | +| S4-4 | 活动公告内容 | 同上 | 否 | | | + +**幻灯片4图片:** + +| 图片用途 | 尺寸要求 | 格式 | 说明 | 文件名 | +|----------|----------|------|------|--------| +| 产品主图 | 同上 | PNG | | `slide-4-product.png` | +| 角标小图(可选) | 同上 | PNG | | `slide-4-badge.png` | + +--- + +### 幻灯片 5 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| S5-1 | 幻灯片类型 | 同上 | 是 | | | +| S5-2 | 产品主标题 | 同上 | 是 | | | +| S5-3 | 产品副标题 | 同上 | 是 | | | +| S5-4 | 活动公告内容 | 同上 | 否 | | | + +**幻灯片5图片:** + +| 图片用途 | 尺寸要求 | 格式 | 说明 | 文件名 | +|----------|----------|------|------|--------| +| 产品主图 | 同上 | PNG | | `slide-5-product.png` | +| 角标小图(可选) | 同上 | PNG | | `slide-5-badge.png` | + +--- + +## 三、产品卡片(首页底部产品列表) + +> 首页底部展示 **5张** 产品卡片,横向排列,可滚动。点击卡片后上方展示区会显示该产品的详细信息。 + +### 产品卡片公共图片要求 + +| 图片用途 | 尺寸要求 | 格式 | 说明 | +|----------|----------|------|------| +| 产品卡片缩略图 | **400 × 400 px**(正方形),背景透明 | PNG | 用于卡片上的小缩略图,会被裁剪显示在 **175 × 90 px** 的区域内 | +| 产品展示区大图 | **800 × 1000 px**(竖版)或 **800 × 800 px**(正方形),背景透明 | PNG | 用于点击卡片后在上方展示区显示的大图,会被显示在 **400 × 220 px** 的区域内 | + +--- + +### 产品卡片 1 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| C1-1 | 产品ID | 英文唯一标识符,只能用小写字母、数字和连字符,如 `cat-toilet-pro` | 是 | | — | +| C1-2 | 适用宠物 | 填 `cat`(猫)、`dog`(狗)或 `both`(通用) | 是 | | — | +| C1-3 | 产品名称 | 卡片上显示的产品名称,不超过8个字 | 是 | | | +| C1-4 | 产品副标题 | 卡片上一句话描述,不超过15个字 | 是 | | | +| C1-5 | 展示区副标题 | 点击后上方展示区的详细描述,2-3句话 | 是 | | | +| C1-6 | 特性1 | 展示区产品特性,每条不超过15字 | 是 | | | +| C1-7 | 特性2 | 同上 | 是 | | | +| C1-8 | 特性3 | 同上 | 是 | | | +| C1-9 | 特性4 | 同上 | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 卡片缩略图 | `product-1-thumb.png` | +| 展示区大图 | `product-1-display.png` | + +--- + +### 产品卡片 2 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| C2-1 | 产品ID | 同上 | 是 | | — | +| C2-2 | 适用宠物 | 同上 | 是 | | — | +| C2-3 | 产品名称 | 同上 | 是 | | | +| C2-4 | 产品副标题 | 同上 | 是 | | | +| C2-5 | 展示区副标题 | 同上 | 是 | | | +| C2-6 | 特性1 | 同上 | 是 | | | +| C2-7 | 特性2 | 同上 | 是 | | | +| C2-8 | 特性3 | 同上 | 是 | | | +| C2-9 | 特性4 | 同上 | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 卡片缩略图 | `product-2-thumb.png` | +| 展示区大图 | `product-2-display.png` | + +--- + +### 产品卡片 3 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| C3-1 | 产品ID | 同上 | 是 | | — | +| C3-2 | 适用宠物 | 同上 | 是 | | — | +| C3-3 | 产品名称 | 同上 | 是 | | | +| C3-4 | 产品副标题 | 同上 | 是 | | | +| C3-5 | 展示区副标题 | 同上 | 是 | | | +| C3-6 | 特性1 | 同上 | 是 | | | +| C3-7 | 特性2 | 同上 | 是 | | | +| C3-8 | 特性3 | 同上 | 是 | | | +| C3-9 | 特性4 | 同上 | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 卡片缩略图 | `product-3-thumb.png` | +| 展示区大图 | `product-3-display.png` | + +--- + +### 产品卡片 4 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| C4-1 | 产品ID | 同上 | 是 | | — | +| C4-2 | 适用宠物 | 同上 | 是 | | — | +| C4-3 | 产品名称 | 同上 | 是 | | | +| C4-4 | 产品副标题 | 同上 | 是 | | | +| C4-5 | 展示区副标题 | 同上 | 是 | | | +| C4-6 | 特性1 | 同上 | 是 | | | +| C4-7 | 特性2 | 同上 | 是 | | | +| C4-8 | 特性3 | 同上 | 是 | | | +| C4-9 | 特性4 | 同上 | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 卡片缩略图 | `product-4-thumb.png` | +| 展示区大图 | `product-4-display.png` | + +--- + +### 产品卡片 5 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| C5-1 | 产品ID | 同上 | 是 | | — | +| C5-2 | 适用宠物 | 同上 | 是 | | — | +| C5-3 | 产品名称 | 同上 | 是 | | | +| C5-4 | 产品副标题 | 同上 | 是 | | | +| C5-5 | 展示区副标题 | 同上 | 是 | | | +| C5-6 | 特性1 | 同上 | 是 | | | +| C5-7 | 特性2 | 同上 | 是 | | | +| C5-8 | 特性3 | 同上 | 是 | | | +| C5-9 | 特性4 | 同上 | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 卡片缩略图 | `product-5-thumb.png` | +| 展示区大图 | `product-5-display.png` | + +--- + +## 四、产品详情页 + +> 以下信息会显示在点击"了解更多"后跳转的产品详情页。 +> 产品ID必须与上面"产品卡片"中的ID一致。 +> 目前网站支持最多 **14个** 产品详情页。 + +### 每个产品需要填写的内容模板 + +> 请复制以下模板,每个产品填一份。 + +#### 产品:___________(产品ID:___________) + +**基本信息:** + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| D-1 | 产品标签 | 1-3个标签,用逗号分隔。可选标签类型:猫用/狗用/通用/热销/新品/配件/服务。英文对应:For Cats / For Dogs / Universal / Bestseller / New / Accessory / Service | 是 | | | +| D-2 | 产品副标题 | 详情页顶部的一句产品描述,不超过25字 | 是 | | | + +**产品亮点(4条):** + +| 编号 | 填写说明 | 必填 | 中文内容 | 英文内容 | +|------|----------|------|----------|----------| +| D-H1 | 第1个亮点,如"毫米波雷达监测心率呼吸",不超过15字 | 是 | | | +| D-H2 | 第2个亮点 | 是 | | | +| D-H3 | 第3个亮点 | 是 | | | +| D-H4 | 第4个亮点 | 是 | | | + +**产品特性(4组):** + +> 每组特性包含:图标颜色、标题、描述文字。图标颜色只能从以下4种中选择一种: +> - `blue`(蓝色 — 适合技术/监测类特性) +> - `green`(绿色 — 适合环保/清洁类特性) +> - `purple`(紫色 — 适合智能/APP类特性) +> - `orange`(橙色 — 适合安全/保障类特性) + +| 编号 | 图标颜色 | 标题(中文) | 标题(英文) | 描述(中文,不超过25字) | 描述(英文) | +|------|----------|-------------|-------------|-------------------------|-------------| +| D-F1 | blue/green/purple/orange | | | | | +| D-F2 | blue/green/purple/orange | | | | | +| D-F3 | blue/green/purple/orange | | | | | +| D-F4 | blue/green/purple/orange | | | | | + +**产品规格表:** + +> 规格行数不限,按实际产品参数填写。每行包含:参数名称(中英文)、参数值。 + +| 参数名称(中文) | 参数名称(英文) | 参数值 | +|-----------------|-----------------|--------| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +**产品图片:** + +| 图片用途 | 尺寸要求 | 格式 | 说明 | 文件名 | +|----------|----------|------|------|--------| +| 产品主图 | **800 × 800 px**(正方形),背景透明 | PNG | 详情页左侧大图展示,区域为正方形 | `detail-{产品ID}-main.png` | +| 缩略图(可选) | **160 × 160 px**(正方形),背景透明 | PNG | 主图下方的小缩略图,如有多角度视图可提供多张 | `detail-{产品ID}-thumb-1.png` | + +--- + +## 五、宠物故事(首页故事卡片) + +> 首页底部展示 **3条** 宠物故事卡片。 + +### 故事卡片图片要求 + +| 图片用途 | 尺寸要求 | 格式 | 说明 | +|----------|----------|------|------| +| 故事封面图 | **600 × 400 px**(3:2 横向),或 **800 × 450 px**(16:9 横向) | JPG | 故事卡片的封面图片,显示在 **宽度自适应 × 220px** 高的区域内 | +| 作者头像 | **80 × 80 px**(正方形) | JPG/PNG | 圆形头像,显示为 **36 × 36 px** 的圆形 | + +--- + +### 故事 1 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| ST1-1 | 故事标题 | 不超过12个字 | 是 | | | +| ST1-2 | 故事摘要 | 2-3句话的简介,不超过50字 | 是 | | | +| ST1-3 | 标签1 | 故事分类标签,如:健康恢复、AI识别、暖心故事 | 是 | | | +| ST1-4 | 标签2 | 同上 | 否 | | | +| ST1-5 | 作者昵称 | 如"小橘妈妈" | 是 | | | +| ST1-6 | 宠物信息 | 品种和年龄,如"橘猫 · 3岁" | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 故事封面图 | `story-1-cover.jpg` | +| 作者头像 | `story-1-avatar.jpg` | + +--- + +### 故事 2 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| ST2-1 | 故事标题 | 不超过12个字 | 是 | | | +| ST2-2 | 故事摘要 | 2-3句话,不超过50字 | 是 | | | +| ST2-3 | 标签1 | 同上 | 是 | | | +| ST2-4 | 标签2 | 同上 | 否 | | | +| ST2-5 | 作者昵称 | 同上 | 是 | | | +| ST2-6 | 宠物信息 | 同上 | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 故事封面图 | `story-2-cover.jpg` | +| 作者头像 | `story-2-avatar.jpg` | + +--- + +### 故事 3 + +| 编号 | 字段名 | 填写说明 | 必填 | 填写内容(中文) | 填写内容(英文) | +|------|--------|----------|------|------------------|------------------| +| ST3-1 | 故事标题 | 不超过12个字 | 是 | | | +| ST3-2 | 故事摘要 | 2-3句话,不超过50字 | 是 | | | +| ST3-3 | 标签1 | 同上 | 是 | | | +| ST3-4 | 标签2 | 同上 | 否 | | | +| ST3-5 | 作者昵称 | 同上 | 是 | | | +| ST3-6 | 宠物信息 | 同上 | 是 | | | + +| 图片 | 文件名 | +|------|--------| +| 故事封面图 | `story-3-cover.jpg` | +| 作者头像 | `story-3-avatar.jpg` | + +--- + +## 六、二维码图片 + +> 以下二维码图片用于页脚和弹窗中展示。 + +| 编号 | 二维码用途 | 显示尺寸 | 建议源图尺寸 | 格式 | 说明 | 文件名 | +|------|-----------|----------|-------------|------|------|--------| +| QR1 | 微信公众号 | 80×80px(页脚)/ 120×120px(弹窗) | **240 × 240 px** | PNG | 微信公众号二维码 | `qr-wechat.png` | +| QR2 | 微博 | 同上 | **240 × 240 px** | PNG | 微博二维码 | `qr-weibo.png` | +| QR3 | 小红书 | 同上 | **240 × 240 px** | PNG | 小红书二维码 | `qr-xiaohongshu.png` | +| QR4 | 抖音/TikTok | 同上 | **240 × 240 px** | PNG | 抖音二维码 | `qr-tiktok.png` | +| QR5 | 在线商城 | 160×160px(弹窗) | **320 × 320 px** | PNG | 在线商城/店铺二维码 | `qr-shop.png` | +| QR6 | 联系咨询 | 160×160px(弹窗) | **320 × 320 px** | PNG | 客服/咨询二维码 | `qr-contact.png` | +| QR7 | 视频号 | 120×120px(弹窗) | **240 × 240 px** | PNG | 视频号二维码 | `qr-video.png` | +| QR8 | 抖音(故事页) | 120×120px(弹窗) | **240 × 240 px** | PNG | 抖音二维码(故事页专用) | `qr-douyin.png` | + +--- + +## 七、图片尺寸汇总速查表 + +| 图片类型 | 建议源图尺寸 | 比例 | 格式 | 是否需要透明背景 | +|----------|-------------|------|------|----------------| +| 导航栏Logo | 高度 ≥ 100px,宽度自适应 | 自由 | PNG | **是** | +| 白色版Logo | 高度 ≥ 100px,宽度自适应 | 自由 | PNG | **是**(白色文字) | +| Hero背景图 | **3640 × 2048 px** | 16:9 | JPG | 否 | +| 轮播图产品主图 | **800 × 800 px** | 1:1 | PNG | **是** | +| 轮播图角标小图 | **200 × 200 px** | 1:1 | PNG | **是** | +| 产品卡片缩略图 | **400 × 400 px** | 1:1 | PNG | **是** | +| 产品展示区大图 | **800 × 1000 px** | 4:5 | PNG | **是** | +| 详情页产品主图 | **800 × 800 px** | 1:1 | PNG | **是** | +| 详情页缩略图 | **160 × 160 px** | 1:1 | PNG | **是** | +| 故事封面图 | **800 × 450 px** | 16:9 | JPG | 否 | +| 故事作者头像 | **80 × 80 px** | 1:1 | JPG/PNG | 否(圆形裁剪) | +| 二维码(页脚) | **240 × 240 px** | 1:1 | PNG | 否 | +| 二维码(弹窗大图) | **320 × 320 px** | 1:1 | PNG | 否 | + +--- + +## 八、填写检查清单 + +填写完成后,请对照以下清单自查: + +- [ ] 品牌基础信息(B1-B9)全部已填写 +- [ ] 5张轮播幻灯片(S1-S5)内容已填写 +- [ ] 5张产品卡片(C1-C5)内容已填写 +- [ ] 每个产品的详情页信息(D系列)已填写 +- [ ] 3条宠物故事(ST1-ST3)内容已填写 +- [ ] 所有需要的中英文双语内容都已填写 +- [ ] 所有图片已按要求的尺寸和格式准备好 +- [ ] 图片文件名与模板中指定的文件名一致 +- [ ] 二维码图片(QR1-QR8)已准备(如暂无可后续补充) diff --git a/产品网站内容填写模板.xlsx b/产品网站内容填写模板.xlsx new file mode 100644 index 0000000..e6100ce Binary files /dev/null and b/产品网站内容填写模板.xlsx differ