import { createRoot } from 'react-dom/client';
import React, { useState, useEffect } from 'react';
import {
Globe,
Map,
Palette,
Users,
BookOpen,
Sparkles,
Shirt,
Camera,
Activity,
Calendar,
Layers,
Image as ImageIcon,
ArrowLeft,
ChevronDown
} from 'lucide-react';
const VOTER_ID_KEY = 'portrait_aesthetic_voter_id';
const LOCAL_VOTE_PREFIX = 'portrait_aesthetic_vote';
function getVoterId() {
let voterId = localStorage.getItem(VOTER_ID_KEY);
if (!voterId) {
voterId = `voter_${Date.now()}_${Math.random().toString(16).slice(2)}`;
localStorage.setItem(VOTER_ID_KEY, voterId);
}
return voterId;
}
function voteStorageKey(type, pollId) {
return `${LOCAL_VOTE_PREFIX}_${type}_${pollId}`;
}
function readLocalVote(type, pollId) {
return localStorage.getItem(voteStorageKey(type, pollId));
}
function saveLocalVote(type, pollId, option) {
localStorage.setItem(voteStorageKey(type, pollId), option);
}
async function fetchVoteCounts(type, pollId) {
const res = await fetch('/api/votes');
const payload = await res.json();
if (!payload.ok) throw new Error(payload.message || '投票数据获取失败');
return payload.data?.[type]?.[pollId]?.counts || { total: 0 };
}
async function submitVote(type, pollId, option) {
const res = await fetch('/api/vote', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ type, pollId, option, voterId: getVoterId() })
});
const payload = await res.json();
if (!payload.ok) throw new Error(payload.message || '投票失败');
return payload;
}
// --- 1. 基础 UI 组件 (原子组件) ---
const PhotoPlaceholder = ({ text, className = "h-32", imgClassName = "object-contain", iconSize = "w-6 h-6", src, onClick }) => (
onClick(src) : undefined}
className={`bg-[#f8f8f8] flex flex-col items-center justify-center text-slate-400 border-[1.5px] border-black/30 ${src ? 'border-solid p-1.5 cursor-zoom-in' : 'border-dashed cursor-pointer'} rounded-none overflow-hidden relative group hover:bg-white hover:border-black hover:shadow-[4px_4px_0_0_rgba(0,0,0,0.1)] transition-all duration-300 ${className}`}
>
{src ? (

) : (
<>
{text && (
{text}
)}
>
)}
);
function PopulationBar({ region, pop, percentage, color, delay }) {
return (
);
}
// --- 2. 数据配置 ---
const makeupPollData = [
{ id: 1, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1.png' },
{ id: 2, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2.png' },
{ id: 3, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3.png' },
{ id: 4, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/4.png' },
{ id: 5, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/5.png' },
{ id: 6, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/6.png' },
{ id: 7, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/7.png' },
{ id: 8, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/8.png' },
];
const globalPollData = [
{ id: 1, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%A4%9A%E4%BA%BA%E7%A7%8D%E6%8A%95%E7%A5%A8%E7%8E%AF%E8%8A%821.png' },
{ id: 2, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%A4%9A%E4%BA%BA%E7%A7%8D%E6%8A%95%E7%A5%A8%E7%8E%AF%E8%8A%822.png' },
{ id: 3, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%A4%9A%E4%BA%BA%E7%A7%8D%E6%8A%95%E7%A5%A8%E7%8E%AF%E8%8A%823.png' },
{ id: 4, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%A4%9A%E4%BA%BA%E7%A7%8D%E6%8A%95%E7%A5%A8%E7%8E%AF%E8%8A%824.png' },
{ id: 5, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%A4%9A%E4%BA%BA%E7%A7%8D%E6%8A%95%E7%A5%A8%E7%8E%AF%E8%8A%825.png' },
{ id: 6, img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%A4%9A%E4%BA%BA%E7%A7%8D%E6%8A%95%E7%A5%A8%E7%8E%AF%E8%8A%826.png' },
];
const regionalMakeupData = [
{
region: "中东地区",
title: "强调立体感与奢华感 - 极致放大眼部特征",
desc: "深邃精致的眼妆是中东地区妆容的绝对灵魂。",
products: [
{ name: "眼影盘/睫毛膏/浓黑眼线笔", brand: "Huda Beauty", brandTag: "(销量冠军)", link: "https://hudabeauty.com", point: "满足当地女性打造精致眼妆的刚需。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C1-%20%E7%9C%BC%E5%BD%B1%E7%9B%98%3A%E7%9D%AB%E6%AF%9B%E8%86%8F%3A%E6%B5%93%E9%BB%91%E7%9C%BC%E7%BA%BF%E7%AC%94.png" },
{ name: "高遮瑕哑光粉底", brand: "Asteri Beauty", brandTag: "(防水防汗)", link: "https://asteribeauty.com", point: "偏好高遮瑕、强效防水防脱的粉底。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C2-%20%E9%AB%98%E9%81%AE%E7%91%95%E5%93%91%E5%85%89%E7%B2%89%E5%BA%95%2B%E4%BF%AE%E5%AE%B9%3A%E9%AB%98%E5%85%89.png" },
{ name: "中东特色香氛", brand: "Kayali", brandTag: "(沉香/玫瑰)", link: "https://hudabeauty.com/us/en_US/kayali", point: "偏爱浓郁的中东特色香调。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C3-%20%E9%A6%99%E6%B0%9B%E4%BA%A7%E5%93%81%20.png" }
]
},
{
region: "南亚地区",
title: "强调无瑕度与持久性 - 抵抗高温高湿",
desc: "受常年炎热潮湿气候影响,女性尤为看重底妆的抗氧化与防脱妆能力。",
products: [
{ name: "丝绒哑光粉底液", brand: "Masarrat Misbah", brandTag: "(专为南亚定制)", link: "https://www.masarratmakeup.com", point: "适用于南亚闷热潮湿的气候。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8D%97%E4%BA%9A1-%20%E4%B8%9D%E7%BB%B8%E5%93%91%E5%85%89%E7%B2%89%E5%BA%95%E6%B6%B2.png" },
{ name: "提亮维C精华", brand: "Minimalist", brandTag: "(护肤级爆款)", link: "https://beminimalist.co", point: "针对常见的肤色暗沉问题。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8D%97%E4%BA%9A2-%20%E4%BA%AE%E8%82%A4%E7%BB%B4%E7%94%9F%E7%B4%A0C%E7%B2%BE%E5%8D%8E.png" },
{ name: "透水指甲油", brand: "Inglot", brandTag: "(Halal 认证)", link: "https://inglotcosmetics.com", point: "满足宗教小净需求的清真指甲油。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8D%97%E4%BA%9A3-%20%E9%80%8F%E6%B0%B4%EF%BC%88%E6%B8%85%E7%9C%9F%EF%BC%89%E6%8C%87%E7%94%B2%E6%B2%B9.png" }
]
},
{
region: "东南亚地区",
title: "强调轻盈感与呼吸感 - 追求自然伪素颜",
desc: "深受韩流影响,穆斯林女性偏好自然通透、轻薄水润的妆效。",
products: [
{ name: "高倍清爽防晒", brand: "Wardah", brandTag: "(本土销冠)", link: "https://www.wardahbeauty.com", point: "兼具高倍防护与轻盈肤感。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E5%8D%97%E4%BA%9A1-%20SPF%2050%2B%20PA%2B%2B%2B%2B%20%E9%AB%98%E5%80%8D%E9%98%B2%E6%99%92%E9%9C%9C.png" },
{ name: "清透镜面唇彩", brand: "ESQA", brandTag: "(100% Halal)", link: "https://esqacosmetics.com", point: "不含酒精,价格亲民且持妆强。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E5%8D%97%E4%BA%9A2-%20-%20%E6%B8%85%E9%80%8F%E9%95%9C%E9%9D%A2%E5%94%87%E5%BD%A9.png" },
{ name: "日常百搭眼影盘", brand: "Make Over", brandTag: "(平价大牌)", link: "https://www.makeoverforall.com", point: "全线清真认证,显色度极佳。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E5%8D%97%E4%BA%9A3-%20%E7%9C%BC%E5%BD%B1%E7%9B%98.png" }
]
},
{
region: "东非地区",
title: "强调高显色与深肤适配 - 控油防沾蹭",
desc: "底妆强调色号精准,彩妆偏好与深肤形成对比的高饱和色彩。",
products: [
{ name: "哑光液体唇膏", brand: "Fenty Beauty", brandTag: "(深肤色天花板)", link: "https://fentybeauty.com", point: "色号专为深皮定制,不沾头巾。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E9%9D%9E1-%20%E5%93%91%E5%85%89%E6%B6%B2%E4%BD%93%E5%94%87%E8%86%8F.png" },
{ name: "深色号控油粉底", brand: "Huda Beauty", brandTag: "(控油王者)", link: "https://hudabeauty.com", point: "均匀肤色,强效控油。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E9%9D%9E2-%20%E7%B2%89%E5%BA%95%2B%E5%AE%9A%E5%A6%86%E6%95%A3%E7%B2%89.png" },
{ name: "深色唇线笔", brand: "MAC Cosmetics", brandTag: "(立体唇形)", link: "https://www.maccosmetics.com", point: "打造对比度极高的渐变唇。", img: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E9%9D%9E3-%20%E5%94%87%E7%BA%BF%E7%AC%94.png" }
]
}
];
const eventsData = [
{ month: '1月',
na: [{ title: '🇺🇸金球奖', desc: '好莱坞颁奖季,高定礼服与红毯妆容的社媒首波高潮', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E9%87%91%E7%90%83%E5%A5%96.png' }],
eu: [{ title: '🇪🇺巴黎时装周', desc: '全球顶奢品牌高定发布,决定了当年核心高消费审美趋势', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E5%B7%B4%E9%BB%8E%E6%97%B6%E8%A3%85%E5%91%A8.png' }],
sea: [], me: [], latam: []
},
{ month: '2月',
na: [
{ title: '🇺🇸超级碗', desc: '全美最具商业价值的体育盛会,带火运动辣妹风与中场秀仿妆', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E8%B6%85%E7%BA%A7%E7%A2%97.png' },
{ title: '🇺🇸格莱美', desc: '欧美流行乐坛最高奖项,社媒上先锋/前卫妆造爆发地', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E6%A0%BC%E8%8E%B1%E7%BE%8E.png' }
],
eu: [
{ title: '🇪🇺威尼斯狂欢节', desc: '华丽的古典主义与面具文化的传统盛典(极繁主义)', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E5%A8%81%E5%B0%BC%E6%96%AF%E7%8B%82%E6%AC%A2%E8%8A%82.png' },
{ title: '🇪🇺秋冬四大时装周', desc: '成衣秀,顶流网红/明星高奢穿搭', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E7%A7%8B%E5%86%AC%E5%9B%9B%E5%A4%A7%E6%97%B6%E8%A3%85%E5%91%A8.png' }
],
sea: [], me: [],
latam: [{ title: '🇧🇷巴西里约狂欢节', desc: '色彩缤纷视觉盛宴,穿着极度夸张的羽毛服饰搭配高饱和色彩亮片妆', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%8B%89%E7%BE%8E-%E5%B7%B4%E8%A5%BF%E9%87%8C%E7%BA%A6%E7%8B%82%E6%AC%A2%E8%8A%82.png' }]
},
{ month: '3月',
na: [
{ title: '🇺🇸奥斯卡金像奖', desc: '全球关注度最高的红毯,极致完美“老钱风”妆造核心参考', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E5%A5%A5%E6%96%AF%E5%8D%A1%E9%87%91%E5%83%8F%E5%A5%96.png' },
{ title: '🇺🇸圣帕特里克节', desc: '全民绿色穿搭狂欢,线下酒吧/派对和游行高峰(绿色系彩妆/服饰热卖期)', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E5%9C%A3%E5%B8%95%E7%89%B9%E9%87%8C%E5%85%8B%E8%8A%82.png' }
],
eu: [{ title: '🇪🇺F1', desc: '全球顶级体育赛事与名流社交场,强势带动“赛车风”服饰热潮,更是极致“老钱风”与高级感妆造的社媒焦点', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-F1.png' }],
sea: [],
me: [{ title: '🇦🇪斋月及开斋节', desc: '中东最高级别亲友聚会/送礼、高定长袍与高级雾面哑光妆的爆发期', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C-%E6%96%8B%E6%9C%88%E5%8F%8A%E5%BC%80%E6%96%8B.png' }],
latam: [{ title: '🇨🇱南美Lollapalooza音乐节', desc: '南美最大音乐节,Y2K千禧风与音乐节辣妹妆爆发地', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8D%97%E7%BE%8ELollapalooza%E9%9F%B3%E4%B9%90%E8%8A%82.png' }]
},
{ month: '4月',
na: [{ title: '🇺🇸科切拉音乐节', desc: '全球音乐节穿搭与妆容风向标', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E7%A7%91%E5%88%87%E6%8B%89%E9%9F%B3%E4%B9%90%E8%8A%82.png' }],
eu: [],
sea: [{ title: '🇹🇭泰国宋干节/泼水节', desc: '东南亚流量最大的夏日狂欢。防水妆/特色穿搭/节日氛围引起热议', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%B3%B0%E5%9B%BD%E5%AE%8B%E5%B9%B2%E8%8A%82%3A%E6%B3%BC%E6%B0%B4%E8%8A%82%20.png' }],
me: [],
latam: []
},
{ month: '5月',
na: [{ title: '🇺🇸Met Gala大都会艺术博物馆慈善舞会', desc: '“时尚界奥斯卡”,每年设定不同主题,产生破圈的高定妆造', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-Met%20Gala.png' }],
eu: [{ title: '🇫🇷戛纳电影节', desc: '欧洲最高规格红毯', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E6%88%9B%E7%BA%B3.png' }],
sea: [],
me: [],
latam: []
},
{ month: '6月',
na: [
{ title: '🇺🇸NBA', desc: '体育界流量峰值,引起球衣改造穿搭、美式街头风话题', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-NBA.png' },
{ title: '🇺🇸骄傲月', desc: '极度推崇彩虹色系穿搭、多巴胺彩妆、无性别主义的狂欢月', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E9%AA%84%E5%82%B2%E6%9C%88.png' }
],
eu: [{ title: '🇬🇧英国格拉斯顿伯里音乐节', desc: '欧洲最大的户外绿地音乐节,掀起了“英伦废土风/雨靴穿搭”风潮', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E8%8B%B1%E5%9B%BD%E6%A0%BC%E6%8B%89%E6%96%AF%E9%A1%BF%E4%BC%AF%E9%87%8C%E9%9F%B3%E4%B9%90%E8%8A%82.png' }],
sea: [],
me: [],
latam: []
},
{ month: '6月+7月',
na: [], eu: [], sea: [], me: [], latam: [],
specialEvent: {
title: '🌍世界杯',
desc: ' -- 全球化赛事,球衣/国旗妆/街头狂欢高度视觉化。对拉美、中东、欧洲影响特别大',
img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/6-7%E6%9C%88%E4%B8%96%E7%95%8C%E6%9D%AF.png',
inlineText: true,
fullRow: true
}
},
{ month: '7月',
na: [],
eu: [{ title: '🇧🇪比利时明日世界电音节', desc: '全球最大电音节,赛博朋克/金属感妆容/镭射反光服饰发源地', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E6%AF%94%E5%88%A9%E6%97%B6%E6%98%8E%E6%97%A5%E4%B8%96%E7%95%8C%E7%94%B5%E9%9F%B3%E8%8A%82.png' }],
sea: [],
me: [],
latam: [{ title: '🏆美洲杯赛', desc: '拉美流量狂欢,掀起浓烈的国旗妆容与“球衣辣妹风”', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%8B%89%E7%BE%8E-%E7%BE%8E%E6%B4%B2%E6%9D%AF%E8%B5%9B.png' }]
},
{ month: '8月',
na: [{ title: '🇺🇸火人节', desc: '为期八天的内华达沙漠狂欢。废土机能风/朋克风/部落彩绘', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E7%81%AB%E4%BA%BA%E8%8A%82%20.png' }],
eu: [{ title: '🇮🇹威尼斯国际电影节', desc: '电影颁奖季,复古意式风情妆容', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E5%A8%81%E5%B0%BC%E6%96%AF.png' }],
sea: [],
me: [],
latam: []
},
{ month: '9月',
na: [], // 清空,采用特殊合并渲染
eu: [{ title: '🇩🇪慕尼黑啤酒节', desc: '德国及欧洲最大民间狂欢', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E6%85%95%E5%B0%BC%E9%BB%91%E5%95%A4%E9%85%92%E8%8A%82.png' }],
sea: [],
me: [],
latam: [],
specialEvent: {
title: '春夏四大时装周 (9月全月)',
desc: '纽约(实用现代 可穿性)/ 伦敦(个性反叛 潮流性)/ 米兰(经典浪漫 工艺性)/ 巴黎(精致奢华 艺术性)轮番上演,奠定次年春夏全球流行色彩、发型与妆容创作趋势。',
img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E%3A%E6%AC%A7%E6%B4%B2-%E6%98%A5%E5%A4%8F%E5%9B%9B%E5%A4%A7%E6%97%B6%E8%A3%85%E5%91%A8.png'
}
},
{ month: '10月',
na: [{ title: '🇺🇸万圣节 (10/31)', desc: '主流社媒流量最夸张的变装派对季。特效妆/脑洞Cosplay全面爆发', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E4%B8%87%E5%9C%A3%E8%8A%82%2810%3A31%29.png' }],
eu: [],
sea: [],
me: [{ title: '🇸🇦利雅得狂欢季', desc: '10月开幕持续至次年的超大型冬季盛会,主打“壕无人性”的奢华消费、文化体验与顶级娱乐。', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C-%E5%88%A9%E9%9B%85%E5%BE%97%E7%8B%82%E6%AC%A2%E5%AD%A3.png' }],
latam: []
},
{ month: '11月',
na: [
{ title: '🇺🇸维密秀', desc: '顶级内衣秀场,掀起性感“大波浪与古铜肤色”热潮', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E7%BB%B4%E5%AF%86%E7%A7%80.png' },
{ title: '🇺🇸感恩节', desc: '北美家庭聚餐,偏向温暖的“南瓜色调”滤镜/妆造', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E-%E6%84%9F%E6%81%A9%E8%8A%82.png' }
],
eu: [],
sea: [{ title: '🇹🇭泰国水灯节/天灯节', desc: '东南亚最传统节日,传统泰服/金饰步摇/轻泰妆集中展示', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E5%8D%97%E4%BA%9A-%E6%B3%B0%E5%9B%BD%E6%B0%B4%E7%81%AF%3A%E5%A4%A9%E7%81%AF%E8%8A%82.png' }],
me: [],
latam: [{ title: '🇲🇽墨西哥亡灵节', desc: '具有神秘色彩,被列入世界文化遗产。卡特里娜骷髅妆/寿菊元素/民族复古大方裙摆元素', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%8B%89%E7%BE%8E-%E5%A2%A8%E8%A5%BF%E5%93%A5%E4%BA%A1%E7%81%B5%E8%8A%82.png' }]
},
{ month: '12月',
na: [],
eu: [],
sea: [{ title: '🇹🇭Wonderfruit音乐节', desc: '亚洲调性最高的生活音乐节。主打环保嬉皮风、和原生态大地色系穿搭', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E5%8D%97%E4%BA%9A-%E6%B3%B0%E5%9B%BDWonderfruit%E9%9F%B3%E4%B9%90%E8%8A%82%20.png' }],
me: [{ title: '🇸🇦沙特MDLBEAST音爆电音节', desc: '中东规模最大电音节。主打国际与本土潮流混搭,展现极具活力的沙特年轻一代狂欢群像。', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C%E6%B2%99%E7%89%B9MDLBEAST%20Soundstorm%E9%9F%B3%E7%88%86%E7%94%B5%E9%9F%B3%E8%8A%82.png' }],
latam: []
}
];
const faceTraitData = [
{
region: "北美",
races: [
{
name: "欧裔白人", percent: "55-60%",
genes: "肤色基调多样,冷白皮到健康肤色。面部骨感强,眉眼深邃,高立体度。",
body: "骨架较大四肢修长,追求匀称肌肉线条与未经过度修饰的活力感。",
vibe: "崇尚真实随性,追求清冷感的骨相美与自信大方的精神面貌。",
influencerName: "艾尔莎·霍斯克 (Elsa Hosk)", influencerDesc: "欧美真实感与松弛感完美结合",
influencerLink: "https://www.instagram.com/hoskelsa/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E%E6%AC%A7%E8%A3%94%E7%99%BD%E4%BA%BA.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%8C%97%E7%BE%8E%E6%AC%A7%E8%A3%94%E7%99%BD%E4%BA%BA%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B1.png"
},
{
name: "拉丁裔", percent: "18-20%",
genes: "健康小麦色及古铜肤色。面部折叠度高,浓眉大眼深邃,毛发浓密。",
body: "曲线鲜明,主打肉感与力量感并存,认同丰满有线条的形体。",
vibe: "强韧生命力与力量感,展示极度自信与热情奔放的野性美。",
influencerName: "卡米拉·门德斯 (Camila Mendes)", influencerDesc: "典型拉丁骨相,肉感与力量并存",
influencerLink: "https://www.instagram.com/camimendes/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E%E6%8B%89%E4%B8%81%E8%A3%94.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%8C%97%E7%BE%8E%E6%8B%89%E4%B8%81%E8%A3%94%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B2.png"
},
{
name: "非洲裔", percent: "12-14%",
genes: "浅棕到深黑层次丰富。轮廓饱满,五官立体量感大,天然卷发。",
body: "逆天头身比与大长腿。追求有张力的线条与紧实感,气场全开。",
vibe: "打破白幼瘦框架,将生命张力与时尚前卫力量感完美融合。",
influencerName: "洛里·哈维 (Lori Harvey)", influencerDesc: "力量感与肌肉线条美的代表",
influencerLink: "https://www.instagram.com/loriharvey/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E%E9%9D%9E%E6%B4%B2%E8%A3%94.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%8C%97%E7%BE%8E%E9%9D%9E%E6%B4%B2%E8%A3%94%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B2.png"
},
{
name: "亚裔", percent: "6%",
genes: "暖白至黄黑中性肤色。五官精致皮相紧致,受ABG风格影响明显。",
body: "整体偏纤细匀称。近年逐渐增加肌肉锻炼,平衡柔美与力量。",
vibe: "东方温婉与西方自信相融合,独具魅力的亚裔混血感。",
influencerName: "Jenn Im", influencerDesc: "ABG Style标杆,阳光自信笑容",
influencerLink: "https://www.instagram.com/imjennim/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E%E4%BA%9A%E8%A3%94.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%8C%97%E7%BE%8E%E4%BA%9A%E8%A3%94%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B2.png"
},
{
name: "混血人群", percent: "快速增长",
genes: "多样的特征融合(白人骨相+有色人种肤色),INS极受欢迎。",
body: "体型多样化,基因融合兼具修长与力量紧致的运动线条。",
vibe: "打破单一族裔标签,强调个体的独特性与不可复制性。",
influencerName: "凯尔西·梅里特 (@kelseymerritt)", influencerDesc: "亚裔+白人混血 “高审美”",
influencerLink: "https://www.instagram.com/kelseymerritt/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8C%97%E7%BE%8E%E6%B7%B7%E8%A1%80.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%8C%97%E7%BE%8E%E6%B7%B7%E8%A1%80%E8%A3%94%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B1.png"
}
]
},
{
region: "欧洲",
races: [
{
name: "西欧 (法/德/英)", percent: "36.6%",
genes: "自然白皙到偏粉的冷调或中性肤色。面部折叠度高,五官匀称。",
body: "高挑修长视觉匀称。偏好自然体态,不过度强调夸张曲线。",
vibe: "法式慵懒、英伦冷酷,整体呈现经典质感与现代简约的从容。",
influencerName: "Romee Strijd", influencerDesc: "荷兰维密天使,健康阳光与自然性感美",
influencerLink: "https://www.instagram.com/romeestrijd/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E8%A5%BF%E6%AC%A7.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2-%E6%AC%A7%E6%B4%B2%E8%A5%BF%E6%AC%A7%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B1.png"
},
{
name: "北欧 (瑞典/丹麦/挪威)", percent: "5.0%",
genes: "浅色冷白皮,面部色彩对比度低。面部平整骨骼感重,浅色瞳孔。",
body: "四肢修长头身比优越。推崇极简自然主义与清瘦骨感。",
vibe: "高智清冷感与极简主义,男性多留胡须展现疏离的高级美。",
influencerName: "Elsa Hosk", influencerDesc: "冰雪精灵般的高智冷艳美感",
influencerLink: "https://www.instagram.com/hoskelsa/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E5%8C%97%E6%AC%A7.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2-%E6%AC%A7%E6%B4%B2%E5%8C%97%E6%AC%A7%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B1.png"
},
{
name: "南欧 (西/意/葡)", percent: "20.2%",
genes: "健康橄榄色或暖沙色皮肤。浓颜系大五官,毛发浓密,眼窝深邃。",
body: "体格相对强壮,肌肉线条与曲线感明显,喜爱充满活力的美感。",
vibe: "热烈充满张力,展现奔放且极具生命力的氛围,性感奢华。",
influencerName: "Georgina Rodriguez", influencerDesc: "张扬外放的南欧奢华热烈风",
influencerLink: "https://www.instagram.com/georginagio/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E5%8D%97%E6%AC%A7.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2-%E6%AC%A7%E6%B4%B2%E5%8D%97%E6%AC%A7%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B1.png"
},
{
name: "东欧 (俄/乌/波)", percent: "38.2%",
genes: "细腻通透冷白皮。五官极为立体,眼窝深鼻尖锐,标准V型脸。",
body: "身高优势绝对,直角肩加紧致线条,追求极致的头身比例。",
vibe: "追求极致精致与强大的气场,视觉上呈现冷艳高贵的距离感。",
influencerName: "Lena Perminova", influencerDesc: "东欧极致比例与冷艳高贵气质",
influencerLink: "https://www.instagram.com/lenaperminova/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%AC%A7%E6%B4%B2-%E4%B8%9C%E6%AC%A7.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2-%E6%AC%A7%E6%B4%B2%E4%B8%9C%E6%AC%A7%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B1.png"
}
]
},
{
region: "东南亚",
races: [
{
name: "泰式混血系", percent: "约 25-30%",
genes: "偏好白皙透亮或高光泽浅小麦色。混血感重,深邃大眼加野生眉。",
body: "偏纤细的小骨架,追求年轻态与运动线条感的结合。",
vibe: "融合多元审美,追求精致感与鲜活生命力,热带风情甜酷感。",
influencerName: "davikah", influencerDesc: "泰式神颜,明艳大气的混血感",
influencerLink: "https://www.instagram.com/davikah/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E5%8D%97%E4%BA%9A-%E6%B3%B0%E5%BC%8F.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3-%E4%B8%9C%E5%8D%97%E4%BA%9A%E6%B3%B0%E5%BC%8F%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
},
{
name: "本土马来/印尼系", percent: "70%",
genes: "健康深小麦色或暖古铜肤色。面部偏宽短,折叠度低骨相柔和。",
body: "骨架偏小体态丰腴圆润,偏好充满生命力与肉感的丰腴美。",
vibe: "追求原生生态的亲和力与自然美,强调健康的血色与淳朴张力。",
influencerName: "Maudy Ayunda (@maudyayunda)", influencerDesc: "极具东南亚本土魅力的野性美",
influencerLink: "https://www.instagram.com/maudyayunda/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%9C%E5%8D%97%E4%BA%9A-%E6%9C%AC%E5%9C%9F%E9%A9%AC%E6%9D%A5%3A%E5%8D%B0%E5%B0%BC%E7%B3%BB.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3-%E4%B8%9C%E5%8D%97%E4%BA%9A%E6%9C%AC%E5%9C%9F%E9%A9%AC%E6%9D%A5%3A%E5%8D%B0%E5%B0%BC%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
}
]
},
{
region: "中东",
races: [
{
name: "海湾/阿拉伯系", percent: "50.1%",
genes: "浅古铜到暖棕色。极致浓颜,眼眉浓密毛流感极强,轮廓极深。",
body: "骨架较大体量感强,女性多为极度明显的沙漏型身材曲线。",
vibe: "追求极致奢华感,浓墨重彩展现神秘高贵且不可冒犯的气场。",
influencerName: "Rawan Bin Hussain", influencerDesc: "海湾顶级浓颜奢华富贵花",
influencerLink: "https://www.instagram.com/rawan/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C%E6%B5%B7%E6%B9%BE%3A%E9%98%BF%E6%8B%89%E4%BC%AF%E7%B3%BB.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/4-%E4%B8%AD%E4%B8%9C%E6%B5%B7%E6%B9%BE%3A%E9%98%BF%E6%8B%89%E4%BC%AF%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
},
{
name: "黎凡特/地中海系", percent: "19.3%",
genes: "受地中海影响多为偏白或浅橄榄肤色。轮廓柔和紧实鼻型直挺。",
body: "高挑修长兼具骨感与匀称,偏好优雅端庄的舒展姿态。",
vibe: "追求自然松弛与精致优雅的平衡,散发出现代高知与独立属性。",
influencerName: "Karen Wazen", influencerDesc: "黎凡特优雅松弛的高知现代美",
influencerLink: "https://www.instagram.com/karenwazen/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C%E9%BB%8E%E5%87%A1%E7%89%B9%3A%E5%9C%B0%E4%B8%AD%E6%B5%B7%E7%B3%BB.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/4-%E4%B8%AD%E4%B8%9C%E9%BB%8E%E5%87%A1%E7%89%B9_%E5%9C%B0%E4%B8%AD%E6%B5%B7%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
},
{
name: "波斯/伊朗系", percent: "30.4%",
genes: "浅肤色为主,追求精致小巧鼻型。面部线条硬朗,眼眶深邃度高。",
body: "高挑挺拔具有一定的力量感,注重健身与肌肉线条的精准雕刻。",
vibe: "追求完美主义与极致的雕琢感,展现出高智且带棱角的张力。",
influencerName: "Mahlagha Jaberi", influencerDesc: "波斯极致雕琢感与完美骨相",
influencerLink: "https://www.instagram.com/mahlaghajaberi/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%B8%AD%E4%B8%9C%E6%B3%A2%E6%96%AF%3A%E4%BC%8A%E6%9C%97%E7%B3%BB.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/4-%E4%B8%AD%E4%B8%9C%E6%B3%A2%E6%96%AF%3A%E4%BC%8A%E6%9C%97%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
}
]
},
{
region: "拉美",
races: [
{
name: "印欧混血系", percent: "45-50%",
genes: "偏暖色调棕褐色肤色。融合美洲原住民下颌与欧洲立体深邃五官。",
body: "比例匀称,赞美健康活力的体态,以及力量感的宽臀细腰。",
vibe: "追求热情奔放与自然野性美,展现充满生机的健康气血感。",
influencerName: "Kenia Os", influencerDesc: "拉美热情张扬与健康性感美",
influencerLink: "https://www.instagram.com/keniaos/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%8B%89%E7%BE%8E-%E5%8D%B0%E6%AC%A7%E6%B7%B7%E8%A1%80%E7%B3%BB.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/5-%E5%8D%B0%E6%AC%A7%E6%B7%B7%E8%A1%80%E6%8B%89%E7%BE%8E%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
},
{
name: "欧洲后裔", percent: "30-35%",
genes: "浅白到中等橄榄色,皮肤通透。纯正欧洲立体骨相,五官深邃。",
body: "骨架较大骨感明显四肢修长,受欧美流行生活方式影响极大。",
vibe: "在精巧线上保留着拉美独特生命力的底色,松弛且充满活力。",
influencerName: "Valentina Zenere", influencerDesc: "欧式精巧骨相碰撞拉美活力",
influencerLink: "https://www.instagram.com/valentinazenere/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%8B%89%E7%BE%8E-%E6%AC%A7%E6%B4%B2%E8%A3%94%E6%8B%89%E7%BE%8E.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/5-%E6%AC%A7%E8%A3%94%E6%8B%89%E7%BE%8E%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
},
{
name: "巴西/多生态混血", percent: "15%",
genes: "肤色极其多样化。面部特征既有立体骨相又有本土的胶原饱满度。",
body: "融合多种基因优势,极具力量感与线条感,追求饱满的臀腿。",
vibe: "强调个体的独特性和不可复制性,张扬外放的无拘束野性。",
influencerName: "Camila Coelho", influencerDesc: "巴西混血多元基因与绝对自信",
influencerLink: "https://www.instagram.com/camilacoelho/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%8B%89%E7%BE%8E-%E5%B7%B4%E8%A5%BF%3A%E5%A4%9A%E7%94%9F%E6%80%81%E6%B7%B7%E8%A1%80.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/5-%E5%B7%B4%E8%A5%BF%3A%E6%B7%B7%E8%A1%80%E6%8B%89%E7%BE%8E%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
},
{
name: "非洲裔后代", percent: "5-10%",
genes: "焦糖色到深巧克力色。骨相立体丰满,大体量五官,厚唇深眸。",
body: "骨架宽大肌肉量强硬。腰腿比例优越,线条极具爆发力。",
vibe: "无上的生命张力与绝对的自信性感,打破单一审美的视觉冲击。",
influencerName: "IZA", influencerDesc: "绝对的生命张力与黑人性感美",
influencerLink: "https://www.instagram.com/iza/",
faceImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%8B%89%E7%BE%8E-%E9%9D%9E%E8%A3%94%E6%8B%89%E7%BE%8E.png",
influencerImg: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/5-%E9%9D%9E%E8%A3%94%E6%8B%89%E7%BE%8E%E5%8D%9A%E4%B8%BB%E4%B8%BE%E4%BE%8B.png"
}
]
}
];
// --- 3. 核心功能组件 ---
function MakeupPollItem({ item, onImageClick, user }) {
const [selected, setSelected] = useState(null);
const [userVote, setUserVote] = useState(null);
const [voteCounts, setVoteCounts] = useState({ total: 0 });
const [isSubmitting, setIsSubmitting] = useState(false);
const options = ['中东地区', '南亚地区', '东南亚地区', '东非地区'];
const labels = ['A', 'B', 'C', 'D'];
useEffect(() => {
const storedVote = readLocalVote('makeup', `poll_${item.id}`);
if (storedVote) {
setUserVote(storedVote);
setSelected(storedVote);
}
}, [item.id]);
useEffect(() => {
let alive = true;
const loadCounts = async () => {
try {
const counts = await fetchVoteCounts('makeup', `poll_${item.id}`);
if (alive) setVoteCounts(counts);
} catch (err) {
console.warn("Vote counts error:", err);
}
};
loadCounts();
const timer = setInterval(loadCounts, 5000);
return () => {
alive = false;
clearInterval(timer);
};
}, [item.id]);
const handleVote = async () => {
if (!selected || userVote || isSubmitting) return;
setIsSubmitting(true);
try {
const payload = await submitVote('makeup', `poll_${item.id}`, selected);
const finalSelection = payload.selected || selected;
saveLocalVote('makeup', `poll_${item.id}`, finalSelection);
setUserVote(finalSelection);
setSelected(finalSelection);
const counts = payload.data?.makeup?.[`poll_${item.id}`]?.counts;
if (counts) setVoteCounts(counts);
} catch (e) {
console.error("Vote failed", e);
} finally {
setIsSubmitting(false);
}
};
const voted = !!userVote;
return (
onImageClick && item.img && onImageClick(item.img)}
>
{item.img ? (
<>

>
) : (
?
)}
{options.map((opt, idx) => {
const isSelected = selected === opt;
const count = voteCounts[opt] || 0;
const totalVotes = voteCounts.total || 0;
const percentage = totalVotes > 0 ? Math.round((count / totalVotes) * 100) : 0;
let stateClass = "border-transparent hover:border-black/20";
if (voted) {
if (isSelected) stateClass = "border-black bg-white font-bold text-black";
else stateClass = "border-transparent opacity-60 text-slate-500";
} else if (isSelected) {
stateClass = "border-black bg-slate-50 text-black";
}
return (
!voted && setSelected(opt)}>
{(voted || totalVotes > 0) &&
}
{labels[idx]}
{opt}
{count}票{percentage}%
);
})}
);
}
function GlobalPollItem({ item, onImageClick, user }) {
const [selected, setSelected] = useState(null);
const [userVote, setUserVote] = useState(null);
const [voteCounts, setVoteCounts] = useState({ total: 0 });
const [isSubmitting, setIsSubmitting] = useState(false);
const options = ['北美', '欧洲', '东南亚', '中东', '拉美'];
const labels = ['A', 'B', 'C', 'D', 'E'];
useEffect(() => {
const storedVote = readLocalVote('global', `poll_${item.id}`);
if (storedVote) {
setUserVote(storedVote);
setSelected(storedVote);
}
}, [item.id]);
useEffect(() => {
let alive = true;
const loadCounts = async () => {
try {
const counts = await fetchVoteCounts('global', `poll_${item.id}`);
if (alive) setVoteCounts(counts);
} catch (err) {
console.warn("Vote counts error:", err);
}
};
loadCounts();
const timer = setInterval(loadCounts, 5000);
return () => {
alive = false;
clearInterval(timer);
};
}, [item.id]);
const handleVote = async () => {
if (!selected || userVote || isSubmitting) return;
setIsSubmitting(true);
try {
const payload = await submitVote('global', `poll_${item.id}`, selected);
const finalSelection = payload.selected || selected;
saveLocalVote('global', `poll_${item.id}`, finalSelection);
setUserVote(finalSelection);
setSelected(finalSelection);
const counts = payload.data?.global?.[`poll_${item.id}`]?.counts;
if (counts) setVoteCounts(counts);
} catch (e) {
console.error("Vote failed", e);
} finally {
setIsSubmitting(false);
}
};
const voted = !!userVote;
return (
onImageClick && item.img && onImageClick(item.img)}
>
{item.img ? (
<>

>
) : (
?
)}
多元人像
{options.map((opt, idx) => {
const isSelected = selected === opt;
const count = voteCounts[opt] || 0;
const totalVotes = voteCounts.total || 0;
const percentage = totalVotes > 0 ? Math.round((count / totalVotes) * 100) : 0;
let stateClass = "border-transparent hover:border-black/20";
if (voted) {
if (isSelected) stateClass = "border-black bg-white font-bold text-black";
else stateClass = "border-transparent opacity-60 text-slate-500";
} else if (isSelected) {
stateClass = "border-black bg-slate-50 text-black";
}
return (
!voted && setSelected(opt)}>
{(voted || totalVotes > 0) &&
}
{labels[idx]}
{opt}
{count}票{percentage}%
);
})}
);
}
function MakeupDetailedTable({ onImageClick }) {
return (
{regionalMakeupData.map((col, colIdx) => {
const [mainTitle, subTitle] = col.title.split(' - ');
return (
{col.region}
{mainTitle}
{subTitle && {subTitle}
}
{col.products.map((prod, pIdx) => (
))}
);
})}
);
}
function HalalMakeupMarket() {
const marketData = [
{
title: '市场潜力',
subtitle: '年轻、庞大、多元',
theme: { bg: 'bg-[#fdf6ea]', border: 'border-[#f5d9a9]', text: 'text-[#b47a18]', hoverBg: 'hover:bg-[#fdf6ea]/50' },
items: [
{ highlight: '20亿+', desc: '全球人口基数', sub: '60%为30岁以下年轻群体' },
{ highlight: '$280亿', desc: '2032年预估规模', sub: '行业增长呈爆发态势' },
{ highlight: '+28%', desc: '男士护理激增', sub: '打破性别壁垒,走向多元化' }
]
},
{
title: '核心规定',
subtitle: '遵循伊斯兰教法',
theme: { bg: 'bg-[#eef8f5]', border: 'border-[#bce3d4]', text: 'text-[#2c7a5b]', hoverBg: 'hover:bg-[#eef8f5]/50' },
items: [
{ highlight: '0 禁忌', desc: '成分绝对透明', sub: '拒绝猪油/明胶等违规成分' },
{ highlight: '0 伤害', desc: '拒绝动物实验', sub: '不含酒精及有害化学物质' },
{ highlight: '0 污染', desc: '推行可持续性', sub: '超30%品牌使用环保可降解包装' }
]
},
{
title: '市场细分',
subtitle: '核心品类分布',
theme: { bg: 'bg-[#f6f2fb]', border: 'border-[#d8c5f0]', text: 'text-[#6b42a1]', hoverBg: 'hover:bg-[#f6f2fb]/50' },
items: [
{ highlight: '38%', desc: '护肤品类', sub: '占据市场绝对消费主力' },
{ highlight: '29%', desc: '护发品类', sub: '位居第二大核心需求' },
{ highlight: '21%', desc: '彩妆品类', sub: '色彩消费正在快速崛起' }
]
}
];
return (
{marketData.map((col, i) => (
{col.title}
{col.subtitle}
{col.items.map((item, j) => (
{item.desc}
{item.sub}
{item.highlight}
))}
))}
);
}
function ClothingCol({ region, femaleImages, maleImages, femaleDesc, maleDesc, materialDesc, onImageClick, customFemaleHeight, customMaleHeight }) {
const renderImages = (images, height) => {
if (Array.isArray(images)) return images.map((src, i) => (
));
return [...Array(images)].map((_, i) => (
));
};
return (
{region}
女性
{renderImages(femaleImages, customFemaleHeight)}
{femaleDesc}
男性
{renderImages(maleImages, customMaleHeight)}
{maleDesc}
);
}
function FestivalDetailedTable({ onImageClick }) {
return (
斋月 (Ramadan)
开斋节 (Eid al-Fitr)
古尔邦节 / 宰牲节 (Eid al-Adha)
简介
{[
{ t1: "定位与仪式", d1: "伊斯兰教一年中最神圣的月份。穆斯林必须在黎明至日落期间严格禁食禁水。", t2: "文化内核", d2: "这不仅是对身体的考验,更是为了精神净化与自我反省,培养坚韧自律品格。" },
{ t1: "定位与仪式", d1: "标志着斋月圆满结束的庆祝节日。人们会换上新衣,参加盛大会礼。", t2: "文化内核", d2: "走亲访友、享用丰盛美食、分发红包礼物,象征团聚、喜悦与感恩。" },
{ t1: "定位与仪式", d1: "伊斯兰教最盛大节日。核心仪式是宰杀符合教规的健康牲畜(牛/羊/骆驼)。", t2: "文化内核", d2: "肉品均分为三份:自用、馈赠、施舍。借此践行无私奉献与慈善精神。" }
].map((intro, idx) => (
))}
活动
{[
{ i1: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%96%8B%E6%9C%881.png", i2: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E6%96%8B%E6%9C%882.png" },
{ i1: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%BC%80%E6%96%8B%E8%8A%821.png", i2: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%BC%80%E6%96%8B%E8%8A%822.png" },
{ i1: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8F%A4%E5%B0%94%E9%82%A6%E8%8A%82%20_%20%E5%AE%B0%E7%89%B2%E8%8A%82%201.png", i2: "https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%8F%A4%E5%B0%94%E9%82%A6%E8%8A%82%20_%20%E5%AE%B0%E7%89%B2%E8%8A%82%202.png" }
].map((act, idx) => (
))}
🕌 宗教建筑
{[
"https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%AE%97%E6%95%99%E5%BB%BA%E7%AD%91-1.png",
"https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%AE%97%E6%95%99%E5%BB%BA%E7%AD%91-2.png",
"https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%AE%97%E6%95%99%E5%BB%BA%E7%AD%91-4.png",
"https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E5%AE%97%E6%95%99%E5%BB%BA%E7%AD%91-3.png"
].map((url, i) => (
))}
);
}
// --- 4. 页面大板块组件 ---
function IntroSection() {
return (
项目定位 · 背景 · 结构
全球文化审美研究 · 总览卡
{/* Col 1 - 定位 */}
{/* Header */}
{/* Timeline Area */}
{/* Vertical Line */}
{/* Node 1 */}
五大区域 · 全球视野
聚焦 北美、欧洲、东南亚、中东、拉美 五大区域
分析全球主流审美趋势
{/* Node 2 */}
从人像出发 · 多场景延展
深挖 人像美学,及其在 服装、摄影、建筑空间 中的本土化表达。
{/* Col 2 - 背景 */}
{/* Header */}
{/* Timeline Area */}
{/* Vertical Line */}
{/* Node 1 */}
优化模型
打破 AI 在跨文化生成中的
「认知盲区」与「审美偏差」。
{/* Node 2 */}
{/* Col 3 - 结构 */}
{/* Header */}
{/* Timeline Area */}
{/* Vertical Line */}
{/* Node 1 */}
研究主轴
审美维度 (纵向) × 地理区域 (横向)
{/* Node 2 */}
{/* Node 3 */}
P1 · 流行趋势
· 人像特征
· INS 网感
· 设计语言
{/* Node 4 */}
);
}
function MuslimSection({ onImageClick, user }) {
const [subTab, setSubTab] = useState('population');
const tabs = [
{ id: 'population', label: '人口分布', icon: },
{ id: 'clothing', label: '服装特点', icon: },
{ id: 'makeup', label: '美妆风格', icon: },
{ id: 'festival', label: '传统节日', icon: },
];
return (
{tabs.map((tab) => (
))}
{subTab === 'population' && (
全球分布
占世界总人口的四分之一。
主要分布在中东、南亚、东南亚等地区。
onImageClick("https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E7%A9%86%E6%96%AF%E6%9E%97%E5%85%A8%E7%90%83%E5%88%86%E5%B8%83.png")}>
)}
{subTab === 'clothing' && (
服装特点
{/* 特别地区 - 补充对比栏 */}
{/* 顶部全宽 Label */}
👀
特别地区
{/* 下方 垂直列表分析区 (左字右图) */}
{/* 中东 - 伊朗 */}
{/* 左侧文字 */}
伊朗地区穆斯林男性:
日常多为西式衬衫 + 长裤,很少佩戴头巾
最著名的潜规则是“不打领带”,因为领带被视为西方颓废文化的象征
{/* 右侧图片 */}
{/* 东南亚 - 苏门答腊 */}
{/* 左侧文字 */}
苏门答腊文化圈 (亚齐 / 西苏门答腊)
街头会有 宗教警察 检查女性是否戴头巾、服装是否太紧。
这与东南亚其他地区(如印尼主流文化圈)相对宽松的着装要求形成鲜明反差。
{/* 右侧图片 */}
{/* 东非 - 索马里 */}
{/* 左侧文字 */}
索马里和苏丹女性 穿衣风格反差极大:
索马里:穿搭极其华丽张扬,女性非常喜爱佩戴夸张的黄金饰品。
✨ 打破了“只能朴素单调”的刻板印象。
{/* 右侧图片 */}
)}
{subTab === 'makeup' && (
互动环节:盲猜美妆风格
{makeupPollData.map(item => )}
清真美妆市场洞察
区域美妆特征分析
)}
{subTab === 'festival' && (
传统节日与视觉特征
)}
);
}
function GlobalSection({ onImageClick, user }) {
const [subTab, setSubTab] = useState('core');
const tabs = [
{ id: 'core', label: '核心目标', icon: },
{ id: 'ins', label: '网感氛围', icon: },
{ id: 'face', label: '面部特征', icon: },
{ id: 'body', label: '身型趋势', icon: },
{ id: 'makeup_system', label: '主流妆造', icon: },
];
return (
{tabs.map((tab) => (
))}
{subTab === 'core' && (
三大核心目标
{[{id:'01',t:'氛围与质感',d:'拿捏不同文化 feel。'},{id:'02',t:'长相与人种',d:'真实强特征人像。'},{id:'03',t:'流行与审美',d:'当下变美思路。'}].map((i, idx)=>(
))}
)}
{subTab === 'ins' && (
)}
{subTab === 'face' && (
互动环节
{globalPollData.map(item => )}
多区域人像特征详析
{/* 东南亚(2人群)和中东(3人群)并排展示,按2:3比例划分实现内部每一列的绝对等宽 */}
)}
{subTab === 'body' && (
身型趋势分析
从“完美体态”全面转向“健康状态”
在全球“反身材焦虑”与审美多元化的浪潮下,单一严苛的标准正逐渐瓦解。各区域的审美趋势均已显著转向尊重基因差异,塑造出更具生命力的“健康力量体态”。
)}
{subTab === 'makeup_system' && (
多区域主流妆造体系分析
核心演变:从“统一模版”向“多元原生”进化
在全球审美风向的更迭中,各区域的妆造体系正摆脱单一滤镜感。无论是北美的清透肌、欧洲的静奢风,还是中东的清透华丽,都指向了“保留原生纹理、放大独特气场”的全新高度。
)}
);
}
function FaceTraitCard({ region, races, onImageClick }) {
const gridColsClass = {
2: 'lg:grid-cols-2',
3: 'lg:grid-cols-3',
4: 'lg:grid-cols-4',
5: 'lg:grid-cols-5'
}[races.length] || 'lg:grid-cols-1';
return (
{region}地区 · 面部特征分析
核心人群构成
{races.map((race, idx) => (
{/* 顶部主图区域 */}
{/* 人群与占比 */}
{race.name}
占比: {race.percent}
{/* 核心特征分析 (强对齐) */}
{/* 博主/明星案例 */}
{race.influencerName && (
)}
))}
);
}
function BodyTrendCard({ region, before, after, beforeImg, afterImg, onImageClick }) {
return (
);
}
function InsCard({ region, flag, style, tone, vibe, imgCount = 4, images = [], onImageClick }) {
return (
{region}
{flag}
{/* 全新重构的 Moodboard 拼图排版 */}
{images && images.length > 0 ? (
<>
{images.slice(1, 4).map((src, i) => (
))}
>
) : (
[...Array(imgCount)].map((_, i) =>
)
)}
);
}
function ExpandableText({ title, desc }) {
const [isExpanded, setIsExpanded] = useState(false);
return (
setIsExpanded(!isExpanded)}
>
{/* 增加 min-h-[38px] 以兼容单行和双行文字的高度差异,确保外部卡片实现绝对的横向像素级对齐 */}
);
}
function MakeupSystemCard({ region, topImg, culture, aestheticTitle, aestheticDesc, makeups, hairs, onImageClick }) {
return (
{/* 顶部区域 Header */}
{region}
{/* 第一部分:视觉基调 & 核心理念区 */}
妆容审美特征
{aestheticTitle}
{aestheticDesc}
{/* 第二部分:美妆热词区 */}
2026 美妆热词
{makeups.map((item, idx) => (
))}
{/* 第三部分:发型热词区 */}
2026 发型热词
{hairs.map((item, idx) => (
))}
);
}
function EventsSection({ onImageClick }) {
return (
04 / 多区域代表性活动赛事及活动妆造
标志性节点与活动妆造日历
国际赛事妆造时间轴
严格按照世界时间轴(1月-12月)列举全球范围内最具社媒流量(TikTok/Instagram)、最能带动美妆/服饰/电商消费,以及最具文化视觉反差感的标志性节点。
{/* Header */}
月份
🇺🇸 北美
🇪🇺 欧洲
🇹🇭 东南亚
🇦🇪 中东
🇧🇷 拉美
{/* Rows */}
{eventsData.map((row, idx) => (
【{row.month}】
{/* 针对特殊行处理:跨列 */}
{row.specialEvent ? (
row.specialEvent.fullRow ? (
{/* 隐形网格,强行保证图片宽度精准对齐上方的第一列 */}
{/* 底部横向跨行的文本说明区 */}
{row.specialEvent.inlineText ? (
{row.specialEvent.title}{row.specialEvent.desc}
) : (
{row.specialEvent.title}
{row.specialEvent.desc}
)}
) : (
<>
{/* 欧洲的常规赛事 (如啤酒节) 如果有,先渲染在上面 */}
{row.eu && row.eu.length > 0 && (
{row.eu[0].title}
{row.eu[0].desc}
)}
{/* 特殊大横幅卡片 (横跨两列) */}
{row.specialEvent && (
{row.specialEvent.inlineText ? (
{row.specialEvent.title}{row.specialEvent.desc}
) : (
<>
{row.specialEvent.title}
{row.specialEvent.desc}
>
)}
)}
{/* 东南亚、中东、拉美 正常占位 */}
{[row.sea, row.me, row.latam].map((regionData, cIdx) => (
))}
>
)
) : (
/* 正常月份的渲染逻辑 */
[row.na, row.eu, row.sea, row.me, row.latam].map((regionData, cIdx) => (
{regionData.length > 0 ? (
regionData.map((event, eIdx) => (
{event.title}
{event.desc}
))
) : (
/
)}
))
)}
))}
);
}
function FutureTrendSection({ onImageClick }) {
return (
{/* 1. 跨文化界限与生成盲区 */}
1. 跨文化界限与生成盲区
{/* Header */}
{/* Row 1 */}
💣 穆斯林服饰“伪合规”
(头巾不合规、长相刻板同质化)
•露肤红线
当附加“颈部饰品”等词时,AI极易穿模暴露颈部或锁骨
•告别同质化
拒绝千篇一律的“浓颜大眼AI脸”,需引入更真实的地域性面部特征
{/* Row 2 */}
💣 亚洲肤色“一刀切”
(肤色还原度低,地域辨识度低)
打破刻板印象
🇰🇷
东亚 (如韩国)
偏爱冷白/水光肌,肤质干净
🇹🇭
东南亚 (如泰国)
暖调小麦/深象牙色,注重野生毛流感与立体骨相
🇮🇳
南亚 (如印度)
深棕褐/深棕色,强调深邃轮廓与浓艳五官量感
{/* Row 3 */}
•宗教元素
相关元素错误(如亡灵节“亡灵面包”Pan de Muerto有误)
•场景/物理常识穿帮
测试相关赛事与地标建筑(如“篮球赛事道具生成有误” / 麦迪逊广场花园内部场景生成有误)
{/* 2. 全球人像审美融合 */}
2. 全球人像审美融合趋势
{/* Header */}
{/* Row 1 */}
•“无国界骨相”
像 Louis Vuitton、Dior 这些顶奢品牌,越来越偏爱具有明显高颧骨/明显下颌线的立体骨相
•异世感与建模脸
以 Gentle Monster、Balenciaga 为代表,刻意打破传统的“三庭五眼”,极宽眼距、冷漠的下三白,呈现出生人勿近、具有先锋感气质
{/* Row 2 */}
•瑕疵即标志
雀斑、白癜风、胎记不再是需要被掩盖的“缺陷”,反而成了模特身上最独一无二的视觉符号和记忆点
•拥抱真实鲜活的体型
大码模特 (Plus-size) 走向主流秀场,强调真实体型之美,打破单一的“白幼瘦”或“极限沙漏型”标准
{/* Row 3 */}
•亚欧融合
亚洲平整细腻皮相 + 欧洲深邃立体骨相融合,兼具东方温婉与西方力量感
•混血张力
如亚非或欧印融合 -- 非裔的深肤色与性感厚唇,配上亚裔细长杏眼特点...这种跨度极大的特质相融合,视觉冲击力拉满、极具辨识度
);
}
function BusinessImpactSection({ onImageClick }) {
const portraitRows = [
{
dimension: '人物多样性',
note: '人种、肤色、身材等方面是否拉开差异,避免固定脸型和单一审美模板',
cases: [
{ label: '身材', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E8%BA%AB%E6%9D%901.png' },
{ label: '长相 / 骨相', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E9%95%BF%E7%9B%B8%E7%89%B9%E5%AE%9A1.png' },
{ label: '人种多样性', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1-%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E4%BA%9A%E6%B4%B2%E4%BA%BA1.png' }
],
conclusions: [
'身材、肤色和人种更加符合当地人种,大幅度减少单一模板脸',
'卷发、辫发、不同年龄感与骨相特征更稳定,人物不再局限于同一套审美模板'
]
},
{
dimension: '人像真实感',
note: '肢体结构、面部、眼神、环境等方面是否自然真实',
cases: [
{ label: '肢体畸形', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E8%82%A2%E4%BD%932.png' },
{ label: '眼神呆滞', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2-%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E7%9C%BC%E7%A5%9E1.png' },
{ label: '环境真实', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E7%8E%AF%E5%A2%831.png' }
],
conclusions: [
'肢体动作更加自然正确',
'眼神减少空间 AI 感',
'场景的光线和景深更自然,整体更接近真实拍摄质感'
]
},
{
dimension: '海外审美适配度',
note: '是否摆脱“白瘦幼”和网红脸,在脸型、肤色、身材、妆容与气质上贴近海外社媒审美',
cases: [
{ label: '轻松氛围感', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E5%AE%A1%E7%BE%8E%E9%80%82%E9%85%8D%E5%BA%A61.png' },
{ label: '社媒抓拍', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E5%AE%A1%E7%BE%8E%E9%80%82%E9%85%8D%E5%BA%A63.png' },
{ label: '真实度', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3%E5%AF%B9%E6%AF%94_%E4%BA%BA%E5%83%8F_%E5%AE%A1%E7%BE%8E%E9%80%82%E9%85%8D%E5%BA%A62.png' }
],
conclusions: [
'大幅度减少过度美颜和网红脸,保留不同发型、发色、年龄感、通勤抓拍等海外社媒常见表达',
'妆容、服装和场景气质更统一自然'
]
}
];
const posterRows = [
{
dimension: '文字正确性',
cases: [
{ label: '乱码减少', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E6%96%87%E5%AD%97%E6%AD%A3%E7%A1%AE%E6%80%A71.png' },
{ label: '重点词保留', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E6%96%87%E5%AD%97%E6%AD%A3%E7%A1%AE%E6%80%A72.png' },
{ label: '长句可拆分', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/1%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E6%96%87%E5%AD%97%E6%AD%A3%E7%A1%AE%E6%80%A73.png' }
],
conclusions: [
'可读性:明显减少乱码、错字和无意义符号,长句能被拆成可读行组',
'高亮信息:重点词如数字、节日、行动词被保留并突出,信息传达更有侧重点'
]
},
{
dimension: '图文排版',
cases: [
{ label: '标题层级', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E5%9B%BE%E6%96%87%E6%8E%92%E7%89%88-1.png' },
{ label: '关键词强调', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E5%9B%BE%E6%96%87%E6%8E%92%E7%89%88-3.png' },
{ label: '排版清晰', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/2%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E5%9B%BE%E6%96%87%E6%8E%92%E7%89%88-2.png' }
],
conclusions: [
'文字排版:标题、关键词和主体图形的层级更明确,文字不再大面积挤压或遮挡主体',
'海报能形成清楚的阅读顺序和视觉重心'
]
},
{
dimension: '图文关联与整体视觉',
cases: [
{ label: '主题贴合', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E6%95%B4%E4%BD%93%E8%A7%86%E8%A7%891.png' },
{ label: '排版规整', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E6%95%B4%E4%BD%93%E8%A7%86%E8%A7%892.png' },
{ label: '高关联度/画面丰富', img: 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/3%E5%9B%BE%E6%96%87%E5%AF%B9%E6%AF%94_%E6%95%B4%E4%BD%93%E8%A7%86%E8%A7%893.png' }
],
conclusions: [
'画面元素与文案主题更贴合',
'整体更少杂乱拼贴感和破损素材'
]
}
];
const blindSpotRows = [
{
risk: '语言区域误判',
behavior: '把“西语”直接理解为西班牙本土表达,导致口吻偏书面或不符合平台语感',
constraint: 'Prompt / 评测集需明确标注:拉美西语、墨西哥西语、阿根廷西语等,不只写 Spanish'
}
];
const businessHeroImage = 'https://my-shemmei-website-imgs.oss-cn-shanghai.aliyuncs.com/%E4%BA%BA%E7%89%A9_%E6%96%87%E5%AD%97%E5%B0%81%E9%9D%A2%E5%9B%BE.png';
const businessOverviewItems = [
{ id: '01', title: '人像', from: '从固定脸型和摆拍感', to: '更丰富的身材、骨相、人种与场景真实度。' },
{ id: '02', title: '图文', from: '从乱码、堆字和主题分散', to: '文字可读、层级清楚、画面元素与文案主题一致。' },
{ id: '03', title: '小众盲区', from: 'TikTok 西语场景', to: '优先考虑拉美西语,不宜默认西班牙本土表达。' }
];
const ImprovementTable = ({ rows }) => (
{rows.map((row, idx) => (
{row.dimension}
{row.note &&
{row.note}
}
{row.cases.map((item, itemIdx) => {
const caseLabel = typeof item === 'string' ? item : item.label;
const caseImg = typeof item === 'string' ? '' : item.img;
return (
CASE 0{itemIdx + 1}
{caseImg && (
)}
{caseLabel}
);
})}
{row.conclusions.map((item) => (
-
{item}
))}
))}
);
const BusinessDetailSection = ({ index, title, meta, children }) => (
{index}
{title}
{meta}
{children}
);
return (
业务侧三项提升
{businessOverviewItems.map((item, idx) => (
{item.id}
{item.title}
{item.from}
))}
西语小众盲区
在 TikTok 平台,面向西语用户时不能默认使用西班牙西语;项目测试中更高频、更贴近平台语感的是
拉美西语。
{blindSpotRows.map((row) => (
{row.risk}
{row.behavior}
{row.constraint}
))}
);
}
function ConclusionSection() {
return (
全球人像审美正在告别千篇一律的“标准美”,全面走向“有叙事感的多元面孔”
未来的人像美学打动人的永远是
真实感与文化共情
,在全球视野下,将重塑出既能保留鲜明的本土特色,
又能跨越文化引发共鸣
的视觉表达
{/* 独立结尾区 */}
);
}
function SplashScreen({ onEnter }) {
return (
CultureAestheticsFeatures
Welcome,
To The Global Diverse Portrait
Aesthetics Explorer.
CULTURE
AESTHETICS
);
}
// --- 5. 主程序入口 (App) ---
function AdminApp() {
const [token, setToken] = useState(() => localStorage.getItem('portrait_admin_token') || '');
const [username, setUsername] = useState('');
const [password, setPassword] = useState('');
const [error, setError] = useState('');
const [loading, setLoading] = useState(false);
const [data, setData] = useState(null);
const loadAdminVotes = async (currentToken = token) => {
if (!currentToken) return;
setLoading(true);
try {
const res = await fetch('/api/admin/votes', {
headers: { Authorization: `Bearer ${currentToken}` }
});
const payload = await res.json();
if (!payload.ok) throw new Error(payload.message || '后台数据读取失败');
setData(payload.data);
setError('');
} catch (err) {
setError(err.message);
if (err.message.includes('登录')) {
localStorage.removeItem('portrait_admin_token');
setToken('');
}
} finally {
setLoading(false);
}
};
useEffect(() => {
if (token) loadAdminVotes(token);
}, [token]);
const handleLogin = async (event) => {
event.preventDefault();
setLoading(true);
setError('');
try {
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const payload = await res.json();
if (!payload.ok) throw new Error(payload.message || '登录失败');
localStorage.setItem('portrait_admin_token', payload.token);
setToken(payload.token);
setPassword('');
} catch (err) {
setError(err.message);
} finally {
setLoading(false);
}
};
const handleLogout = async () => {
if (token) {
await fetch('/api/logout', {
method: 'POST',
headers: { Authorization: `Bearer ${token}` }
}).catch(() => {});
}
localStorage.removeItem('portrait_admin_token');
setToken('');
setData(null);
};
if (!token) {
return (
);
}
const pollGroups = data?.polls || {};
const totalVotes = Object.values(pollGroups).reduce((sum, group) => {
return sum + Object.values(group).reduce((inner, poll) => inner + (poll.counts?.total || 0), 0);
}, 0);
return (
{error &&
{error}
}
{loading &&
正在加载数据...
}
{Object.entries(pollGroups).map(([type, polls]) => (
{type === 'makeup' ?
:
}
{type === 'makeup' ? '盲猜美妆风格' : '多元人像'}
{Object.entries(polls).map(([pollId, poll]) => {
const total = poll.counts?.total || 0;
return (
{poll.label}
{total} 票
{poll.options.map((option) => {
const count = poll.counts?.[option] || 0;
const percentage = total > 0 ? Math.round((count / total) * 100) : 0;
return (
{option}
{count} 票 · {percentage}%
);
})}
最新记录
{(poll.records || []).slice(0, 5).map((record, idx) => (
{record.option}
{new Date(record.votedAt).toLocaleString()}
))}
{(!poll.records || poll.records.length === 0) &&
暂无投票
}
);
})}
))}
);
}
function App() {
const [showSplash, setShowSplash] = useState(true);
const [activeMenu, setActiveMenu] = useState('intro');
const [hoveredMenu, setHoveredMenu] = useState(null);
const [fullScreenImg, setFullScreenImg] = useState(null);
const user = { uid: getVoterId() };
const menuItems = [
{
id: 'intro',
label: '一:定位与背景',
icon: ,
desc: '本章探索:建立全球主流视觉审美趋势的坐标系,聚焦核心区域与文化维度。',
tags: ['#审美坐标系', '#文化维度', '#视觉趋势']
},
{
id: 'muslim',
label: '二:穆斯林文化与美感',
icon: ,
desc: '本章探索:探究穆斯林区域的人口分布、特色服装、妆容偏好及节日的视觉美学。',
tags: ['#区域美学', '#服装特征', '#文化符号']
},
{
id: 'global',
label: '三:全球网感与面部特征',
icon: ,
desc: '本章探索:解析多元文化背景下的核心审美目标、区域网感及人像骨相皮相特征。',
tags: ['#INS网感', '#面部特征', '#身型趋势']
},
{
id: 'events',
label: '四:赛事与活动妆造',
icon: ,
desc: '本章探索:严格按照世界时间轴,列举全球最具社媒流量的标志性节点与活动妆造。',
tags: ['#国际日历', '#赛事节点', '#活动妆造']
},
{
id: 'future',
label: '五:跨文化融合与未来趋势',
icon: ,
desc: '本章探索:打破单一地域刻板印象,解析跨文化审美融合、AI生成盲区及全球高奢与真实的审美趋势。',
tags: ['#跨文化融合', '#生成盲区', '#未来趋势']
},
{
id: 'business',
label: '六:业务侧效果提升',
icon: ,
desc: '本章探索:整理人像后训练、图文海报与西语语境三类业务侧改善案例,沉淀可复用的效果提升标准。',
tags: ['#后训练效果', '#图文可读性', '#语言适配']
},
{
id: 'conclusion',
label: '七:结论',
icon: ,
desc: '本章总结:全球人像审美的最终走向,从“标准美”到“有叙事感的多元面孔”的视觉重塑与文化共鸣。',
tags: ['#审美结论', '#文化共情', '#多元面孔']
}
];
if (showSplash) return setShowSplash(false)} />;
const handleNavClick = (id) => {
setActiveMenu(id);
document.getElementById(id)?.scrollIntoView({ behavior: 'smooth', block: 'start' });
};
return (
{/* 顶部折叠导航区 */}
Aesthetics.
{/* 文档说明卡片 - 置于目录之前 */}
✍️
研究链路: 桌面调研 → 审美维度拆解 → 视觉特征总结
边界声明: 聚焦“视觉美学效果呈现”,不涉及任何政治因素、历史问题 或 特定文化层面的评判
{menuItems.map((item) => {
const isExpanded = hoveredMenu ? hoveredMenu === item.id : activeMenu === item.id;
return (
setHoveredMenu(item.id)} onMouseLeave={() => setHoveredMenu(null)} onClick={() => handleNavClick(item.id)}
className={`relative h-full cursor-pointer transition-all duration-[900ms] flex flex-col overflow-hidden origin-center group/card ${isExpanded ? 'flex-[4.5] bg-white z-10' : 'flex-[1] bg-[#f7f7f7] z-0'}`}
style={{
boxShadow: isExpanded ? '0 20px 40px rgba(0,0,0,0.1)' : 'inset 15px 0 20px rgba(0,0,0,0.02)',
transform: isExpanded ? 'translateZ(10px)' : 'scaleY(0.97)',
border: '1px solid rgba(0,0,0,0.1)'
}}>
{item.icon}
{item.label}
{item.desc}
{item.tags.map(t=>{t})}
);
})}
{fullScreenImg && (
setFullScreenImg(null)}>
)}
);
}
createRoot(document.getElementById('root')).render(
window.location.pathname.startsWith('/admin') ? :
);