与牧同行-小程序用户端
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.
 

265 lines
5.0 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();
},
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'
};
}
});