You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
272 lines
5.1 KiB
272 lines
5.1 KiB
Page({
|
|
data: {
|
|
// 用户信息
|
|
avatarUrl: '',
|
|
userInfo: {
|
|
nickName: '',
|
|
userId: '',
|
|
isVerified: false
|
|
},
|
|
|
|
// 弹窗状态
|
|
showFeedbackModal: false,
|
|
showNicknameModal: false,
|
|
showToast: false,
|
|
|
|
// 反馈相关
|
|
feedbackContent: '',
|
|
canSubmit: false,
|
|
isSubmitting: false,
|
|
|
|
// 编辑相关
|
|
newNickname: '',
|
|
// 提示信息
|
|
toastText: ''
|
|
},
|
|
|
|
onLoad() {
|
|
this.loadUserInfo();
|
|
},
|
|
|
|
// 跳转实名认证
|
|
bindrz(){
|
|
wx.navigateTo({
|
|
url: '/pagesA/pages/attestation/attestation',
|
|
})
|
|
},
|
|
|
|
onShow() {
|
|
|
|
},
|
|
|
|
// 加载用户信息
|
|
loadUserInfo() {
|
|
// 从缓存获取用户信息
|
|
const userInfo = wx.getStorageSync('userInfo');
|
|
const avatarUrl = wx.getStorageSync('avatarUrl');
|
|
|
|
if (userInfo) {
|
|
this.setData({
|
|
userInfo,
|
|
avatarUrl
|
|
});
|
|
} else {
|
|
// 首次使用,生成默认用户信息
|
|
const defaultUserInfo = {
|
|
nickName: '微信用户',
|
|
isVerified: false
|
|
};
|
|
|
|
wx.setStorageSync('userInfo', defaultUserInfo);
|
|
this.setData({ userInfo: defaultUserInfo });
|
|
}
|
|
},
|
|
|
|
|
|
// 选择头像
|
|
onChooseAvatar(e) {
|
|
const { avatarUrl } = e.detail;
|
|
|
|
// 显示加载
|
|
wx.showLoading({
|
|
title: '更新中...',
|
|
mask: true
|
|
});
|
|
|
|
// 模拟上传过程
|
|
setTimeout(() => {
|
|
this.setData({ avatarUrl });
|
|
|
|
// 保存到缓存
|
|
wx.setStorageSync('avatarUrl', avatarUrl);
|
|
|
|
wx.hideLoading();
|
|
this.showToast('头像更新成功');
|
|
}, 800);
|
|
},
|
|
|
|
|
|
|
|
// 编辑昵称
|
|
editNickname() {
|
|
this.setData({
|
|
showNicknameModal: true,
|
|
newNickname: this.data.userInfo.nickName
|
|
});
|
|
},
|
|
|
|
hideNicknameModal() {
|
|
this.setData({ showNicknameModal: false });
|
|
},
|
|
|
|
onNicknameInput(e) {
|
|
this.setData({ newNickname: e.detail.value });
|
|
},
|
|
|
|
saveNickname() {
|
|
const newNickname = this.data.newNickname.trim();
|
|
|
|
if (!newNickname) {
|
|
this.showToast('昵称不能为空');
|
|
return;
|
|
}
|
|
|
|
if (newNickname.length > 20) {
|
|
this.showToast('昵称不能超过20个字符');
|
|
return;
|
|
}
|
|
|
|
// 更新用户信息
|
|
const updatedUserInfo = {
|
|
...this.data.userInfo,
|
|
nickName: newNickname
|
|
};
|
|
|
|
this.setData({
|
|
userInfo: updatedUserInfo,
|
|
showNicknameModal: false
|
|
});
|
|
|
|
// 保存到缓存
|
|
wx.setStorageSync('userInfo', updatedUserInfo);
|
|
|
|
this.showToast('昵称修改成功');
|
|
},
|
|
|
|
// 查看问诊消息
|
|
goToConsultation() {
|
|
wx.navigateTo({
|
|
url: ''
|
|
});
|
|
},
|
|
|
|
// 查看问答消息
|
|
goToQA() {
|
|
wx.navigateTo({
|
|
url: ''
|
|
});
|
|
},
|
|
|
|
// 实名认证
|
|
goToAuth() {
|
|
if (this.data.userInfo.isVerified) {
|
|
this.showToast('您已完成实名认证');
|
|
return;
|
|
}
|
|
|
|
wx.navigateTo({
|
|
url: '/pages/auth/realname'
|
|
});
|
|
},
|
|
|
|
// 显示反馈弹窗
|
|
showFeedback() {
|
|
this.setData({
|
|
showFeedbackModal: true,
|
|
feedbackContent: '',
|
|
canSubmit: false,
|
|
isSubmitting: false
|
|
});
|
|
},
|
|
|
|
hideFeedback() {
|
|
this.setData({ showFeedbackModal: false });
|
|
},
|
|
|
|
// 反馈内容输入
|
|
onFeedbackInput(e) {
|
|
const content = e.detail.value;
|
|
const canSubmit = content.trim().length > 0;
|
|
|
|
this.setData({
|
|
feedbackContent: content,
|
|
canSubmit
|
|
});
|
|
},
|
|
|
|
// 提交反馈
|
|
submitFeedback() {
|
|
if (!this.data.canSubmit || this.data.isSubmitting) return;
|
|
|
|
const content = this.data.feedbackContent.trim();
|
|
if (content.length < 5) {
|
|
this.showToast('请填写详细的反馈内容');
|
|
return;
|
|
}
|
|
|
|
this.setData({ isSubmitting: true });
|
|
|
|
// 模拟提交到服务器
|
|
setTimeout(() => {
|
|
console.log('提交反馈:', content);
|
|
|
|
this.setData({
|
|
isSubmitting: false,
|
|
showFeedbackModal: false
|
|
});
|
|
|
|
this.showToast('感谢您的反馈!');
|
|
|
|
// 这里应该是实际的API调用
|
|
// wx.request({
|
|
// url: 'https://your-api.com/feedback',
|
|
// method: 'POST',
|
|
// data: { content },
|
|
// success: (res) => {
|
|
// this.showToast('提交成功');
|
|
// },
|
|
// complete: () => {
|
|
// this.setData({
|
|
// isSubmitting: false,
|
|
// showFeedbackModal: false
|
|
// });
|
|
// }
|
|
// });
|
|
}, 1500);
|
|
},
|
|
|
|
// 关于我们
|
|
goToAbout() {
|
|
wx.navigateTo({
|
|
url: '/pages/about/index'
|
|
});
|
|
},
|
|
|
|
// 设置
|
|
goToSettings() {
|
|
wx.navigateTo({
|
|
url: '/pages/settings/index'
|
|
});
|
|
},
|
|
|
|
// 显示提示
|
|
showToast(text) {
|
|
this.setData({
|
|
toastText: text,
|
|
showToast: true
|
|
});
|
|
|
|
setTimeout(() => {
|
|
this.setData({ showToast: false });
|
|
}, 2000);
|
|
},
|
|
|
|
// 下拉刷新
|
|
onPullDownRefresh() {
|
|
this.loadUserInfo();
|
|
this.checkUnreadMessages();
|
|
|
|
setTimeout(() => {
|
|
wx.stopPullDownRefresh();
|
|
this.showToast('刷新成功');
|
|
}, 1000);
|
|
},
|
|
|
|
// 分享
|
|
onShareAppMessage() {
|
|
return {
|
|
title: '健康守护 - 您的个人健康中心',
|
|
path: '/pages/personal-center/index'
|
|
};
|
|
}
|
|
});
|