// ===================== REPORTS ===================== function wkReport(p,con,emo,cur){ var s=EO.slice().sort(function(a,b){return p[b]-p[a];}); var st=s[0], se=cur.seasonEl, ww=cur.waxWane; var om={木:'肝',火:'心',土:'脾',金:'肺',水:'肾'}; var os={}; EO.forEach(function(e){ var b=p[e],mod=0; if(ww[e]==='旺')mod=20;else if(ww[e]==='相')mod=10;else if(ww[e]==='休')mod=-5;else if(ww[e]==='囚')mod=-15;else mod=-25; os[om[e]]=Math.max(1,Math.min(5,Math.round((b+mod)/20))); }); // Element interaction var gen=EO[(EO.indexOf(st)+1)%5], ke=EO[(EO.indexOf(st)+2)%5], beiGen=EO[(EO.indexOf(st)+4)%5], beiKe=EO[(EO.indexOf(st)+3)%5]; var interaction={gen:gen, ke:ke, beiGen:beiGen, beiKe:beiKe}; // Risks - comprehensive var risks=[]; var riskDB={ '木_火':{t:'心火偏旺',d:'木生火,夏季火旺叠加先天木盛,心火易亢。木火相煽,热扰心神。',sy:['失眠多梦','焦躁易怒','口干心烦','舌尖红','小便黄'],act:'午时小憩养心,睡前温水泡脚。喝莲子心茶清心火。减少咖啡和激烈运动。按揉神门穴、内关穴。'}, '木_木':{t:'肝气过亢',d:'春木逢木,肝气太过。木旺生风,上扰清窍。',sy:['头晕目眩','偏头痛','血压波动','眼干眼胀'],act:'每日快走30分钟疏肝。喝菊花枸杞茶清肝明目。按揉太冲穴、行间穴。避免熬夜和情绪激动。'}, '木_土':{t:'肝木克土',d:'先天木旺克制脾土,脾胃运化受阻。'+(ww['土']==='囚'?'当前土气被困,脾胃尤为脆弱。':''),sy:['食欲不振','腹胀嗳气','大便不调','疲倦乏力'],act:'少食多餐,温热饮食。饭前喝一小碗小米粥护脾胃。饭后散步10分钟。按揉足三里、中脘穴。避免生气时进食。'}, '木_金':{t:'木侮金',d:'木气过盛反侮肺金。',sy:['干咳少痰','咽喉不适','皮肤过敏'],act:'保持室内湿度,喝蜂蜜梨水润肺。练习腹式呼吸。避免辛辣和干燥环境。'}, '木_水':{t:'子盗母气',d:'木旺耗水,肾水暗亏。',sy:['腰膝酸软','耳鸣','脱发增多'],act:'多吃黑芝麻、核桃补肾。搓腰眼至发热。减少熬夜,保证子时(23点前)入睡。'}, '火_火':{t:'心火亢盛',d:'火上加火,两阳相劫,耗伤心阴。',sy:['心悸怔忡','盗汗','烦躁不宁','口腔溃疡频发','面赤'],act:'务必午休养心阴。绿豆百合汤清心安神。避免烈日下活动和辛辣食物。睡前温水泡脚引火下行。按揉神门、涌泉穴。'}, '火_木':{t:'木火刑金',d:'火得木生更旺,反侮肺金。',sy:['干咳','鼻衄','皮肤干燥','便秘'],act:'桑叶菊花茶清肺润燥。多吃梨、银耳、蜂蜜。保持环境湿润。避免烧烤和烟酒。'}, '火_土':{t:'火生土亢',d:'火旺生土过度,湿热内生。',sy:['口苦口臭','大便黏滞','皮肤油腻长痘','头重身困'],act:'薏米赤小豆汤祛湿热。少甜食油腻。保持皮肤清洁干爽。荷叶茶清热利湿。'}, '火_水':{t:'火盛水涸',d:'心火亢盛下劫肾水,心肾不交。',sy:['心烦失眠','腰膝酸软','耳鸣','记忆力下降','夜尿频'],act:'黄连阿胶汤类方交通心肾。睡前热水泡脚至微汗。按揉涌泉、太溪穴。避免熬夜和过度用脑。'}, '火_金':{t:'火克金',d:'心火乘肺金,肺阴受损。',sy:['干咳无痰','咽干喉痛','皮肤粗糙','毛发干枯'],act:'麦冬沙参茶润肺生津。银耳百合羹每周3次。腹式深呼吸养肺。居室保持50%湿度。'}, '土_火':{t:'火生土壅',d:'火旺生土,湿热蕴脾。',sy:['身重困倦','头蒙如裹','口黏不爽','大便溏滞'],act:'薏米茯苓粥健脾祛湿。室内通风除湿。少思虑多运动。按揉阴陵泉、丰隆穴。'}, '土_土':{t:'脾湿壅盛',d:'土气过旺,湿浊内停。',sy:['身体沉重','腹胀满闷','痰多','浮肿'],act:'陈皮薏仁茶理气化湿。控制食量七分饱。每天快走40分钟。按揉足三里、天枢穴。'}, '土_水':{t:'脾土克水',d:'土盛克水,肾阳受损。',sy:['水肿','小便不利','腰冷痛','畏寒'],act:'茯苓山药粥健脾利水。艾灸关元、命门温阳。避免久坐久卧。'}, '土_木':{t:'土虚木乘',d:'湿土困脾,肝木乘虚而入。',sy:['胃痛','反酸','情绪波动时加重'],act:'饭前少量生姜水暖胃。少食多餐减轻脾胃负担。保持情绪稳定,饭后不生气。'}, '水_火':{t:'水火不济',d:'夏季火旺克水,先天水盛之人肾水受制,心肾不交。',sy:['心烦不得眠','五心烦热','腰膝酸软','健忘','耳鸣加重'],act:'交泰丸类方交通心肾。睡前搓涌泉穴100次。下午5-7点(肾经当令)休息。少吃生冷,多晒太阳补阳。'}, '水_水':{t:'寒湿内盛',d:'水气过旺,寒湿困阻。',sy:['畏寒肢冷','关节疼痛','水肿','小便清长'],act:'艾灸关元、命门、足三里。生姜红糖水温中散寒。多晒太阳尤其后背。冬季泡温泉。忌冰饮冷食。'}, '水_木':{t:'水不涵木',d:'水亏不能养木,虚风内动。',sy:['头晕','手抖','失眠'],act:'枸杞菊花茶滋水涵木。早睡养肾阴。减少用眼过度。按揉太冲、太溪穴。'}, '水_金':{t:'金不生水',d:'金被火克不能生水,肾水枯竭。',sy:['腰酸','脱发','牙齿松动','骨关节退变'],act:'黑豆核桃粥补肾填精。西洋参麦冬茶气阴双补。搓腰眼每日100次。适当负重运动强骨。'}, '金_火':{t:'肺燥津伤',d:'火克金,肺阴受损。燥热伤津,肺失肃降。',sy:['干咳无痰或少痰','咽干鼻燥','皮肤干痒','大便秘结','声音嘶哑'],act:'川贝雪梨汤润肺止咳。室内加湿器保持50%-60%湿度。腹式深呼吸每次5分钟。避免辛辣油炸烧烤。麦冬沙参泡水代茶。'}, '金_金':{t:'肺气壅滞',d:'金气过盛,肺失宣降。',sy:['胸闷气短','咳嗽','皮肤干燥脱屑'],act:'白萝卜蜂蜜水宣肺化痰。户外深呼吸新鲜空气。适度有氧运动微汗。按揉太渊、列缺穴。'}, '金_木':{t:'金乘肝木',d:'肺金过盛抑制肝木疏泄。',sy:['情绪抑郁','胸胁胀痛','经前不适(女)'],act:'玫瑰花薄荷茶疏肝解郁。多与朋友交流倾诉。快走或瑜伽舒畅气机。按揉太冲、期门穴。'}, }; var rk=riskDB[st+'_'+se] || riskDB[st+'_'+st]; if(rk) risks.push(rk); // Add a second risk based on beiKe var rk2=riskDB[beiKe+'_'+se]; if(rk2 && rk2.t!==(rk?rk.t:'')) risks.push(rk2); if(risks.length===0) risks.push({t:'整体协调',d:'当前时空与先天体质较为协调,继续保持良好生活习惯即可。',sy:['保持规律作息','适度运动','均衡饮食']}); // Diet var dietDB={ '火':{rec:['绿豆','苦瓜','莲子','百合','冬瓜','西瓜','黄瓜','梨','荸荠','藕'],avoid:['烧烤','火锅','烈酒','辣椒','羊肉','榴莲','荔枝','龙眼','咖喱','大蒜'],reason:'清热泻火,养阴生津。避免辛温助热之品。',tea:'莲子心竹叶茶:莲子心3g + 淡竹叶5g,沸水冲泡,清心降火。菊花枸杞茶:菊花5朵 + 枸杞10粒,清肝明目。'}, '木':{rec:['菠菜','芹菜','西兰花','绿茶','山楂','柠檬','佛手','薄荷','荞麦'],avoid:['油腻厚味','甜食','酒精','咖啡过量','麻辣'],reason:'疏肝理气,养血柔肝。避免壅滞气机。',tea:'玫瑰花佛手茶:玫瑰花5朵 + 佛手干3片,疏肝解郁。薄荷柠檬茶:鲜薄荷叶5片 + 柠檬2片,舒畅气机。'}, '土':{rec:['山药','薏米','茯苓','红枣','小米','南瓜','白扁豆','陈皮','生姜','莲子'],avoid:['生冷食物','冰饮','甜腻','肥甘厚味','牛奶过量'],reason:'健脾祛湿,温运中焦。避免寒凉伤脾。',tea:'陈皮薏仁茶:陈皮5g + 炒薏米15g,理气化湿。生姜红枣茶:生姜3片 + 红枣5枚,温中健脾。'}, '金':{rec:['银耳','百合','蜂蜜','梨','白萝卜','豆腐','杏仁','麦冬','沙参','莲藕'],avoid:['辛辣','烧烤','油炸','烟酒','干果'],reason:'滋阴润肺,生津润燥。避免辛燥伤阴。',tea:'麦冬沙参茶:麦冬10g + 沙参10g,润肺生津。蜂蜜雪梨水:雪梨1个切块+蜂蜜,煮水代茶。'}, '水':{rec:['黑豆','核桃','黑芝麻','枸杞','山药','羊肉(冬季)','韭菜','肉桂','生姜'],avoid:['寒凉食物','冰镇饮品','生冷瓜果过量'],reason:'温补肾阳,固摄精气。避免寒凉伤阳。',tea:'桂圆枸杞茶:桂圆5颗 + 枸杞15粒 + 生姜2片,温补肾阳。黑豆核桃露:黑豆30g + 核桃3颗打浆煮饮。'} }; var dt=se==='土'&&st==='火'?dietDB['火']:dietDB[se]; var dt2=dietDB[beiKe]; // Exercise var exDB={ '火':{rec:['八段锦','游泳','太极','瑜伽冥想','快走','站桩'],avoid:['高强度熬汗','马拉松','HIIT','烈日下运动'],reason:'微汗为度,汗为心之液,过汗伤心阴。'}, '木':{rec:['快走','慢跑','太极','瑜伽','伸展运动','舞蹈'],avoid:['过度竞技运动','压抑性运动'],reason:'运动疏肝,舒畅气机。避免过量压抑肝气。'}, '土':{rec:['散步','八段锦','太极','轻度力量训练'],avoid:['长时间久坐','饭后立即剧烈运动'],reason:'适度运动助脾运化,过劳伤脾。'}, '金':{rec:['深呼吸练习','太极','瑜伽','游泳','慢跑'],avoid:['干燥环境中运动','过度出汗'],reason:'养肺气,润皮毛。避免燥邪伤肺。'}, '水':{rec:['站桩','太极','散步','温和瑜伽','八段锦'],avoid:['冬季晨练过早','大汗淋漓','冷水泳'],reason:'固肾藏精,微汗养阳。避免过耗阳气。'} }; var ex=exDB[se]; // Sleep var slDB={ '火':{bt:'22:30',wt:'06:00',focus:'23:00前入睡养胆清心。午时(11-13点)小憩15-30分钟养心阴。'}, '木':{bt:'22:30',wt:'06:30',focus:'23:00前入睡养肝血。睡前温水泡脚引火下行。避免睡前思虑。'}, '土':{bt:'22:00',wt:'06:30',focus:'早睡养脾。晚餐宜早宜少,睡前3小时不进食。'}, '金':{bt:'21:30',wt:'06:00',focus:'早卧早起养肺气。保持卧室湿度,避免干燥。'}, '水':{bt:'21:30',wt:'07:00',focus:'早睡晚起养肾阳。睡前热水泡脚至微汗。注意腰腹保暖。'} }; var sl=slDB[se]; // Acupoints var acuDB={ '火':['神门','内关','涌泉','百会'], '木':['太冲','行间','期门','肝俞'], '土':['足三里','中脘','脾俞','阴陵泉'], '金':['太渊','尺泽','肺俞','列缺'], '水':['太溪','关元','命门','肾俞'] }; var acu=acuDB[beiKe]||acuDB[st]; // Quotes var quotes=[ {t:'春夏养阳,秋冬养阴。',e:'当前属'+({'木':'春','火':'夏','土':'长夏','金':'秋','水':'冬'}[se]||se)+'季,应顺应阳气生长之势,避免过度耗散,保持规律作息。'}, {t:'正气存内,邪不可干。',e:'保持内在平衡是抵御外邪的根本。当前注意调和阴阳,顺应天时变化。'}, {t:'上古之人,其知道者,法于阴阳,和于术数。',e:'养生之道在于遵循自然规律。饮食有节,起居有常,不妄作劳。'}, {t:'虚邪贼风,避之有时,恬惔虚无,真气从之。',e:'顺应四时避开外邪,内心平和则正气自足。当前时令尤需注意。'}, {t:'阴平阳秘,精神乃治。',e:'阴阳平衡是健康的根本。当前'+se+'气偏盛,注意调和阴阳,不过不不及。'} ]; var q=quotes[Math.floor(Math.random()*quotes.length)]; return{organScores:os,risks:risks,diet:dt,diet2:dt2,exercise:ex,sleep:sl,acupoints:acu,quote:q,interaction:interaction,term:cur.term,se:se,strongest:st,wylq:cur.wylq,step:cur.step,waxWane:ww}; } function dyReport(p,con,emo,cur){ var wk=wkReport(p,con,emo,cur); var h=new Date().getHours(); var meridian=[ {h:1,n:'丑时',o:'肝经',act:'熟睡养肝血',tip:'深度睡眠黄金期'}, {h:3,n:'寅时',o:'肺经',act:'深睡养肺气',tip:'哮喘易发时段'}, {h:5,n:'卯时',o:'大肠经',act:'起床排便',tip:'最佳排便时间'}, {h:7,n:'辰时',o:'胃经',act:'吃早餐',tip:'胃气最旺时进食'}, {h:9,n:'巳时',o:'脾经',act:'工作学习',tip:'脾运化最佳'}, {h:11,n:'午时',o:'心经',act:'午餐小憩',tip:'养心阴黄金30分钟'}, {h:13,n:'未时',o:'小肠经',act:'消化吸收',tip:'多喝水助排浊'}, {h:15,n:'申时',o:'膀胱经',act:'学习记忆',tip:'记忆力最佳时段'}, {h:17,n:'酉时',o:'肾经',act:'休息养肾',tip:'不宜剧烈运动'}, {h:19,n:'戌时',o:'心包经',act:'放松散步',tip:'保持心情愉快'}, {h:21,n:'亥时',o:'三焦经',act:'准备入睡',tip:'泡脚听轻音乐'}, {h:23,n:'子时',o:'胆经',act:'深度睡眠',tip:'必须睡觉养胆气'} ]; var currM=meridian.find(function(m){return Math.abs(m.h-h)<=1;})||meridian[0]; var scores=[ {l:'睡眠',v:Math.floor(Math.random()*16+80),c:'#5CB85C'}, {l:'饮食',v:Math.floor(Math.random()*21+65),c:'#E8985A'}, {l:'情绪',v:Math.floor(Math.random()*26+60),c:'#E54D42'}, {l:'运动',v:Math.floor(Math.random()*16+80),c:'#4A90E2'} ]; var yiDB={ '火':['喝菊花茶','午休15分钟','散步','听轻音乐','温水泡脚','深呼吸'], '木':['喝玫瑰花茶','快走30分钟','和朋友聊天','拉伸运动','看绿色植物'], '土':['喝陈皮水','饭后散步','吃温热食物','按摩足三里','少食多餐'], '金':['喝蜂蜜水','腹式呼吸','吃梨或银耳','早睡','室内加湿'], '水':['喝姜枣茶','晒太阳','热水泡脚','搓腰眼','穿暖不贪凉'] }; var jiDB={ '火':['熬夜','暴饮暴食','情绪激动','过量咖啡','麻辣火锅','烈日暴晒'], '木':['压抑情绪','过量饮酒','熬夜','油腻食物','与人争执'], '土':['生冷冰饮','甜食过量','久坐不动','思虑过度','暴饮暴食'], '金':['辛辣烧烤','烟酒','干燥环境','过度出汗','忧伤抑郁'], '水':['寒凉饮食','过度疲劳','熬夜','冷水澡','冬季晨练过早'] }; return{scores:scores,meridian:meridian,currM:currM,yi:yiDB[wk.se]||yiDB['火'],ji:jiDB[wk.se]||jiDB['火'],weekly:wk}; } // ===================== RENDER ===================== function renderProfile(p,con,emo,bz){ // Bazi table var labels=['年柱','月柱','日柱','时柱']; var pillars=[bz.year,bz.month,bz.day,bz.hour]; var h=''; for(var i=0;i<4;i++){ var pl=pillars[i]; var ny=NAYIN_MAP[pl.tg+pl.dz]||'--'; var ds=pl.dz, dzEl=DZE[ds]; var ani=i===0?DZ_ANI[DZ.indexOf(ds)]:''; h+=''; } h+='
天干地支五行纳音生肖
'+labels[i]+''+pl.tg+'
'+TGE[pl.tg]+'
'+ds+'
'+dzEl+'
'+TGE[pl.tg]+'/'+dzEl+''+ny+''+ani+'
'; document.getElementById('baziTable').innerHTML=h; // Pentagram var pg=document.getElementById('pentagram'); pg.innerHTML=''; EO.forEach(function(e){ var v=p[e],c=EC[e]; pg.innerHTML+='
'+e+'
'+v+'
'; }); var sorted=EO.slice().sort(function(a,b){return p[b]-p[a];}); document.getElementById('pentagramNote').textContent=sorted[0]+'偏盛 > '+sorted[1]+'次盛 > '+sorted[2]+'中和 > '+sorted[3]+'偏弱 > '+sorted[4]+'最弱'; // Constitution detail var cd=document.getElementById('constDetail'); cd.innerHTML='

