wenningning 1 년 전
부모
커밋
69bb458bef

+ 1 - 1
sleep/api/device_member_bind.js

@@ -54,7 +54,7 @@ export function editDevice(params, id){
         params
     })
 }
-// 绑定UU守护套包
+// 绑定守护之影套包
 export function bindUUSH(params){
     return request({
         url: `care/care_device_member_bind/bind_UUSH`,

+ 116 - 8
sleep/pages/log/report/friendReport.vue

@@ -62,7 +62,7 @@
                 <view class="flex-col items-center text-data-sum">
                   <view class="title-data-sum">睡眠总时长</view>
                   <view class="flex-row justify-evenly items-baseline group_5">
-                    <text class="font_5">{{ formateSeconds(sleepReportFrom.total_duration) }}</text>
+                    <text class="font_5">{{ formateSeconds(sleepReportFrom.total_duration, 0) }}</text>
                   </view>
                 </view>
               </view>
@@ -100,7 +100,7 @@
                     <text class="font_3">深睡时长</text>
                   </view>
                   <view class="flex-row items-baseline group_6 space-x-6">
-                    <text class="font_4">{{ formateSeconds(sleepReportFrom.deep_duration) }}</text>
+                    <text class="font_4">{{ formateSeconds(sleepReportFrom.deep_duration, 0) }}</text>
                   </view>
                 </view>
                 <view class="flex-col section_6 view space-y-12">
@@ -132,7 +132,7 @@
                     <text class="font_3">在床时间</text>
                   </view>
                   <view class="flex-row items-baseline group_5">
-                    <text class="font_4">{{ formateSeconds(sleepReportFrom.inbed_duration) }}</text>
+                    <text class="font_4">{{ formateSeconds(sleepReportFrom.inbed_duration, 0) }}</text>
                   </view>
                 </view>
 
@@ -353,6 +353,44 @@
                     </view>
                   </view>
                 </view>
+
+                <view class="flex-col justify-start report_breath">
+                  <view class="flex-col justify-start">
+                    <view class="flex-row items-center group_11 space-x-10 pos_33">
+                      <image class="image_8" src="../../../static/report/reportIconMoon.png" />
+                      <text class="font_3">深浅睡眠</text>
+                      <text @click="handleClickBreath(1)" class="margin-left myFont">详情>></text>
+                      <!--                      <image @click="handleClickBreath(2)" class="image_11" src="../../static/report/reportIconWhy.png" />-->
+                    </view>
+                  </view>
+                  <view class="flex-col pos_34 report_heart">
+                    <view class="flex-col group_15">
+                      <view class="flex-row justify-between report-sleep items-center">
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">清醒</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.awake_duration, 1) }}</text>
+                        </view>
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">浅睡</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.light_duration, 1) }}</text>
+                        </view>
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">中睡</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.in_duration, 1) }}</text>
+                        </view>
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">深睡</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.deep_duration, 1) }}</text>
+                        </view>
+                      </view>
+                    </view>
+                    <view class="report_breath_chart">
+                      <view class="echarts-wrap">
+                        <mpvue-echarts class="ec-canvas" canvasId="canvasChart-7" ref="refChart-7" @onInit="onInit1"></mpvue-echarts>
+                      </view>
+                    </view>
+                  </view>
+                </view>
               </view>
             </view>
           </view>
@@ -460,6 +498,9 @@ export default {
       _this.sleepReportList = res
       if (res.length > 0) {
         _this.sleepReportFrom = Object.assign({}, res[0])
+        if (!_this.params.unionId) {
+          _this.params.unionId = _this.sleepReportFrom.member_union_id
+        }
         _this.sleepReportFrom.report_content = JSON.parse(_this.sleepReportFrom.report_content)
         console.log(_this.sleepReportFrom)
         _this.sleepReportList = res
@@ -570,18 +611,27 @@ export default {
         _this.nowChart("refChart-4", 4, data.report_content.dt_arr, data.report_content.hx_arr)
         _this.nowChart("refChart-5", 0, data.report_content.dt_arr, data.report_content.snoring_arr)
         _this.nowChart("refChart-6", 6, data.report_content.dt_arr, data.report_content.hxstop_arr)
+        _this.nowChart("refChart-7", -1, data.report_content.dt_arr, data.report_content.sleep_arr)
       }, 800)
     },
     // 将分转化为时分
-    formateSeconds(endTime) {
+    formateSeconds(endTime, type) {
       let secondTime = endTime//将传入的秒的值转化为Number
+      let hourStr, minuteStr
+      if (type === 0) {
+        hourStr = '小时'
+        minuteStr = '分钟'
+      } else {
+        hourStr = '时'
+        minuteStr = '分'
+      }
       let h = 0// 初始化小时
       if (secondTime > 60) {//如果秒数大于60,将秒数转换成整数
         h = parseInt(secondTime / 60)//获取小时,获取分钟除以60,得到整数小时
         secondTime = parseInt(secondTime % 60) //获取小时后取佘的分,获取分钟除以60取佘的分
-        return h + '小时' + secondTime + '分钟'
+        return h + hourStr + secondTime + minuteStr
       } else {
-        return secondTime + '分钟'
+        return secondTime + minuteStr
       }
     },
     onInit1(e) {
@@ -602,6 +652,9 @@ export default {
       } else {
         options.yAxis = this.getOptionsY2()
       }
+      if (type === -1) {
+        options.series[0].areaStyle = {}
+      }
       myChart.setOption(options)
     },
     getOptions(xData, yData) {
@@ -661,11 +714,17 @@ export default {
       }
     },
     getOptionsY1(type) {
+      let min = 0, max = 1
+      if (type === -1) {
+        min = 0
+        max = 'dataMax'
+      }
       return {
         type: 'value',
         // boundaryGap: [0, '100%'],
-        min: 0,
-        max: 1, // dataMax取数据在该轴上的最大值作为最大刻度
+        min: min,
+        max: max, // dataMax取数据在该轴上的最大值作为最大刻度
+        splitNumber: 4,
         minInterval: 1,
         splitLine: {
           show: false, // 是否显示分隔线
@@ -683,6 +742,26 @@ export default {
         axisLabel: {
           formatter: function (value, index) {
             switch (type) {
+              case -1:
+                let str = ''
+                console.log('value===', value)
+                switch (value) {
+                  case 0:
+                    str = '清醒'
+                    break
+                  case 10:
+                    str = '浅睡'
+                    break
+                  case 20:
+                    str = '中睡'
+                    break
+                  case 30:
+                    str = '深睡'
+                    break
+                  default:
+                    break
+                }
+                return str
               case 0:
                 return value === 0 ? '睡眠' : '打鼾'
               case 1:
@@ -949,6 +1028,35 @@ export default {
   position: absolute;
   bottom: 0
 }
+.report-sleep {
+  //position: absolute;
+  top: 3rem;
+  width: 100%;
+  padding: 0.3rem;
+
+  .item-sleep {
+
+    .item-sleep-title {
+      font-size: 14px;
+      font-weight: 400;
+      letter-spacing: 0px;
+      line-height: 14px;
+      color: rgba(155, 151, 188, 1);
+      text-align: left;
+      vertical-align: top;
+    }
+    .item-sleep-desc {
+      font-size: 12px;
+      font-weight: 400;
+      letter-spacing: 0px;
+      line-height: 12px;
+      color: rgba(255, 255, 255, 1);
+      text-align: left;
+      vertical-align: top;
+      margin-top: 5px;
+    }
+  }
+}
 .report-charts {
   margin-top: 0.5rem;
 }

+ 145 - 82
sleep/pages/log/report/reportDetail.vue

@@ -122,7 +122,97 @@
 					</view>
 				</view>
 
-				<view v-if="tabIndex === 1">
+        <view v-if="tabIndex === 1">
+          <view class="tab-detail">
+            <view class="justify-between flex-row">
+              <view class="title-tab-detail">深浅睡眠</view>
+              <view class="subtile-tab-detail self-end">平均心率 {{ nowReport.report_content.avg_rh.value }}次/分</view>
+            </view>
+
+            <view class="report_breath_chart">
+              <view class="charts-sleep-item charts-color">
+                <mpvue-echarts class="ec-canvas" canvasId="canvasChart-0" ref="refChart-0" @onInit="onInit1"></mpvue-echarts>
+              </view>
+            </view>
+
+            <view class="data-sleep-item">
+              <view class="date-sleep-item">{{ reportFrom.nowDate }}</view>
+              <view v-if="nowReport" class="flex-row justify-between">
+                <view>清醒:{{ formateSeconds(nowReport.awake_duration) }}</view>
+                <view>浅睡:{{ formateSeconds(nowReport.light_duration) }}</view>
+                <view>中睡:{{ formateSeconds(nowReport.in_duration) }}</view>
+                <view>深睡:{{ formateSeconds(nowReport.deep_duration) }}</view>
+              </view>
+              <view v-else class="flex-row justify-between">
+                <view>清醒:0时0分</view>
+                <view>浅睡:0时0分</view>
+                <view>中睡:0时0分</view>
+                <view>深睡:0时0分</view>
+              </view>
+            </view>
+
+            <view class="data-sleep-item">
+              <view class="date-sleep-item">{{ reportFrom.yesterdayDate }}</view>
+              <view v-if="yesterdayReport" class="flex-row justify-between">
+                <view>清醒:{{ formateSeconds(yesterdayReport.awake_duration) }}</view>
+                <view>浅睡:{{ formateSeconds(yesterdayReport.light_duration) }}</view>
+                <view>中睡:{{ formateSeconds(yesterdayReport.in_duration) }}</view>
+                <view>深睡:{{ formateSeconds(yesterdayReport.deep_duration) }}</view>
+              </view>
+              <view v-else class="flex-row justify-between">
+                <view>清醒:0时0分</view>
+                <view>浅睡:0时0分</view>
+                <view>中睡:0时0分</view>
+                <view>深睡:0时0分</view>
+              </view>
+            </view>
+
+            <view class="data-sleep-item">
+              <view class="date-sleep-item">{{ reportFrom.beforeYesterdayDate }}</view>
+              <view v-if="beforeYesterdayReport" class="flex-row justify-between">
+                <view>清醒:{{ formateSeconds(beforeYesterdayReport.awake_duration) }}</view>
+                <view>浅睡:{{ formateSeconds(beforeYesterdayReport.light_duration) }}</view>
+                <view>中睡:{{ formateSeconds(beforeYesterdayReport.in_duration) }}</view>
+                <view>深睡:{{ formateSeconds(beforeYesterdayReport.deep_duration) }}</view>
+              </view>
+              <view v-else class="flex-row justify-between">
+                <view>清醒:0时0分</view>
+                <view>浅睡:0时0分</view>
+                <view>中睡:0时0分</view>
+                <view>深睡:0时0分</view>
+              </view>
+            </view>
+
+            <view class="justify-between flex-row tip-tab-detail">
+              <image class="image-tip-tab self-end" src="http://wdklmall.oss-cn-shenzhen.aliyuncs.com/mallgoods/goods/E01CCA8EF99C4724AE0D6E105A765BD0.png" />
+              <view class="text-tip-tab flex-auto">
+                <text class="title-tip-tab">睡眠小贴士</text>
+                <text class="content-tip-tab">如果当前睡眠效率偏低,建议通过以下方式进行改善。
+                  1. 聆听平淡而有节律的睡眠音乐
+                  2. 睡前喝一杯加糖的热牛奶了
+                  3. 合适的睡姿:左侧卧,仰卧,俯卧(即趴着睡)
+                  4. 用热水泡脚,一般半个小左右,有高血糖的朋友十分钟效果最佳。
+                </text>
+              </view>
+            </view>
+
+            <view class="post-tab-detail">
+              <view class="title-post-tab">健康小知识</view>
+              <image class="image-post-tab" src="http://wdklmall.oss-cn-shenzhen.aliyuncs.com/mallgoods/goods/95CB63B13E4646AF8C9BF141348DA0D3.jpeg" />
+              <view class="content-post-tab">
+                深浅睡眠<br/>
+                深度睡眠是睡眠的一个部分,只占整个睡眠时间的25%,深度睡眠也被称作是“黄金睡眠”。人的夜间睡眠,一般分5到6个周而复始的周期,每个睡眠周期约60分钟 ~ 90分钟。根据睡眠中脑电波、肌电波及眼球活动的变化,
+                睡眠周期由非快速眼动周期和快速眼动周期组成。非快速眼动睡眠又分为浅睡期、轻睡期、中睡期和深睡期4期,然后进入快速眼动睡眠期,算是一个睡眠周期结束,而后继续启动下一个睡眠周期。研究表明,占整个睡眠时间
+                大约55%的浅睡期和轻睡期,对解除疲劳作用甚微,而只有进入深睡眠状态的中睡期、深睡期及快速眼动睡眠期,才对解除疲劳有较大作用。因为在深睡眠状态下,大脑皮层细胞处于充分休息状态,这对于消除疲劳、恢复精力、
+                免疫抗病等都有至关重要的作用。然而这种深度睡眠,只占整个睡眠时间的25%。因此对睡眠好坏的评价,不能光看时间,更重要的是看质量。提高睡眠质量,最终要看深度睡眠时间的长短。在睡眠科学来说,“深度睡眠”是你
+                入睡以后大脑不进行活动的深度休息,你睡觉的这一个晚上,先进入浅睡眠然后自然进入深睡眠,然后又是浅睡眠然后又深,来回交替直到醒来,人在浅睡眠时可能做梦,但深睡眠不会。深度睡眠也被称作是“黄金睡眠”,也就是
+                通常说的“金质睡眠”“金子般的睡眠”。
+              </view>
+            </view>
+          </view>
+        </view>
+
+				<view v-if="tabIndex === 2">
 					<view class="tab-detail">
 						<view class="title-tab-detail">安稳度</view>
 						<view class="flex-col data-tab-detail">
@@ -321,7 +411,7 @@
 					</view>
 				</view>
 
-				<view v-if="tabIndex === 2">
+				<view v-if="tabIndex === 3">
 					<view class="tab-detail">
 						<view class="justify-between flex-row">
 							<view class="title-tab-detail">心率</view>
@@ -442,7 +532,7 @@
 					</view>
 				</view>
 
-				<view v-if="tabIndex === 3">
+				<view v-if="tabIndex === 4">
 
 					<view class="tab-detail">
 						<view class="justify-between flex-row">
@@ -554,7 +644,7 @@
 					</view>
 				</view>
 
-				<view v-if="tabIndex === 4">
+				<view v-if="tabIndex === 5">
 
 					<view class="tab-detail">
 						<view class="title-tab-detail">异常状况</view>
@@ -672,77 +762,6 @@
 					</view>
 				</view>
 
-        <view v-if="tabIndex === 5">
-          <view class="tab-detail">
-            <view class="justify-between flex-row">
-              <view class="title-tab-detail">深浅睡眠</view>
-              <view class="subtile-tab-detail self-end">平均心率61次/分</view>
-            </view>
-
-            <view class="charts-sleep-item charts-color"></view>
-
-            <view class="data-sleep-item">
-              <view class="date-sleep-item">2023.06.12</view>
-              <view class="flex-row justify-between">
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-              </view>
-            </view>
-
-            <view class="data-sleep-item">
-              <view class="date-sleep-item">2023.06.12</view>
-              <view class="flex-row justify-between">
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-              </view>
-            </view>
-
-            <view class="data-sleep-item">
-              <view class="date-sleep-item">2023.06.12</view>
-              <view class="flex-row justify-between">
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-                <view>清醒:0H10M</view>
-              </view>
-            </view>
-
-            <view class="justify-between flex-row tip-tab-detail">
-              <image
-                  class="image-tip-tab self-end"
-                  src="@/static/mine/myAvatar.png" />
-              <view class="text-tip-tab flex-auto">
-                <text class="title-tip-tab">睡眠小贴士</text>
-                <text class="content-tip-tab">如果当前睡眠效率偏低,建议通过以下方式进行改善。
-                  1.聆听平淡而有节律的睡眠音乐
-                  2. 睡前喝一杯加糖的热牛奶
-                  了. 合适的睡姿:左侧卧,仰卧,俯卧(即
-                  趴着睡)
-                  4.用热水泡脚,一般半个小左右,有高血糖的朋友十分钟效果最佳。
-                </text>
-              </view>
-            </view>
-
-            <view class="post-tab-detail">
-              <view class="title-post-tab">健康小知识</view>
-              <image
-                  class="image-post-tab"
-                  src="http://wdklmall.oss-cn-shenzhen.aliyuncs.com/mallgoods/goods/3C62AD507C8345D49AEB2AAD8F7584BB.png"
-              />
-              <view class="content-post-tab">
-                提高睡眠效率的方法
-                1要有睡觉的积极意识,不要在睡觉的时候还想一些烦心事。要让心静下来。
-                2.睡觉前不能吃的太多,这样胃会感到不适,身体不舒服,自然睡不着。
-                了.每天多参加户外活动和体育锻炼。提高身体免疫力和抵抗力。拥有一个强健的体魄。
-              </view>
-            </view>
-          </view>
-        </view>
-
 			</view>
 		</view>
 
@@ -765,7 +784,7 @@ import * as API_SLEEP_REPORT from '@/api/sleep_report'
     },
 		data() {
 			return {
-				tabList: [ '睡眠效率', '安稳度', '心率', '呼吸率', '异常状况'],
+				tabList: [ '睡眠效率', '深浅睡眠', '安稳度', '心率', '呼吸率', '异常状况'],
 				tabIndex: 0,
         scrollLeft: 0,
         imei: null,
@@ -883,13 +902,16 @@ import * as API_SLEEP_REPORT from '@/api/sleep_report'
         const _this = this
         setTimeout(() => {
           switch (_this.tabIndex) {
-            case 2:
-              _this.nowChart("refChart-1", 2, _this.nowReport.report_content.dt_arr, _this.nowReport.report_content.rh_arr)
+            case 1:
+              _this.nowChart("refChart-0", -1, _this.nowReport.report_content.dt_arr, _this.nowReport.report_content.sleep_arr)
               break
             case 3:
-              _this.nowChart("refChart-2", 3, _this.nowReport.report_content.dt_arr, _this.nowReport.report_content.hx_arr)
+              _this.nowChart("refChart-1", 2, _this.nowReport.report_content.dt_arr, _this.nowReport.report_content.rh_arr)
               break
             case 4:
+              _this.nowChart("refChart-2", 3, _this.nowReport.report_content.dt_arr, _this.nowReport.report_content.hx_arr)
+              break
+            case 5:
               _this.nowChart("refChart-3", 1, _this.nowReport.report_content.dt_arr, _this.nowReport.report_content.hxstop_arr)
               _this.nowChart("refChart-4", 0, _this.nowReport.report_content.dt_arr, _this.nowReport.report_content.snoring_arr)
               break
@@ -908,7 +930,7 @@ import * as API_SLEEP_REPORT from '@/api/sleep_report'
           height: this.chartObj.height - 10
         })
         let options = Object.assign(this.getOptions(xData, yData), {})
-        if (type === 0) {
+        if (type <= 0) {
           options.yAxis = this.getOptionsY1(type)
         } else {
           // if (type === 2) {
@@ -938,6 +960,9 @@ import * as API_SLEEP_REPORT from '@/api/sleep_report'
           // }
           options.yAxis = this.getOptionsY2()
         }
+        if (type === -1) {
+          options.series[0].areaStyle = {}
+        }
         myChart.setOption(options)
       },
       getOptions(xData, yData) {
@@ -998,11 +1023,17 @@ import * as API_SLEEP_REPORT from '@/api/sleep_report'
         }
       },
       getOptionsY1(type) {
+        let min = 0, max = 1
+        if (type === -1) {
+          min = 0
+          max = 'dataMax'
+        }
         return {
           type: 'value',
           // boundaryGap: [0, '100%'],
-          min: 0,
-          max: 1, // dataMax取数据在该轴上的最大值作为最大刻度
+          min: min,
+          max: max, // dataMax取数据在该轴上的最大值作为最大刻度
+          splitNumber: 4,
           minInterval: 1,
           splitLine: {
             show: false, // 是否显示分隔线
@@ -1020,6 +1051,26 @@ import * as API_SLEEP_REPORT from '@/api/sleep_report'
           axisLabel: {
             formatter: function (value, index) {
               switch (type) {
+                case -1:
+                  let str = ''
+                  console.log('value===', value)
+                  switch (value) {
+                    case 0:
+                      str = '清醒'
+                      break
+                    case 10:
+                      str = '浅睡'
+                      break
+                    case 20:
+                      str = '中睡'
+                      break
+                    case 30:
+                      str = '深睡'
+                      break
+                    default:
+                      break
+                  }
+                  return str
                 case 0:
                   return value === 0 ? '睡眠' : '打鼾'
                 case 1:
@@ -1050,6 +1101,18 @@ import * as API_SLEEP_REPORT from '@/api/sleep_report'
           }
         }
       },
+      // 将分转化为时分
+      formateSeconds(endTime) {
+        let secondTime = endTime//将传入的秒的值转化为Number
+        let h = 0// 初始化小时
+        if (secondTime > 60) {//如果秒数大于60,将秒数转换成整数
+          h = parseInt(secondTime / 60)//获取小时,获取分钟除以60,得到整数小时
+          secondTime = parseInt(secondTime % 60) //获取小时后取佘的分,获取分钟除以60取佘的分
+          return h + '时' + secondTime + '分'
+        } else {
+          return '0时' + secondTime + '分'
+        }
+      }
 		}
 	}
 </script>

+ 2 - 2
sleep/pages/tabBar/find.vue

@@ -94,8 +94,8 @@ export default {
     getCareHealthAdvert() {
       const data = {
         groupId: 12,
-        // named: 'MATTRESS_FIND_1'
-        named: 'MATTRESS_FIND_2'
+        named: 'MATTRESS_FIND_1'
+        // named: 'MATTRESS_FIND_2'
       }
       API_doctorAdvert.listByGroupId(data).then(res => {
         this.healthAdvertList = res

+ 4 - 1
sleep/pages/tabBar/home.vue

@@ -281,6 +281,9 @@
         </view>
         <view class="cu-bar bg-white justify-end">
           <view class="action">
+            <button class="cu-btn bg-cyan" @tap="goBuy">去购买</button>
+          </view>
+          <view class="action">
             <button class="cu-btn bg-green margin-left" @tap="bindDevice">确定</button>
           </view>
         </view>
@@ -951,7 +954,7 @@ export default {
         url: '/pages/log/warn/index?unionId=' + userInfo.union_id
       })
     },
-    // 绑定UU守护套包
+    // 绑定守护之影套包
     bindUUSH() {
       const params = {
         imei: this.bindSn,

+ 4 - 0
sleep/pages/tabBar/my.vue

@@ -225,6 +225,9 @@
         </view>
         <view class="cu-bar bg-white justify-end">
           <view class="action">
+            <button class="cu-btn bg-cyan" @tap="goBuy">去购买</button>
+          </view>
+          <view class="action">
             <button class="cu-btn bg-green margin-left" @tap="bindDevice">确定</button>
           </view>
         </view>
@@ -722,6 +725,7 @@ export default {
         this.API_getDeviceList()
       })
     },
+
   ...mapActions({
       logout: 'logoutAction',
       saveUserInfo: 'saveUserInfoAction'

+ 113 - 71
sleep/pages/tabBar/report.vue

@@ -72,7 +72,7 @@
 								<view class="flex-col items-center text-data-sum">
 									<view class="title-data-sum">睡眠总时长</view>
 									<view class="flex-row justify-evenly items-baseline group_5">
-										<text class="font_5">{{ formateSeconds(sleepReportFrom.total_duration) }}</text>
+										<text class="font_5">{{ formateSeconds(sleepReportFrom.total_duration, 0) }}</text>
 									</view>
 								</view>
 							</view>
@@ -110,7 +110,7 @@
 										<text class="font_3">深睡时长</text>
 									</view>
 									<view class="flex-row items-baseline group_6 space-x-6">
-										<text class="font_4">{{ formateSeconds(sleepReportFrom.deep_duration) }}</text>
+										<text class="font_4">{{ formateSeconds(sleepReportFrom.deep_duration, 0) }}</text>
 									</view>
 								</view>
                 <view class="flex-col section_6 view space-y-12">
@@ -142,7 +142,7 @@
 										<text class="font_3">在床时间</text>
 									</view>
 									<view class="flex-row items-baseline group_5">
-										<text class="font_4">{{ formateSeconds(sleepReportFrom.inbed_duration) }}</text>
+										<text class="font_4">{{ formateSeconds(sleepReportFrom.inbed_duration, 0) }}</text>
 									</view>
 								</view>
 
@@ -224,22 +224,21 @@
 					    <view class="flex-row items-center group_11 space-x-10 pos_33">
 					      <image class="image_8" src="../../static/report/reportIconBreath.png"/>
 					      <text class="font_3">安稳度</text>
-                <text @click="handleClickBreath(1)" class="margin-left myFont">详情>></text>
+                <text @click="handleClickBreath(2)" class="margin-left myFont">详情>></text>
 <!--					      <image @click="handleClickBreath(1)" class="image_11" src="../../static/report/reportIconWhy.png" />-->
 					    </view>
 					  </view>
 					  <view class="flex-col pos_34">
-<!--					      <view class="flex-col group_15">-->
-<!--					        <view class="flex-row justify-between group_2">-->
-<!--					          <text class="font_3 text_12">安稳度</text>-->
-<!--					          <view class="flex-row items-center space-x-30">-->
-<!--					            <text class="font_10">入睡时长</text>-->
-<!--					            <view class="flex-row items-baseline shrink-0 space-x-6">-->
-<!--					              <text class="font_5">{{ formateSeconds(sleepReportFrom.rs_duration) }}</text>-->
-<!--					            </view>-->
-<!--					          </view>-->
-<!--					        </view>-->
-<!--					      </view>-->
+					      <view class="flex-col group_15">
+					        <view class="flex-row justify-between group_2">
+					          <text class="font_3 text_12">入睡时长</text>
+					          <view class="flex-row items-center space-x-30">
+					            <view class="flex-row items-baseline shrink-0 space-x-6">
+					              <text class="font_5">{{ formateSeconds(sleepReportFrom.rs_duration, 0) }}</text>
+					            </view>
+					          </view>
+					        </view>
+					      </view>
               <view class="list-divider"></view>
 
 						  <view class="flex-col group_15">
@@ -291,7 +290,7 @@
                     <view class="flex-row items-center group_11 space-x-10 pos_33">
                       <image class="image_8" src="../../static/report/reportIconBeat.png" />
                       <text class="font_3">心脏系统</text>
-                      <text @click="handleClickBreath(2)" class="margin-left myFont">详情>></text>
+                      <text @click="handleClickBreath(3)" class="margin-left myFont">详情>></text>
 <!--                      <image @click="handleClickBreath(2)" class="image_11" src="../../static/report/reportIconWhy.png" />-->
                     </view>
                   </view>
@@ -320,7 +319,7 @@
 				            <view class="flex-row justify-center items-center group_11 space-x-10 pos_33">
 				              <image class="image_8" src="../../static/report/reportIconBreath.png" />
 				              <text class="font_3">呼吸系统</text>
-                      <text @click="handleClickBreath(3)" class="margin-left myFont">详情>></text>
+                      <text @click="handleClickBreath(4)" class="margin-left myFont">详情>></text>
 <!--				              <image @click="handleClickBreath(3)" class="image_11" src="../../static/report/reportIconWhy.png" />-->
 				            </view>
 				          </view>
@@ -342,7 +341,6 @@
                       </view>
                     </view>
                     <view class="list-divider"></view>
-
                     <view class="flex-col group_15">
                       <view class="flex-row justify-between group_2">
                         <text class="font_3 text_12">打鼾</text>
@@ -361,7 +359,6 @@
                       </view>
                     </view>
                     <view class="list-divider"></view>
-
                     <view class="flex-col group_15">
                       <view class="flex-row justify-between group_2">
                         <text class="font_3 text_12">呼吸暂停</text>
@@ -382,24 +379,55 @@
 				          </view>
 				        </view>
 
-<!--                <view class="flex-col justify-start relative report_heart">-->
-<!--                  <view class="section_25"></view>-->
+                <view class="flex-col justify-start report_breath">
+                  <view class="flex-col justify-start">
+                    <view class="flex-row items-center group_11 space-x-10 pos_33">
+                      <image class="image_8" src="../../static/report/reportIconMoon.png" />
+                      <text class="font_3">深浅睡眠</text>
+                      <text @click="handleClickBreath(1)" class="margin-left myFont">详情>></text>
+                      <!--                      <image @click="handleClickBreath(2)" class="image_11" src="../../static/report/reportIconWhy.png" />-->
+                    </view>
+                  </view>
+                  <view class="flex-col pos_34 report_heart">
+                    <view class="flex-col group_15">
+                      <view class="flex-row justify-between report-sleep items-center">
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">清醒</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.awake_duration, 1) }}</text>
+                        </view>
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">浅睡</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.light_duration, 1) }}</text>
+                        </view>
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">中睡</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.in_duration, 1) }}</text>
+                        </view>
+                        <view class="flex-col item-sleep">
+                          <text class="item-sleep-title">深睡</text>
+                          <text class="item-sleep-desc">{{ formateSeconds(sleepReportFrom.deep_duration, 1) }}</text>
+                        </view>
+                      </view>
+                    </view>
+                    <view class="report_breath_chart">
+                      <view class="echarts-wrap">
+                        <mpvue-echarts class="ec-canvas" canvasId="canvasChart-7" ref="refChart-7" @onInit="onInit1"></mpvue-echarts>
+                      </view>
+                    </view>
+                  </view>
+                </view>
+<!--                <view class="flex-col justify-start relative report_breath">-->
+<!--&lt;!&ndash;                  <view class="section_25"></view>&ndash;&gt;-->
 <!--                  <view class="flex-row justify-center items-center group_11 space-x-9 pos_21">-->
-<!--                    <image-->
-<!--                      class="image_8"-->
-<!--                    src="../../static/report/reportIconMoon.png"-->
-<!--                    />-->
+<!--                    <image class="image_8" src="../../static/report/reportIconMoon.png"/>-->
 <!--                    <text class="font_3">深浅睡眠</text>-->
-<!--                    <image-->
-<!--                      class="image_11"-->
-<!--                    src="../../static/report/reportIconWhy.png"-->
-<!--                    />-->
+<!--                    <image class="image_11" src="../../static/report/reportIconWhy.png" />-->
 <!--                  </view>-->
-<!--    -->
+
 <!--                  <view class="flex-row justify-between report-sleep items-center">-->
-<!--                  <view class="flex-col item-sleep">-->
-<!--                    <text class="item-sleep-title">清醒</text>-->
-<!--                    <text class="item-sleep-desc">2小时14分钟</text>-->
+<!--                    <view class="flex-col item-sleep">-->
+<!--                      <text class="item-sleep-title">清醒</text>-->
+<!--                      <text class="item-sleep-desc">2小时14分钟</text>-->
 <!--                    </view>-->
 <!--                    <view class="flex-col item-sleep">-->
 <!--                      <text class="item-sleep-title">浅睡</text>-->
@@ -409,6 +437,11 @@
 <!--                      <text class="item-sleep-title">深睡</text>-->
 <!--                      <text class="item-sleep-desc">2小时14分钟</text>-->
 <!--                    </view>-->
+<!--                    <view class="report_breath_chart">-->
+<!--                      <view class="echarts-wrap">-->
+<!--                        <mpvue-echarts class="ec-canvas" canvasId="canvasChart-6" ref="refChart-6" @onInit="onInit1"></mpvue-echarts>-->
+<!--                      </view>-->
+<!--                    </view>-->
 <!--                  </view>-->
 <!--                </view>-->
 
@@ -454,6 +487,9 @@
         </view>
         <view class="cu-bar bg-white justify-end">
           <view class="action">
+            <button class="cu-btn bg-cyan" @tap="goBuy">去购买</button>
+          </view>
+          <view class="action">
             <button class="cu-btn bg-green margin-left" @tap="bindDevice">确定</button>
           </view>
         </view>
@@ -678,18 +714,27 @@
           _this.nowChart("refChart-4", 4, data.report_content.dt_arr, data.report_content.hx_arr)
           _this.nowChart("refChart-5", 0, data.report_content.dt_arr, data.report_content.snoring_arr)
           _this.nowChart("refChart-6", 6, data.report_content.dt_arr, data.report_content.hxstop_arr)
+          _this.nowChart("refChart-7", -1, data.report_content.dt_arr, data.report_content.sleep_arr)
         }, 800)
       },
       // 将分转化为时分
-      formateSeconds(endTime) {
+      formateSeconds(endTime, type) {
         let secondTime = endTime//将传入的秒的值转化为Number
+        let hourStr, minuteStr
+        if (type === 0) {
+          hourStr = '小时'
+          minuteStr = '分钟'
+        } else {
+          hourStr = '时'
+          minuteStr = '分'
+        }
         let h = 0// 初始化小时
         if (secondTime > 60) {//如果秒数大于60,将秒数转换成整数
           h = parseInt(secondTime / 60)//获取小时,获取分钟除以60,得到整数小时
           secondTime = parseInt(secondTime % 60) //获取小时后取佘的分,获取分钟除以60取佘的分
-          return h + '小时' + secondTime + '分钟'
+          return h + hourStr + secondTime + minuteStr
         } else {
-          return secondTime + '分钟'
+          return secondTime + minuteStr
         }
       },
       onInit1(e) {
@@ -710,6 +755,9 @@
         } else {
           options.yAxis = this.getOptionsY2()
         }
+        if (type === -1) {
+          options.series[0].areaStyle = {}
+        }
         myChart.setOption(options)
       },
       getOptions(xData, yData) {
@@ -769,11 +817,17 @@
         }
       },
       getOptionsY1(type) {
+        let min = 0, max = 1
+        if (type === -1) {
+          min = 0
+          max = 'dataMax'
+        }
         return {
           type: 'value',
           // boundaryGap: [0, '100%'],
-          min: 0,
-          max: 1, // dataMax取数据在该轴上的最大值作为最大刻度
+          min: min,
+          max: max, // dataMax取数据在该轴上的最大值作为最大刻度
+          splitNumber: 4,
           minInterval: 1,
           splitLine: {
             show: false, // 是否显示分隔线
@@ -791,6 +845,26 @@
           axisLabel: {
             formatter: function (value, index) {
               switch (type) {
+                case -1:
+                  let str = ''
+                    console.log('value===', value)
+                  switch (value) {
+                    case 0:
+                      str = '清醒'
+                      break
+                    case 10:
+                      str = '浅睡'
+                      break
+                    case 20:
+                      str = '中睡'
+                      break
+                    case 30:
+                      str = '深睡'
+                      break
+                    default:
+                      break
+                  }
+                  return str
                 case 0:
                   return value === 0 ? '睡眠' : '打鼾'
                 case 1:
@@ -1174,7 +1248,7 @@
   bottom: 0
 }
 	.report-sleep {
-		position: absolute;
+		//position: absolute;
 		top: 3rem;
 		width: 100%;
 		padding: 0.3rem;
@@ -1293,38 +1367,6 @@
 	      padding: 0rem 0 0.25rem;
 	      .group_8 {
 	        padding: 0 1.25rem;
-	        .report_leave_bed {
-	          .section_10 {
-	            opacity: 0.8;
-              background: linear-gradient(90deg, rgba(86, 17, 247, 0.5) 0%, #4d9efa 100%);
-	            border-radius: 0.5rem;
-	            height: 9.91rem;
-	          }
-	          .pos_2 {
-	            position: absolute;
-	            left: 0.63rem;
-	            right: 0.53rem;
-	            top: 0.63rem;
-	            .space-x-12 {
-	              & > view:not(:first-child),
-	              & > text:not(:first-child),
-	              & > image:not(:first-child) {
-	                margin-left: 0.75rem;
-	              }
-	            }
-	          }
-	          .pos_3 {
-	            position: absolute;
-	            left: 0.66rem;
-	            right: 0.63rem;
-	            top: 3.56rem;
-	          }
-	          .pos_10 {
-	            position: absolute;
-	            right: 0.66rem;
-	            top: 6.69rem;
-	          }
-	        }
 	        .space-x-6 {
 	          & > view:not(:first-child),
 	          & > text:not(:first-child),

+ 1 - 1
sleep/pages/user/shareUser/index.vue

@@ -330,7 +330,7 @@ import * as API_vitalSignsLook from '@/api/vitalSignsLook'
       if (this.lx === 0) {
         title = '你的亲友'+this.userInfo.nickname+'邀请您查看他的体征数据,互帮互爱,呵护健康!'
       } else {
-        title = '你的亲友'+this.userInfo.nickname+'推荐你使用UU守护小程序,构筑自己的关爱互联圈,从此健康更有保障!'
+        title = '你的亲友'+this.userInfo.nickname+'推荐你使用守护之影小程序,构筑自己的关爱互联圈,从此健康更有保障!'
       }
       let _this = this
       return {

+ 17 - 1
sleep/utils/vue-mixin.js

@@ -16,7 +16,7 @@ const mixin = {
 			MixinUploadApi: `${API.base}/uploaders`,
 			// 是否已经授权 默认false
 			hasAuth: false,
-
+			userMiniProgramAppId: 'wx013064b7d1caf28f'
 		}
 	},
 	onLoad(query) {
@@ -202,6 +202,22 @@ const mixin = {
 				}
 			}
 		},
+		goBuy() {
+			wx.navigateToMiniProgram({
+				appId: this.userMiniProgramAppId,
+				path: '/pages/b2b2c/index?type=SHOPPING&page=shopping&no=486',
+				//develop开发版;trial体验版;release正式版
+				// envVersion: 'release',
+				envVersion: 'trial',
+				success(res) {
+					// 打开成功
+					console.log("跳转小程序成功!", res);
+				},
+				fail(res) {
+					console.log('fail===', res)
+				}
+			})
+		},
 	}
 }