home.wxml 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. v<!--pages/home/home.wxml-->
  2. <view class="fullscreen-bg">
  3. <t-navbar title="中医健康管家" t-class-title="nav-title" />
  4. <scroll-view class="page-scroll__container" type="list" scroll-y style="height: {{pageHeight}};">
  5. <view class="follow-container">
  6. <view class="follow-box" bind:tap="showFollowPopup"><image src="../../assets/bg/icon_notice@3x.png" mode="heightFix" class="notice-icon" /> <view class="pieces">{{popupList.length}}</view> <view class="follow-text">诊疗随访提醒</view></view>
  7. <view class="tool-bar-wrapper">
  8. <view class="tool" wx:if="{{location.description}}">
  9. <text>{{location.description}}</text>
  10. </view>
  11. <view class="tool" wx:if="{{solarTerms.description}}">
  12. <text>{{solarTerms.description}}</text>
  13. </view>
  14. </view>
  15. </view>
  16. <view class="body-img">
  17. <view class="header-container">
  18. <view class="user-info-wrapper" wx:if="{{patient}}">
  19. <view class="user-box">
  20. <text class="user-name">{{patient.name}}</text>
  21. <t-icon color="{{patientIconColor}}" name="{{patientIcon}}" size="20px"></t-icon>
  22. </view>
  23. <view>
  24. <text class="user-age" wx:if="{{patient.age}}">{{patient.age}}岁</text>
  25. <text class="user-description" overflow="fade" max-lines="1">{{patientDescription}}</text>
  26. </view>
  27. </view>
  28. </view>
  29. <view class="steps-container">
  30. <vertical-steps statusList="{{statusList}}" dataset="{{healthReport.data}}" bind:position="onBodyModel" />
  31. <view class="warn-box" wx:if="{{healthIndex.data.length>0}}">
  32. <image src="../../assets/bg/icon_warning@3x.png" class="warn-img" />
  33. <view class="right-box" bind:tap="tabValue">
  34. <view style="margin-bottom:10rpx" wx:for="{{healthIndex.data}}" wx:key="{{item.quotaId}}">{{item.name}}</view>
  35. </view>
  36. </view>
  37. </view>
  38. <view class="report-container" bind:tap="toReportPage" wx:if="{{healthReport.data.reportTime}}">
  39. <view class="report-box">
  40. <view><image src="../../assets/bg/icon_file@3x.png" class="report-img" /> </view>
  41. <view class="text-box" wx:if="{{healthReport.data.reportTime}}"><view class="text-one">健康分析报告</view><view class="text-two">日期:{{healthReport.data.reportTime}}</view></view>
  42. </view>
  43. </view>
  44. </view>
  45. <view class="care-container" wx:if="{{displayList.length>0}}">
  46. <view class="care-box">
  47. <view class="care-header">
  48. <image src="../../assets/icon/icon_plan@3x.png" class="care-icon"/>
  49. <text>调养计划</text>
  50. </view>
  51. <view class="care-list">
  52. <block wx:for="{{displayList}}" wx:key="id">
  53. <view class="care-item">
  54. <view class="item-main" bindtap="toggleItem"data-index="{{index}}">
  55. <text class="dot"></text>
  56. <text class="item-title">{{item.conditioningProgramName}}</text>
  57. <text class="item-next-time" wx:if="{{item.arrangeDate}}">下一次时间:{{item.arrangeDate}}</text>
  58. <t-icon name="{{item.expanded ? 'chevron-up' : 'chevron-down'}}" size="24rpx" class="item-arrow" color="#C0C4CC" />
  59. </view>
  60. <!-- 这里放详细内容 -->
  61. <view class="item-detail" wx:if="{{item.expanded}}">
  62. <image src="{{item.photo}}" class="detail-image" wx:if="{{item.photo}}" />
  63. <view class="item-box">
  64. <view class="flex" wx:if="{{item.arrangeDate}}"><text>下一次时间:</text><text>{{item.arrangeDate}}</text></view>
  65. <view class="flex">已完成:<text style="color:#2ec4b6">{{item.finishCount}}次</text><text style="margin:0 5px">/</text>{{item.totalMeasure}}次
  66. <view catchtap="onRecord" data-id="{{item.id}}" wx:if="{{item.isOffline==='Y'}}" class="verify-record">核销记录</view>
  67. <view catchtap="pushCard" data-id="{{item.id}}" wx:else class="verify-record">打卡记录</view></view>
  68. <view>频次:每{{item.frequencyType}}天{{item.frequencyMeasure}}{{item.convertUnit}}</view>
  69. <view>开具医生:{{item.operateBy}}</view>
  70. <view wx:if="{{item.conditioningProgramSupplierName}}">机构:{{item.conditioningProgramSupplierName}}</view>
  71. </view>
  72. </view>
  73. </view>
  74. </block>
  75. </view>
  76. <view class="expand-all" wx:if="{{careList.length > 4}}" bindtap="toggleAll">
  77. <t-icon name="{{allExpanded ? 'chevron-up' : 'chevron-down'}}" size="32rpx" class="expand-arrow" color="#C0C4CC" />
  78. </view>
  79. </view>
  80. </view>
  81. <view class="science-list-wrapper" wx:if="{{scienceList.length}}">
  82. <view class="list-title" bind:tap="toSciencePage">
  83. <view class="missionary">健康宣教</view>
  84. <view class="title-box serch">
  85. <text>查询</text>
  86. <t-icon name="chevron-right-double"></t-icon>
  87. </view>
  88. </view>
  89. <science-card wx:for="{{scienceList}}" wx:key="id" item="{{item}}" index="{{index}}"></science-card>
  90. </view>
  91. <science-card style="display: none;"><!--?--></science-card>
  92. <view style="height: {{container.safeBottomOffset}}px;flex: none;"></view>
  93. </scroll-view>
  94. </view>
  95. <!-- 将 tabbar 移到最外层 -->
  96. <view class="tabbar-container">
  97. <tabbar tabbarValue="{{tabbarValue}}" patientId="{{patient.patientId}}"></tabbar>
  98. </view>
  99. <view wx:if="{{sheet}}" class="draggable-sheet-shade" catch:tap="hideDraggableSheet"></view>
  100. <draggable-sheet class="draggable-sheet-wrapper" style="height: {{container.height}}px;" initial-child-size="0" min-child-size="0" max-child-size="1" snap="{{true}}" snap-sizes="{{[0.5]}}" worklet:onsizeupdate="onDraggableSizeUpdate">
  101. <scroll-view class="scrollable draggable-sheet-container" type="custom" scroll-y associative-container="draggable-sheet" show-scrollbar="{{false}}" bounces="{{false}}">
  102. <sticky-section>
  103. <sticky-header>
  104. <view class="draggable-sheet-bar">
  105. <view class="indicator" />
  106. </view>
  107. <view wx:if="{{position.CT}}" style="text-align: center;">预警信息</view>
  108. </sticky-header>
  109. <block wx:if="{{position.LT}}">
  110. <view class="card-wrapper" wx:for="{{position.LT}}" wx:key="*this">
  111. <t-cell wx:if="{{item.title}}" t-class="card-header cell-border-gradient" title="{{item.title}}" />
  112. <view wx:if="{{item.description}}" class="card-body">&emsp;&emsp;{{item.description}}</view>
  113. </view>
  114. </block>
  115. <block wx:if="{{position.RB}}">
  116. <view class="card-wrapper">
  117. <t-cell t-class="card-header cell-border-gradient" title="中医证素解释" />
  118. <view class="card-body">
  119. <view class="row" wx:for="{{position.RB.factorItems}}" wx:key="*this">
  120. <view class="primary">{{item.factorItemName}}</view>
  121. <view style="margin-top: 4px;" wx:if="{{item.factorItemDescription}}">&emsp;&emsp;{{item.factorItemDescription}}</view>
  122. </view>
  123. </view>
  124. </view>
  125. <view class="card-wrapper">
  126. <t-cell t-class="card-header cell-border-gradient" title="中医证型解释" />
  127. <view class="card-body">
  128. <view class="row" wx:for="{{position.RB.diagnoseSyndromes}}" wx:key="*this">
  129. <view class="primary">{{item.diagnoseSyndromeName}}</view>
  130. <view style="margin-top: 4px;" wx:if="{{item.diagnoseSyndromeAnalysis}}">&emsp;&emsp;{{item.diagnoseSyndromeAnalysis}}</view>
  131. </view>
  132. </view>
  133. </view>
  134. </block>
  135. <block wx:if="{{position.RT}}">
  136. <view class="card-wrapper">
  137. <t-cell t-class="card-header cell-border-gradient" title="{{position.RT.constitutionGroupName}}" />
  138. <view class="card-body">
  139. <span class="row">{{position.RT.constitutionGroupDefinition}}</span>
  140. </view>
  141. </view>
  142. <view class="card-wrapper">
  143. <t-cell t-class="card-header cell-border-gradient" title="舌象解释" />
  144. <view class="card-body">
  145. <view>&emsp;&emsp;{{position.RT.tongueAnalysisResult}}</view>
  146. <view class="picture-wrapper">
  147. <image src="{{position.RT.upImg}}" mode="aspectFit" />
  148. <image src="{{position.RT.downImg}}" mode="aspectFit" />
  149. </view>
  150. </view>
  151. </view>
  152. <view class="card-wrapper">
  153. <t-cell t-class="card-header cell-border-gradient" title="面象解释" />
  154. <view class="card-body">
  155. <view>&emsp;&emsp;{{position.RT.faceAnalysisResult}}</view>
  156. <view wx:if="{{position.RT.faceImg}}" class="picture-wrapper">
  157. <image src="{{position.RT.faceImg}}" mode="aspectFit" />
  158. </view>
  159. </view>
  160. </view>
  161. </block>
  162. <block wx:if="{{position.CT}}">
  163. <view class="CT row" wx:for="{{position.CT}}" wx:key="*this">{{item}}</view>
  164. </block>
  165. <view class="bottom-wrapper">
  166. <form-button index="2" bind:tap="hideDraggableSheet"></form-button>
  167. </view>
  168. </sticky-section>
  169. </scroll-view>
  170. <tabbar tabbarValue="{{tabbarValue}}" patientId="{{patient.patientId}}"></tabbar>
  171. <t-popup
  172. visible="{{isShowPopup}}"
  173. usingCustomNavbar
  174. bind:visible-change="onVisibleChange"
  175. placement="center"
  176. >
  177. <view class="popup-container">
  178. <view class="popup-block">
  179. <scroll-view class="scroll_live" scroll-y="{{true}}" show-scrollbar="{{false}}" enhanced="{{true}}" animation="{{animationData}}" >
  180. <view class="popup-item" wx:for="{{popupList}}" wx:key="{{id}}">
  181. <text class="popup-text">{{index+1}}.{{item.title}}</text>
  182. <text class="popup-action" bind:tap="goComplete" data-page="{{item.page}}"
  183. data-id="{{item.pendingWorkId}}"
  184. data-title="{{item.title}}"
  185. >{{item.button}}</text>
  186. </view>
  187. </scroll-view>
  188. </view>
  189. <t-icon t-class="close-btn" name="close-circle" size="64rpx" color="#fff" bind:tap="onClose" />
  190. </view>
  191. </t-popup>
  192. </draggable-sheet>