🫁 体质分析

'+con.primary+'
主要体质
'+con.secondary+'
次要体质

'+con.desc+'

🩺 易患疾病

'+con.diseases+'

👁 外在表现

'+con.body+'

⚠️ 季节弱点

'+con.seasonRisk+'

🎯 养生核心

'+con.tips+'

🍽 食疗原则

'+con.foodTherapy+'

⏰ 日常节律

'+con.dailyRhythm+'

'; // Organ detail var od=document.getElementById('organDetail'); od.innerHTML='

🫀 脏腑画像

'+con.strong+'
偏强脏腑
功能亢进
易生热/郁/火
'+con.weak+'
偏弱脏腑
功能不足
易受外邪侵袭
'; // Emotion detail var ed=document.getElementById('emotionDetail'); ed.innerHTML='

🧠 情绪画像

优势特质:
'+emo.strength.map(function(s){return ''+s+'';}).join('')+'
风险倾向:
'+emo.risk.map(function(s){return ''+s+'';}).join('')+'

情绪调节

'+emo.advice+'

'; // Personality summary document.getElementById('personalityCard').innerHTML='

📖 综合画像

先天'+sorted[0]+'之气偏盛,属'+con.primary+'体质。'+con.strong+'经易亢,'+con.weak+'经偏弱。'+emo.strength[0]+'、'+emo.strength[1]+'是你的核心天赋;需注意'+emo.risk[0]+'和'+emo.risk[1]+'的倾向。

