order.wxml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <!--order.wxml-->
  2. <view class="container">
  3. <!-- 选项卡切换 -->
  4. <view class="tab-bar">
  5. <view class="tab-item {{currentTab === 0 ? 'active' : ''}}" bindtap="switchTab" data-tab="0">
  6. <text>医院选择</text>
  7. </view>
  8. <view class="tab-item {{currentTab === 1 ? 'active' : ''}}" bindtap="switchTab" data-tab="1">
  9. <text>药品比价</text>
  10. </view>
  11. </view>
  12. <!-- 医院选择页面 -->
  13. <view class="tab-content" wx:if="{{currentTab === 0}}">
  14. <!-- 搜索框 -->
  15. <view class="search-section">
  16. <view class="search-box">
  17. <image class="search-icon" src="/images/search-icon.png"></image>
  18. <input class="search-input" placeholder="搜索医院名称" bindinput="onHospitalSearch" value="{{hospitalKeyword}}" />
  19. </view>
  20. </view>
  21. <!-- 医院列表 -->
  22. <view class="hospital-list">
  23. <view class="hospital-item" wx:for="{{filteredHospitals}}" wx:key="id" bindtap="selectHospital" data-hospital="{{item}}">
  24. <image class="hospital-image" src="{{item.image}}" mode="aspectFill"></image>
  25. <view class="hospital-info">
  26. <text class="hospital-name">{{item.name}}</text>
  27. <text class="hospital-address">{{item.address}}</text>
  28. <view class="hospital-details">
  29. <text class="rating">{{item.rating}}分</text>
  30. <text class="distance">{{item.distance}}</text>
  31. <text class="case-count">{{item.cases.length}}个病例单</text>
  32. </view>
  33. </view>
  34. </view>
  35. </view>
  36. </view>
  37. <!-- 药品比价页面 -->
  38. <view class="tab-content" wx:if="{{currentTab === 1}}">
  39. <!-- 搜索框 -->
  40. <view class="search-section">
  41. <view class="search-box">
  42. <image class="search-icon" src="/images/search-icon.png"></image>
  43. <input class="search-input" placeholder="输入药品名称" bindinput="onMedicineSearch" value="{{medicineKeyword}}" />
  44. </view>
  45. </view>
  46. <!-- 药品比价结果 -->
  47. <view class="price-comparison" wx:if="{{medicineKeyword}}">
  48. <view class="medicine-title">
  49. <text>药品:{{medicineKeyword}}</text>
  50. </view>
  51. <view class="price-list">
  52. <view class="price-item" wx:for="{{priceResults}}" wx:key="hospital" bindtap="selectByPrice" data-price="{{item}}">
  53. <view class="hospital-info">
  54. <text class="hospital-name">{{item.hospital}}</text>
  55. <text class="price">¥{{item.price}}</text>
  56. </view>
  57. <view class="action">
  58. <text class="select-btn">选择</text>
  59. </view>
  60. </view>
  61. </view>
  62. </view>
  63. <!-- 热门药品推荐 -->
  64. <view class="hot-medicines" wx:if="{{!medicineKeyword}}">
  65. <view class="section-title">
  66. <text>热门药品</text>
  67. </view>
  68. <view class="medicine-grid">
  69. <view class="medicine-item" wx:for="{{hotMedicines}}" wx:key="name" bindtap="selectHotMedicine" data-medicine="{{item.name}}">
  70. <image class="medicine-icon" src="{{item.icon || '/images/medicine-default.png'}}" mode="aspectFit"></image>
  71. <view class="medicine-info">
  72. <text class="medicine-name">{{item.name}}</text>
  73. <text class="medicine-price">¥{{item.minPrice}}起</text>
  74. </view>
  75. </view>
  76. </view>
  77. </view>
  78. </view>
  79. <!-- 病例单选择模态框 -->
  80. <view class="modal" wx:if="{{showCaseModal}}">
  81. <view class="modal-content">
  82. <view class="modal-header">
  83. <text class="modal-title">选择病例单</text>
  84. <text class="modal-close" bindtap="closeCaseModal">×</text>
  85. </view>
  86. <view class="case-list">
  87. <view class="case-item" wx:for="{{selectedHospital.cases}}" wx:key="id" bindtap="selectCase" data-case="{{item}}">
  88. <view class="case-info">
  89. <text class="case-date">{{item.date}}</text>
  90. <text class="case-doctor">{{item.doctor}} - {{item.department}}</text>
  91. <text class="case-diagnosis">诊断:{{item.diagnosis}}</text>
  92. </view>
  93. <view class="case-arrow">
  94. <text>></text>
  95. </view>
  96. </view>
  97. </view>
  98. </view>
  99. </view>
  100. <!-- 药品选择模态框 -->
  101. <view class="modal" wx:if="{{showMedicineModal}}">
  102. <view class="modal-content">
  103. <view class="modal-header">
  104. <text class="modal-title">选择药品</text>
  105. <text class="modal-close" bindtap="closeMedicineModal">×</text>
  106. </view>
  107. <view class="medicine-list">
  108. <view class="medicine-item" wx:for="{{selectedCase.medicines}}" wx:key="id">
  109. <view class="medicine-info">
  110. <text class="medicine-name">{{item.name}}</text>
  111. <text class="medicine-price">¥{{item.price}}</text>
  112. </view>
  113. <view class="medicine-action">
  114. <text class="quantity-control">
  115. <text class="btn minus" bindtap="decreaseQuantity" data-medicine="{{item}}">-</text>
  116. <text class="quantity">{{item.quantity || 0}}</text>
  117. <text class="btn plus" bindtap="increaseQuantity" data-medicine="{{item}}">+</text>
  118. </text>
  119. </view>
  120. </view>
  121. </view>
  122. <!-- 送货地址 -->
  123. <view class="address-section">
  124. <view class="address-title">
  125. <text>送货地址</text>
  126. </view>
  127. <view class="address-input-wrapper">
  128. <input
  129. class="address-input"
  130. placeholder="请输入送货地址"
  131. value="{{deliveryAddress}}"
  132. bindinput="onAddressInput"
  133. maxlength="100"
  134. />
  135. <view class="address-actions">
  136. <text class="address-btn" bindtap="useDefaultAddress">使用默认地址</text>
  137. </view>
  138. </view>
  139. </view>
  140. <view class="modal-footer">
  141. <view class="total-price">
  142. <text>总计:¥{{totalPrice}}</text>
  143. </view>
  144. <view class="action-buttons">
  145. <button class="btn cancel" bindtap="closeMedicineModal">取消</button>
  146. <button class="btn confirm" bindtap="confirmOrder">确认下单</button>
  147. </view>
  148. </view>
  149. </view>
  150. </view>
  151. <!-- 药品比价下单确认模态框 -->
  152. <view class="modal" wx:if="{{showPriceConfirmModal}}">
  153. <view class="modal-content">
  154. <view class="modal-header">
  155. <text class="modal-title">确认下单</text>
  156. <text class="modal-close" bindtap="closePriceConfirmModal">×</text>
  157. </view>
  158. <view class="price-confirm-info">
  159. <view class="confirm-item">
  160. <text class="confirm-label">药品:</text>
  161. <text class="confirm-value">{{selectedPriceItem.medicine}}</text>
  162. </view>
  163. <view class="confirm-item">
  164. <text class="confirm-label">医院:</text>
  165. <text class="confirm-value">{{selectedPriceItem.hospital}}</text>
  166. </view>
  167. <view class="confirm-item">
  168. <text class="confirm-label">价格:</text>
  169. <text class="confirm-value price">¥{{selectedPriceItem.price}}</text>
  170. </view>
  171. </view>
  172. <!-- 送货地址 -->
  173. <view class="address-section">
  174. <view class="address-title">
  175. <text>送货地址</text>
  176. </view>
  177. <view class="address-input-wrapper">
  178. <input
  179. class="address-input"
  180. placeholder="请输入送货地址"
  181. value="{{deliveryAddress}}"
  182. bindinput="onAddressInput"
  183. maxlength="100"
  184. />
  185. <view class="address-actions">
  186. <text class="address-btn" bindtap="useDefaultAddress">使用默认地址</text>
  187. </view>
  188. </view>
  189. </view>
  190. <view class="modal-footer">
  191. <view class="action-buttons">
  192. <button class="btn cancel" bindtap="closePriceConfirmModal">取消</button>
  193. <button class="btn confirm" bindtap="confirmPriceOrder">确认下单</button>
  194. </view>
  195. </view>
  196. </view>
  197. </view>
  198. </view>