refactor(mini): 个人中心改为登录+二级菜单结构
Publish Mini Program Dev Version / publish (push) Successful in 1m8s

- 个人中心仅保留登录管理、我的数据/功能菜单与关于信息
- 新增偏好设置二级页 preferences(原偏好设置统一收敛至此)
- 新增我的收藏二级页 bookmarks,支持删除与跳转日详情
- 生辰管理拆分为二级页 birth-profiles,未登录时提示引导登录
- 八字页入口改为直达生辰管理页;修复 fortune 非 tabBar 页误用 switchTab
This commit is contained in:
gouki
2026-08-10 11:52:15 +00:00
parent f7d88622e0
commit 87f5fa2478
17 changed files with 508 additions and 347 deletions
+54
View File
@@ -0,0 +1,54 @@
Page({
data: {
weekStartDay: 0,
ziHourSect: 'lateZiNextDay',
solarTime: true,
showBuddhist: false,
highlightLunar: true
},
onShow() {
this.loadSettings();
},
loadSettings() {
const settings = wx.getStorageSync('lunar-settings') || {};
this.setData({
weekStartDay: settings.weekStartDay || 0,
ziHourSect: settings.ziHourSect || 'lateZiNextDay',
solarTime: settings.solarTime !== false,
showBuddhist: settings.showBuddhist === true,
highlightLunar: settings.highlightLunar !== false
});
},
saveSettings() {
const { weekStartDay, ziHourSect, solarTime, showBuddhist, highlightLunar } = this.data;
wx.setStorageSync('lunar-settings', { weekStartDay, ziHourSect, solarTime, showBuddhist, highlightLunar });
},
setWeekStart(e) {
this.setData({ weekStartDay: Number(e.currentTarget.dataset.v) });
this.saveSettings();
},
setZiSect(e) {
this.setData({ ziHourSect: e.currentTarget.dataset.v });
this.saveSettings();
},
onSolarTimeChange(e) {
this.setData({ solarTime: e.detail.value });
this.saveSettings();
},
onBuddhistChange(e) {
this.setData({ showBuddhist: e.detail.value });
this.saveSettings();
},
onHighlightLunarChange(e) {
this.setData({ highlightLunar: e.detail.value });
this.saveSettings();
}
});
+4
View File
@@ -0,0 +1,4 @@
{
"navigationBarTitleText": "偏好设置",
"enablePullDownRefresh": false
}
+38
View File
@@ -0,0 +1,38 @@
<view class="container">
<view class="card">
<view class="section-title">偏好设置</view>
<view class="setting-item">
<text class="setting-label">周起始日</text>
<view class="flex gap-2">
<view class="btn-outline {{weekStartDay === 0 ? 'active' : ''}}" bindtap="setWeekStart" data-v="0">周日</view>
<view class="btn-outline {{weekStartDay === 1 ? 'active' : ''}}" bindtap="setWeekStart" data-v="1">周一</view>
</view>
</view>
<view class="setting-item">
<text class="setting-label">子时流派</text>
<view class="flex gap-2">
<view class="btn-outline {{ziHourSect === 'lateZiNextDay' ? 'active' : ''}}" bindtap="setZiSect" data-v="lateZiNextDay">晚子时算次日</view>
<view class="btn-outline {{ziHourSect === 'lateZiSameDay' ? 'active' : ''}}" bindtap="setZiSect" data-v="lateZiSameDay">晚子时算当日</view>
</view>
</view>
<view class="setting-item">
<text class="setting-label">真太阳时校正</text>
<switch checked="{{solarTime}}" bindchange="onSolarTimeChange" color="#C41E3A"/>
</view>
<view class="setting-item">
<text class="setting-label">显示佛历提醒</text>
<switch checked="{{showBuddhist}}" bindchange="onBuddhistChange" color="#C41E3A"/>
</view>
<view class="setting-item">
<text class="setting-label">初一十五高亮</text>
<switch checked="{{highlightLunar}}" bindchange="onHighlightLunarChange" color="#C41E3A"/>
</view>
</view>
<view class="text-xs text-muted text-center mt-2">设置仅保存在本机,修改后立即生效</view>
</view>
+32
View File
@@ -0,0 +1,32 @@
.container {
padding: 20rpx;
}
.section-title {
font-size: 28rpx;
font-weight: 600;
margin-bottom: 16rpx;
color: #C41E3A;
}
.setting-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx 0;
border-bottom: 1rpx solid #E8D5C4;
}
.setting-item:last-child {
border-bottom: none;
}
.setting-label {
font-size: 28rpx;
}
.btn-outline.active {
background: #C41E3A;
color: #FFFFFF;
border-color: #C41E3A;
}