'; document.getElementById('profileResult').classList.remove('hidden'); document.getElementById('formCard').style.opacity='0.55'; } function seasonalGuide(term, se){ var guides={ '立春':{tips:'春季养肝正当时。早睡早起,广步于庭。披发缓行,以使志生。多吃芽菜(豆芽、香椿),少吃酸多食辛甘。',avoid:'压抑怒气、过度进补、过早减衣。'}, '雨水':{tips:'湿气渐增,健脾祛湿。多吃山药薏米。注意关节保暖。',avoid:'生冷瓜果、淋雨涉水。'}, '惊蛰':{tips:'春雷惊百虫,阳气升发。早起活动舒展筋骨。多吃梨润肺防春燥。',avoid:'过度劳累、情绪压抑。'}, '春分':{tips:'阴阳平分,养生贵在平衡。早睡早起,适度运动微汗。饮食寒热均衡。',avoid:'偏食偏嗜、大补大泻。'}, '清明':{tips:'清气上升,养肝明目。踏青散步舒畅情志。菊花枸杞茶护眼。',avoid:'过度悲伤、暴饮暴食。'}, '谷雨':{tips:'雨生百谷,湿度加大。健脾祛湿防春困。多喝薏米陈皮茶。',avoid:'潮湿环境久待、过食生冷。'}, '立夏':{tips:'夏季养心。夜卧早起,无厌于日。午休15-30分钟养心阴。多吃红色食物。',avoid:'烈日暴晒、大汗淋漓、辛辣过量。'}, '小满':{tips:'湿热渐盛,清心祛湿。冬瓜薏米汤清热利湿。保持皮肤干爽。',avoid:'油腻厚味、甜腻食物。'}, '芒种':{tips:'梅雨季将至,防湿防霉。室内通风除湿。饮食清淡少油腻。艾灸足三里健脾。',avoid:'生冷冰饮、久居湿地。'}, '夏至':{tips:'阳极阴生,养心护阳。午休不可少。饮食清淡多汤水。夏至一阴生,忌过度贪凉。',avoid:'冰镇饮品、空调直吹、熬夜。'}, '小暑':{tips:'暑热渐盛,清暑益气。绿豆汤、荷叶粥消暑。避免正午户外活动。',avoid:'过度出汗、冷热交替刺激。'}, '大暑':{tips:'湿热交蒸,健脾祛湿为首。藿香正气类防中暑。多喝温水少量多次。',avoid:'烈日下劳作、冰火两重天。'}, '立秋':{tips:'秋燥当令,润肺生津。多吃白色食物。早卧早起与鸡俱兴。',avoid:'辛辣烧烤、过度出汗。'}, '处暑':{tips:'暑气渐消,秋燥初显。银耳百合羹润燥。适度运动舒展筋骨。',avoid:'燥热食物、熬夜伤阴。'}, '白露':{tips:'寒气初生,注意保暖。早晚添衣,尤其腹部和脚部。多吃温润食物。',avoid:'赤脚踩凉地、露脐装。'}, '秋分':{tips:'阴阳平分如春分。滋阴润燥,收敛神气。早睡早起,心态平和。',avoid:'剧烈运动大汗、辛辣伤阴。'}, '寒露':{tips:'寒气加重,护好颈腰脚踝。泡脚至微汗。多吃芝麻核桃润燥。',avoid:'冷水洗脚、穿露脚踝裤。'}, '霜降':{tips:'秋末冬初,补脾养肺。山药红枣粥最佳。适度运动增强抵抗力。',avoid:'过度秋冻、生冷瓜果。'}, '立冬':{tips:'冬季养肾。早卧晚起,必待日光。多晒太阳补阳。多吃黑色食物。',avoid:'清晨过早户外运动、冷水澡。'}, '小雪':{tips:'寒气渐重,温补肾阳。羊肉汤、当归生姜羊肉汤温补。艾灸关元命门。',avoid:'寒凉饮食、过度疲劳。'}, '大雪':{tips:'仲冬严寒,藏精养阳。减少户外活动。多喝热粥热汤。早睡晚起。',avoid:'大汗淋漓、受寒感冒。'}, '冬至':{tips:'一阳来复,阴极阳生。静养为主,减少消耗。吃饺子/汤圆象征团圆。冬至进补事半功倍。',avoid:'剧烈运动、熬夜、房劳过度。'}, '小寒':{tips:'三九严寒,温阳散寒。艾灸关元足三里。每晚热水泡脚。羊肉当归汤最宜。',avoid:'清晨低温外出、冷水刺激。'}, '大寒':{tips:'寒极则暖,冬藏待春。继续温补藏精。保持心态平和,不急不躁。',avoid:'过度消耗、受寒受冻。'} }; var g=guides[term.n]||{tips:'顺应四时,饮食有节,起居有常。',avoid:'过度劳累、暴饮暴食、情绪波动。'}; return '

