diff --git a/components/all-data/all-data.vue b/components/all-data/all-data.vue new file mode 100644 index 0000000..2193b0d --- /dev/null +++ b/components/all-data/all-data.vue @@ -0,0 +1,297 @@ + + + + + + + \ No newline at end of file diff --git a/components/ecg-info/ecg-info.vue b/components/ecg-info/ecg-info.vue new file mode 100644 index 0000000..e8a34b2 --- /dev/null +++ b/components/ecg-info/ecg-info.vue @@ -0,0 +1,717 @@ + + + + + + + + + + + diff --git a/components/echarts-data/echarts-data.vue b/components/echarts-data/echarts-data.vue new file mode 100644 index 0000000..f766081 --- /dev/null +++ b/components/echarts-data/echarts-data.vue @@ -0,0 +1,1145 @@ + + + + + \ No newline at end of file diff --git a/components/home-data/home-data.vue b/components/home-data/home-data.vue new file mode 100644 index 0000000..1b35274 --- /dev/null +++ b/components/home-data/home-data.vue @@ -0,0 +1,731 @@ + + + + + + diff --git a/components/sleep-info/sleep-info.vue b/components/sleep-info/sleep-info.vue new file mode 100644 index 0000000..848e26c --- /dev/null +++ b/components/sleep-info/sleep-info.vue @@ -0,0 +1,466 @@ + + + + + + diff --git a/hybrid/html/ai.html b/hybrid/html/ai.html index c972693..ffbe108 100755 --- a/hybrid/html/ai.html +++ b/hybrid/html/ai.html @@ -218,6 +218,9 @@ var token = null; let times = null; + // 个人信息 + var user = userInfo(JSON.parse(getURLParameter('user'))); + // 获取微软token fetch("https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken", { method: 'POST', @@ -243,6 +246,14 @@ for (let i = 0; i < exampleData.length; i++) { exampleData[i].name = demoData[exampleData[i].type] } + // 过滤掉非对象类型的值 + const filteredData = Object.entries(exampleData).filter(([key, value]) => typeof value === 'object'); + + // 将键值对转换为所需格式的数组 + const arrayOfObjects = filteredData.map(([key, value]) => ({ + type: key, + ...value + })); /* * 实例化迅飞语音听写(流式版)WebAPI @@ -272,97 +283,100 @@ /* * 拿到匹配的文字下标 */ + var QSindex = containsKeywordRegex(params.msg); if (QSindex == 0) { - const obj = exampleData.filter(item => item.type == "bloodGlucose"); + const obj = arrayOfObjects.filter(item => item.type == "bloodGlucose"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近测量的血糖为${obj[0].data_msg}毫摩尔/升` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的血糖为${obj[0].data_msg}毫摩尔/升` } else { speed(`血糖数据为空, 请连接或同步设备数据`) return } } + + if (QSindex == 1) { - const obj = exampleData.filter(item => item.type == "SleepDatas"); + const obj = arrayOfObjects.filter(item => item.type == "SleepDatas"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近睡眠时长为${obj[0].data_msg[0].sleepTotalTime}分钟` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近睡眠时长为${minutesToHoursMinutesStringSimplified(obj[0].data_msg[0].sleepTotalTime)}分钟` } else { speed(`睡眠数据为空, 请连接或同步设备数据`) return } } if (QSindex == 2) { - const obj = exampleData.filter(item => item.type == "bloodOxygen"); + const obj = arrayOfObjects.filter(item => item.type == "bloodOxygen"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近测量的血氧为${obj[0].data_msg}毫摩尔/升` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的血氧为${obj[0].data_msg}毫摩尔/升` } else { speed(`血氧数据为空, 请连接或同步设备数据`) return } } if (QSindex == 3) { - const obj = exampleData.filter(item => item.type == "bloodPressure"); + const obj = arrayOfObjects.filter(item => item.type == "bloodPressure"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近测量的血压为${obj[0].data_msg.bloodPressureLow}/${obj[0].data_msg.bloodPressureHigh}毫摩尔/升` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的血压为${obj[0].data_msg.bloodPressureLow}/${obj[0].data_msg.bloodPressureHigh}毫摩尔/升` } else { speed(`血压数据为空, 请连接或同步设备数据`) return } } if (QSindex == 4 || QSindex == 11) { - const obj = exampleData.filter(item => item.type == "bloodLiquid"); + const obj = arrayOfObjects.filter(item => item.type == "bloodLiquid"); if (obj[0].data_msg.cholesterol) { - Question = `请模仿全科医生的口吻与我对话,我最近测量的血脂状况为, + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的血脂状况为, 尿酸为${obj[0].data_msg.uricAcidVal/10}, 总胆固醇为${obj[0].data_msg.cholesterol/100}, - 甘油三酯为${obj[0].data_msg.cholesterol/100}, - 高密度脂蛋白为${obj[0].data_msg.cholesterol/100}, - 低密度脂蛋白为${obj[0].data_msg.cholesterol/100}, ` + 甘油三酯为${obj[0].data_msg.triacylglycerol/100}, + 高密度脂蛋白为${obj[0].data_msg.highDensity/100}, + 低密度脂蛋白为${obj[0].data_msg.lowDensity/100}, ` } else { speed(`血脂数据为空, 请连接或同步设备数据`) return } } if (QSindex == 6) { - const obj = exampleData.filter(item => item.type == "pulseReat"); + const obj = arrayOfObjects.filter(item => item.type == "pulseReat"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近测量的心率为${obj[0].data_msg[0]}, ` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的心率为${obj[0].data_msg[0]}, ` } else { speed(`心率数据为空, 请连接或同步设备数据`) return } } if (QSindex == 7) { - const obj = exampleData.filter(item => item.type == "bodyTemperature"); + const obj = arrayOfObjects.filter(item => item.type == "bodyTemperature"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近测量的体温为${obj[0].data_msg}摄氏度` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的体温为${obj[0].data_msg}摄氏度` } else { speed(`体温数据为空, 请连接或同步设备数据`) return } } if (QSindex == 8) { - const obj = exampleData.filter(item => item.type == "ECGData"); + const obj = arrayOfObjects.filter(item => item.type == "ECGData"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近心电图测量结果为${obj[0].data_msg.heartRate}次/分` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近心电图测量结果为${obj[0].data_msg.heartRate}次/分` } else { speed(`心电图数据为空, 请连接或同步设备数据`) return } } if (QSindex == 9) { - const obj = exampleData.filter(item => item.type == "bodyData"); + const obj = arrayOfObjects.filter(item => item.type == "bodyData"); if (obj[0].data_msg.BMI) { - Question = `请模仿全科医生的口吻与我对话,我最近身体成分结果为${obj[0].data_msg.BMI}` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近身体成分结果为${obj[0].data_msg.BMI}` } else { speed(`身体成分数据为空, 请连接或同步设备数据`) return } } if (QSindex == 10) { - const obj = exampleData.filter(item => item.type == "stepIndex"); + const obj = arrayOfObjects.filter(item => item.type == "stepIndex"); if (obj[0].data_msg) { - Question = `请模仿全科医生的口吻与我对话,我最近测量的运动为${obj[0].data_msg.step}步数, + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的运动为${obj[0].data_msg.step}步数, ${obj[0].data_msg.calorie/10}千卡, ${obj[0].data_msg.distance/1000}公里` } else { @@ -403,7 +417,7 @@ - ${str.output.text} + ${filterString(str.output.text, ['*', ' '])} @@ -489,7 +503,7 @@ - ${str.output.text} + ${filterString(str.output.text, ['*', ' '])} @@ -589,7 +603,7 @@ modal.style.display = 'block'; dialog.style.display = 'block'; } - + // 隐藏弹窗和遮罩 function hideModal() { // overlay.style.display = 'none'; @@ -654,6 +668,7 @@ runRec.style.display = 'none'; } + // 防抖 function throttle(fn, wait) { let lastTime = 0; // 上一次调用的时间 @@ -667,6 +682,33 @@ } }; } + + // 分钟转小时 + function minutesToHoursMinutesStringSimplified(minutes) { + let hours = Math.floor(minutes / 60); + let remainingMinutes = minutes % 60; + + let formattedMinutes = remainingMinutes.toString().padStart(2, '0'); + + if (hours > 0) { + return `${hours}小时${formattedMinutes}分`; + } else { + return `${formattedMinutes}分`; + } + } + + function filterString(str, charsToRemove) { + // 这里的正则表达式是通过将charsToRemove数组中的字符转换为字符类(character class)来构建的 + // 例如,如果charsToRemove是['*', ' '],则正则表达式将是/[* ]/g + const regex = new RegExp(`[${charsToRemove.join('')}]`, 'g'); + // 使用replace方法和正则表达式来移除所有匹配的字符 + return str.replace(regex, ''); + } + + // 个人信息 + function userInfo(user) { + return `年龄${user.birthday}, 身高${user.height}, 体重${user.weight}` + } }; diff --git a/pages.json b/pages.json index 661c965..cd34ab7 100644 --- a/pages.json +++ b/pages.json @@ -64,13 +64,6 @@ "navigationBarTitleText" : "" } }, - { - "path" : "pages/index/detail_info", - "style" : - { - "navigationBarTitleText" : "" - } - }, { "path" : "pages/only_test/ot3", "style" : @@ -84,22 +77,7 @@ { "navigationBarTitleText" : "" } - }, - - { - "path" : "pages/index/sleep_info", - "style" : - { - "navigationBarTitleText" : "" - } - }, - { - "path" : "pages/index/body_info", - "style" : - { - "navigationBarTitleText" : "" - } - } + } ], // "tabBar": { // "list": [{ diff --git a/pages/index/body_info.vue b/pages/index/body_info.vue deleted file mode 100644 index d9d320e..0000000 --- a/pages/index/body_info.vue +++ /dev/null @@ -1,202 +0,0 @@ - - - - - diff --git a/pages/index/detail.vue b/pages/index/detail.vue index 2d2c978..a55f57a 100644 --- a/pages/index/detail.vue +++ b/pages/index/detail.vue @@ -1,7 +1,5 @@