同步小程序与管理端更新,完善抽烟记录和解绑冷静期

This commit is contained in:
2026-10-09 22:15:51 +08:00
parent a68a4ef411
commit b10fc3c4ac
149 changed files with 3794 additions and 589 deletions
+11 -16
View File
@@ -58,7 +58,8 @@ Page({
},
goBind: function() {
wx.redirectTo({ url: '/pages/profile/profile?bind=1' });
getApp().globalData.openProfileBind = true;
wx.switchTab({ url: '/pages/profile/profile' });
},
// 加载解绑状态
@@ -240,8 +241,8 @@ Page({
// 对方:同意或拒绝
this.doRespondUnbind();
}
} else if (status === 'agreed') {
wx.showToast({ title: '双方已同意解绑,正在处理中', icon: 'none' });
} else if (status === 'cooling') {
wx.showToast({ title: '正在72小时冷静期', icon: 'none' });
wx.navigateTo({ url: '/pages/unbind/unbind' });
} else {
// 无解绑请求或已结束:发起新解绑
@@ -254,7 +255,7 @@ Page({
var self = this;
wx.showModal({
title: '💔 解除绑定',
content: '发起解绑请求后,对方需要在72小时内确认同意。\n\n对方同意后,所有情侣记录将被永久删除(记忆日、日记、相册、纪念日、情话、歌曲、打卡),仅保留双方个人资料。\n\n你也可以在对方确认前撤销请求。',
content: '对方同意后进入72小时冷静期,期间任一方可取消。到期自动解绑并永久删除共同数据;个人抽烟记录保留。',
cancelText: '取消',
confirmText: '发起解绑',
confirmColor: '#FF4757',
@@ -280,7 +281,7 @@ Page({
var self = this;
wx.showModal({
title: '↩️ 撤销解绑',
content: '确定要撤销解绑请求吗?对方将不会收到任何通知。',
content: '取消后关系继续保留。确定取消解绑吗?',
cancelText: '取消',
confirmText: '撤销请求',
confirmColor: '#FF6B9D',
@@ -311,7 +312,7 @@ Page({
// 同意
wx.showModal({
title: '⚠️ 确认同意',
content: name + ' 发起了解绑请求。\n\n同意后,所有情侣记录将被永久删除(记忆日、日记、相册、歌曲、打卡),仅保留双方个人资料。\n\n此操作不可恢复!',
content: name + ' 发起了解绑请求。同意后进入72小时冷静期,期间可取消;到期自动解绑并永久删除共同数据,个人抽烟记录保留。',
cancelText: '取消',
confirmText: '同意解绑',
confirmColor: '#FF4757',
@@ -320,15 +321,9 @@ Page({
wx.showLoading({ title: '处理中...' });
api.unbindRespond({ agree: true }).then(function() {
wx.hideLoading();
wx.showToast({ title: '已同意解绑', icon: 'success' });
// 清除本地缓存
wx.removeStorageSync('coupleId');
wx.removeStorageSync('partnerId');
wx.removeStorageSync('partnerName');
wx.removeStorageSync('partnerAvatar');
setTimeout(function() {
wx.reLaunch({ url: '/pages/index/index' });
}, 1500);
wx.showToast({ title: '已进入72小时冷静期', icon: 'none' });
self.loadUnbindStatus();
wx.navigateTo({ url: '/pages/unbind/unbind' });
}).catch(function(err) {
wx.hideLoading();
wx.showToast({ title: err.error || '操作失败', icon: 'none' });
@@ -365,6 +360,6 @@ Page({
// 导航
goToHistory: function() { wx.navigateTo({ url: '/pages/history/history' }); },
goHome: function() { wx.redirectTo({ url: '/pages/index/index' }); },
goHome: function() { wx.switchTab({ url: '/pages/index/index' }); },
goToProfile: function() { wx.navigateBack(); },
});
+4 -2
View File
@@ -1,4 +1,4 @@
<view class="app-shell app-shell--secondary" style="{{layoutStyle}}">
<view class="app-shell app-shell--secondary j-handwritten-page" style="{{layoutStyle}}">
<launch-transition />
<!-- pages/settings/settings.wxml -->
<app-nav title="设置" back="{{true}}" />
@@ -53,10 +53,12 @@
<view class="setting-info">
<view wx:if="{{unbindStatus == 'pending' && unbindIsRequester}}" class="j-small-title" style="color:#FF9800;">取消解绑请求</view>
<view wx:elif="{{unbindStatus == 'pending' && !unbindIsRequester}}" class="j-small-title" style="color:#FF4757;">待回应的解绑请求</view>
<view wx:elif="{{unbindStatus == 'cooling'}}" class="j-small-title">72小时冷静期</view>
<view wx:else class="j-small-title" style="color:#FF4757;">解除绑定</view>
<view wx:if="{{unbindStatus == 'pending' && unbindIsRequester}}" class="j-caption">点击撤销已发起的请求</view>
<view wx:elif="{{unbindStatus == 'pending' && !unbindIsRequester}}" class="j-caption">{{unbindRequesterName}} 发起了解绑</view>
<view wx:else class="j-caption">发起解绑需对方确认</view>
<view wx:elif="{{unbindStatus == 'cooling'}}" class="j-caption">点击查看倒计时或取消解绑</view>
<view wx:else class="j-caption">同意后进入72小时冷静期</view>
</view>
<text class="j-link">›</text>
</view>
+16 -1
View File
@@ -1,6 +1,6 @@
/* pages/settings/settings.wxss */
@import '../../styles/common.wxss';
page { background: linear-gradient(180deg, #F4E2E3 0%, #FAF5EE 55%, #FAF5EE 100%); height: 100vh; overflow: hidden; }
page { background: linear-gradient(180deg, #FDE4EC 0%, #FFF0F5 48%, #FFF7FA 100%); height: 100vh; overflow: hidden; }
.container { padding-top: 16rpx; padding-bottom: 300rpx; }
scroll-view.page-bg { height: 100vh; overflow-y: scroll; -webkit-overflow-scrolling: touch; }
@@ -344,3 +344,18 @@ scroll-view.page-bg { height: 100vh; overflow-y: scroll; -webkit-overflow-scroll
.info-footer { flex-shrink:0; padding:20rpx 32rpx; border-top:1rpx solid #E9DDD0; }
.info-dismiss { margin:0; width:100%; padding:0; line-height:76rpx; border-radius:16rpx; background:#B74768; color:#FFFDF8; font-size:28rpx; }
.info-dismiss::after { border:0; }
/* 设置分组和弹窗标题延续主页面的端正手写风格。 */
.section-heading,
.info-title,
.modal-subtitle,
.about-block-title {
font-family:'Kaiti SC','STKaiti','KaiTi',cursive;
font-weight:400;
font-style:normal;
letter-spacing:1rpx;
}
@import '../../styles/button-theme.wxss';
@import '../../styles/typography.wxss';