🌿 '+term.n+'节气养生指南

'+g.tips+'
'+g.avoid+'
'; } function renderWeekly(wk){ var wc=document.getElementById('weeklyContent'); var tn=wk.term?wk.term.n:'--'; var se=wk.se||'--'; var seN={'木':'春季','火':'夏季','土':'长夏','金':'秋季','水':'冬季'}[se]||se; var now=new Date(); var ts=now.getFullYear()+'-'+String(now.getMonth()+1).padStart(2,'0')+'-'+String(now.getDate()).padStart(2,'0')+' '+String(now.getHours()).padStart(2,'0')+':'+String(now.getMinutes()).padStart(2,'0'); var h=''; // ---- Overview ---- h+='

📊 本周气机概览

'; h+='
📅 节气:'+tn+' | 🌤 时令:'+seN+'('+se+'旺)
'; h+='
你的先天:'+wk.strongest+'偏盛 | '+wk.strongest+'生'+wk.interaction.gen+' | '+wk.strongest+'克'+wk.interaction.ke+'
'; h+='
⏱ 数据基于当前时空气机实时计算 | 刷新时间:'+ts+'
'; // ---- WYLQ Detail ---- var wq=wk.wylq; h+=''; h+=''; h+=''; var cs=wk.step||Math.floor(new Date().getMonth()/2); h+=''; h+=''; h+='
岁运(中运)'+wq.zhongyun+''+(wq.taiguo?'(太过)':'(不及)')+'
司天之气'+wq.sitian+'('+DZE[wq.sitian]+')— 上半年主气
在泉之气'+wq.zaiquan+'('+DZE[wq.zaiquan]+')— 下半年主气
当前主气'+wq.zhuqi[cs]+'
当前客气'+wq.keqiOrder[cs]+'
'; // Five elements wax/wane h+='
五行旺衰:'; EO.forEach(function(e){h+=''+e+wk.waxWane[e]+'';}); h+='
'; // Organ scores h+='
本周脏腑指数:
'; ['肝','心','脾','肺','肾'].forEach(function(o){ var sc=wk.organScores[o]||3; var stars=''; for(var i=1;i<=5;i++)stars+=i<=sc?'★':''; h+='
'+o+''+stars+'
'; }); h+='
'; // ---- Risks ---- h+='

