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

170 lines
5.9 KiB

  1. <view class="personal-center">
  2. <!-- 用户信息区域 -->
  3. <view class="user-section fade-in">
  4. <view class="user-card">
  5. <!-- 头像 -->
  6. <button class="avatar-btn" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">
  7. <image class="avatar" src="{{baseUrl + userInfo.user.avatar || '/pages/images/tx.png'}}" mode="aspectFill"></image>
  8. <view class="avatar-edit-tip">点击修改</view>
  9. </button>
  10. <!-- 用户信息 -->
  11. <view class="user-info">
  12. <view class="nickname-section" bindtap="editNickname">
  13. <text class="nickname">{{userInfo.user.nickName || '微信用户'}}</text>
  14. <image src="/pages/images/bj.png"></image>
  15. </view>
  16. <view class="user-meta">
  17. <view class="auth-tag {{userInfo.isVerified ? 'verified' : ''}}" bindtap="goToAuth">
  18. <text>{{userInfo.authStatus ? '已认证' : '未认证'}}</text>
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. </view>
  24. <!-- 消息通知 -->
  25. <view class="section-card fade-in-delay-1">
  26. <view class="section-header">
  27. <text class="section-title">消息通知</text>
  28. </view>
  29. <view class="message-row">
  30. <view class="message-item" bindtap="goToConsultation">
  31. <view class="message-icon-wrapper">
  32. <image class="message-icon" src="/pages/images/wz.png" mode=""></image>
  33. </view>
  34. <text class="message-label">问诊消息</text>
  35. </view>
  36. <view class="divider"></view>
  37. <view class="message-item" bindtap="goToQA">
  38. <view class="message-icon-wrapper">
  39. <image class="message-icon" src="/pages/images/wdxx.png" mode=""></image>
  40. </view>
  41. <text class="message-label">问答消息</text>
  42. </view>
  43. </view>
  44. </view>
  45. <!-- 功能列表 -->
  46. <view class="section-card fade-in-delay-2">
  47. <view class="function-list">
  48. <!-- 实名认证 -->
  49. <view class="function-item" bindtap="goToAuth">
  50. <view class="item-left">
  51. <image class="item-icon" src="/pages/images/smrz.png"></image>
  52. <text class="item-title">实名认证</text>
  53. </view>
  54. <view class="item-status {{userInfo.isVerified ? 'verified' : ''}}">
  55. {{userInfo.authStatus ? '已认证' : '去认证'}}
  56. </view>
  57. </view>
  58. <!-- 反馈建议 -->
  59. <view class="function-item" bindtap="showFeedback">
  60. <view class="item-left">
  61. <image class="item-icon" src="/pages/images/fkjy.png"></image>
  62. <text class="item-title">反馈建议</text>
  63. </view>
  64. </view>
  65. <!-- 退出登录 -->
  66. <view class="function-item" bindtap="showLogoutConfirm">
  67. <view class="item-left">
  68. <image class="item-icon" src="/pages/images/logout.png"></image>
  69. <text class="item-title logout-title">退出登录</text>
  70. </view>
  71. </view>
  72. </view>
  73. </view>
  74. <!-- 反馈建议弹窗 -->
  75. <view class="feedback-modal {{showFeedbackModal ? 'show' : ''}}">
  76. <view class="modal-mask" bindtap="hideFeedback"></view>
  77. <view class="modal-content">
  78. <view class="modal-header">
  79. <text class="modal-title">反馈建议</text>
  80. <view class="modal-close" bindtap="hideFeedback">
  81. <image src="/pagesA/images/ch.png"></image>
  82. </view>
  83. </view>
  84. <view class="modal-body">
  85. <!-- 修复iOS输入框问题:添加focus控制并增加条件渲染 -->
  86. <textarea
  87. class="feedback-input"
  88. placeholder="请输入您的反馈或建议..."
  89. placeholder-class="placeholder"
  90. value="{{feedbackContent}}"
  91. bindinput="onFeedbackInput"
  92. maxlength="200"
  93. auto-height
  94. focus="{{showFeedbackModal && textareaFocus}}"
  95. disabled="{{!showFeedbackModal}}"
  96. confirm-type="done"
  97. show-confirm-bar="{{false}}"
  98. ></textarea>
  99. <view class="char-count">
  100. <text class="current">{{feedbackContent.length}}</text>
  101. <text class="total">/200</text>
  102. </view>
  103. </view>
  104. <view class="modal-footer">
  105. <button class="submit-btn {{canSubmit ? 'active' : ''}}" bindtap="submitFeedback" disabled="{{!canSubmit}}">
  106. {{isSubmitting ? '提交中...' : '提交'}}
  107. </button>
  108. </view>
  109. </view>
  110. </view>
  111. <!-- 修改昵称弹窗 -->
  112. <view class="nickname-modal {{showNicknameModal ? 'show' : ''}}">
  113. <view class="modal-mask" bindtap="hideNicknameModal"></view>
  114. <view class="modal-content">
  115. <view class="modal-header">
  116. <text class="modal-title">修改昵称</text>
  117. </view>
  118. <view class="modal-body">
  119. <input
  120. class="nickname-input"
  121. type="text"
  122. placeholder="请输入昵称"
  123. value="{{newNickname}}"
  124. bindinput="onNicknameInput"
  125. maxlength="10"
  126. focus="{{showNicknameModal}}"
  127. confirm-type="done"
  128. />
  129. <text class="input-tip">最多10个字符</text>
  130. </view>
  131. <view class="modal-footer">
  132. <button class="cancel-btn" bindtap="hideNicknameModal">取消</button>
  133. <button class="confirm-btn" bindtap="saveNickname">确定</button>
  134. </view>
  135. </view>
  136. </view>
  137. <!-- 退出登录确认弹窗 -->
  138. <view class="logout-modal {{showLogoutModal ? 'show' : ''}}">
  139. <view class="modal-mask" bindtap="hideLogoutModal"></view>
  140. <view class="modal-content">
  141. <view class="logout-modal-body">
  142. <text class="logout-title">确认退出登录?</text>
  143. <text class="logout-desc">退出后需要重新登录才能使用完整功能</text>
  144. </view>
  145. <view class="logout-modal-footer">
  146. <button class="logout-cancel-btn" bindtap="hideLogoutModal">取消</button>
  147. <button class="logout-confirm-btn" bindtap="doLogout">退出登录</button>
  148. </view>
  149. </view>
  150. </view>
  151. <!-- 提示信息 -->
  152. <view class="toast {{showToast ? 'show' : ''}}">
  153. <text>{{toastText}}</text>
  154. </view>
  155. </view>