普兆健康管家前端代码仓库
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.

139 lines
3.1 KiB

  1. <template>
  2. <view class="page__view">
  3. <navbar bgColor="#FFFFFF" >
  4. <image class="nav-icon" src="@/static/image/icon-nav.png" mode="widthFix"></image>
  5. </navbar>
  6. <view class="content">
  7. <report-summary></report-summary>
  8. <view class="section">
  9. <recommend-test></recommend-test>
  10. </view>
  11. <view class="section">
  12. <view class="filter">
  13. <view class="filter-item"
  14. v-for="item in filters"
  15. :key="item.value"
  16. :class="['filter-item', item.value === queryParams.status ? 'is-active' : '']"
  17. @click="onSelectFilter(item.value)"
  18. >
  19. {{ item.label }}
  20. </view>
  21. </view>
  22. <view>
  23. <report-record-card v-for="item in list" :key="item.id" :data="item"></report-record-card>
  24. </view>
  25. </view>
  26. </view>
  27. <tabber select="report" />
  28. </view>
  29. </template>
  30. <script>
  31. import mixinsList from '@/mixins/list.js'
  32. import tabber from '@/components/base/tabbar.vue'
  33. import reportSummary from '@/pages_order/report/reportSummary/index.vue'
  34. import recommendTest from '@/pages_order/report/recommendTest.vue'
  35. import reportRecordCard from '@/pages_order/report/reportRecordCard.vue'
  36. export default {
  37. mixins: [mixinsList],
  38. components: {
  39. reportSummary,
  40. recommendTest,
  41. reportRecordCard,
  42. tabber,
  43. },
  44. data() {
  45. return {
  46. filters: [
  47. { value: 1, label: '已完成的检测' },
  48. { value: 0, label: '未完成的检测' },
  49. ],
  50. queryParams: {
  51. pageNo: 1,
  52. pageSize: 10,
  53. // todo
  54. status: 1,
  55. },
  56. // todo
  57. mixinsListApi: '',
  58. }
  59. },
  60. methods: {
  61. onSelectFilter(val) {
  62. this.queryParams.status = val
  63. this.getData()
  64. },
  65. // todo: delete
  66. getData() {
  67. console.log('getData')
  68. let arr0 = [
  69. { id: '001', createTime: '2025-05-21', status: 0, score: null, change: null, tag: null },
  70. { id: '002', createTime: '2025-05-20', status: 0, score: null, change: null, tag: null },
  71. { id: '003', createTime: '2025-05-19', status: 0, score: null, change: null, tag: null },
  72. ]
  73. let arr1 = [
  74. { id: '001', createTime: '2025-05-21', status: 1, score: 65, change: 0.2, tag: '正常' },
  75. { id: '002', createTime: '2025-05-20', status: 1, score: 65, change: 0.2, tag: '正常' },
  76. { id: '003', createTime: '2025-05-19', status: 1, score: 65, change: 0.2, tag: '正常' },
  77. ]
  78. this.list = this.queryParams.status == 1 ? arr1 : arr0
  79. },
  80. },
  81. }
  82. </script>
  83. <style scoped lang="scss">
  84. .page__view {
  85. width: 100vw;
  86. min-height: 100vh;
  87. background-color: $uni-bg-color;
  88. position: relative;
  89. }
  90. .nav-icon {
  91. width: 200rpx;
  92. height: auto;
  93. vertical-align: top;
  94. }
  95. .content {
  96. padding: 0 32rpx 32rpx 32rpx;
  97. }
  98. .section {
  99. margin-top: 48rpx;
  100. }
  101. .filter {
  102. &-item {
  103. display: inline-block;
  104. padding: 12rpx 40rpx;
  105. border-radius: 32rpx;
  106. font-size: 28rpx;
  107. line-height: 1.5;
  108. font-family: PingFang SC;
  109. font-weight: 400;
  110. color: #252545;
  111. background: #E5E4EB;
  112. & + & {
  113. margin-left: 32rpx;
  114. }
  115. &.is-active {
  116. font-weight: 600;
  117. color: #FFFFFF;
  118. background: #252545;
  119. }
  120. }
  121. }
  122. </style>