fix: 处理屏幕初始化问题
This commit is contained in:
parent
392157111c
commit
91e4a89ae3
24
App.vue
24
App.vue
|
|
@ -2,14 +2,6 @@
|
|||
import Vue from 'vue'
|
||||
|
||||
export default {
|
||||
created() {
|
||||
},
|
||||
beforeMount() {
|
||||
plus.screen.lockOrientation( 'landscape-primary');
|
||||
},
|
||||
beforeCreate() {
|
||||
plus.screen.lockOrientation( 'landscape-primary');
|
||||
},
|
||||
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: {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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', {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -151,6 +154,35 @@
|
|||
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) {
|
||||
videoElement.currentTime = startTime;
|
||||
|
|
@ -264,38 +296,40 @@
|
|||
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 = '正在听…';
|
||||
|
||||
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 => {
|
||||
|
|
@ -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,13 +715,13 @@
|
|||
demoData = {
|
||||
bloodGlucose: "血糖",
|
||||
SleepDatas: "睡眠",
|
||||
bloodOxygen: "血氧",
|
||||
bloodOxygen: ['血氧', '血氧饱和度'],
|
||||
bloodPressure: '血压',
|
||||
meiTuo: '梅脱',
|
||||
pulseReat: '心率',
|
||||
bodyTemperature: '体温',
|
||||
ECGData: '心电图',
|
||||
bloodLiquid: ['血脂', '血液', '尿酸'],
|
||||
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
|
||||
bodyData: '身体成分',
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
14
pages.json
14
pages.json
|
|
@ -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": {
|
||||
|
|
@ -97,7 +108,6 @@
|
|||
"navigationBarTitleText": "中鼎云医",
|
||||
"navigationBarBackgroundColor": "#F8F8F8",
|
||||
"backgroundColor": "#F8F8F8",
|
||||
"navigationStyle": "custom",
|
||||
"pageOrientation":"portrait"
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
|
|
@ -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>
|
||||
|
|
@ -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">
|
||||
|
|
@ -31,10 +18,9 @@
|
|||
|
||||
<!-- 睡眠 -->
|
||||
<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;
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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>
|
||||
|
|
@ -151,6 +154,35 @@
|
|||
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) {
|
||||
videoElement.currentTime = startTime;
|
||||
|
|
@ -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,20 +307,23 @@
|
|||
|
||||
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;
|
||||
|
|
@ -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,13 +711,13 @@
|
|||
demoData = {
|
||||
bloodGlucose: "血糖",
|
||||
SleepDatas: "睡眠",
|
||||
bloodOxygen: "血氧",
|
||||
bloodOxygen: ['血氧', '血氧饱和度'],
|
||||
bloodPressure: '血压',
|
||||
meiTuo: '梅脱',
|
||||
pulseReat: '心率',
|
||||
bodyTemperature: '体温',
|
||||
ECGData: '心电图',
|
||||
bloodLiquid: ['血脂', '血液', '尿酸'],
|
||||
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
|
||||
bodyData: '身体成分',
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
forceInstall
|
||||
Binary file not shown.
|
|
@ -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
|
|
@ -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>
|
||||
|
|
@ -151,6 +154,35 @@
|
|||
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) {
|
||||
videoElement.currentTime = startTime;
|
||||
|
|
@ -264,38 +296,40 @@
|
|||
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 = '正在听…';
|
||||
|
||||
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 => {
|
||||
|
|
@ -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,13 +715,13 @@
|
|||
demoData = {
|
||||
bloodGlucose: "血糖",
|
||||
SleepDatas: "睡眠",
|
||||
bloodOxygen: "血氧",
|
||||
bloodOxygen: ['血氧', '血氧饱和度'],
|
||||
bloodPressure: '血压',
|
||||
meiTuo: '梅脱',
|
||||
pulseReat: '心率',
|
||||
bodyTemperature: '体温',
|
||||
ECGData: '心电图',
|
||||
bloodLiquid: ['血脂', '血液', '尿酸'],
|
||||
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
|
||||
bodyData: '身体成分',
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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"}}
|
||||
|
|
@ -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
|
|
@ -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>
|
||||
|
|
@ -151,6 +154,35 @@
|
|||
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) {
|
||||
videoElement.currentTime = startTime;
|
||||
|
|
@ -264,38 +296,40 @@
|
|||
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 = '正在听…';
|
||||
|
||||
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 => {
|
||||
|
|
@ -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,13 +715,13 @@
|
|||
demoData = {
|
||||
bloodGlucose: "血糖",
|
||||
SleepDatas: "睡眠",
|
||||
bloodOxygen: "血氧",
|
||||
bloodOxygen: ['血氧', '血氧饱和度'],
|
||||
bloodPressure: '血压',
|
||||
meiTuo: '梅脱',
|
||||
pulseReat: '心率',
|
||||
bodyTemperature: '体温',
|
||||
ECGData: '心电图',
|
||||
bloodLiquid: ['血脂', '血液', '尿酸'],
|
||||
bloodLiquid: ['血脂', '血液', '尿酸', '胆固醇', '甘油三脂', '高密度脂蛋白', '低密度脂蛋白'],
|
||||
bodyData: '身体成分',
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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"}}
|
||||
Binary file not shown.
Loading…
Reference in New Issue