From e643512dfa7c0110d59a159d3510aa81ceaab7e9 Mon Sep 17 00:00:00 2001 From: yuming Date: Tue, 2 Jun 2026 14:19:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=AA=E5=BF=B5=E6=97=A5=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=86=9C=E5=8E=86=E6=97=A5=E6=9C=9F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 人员详情页:日期下方显示完整农历「农历 YYYY年 X月X日」 - 日历页本月纪念日列表:日期下方显示农历月日「X月X日」 - 公历事件用 solarToLunar 算当年对应农历 - 农历事件按当年公历落点反算农历(与原始农历一致) Co-Authored-By: Claude Opus 4.7 (1M context) --- pages/calendar/calendar.js | 2 ++ pages/calendar/calendar.wxml | 5 ++++- pages/calendar/calendar.wxss | 16 ++++++++++++++-- pages/person-detail/person-detail.js | 5 ++++- pages/person-detail/person-detail.wxml | 5 +++++ pages/person-detail/person-detail.wxss | 16 +++++++++++++++- 6 files changed, 44 insertions(+), 5 deletions(-) diff --git a/pages/calendar/calendar.js b/pages/calendar/calendar.js index a556266..ebdc32b 100644 --- a/pages/calendar/calendar.js +++ b/pages/calendar/calendar.js @@ -122,12 +122,14 @@ Page({ .map(x => { const person = persons.find(p => p.id === x.personId) const date = new Date(currentYear, x._displayMonth - 1, x._displayDay) + const ld = lunar.solarToLunar(date) return { ...x, personName: person ? person.name : '未知', typeIcon: this.getTypeIcon(x.type), typeName: x.customTypeName || this.getTypeName(x.type), dateText: dateUtils.formatDate(date, 'MM月DD日'), + lunarMD: ld.lunarText, daysUntil: dateUtils.getDaysUntil(date) } }) diff --git a/pages/calendar/calendar.wxml b/pages/calendar/calendar.wxml index 7f8c95a..039da27 100644 --- a/pages/calendar/calendar.wxml +++ b/pages/calendar/calendar.wxml @@ -40,7 +40,10 @@ {{item.typeIcon}} {{item.personName}} - {{item.typeName}} - {{item.dateText}} + + {{item.dateText}} + {{item.lunarMD}} + 农历 diff --git a/pages/calendar/calendar.wxss b/pages/calendar/calendar.wxss index e06c33c..fc2128c 100644 --- a/pages/calendar/calendar.wxss +++ b/pages/calendar/calendar.wxss @@ -249,11 +249,23 @@ white-space: nowrap; } +.event-date-group { + display: flex; + flex-direction: column; + align-items: flex-end; + flex-shrink: 0; + margin-left: 12rpx; + gap: 2rpx; +} + .event-date { font-size: 24rpx; color: #8A8278; - flex-shrink: 0; - margin-left: 12rpx; +} + +.event-lunar { + font-size: 20rpx; + color: #A9A096; } .event-info { diff --git a/pages/person-detail/person-detail.js b/pages/person-detail/person-detail.js index abe0089..d9de3b9 100644 --- a/pages/person-detail/person-detail.js +++ b/pages/person-detail/person-detail.js @@ -1,6 +1,7 @@ // person-detail.js const storage = require('../../utils/storage') const dateUtils = require('../../utils/date') +const lunar = require('../../utils/lunar') const fmt = require('../../utils/format') Page({ @@ -52,11 +53,13 @@ Page({ const formatted = anniversaries.map(a => { const date = new Date(a.solarYear, a.solarMonth - 1, a.solarDay) const daysUntil = dateUtils.getDaysUntil(date) - + const ld = lunar.solarToLunar(date) + return { ...a, date, dateText: dateUtils.formatDate(date, 'YYYY年MM月DD日'), + lunarText: `农历 ${ld.year}年 ${ld.lunarText}`, daysUntil, daysUntilAbs: Math.abs(daysUntil), typeIcon: fmt.getTypeIcon(a.type), diff --git a/pages/person-detail/person-detail.wxml b/pages/person-detail/person-detail.wxml index 5a5d1ce..130eb32 100644 --- a/pages/person-detail/person-detail.wxml +++ b/pages/person-detail/person-detail.wxml @@ -44,6 +44,11 @@ 农历 + + 🌙 + {{item.lunarText}} + + 今天 明天 diff --git a/pages/person-detail/person-detail.wxss b/pages/person-detail/person-detail.wxss index 06f299a..00bca55 100644 --- a/pages/person-detail/person-detail.wxss +++ b/pages/person-detail/person-detail.wxss @@ -193,11 +193,25 @@ } .anniversary-date { - margin-bottom: 12rpx; + margin-bottom: 8rpx; font-size: 24rpx; color: #5A5247; } +.anniversary-lunar { + display: flex; + align-items: center; + gap: 8rpx; + margin-bottom: 12rpx; + font-size: 22rpx; + color: #8A8278; +} + +.lunar-icon { + font-size: 20rpx; + opacity: 0.7; +} + .date-label { color: #8A8278; }