临时提交

master
blak-kong 2 years ago
parent 6305f2c66a
commit 1e5da4f48f

@ -57,21 +57,27 @@ export const fr200DeviceControlCommand = {
}, },
/** /**
* '脸部' = 'workFace',
* '眼部' = 'workEye',
* '颈纹' = 'workNeck',
* '进入水分测试模式' = 'switchTestMode', * '进入水分测试模式' = 'switchTestMode',
* '启动水分测试模式' = 'startTestMode', * '启动水分测试模式' = 'startTestMode',
* face * face: "01", 面部
* eyes * eyes: "02", 脸部
* neck * nasolabialFold: "03", 法令纹
* moistureTest * mandibularLine: "04", 下颌线
* led: "05", led
* moistureTest: "06", 水分测试
* maskPenetration: "07",面膜促渗
* essence: "08", 精华模式
* headLiftingPro: "09", 抬头纹Pro
* neck: "0A", 颈纹
* partition: "11", 分区模式 废弃VM1001
* ignore: "255", 不改变/无模式
*/ */
// 普通工作模式 // 普通工作模式
work: { work: {
commandType: "DeviceControl", commandType: "DeviceControl",
workStatus: "working", workStatus: "working",
workMode: "", // face workMode: "ignore", // face
}, },
// 切换/进入水分测试 // 切换/进入水分测试
switchTestMode: { switchTestMode: {

@ -459,7 +459,7 @@ class ConnectionBluetoot extends Component<any, any> {
return jsonStatus; return jsonStatus;
} }
/** 7.通知BLE特征值更改 */ /** 7.通知BLE特征值更改 连接成功需拿到响应判断是否需要升级,然后跳转详情页 */
notifyBLECharacteristicValueChange() { notifyBLECharacteristicValueChange() {
console.log("7.通知BLE特征值更改"); console.log("7.通知BLE特征值更改");
const { deviceInfo } = this.props; const { deviceInfo } = this.props;

@ -10,8 +10,8 @@ import React, {
useState, useState,
} from "react"; } from "react";
import Echarts from "./components/Echart/index"; // import Echarts from "./components/Echart/index";
import Gears from "./components/Gears/index" import Gears from "./components/Gears/index";
import { import {
Block, Block,
View, View,
@ -41,7 +41,7 @@ import ConnectionBluetoot from "@/components/bluetoot/connection";
import ElectricityView from "./components/ElectricityView/index"; import ElectricityView from "./components/ElectricityView/index";
import ModeListView from "./components/ModeList/FR200"; import ModeListView from "./components/ModeList/FR200";
import ModeContent from "./components/ModeContent/FR200"; import ModeContent from "./components/ModeContent/FR200";
import Footer from "./components/Footer"; import Footer from "./components/Footer/FR200";
/* 本页组件 END */ /* 本页组件 END */
import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI"; import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI";
@ -129,10 +129,10 @@ class IotCarePlanFR200 extends Component<any, any> {
workMode: "", //当前模式 workMode: "", //当前模式
// 挡位调节组件参数 // 挡位调节组件参数
GearData:[ GearData: [
{name:'额头',forehead:5,Total:10}, { name: "额头", forehead: 5, Total: 10 },
{name:'左脸颊',forehead:6,Total:10}, { name: "左脸颊", forehead: 6, Total: 10 },
{name:'右脸颊',forehead:2,Total:10}, { name: "右脸颊", forehead: 2, Total: 10 },
], ],
gear: { gear: 1 }, gear: { gear: 1 },
@ -334,19 +334,17 @@ class IotCarePlanFR200 extends Component<any, any> {
} }
async init() { async init() {
// 查询自定义设备指令 // 查询离线记录汇总
const queryInstructionParams = { const queryInstructionParams = {
commandType: "InfoQuery", commandType: "InfoQuery",
infoQueryType: "customModeInfo", infoQueryType: "offlineClockInInfo",
dataType: "summary",
}; };
let commandBuffer = deviceToolKitInstance.toBleCommand( let commandBuffer = deviceToolKitInstance.toBleCommand(
queryInstructionParams as any queryInstructionParams as any
); );
sendCommand({ value: commandBuffer }).then((res) => { sendCommand({ value: commandBuffer }).then((res) => {
console.log( console.log("查询查询离线记录汇总 参数为=>", queryInstructionParams);
"查询自定义组合模式指令发送成功 参数为=>",
queryInstructionParams
);
}); });
// 监听蓝牙连接状态改变 // 监听蓝牙连接状态改变
@ -370,7 +368,7 @@ class IotCarePlanFR200 extends Component<any, any> {
this.setState({ this.setState({
isConnectShow: true, // 打开蓝牙链接弹窗 isConnectShow: true, // 打开蓝牙链接弹窗
isConnectionBlutoot: false, // 断开蓝牙 isConnectionBlutoot: false, // 断开蓝牙
isShowCountdown: false, // 关闭倒计时,防止倒计时还在运行 // isShowCountdown: false, // 关闭倒计时,防止倒计时还在运行
}); });
this.footerIsDisabled(); this.footerIsDisabled();
}; };
@ -515,21 +513,21 @@ class IotCarePlanFR200 extends Component<any, any> {
return false; return false;
} }
// 加减组件- 减号操作 // 加减组件- 减号操作
handleMinus = async (data,inde) => { handleMinus = async (data, inde) => {
let GearData =this.state.GearData let GearData = this.state.GearData;
if(GearData[inde].forehead !== 1){ if (GearData[inde].forehead !== 1) {
GearData[inde].forehead = GearData[inde].forehead - 1 GearData[inde].forehead = GearData[inde].forehead - 1;
this.setState({GearData}) this.setState({ GearData });
} }
}; };
// 加减组件- 加号操作 // 加减组件- 加号操作
handleAdd = async (data,inde) => { handleAdd = async (data, inde) => {
let GearData =this.state.GearData let GearData = this.state.GearData;
if(GearData[inde].forehead !== GearData[inde].Total){ if (GearData[inde].forehead !== GearData[inde].Total) {
GearData[inde].forehead = GearData[inde].forehead + 1 GearData[inde].forehead = GearData[inde].forehead + 1;
this.setState({GearData}) this.setState({ GearData });
} }
}; };
/** 切换护理模式 */ /** 切换护理模式 */
switchModeCurrentFun = async (data) => { switchModeCurrentFun = async (data) => {
@ -1248,10 +1246,10 @@ handleAdd = async (data,inde) => {
} }
// 仅在切换模式的时候,弹窗倒计时. // 仅在切换模式的时候,弹窗倒计时.
if (type === "switch") { // if (type === "switch") {
let downNum = CountDownTime[ActiveModeItem.modeType] || 3; // let downNum = CountDownTime[ActiveModeItem.modeType] || 3;
this.showCountdownFun(downNum, () => {}); // 倒计时弹窗 // this.showCountdownFun(downNum, () => {}); // 倒计时弹窗
} // }
// 开始执行护理 // 开始执行护理
this.workStatus = MODE_WORKING_ENUM.WORKING; // 不管当前什么状态,直接设为工作状态 this.workStatus = MODE_WORKING_ENUM.WORKING; // 不管当前什么状态,直接设为工作状态
@ -2158,11 +2156,12 @@ handleAdd = async (data,inde) => {
/> />
)} )}
<Echarts></Echarts> {/* <Echarts></Echarts> */}
<Gears <Gears
onEmitMinus={this.handleMinus} onEmitMinus={this.handleMinus}
onEmitAdd={this.handleAdd} onEmitAdd={this.handleAdd}
GearData={GearData}></Gears> GearData={GearData}
></Gears>
</View> </View>
<Footer <Footer

@ -11,7 +11,7 @@ import React, {
useRef, useRef,
} from "react"; } from "react";
import Echarts from "./components/Echart/index"; // import Echarts from "./components/Echart/index";
import { import {
Block, Block,
View, View,
@ -41,7 +41,7 @@ import ConnectionBluetoot from "@/components/bluetoot/connection";
import ElectricityView from "./components/ElectricityView/index"; import ElectricityView from "./components/ElectricityView/index";
import ModeListView from "./components/ModeList/WL200"; import ModeListView from "./components/ModeList/WL200";
import ModeContent from "./components/ModeContent/WL200"; import ModeContent from "./components/ModeContent/WL200";
import Footer from "./components/Footer"; import Footer from "./components/Footer/WL200";
/* 本页组件 END */ /* 本页组件 END */
import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI"; import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI";
@ -240,9 +240,9 @@ class IotCarePlanWL200 extends Component<any, any> {
this.getWL200NursingHistory(); this.getWL200NursingHistory();
this.initData(); this.initData();
} }
componentDidMount() { } componentDidMount() {}
componentWillUnmount() { } componentWillUnmount() {}
componentDidShow() { componentDidShow() {
console.log("页面显示了"); console.log("页面显示了");
@ -572,7 +572,7 @@ class IotCarePlanWL200 extends Component<any, any> {
this.onNursingTap(); this.onNursingTap();
// 倒计时弹窗: 倒计时完成后,自动开始,并判断弹窗 // 倒计时弹窗: 倒计时完成后,自动开始,并判断弹窗
let downNum = CountDownTime[this.state.ActiveModeItem.modeType] || 3; let downNum = CountDownTime[this.state.ActiveModeItem.modeType] || 3;
this.showCountdownFun(downNum, () => { }); this.showCountdownFun(downNum, () => {});
}, 500); }, 500);
return; return;
@ -604,7 +604,7 @@ class IotCarePlanWL200 extends Component<any, any> {
}; };
// 绘制能量图 // 绘制能量图
drawProwerPicture() { } drawProwerPicture() {}
/** 切换光照 */ /** 切换光照 */
onSwitchChange = async () => { onSwitchChange = async () => {
@ -1369,7 +1369,7 @@ class IotCarePlanWL200 extends Component<any, any> {
// 仅在切换模式的时候,弹窗倒计时. // 仅在切换模式的时候,弹窗倒计时.
if (type === "switch") { if (type === "switch") {
let downNum = CountDownTime[ActiveModeItem.modeType] || 3; let downNum = CountDownTime[ActiveModeItem.modeType] || 3;
this.showCountdownFun(downNum, () => { }); // 倒计时弹窗 this.showCountdownFun(downNum, () => {}); // 倒计时弹窗
} }
// 开始执行护理 // 开始执行护理
@ -2024,22 +2024,21 @@ class IotCarePlanWL200 extends Component<any, any> {
}; };
handleClickVideo = () => { handleClickVideo = () => {
let videoRef = Taro.createVideoContext('myVideo') let videoRef = Taro.createVideoContext("myVideo");
// 开始播放 // 开始播放
videoRef.play() videoRef.play();
// 暂停播放 // 暂停播放
videoRef.pause() videoRef.pause();
console.log('暂停播放', videoRef); console.log("暂停播放", videoRef);
}; };
handleClicksound = () => { handleClicksound = () => {
let isMuted = this.state.isMuted let isMuted = this.state.isMuted;
isMuted = !isMuted isMuted = !isMuted;
this.setState({ isMuted }) this.setState({ isMuted });
} };
onPlay = (e) => { onPlay = (e) => {
console.log('出发', e); console.log("出发", e);
};
}
customBack = () => { customBack = () => {
Taro.reLaunch({ url: "/pages/index/index" }); Taro.reLaunch({ url: "/pages/index/index" });
}; };
@ -2117,8 +2116,8 @@ class IotCarePlanWL200 extends Component<any, any> {
<PopupInstrumentUploadTips <PopupInstrumentUploadTips
isShow={isFirstTipShow} isShow={isFirstTipShow}
zIndex={10020} zIndex={10020}
myClassName='level-up' myClassName="level-up"
title='打卡介绍' title="打卡介绍"
data={nurseInfo} data={nurseInfo}
close={this.onTipShowClose} close={this.onTipShowClose}
confirm={this.onTipShowClose} confirm={this.onTipShowClose}
@ -2130,11 +2129,11 @@ class IotCarePlanWL200 extends Component<any, any> {
isLarge isLarge
isClose isClose
isShow={isEndCarePlan} isShow={isEndCarePlan}
title='提示' title="提示"
content='是否结束护理' content="是否结束护理"
textAlgin='center' textAlgin="center"
cancelButtonText='取消' cancelButtonText="取消"
confirmButtonText='确定' confirmButtonText="确定"
close={this.cancelEndBtn} close={this.cancelEndBtn}
confirm={this.confirmEndBtn} confirm={this.confirmEndBtn}
/> />
@ -2142,7 +2141,7 @@ class IotCarePlanWL200 extends Component<any, any> {
isLarge isLarge
isClose isClose
isShow={isSwitchActiveMode} isShow={isSwitchActiveMode}
title='护理模式切换' title="护理模式切换"
content={ content={
<ModeListView <ModeListView
ModeID={ModeID} ModeID={ModeID}
@ -2156,9 +2155,9 @@ class IotCarePlanWL200 extends Component<any, any> {
onModeLockOpen={this.onModeLockOpen} onModeLockOpen={this.onModeLockOpen}
/> />
} }
textAlgin='center' textAlgin="center"
cancelButtonText='取消' cancelButtonText="取消"
confirmButtonText='确定' confirmButtonText="确定"
close={this.cancelModeSwitchBtn} close={this.cancelModeSwitchBtn}
confirm={this.confirmModeSwitchBtn} confirm={this.confirmModeSwitchBtn}
/> />
@ -2168,7 +2167,7 @@ class IotCarePlanWL200 extends Component<any, any> {
isShow={isShowStepTips} isShow={isShowStepTips}
isLarge isLarge
isFirstEntry={false} isFirstEntry={false}
confirmButtonText='知道了' confirmButtonText="知道了"
data={ActiveModeItem.openSourceData} data={ActiveModeItem.openSourceData}
close={this.closeStepTips} close={this.closeStepTips}
/> />
@ -2177,10 +2176,10 @@ class IotCarePlanWL200 extends Component<any, any> {
<PopupAlert <PopupAlert
isShow={isNotEnoughTime} isShow={isNotEnoughTime}
isClose isClose
title='提示' title="提示"
content='您的本次护理时间不足,请重新护理' content="您的本次护理时间不足,请重新护理"
confirmButtonText='确认' confirmButtonText="确认"
textAlgin='center' textAlgin="center"
close={this.closeNotEnoughTime} close={this.closeNotEnoughTime}
confirm={this.closeNotEnoughTime} confirm={this.closeNotEnoughTime}
/> />
@ -2189,11 +2188,11 @@ class IotCarePlanWL200 extends Component<any, any> {
isShow={isShowErrorTipsText} isShow={isShowErrorTipsText}
isClose isClose
zIndex={10020} zIndex={10020}
myClassName='level-up' myClassName="level-up"
title='提示' title="提示"
content={errorTipsText} content={errorTipsText}
confirmButtonText='知道了' confirmButtonText="知道了"
textAlgin='center' textAlgin="center"
close={this.closeErrorTipsText} close={this.closeErrorTipsText}
confirm={this.closeErrorTipsText} confirm={this.closeErrorTipsText}
/> />
@ -2202,17 +2201,17 @@ class IotCarePlanWL200 extends Component<any, any> {
isShow={isShowTipsSave} isShow={isShowTipsSave}
isClose isClose
zIndex={10020} zIndex={10020}
myClassName='level-up' myClassName="level-up"
title='提示' title="提示"
content={ content={
<Block> <Block>
<View></View> <View></View>
<View></View> <View></View>
</Block> </Block>
} }
cancelButtonText='取消' cancelButtonText="取消"
confirmButtonText='确认' confirmButtonText="确认"
textAlgin='center' textAlgin="center"
close={this.closeTipsSave} close={this.closeTipsSave}
cancel={this.cancelTipsSave} cancel={this.cancelTipsSave}
confirm={this.confirmTipsSave} confirm={this.confirmTipsSave}
@ -2221,11 +2220,11 @@ class IotCarePlanWL200 extends Component<any, any> {
<PopupStatus <PopupStatus
isShow={isShowNursingSuccess} isShow={isShowNursingSuccess}
isClose isClose
title='您已结束本次护理' title="您已结束本次护理"
type='success' type="success"
content='正在上传护理记录……' content="正在上传护理记录……"
confirmButtonText='知道了' confirmButtonText="知道了"
textAlgin='center' textAlgin="center"
close={() => { close={() => {
/*不需要做处理*/ /*不需要做处理*/
}} }}
@ -2236,52 +2235,51 @@ class IotCarePlanWL200 extends Component<any, any> {
deviceInfo={currentDevice} deviceInfo={currentDevice}
close={this.connectionClose} close={this.connectionClose}
isDisconnect={!isConnectionBlutoot} isDisconnect={!isConnectionBlutoot}
offlineChange={() => { }} offlineChange={() => {}}
pairingChange={this.pairingChange} pairingChange={this.pairingChange}
upgradeFun={() => { }} upgradeFun={() => {}}
/> />
)} )}
<Popup <Popup
show={isShowHistoryMsg} show={isShowHistoryMsg}
className='custom-popup' className="custom-popup"
overlay={false} overlay={false}
> >
<View className='sync-history-msg'>...</View> <View className="sync-history-msg">...</View>
</Popup> </Popup>
</View> </View>
<View> <View>
<View className='iot-main'> <View className="iot-main">
<View className='banner-box'> <View className="banner-box">
<View> <View>
{!isShowNurse && ( {!isShowNurse && (
<Video <Video
className='video-or-image' className="video-or-image"
src={ActiveModeItem.modeVideo} src={ActiveModeItem.modeVideo}
loop loop
id="myVideo" id="myVideo"
// ref={videoRef} // ref={videoRef}
onPlay={this.onPlay} onPlay={this.onPlay}
muted={isMuted} muted={isMuted}
/> />
)} )}
<button onClick={this.handleClicksound}>/</button> <button onClick={this.handleClicksound}>
/
</button>
{/* <button onClick={this.handleClickVideo}>播放/暂停</button> */} {/* <button onClick={this.handleClickVideo}>播放/暂停</button> */}
{isShowNurse && ( {isShowNurse && (
<Block> <Block>
{isStopNurse ? ( {isStopNurse ? (
<Image <Image
className='video-or-image' className="video-or-image"
src={currentServiceData.stopSource} src={currentServiceData.stopSource}
/> />
) : ( ) : (
<Image <Image
className='video-or-image' className="video-or-image"
src={currentServiceData.startSource} src={currentServiceData.startSource}
/> />
)} )}
@ -2289,25 +2287,25 @@ class IotCarePlanWL200 extends Component<any, any> {
)} )}
{errorTips && ( {errorTips && (
<Block> <Block>
<View className='msg-tips'> <View className="msg-tips">
<Image <Image
className='msg-tips-img' className="msg-tips-img"
src={require("@/img/tips.png")} src={require("@/img/tips.png")}
/> />
<View className='msg-tips-content'>{errorTips}</View> <View className="msg-tips-content">{errorTips}</View>
</View> </View>
</Block> </Block>
)} )}
</View> </View>
<View className='iot-device'> <View className="iot-device">
<View className='item'> <View className="item">
<Text className='device-time'> <Text className="device-time">
<Text className='time'>{currentTime}</Text> <Text className="time">{currentTime}</Text>
</Text> </Text>
</View> </View>
<View className='line' /> <View className="line" />
<ElectricityView <ElectricityView
Electricity={Electricity} Electricity={Electricity}
matrixElectricity={matrixElectricity} matrixElectricity={matrixElectricity}
@ -2338,7 +2336,7 @@ class IotCarePlanWL200 extends Component<any, any> {
/> />
)} )}
<Echarts></Echarts> {/* <Echarts></Echarts> */}
</View> </View>
<Footer <Footer

@ -1,8 +1,5 @@
import Taro from "@tarojs/taro";
import classnames from "classnames";
import { Block, View, Image, Text, CoverView } from "@tarojs/components"; import { Block, View, Image, Text, CoverView } from "@tarojs/components";
import { useState, useEffect } from "react"; import "./FR200.less";
import "./index.less";
interface Props { interface Props {
isShowNurse: boolean; isShowNurse: boolean;
@ -56,6 +53,7 @@ function Index({
)} )}
</Block> </Block>
)} )}
{isShowNurse && ( {isShowNurse && (
<View className="switch-btn-box"> <View className="switch-btn-box">
{!isDisabled && ( {!isDisabled && (

@ -0,0 +1,74 @@
.iot-footer {
position: fixed;
bottom: 0;
z-index: 99;
display: flex;
align-items: baseline;
width: 100%;
height: 153rpx;
background: #ffffff;
box-shadow: 0rpx -3rpx 7rpx 1rpx rgba(173, 191, 207, 0.21);
// padding-bottom: env(safe-area-inset-bottom);
box-sizing: border-box;
.btn {
width: 690rpx;
height: 90rpx;
background: #000;
border-radius: 45rpx;
color: #fff;
line-height: 90rpx;
text-align: center;
margin: 21rpx 49rpx 42rpx 30rpx;
font-size: 32rpx;
}
.text {
display: flex;
align-items: center;
font-size: 32rpx;
font-weight: bold;
color: #000;
}
.btn-disable {
background-color: #ccc !important; /* 设置按钮背景颜色为灰色 */
color: #fff !important; /* 设置按钮文字颜色为白色 */
border-color: #ccc !important; /* 设置按钮边框颜色为灰色 */
}
.switch-btn-box {
width: 100vw;
display: flex;
align-items: center;
margin-top: 34rpx;
.btn-item {
height: 70rpx;
display: flex;
flex: 1;
align-items: center;
justify-content: center;
.btn-icon {
width: 36rpx;
height: 36rpx;
margin-right: 18rpx;
}
.btn-text {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #000000;
}
}
.border-right {
border-right: 1px solid #ddd;
}
.btn-disable {
color: #fff !important; /* 设置按钮文字颜色为白色 */
border-color: #ccc !important; /* 设置按钮边框颜色为灰色 */
background-color: #fff !important; /* 设置按钮背景颜色为灰色 */
.btn-text {
color: #ccc !important; /* 设置按钮文字颜色为白色 */
border-color: #ccc !important; /* 设置按钮边框颜色为灰色 */
background-color: #fff !important; /* 设置按钮背景颜色为灰色 */
}
}
}
}

@ -0,0 +1,130 @@
import { Block, View, Image, Text, CoverView } from "@tarojs/components";
import "./WL200.less";
interface Props {
isShowNurse: boolean;
isStopNurse: boolean;
isDisabled: boolean; // 是否禁用开始暂停按钮:模式与连接设备是否一致
onEmitStartNurse: Function; // 每次点击item回调事件和数据给父组件
onEmitSwitchChange: Function;
onEmitEndPlan: Function;
onEmitErrorTips: Function; // 不可点击,提示错误
}
function Index({
isShowNurse,
isStopNurse,
isDisabled,
onEmitStartNurse,
onEmitSwitchChange,
onEmitEndPlan,
onEmitErrorTips,
}: Props) {
const onStartNurse = () => {
onEmitStartNurse();
};
const onSwitchChange = () => {
if (!isDisabled) {
onEmitSwitchChange();
}
};
const onEndPlan = () => {
onEmitEndPlan();
};
const onErrorTips = () => {
onEmitErrorTips();
};
return (
<Block>
<View className="iot-footer">
{!isShowNurse && (
<Block>
{isDisabled ? (
<View className="btn btn-disable" onClick={onStartNurse}>
</View>
) : (
<View className="btn" onClick={onStartNurse}>
</View>
)}
</Block>
)}
{isShowNurse && (
<View className="switch-btn-box">
{!isDisabled && (
<View className="btn-item border-right" onClick={onSwitchChange}>
{isStopNurse ? (
<Block>
<Image
className="btn-icon"
src={require("@/img/iot/start_nurse.png")}
mode="aspectFill"
/>
<Text className="btn-text"></Text>
</Block>
) : (
<Block>
<Image
className="btn-icon"
src={require("@/img/iot/pause_nurse.png")}
mode="aspectFill"
/>
<Text className="btn-text"></Text>
</Block>
)}
</View>
)}
{isDisabled && (
<View
className="btn-item border-right btn-disable"
onClick={onErrorTips}
>
{isStopNurse ? (
<Block>
<Image
className="btn-icon"
style="color: #ccc"
src={require("@/img/iot/start_nurse.png")}
mode="aspectFill"
/>
<Text className="btn-text" style="color: #ccc">
</Text>
</Block>
) : (
<Block>
<Image
className="btn-icon"
style="color: #ccc"
src={require("@/img/iot/pause_nurse.png")}
mode="aspectFill"
/>
<Text className="btn-text" style="color: #ccc">
</Text>
</Block>
)}
</View>
)}
<View className="btn-item" onClick={onEndPlan}>
<Image
className="btn-icon"
src={require("@/img/iot/over_nurse.png")}
mode="aspectFill"
/>
<Text className="btn-text"></Text>
</View>
</View>
)}
</View>
</Block>
);
}
export default Index;
Loading…
Cancel
Save