⚠️ 健康风险

'; wk.risks.forEach(function(r,i){ h+='

风险'+(i+1)+':'+r.t+'

'+r.d+'

'; if(r.act) h+='

✅ 应对:'+r.act+'

'; h+='
'; }); h+='
'; // ---- Daily refresh tip (changes daily) ---- var dailyTips={ '火':['夏日午后一杯淡竹叶茶,清心降火。','心静自然凉,午休15分钟胜过补药。','苦味入心,晚餐加一道凉拌苦瓜。'], '木':['肝喜条达,今天遇到烦心事出去走10分钟。','绿色入肝,午餐加一份西兰花。','怒伤肝,深呼吸三次再回应让你生气的事。'], '土':['脾主思,今天少想多做,动手整理房间也是调理。','黄色入脾,早餐一碗小米粥暖胃健脾。','饭后百步走,活到九十九——今天饭后就散个步。'], '金':['秋燥伤肺,今天多喝温水,室内保持湿润。','白色入肺,今天吃一个雪梨润肺。','忧伤肺,今天找一件让你开心的小事做。'], '水':['肾藏精,今天早点上床,23点前入睡是最好的补肾药。','黑色入肾,今天吃一把黑芝麻或核桃。','恐伤肾,今天少看负面新闻,多晒晒太阳。'] }; var tips=dailyTips[wk.se]||dailyTips['火']; var idx=new Date().getDate()%tips.length; h+='

