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

146 lines
4.5 KiB

  1. <view class="personal-center">
  2. <!-- 顶部背景 -->
  3. <view class="header-bg"></view>
  4. <!-- 用户信息卡片 -->
  5. <view class="user-card" bindtap="onTapUserInfo">
  6. <view class="user-info">
  7. <view class="avatar-section">
  8. <image class="avatar" src="{{userInfo.avatar || '/assets/images/avatar-default.png'}}" mode="aspectFill"></image>
  9. <view class="avatar-badge" wx:if="{{userInfo.isVerified}}">
  10. <text class="iconfont icon-check-circle"></text>
  11. </view>
  12. </view>
  13. <view class="user-details">
  14. <view class="user-name">
  15. <text class="name">{{userInfo.nickname || '点击登录'}}</text>
  16. <text class="iconfont icon-edit" wx:if="{{userInfo.nickname}}"></text>
  17. </view>
  18. <view class="user-phone">
  19. <text class="iconfont icon-phone"></text>
  20. <text>{{userInfo.phone || '未绑定手机号'}}</text>
  21. </view>
  22. <view class="user-tags">
  23. <view class="tag" wx:if="{{userInfo.isDoctor}}">
  24. <text class="iconfont icon-stethoscope"></text>
  25. <text>医生认证</text>
  26. </view>
  27. <view class="tag" wx:if="{{userInfo.isVerified}}">
  28. <text class="iconfont icon-shield-check"></text>
  29. <text>已实名</text>
  30. </view>
  31. </view>
  32. </view>
  33. </view>
  34. <view class="card-arrow">
  35. <text class="iconfont icon-chevron-right"></text>
  36. </view>
  37. </view>
  38. <!-- 统计数据 -->
  39. <view class="stats-grid">
  40. <view
  41. wx:for="{{stats}}"
  42. wx:key="id"
  43. class="stat-item"
  44. bindtap="onTapStat"
  45. data-id="{{item.id}}"
  46. >
  47. <view class="stat-icon" style="color: {{item.color}};">
  48. <text class="iconfont icon-{{item.icon}}"></text>
  49. </view>
  50. <view class="stat-value">{{item.value}}</view>
  51. <view class="stat-name">{{item.name}}</view>
  52. </view>
  53. </view>
  54. <!-- 快捷操作 -->
  55. <view class="quick-actions">
  56. <view class="section-title">
  57. <text class="iconfont icon-zap"></text>
  58. <text>快捷操作</text>
  59. </view>
  60. <view class="actions-grid">
  61. <view
  62. wx:for="{{quickActions}}"
  63. wx:key="id"
  64. class="action-item"
  65. bindtap="onTapQuickAction"
  66. data-id="{{item.id}}"
  67. >
  68. <view class="action-icon" style="background: {{item.color}};">
  69. <text class="iconfont icon-{{item.icon}}"></text>
  70. </view>
  71. <view class="action-name">{{item.name}}</view>
  72. </view>
  73. </view>
  74. </view>
  75. <!-- 功能模块 -->
  76. <view class="modules">
  77. <block wx:for="{{modules}}" wx:key="id">
  78. <view class="module-section">
  79. <view class="section-title">
  80. <text class="iconfont icon-{{item.icon}}"></text>
  81. <text>{{item.name}}</text>
  82. </view>
  83. <view class="module-items">
  84. <view
  85. wx:for="{{item.items}}"
  86. wx:key="id"
  87. class="module-item"
  88. bindtap="onTapMenuItem"
  89. data-moduleid="{{moduleId}}"
  90. data-itemid="{{item.id}}"
  91. >
  92. <view class="item-left">
  93. <view class="item-icon">
  94. <text class="iconfont icon-{{item.icon}}"></text>
  95. </view>
  96. <view class="item-info">
  97. <view class="item-name">{{item.name}}</view>
  98. <view class="item-desc">{{item.desc}}</view>
  99. <view
  100. class="item-status {{item.statusColor || ''}}"
  101. wx:if="{{item.status}}"
  102. >
  103. {{item.status}}
  104. </view>
  105. </view>
  106. </view>
  107. <view class="item-right">
  108. <view class="badge" wx:if="{{item.badge > 0}}">
  109. {{item.badge > 99 ? '99+' : item.badge}}
  110. </view>
  111. <text class="iconfont icon-chevron-right" wx:if="{{item.arrow}}"></text>
  112. </view>
  113. </view>
  114. </view>
  115. </view>
  116. </block>
  117. </view>
  118. <!-- 底部操作 -->
  119. <view class="bottom-actions">
  120. <view class="system-info">
  121. <text>版本 {{systemInfo.version}}</text>
  122. <text>最后登录 {{systemInfo.lastLogin}}</text>
  123. </view>
  124. <view class="action-buttons">
  125. <button class="btn btn-setting" bindtap="onTapSettings">
  126. <text class="iconfont icon-settings"></text>
  127. <text>设置</text>
  128. </button>
  129. <button class="btn btn-logout" bindtap="onLogout">
  130. <text class="iconfont icon-log-out"></text>
  131. <text>退出登录</text>
  132. </button>
  133. </view>
  134. </view>
  135. </view>