From 7d667253a760783137136a07e4200df6967d3429 Mon Sep 17 00:00:00 2001 From: ZhaoYang <565837861@qq.com> Date: Tue, 10 Feb 2026 17:20:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E5=90=8D=E8=AE=A4=E8=AF=81=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8A=E4=BC=A0=E5=A4=B4=E5=83=8F=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=EF=BC=8C=E5=8F=8D=E9=A6=88=E5=BB=BA=E8=AE=AE=EF=BC=8C?= =?UTF-8?q?=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 7 - pages/home/home.js | 1 + pages/home/home.wxml | 30 +- pages/images/gywm.png | Bin 3906 -> 0 bytes pages/images/logout.png | Bin 0 -> 4543 bytes pages/images/sz.png | Bin 6638 -> 0 bytes pages/images/xx.png | Bin 5286 -> 0 bytes pages/images/xx1.png | Bin 5499 -> 0 bytes pages/market/market.wxml | 7 +- pages/market/market.wxss | 9 - pages/news/news.js | 66 ---- pages/news/news.json | 4 - pages/news/news.wxml | 2 - pages/news/news.wxss | 1 - pages/personal/personal.js | 357 ++++++++++++++-------- pages/personal/personal.wxml | 47 +-- pages/personal/personal.wxss | 214 ++++++++++--- pagesA/pages/attestation/attestation.js | 143 +++++++-- pagesA/pages/attestation/attestation.wxml | 24 ++ pagesA/pages/attestation/attestation.wxss | 111 ++++++- utils/api.js | 18 +- utils/baseUrl.js | 4 +- 22 files changed, 699 insertions(+), 346 deletions(-) delete mode 100644 pages/images/gywm.png create mode 100644 pages/images/logout.png delete mode 100644 pages/images/sz.png delete mode 100644 pages/images/xx.png delete mode 100644 pages/images/xx1.png delete mode 100644 pages/news/news.js delete mode 100644 pages/news/news.json delete mode 100644 pages/news/news.wxml delete mode 100644 pages/news/news.wxss diff --git a/app.json b/app.json index 38723fa..b5de33e 100644 --- a/app.json +++ b/app.json @@ -2,7 +2,6 @@ "pages": [ "pages/home/home", "pages/login/login", - "pages/news/news", "pages/map/map", "pages/personal/personal", "pages/market/market" @@ -55,12 +54,6 @@ "iconPath": "pages/images/home.png", "selectedIconPath": "pages/images/home1.png" }, - { - "pagePath": "pages/news/news", - "text": "消息", - "iconPath": "pages/images/xx.png", - "selectedIconPath": "pages/images/xx1.png" - }, { "pagePath": "pages/market/market", "text": "市场", diff --git a/pages/home/home.js b/pages/home/home.js index 0cb937e..86fd314 100644 --- a/pages/home/home.js +++ b/pages/home/home.js @@ -21,6 +21,7 @@ Page({ http.UserInfo({ data: {}, success: res => { + console.log(11111,res); this.setData({ user: res.data.area }) diff --git a/pages/home/home.wxml b/pages/home/home.wxml index 96d85d5..794242c 100644 --- a/pages/home/home.wxml +++ b/pages/home/home.wxml @@ -24,17 +24,7 @@ - + @@ -107,14 +97,7 @@ - + @@ -221,6 +204,15 @@ {{item.publishTime}} + + + + + + {{item.viewCount || 0}} + + + diff --git a/pages/images/gywm.png b/pages/images/gywm.png deleted file mode 100644 index 7a2cbfd104d02b5ba3ee3120b2df85357555e899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3906 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 JRoc#!{{aqED3<^L literal 0 HcmV?d00001 diff --git a/pages/images/sz.png b/pages/images/sz.png deleted file mode 100644 index 3e72d5d5f2e7117f531f024610c5c8312c486879..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6638 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 diff --git a/pages/images/xx1.png b/pages/images/xx1.png deleted file mode 100644 index 23322fe0ed06bc6b4db2b32e90f4d55018166e8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5499 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 x>gHDL1H_7yAVk2l__`2Kf~;%2wYNkB{tpyD - {{salesStatus === 'active' ? '更新中' : '已更新'}} + 已更新 @@ -152,7 +152,7 @@ - {{feedStatus === 'active' ? '更新中' : '已更新'}} + 已更新 @@ -205,9 +205,6 @@ 市场趋势 通知公告与行业分析 - - {{unreadCount}}条未读 - -pages/news/news.wxml \ No newline at end of file diff --git a/pages/news/news.wxss b/pages/news/news.wxss deleted file mode 100644 index c142781..0000000 --- a/pages/news/news.wxss +++ /dev/null @@ -1 +0,0 @@ -/* pages/news/news.wxss */ \ No newline at end of file diff --git a/pages/personal/personal.js b/pages/personal/personal.js index bd3d95e..daf0cd5 100644 --- a/pages/personal/personal.js +++ b/pages/personal/personal.js @@ -1,16 +1,19 @@ +import http from '../../utils/api' +const baseUrl = require('../../utils/baseUrl') + Page({ data: { // 用户信息 avatarUrl: '', userInfo: { - nickName: '', - userId: '', - isVerified: false - }, + user: {} + }, + baseUrl: baseUrl, // 弹窗状态 showFeedbackModal: false, showNicknameModal: false, + showLogoutModal: false, showToast: false, // 反馈相关 @@ -20,143 +23,226 @@ Page({ // 编辑相关 newNickname: '', + // 提示信息 - toastText: '' + toastText: '', + + // 表单数据 + formData: { + avatar: null, + nickName: null + }, + + // 上传状态 + isUploadingAvatar: false, + isUpdatingNickname: false }, onLoad() { - this.loadUserInfo(); + this.getUserInfo() }, - // 跳转实名认证 - bindrz(){ - wx.navigateTo({ - url: '/pagesA/pages/attestation/attestation', - }) + onShow() { + this.getUserInfo() }, - onShow() { - + // 获取用户信息 + getUserInfo() { + http.UserInfo({ + data: {}, + success: (res) => { + if (res.data && res.data.user) { + wx.setStorageSync('userInfo', res.data) + this.setData({ + userInfo: res.data, + avatarUrl: res.data.user?.avatar ? baseUrl + res.data.user.avatar : '' + }) + } + }, + fail: (err) => { + console.error('获取用户信息失败:', err) + // 使用缓存的用户信息 + const cachedUserInfo = wx.getStorageSync('userInfo') + if (cachedUserInfo) { + this.setData({ + userInfo: cachedUserInfo, + avatarUrl: cachedUserInfo.user?.avatar ? baseUrl + cachedUserInfo.user.avatar : '' + }) + } + } + }) }, - // 加载用户信息 - loadUserInfo() { - // 从缓存获取用户信息 - const userInfo = wx.getStorageSync('userInfo'); - const avatarUrl = wx.getStorageSync('avatarUrl'); + // 更新用户信息到服务器 + updateUserInfo() { + const formData = this.data.formData + // 过滤掉空值 + const dataToUpdate = {} + if (formData.avatar) dataToUpdate.avatar = formData.avatar + if (formData.nickName) dataToUpdate.nickName = formData.nickName - if (userInfo) { - this.setData({ - userInfo, - avatarUrl - }); - } else { - // 首次使用,生成默认用户信息 - const defaultUserInfo = { - nickName: '微信用户', - isVerified: false - }; - - wx.setStorageSync('userInfo', defaultUserInfo); - this.setData({ userInfo: defaultUserInfo }); - } + if (Object.keys(dataToUpdate).length === 0) return + + http.revise({ + data: dataToUpdate, + success: (res) => { + console.log('更新成功:', res) + // 清空表单数据 + this.setData({ + 'formData.avatar': null, + 'formData.nickName': null + }) + // 立即刷新用户信息 + this.getUserInfo() + }, + fail: (err) => { + console.error('更新失败:', err) + this.showToast('更新失败,请重试') + } + }) }, - // 选择头像 onChooseAvatar(e) { - const { avatarUrl } = e.detail; + if (this.data.isUploadingAvatar) { + this.showToast('正在上传中...') + return + } + + const { avatarUrl } = e.detail + if (!avatarUrl) { + this.showToast('选择头像失败') + return + } + + this.setData({ isUploadingAvatar: true }) - // 显示加载 wx.showLoading({ - title: '更新中...', + title: '上传中...', mask: true - }); + }) - // 模拟上传过程 - setTimeout(() => { - this.setData({ avatarUrl }); - - // 保存到缓存 - wx.setStorageSync('avatarUrl', avatarUrl); - - wx.hideLoading(); - this.showToast('头像更新成功'); - }, 800); + // 上传头像到服务器 + wx.uploadFile({ + url: baseUrl + '/common/upload', + header: { + 'Authorization': 'Bearer ' + wx.getStorageSync('token') + }, + filePath: avatarUrl, + name: 'file', + success: (uploadRes) => { + wx.hideLoading() + + try { + const result = JSON.parse(uploadRes.data) + if (result && result.fileName) { + // 立即更新本地显示 + this.setData({ + avatarUrl: avatarUrl, + 'formData.avatar': result.fileName, + 'userInfo.user.avatar': result.fileName + }) + + // 更新到服务器 + this.updateUserInfo() + + this.showToast('头像更新成功') + } else { + throw new Error('上传失败') + } + } catch (error) { + console.error('解析上传结果失败:', error) + this.showToast('上传失败,请重试') + } + }, + fail: (err) => { + wx.hideLoading() + console.error('上传失败:', err) + this.showToast('上传失败,请检查网络') + }, + complete: () => { + this.setData({ isUploadingAvatar: false }) + } + }) }, - - // 编辑昵称 editNickname() { this.setData({ showNicknameModal: true, - newNickname: this.data.userInfo.nickName - }); + newNickname: this.data.userInfo.user?.nickName || '' + }) }, hideNicknameModal() { - this.setData({ showNicknameModal: false }); + this.setData({ showNicknameModal: false }) }, onNicknameInput(e) { - this.setData({ newNickname: e.detail.value }); + this.setData({ newNickname: e.detail.value }) }, saveNickname() { - const newNickname = this.data.newNickname.trim(); + const newNickname = this.data.newNickname.trim() if (!newNickname) { - this.showToast('昵称不能为空'); - return; + this.showToast('昵称不能为空') + return } - if (newNickname.length > 20) { - this.showToast('昵称不能超过20个字符'); - return; + if (newNickname.length > 10) { + this.showToast('昵称不能超过10个字符') + return } - // 更新用户信息 - const updatedUserInfo = { - ...this.data.userInfo, - nickName: newNickname - }; + // 如果昵称没有变化,直接关闭弹窗 + if (newNickname === this.data.userInfo.user?.nickName) { + this.hideNicknameModal() + return + } + this.setData({ isUpdatingNickname: true }) + + // 立即更新本地显示 this.setData({ - userInfo: updatedUserInfo, - showNicknameModal: false - }); + 'userInfo.user.nickName': newNickname, + 'formData.nickName': newNickname + }) - // 保存到缓存 - wx.setStorageSync('userInfo', updatedUserInfo); + // 更新到服务器 + this.updateUserInfo() - this.showToast('昵称修改成功'); + this.setData({ + showNicknameModal: false, + isUpdatingNickname: false + }) + + this.showToast('昵称修改成功') }, // 查看问诊消息 goToConsultation() { wx.navigateTo({ url: '' - }); + }) }, // 查看问答消息 goToQA() { wx.navigateTo({ url: '' - }); + }) }, // 实名认证 goToAuth() { - if (this.data.userInfo.isVerified) { - this.showToast('您已完成实名认证'); - return; + if (this.data.userInfo.authStatus) { + this.showToast('您已完成实名认证') + } else { + wx.navigateTo({ + url: '/pagesA/pages/attestation/attestation' + }) } - - wx.navigateTo({ - url: '/pages/auth/realname' - }); }, // 显示反馈弹窗 @@ -166,77 +252,79 @@ Page({ feedbackContent: '', canSubmit: false, isSubmitting: false - }); + }) }, hideFeedback() { - this.setData({ showFeedbackModal: false }); + this.setData({ showFeedbackModal: false }) }, // 反馈内容输入 onFeedbackInput(e) { - const content = e.detail.value; - const canSubmit = content.trim().length > 0; + 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; + if (!this.data.canSubmit || this.data.isSubmitting) return - const content = this.data.feedbackContent.trim(); + const content = this.data.feedbackContent.trim() if (content.length < 5) { - this.showToast('请填写详细的反馈内容'); - return; + this.showToast('请填写详细的反馈内容') + return } - this.setData({ isSubmitting: true }); + this.setData({ isSubmitting: true }) - // 模拟提交到服务器 + // 提交 setTimeout(() => { - console.log('提交反馈:', content); + console.log('提交反馈:', content) + http.feedback({ + data:{ + content:content + }, + success:res=>{ + console.log(111111,res); + if(res.code==200){ + this.showToast('感谢您的反馈!') + }else{ + this.showToast('反馈失败!') + } + this.setData({ + isSubmitting: false, + showFeedbackModal: false + }) + } + }) - 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); + + }, 1500) }, - // 关于我们 - goToAbout() { - wx.navigateTo({ - url: '/pages/about/index' - }); + // 退出登录相关 + showLogoutConfirm() { + this.setData({ showLogoutModal: true }) }, - // 设置 - goToSettings() { - wx.navigateTo({ - url: '/pages/settings/index' - }); + hideLogoutModal() { + this.setData({ showLogoutModal: false }) + }, + + doLogout() { + // 清除本地存储 + wx.clearStorageSync() + + // 跳转到登录页 + wx.reLaunch({ + url: '/pages/login/login' + }) + this.showToast('已退出登录') }, // 显示提示 @@ -244,22 +332,21 @@ Page({ this.setData({ toastText: text, showToast: true - }); + }) setTimeout(() => { - this.setData({ showToast: false }); - }, 2000); + this.setData({ showToast: false }) + }, 2000) }, // 下拉刷新 onPullDownRefresh() { - this.loadUserInfo(); - this.checkUnreadMessages(); + this.getUserInfo() setTimeout(() => { - wx.stopPullDownRefresh(); - this.showToast('刷新成功'); - }, 1000); + wx.stopPullDownRefresh() + this.showToast('刷新成功') + }, 1000) }, // 分享 @@ -267,6 +354,6 @@ Page({ return { title: '健康守护 - 您的个人健康中心', path: '/pages/personal-center/index' - }; + } } -}); \ No newline at end of file +}) \ No newline at end of file diff --git a/pages/personal/personal.wxml b/pages/personal/personal.wxml index 3c7a4d1..a72916b 100644 --- a/pages/personal/personal.wxml +++ b/pages/personal/personal.wxml @@ -4,19 +4,20 @@ @@ -57,8 +58,8 @@ 实名认证 - - {{userInfo.isVerified ? '已认证' : '去认证'}} + + {{userInfo.authStatus ? '已认证' : '去认证'}} @@ -69,27 +70,18 @@ 反馈建议 - - - + + + - - 关于我们 + + 退出登录 - - - - - 设置 - - - - + + + + + + 确认退出登录? + 退出后需要重新登录才能使用完整功能 + + + + + + + + {{toastText}} diff --git a/pages/personal/personal.wxss b/pages/personal/personal.wxss index c8f84b1..45087a5 100644 --- a/pages/personal/personal.wxss +++ b/pages/personal/personal.wxss @@ -1,9 +1,9 @@ -.personal-center{ +.personal-center { min-height: 100vh; background: linear-gradient(180deg, #86D8D0 0%, #a9dfda 30%, #cfe9e7 60%, #ECF8F7 90%); + padding-bottom: 40rpx; } - /* 淡入动画 */ .fade-in { animation: fadeIn 0.6s ease forwards; @@ -23,12 +23,6 @@ transform: translateY(20rpx); } -.fade-in-delay-3 { - animation: fadeIn 0.6s 0.6s ease forwards; - opacity: 0; - transform: translateY(20rpx); -} - @keyframes fadeIn { to { opacity: 1; @@ -58,14 +52,15 @@ .avatar-btn { position: relative; - width: 120rpx; - height: 120rpx; + width: 140rpx; + height: 140rpx; margin-right: 30rpx; flex-shrink: 0; padding: 0; background: transparent; border: none; border-radius: 50%; + overflow: visible; } .avatar-btn::after { @@ -78,8 +73,32 @@ border-radius: 50%; border: 4rpx solid white; box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; +} + +.avatar-btn:active .avatar { + transform: scale(0.95); +} + +.avatar-edit-tip { + position: absolute; + bottom: -10rpx; + left: 50%; + transform: translateX(-50%); + background: rgba(0, 0, 0, 0.7); + color: white; + font-size: 20rpx; + padding: 4rpx 12rpx; + border-radius: 20rpx; + white-space: nowrap; + opacity: 0; + transition: all 0.3s ease; } +.avatar-btn:hover .avatar-edit-tip { + opacity: 1; + bottom: -20rpx; +} .user-info { flex: 1; @@ -89,6 +108,13 @@ display: flex; align-items: center; margin-bottom: 16rpx; + padding: 8rpx 0; + border-radius: 8rpx; + transition: all 0.3s ease; +} + +.nickname-section:active { + background: rgba(0, 0, 0, 0.05); } .nickname { @@ -102,12 +128,16 @@ white-space: nowrap; } - - .nickname-section image { width: 26rpx; height: 26rpx; opacity: 0.6; + transition: all 0.3s ease; +} + +.nickname-section:active image { + opacity: 0.8; + transform: scale(1.1); } .user-meta { @@ -117,14 +147,12 @@ gap: 16rpx; } - - .auth-tag { display: flex; align-items: center; - padding: 6rpx 12rpx; + padding: 6rpx 16rpx; background: #fef3c7; - border-radius: 16rpx; + border-radius: 20rpx; transition: all 0.3s ease; } @@ -134,23 +162,21 @@ .auth-tag:active { transform: scale(0.95); -} - -.auth-tag image { - width: 20rpx; - height: 20rpx; - margin-right: 6rpx; + opacity: 0.8; } .auth-tag text { - font-size: 22rpx; + font-size: 24rpx; color: #92400e; + font-weight: 500; } .auth-tag.verified text { color: #065f46; } + + /* 卡片样式 */ .section-card { background: white; @@ -188,8 +214,6 @@ border-radius: 3rpx; } - - /* 消息行 */ .message-row { display: flex; @@ -207,6 +231,7 @@ .message-item:active { transform: scale(0.95); + opacity: 0.8; } .message-icon-wrapper { @@ -220,6 +245,11 @@ background: #f8fafc; border-radius: 50%; border: 1rpx solid #e2e8f0; + transition: all 0.3s ease; +} + +.message-item:active .message-icon-wrapper { + background: #e2e8f0; } .message-icon { @@ -227,7 +257,6 @@ height: 60rpx; } - .message-label { font-size: 26rpx; color: #475569; @@ -270,10 +299,9 @@ } .item-icon { - width: 32rpx; - height: 32rpx; + width: 40rpx; + height: 40rpx; margin-right: 20rpx; - opacity: 0.8; } .item-title { @@ -282,6 +310,9 @@ font-weight: 500; } +.logout-title { + color: #ef4444; +} .item-status { font-size: 26rpx; @@ -293,14 +324,6 @@ color: #10b981; } - -.function-item:active .arrow { - opacity: 0.8; - transform: translateX(4rpx); -} - - - /* 反馈弹窗 */ .feedback-modal { position: fixed; @@ -363,9 +386,12 @@ } .modal-close { + width: 40rpx; + height: 40rpx; display: flex; align-items: center; justify-content: center; + border-radius: 50%; transition: all 0.3s ease; } @@ -377,7 +403,7 @@ .modal-close image { width: 36rpx; height: 36rpx; - opacity: 0.5; + filter: brightness(0%); } /* 反馈输入框 */ @@ -434,7 +460,7 @@ .submit-btn { width: 100%; - height: 88rpx; + padding: 5rpx 0; background: #e2e8f0; border-radius: 44rpx; font-size: 32rpx; @@ -538,7 +564,7 @@ .cancel-btn, .confirm-btn { flex: 1; - height: 80rpx; + padding: 5rpx 0; border-radius: 40rpx; font-size: 28rpx; font-weight: 500; @@ -551,6 +577,10 @@ color: #64748b; } +.cancel-btn::after{ + border: none; +} + .cancel-btn:active { background: #e2e8f0; } @@ -566,23 +596,121 @@ opacity: 0.9; } +/* 退出登录确认弹窗 */ +.logout-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; +} + +.logout-modal.show { + opacity: 1; + visibility: visible; +} + +.logout-modal .modal-content { + width: 600rpx; + background: white; + border-radius: 24rpx; + overflow: hidden; + box-shadow: 0 20rpx 60rpx rgba(0, 0, 0, 0.2); + transform: scale(0.8); + transition: all 0.3s ease; +} + +.logout-modal.show .modal-content { + transform: scale(1); +} + +.logout-modal-body { + padding: 60rpx 40rpx 40rpx; + text-align: center; +} + + +.logout-title { + font-weight: 700; + color: #1e293b; + display: block; +} + +.logout-desc { + font-size: 28rpx; + color: #64748b; + line-height: 1.5; +} + +.logout-modal-footer { + padding: 0 40rpx 40rpx; + display: flex; + gap: 20rpx; +} + +.logout-cancel-btn, +.logout-confirm-btn { + flex: 1; + border-radius: 44rpx; + font-size: 30rpx; + font-weight: 600; + transition: all 0.3s ease; + border: none; +} + +.logout-cancel-btn::after{ + border: none; +} + +.logout-cancel-btn { + background: #f1f5f9; + color: #64748b; +} + +.logout-cancel-btn:active { + background: #e2e8f0; + transform: scale(0.98); +} + +.logout-confirm-btn { + background: linear-gradient(135deg, #ef4444, #dc2626); + color: white; + box-shadow: 0 8rpx 24rpx rgba(239, 68, 68, 0.3); +} + +.logout-confirm-btn:active { + transform: scale(0.98); + opacity: 0.9; +} + /* 提示信息 */ .toast { position: fixed; top: 150rpx; left: 50%; transform: translateX(-50%) translateY(-100rpx); - background: rgba(30, 41, 59, 0.9); + background: rgba(30, 41, 59, 0.95); backdrop-filter: blur(20rpx); color: white; - padding: 20rpx 40rpx; - border-radius: 12rpx; + padding: 24rpx 48rpx; + border-radius: 16rpx; font-size: 28rpx; + font-weight: 500; opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 1001; box-shadow: 0 10rpx 40rpx rgba(0, 0, 0, 0.2); + max-width: 80%; + text-align: center; + white-space: nowrap; } .toast.show { diff --git a/pagesA/pages/attestation/attestation.js b/pagesA/pages/attestation/attestation.js index 9730423..8610fcb 100644 --- a/pagesA/pages/attestation/attestation.js +++ b/pagesA/pages/attestation/attestation.js @@ -1,5 +1,6 @@ +// pages/auth/real-name-auth.js import http from '../../../utils/api' -const baseUrl = require('../../../utils/baseUrl') + Page({ data: { // 表单数据 @@ -14,7 +15,7 @@ Page({ nameError: '', idNumberError: '', - // 提示显示控制 - 修复:初始为false + // 提示显示控制 showNameHint: false, showIdNumberHint: false, @@ -41,7 +42,12 @@ Page({ // 成功弹窗数据 showSuccessModal: false, - maskedIdNumber: '' + maskedIdNumber: '', + + // 错误弹窗数据 + showErrorModal: false, + errorTitle: '', + errorMessage: '' }, onLoad() { @@ -51,7 +57,7 @@ Page({ }, 600); }, - // 姓名输入处理 - 修复:简化逻辑 + // 姓名输入处理 onNameInput(e) { const value = e.detail.value.trim(); let error = ''; @@ -109,7 +115,7 @@ Page({ }); }, - // 身份证号输入处理 - 修复:简化逻辑 + // 身份证号输入处理 onIdNumberInput(e) { const value = e.detail.value.trim().toUpperCase(); let error = ''; @@ -270,6 +276,23 @@ Page({ this.setData({ showModal: false }); }, + // 显示错误弹窗 + showErrorModal(title, message) { + this.setData({ + errorTitle: title || '认证失败', + errorMessage: message || '请检查信息后重试', + showErrorModal: true + }); + }, + + // 关闭错误弹窗 + closeErrorModal() { + this.setData({ + showErrorModal: false, + isSubmitting: false // 关闭错误弹窗时重置提交状态 + }); + }, + // 阻止事件冒泡 stopPropagation(e) { // 阻止冒泡 @@ -331,41 +354,99 @@ Page({ }); try { - // 模拟API请求 - await new Promise(resolve => setTimeout(resolve, 1500)); + // 调用实名认证接口 + const result = await this.callRealNameApi(name, idNumber); wx.hideLoading(); - // 处理身份证号脱敏显示 - const maskedId = idNumber.substring(0, 4) + '**********' + idNumber.substring(14); - - // 显示成功弹窗 - this.showSuccessModal(maskedId); - - // 保存认证信息 - wx.setStorageSync('realNameAuth', { - name: name, - idNumber: idNumber, - certified: true, - certifiedTime: new Date().getTime() - }); + if (result.success) { + // 处理身份证号脱敏显示 + const maskedId = idNumber.substring(0, 4) + '**********' + idNumber.substring(14); + + // 显示成功弹窗 + this.showSuccessModal(maskedId); + + this.setData({ + isSubmitting: false, + currentStep: 3, + lineProgress2: 100 + }); + } else { + // 接口返回失败 + this.handleApiError(result); + } + } catch (error) { + wx.hideLoading(); this.setData({ isSubmitting: false, - currentStep: 3, - lineProgress2: 100 + currentStep: 1, + lineProgress2: 0 }); - } catch (error) { - wx.hideLoading(); - this.setData({ isSubmitting: false }); - - wx.showToast({ - title: '认证失败,请重试', - icon: 'error', - duration: 2000 + this.showErrorModal('网络错误', '认证请求失败,请检查网络连接后重试'); + console.error('实名认证错误:', error); + } + }, + + // 调用实名认证API + async callRealNameApi(realName, idCard) { + return new Promise((resolve, reject) => { + http.realName({ + data: { + realName: realName, // 姓名字段 + idCard: idCard // 身份证号字段 + }, + success: (res) => { + console.log('API响应:', res); + + // 根据实际API响应结构调整 + if (res.code === 200 || res.code === 0) { + resolve({ + success: true, + data: res.data || {} + }); + } else { + resolve({ + success: false, + code: res.code, + message: res.msg || '认证失败' + }); + } + }, + fail: (err) => { + reject(err); + } }); + }); + }, + + // 处理API错误 + handleApiError(result) { + console.log('API错误:', result); + + this.setData({ + isSubmitting: false, + currentStep: 1, + lineProgress2: 0 + }); + + // 根据错误码显示不同提示 + let title = '认证失败'; + let message = result.message || '请检查信息后重试'; + + // 根据不同的错误码定制提示信息 + if (result.code === 500) { + message = result.message || '服务器内部错误,请稍后重试'; + } else if (result.code === 400) { + message = result.message || '请求参数错误,请检查填写的信息'; + } else if (result.code === 401) { + message = result.message || '身份验证失败,请重新登录'; + } else if (result.code === 403) { + message = result.message || '认证信息不正确,请核对姓名和身份证号'; } + + this.showErrorModal(title, message); }, // 显示成功弹窗 @@ -381,7 +462,7 @@ Page({ this.setData({ showSuccessModal: false }); }, - // 前往首页 + // 返回 goToHome() { this.closeSuccessModal(); wx.switchTab({ diff --git a/pagesA/pages/attestation/attestation.wxml b/pagesA/pages/attestation/attestation.wxml index 574a145..a69aba6 100644 --- a/pagesA/pages/attestation/attestation.wxml +++ b/pagesA/pages/attestation/attestation.wxml @@ -258,4 +258,28 @@ + + + + + + {{errorTitle}} + + + + + + {{errorMessage}} + + + + + + + + \ No newline at end of file diff --git a/pagesA/pages/attestation/attestation.wxss b/pagesA/pages/attestation/attestation.wxss index e6c7a46..b8a23e7 100644 --- a/pagesA/pages/attestation/attestation.wxss +++ b/pagesA/pages/attestation/attestation.wxss @@ -826,7 +826,7 @@ page { .close-icon { width: 26rpx; height: 26rpx; - opacity: 0.6; + filter: brightness(0); } .modal-content { @@ -1282,4 +1282,113 @@ page { @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } +} + + +/* 错误弹窗样式 */ +.error-modal .modal-container { + background: #fff; + border-radius: 20rpx; + overflow: hidden; + animation: modalSlideUp 0.3s ease; +} + +.error-modal .modal-header { + padding: 40rpx 40rpx 20rpx; + text-align: center; + border-bottom: 2rpx solid #f0f0f0; +} + +.error-modal .error-title { + color: #ff4444; + font-size: 36rpx; + font-weight: 600; + text-align: center; + width: 100%; +} + +.error-modal .modal-content { + padding: 40rpx; + text-align: center; +} + + + +.error-modal .error-message { + color: #666; + font-size: 28rpx; + line-height: 1.6; + text-align: center; + padding: 0 20rpx; +} + +.error-modal .modal-footer { + padding: 30rpx 40rpx 40rpx; +} + +.error-modal .error-confirm { + background: linear-gradient(135deg, #ff4444, #ff6666); + color: white; + border: none; + border-radius: 50rpx; + height: 80rpx; + line-height: 80rpx; + font-size: 30rpx; + font-weight: 500; + width: 100%; + transition: all 0.3s ease; +} + +.error-modal .error-confirm:active { + opacity: 0.9; + transform: scale(0.98); +} + +/* 弹窗动画 */ +@keyframes modalSlideUp { + from { + opacity: 0; + transform: translateY(100rpx); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* 修复原有的模态框样式 */ +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; + z-index: 9999; + padding: 40rpx; +} + +.modal-overlay.show { + opacity: 1; + visibility: visible; +} + +.modal-container { + width: 600rpx; + max-width: 90vw; + background: #fff; + border-radius: 20rpx; + overflow: hidden; + transform: translateY(20rpx); + transition: transform 0.3s ease; +} + +.modal-overlay.show .modal-container { + transform: translateY(0); } \ No newline at end of file diff --git a/utils/api.js b/utils/api.js index 77cb2e5..7a36637 100644 --- a/utils/api.js +++ b/utils/api.js @@ -197,6 +197,22 @@ function experiencezd(params) { http('/vet/article/options', 'get', params) } +// 实名认证 +function realName(params) { + http('/muhu/user/auth/submit', 'post', params) +} + +// 上传修改头像 +function revise(params) { + http('/muhu/user', 'put', params) +} + +// 个人中心反馈建议 +function feedback(params) { + http('/muhu/feedback', 'post', params) +} + + @@ -205,5 +221,5 @@ export default { // 暴露接口 search,trend,feed,sales,wzd,wzdxq,wzdAdd,expertsList,recommendationList,policyeZd, recommendationXq,queryList,tipList,article,articleDetails,articleZd,policyelucidation, areaChildren,userCode,UserInfo,videoList,videoZd,videoDetails,forumList,forumAdd,forumDetails, - forumReply,commentReply,experience,experiencezd,experienceDetails + forumReply,commentReply,experience,experiencezd,experienceDetails,realName,revise,feedback } diff --git a/utils/baseUrl.js b/utils/baseUrl.js index 79483b5..3de0bb9 100644 --- a/utils/baseUrl.js +++ b/utils/baseUrl.js @@ -1,5 +1,5 @@ -var baseUrl = 'https://wx.chenhaitech.com/ymtx-prod-api' -// var baseUrl = 'http://192.168.101.109:8080' +// var baseUrl = 'https://wx.chenhaitech.com/ymtx-prod-api' +var baseUrl = 'http://192.168.101.109:8080' // var baseUrl = 'http://192.168.101.105:8082' // var baseUrl = 'http://192.168.101.111:8081' module.exports = baseUrl