💡 今日养生小贴士

'+tips[idx]+'

'; // ---- Diet ---- h+='

🥗 本周饮食

'; h+='
👍
推荐食材
'+wk.diet.rec.join('、')+'
💡 '+wk.diet.reason+'
'; h+='
👎
减少摄入
'+wk.diet.avoid.join('、')+'
'; if(wk.diet.tea) h+='
🍵
养生茶饮
'+wk.diet.tea+'
'; if(wk.diet2){ h+='
🔄
辅助调养('+wk.interaction.beiKe+'行)
'+wk.diet2.rec.join('、')+'
💡 '+wk.diet2.reason+'
'; } h+='
'; // ---- Exercise ---- h+='

🏃 运动建议

'; h+='
推荐运动
'+wk.exercise.rec.join('、')+'
'; h+='
避免
'+wk.exercise.avoid.join('、')+'
💡 '+wk.exercise.reason+'
'; h+='
'; // ---- Sleep ---- h+='

😴 作息建议

'; h+='
🌙
'+wk.sleep.bt+' 入睡 · '+wk.sleep.wt+' 起床
'+wk.sleep.focus+'
'; h+='
'; // ---- Seasonal Living Guide ---- h+=seasonalGuide(wk.term, wk.se); // ---- Acupoints ---- h+='

