仪器跳转水分报告

master
qsj 2 years ago
parent 030ce764e6
commit 4c24a11040

@ -122,7 +122,37 @@ class IotCarePlanFR200 extends Component<any, any> {
{ name: "左脸颊", forehead: 6, Total: 10 }, { name: "左脸颊", forehead: 6, Total: 10 },
{ name: "右脸颊", forehead: 2, Total: 10 }, { name: "右脸颊", forehead: 2, Total: 10 },
], ],
stepList:[
{
value: "Step1",
name: "额头",
finish: false,
schedule:0,
color:'#c2e5f3',
forehead:0
},
{
value: "Step2",
name: "左脸颊",
finish: false,
schedule:0,
color:'#c2e5f3',
forehead:0
},
{
value: "Step3",
name: "右脸颊",
finish: false,
schedule:0,
color:'#c2e5f3',
forehead:0
},
],
stepIndex:0,
// 进度条定时器
timerIdSchedule:null,
timerIdSuccess:null,
gear: { gear: 1 }, gear: { gear: 1 },
currentShowDialog: "", currentShowDialog: "",
showVideoPlayBtn: true, // 视频播放按钮 showVideoPlayBtn: true, // 视频播放按钮
@ -133,7 +163,7 @@ class IotCarePlanFR200 extends Component<any, any> {
/** 连接设备 End */ /** 连接设备 End */
/** 护理过程 */ /** 护理过程 */
isRuningTest: false, // 是否正在测试 isRuningTest: 1, // 是否正在测试
isShowStepTips: false, // 是否显示介绍步骤弹窗 isShowStepTips: false, // 是否显示介绍步骤弹窗
isConnectionBlutoot: true, // 是否已连接蓝牙 isConnectionBlutoot: true, // 是否已连接蓝牙
isShowNurse: true, // 是否开始并显示护理 FR200默认已经开始准备护理 isShowNurse: true, // 是否开始并显示护理 FR200默认已经开始准备护理
@ -148,13 +178,13 @@ class IotCarePlanFR200 extends Component<any, any> {
isModeLock: false, // 模式是否锁定 isModeLock: false, // 模式是否锁定
isSwitchActiveMode: false, // 是否显示弹窗切换模式 isSwitchActiveMode: false, // 是否显示弹窗切换模式
ModeList: [], ModeList: [],
ModeType: "all", // all ModeType: "base", // all
modeClass: "", // 1基础护理 2专区护理 3专研促渗 4敏期护理 5智能测肤 modeClass: "", // 1基础护理 2专区护理 3专研促渗 4敏期护理 5智能测肤
ActiveModeItem: { ActiveModeItem: {
openSourceData: [], openSourceData: [],
}, // 当前选中模式 }, // 当前选中模式
SwitchActiveModeItem: {}, // 切换选中模式 SwitchActiveModeItem: {}, // 切换选中模式
ModeID: "base_", // 模式KEY ModeID: "mode_", // 模式KEY
activeModeID: "", // 当前选中模式ID:用于高亮 activeModeID: "", // 当前选中模式ID:用于高亮
ModeStepIndex: 0, // 当前护理功效步骤:每个步骤时间不定,所以时间另外计算,根据步骤显示 ModeStepIndex: 0, // 当前护理功效步骤:每个步骤时间不定,所以时间另外计算,根据步骤显示
ModeStepTimeArray: [], // 护理功效时间步骤用于切换显示GIF ModeStepTimeArray: [], // 护理功效时间步骤用于切换显示GIF
@ -380,6 +410,7 @@ class IotCarePlanFR200 extends Component<any, any> {
this.setState({ this.setState({
ModeList: res.data.data, // 模式列表 ModeList: res.data.data, // 模式列表
ActiveModeItem: res.data.data[0], // 让模式列表正常显示 ActiveModeItem: res.data.data[0], // 让模式列表正常显示
ModeType: this.ModeTypeArray[res.data.data[0].modeClass],
}); });
if (this.state.activeModeID != "") { if (this.state.activeModeID != "") {
@ -599,6 +630,7 @@ class IotCarePlanFR200 extends Component<any, any> {
this.handleWorkStatus(false, MODE_WORKING_ENUM.STANDBY); this.handleWorkStatus(false, MODE_WORKING_ENUM.STANDBY);
}); });
}; };
/** 开始护理按钮:点击开始,页面进行到下一步 */ /** 开始护理按钮:点击开始,页面进行到下一步 */
onStartNurse = async () => { onStartNurse = async () => {
this.stepNext(); this.stepNext();
@ -613,6 +645,37 @@ class IotCarePlanFR200 extends Component<any, any> {
// 如果检查失败,则报错 // 如果检查失败,则报错
this.onEmitErrorTips(); this.onEmitErrorTips();
}; };
/** 完成护理,跳转到水分 */
onsuccess = async () => {
let stepList= this.state.stepList
this.setState({
isShowNursingSuccess:true
})
// return;
let { currentDevice, ActiveModeItem } = this.state;
let params = {};
let nursingData ={
nursingData:JSON.stringify({
GearData:[...stepList]
})
}
params = {
instrumentId: currentDevice.id,
instrumentName: currentDevice.name,
modeId: ActiveModeItem.id,
modeName: ActiveModeItem.modeName,
nursingTime: s_to_hms(this.elapsedTime),
};
params = { ...params, ...nursingData };
let res: any = await InstrumentInfo.apiNursingLog.addLog(JSON.stringify(params));
setTimeout(() => {
this.setState({
isShowNursingSuccess: false,
})
go(`/recoding/pages/moisture_test_report/moisture_test_report?data=${nursingData}&date=${s_to_hms(this.elapsedTime)}&modeId=${ActiveModeItem.id}`);
}, 2000);
};
/** /**
* @name * @name
@ -740,11 +803,8 @@ class IotCarePlanFR200 extends Component<any, any> {
break; break;
case "working": case "working":
//设备的运行中状态 //设备的运行中状态
console.log("设备状态同步 运行中状态", jsonStatus); console.log("设备状态同步 运行中状态", jsonStatus.workMode);
if (jsonStatus.workMode === "moistureTest") {
// 水分测试
// teststatus:success
}
// 脸部模式 // 脸部模式
if (jsonStatus.workMode === "face") { if (jsonStatus.workMode === "face") {
@ -761,6 +821,56 @@ class IotCarePlanFR200 extends Component<any, any> {
default: default:
break; break;
} }
if (jsonStatus.workMode === "moistureTest") {
if('success' === jsonStatus.testStatus){
let stepList =this.state.stepList
let stepIndex =this.state.stepIndex
let timerIdSuccess =this.state.timerIdSuccess
let timerIdSchedule =this.state.timerIdSchedule
if(stepList[stepIndex].finish){
stepList[stepIndex].forehead =jsonStatus.waterLevel
if(stepIndex === 2){
this.setState({
isRuningTest:4
});
}else{
this.setState({
isRuningTest:1
});
}
clearTimeout(timerIdSuccess);
clearTimeout(timerIdSchedule);
console.log('成功拿到',jsonStatus,stepIndex);
let num =stepIndex
if(stepIndex < 2){
num =stepIndex+1
}
this.setState({
timerIdSuccess:null,timerIdSchedule:null,stepIndex:num,stepList
});
}
}else{
let stepList =this.state.stepList
let stepIndex =this.state.stepIndex
let timerIdSuccess =this.state.timerIdSuccess
let timerIdSchedule =this.state.timerIdSchedule
if(stepList[stepIndex].finish){
clearTimeout(timerIdSuccess);
clearTimeout(timerIdSchedule);
stepList[stepIndex].schedule=0
stepList[stepIndex].finish=false
this.setState({
stepList,isRuningTest:3
});
}
}
// 水分测试
// testStatus:success
}
console.log( console.log(
"jsonStatus?.workMode === this.state.ActiveModeItem.modeType", "jsonStatus?.workMode === this.state.ActiveModeItem.modeType",
jsonStatus?.workMode === this.state.ActiveModeItem.modeType jsonStatus?.workMode === this.state.ActiveModeItem.modeType
@ -1227,17 +1337,39 @@ class IotCarePlanFR200 extends Component<any, any> {
workMode: ActiveModeItem.modeType, // 使用模式 workMode: ActiveModeItem.modeType, // 使用模式
workStatus: newWorkStatus, workStatus: newWorkStatus,
}; };
console.log(ActiveModeItem,'查看ActiveModeItem'); console.log(ActiveModeItem,'查看工作状态');
// 水分测试需要特殊处理 // 水分测试需要特殊处理
// 水分测试准备 水分测试工作 水分测试启动 // 水分测试准备 水分测试工作 水分测试启动
if (ActiveModeItem.modeType === "moistureTest") { if (ActiveModeItem.modeType === "moistureTest") {
console.log('查看切换-----------------------------------------');
sendParams.testStatus = "standby"; // 切换为准备 sendParams.testStatus = "standby"; // 切换为准备
let stepList =this.state.stepList
let stepIndex =this.state.stepIndex
let timerIdSchedule =this.state.timerIdSchedule
let timerIdSuccess =this.state.timerIdSuccess
if (isBtnClick) { if (isBtnClick) {
timerIdSchedule= setTimeout(function() {
stepList[stepIndex].schedule=100
timerIdSuccess= setTimeout(function() {
stepList[stepIndex].finish=true
this.setState({
stepList,
});
}, 2000);
this.setState({
stepList,timerIdSuccess
});
}, 3000);
this.setState({
isRuningTest: 2,
timerIdSchedule
});
// 水分测试启动 // 水分测试启动
sendParams.testStatus = "start"; // 点击开始再开始 sendParams.testStatus = "start"; // 点击开始再开始
console.log('点击开始',isBtnClick);
} }
} }
@ -1263,7 +1395,7 @@ class IotCarePlanFR200 extends Component<any, any> {
*/ */
onNursingTap(type = "") { onNursingTap(type = "") {
// 如果已禁止运行,则停止执行后续逻辑 // 如果已禁止运行,则停止执行后续逻辑
if (this.state.isRuningTest) return; if (this.state.isRuningTest === 2) return;
// 防止多次点击 // 防止多次点击
if (this.state.hadClickStart) return; if (this.state.hadClickStart) return;
this.setState({ this.setState({
@ -1619,13 +1751,7 @@ class IotCarePlanFR200 extends Component<any, any> {
Taro.removeStorageSync("FR200NursingHistory"); Taro.removeStorageSync("FR200NursingHistory");
}; };
// todoPromise = () => {
// return new Promise<void>((resolve, reject) => {
// setTimeout(() => {
// resolve();
// });
// });
// };
// 脸部one // 脸部one
todoPromise = async () => { todoPromise = async () => {
const nowFR200NursingHistory = Taro.getStorageSync("FR200NursingHistory"); const nowFR200NursingHistory = Taro.getStorageSync("FR200NursingHistory");
@ -1951,8 +2077,6 @@ class IotCarePlanFR200 extends Component<any, any> {
JSON.stringify(obj) JSON.stringify(obj)
); );
} else if ("moistureTest" === nursingData.workMode) { } else if ("moistureTest" === nursingData.workMode) {
// go(`/recoding/pages/moisture_test_report/moisture_test_report?data=${item.nursingData}&date=${item.createTime}`);
// go("/pages/face_report/face_report?id=" + this.state.currentDevice.id);
console.log("水分测试"); console.log("水分测试");
} else { } else {
go("/pages/face_report/face_report?id=" + this.state.currentDevice.id); go("/pages/face_report/face_report?id=" + this.state.currentDevice.id);
@ -2050,6 +2174,8 @@ class IotCarePlanFR200 extends Component<any, any> {
title, title,
isConnectShow, isConnectShow,
GearData, GearData,
stepList,
stepIndex,
isShowStepTips, isShowStepTips,
isShowNurse, isShowNurse,
isStopNurse, isStopNurse,
@ -2259,7 +2385,7 @@ class IotCarePlanFR200 extends Component<any, any> {
showFullscreenBtn={false} showFullscreenBtn={false}
/> />
)} )}
{isShowNurse && ( {isShowNurse && (
<Block> <Block>
{isStopNurse ? ( {isStopNurse ? (
@ -2341,6 +2467,8 @@ class IotCarePlanFR200 extends Component<any, any> {
<WaterTest <WaterTest
isRuningTest={isRuningTest} isRuningTest={isRuningTest}
TestModeStepIndex={TestModeStepIndex} TestModeStepIndex={TestModeStepIndex}
stepList={stepList}
stepIndex={stepIndex}
></WaterTest> ></WaterTest>
)} )}
</View> </View>
@ -2352,6 +2480,7 @@ class IotCarePlanFR200 extends Component<any, any> {
onEmitStartNurse={this.onStartNurse} onEmitStartNurse={this.onStartNurse}
onEmitSwitchChange={this.onSwitchChange} onEmitSwitchChange={this.onSwitchChange}
onEmitEndPlan={this.onEndPlan} onEmitEndPlan={this.onEndPlan}
onsuccess={this.onsuccess}
/> />
</View> </View>
</Block> </Block>

@ -2048,6 +2048,8 @@ class IotCarePlanWL200 extends Component<any, any> {
this.setState({ isMuted }); this.setState({ isMuted });
}; };
GetVideosTime = (event) => { GetVideosTime = (event) => {
let videoRef = Taro.createVideoContext("myVideo", this);
// videoRef.currentTime
console.log("获取播放时间", event.detail.currentTime); console.log("获取播放时间", event.detail.currentTime);
}; };
onPlay = (e) => { onPlay = (e) => {

@ -5,10 +5,11 @@ interface Props {
// isShowNurse: boolean; // isShowNurse: boolean;
currentWorkModeType: number; // 当前工作模式 1基础脸部等只有结束按钮 2.促渗,可以开始暂停和结束 3.水分测试 currentWorkModeType: number; // 当前工作模式 1基础脸部等只有结束按钮 2.促渗,可以开始暂停和结束 3.水分测试
isStopNurse: boolean; isStopNurse: boolean;
isRuningTest: boolean; // 是否在运行测试 isRuningTest: any; // 是否在运行测试 1是启动2进行中3重新检测4检测完成
onEmitStartNurse: Function; // 每次点击item回调事件和数据给父组件 onEmitStartNurse: Function; // 每次点击item回调事件和数据给父组件
onEmitSwitchChange: Function; onEmitSwitchChange: Function;
onEmitEndPlan: Function; onEmitEndPlan: Function;
onsuccess:Function
} }
function Index({ function Index({
currentWorkModeType, currentWorkModeType,
@ -17,6 +18,7 @@ function Index({
onEmitStartNurse, onEmitStartNurse,
onEmitSwitchChange, onEmitSwitchChange,
onEmitEndPlan, onEmitEndPlan,
onsuccess
}: Props) { }: Props) {
const onStartNurse = () => { const onStartNurse = () => {
onEmitStartNurse(); onEmitStartNurse();
@ -35,14 +37,18 @@ function Index({
<View className="iot-footer"> <View className="iot-footer">
{currentWorkModeType === 3 && ( {currentWorkModeType === 3 && (
<Block> <Block>
{!isRuningTest ? ( {isRuningTest === 1 ? (
<View className="btn " onClick={onStartNurse}> <View className="btn" onClick={onStartNurse}>
</View> </View>
) : ( ) : isRuningTest === 2 ? (
<View className="btn">...</View> <View className="btn">...</View>
)} ) : isRuningTest === 3 ? (
</Block> <View className="btn" onClick={onStartNurse}></View>
) : (
<View className="btn" onClick={onsuccess}></View>
)}
</Block>
)} )}
{currentWorkModeType === 2 && ( {currentWorkModeType === 2 && (

@ -26,14 +26,12 @@ function Index({
onEmitShowAll, onEmitShowAll,
onModeLockOpen, onModeLockOpen,
}: Props) { }: Props) {
let BaseList = ModeList.filter((item) => item.modeClass === 1); // 基础护理 let BaseList = ModeList.filter((item) => item.modeClass === 1); // 基础护理
let ZoneList = ModeList.filter((item) => item.modeClass === 2); // 专区护理 let ZoneList = ModeList.filter((item) => item.modeClass === 2); // 专区护理
let PermeationList = ModeList.filter((item) => item.modeClass === 3); // 专研促渗 let PermeationList = ModeList.filter((item) => item.modeClass === 3); // 专研促渗
let SensitiveList = ModeList.filter((item) => item.modeClass === 4); // 敏感期护理 let SensitiveList = ModeList.filter((item) => item.modeClass === 4); // 敏感期护理
let IntelligenceList = ModeList.filter((item) => item.modeClass === 5); // 智能测肤 let IntelligenceList = ModeList.filter((item) => item.modeClass === 5); // 智能测肤
console.log(activeModeID,'查看id',BaseList,ModeList); console.log(activeModeID, "查看id", BaseList, ModeList);
const onItemClick = (item) => { const onItemClick = (item) => {
if (item.lock) { if (item.lock) {
onModeLockOpen(); // 点击了锁定模式 onModeLockOpen(); // 点击了锁定模式
@ -71,7 +69,7 @@ function Index({
return ( return (
<View <View
key={"base_" + index} key={"base_" + index}
id={"base_" + item.id} id={"mode_" + item.id}
className={classnames("mode-item", { className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id, "mode-item-active": activeModeID === item.id,
})} })}
@ -129,7 +127,7 @@ function Index({
return ( return (
<View <View
key={"zone_" + index} key={"zone_" + index}
id={"zone_" + item.id} id={"mode_" + item.id}
onClick={onItemClick.bind(this, item)} onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", { className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id, "mode-item-active": activeModeID === item.id,
@ -187,7 +185,7 @@ function Index({
return ( return (
<View <View
key={"permeation_" + index} key={"permeation_" + index}
id={"permeation_" + item.id} id={"mode_" + item.id}
onClick={onItemClick.bind(this, item)} onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", { className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id, "mode-item-active": activeModeID === item.id,
@ -245,7 +243,7 @@ function Index({
return ( return (
<View <View
key={"sensitive_" + index} key={"sensitive_" + index}
id={"sensitive_" + item.id} id={"mode_" + item.id}
onClick={onItemClick.bind(this, item)} onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", { className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id, "mode-item-active": activeModeID === item.id,
@ -303,7 +301,7 @@ function Index({
return ( return (
<View <View
key={"intelligence_" + index} key={"intelligence_" + index}
id={"intelligence_" + item.id} id={"mode_" + item.id}
onClick={onItemClick.bind(this, item)} onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", { className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id, "mode-item-active": activeModeID === item.id,

@ -8,29 +8,41 @@ import "./index.less";
interface Props { interface Props {
isRuningTest: boolean; // 是否已开始水分测试 isRuningTest: boolean; // 是否已开始水分测试
TestModeStepIndex: number; // 当前测试步骤 TestModeStepIndex: number; // 当前测试步骤
stepList:any
stepIndex:any
} }
function Index(isRuningTest, TestModeStepIndex) { function Index({
const stepIndex = 0; isRuningTest,
stepList,
stepIndex
}:Props) {
// const stepIndex = 0;
const testIndex = 1; const testIndex = 1;
const stepList = [ // const stepList = [
{ // {
value: "Step1", // value: "Step1",
name: "额头", // name: "额头",
finish: false, // finish: false,
}, // schedule:0,
{ // color:["#ee0a24",'#c2e5f3']
value: "Step2", // },
name: "左脸颊", // {
finish: false, // value: "Step2",
}, // name: "左脸颊",
{ // finish: false,
value: "Step3", // schedule:0,
name: "右脸颊", // color:["#ee0a24",'#c2e5f3']
finish: false, // },
}, // {
]; // value: "Step3",
// name: "右脸颊",
// finish: false,
// schedule:0,
// color:["#ee0a24",'#c2e5f3']
// },
// ];
return ( return (
<Block> <Block>
<View> <View>
@ -69,7 +81,7 @@ function Index(isRuningTest, TestModeStepIndex) {
{stepIndex > index && ( {stepIndex > index && (
<Image <Image
className="finish_img" className="finish_img"
src={require("@/img/full-scran.png")} src={require("@/img/finished.png")}
mode="aspectFill" mode="aspectFill"
></Image> ></Image>
)} )}
@ -89,12 +101,12 @@ function Index(isRuningTest, TestModeStepIndex) {
style={{ style={{
width: "300rpx", width: "300rpx",
}} }}
percentage="80" percentage={stepList[stepIndex].schedule}
strokeWidth="14" strokeWidth="14"
showPivot={false} showPivot={false}
color="#C2E5F3" color={stepList[stepIndex].color}
></Progress> ></Progress>
{stepList[stepIndex].finish && 80 >= 99 ? ( {stepList[stepIndex].finish ? (
<Image <Image
className="finish_img" className="finish_img"
src={require("@/img/finished.png")} src={require("@/img/finished.png")}

Loading…
Cancel
Save