diff --git a/src/moduleIOT/pages/iotCarePlan/FR200.less b/src/moduleIOT/pages/iotCarePlan/FR200.less index 231581f..ea47e89 100644 --- a/src/moduleIOT/pages/iotCarePlan/FR200.less +++ b/src/moduleIOT/pages/iotCarePlan/FR200.less @@ -1 +1,5 @@ @import url(./WL200.less); + +.show { + display: none; +} diff --git a/src/moduleIOT/pages/iotCarePlan/FR200.tsx b/src/moduleIOT/pages/iotCarePlan/FR200.tsx index e99ade6..5ca9beb 100644 --- a/src/moduleIOT/pages/iotCarePlan/FR200.tsx +++ b/src/moduleIOT/pages/iotCarePlan/FR200.tsx @@ -3,16 +3,15 @@ import dayjs from "dayjs"; import classnames from "classnames"; import { debounce } from "lodash"; -// eslint-disable-next-line import/no-named-as-default import React, { Component, PropsWithChildren, useEffect, useState, } from "react"; - -import Echarts from "./components/Echart/index"; -import Gears from "./components/Gears/index"; +/*** redux ***/ +import { connect } from "react-redux"; +/*** redux end ***/ import { Block, View, @@ -23,9 +22,27 @@ import { Button, } from "@tarojs/components"; -/*** redux ***/ -import { connect } from "react-redux"; -/*** redux end ***/ +import { + notifyBLECharacteristicValueChange, + sendCommand, +} from "@/utils/bluetoothWXAPI"; +import { + deviceCommandSamples, + bleCommandSamples, +} from "@/components/bluetoot/connection/wl200"; + +import { minSecToS, s_to_ms, s_to_hms, sleep, s_to_s } from "@/utils/util"; +// import { DeviceToolKit as DeviceToolKitWE100 } from "@flossom-npm/iot-translater-we100"; +import { + DeviceToolKit as DeviceToolKitWM, + TResponseFromDevice as TResponseFromDeviceWM, +} from "@flossom-npm/iot-translater"; +import commandMap from "@/utils/commandMap"; +import { Popup } from "@antmjs/vantui"; +import { fr200BleCommand } from "@/components/bluetoot/connection/fr200"; + +import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI"; +import { InstrumentInfo } from "@/utils/Interface"; /* 公共组件 */ import Navbar from "@/components/navbar/navbar"; @@ -45,28 +62,13 @@ import Footer from "./components/Footer/FR200"; import WaterTest from "./components/WaterTest/index"; /* 本页组件 END */ -import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI"; -import { InstrumentInfo } from "@/utils/Interface"; +import Echarts from "./components/Echart"; +import Gears from "./components/Gears"; + + import "./FR200.less"; -import { - notifyBLECharacteristicValueChange, - sendCommand, -} from "@/utils/bluetoothWXAPI"; -import { - deviceCommandSamples, - bleCommandSamples, -} from "@/components/bluetoot/connection/wl200"; -import { minSecToS, s_to_ms, s_to_hms, sleep, s_to_s } from "@/utils/util"; -// import { DeviceToolKit as DeviceToolKitWE100 } from "@flossom-npm/iot-translater-we100"; -import { - DeviceToolKit as DeviceToolKitWM, - TResponseFromDevice as TResponseFromDeviceWM, -} from "@flossom-npm/iot-translater"; -import commandMap from "@/utils/commandMap"; -import { Popup } from "@antmjs/vantui"; -import { fr200BleCommand } from "@/components/bluetoot/connection/fr200"; const deviceToolKitInstanceFR200 = new DeviceToolKitWM("FR200"); let deviceToolKitInstance = deviceToolKitInstanceFR200; @@ -220,6 +222,9 @@ class IotCarePlanFR200 extends Component { // isFirstEntryMode: false, // 模式首次打开 isShowHistoryMsg: false, // 是否显示正在同步历史 + showEcharts: false, + echartsData: '' //传给echarts图表的数据 + }; } @@ -272,10 +277,11 @@ class IotCarePlanFR200 extends Component { this.initData(); this.getInstrumentClockSummary(); this.getInstrumentClockDetail(); + } - componentDidMount() {} + componentDidMount() { } - componentWillUnmount() {} + componentWillUnmount() { } componentDidShow() { console.log("页面显示了"); @@ -423,6 +429,10 @@ class IotCarePlanFR200 extends Component { this.modeCurrentFun(res.data.data[0]); }, 100); } + let res1 = res.data.data.find(e => e.id == this.state.activeModeID) + setTimeout(() => { + this.modeCurrentFun(res1); + }, 100); } else { this.setState({ ModeList: [] }); } @@ -501,6 +511,15 @@ class IotCarePlanFR200 extends Component { currentWorkModeType, }); + setTimeout(() => { + // 设置时间组合 + if (data.serviceData.length > 0) { + this.setServiceTimeData(); + } + + + }); + // 开发中,暂时允许直接切换 // 每次切换模式时清空一下历史数据 this.changeItemUpdateFR200NursingHistory(); @@ -672,9 +691,27 @@ class IotCarePlanFR200 extends Component { this.showTips("检测到您的设备没有紧贴肌肤,请紧贴肌肤后重新尝试"); }); }; + look() { + let that = this + // this.setState({ showEcharts: !this.state.showEcharts }); + let stop = 0 + let time = setInterval(function () { + stop++ + let random = Math.random(); + that.setState({ echartsData: random }) + if (stop >= 20) { + clearInterval(time) + } + }, 1000) + + + } + updata() { + + } // 绘制能量图 - drawProwerPicture() {} + drawProwerPicture() { } /** 切换光照 */ onSwitchChange = async () => { @@ -1675,6 +1712,7 @@ class IotCarePlanFR200 extends Component { console.log("保存setFR200NursingHistory"); }; /** 更新WL200护理历史运行时间 */ + updateFR200NursingHistory = (data: any = null, jsonStatus = null) => { this.FR200NursingHistory = Taro.getStorageSync("FR200NursingHistory"); @@ -1692,6 +1730,8 @@ class IotCarePlanFR200 extends Component { if (!params.dataArray) params.dataArray = []; params.dataArray.push(jsonStatus); params.jsonStatus = jsonStatus; + + } } Taro.setStorageSync("FR200NursingHistory", params); @@ -1700,7 +1740,7 @@ class IotCarePlanFR200 extends Component { // 基础模式可在这里调用函数更新图标Echarts // 最新一条数据jsonStatus // 注意事项:只拿working状态 - // todo + // todo } else { this.setFR200NursingHistory(jsonStatus); } @@ -2011,11 +2051,11 @@ class IotCarePlanFR200 extends Component { let report = true; go( "/recoding/pages/face_report_one/face_report_one?id=" + - id + - "&report=" + - report + - "&obj=" + - JSON.stringify(obj) + id + + "&report=" + + report + + "&obj=" + + JSON.stringify(obj) ); } else if ("moistureTest" === nursingData.workMode) { console.log("水分测试"); @@ -2027,6 +2067,10 @@ class IotCarePlanFR200 extends Component { "&report=" + report ); + // go( + // "/recoding/pages/face_report/face_report?id=" + + // this.state.currentDevice.id + // ); } }; @@ -2177,6 +2221,10 @@ class IotCarePlanFR200 extends Component { isShowHistoryMsg, isModeLock, TestModeStepIndex, + showEcharts, + echartsData, + isShowReReadRecordConnect, + currentServiceData } = this.state; return ( @@ -2192,19 +2240,19 @@ class IotCarePlanFR200 extends Component { { isLarge isClose isShow={isEndCarePlan} - title="提示" - content="是否结束护理" - textAlgin="center" - cancelButtonText="取消" - confirmButtonText="确定" + title='提示' + content='是否结束护理' + textAlgin='center' + cancelButtonText='取消' + confirmButtonText='确定' close={this.cancelEndBtn} confirm={this.confirmEndBtn} /> @@ -2228,7 +2276,7 @@ class IotCarePlanFR200 extends Component { isLarge isClose isShow={isSwitchActiveMode} - title="护理模式切换" + title='护理模式切换' content={ { onModeLockOpen={this.onModeLockOpen} /> } - textAlgin="center" - cancelButtonText="取消" - confirmButtonText="确定" + textAlgin='center' + cancelButtonText='取消' + confirmButtonText='确定' close={this.cancelModeSwitchBtn} confirm={this.confirmModeSwitchBtn} /> @@ -2254,7 +2302,7 @@ class IotCarePlanFR200 extends Component { isShow={isShowStepTips} isLarge isFirstEntry={false} - confirmButtonText="知道了" + confirmButtonText='知道了' data={ActiveModeItem.openSourceData} close={this.closeStepTips} /> @@ -2263,10 +2311,10 @@ class IotCarePlanFR200 extends Component { @@ -2275,11 +2323,11 @@ class IotCarePlanFR200 extends Component { isShow={isShowErrorTipsText} isClose zIndex={10020} - myClassName="level-up" - title="提示" + myClassName='level-up' + title='提示' content={errorTipsText} - confirmButtonText="知道了" - textAlgin="center" + confirmButtonText='知道了' + textAlgin='center' close={this.closeErrorTipsText} confirm={this.closeErrorTipsText} /> @@ -2288,17 +2336,17 @@ class IotCarePlanFR200 extends Component { isShow={isShowTipsSave} isClose zIndex={10020} - myClassName="level-up" - title="提示" + myClassName='level-up' + title='提示' content={ 当前模式已护理部分时间 是否保存护理记录 } - cancelButtonText="取消" - confirmButtonText="确认" - textAlgin="center" + cancelButtonText='取消' + confirmButtonText='确认' + textAlgin='center' close={this.closeTipsSave} cancel={this.cancelTipsSave} confirm={this.confirmTipsSave} @@ -2307,11 +2355,11 @@ class IotCarePlanFR200 extends Component { { /*不需要做处理*/ }} @@ -2322,57 +2370,69 @@ class IotCarePlanFR200 extends Component { deviceInfo={currentDevice} close={this.connectionClose} isDisconnect={!isConnectionBlutoot} - offlineChange={() => {}} + offlineChange={() => { }} pairingChange={this.pairingChange} - upgradeFun={() => {}} + upgradeFun={() => { }} /> )} - 正在同步护理记录... + 正在同步护理记录... - - + + - - - - + + + 护理时间: - {currentTime} + {currentTime} - + { onModeLockOpen={this.onModeLockOpen} /> )} + + + + {/* {(ActiveModeItem.modeType === "face" || - ActiveModeItem.modeType === "eyes") && ( - - - - )} */} - {/* - - */} + ActiveModeItem.modeType === "eyes") && } */} {(ActiveModeItem.modeType === "maskPenetration" || ActiveModeItem.modeType === "essence") && ( - - )} + + )} {ActiveModeItem.modeType === "moistureTest" && ( (null); - const option: EChartOption = { - + const [options, setOptions] = useState({ + animation: false, grid: { // 让图表占满容器 top: "28rpx", @@ -258,14 +256,82 @@ function Index() { }, }, ], - }; + }) const level = [8, 7, 6, 5, 4, 3, 2]; - const full = () => { - let box = document.getElementById("box"); - box?.classList.add('fullscreen') - } + const [newOptions, setNewOptions] = useState(options) + const [newData, setNewData] = useState(0) + const full = useCallback(() => { + // let box = document.getElementById("box"); + // box?.classList.add('fullscreen') + + + let stop = 0 + // let time = setInterval(function () { + // stop++ + let option = JSON.parse(JSON.stringify(options)) + let num = Math.floor(Math.random() * 9) + let count = 0 + options.series.map(item => { + if (item.type === 'line') { + item.data.splice(0, 1) + item.data.push(num) + } + if (item.type === 'bar') { + count++ + item.data.splice(0, 1) + if (count <= num) { + item.data.push(1) + } else { + item.data.push(0) + } + } + }) + console.log(option); + + // 更新图表数据 + setNewOptions(option) + // if (stop > 20) { + // clearInterval(time) + // } + // }, 1000) + }, [data]) + + + useEffect(() => { + setOptions(newOptions) + }, [newOptions]); + + useEffect(() => { + setNewData(data) + }, [data]); + + useEffect(() => { + let option = JSON.parse(JSON.stringify(options)) + let num = Math.floor(newData * 9) + let count = 0 + options.series.map(item => { + if (item.type === 'line') { + item.data.splice(0, 1) + item.data.push(num) + } + if (item.type === 'bar') { + count++ + item.data.splice(0, 1) + if (count <= num) { + item.data.push(1) + } else { + item.data.push(0) + } + } + }) + console.log(option, data); + + // 更新图表数据 + setNewOptions(option) + }, [newData]) + // 当 someProp 变化时执行 // const quanping = () => { // T.setPageOrientation({ // orientation: "portrait", @@ -278,20 +344,21 @@ function Index() { // }, + return ( - + 实时能量 {level.map((item) => ( diff --git a/src/recoding/pages/moisture_test_report/moisture_test_report.tsx b/src/recoding/pages/moisture_test_report/moisture_test_report.tsx index 5203dd7..9b95f9a 100644 --- a/src/recoding/pages/moisture_test_report/moisture_test_report.tsx +++ b/src/recoding/pages/moisture_test_report/moisture_test_report.tsx @@ -1,5 +1,7 @@ import { Block, View, Text, Image, Input, Button } from "@tarojs/components"; import { Component, PropsWithChildren, useEffect, useState } from "react"; +import { go } from "@/utils/traoAPI"; +import { InstrumentInfo } from "@/utils/Interface"; import "taro-ui/dist/style/components/button.scss"; // 按需引入 import Taro from "@tarojs/taro"; @@ -12,7 +14,6 @@ import { setMobile } from "@/store/features/userInfo"; import Navbar from "@/components/navbar/navbar"; import Echarts from "./Echarts/index"; import "./moisture_test_report.less"; -import { go } from "@/utils/traoAPI"; class MoistureTestReport extends Component { constructor(props) { @@ -34,6 +35,7 @@ class MoistureTestReport extends Component { rightFace: 0 } }, + instrumentId: 0, isClock: false, xinde: '', imglist: [], @@ -72,9 +74,19 @@ class MoistureTestReport extends Component { reportData.shuifenGear.rightFace = gear } }) - this.setState({ reportData, modeId: option.modeId }); + this.setState({ reportData, modeId: option.modeId, instrumentId: option.id }); + this.moistureTest() } async initData() { } + async moistureTest() { + let data = { + queryDate: this.state.reportData.curDate, + instrumentId: this.state.instrumentId + } + let res = await InstrumentInfo.fr200.moistureTest(data); + + } + toIndex() { Taro.reLaunch({ url: "/pages/index/index" }); } @@ -83,7 +95,7 @@ class MoistureTestReport extends Component { } render() { - let { name, imgUrl, reportData, reportData1, isClock, xinde, imglist, id, show, modeId } = this.state + let { name, imgUrl, reportData, reportData1, isClock, xinde, imglist, id, show, modeId, instrumentId } = this.state const getStatusData = (level) => { var bgCssData = { diff --git a/src/recoding/pages/recording/recording.tsx b/src/recoding/pages/recording/recording.tsx index c55b2ba..d562116 100644 --- a/src/recoding/pages/recording/recording.tsx +++ b/src/recoding/pages/recording/recording.tsx @@ -299,8 +299,8 @@ export default class Recording extends Component { setStorageSync("instrument_detail", instrument); } }) - - if ([1,2,3,4,5].includes(item.jumpType)) { + + if ([1, 2, 3, 4, 5].includes(item.jumpType)) { this.One(item); } else if (item.jumpType === 0) { this.two(item); @@ -309,20 +309,20 @@ export default class Recording extends Component { } else { this.AllDevice(item); } - + // let report =false // go("/pages/face_report/face_report?id=" + id + "&recordId=" + recordId+ "&report=" + report ); } // 打开第一种类型 One = async (item) => { - + let report = false; - let nursingData=JSON.parse(item.nursingData) - let obj ={ - modeName:item.modeName, - data:nursingData - } - console.log("打开第一种类型", item,obj); + // let nursingData = JSON.parse(item.nursingData) + // let obj = { + // modeName: item.modeName, + // data: nursingData + // } + // console.log("打开第一种类型", item, obj); go( "/recoding/pages/face_report_one/face_report_one?id=" + item.id + @@ -344,7 +344,7 @@ export default class Recording extends Component { }; // 打开第三种类型 three = async (item) => { - go(`/recoding/pages/moisture_test_report/moisture_test_report?data=${item.nursingData}&date=${item.createTime}&modeId=${item.modeId}`); + go(`/recoding/pages/moisture_test_report/moisture_test_report?data=${item.nursingData}&date=${item.createTime}&modeId=${item.modeId}&id=${item.instrumentId}`); }; // 打开其他类型 AllDevice = async (item) => { diff --git a/src/utils/Interface.js b/src/utils/Interface.js index 8e89ec0..5222a93 100644 --- a/src/utils/Interface.js +++ b/src/utils/Interface.js @@ -437,6 +437,15 @@ export const InstrumentInfo = { }); }, }, + fr200:{ + // 查询用户FR200水分报告护理记录 + moistureTest: (data) => { + return Ajax({ + url: "/nursingLog/record/fr200/moistureTest" + paramsToUrlQueryString(data), + method: "get", + }); + }, + } }; //localhost:9204/instrument/getInstrumentInfoBySerial