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

159 lines
6.2 KiB

  1. <view class="xqbox">
  2. <!-- 页面内容 -->
  3. <scroll-view class="page-content" scroll-y refresher-enabled refresher-triggered="{{refreshing}}" bindrefresherrefresh="onRefresh">
  4. <!-- 用户问诊卡片 -->
  5. <view class="user-query-card card-enter">
  6. <!-- 用户信息 -->
  7. <view class="user-info-section">
  8. <view class="avatar-wrapper">
  9. <image class="user-avatar" src="/pages/images/tx.png"></image>
  10. </view>
  11. <view class="user-details">
  12. <view class="user-name-row">
  13. <text class="user-name">{{diagnosisData.userInfo.nickName || '用户'}}</text>
  14. <view class="status-badge {{diagnosisData.status === 'replied' ? 'status-replied' : 'status-pending'}} pulse">
  15. {{diagnosisData.status === 'replied' ? '已回复' : '待回复'}}
  16. </view>
  17. </view>
  18. <view class="pet-info">
  19. <view class="pet-info-tags">
  20. <view class="pet-tag gradient-blue">{{diagnosisData.petInfo.type}}</view>
  21. <view class="pet-tag gradient-orange">{{diagnosisData.petInfo.age}}岁</view>
  22. <view class="pet-tag gradient-pink">{{diagnosisData.petInfo.gender}}</view>
  23. </view>
  24. <view class="time-info">
  25. <text class="time-text">{{diagnosisData.createdAt}}</text>
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. <!-- 症状描述 -->
  31. <view class="symptom-section">
  32. <view class="section-header">
  33. <text class="section-title">症状描述</text>
  34. <view class="title-decoration"></view>
  35. </view>
  36. <view class="symptom-content">
  37. <view class="quote-left">
  38. <text>"</text>
  39. </view>
  40. <text class="symptom-text">{{diagnosisData.description}}</text>
  41. </view>
  42. </view>
  43. <!-- 相关图片 -->
  44. <view class="image-section" wx:if="{{diagnosisData.images && diagnosisData.images.length > 0}}">
  45. <view class="section-header">
  46. <text class="section-title">相关图片</text>
  47. <text class="image-count gradient-blue">{{diagnosisData.images.length}}张</text>
  48. </view>
  49. <scroll-view class="images-scroll" scroll-x>
  50. <view class="images-container">
  51. <block wx:for="{{diagnosisData.images}}" wx:key="*this" wx:for-index="index">
  52. <view class="image-wrapper">
  53. <image
  54. class="symptom-image"
  55. src="{{item}}"
  56. mode="aspectFill"
  57. bindtap="previewImage"
  58. data-url="{{item}}"
  59. data-urls="{{diagnosisData.images}}"
  60. ></image>
  61. <view class="image-overlay">
  62. <text class="image-index">{{index + 1}}</text>
  63. </view>
  64. </view>
  65. </block>
  66. </view>
  67. </scroll-view>
  68. </view>
  69. <!-- 卡片装饰 -->
  70. <view class="card-decoration">
  71. <view class="decoration-dot dot-1"></view>
  72. <view class="decoration-dot dot-2"></view>
  73. <view class="decoration-dot dot-3"></view>
  74. </view>
  75. </view>
  76. <!-- 兽医回复区域 -->
  77. <view class="replies-section">
  78. <view class="section-header">
  79. <text class="section-title">兽医回复</text>
  80. <view class="reply-count gradient-purple">
  81. <text class="count-number">{{diagnosisData.replies.length}}</text>
  82. <text class="count-text">条回复</text>
  83. </view>
  84. </view>
  85. <!-- 回复列表 -->
  86. <view class="replies-list">
  87. <block wx:for="{{diagnosisData.replies}}" wx:key="id" wx:for-index="index">
  88. <view class="vet-reply-card fade-in-up" style="animation-delay: {{index * 0.1}}s;">
  89. <!-- 兽医信息 -->
  90. <view class="vet-info">
  91. <view class="avatar-wrapper">
  92. <image class="vet-avatar" src="/pages/images/tx.png"></image>
  93. <view class="vet-verified"></view>
  94. </view>
  95. <view class="vet-details">
  96. <view class="vet-name-row">
  97. <text class="vet-name">{{item.vet.name}}</text>
  98. <view class="vet-badge gradient-gold">
  99. <text class="vet-title">{{item.vet.title}}</text>
  100. </view>
  101. </view>
  102. <view class="vet-meta">
  103. <view class="meta-item">
  104. <image class="meta-icon" src="/icons/hospital.svg"></image>
  105. <text class="vet-hospital">{{item.vet.hospital}}</text>
  106. </view>
  107. <view class="meta-item">
  108. <image class="meta-icon" src="/icons/experience.svg"></image>
  109. <text class="vet-experience">{{item.vet.years}}年经验</text>
  110. </view>
  111. </view>
  112. </view>
  113. </view>
  114. <!-- 回复内容 -->
  115. <view class="reply-content">
  116. <view class="reply-bubble">
  117. <text class="reply-text">{{item.content}}</text>
  118. </view>
  119. </view>
  120. <!-- 回复底部 -->
  121. <view class="reply-footer">
  122. <view class="reply-time">
  123. <text class="time-text">{{item.createdAt}}</text>
  124. </view>
  125. </view>
  126. <!-- 回复装饰 -->
  127. <view class="reply-decoration">
  128. <image class="decoration-icon" src="/icons/star.svg"></image>
  129. </view>
  130. </view>
  131. </block>
  132. <!-- 无回复状态 -->
  133. <view wx:if="{{diagnosisData.replies.length === 0}}" class="no-replies fade-in">
  134. <image class="no-replies-icon" src="/images/waiting.png"></image>
  135. <text class="no-replies-title">等待兽医回复中</text>
  136. <text class="no-replies-desc">专业兽医通常会在24小时内为您解答</text>
  137. <view class="waiting-animation">
  138. <view class="loading-dot dot-1"></view>
  139. <view class="loading-dot dot-2"></view>
  140. <view class="loading-dot dot-3"></view>
  141. </view>
  142. </view>
  143. </view>
  144. </view>
  145. <!-- 底部安全区域 -->
  146. <view class="page-bottom"></view>
  147. </scroll-view>
  148. </view>