📍 穴位保健

'; h+='
'+wk.acupoints.map(function(a){return ''+a+'';}).join('')+'
'; h+='

每日按揉每穴3-5分钟,酸胀为度,早晚各一次。

'; h+='
'; // ---- Quote ---- h+='

📖 本周一句内经

「'+wk.quote.t+'」
'+wk.quote.e+'
'; wc.innerHTML=h; } function renderDaily(dy){ var dc=document.getElementById('dailyContent'); var wk=dy.weekly; var h=''; h+='

☀️ 今日养生

'; h+='
📅 '+wk.term.n+' | 值日五行:'+wk.se+'
'; h+='
你的状态:'+wk.strongest+'偏旺
'; // Meridian clock h+='

⏰ 子午流注

'; h+='

当前时段:'+dy.currM.n+'('+dy.currM.o+')— '+dy.currM.act+'

'; h+='

💡 '+dy.currM.tip+'

'; h+='
'; dy.meridian.forEach(function(m){ h+='
'+m.n+'
'+m.o+'
'; }); h+='
'; // Scores h+='

📈 今日评分

'; dy.scores.forEach(function(s){ h+='
'+s.l+'
'+s.v+'
'; }); h+='
'; // Yiji h+='

📋 今日宜忌

'; h+='
'+dy.yi.join('、')+'
'; h+='
'+dy.ji.join('、')+'
'; h+='
'; // Key focus h+='

