fix: 处理屏幕初始化问题

This commit is contained in:
white 2024-10-23 13:45:06 +08:00
parent 392157111c
commit 91e4a89ae3
26 changed files with 2287 additions and 2211 deletions

28
App.vue
View File

@ -1,15 +1,7 @@
<script>
import Vue from 'vue'
export default {
created() {
},
beforeMount() {
plus.screen.lockOrientation( 'landscape-primary');
},
beforeCreate() {
plus.screen.lockOrientation( 'landscape-primary');
},
export default {
onLoad() {
uni.onNetworkStatusChange((res) => {
console.log('网络类型变化:', res.networkType);
@ -64,16 +56,16 @@
});
//
if (this.$store.getters['api/getApiToken']) {
setTimeout(() => {
uni.reLaunch({
url: '/pages/index/index'
})
}, 1000)
}
// if (this.$store.getters['api/getApiToken']) {
// setTimeout(() => {
// uni.reLaunch({
// url: '/pages/index/index'
// })
// console.log('')
// }, 1000)
// }
},
onHide: function() {
console.log('App 关闭')
},
methods: {
@ -156,7 +148,7 @@
}
body{
background: #fff !important;
background: #fff !important;
}
</style>

View File

@ -22,7 +22,18 @@
<view :class="'list'" v-for="(item, index) in dataList" :key="index" @click="goInfo(index)">
<view v-if="!customType.includes(activeType)" class="row" >
<view class="data">
<image src="https://img.agrimedia.cn/apptest/%E6%89%8B%E8%A1%A8-%E7%BA%BF%E6%80%A73-0.png" mode="widthFix"></image>
<image class="data-icon" src="https://img.agrimedia.cn/apptest/%E6%89%8B%E8%A1%A8-%E7%BA%BF%E6%80%A73-0.png" mode="widthFix"></image>
<view v-if="activeType == 'SleepDatas'">
<view>睡眠时长:
{{getHours(item.data_msg[0].sleepTotalTime, 0)}}
<text class="unit"></text>
{{getHours(item.data_msg[0].sleepTotalTime, 1)}}
<text class="unit"></text>
</view>
<view>深度睡眠: {{item.data_msg[0].deepSleepTime}}
<text class="unit">分钟</text>
</view>
</view>
<view v-if="activeType == 'stepIndex'">
步数{{item.data_msg.stepCount}}
</view>
@ -70,7 +81,7 @@
</view>
</view>
<view class="time">
{{item.date_str}} {{item.hour_minute}}
{{item.date_str}} {{item.hour_minute}}
</view>
</view>
<view class="" v-else>
@ -134,7 +145,8 @@
ECGData: '心电图',
stepIndex: '步数',
bodyData:'身体成分',
bloodLiquidAll: '血脂'
bloodLiquidAll: '血脂',
SleepDatas: '睡眠'
},
time: new Date().toISOString().substring(0, 10),
flag: true,
@ -191,6 +203,8 @@
type = 'step_split'
} else if (this.activeType == 'bloodLiquidAll') {
type = 'bloodLiquid'
} else if (this.activeType == 'SleepDatas') {
type = 'SleepDatas'
} else {
type = this.activeType
};
@ -221,11 +235,26 @@
},
back() {
if (this.activeType == 'ECGData' || this.activeType == 'bodyData') {
if (this.activeType == 'ECGData' || this.activeType == 'bodyData' || this.activeType == 'SleepDatas') {
this.$emit('back', 1)
} else {
this.$emit('back', 2)
}
},
getHours(minutes, type) {
if (type == 0) {
return Math.floor((minutes / 60).toFixed(2));
}
if (type == 1) {
var minutes = minutes % 60;
if (minutes < 10) {
minutes = '0' + minutes;
}
return minutes;
}
}
}
}
@ -284,6 +313,9 @@
width: 50rpx;
}
}
.data-icon {
margin-right: 20rpx;
}
.time {
font-weight: 300;
font-size: 24rpx;

View File

@ -1,6 +1,11 @@
<template>
<view>
<tm-nav-bar left-icon="arrow-left" title="睡眠" @clickLeft="back" :rbgs="false"/>
<tm-nav-bar
left-icon="arrow-left"
title="睡眠"
@clickLeft="back"
:rightText="`全部数据`"
@clickRight="goAllPath" />
<view class="flx jcsb ac" style="height: 40rpx;background-color: #fff;padding: 20rpx;">
<view class="" style="font-size: 40rpx;font-weight: bold;">
@ -261,6 +266,11 @@
this.$emit('back', 1)
},
//
goAllPath() {
this.$emit('allData', 3)
},
getDataList(){
let type = 'SleepDatas'
let res = this.$store.dispatch('api/getDeviceListDays', {

View File

@ -12,7 +12,7 @@ export default () => {
config.baseURL = readBaseUrl; // 测试地址
}
// #ifdef APP-PLUS
// #ifdef APP-PLUS
config.baseURL = baseUrl; // 测试地址
// #endif
return config
@ -41,10 +41,10 @@ export default () => {
let ob = (config.method == 'GET'? config.params : config.data)
const custom = config.custom.hideLoading || false
if(!custom){
uni.showLoading({
mask: true,
title:"加载中..."
});
// uni.showLoading({
// mask: true,
// title:"加载中..."
// });
}
return config
@ -113,7 +113,7 @@ export default () => {
}, (response) => {
uni.showToast({
mask: true,
title: '服务器响应失败' + response.statusCode,
title: '网络断开',
icon: 'none'
})
return Promise.reject(response)

View File

@ -27,6 +27,9 @@
<!-- 视频 -->
<div class="video-wrap">
<div id="shadow">
<div id="shadow-text">模型正在启动……</div>
</div>
<video id="myVideo" muted loop autoplay playsinline>
<source src="https://img.agrimedia.cn/bmsc/%E9%A3%9E%E4%B9%A620240918-175041.mp4" type="video/mp4">
</video>
@ -124,7 +127,7 @@
dataLines.push(line.trim());
}
});
const dataJson = dataLines.join('');
try {
if (dataJson) {
@ -151,8 +154,37 @@
var endTime = 10; // 结束时间(以秒为单位)
var timeUpdateListener; // 保存timeupdate事件的监听器
var onLine = 'false';
// 在线离线
function checkNetworkStatus() {
if (navigator.onLine) {
onLine = true;
console.log('在线');
} else {
onLine = false;
console.log('离线');
}
}
// 初始检查网络状态
checkNetworkStatus();
// 遮罩视频
var shadowDom = document.getElementById('shadow');
var shadowText = document.getElementById('shadow-text');
setTimeout(() => {
if (onLine) {
shadowDom.style.display = 'none';
} else {
shadowText.innerHTML = '环境异常,请检查网络'
}
}, 500);
// 指定段落
function playVideoSegment(startTime, endTime) {
function playVideoSegment(startTime, endTime) {
videoElement.currentTime = startTime;
setTimeout(() => {
videoElement.play();
@ -264,42 +296,44 @@
apiKey: '0b17a761b6b7174b789f639119d7e29a',
onWillStatusChange: function (oldStatus, newStatus) {},
onTextChange: function (text) {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
// 3秒钟内没有说话就自动关闭
// 2秒钟内没有说话就自动关闭
// 如果已有定时器在运行,则清除它
if (gaptime) {
clearInterval(gaptime);
gaptime = null;
};
// 重置倒计时
seconds = 10;
seconds = 5;
gaptime = setInterval(() => {
seconds--;
if (voiceTxt.innerText) {
if (text) {
clearInterval(gaptime);
gaptime = null;
seconds = 10;
seconds = 5;
// 3秒钟内没有说话,就自动关闭
// 2秒钟内没有说话,就自动关闭
if (text) {
if (!isCallbackExecuted) {
clearTimeout(times);
times = setTimeout(() => {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
statusTxt.value = '正在听…';
const params = { msg: text };
console.log(new Date().getTime(), '收到文字')
const params = { msg: text };
// 判断关键字是否存在
const result = parseHealthQuery(params.msg);
isCallbackExecuted = true;
console.log(new Date().getTime(), 1)
if (result) {
DetailDay(result.dataKey, result.date).then(res => {
let TargetData = res.data.data;
let TargetData = res.data.data;
if (result.dataKey == 'ECGData') {
TargetData.map(item => {
@ -307,13 +341,14 @@
delete item.data_msg.list;
})
}
if (result.dataKey == 'bloodLiquid') {
TargetData.map(item => {
item.data_msg.cholesterol = item.data_msg.cholesterol/100;
item.data_msg.highDensity = item.data_msg.highDensity/100;
item.data_msg.triacylglycerol = item.data_msg.triacylglycerol/100;
item.data_msg.uricAcidVal = item.data_msg.uricAcidVal/10000;
item.data_msg.lowDensity = item.data_msg.lowDensity/100;
item.data_msg.cholesterol = (item.data_msg.cholesterol/100).toFixed(2);
item.data_msg.highDensity = (item.data_msg.highDensity/100).toFixed(2);
item.data_msg.triacylglycerol = (item.data_msg.triacylglycerol/100).toFixed(2);
item.data_msg.uricAcidVal = (item.data_msg.uricAcidVal/10000).toFixed(2);
item.data_msg.lowDensity = (item.data_msg.lowDensity/100).toFixed(2);
})
}
@ -321,7 +356,6 @@
console.log(Question, '问题=========================问题');
/*
* 调用接口 传递关键信息 文字转语音
*/
@ -462,7 +496,7 @@
isCallbackExecuted = true;
return;
}
}, 3000);
}, 2000);
}
}
} else if (seconds == 0){
@ -616,7 +650,7 @@
startRec.style.display = "none";
endRec.style.display = "block";
stopRec.style.display = "block";
voiceTxt.innerText = '';
NextPlayVideo(response, filterString(Subtitles, ['*', ' ']));
}).catch(e => {
hideModal();
@ -642,6 +676,8 @@
// 播放音频
audioElement.play();
console.log(new Date().getTime(), '播放音频')
// 循环视频
replayVideoSegment(60, 120);
@ -679,15 +715,15 @@
demoData = {
bloodGlucose: "血糖",
SleepDatas: "睡眠",
bloodOxygen: "血氧",
bloodOxygen: ['血氧', '血氧饱和度'],
bloodPressure: '血压',
meiTuo: '梅脱',
pulseReat: '心率',
bodyTemperature: '体温',
ECGData: '心电图',
bloodLiquid: ['血脂', '血液', '尿酸'],
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
bodyData: '身体成分',
stepIndex: ['运动', '步数']
stepIndex: ['运动', '步数']
};
}
@ -716,7 +752,7 @@
// 在查询逻辑中使用这个辅助函数
for (let key in demoData) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' ) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' || typeof demoData[key] === 'object' && key === 'bloodOxygen' ) {
if (isBloodLiquidMatch(demoData[key], query)) {
key === 'stepIndex'? key = 'step_split' : ''; // 修改步数参数
return {
@ -768,6 +804,30 @@
border-radius: 10px;
}
#shadow {
position: fixed;
z-index: 99999;
width: 100%;
height: 100vh;
left: 0;
top: 0;
background-color: #06193a;
}
#shadow-text {
width: 100%;
height: 100vh;
position: absolute;
text-align: center;
line-height: 100vh;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: 0 auto;
color: #fff;
}
#myVideo {
width: 100%;
height: 100% !important;

View File

@ -23,8 +23,7 @@
},
/* */
"distribute" : {
/* android */
"screenOrientation" : "landscape-primary", // "landscape"
/* android */// "screenOrientation" : "landscape-primary", // "landscape"
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
@ -45,7 +44,6 @@
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"
]
},
// "orientation": "portrait",
/* ios */
"ios" : {
"dSYMs" : false

View File

@ -1,5 +1,9 @@
{
"pages": [ //pages,
{
"path": "pages/index/blank",
"style": {}
},
{
"path": "pages/index/index",
"style": {}
@ -77,6 +81,13 @@
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/indexs/indexs",
"style" :
{
"navigationBarTitleText" : ""
}
}
],
// "tabBar": {
@ -93,11 +104,10 @@
// }]
// },
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "中鼎云医",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"navigationStyle": "custom",
"pageOrientation":"portrait"
"navigationStyle": "custom"
}
}

25
pages/index/blank.vue Normal file
View File

@ -0,0 +1,25 @@
<!-- 这个页面可以解决屏幕初始化问题 -->
<template>
<view class="main"></view>
</template>
<script>
export default {
mounted() {
setTimeout(() => {
uni.navigateTo({
url: '/pages/index/index'
})
}, 100);
}
}
</script>
<style scoped>
.main {
width: 100%;
height: 100vh;
background-color: #fff;
}
</style>

View File

@ -1,18 +1,5 @@
<template>
<view>
<view class="skeleton flx" v-if="loading">
<view style="width: 60%">
<x-skeleton type="banner" :loading="loading"></x-skeleton>
<x-skeleton type="banner" :loading="loading"></x-skeleton>
<x-skeleton type="banner" :loading="loading"></x-skeleton>
<x-skeleton type="banner" :loading="loading"></x-skeleton>
<x-skeleton type="banner" :loading="loading"></x-skeleton>
</view>
<view style="width: 40%">
<x-skeleton :loading="loading" :configs="customConfigs" fadeOut></x-skeleton>
</view>
</view>
<view class="content">
<!-- 首页数据 -->
<view class="content-wrap" v-if="Sindex == 1">
@ -24,17 +11,16 @@
<echartsData :pageData="pageData" @back="back" @allData="allData"></echartsData>
</view>
<!-- 日期筛选 全部数据 -->
<!-- 日期筛选全部数据 -->
<view class="content-wrap" v-if="Sindex == 3">
<allData @back="back" :activeType="activeType"></allData>
</view>
<!-- 睡眠 -->
<view class="content-wrap" v-if="Sindex == 4">
<sleep-info ref="sleep" @back="back"></sleep-info>
<sleep-info ref="sleep" @back="back" @allData="allData"></sleep-info>
</view>
<!-- 数字人webview原生页面 -->
<view class="right">
<web-view :src="urlLink"></web-view>
@ -98,7 +84,6 @@
type: ''
},
loading: true,
customConfigs: {
padding: '30rpx', //
gridRows: 2, //
@ -214,7 +199,6 @@
}
this.urlLink = `/hybrid/html/ai.html?data=${JSON.stringify(this.dataListsNew)}&user=${JSON.stringify(this.getUserInfo)}&token=${store.getters['api/getApiToken']}&deviceId=${this.getActiceDevice.device_id}`;
this.loading = false;
}
);
},
@ -234,6 +218,7 @@
return
} else if (str == 'SleepDatas') {
this.Sindex = 4;
this.activeType = str;
} else {
this.Sindex = 2;
this.activeType = str;
@ -288,6 +273,7 @@
},
allData(index) {
console.log(index)
this.Sindex = index;
},

View File

@ -42,7 +42,6 @@
<view class="circle" style="background-color:#e933dd ;">
</view>
</view>
</view>
</view>
</view>

File diff suppressed because one or more lines are too long

View File

@ -27,6 +27,9 @@
<!-- 视频 -->
<div class="video-wrap">
<div id="shadow">
<div id="shadow-text">模型正在启动……</div>
</div>
<video id="myVideo" muted loop autoplay playsinline>
<source src="https://img.agrimedia.cn/bmsc/%E9%A3%9E%E4%B9%A620240918-175041.mp4" type="video/mp4">
</video>
@ -124,7 +127,7 @@
dataLines.push(line.trim());
}
});
const dataJson = dataLines.join('');
try {
if (dataJson) {
@ -151,8 +154,37 @@
var endTime = 10; // 结束时间(以秒为单位)
var timeUpdateListener; // 保存timeupdate事件的监听器
var onLine = 'false';
// 在线离线
function checkNetworkStatus() {
if (navigator.onLine) {
onLine = true;
console.log('在线');
} else {
onLine = false;
console.log('离线');
}
}
// 初始检查网络状态
checkNetworkStatus();
// 遮罩视频
var shadowDom = document.getElementById('shadow');
var shadowText = document.getElementById('shadow-text');
setTimeout(() => {
if (onLine) {
shadowDom.style.display = 'none';
} else {
shadowText.innerHTML = '环境异常,请检查网络'
}
}, 500);
// 指定段落
function playVideoSegment(startTime, endTime) {
function playVideoSegment(startTime, endTime) {
videoElement.currentTime = startTime;
setTimeout(() => {
videoElement.play();
@ -264,11 +296,7 @@
apiKey: '0b17a761b6b7174b789f639119d7e29a',
onWillStatusChange: function (oldStatus, newStatus) {},
onTextChange: function (text) {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
// 3秒钟内没有说话就自动关闭
// 2秒钟内没有说话就自动关闭
// 如果已有定时器在运行,则清除它
if (gaptime) {
clearInterval(gaptime);
@ -279,27 +307,30 @@
gaptime = setInterval(() => {
seconds--;
if (voiceTxt.innerText) {
if (text) {
clearInterval(gaptime);
gaptime = null;
seconds = 10;
// 3秒钟内没有说话,就自动关闭
// 2秒钟内没有说话,就自动关闭
if (text) {
if (!isCallbackExecuted) {
clearTimeout(times);
times = setTimeout(() => {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
statusTxt.value = '正在听…';
const params = { msg: text };
console.log(JSON.stringify(params))
// 判断关键字是否存在
const result = parseHealthQuery(params.msg);
isCallbackExecuted = true;
if (result) {
DetailDay(result.dataKey, result.date).then(res => {
let TargetData = res.data.data;
let TargetData = res.data.data;
if (result.dataKey == 'ECGData') {
TargetData.map(item => {
@ -307,13 +338,14 @@
delete item.data_msg.list;
})
}
if (result.dataKey == 'bloodLiquid') {
TargetData.map(item => {
item.data_msg.cholesterol = item.data_msg.cholesterol/100;
item.data_msg.highDensity = item.data_msg.highDensity/100;
item.data_msg.triacylglycerol = item.data_msg.triacylglycerol/100;
item.data_msg.uricAcidVal = item.data_msg.uricAcidVal/10000;
item.data_msg.lowDensity = item.data_msg.lowDensity/100;
item.data_msg.cholesterol = (item.data_msg.cholesterol/100).toFixed(2);
item.data_msg.highDensity = (item.data_msg.highDensity/100).toFixed(2);
item.data_msg.triacylglycerol = (item.data_msg.triacylglycerol/100).toFixed(2);
item.data_msg.uricAcidVal = (item.data_msg.uricAcidVal/10000).toFixed(2);
item.data_msg.lowDensity = (item.data_msg.lowDensity/100).toFixed(2);
})
}
@ -321,7 +353,6 @@
console.log(Question, '问题=========================问题');
/*
* 调用接口 传递关键信息 文字转语音
*/
@ -462,7 +493,7 @@
isCallbackExecuted = true;
return;
}
}, 3000);
}, 2000);
}
}
} else if (seconds == 0){
@ -616,7 +647,7 @@
startRec.style.display = "none";
endRec.style.display = "block";
stopRec.style.display = "block";
voiceTxt.innerText = '';
NextPlayVideo(response, filterString(Subtitles, ['*', ' ']));
}).catch(e => {
hideModal();
@ -626,6 +657,7 @@
// 字幕播放视频等操作
async function NextPlayVideo(response, str) {
console.log(str, '233333333333')
const content_bytes = await response.arrayBuffer();
const blob = new Blob([content_bytes], { type: 'audio/mp3' });
const blobUrl = URL.createObjectURL(blob);
@ -679,15 +711,15 @@
demoData = {
bloodGlucose: "血糖",
SleepDatas: "睡眠",
bloodOxygen: "血氧",
bloodOxygen: ['血氧', '血氧饱和度'],
bloodPressure: '血压',
meiTuo: '梅脱',
pulseReat: '心率',
bodyTemperature: '体温',
ECGData: '心电图',
bloodLiquid: ['血脂', '血液', '尿酸'],
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
bodyData: '身体成分',
stepIndex: ['运动', '步数']
stepIndex: ['运动', '步数']
};
}
@ -716,7 +748,7 @@
// 在查询逻辑中使用这个辅助函数
for (let key in demoData) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' ) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' || typeof demoData[key] === 'object' && key === 'bloodOxygen' ) {
if (isBloodLiquidMatch(demoData[key], query)) {
key === 'stepIndex'? key = 'step_split' : ''; // 修改步数参数
return {
@ -768,6 +800,30 @@
border-radius: 10px;
}
#shadow {
position: fixed;
z-index: 99999;
width: 100%;
height: 100vh;
left: 0;
top: 0;
background-color: #06193a;
}
#shadow-text {
width: 100%;
height: 100vh;
position: absolute;
text-align: center;
line-height: 100vh;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: 0 auto;
color: #fff;
}
#myVideo {
width: 100%;
height: 100% !important;

View File

@ -0,0 +1 @@
forceInstall

Binary file not shown.

View File

@ -1,7 +1,7 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/index/index","pages/login/login","pages/index/detail","pages/login/forget","pages/login/register","pages/device/device","pages/my/my","pages/login/explain","pages/index/echarts","pages/only_test/only_test","pages/only_test/ot1","pages/only_test/ot2","pages/only_test/ot3","pages/only_test/ot5"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"中鼎云医","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","navigationStyle":"custom","pageOrientation":"portrait"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"中鼎云医","compilerVersion":"4.15","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniConfig = {"pages":["pages/index/index","pages/login/login","pages/index/detail","pages/login/forget","pages/login/register","pages/device/device","pages/my/my","pages/login/explain","pages/index/echarts","pages/only_test/only_test","pages/only_test/ot1","pages/only_test/ot2","pages/only_test/ot3","pages/only_test/ot5"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"中鼎云医","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","navigationStyle":"custom"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"中鼎云医","compilerVersion":"4.15","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true},"window":{}},{"path":"/pages/login/login","meta":{},"window":{}},{"path":"/pages/index/detail","meta":{},"window":{}},{"path":"/pages/login/forget","meta":{},"window":{}},{"path":"/pages/login/register","meta":{},"window":{}},{"path":"/pages/device/device","meta":{},"window":{}},{"path":"/pages/my/my","meta":{},"window":{}},{"path":"/pages/login/explain","meta":{},"window":{}},{"path":"/pages/index/echarts","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/only_test","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot1","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot2","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot3","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot5","meta":{},"window":{"navigationBarTitleText":""}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -27,6 +27,9 @@
<!-- 视频 -->
<div class="video-wrap">
<div id="shadow">
<div id="shadow-text">模型正在启动……</div>
</div>
<video id="myVideo" muted loop autoplay playsinline>
<source src="https://img.agrimedia.cn/bmsc/%E9%A3%9E%E4%B9%A620240918-175041.mp4" type="video/mp4">
</video>
@ -124,7 +127,7 @@
dataLines.push(line.trim());
}
});
const dataJson = dataLines.join('');
try {
if (dataJson) {
@ -151,8 +154,37 @@
var endTime = 10; // 结束时间(以秒为单位)
var timeUpdateListener; // 保存timeupdate事件的监听器
var onLine = 'false';
// 在线离线
function checkNetworkStatus() {
if (navigator.onLine) {
onLine = true;
console.log('在线');
} else {
onLine = false;
console.log('离线');
}
}
// 初始检查网络状态
checkNetworkStatus();
// 遮罩视频
var shadowDom = document.getElementById('shadow');
var shadowText = document.getElementById('shadow-text');
setTimeout(() => {
if (onLine) {
shadowDom.style.display = 'none';
} else {
shadowText.innerHTML = '环境异常,请检查网络'
}
}, 500);
// 指定段落
function playVideoSegment(startTime, endTime) {
function playVideoSegment(startTime, endTime) {
videoElement.currentTime = startTime;
setTimeout(() => {
videoElement.play();
@ -264,42 +296,44 @@
apiKey: '0b17a761b6b7174b789f639119d7e29a',
onWillStatusChange: function (oldStatus, newStatus) {},
onTextChange: function (text) {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
// 3秒钟内没有说话就自动关闭
// 2秒钟内没有说话就自动关闭
// 如果已有定时器在运行,则清除它
if (gaptime) {
clearInterval(gaptime);
gaptime = null;
};
// 重置倒计时
seconds = 10;
seconds = 5;
gaptime = setInterval(() => {
seconds--;
if (voiceTxt.innerText) {
if (text) {
clearInterval(gaptime);
gaptime = null;
seconds = 10;
seconds = 5;
// 3秒钟内没有说话,就自动关闭
// 2秒钟内没有说话,就自动关闭
if (text) {
if (!isCallbackExecuted) {
clearTimeout(times);
times = setTimeout(() => {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
statusTxt.value = '正在听…';
const params = { msg: text };
console.log(new Date().getTime(), '收到文字')
const params = { msg: text };
// 判断关键字是否存在
const result = parseHealthQuery(params.msg);
isCallbackExecuted = true;
console.log(new Date().getTime(), 1)
if (result) {
DetailDay(result.dataKey, result.date).then(res => {
let TargetData = res.data.data;
let TargetData = res.data.data;
if (result.dataKey == 'ECGData') {
TargetData.map(item => {
@ -307,13 +341,14 @@
delete item.data_msg.list;
})
}
if (result.dataKey == 'bloodLiquid') {
TargetData.map(item => {
item.data_msg.cholesterol = item.data_msg.cholesterol/100;
item.data_msg.highDensity = item.data_msg.highDensity/100;
item.data_msg.triacylglycerol = item.data_msg.triacylglycerol/100;
item.data_msg.uricAcidVal = item.data_msg.uricAcidVal/10000;
item.data_msg.lowDensity = item.data_msg.lowDensity/100;
item.data_msg.cholesterol = (item.data_msg.cholesterol/100).toFixed(2);
item.data_msg.highDensity = (item.data_msg.highDensity/100).toFixed(2);
item.data_msg.triacylglycerol = (item.data_msg.triacylglycerol/100).toFixed(2);
item.data_msg.uricAcidVal = (item.data_msg.uricAcidVal/10000).toFixed(2);
item.data_msg.lowDensity = (item.data_msg.lowDensity/100).toFixed(2);
})
}
@ -321,7 +356,6 @@
console.log(Question, '问题=========================问题');
/*
* 调用接口 传递关键信息 文字转语音
*/
@ -462,7 +496,7 @@
isCallbackExecuted = true;
return;
}
}, 3000);
}, 2000);
}
}
} else if (seconds == 0){
@ -616,7 +650,7 @@
startRec.style.display = "none";
endRec.style.display = "block";
stopRec.style.display = "block";
voiceTxt.innerText = '';
NextPlayVideo(response, filterString(Subtitles, ['*', ' ']));
}).catch(e => {
hideModal();
@ -642,6 +676,8 @@
// 播放音频
audioElement.play();
console.log(new Date().getTime(), '播放音频')
// 循环视频
replayVideoSegment(60, 120);
@ -679,15 +715,15 @@
demoData = {
bloodGlucose: "血糖",
SleepDatas: "睡眠",
bloodOxygen: "血氧",
bloodOxygen: ['血氧', '血氧饱和度'],
bloodPressure: '血压',
meiTuo: '梅脱',
pulseReat: '心率',
bodyTemperature: '体温',
ECGData: '心电图',
bloodLiquid: ['血脂', '血液', '尿酸'],
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
bodyData: '身体成分',
stepIndex: ['运动', '步数']
stepIndex: ['运动', '步数']
};
}
@ -716,7 +752,7 @@
// 在查询逻辑中使用这个辅助函数
for (let key in demoData) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' ) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' || typeof demoData[key] === 'object' && key === 'bloodOxygen' ) {
if (isBloodLiquidMatch(demoData[key], query)) {
key === 'stepIndex'? key = 'step_split' : ''; // 修改步数参数
return {
@ -768,6 +804,30 @@
border-radius: 10px;
}
#shadow {
position: fixed;
z-index: 99999;
width: 100%;
height: 100vh;
left: 0;
top: 0;
background-color: #06193a;
}
#shadow-text {
width: 100%;
height: 100vh;
position: absolute;
text-align: center;
line-height: 100vh;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: 0 auto;
color: #fff;
}
#myVideo {
width: 100%;
height: 100% !important;

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__24DA8DD","name":"中鼎云医","version":{"name":"1.2.5","code":125},"description":"中鼎云医","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"VideoPlayer":{},"Record":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"screenOrientation":"landscape-primary","icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"]},"apple":{"dSYMs":false},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"4.15","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"},"screenOrientation":["portrait-primary","portrait-secondary"]}
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__24DA8DD","name":"中鼎云医","version":{"name":"1.2.5","code":125},"description":"中鼎云医","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"VideoPlayer":{},"Record":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"]},"apple":{"dSYMs":false},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"4.15","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"}}

View File

@ -1,8 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/index/index","pages/login/login","pages/index/detail","pages/login/forget","pages/login/register","pages/device/device","pages/my/my","pages/login/explain","pages/index/echarts","pages/only_test/only_test","pages/only_test/ot1","pages/only_test/ot2","pages/only_test/ot3","pages/only_test/ot5"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"中鼎云医","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","navigationStyle":"custom","pageOrientation":"portrait"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"中鼎云医","compilerVersion":"4.15","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true},"window":{}},{"path":"/pages/login/login","meta":{},"window":{}},{"path":"/pages/index/detail","meta":{},"window":{}},{"path":"/pages/login/forget","meta":{},"window":{}},{"path":"/pages/login/register","meta":{},"window":{}},{"path":"/pages/device/device","meta":{},"window":{}},{"path":"/pages/my/my","meta":{},"window":{}},{"path":"/pages/login/explain","meta":{},"window":{}},{"path":"/pages/index/echarts","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/only_test","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot1","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot2","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot3","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot5","meta":{},"window":{"navigationBarTitleText":""}}];
var __uniConfig = {"pages":["pages/index/blank","pages/index/index","pages/login/login","pages/index/detail","pages/login/forget","pages/login/register","pages/device/device","pages/my/my","pages/login/explain","pages/index/echarts","pages/only_test/only_test","pages/only_test/ot1","pages/only_test/ot2","pages/only_test/ot3","pages/only_test/ot5","pages/index/indexs/indexs"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"中鼎云医","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","navigationStyle":"custom"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"中鼎云医","compilerVersion":"4.15","entryPagePath":"pages/index/blank","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/index/blank","meta":{"isQuit":true},"window":{}},{"path":"/pages/index/index","meta":{},"window":{}},{"path":"/pages/login/login","meta":{},"window":{}},{"path":"/pages/index/detail","meta":{},"window":{}},{"path":"/pages/login/forget","meta":{},"window":{}},{"path":"/pages/login/register","meta":{},"window":{}},{"path":"/pages/device/device","meta":{},"window":{}},{"path":"/pages/my/my","meta":{},"window":{}},{"path":"/pages/login/explain","meta":{},"window":{}},{"path":"/pages/index/echarts","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/only_test","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot1","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot2","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot3","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/only_test/ot5","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/index/indexs/indexs","meta":{},"window":{"navigationBarTitleText":""}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -27,6 +27,9 @@
<!-- 视频 -->
<div class="video-wrap">
<div id="shadow">
<div id="shadow-text">模型正在启动……</div>
</div>
<video id="myVideo" muted loop autoplay playsinline>
<source src="https://img.agrimedia.cn/bmsc/%E9%A3%9E%E4%B9%A620240918-175041.mp4" type="video/mp4">
</video>
@ -124,7 +127,7 @@
dataLines.push(line.trim());
}
});
const dataJson = dataLines.join('');
try {
if (dataJson) {
@ -151,8 +154,37 @@
var endTime = 10; // 结束时间(以秒为单位)
var timeUpdateListener; // 保存timeupdate事件的监听器
var onLine = 'false';
// 在线离线
function checkNetworkStatus() {
if (navigator.onLine) {
onLine = true;
console.log('在线');
} else {
onLine = false;
console.log('离线');
}
}
// 初始检查网络状态
checkNetworkStatus();
// 遮罩视频
var shadowDom = document.getElementById('shadow');
var shadowText = document.getElementById('shadow-text');
setTimeout(() => {
if (onLine) {
shadowDom.style.display = 'none';
} else {
shadowText.innerHTML = '环境异常,请检查网络'
}
}, 500);
// 指定段落
function playVideoSegment(startTime, endTime) {
function playVideoSegment(startTime, endTime) {
videoElement.currentTime = startTime;
setTimeout(() => {
videoElement.play();
@ -264,42 +296,44 @@
apiKey: '0b17a761b6b7174b789f639119d7e29a',
onWillStatusChange: function (oldStatus, newStatus) {},
onTextChange: function (text) {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
// 3秒钟内没有说话就自动关闭
// 2秒钟内没有说话就自动关闭
// 如果已有定时器在运行,则清除它
if (gaptime) {
clearInterval(gaptime);
gaptime = null;
};
// 重置倒计时
seconds = 10;
seconds = 5;
gaptime = setInterval(() => {
seconds--;
if (voiceTxt.innerText) {
if (text) {
clearInterval(gaptime);
gaptime = null;
seconds = 10;
seconds = 5;
// 3秒钟内没有说话,就自动关闭
// 2秒钟内没有说话,就自动关闭
if (text) {
if (!isCallbackExecuted) {
clearTimeout(times);
times = setTimeout(() => {
// 监听识别结果的变化
voiceTxt.innerText = text;
marquee("marquee", "voice-txt");
statusTxt.value = '正在听…';
const params = { msg: text };
console.log(new Date().getTime(), '收到文字')
const params = { msg: text };
// 判断关键字是否存在
const result = parseHealthQuery(params.msg);
isCallbackExecuted = true;
console.log(new Date().getTime(), 1)
if (result) {
DetailDay(result.dataKey, result.date).then(res => {
let TargetData = res.data.data;
let TargetData = res.data.data;
if (result.dataKey == 'ECGData') {
TargetData.map(item => {
@ -307,13 +341,14 @@
delete item.data_msg.list;
})
}
if (result.dataKey == 'bloodLiquid') {
TargetData.map(item => {
item.data_msg.cholesterol = item.data_msg.cholesterol/100;
item.data_msg.highDensity = item.data_msg.highDensity/100;
item.data_msg.triacylglycerol = item.data_msg.triacylglycerol/100;
item.data_msg.uricAcidVal = item.data_msg.uricAcidVal/10000;
item.data_msg.lowDensity = item.data_msg.lowDensity/100;
item.data_msg.cholesterol = (item.data_msg.cholesterol/100).toFixed(2);
item.data_msg.highDensity = (item.data_msg.highDensity/100).toFixed(2);
item.data_msg.triacylglycerol = (item.data_msg.triacylglycerol/100).toFixed(2);
item.data_msg.uricAcidVal = (item.data_msg.uricAcidVal/10000).toFixed(2);
item.data_msg.lowDensity = (item.data_msg.lowDensity/100).toFixed(2);
})
}
@ -321,7 +356,6 @@
console.log(Question, '问题=========================问题');
/*
* 调用接口 传递关键信息 文字转语音
*/
@ -462,7 +496,7 @@
isCallbackExecuted = true;
return;
}
}, 3000);
}, 2000);
}
}
} else if (seconds == 0){
@ -616,7 +650,7 @@
startRec.style.display = "none";
endRec.style.display = "block";
stopRec.style.display = "block";
voiceTxt.innerText = '';
NextPlayVideo(response, filterString(Subtitles, ['*', ' ']));
}).catch(e => {
hideModal();
@ -642,6 +676,8 @@
// 播放音频
audioElement.play();
console.log(new Date().getTime(), '播放音频')
// 循环视频
replayVideoSegment(60, 120);
@ -679,15 +715,15 @@
demoData = {
bloodGlucose: "血糖",
SleepDatas: "睡眠",
bloodOxygen: "血氧",
bloodOxygen: ['血氧', '血氧饱和度'],
bloodPressure: '血压',
meiTuo: '梅脱',
pulseReat: '心率',
bodyTemperature: '体温',
ECGData: '心电图',
bloodLiquid: ['血脂', '血液', '尿酸'],
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
bodyData: '身体成分',
stepIndex: ['运动', '步数']
stepIndex: ['运动', '步数']
};
}
@ -716,7 +752,7 @@
// 在查询逻辑中使用这个辅助函数
for (let key in demoData) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' ) {
if (typeof demoData[key] === 'object' && key === 'bloodLiquid' || typeof demoData[key] === 'object' && key === 'stepIndex' || typeof demoData[key] === 'object' && key === 'bloodOxygen' ) {
if (isBloodLiquidMatch(demoData[key], query)) {
key === 'stepIndex'? key = 'step_split' : ''; // 修改步数参数
return {
@ -768,6 +804,30 @@
border-radius: 10px;
}
#shadow {
position: fixed;
z-index: 99999;
width: 100%;
height: 100vh;
left: 0;
top: 0;
background-color: #06193a;
}
#shadow-text {
width: 100%;
height: 100vh;
position: absolute;
text-align: center;
line-height: 100vh;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: 0 auto;
color: #fff;
}
#myVideo {
width: 100%;
height: 100% !important;

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__24DA8DD","name":"中鼎云医","version":{"name":"1.2.5","code":125},"description":"中鼎云医","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"VideoPlayer":{},"Record":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"screenOrientation":"landscape-primary","icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"]},"apple":{"dSYMs":false},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"4.15","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"},"screenOrientation":["portrait-primary","portrait-secondary"]}
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__24DA8DD","name":"中鼎云医","version":{"name":"1.2.5","code":125},"description":"中鼎云医","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"VideoPlayer":{},"Record":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>","<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"]},"apple":{"dSYMs":false},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"4.15","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"}}