🎯 今日重点

'; h+='
'; h+='
保养'+({'木':'肝','火':'心','土':'脾','金':'肺','水':'肾'}[wk.strongest]||'--')+'经
'; h+='
'+dy.yi.slice(0,3).join(' · ')+'
'; h+='
'; dc.innerHTML=h; } // ===================== MAIN ===================== var userProfile=null,userConstitution=null,userEmotion=null,userBazi=null,curAnalysis=null; (function(){ try{var d=JSON.parse(localStorage.getItem('yangsheng_profile')); if(d){userProfile=d.profile;userConstitution=d.constitution;userEmotion=d.emotion;userBazi=d.bazi; renderProfile(userProfile,userConstitution,userEmotion,userBazi);} }catch(e){} })(); function gen(){ try{console.log('gen start'); var nm=document.getElementById('fname').value||'用户'; var bs=document.getElementById('fbirth').value; var ts=document.getElementById('ftime').value||'12:00'; var pl=document.getElementById('fplace').value||'--'; if(!bs){alert('请填写出生日期');return;} var bd=new Date(bs),bh=parseInt(ts.split(':')[0]); userBazi=getBazi(bd,bh); console.log('bazi ok'); userProfile=calc5E(userBazi); console.log('profile ok'); userConstitution=getConst(userProfile); console.log('const ok'); userEmotion=getEmotion(EO.slice().sort(function(a,b){return userProfile[b]-userProfile[a];})[0]); console.log('emotion ok'); try{localStorage.setItem('yangsheng_profile',JSON.stringify({name:nm,profile:userProfile,constitution:userConstitution,emotion:userEmotion,bazi:userBazi,birthDate:bs,birthTime:ts,birthPlace:pl}));}catch(e){} renderProfile(userProfile,userConstitution,userEmotion,userBazi); console.log('renderProfile ok'); // Switch to weekly document.querySelectorAll('.tab').forEach(function(t){t.classList.remove('active');}); document.querySelector('[data-tab="weekly"]').classList.add('active'); document.getElementById('tab-profile').classList.add('hidden'); document.getElementById('tab-weekly').classList.remove('hidden'); document.getElementById('tab-daily').classList.add('hidden'); curAnalysis=getCurAnalysis(); console.log('curAnalysis ok'); var report = wkReport(userProfile,userConstitution,userEmotion,curAnalysis); console.log('wkReport ok'); renderWeekly(report); console.log('renderWeekly ok'); }catch(e){console.error('gen error:',e.message,e.stack);} } // Tabs document.getElementById('tabs').addEventListener('click',function(e){ if(!e.target.classList.contains('tab'))return; var tab=e.target.dataset.tab; document.querySelectorAll('.tab').forEach(function(t){t.classList.remove('active');}); e.target.classList.add('active'); document.getElementById('tab-profile').classList.add('hidden'); document.getElementById('tab-weekly').classList.add('hidden'); document.getElementById('tab-daily').classList.add('hidden'); if(tab==='profile') document.getElementById('tab-profile').classList.remove('hidden'); else if(tab==='weekly'){ if(!userProfile){alert('请先生成先天体质画像');document.querySelector('[data-tab="profile"]').click();return;} document.getElementById('tab-weekly').classList.remove('hidden'); curAnalysis=getCurAnalysis(); renderWeekly(wkReport(userProfile,userConstitution,userEmotion,curAnalysis)); }else if(tab==='daily'){ if(!userProfile){alert('请先生成先天体质画像');document.querySelector('[data-tab="profile"]').click();return;} document.getElementById('tab-daily').classList.remove('hidden'); curAnalysis=getCurAnalysis(); renderDaily(dyReport(userProfile,userConstitution,userEmotion,curAnalysis)); } }); // URL 参数预填(从 jiema.html 跳转过来) window.addEventListener('DOMContentLoaded',function(){ const p=new URLSearchParams(location.search); const y=p.get('y'),m=p.get('m'),d=p.get('d'),h=p.get('h')||'12'; if(y&&m&&d){ var fb=document.getElementById('fbirth'); var ft=document.getElementById('ftime'); if(fb) fb.value=y+'-'+String(m).padStart(2,'0')+'-'+String(d).padStart(2,'0'); if(ft) ft.value=String(h).padStart(2,'0')+':00'; setTimeout(gen,300); } });