|
|
import Taro from "@tarojs/taro";
|
|
|
import classnames from "classnames";
|
|
|
import { Block, View, Image, Text, Input } from "@tarojs/components";
|
|
|
import { Popup, Progress, Slider } from "@antmjs/vantui";
|
|
|
import { useRef } from "react";
|
|
|
import Echarts, { EChartOption, EchartsHandle } from "taro-react-echarts";
|
|
|
import echarts from "@/utils/echarts.min.js";
|
|
|
|
|
|
import "./index.less";
|
|
|
|
|
|
interface Props {
|
|
|
Electricity: any;
|
|
|
matrixElectricity: any;
|
|
|
facialMaskConnectStatus: any;
|
|
|
}
|
|
|
|
|
|
function Index() {
|
|
|
const stepIndex = 0;
|
|
|
const testIndex = 1;
|
|
|
|
|
|
const stepList = [
|
|
|
{
|
|
|
value: "Step1",
|
|
|
name: "额头",
|
|
|
finish: false,
|
|
|
},
|
|
|
{
|
|
|
value: "Step2",
|
|
|
name: "左脸颊",
|
|
|
finish: false,
|
|
|
},
|
|
|
{
|
|
|
value: "Step3",
|
|
|
name: "右脸颊",
|
|
|
finish: false,
|
|
|
},
|
|
|
];
|
|
|
|
|
|
const gearLevel = {
|
|
|
currentGear: null,
|
|
|
//现在工作的档位
|
|
|
currentGearMode: "forehead",
|
|
|
//现在工作模式
|
|
|
forehead: 5,
|
|
|
leftCheek: 5,
|
|
|
rightCheek: 5,
|
|
|
};
|
|
|
const echartsRef = useRef<EchartsHandle>(null);
|
|
|
const option: EChartOption = {
|
|
|
grid: {
|
|
|
// 让图表占满容器
|
|
|
top: "28rpx",
|
|
|
left: "18rpx",
|
|
|
right: "28rpx",
|
|
|
bottom: "17rpx",
|
|
|
},
|
|
|
legend: {
|
|
|
show: false,
|
|
|
zlevel: -1,
|
|
|
},
|
|
|
xAxis: {
|
|
|
// name: '',
|
|
|
// nameGap: 5,
|
|
|
// nameTextStyle: {
|
|
|
// color: '#e4e4e4',
|
|
|
// fontSize:7
|
|
|
// },
|
|
|
type: "category",
|
|
|
axisLine: {
|
|
|
//坐标轴轴线相关设置。数学上的x轴
|
|
|
show: true,
|
|
|
lineStyle: {
|
|
|
color: "#cccccc",
|
|
|
},
|
|
|
},
|
|
|
axisLabel: {
|
|
|
//坐标轴刻度标签的相关设置
|
|
|
color: "#cccccc",
|
|
|
fontSize: 8,
|
|
|
},
|
|
|
axisTick: {
|
|
|
show: false,
|
|
|
},
|
|
|
data: [
|
|
|
"00:01",
|
|
|
"00:02",
|
|
|
"00:03",
|
|
|
"00:04",
|
|
|
"00:05",
|
|
|
"00:06",
|
|
|
"00:07",
|
|
|
"00:08",
|
|
|
"00:09",
|
|
|
"00:10",
|
|
|
],
|
|
|
},
|
|
|
yAxis: {
|
|
|
type: "value",
|
|
|
min: 0,
|
|
|
max: 8,
|
|
|
splitNumber: 8,
|
|
|
splitLine: {
|
|
|
show: false,
|
|
|
lineStyle: {
|
|
|
color: "#cccccc",
|
|
|
type: [4, 2],
|
|
|
dashOffset: 4,
|
|
|
},
|
|
|
},
|
|
|
axisLine: {
|
|
|
show: false,
|
|
|
},
|
|
|
axisLabel: {
|
|
|
show: false,
|
|
|
},
|
|
|
axisTick: {
|
|
|
show: false,
|
|
|
},
|
|
|
},
|
|
|
visualMap: {
|
|
|
z: 1,
|
|
|
top: 0,
|
|
|
right: 0,
|
|
|
seriesIndex: 0,
|
|
|
show: false,
|
|
|
pieces: [
|
|
|
{
|
|
|
gt: 0,
|
|
|
lte: 1,
|
|
|
color: "#fff8c9",
|
|
|
},
|
|
|
{
|
|
|
gt: 1,
|
|
|
lte: 2,
|
|
|
color: "#fff0c6",
|
|
|
},
|
|
|
{
|
|
|
gt: 2,
|
|
|
lte: 3,
|
|
|
color: "#ffe5c3",
|
|
|
},
|
|
|
{
|
|
|
gt: 3,
|
|
|
lte: 4,
|
|
|
color: "#ffdbbf",
|
|
|
},
|
|
|
{
|
|
|
gt: 4,
|
|
|
lte: 5,
|
|
|
color: "#ffcfbb",
|
|
|
},
|
|
|
{
|
|
|
gt: 5,
|
|
|
lte: 6,
|
|
|
color: "#ffbab5",
|
|
|
},
|
|
|
{
|
|
|
gt: 6,
|
|
|
lte: 7,
|
|
|
color: "#ffb4b3",
|
|
|
},
|
|
|
{
|
|
|
gt: 7,
|
|
|
lte: 8,
|
|
|
color: "#ffb4b3",
|
|
|
},
|
|
|
],
|
|
|
outOfRange: {
|
|
|
color: "#ff8410",
|
|
|
},
|
|
|
},
|
|
|
series: [
|
|
|
{
|
|
|
data: [2, 3, 5, 3, 5, 6, 8, 5, 6, 4],
|
|
|
type: "line",
|
|
|
smooth: true,
|
|
|
z: 1,
|
|
|
areaStyle: {},
|
|
|
color: "red",
|
|
|
},
|
|
|
{
|
|
|
data: [2, 3, 5, 3, 5, 6, 8, 5, 6, 4],
|
|
|
type: "line",
|
|
|
smooth: true,
|
|
|
symbolSize: 5,
|
|
|
lineStyle: {
|
|
|
color: "#ff8410",
|
|
|
width: 1,
|
|
|
},
|
|
|
itemStyle: {
|
|
|
color: "#ff8410",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "a",
|
|
|
data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
|
type: "bar",
|
|
|
barWidth: 12,
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#ffcf56",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "b",
|
|
|
data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
|
type: "bar",
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#febb22",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "c",
|
|
|
data: [0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
|
type: "bar",
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#ffac28",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "d",
|
|
|
data: [0, 0, 1, 0, 1, 1, 1, 1, 1, 1],
|
|
|
type: "bar",
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#ff8410",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "e",
|
|
|
data: [0, 0, 1, 0, 1, 1, 1, 1, 1, 0],
|
|
|
type: "bar",
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#f85804",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "f",
|
|
|
data: [0, 0, 0, 0, 0, 1, 1, 0, 1, 0],
|
|
|
type: "bar",
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#e02e14",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "h",
|
|
|
data: [0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
|
|
type: "bar",
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#b30016",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
name: "i",
|
|
|
data: [0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
|
|
type: "bar",
|
|
|
z: 2,
|
|
|
stack: "x",
|
|
|
visualMap: false,
|
|
|
itemStyle: {
|
|
|
color: "#750010",
|
|
|
},
|
|
|
},
|
|
|
],
|
|
|
};
|
|
|
|
|
|
const level = [8, 7, 6, 5, 4, 3, 2];
|
|
|
|
|
|
return (
|
|
|
<Block>
|
|
|
<View className="box">
|
|
|
<Echarts
|
|
|
echarts={echarts}
|
|
|
option={option}
|
|
|
ref={echartsRef}
|
|
|
// isPage={false}
|
|
|
// style自定义设置echarts宽高
|
|
|
style={{ width: "630rpx", height: "260rpx" }}
|
|
|
/>
|
|
|
<View className="box_background">
|
|
|
<Image className="full" src={require("@/img/full-scran.png")}></Image>
|
|
|
<View className="power">实时能量</View>
|
|
|
{level.map((item) => (
|
|
|
<View className="line" key={item}>
|
|
|
<View className="number">{item}</View>
|
|
|
<View className="bottom_line">8</View>
|
|
|
</View>
|
|
|
))}
|
|
|
<View className="line">
|
|
|
<View className="number">1</View>
|
|
|
</View>
|
|
|
<View className="time">时间</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
|
|
|
<Block>
|
|
|
<View>
|
|
|
<View className="water_test">
|
|
|
<View className="test_step flex aitems sb">
|
|
|
{stepList.map((item, index) => {
|
|
|
return (
|
|
|
<View className="step_block flex aitems" key={index}>
|
|
|
<View className="step_top flex aitems">
|
|
|
<View className="drop"></View>
|
|
|
<View className="step_num">{item.value}</View>
|
|
|
{index != 2 && <View className="line"></View>}
|
|
|
</View>
|
|
|
<View className="step_name">{item.name}</View>
|
|
|
</View>
|
|
|
);
|
|
|
})}
|
|
|
</View>
|
|
|
<View className="test_txt">
|
|
|
通过小紫弹的水分测试功能,对脸部的额头、左脸颊、右脸颊三个区域进行水分检测,并定制适合您的促渗档位方案
|
|
|
</View>
|
|
|
</View>
|
|
|
|
|
|
<View className="testing">
|
|
|
<View className="testing_header flex aitems">
|
|
|
{stepList.map((item, index) => {
|
|
|
return (
|
|
|
<View
|
|
|
className="items flex aitems jcenter"
|
|
|
key={index}
|
|
|
style={stepIndex == index ? "background: #fff" : ""}
|
|
|
>
|
|
|
{stepIndex > index && (
|
|
|
<Image
|
|
|
className="finish_img"
|
|
|
src={require("@/img/full-scran.png")}
|
|
|
mode="aspectFill"
|
|
|
></Image>
|
|
|
)}
|
|
|
<View className="value">{item.value}</View>
|
|
|
<View className="name">{item.name}</View>
|
|
|
</View>
|
|
|
);
|
|
|
})}
|
|
|
</View>
|
|
|
<View className="testing_content">
|
|
|
<View className="progress_box flex aitems">
|
|
|
<View className="title">
|
|
|
{stepList[stepIndex].name + "水分测试"}
|
|
|
</View>
|
|
|
{/* <view class='progress_block flex aitems'> */}
|
|
|
<Progress
|
|
|
style={{
|
|
|
width: "300rpx",
|
|
|
}}
|
|
|
percentage="80"
|
|
|
strokeWidth="14"
|
|
|
showPivot={false}
|
|
|
color="#C2E5F3"
|
|
|
></Progress>
|
|
|
{stepList[stepIndex].finish && 80 >= 99 ? (
|
|
|
<Image
|
|
|
className="finish_img"
|
|
|
src={require("@/img/finished.png")}
|
|
|
mode="aspectFill"
|
|
|
></Image>
|
|
|
) : (
|
|
|
<Image
|
|
|
className="finish_img"
|
|
|
src={require("@/img/no-finish.png")}
|
|
|
mode="aspectFill"
|
|
|
></Image>
|
|
|
)}
|
|
|
{/* </view> */}
|
|
|
</View>
|
|
|
{/* <view class='tips' wx:if='{{!finish}}'> */}
|
|
|
{/* 请参考视频指引,将仪器紧贴<text style='color: #000000'>额头区域</text> */}
|
|
|
{/* </view> */}
|
|
|
<View className="tips flex sb">
|
|
|
<View>
|
|
|
请参考视频指引,将仪器紧贴
|
|
|
{(testIndex == 1 || testIndex == 2 || testIndex == 4) && (
|
|
|
<Text
|
|
|
style={{
|
|
|
color: "#000000",
|
|
|
}}
|
|
|
>
|
|
|
{stepList[stepIndex].name + "区域"}
|
|
|
</Text>
|
|
|
)}
|
|
|
{testIndex == 1 && (
|
|
|
<Text>,并点击下方启动检测按钮进行测试</Text>
|
|
|
)}
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
|
|
|
<View>
|
|
|
<View className="gear_adjust">
|
|
|
<View className="title">档位调节</View>
|
|
|
<View className="gear_box">
|
|
|
<View className="gear flex aitems">
|
|
|
<View className="pos">额头</View>
|
|
|
<Slider
|
|
|
style={{
|
|
|
flex: "1",
|
|
|
}}
|
|
|
value={gearLevel.forehead}
|
|
|
min={1}
|
|
|
max={10}
|
|
|
inactiveColor="#F8F8F8"
|
|
|
activeColor={
|
|
|
gearLevel.currentGearMode == "forehead"
|
|
|
? "#EECDA1"
|
|
|
: "#CCCCCC"
|
|
|
}
|
|
|
disabled={gearLevel.currentGearMode !== "forehead"}
|
|
|
barHeight={6}
|
|
|
// useButtonSlot
|
|
|
data-key="forehead"
|
|
|
// onDrag={this.onDrag}
|
|
|
// onChange={this.onChange}
|
|
|
renderButton={
|
|
|
<Block>
|
|
|
<View
|
|
|
className={
|
|
|
"custom-button " +
|
|
|
(gearLevel.currentGearMode !== "forehead" &&
|
|
|
"current-button")
|
|
|
}
|
|
|
>
|
|
|
<View className="circle"></View>
|
|
|
<View className="level">
|
|
|
{gearLevel.forehead + "档"}
|
|
|
</View>
|
|
|
</View>
|
|
|
</Block>
|
|
|
}
|
|
|
></Slider>
|
|
|
</View>
|
|
|
<View className="gear flex aitems">
|
|
|
<View className="pos">左脸颊</View>
|
|
|
<Slider
|
|
|
style={{
|
|
|
flex: "1",
|
|
|
}}
|
|
|
value={gearLevel.leftCheek}
|
|
|
min={1}
|
|
|
max={10}
|
|
|
inactiveColor="#F8F8F8"
|
|
|
activeColor={
|
|
|
gearLevel.currentGearMode == "leftCheek"
|
|
|
? "#EECDA1"
|
|
|
: "#CCCCCC"
|
|
|
}
|
|
|
disabled={gearLevel.currentGearMode !== "leftCheek"}
|
|
|
barHeight={6}
|
|
|
// useButtonSlot
|
|
|
data-key="leftCheek"
|
|
|
// onDrag={this.onDrag}
|
|
|
// onChange={this.onChange}
|
|
|
renderButton={
|
|
|
<Block>
|
|
|
<View
|
|
|
className={
|
|
|
"custom-button " +
|
|
|
(gearLevel.currentGearMode !== "leftCheek" &&
|
|
|
"current-button")
|
|
|
}
|
|
|
>
|
|
|
<View className="circle"></View>
|
|
|
<View className="level">
|
|
|
{gearLevel.leftCheek + "档"}
|
|
|
</View>
|
|
|
</View>
|
|
|
</Block>
|
|
|
}
|
|
|
></Slider>
|
|
|
</View>
|
|
|
<View className="gear flex aitems">
|
|
|
<View className="pos">右脸颊</View>
|
|
|
<Slider
|
|
|
style={{
|
|
|
flex: "1",
|
|
|
}}
|
|
|
value={gearLevel.rightCheek}
|
|
|
min={1}
|
|
|
max={10}
|
|
|
inactiveColor="#F8F8F8"
|
|
|
activeColor={
|
|
|
gearLevel.currentGearMode == "rightCheek"
|
|
|
? "#EECDA1"
|
|
|
: "#CCCCCC"
|
|
|
}
|
|
|
disabled={gearLevel.currentGearMode !== "rightCheek"}
|
|
|
barHeight={6}
|
|
|
// useButtonSlot
|
|
|
data-key="rightCheek"
|
|
|
// onDrag={this.onDrag}
|
|
|
// onChange={this.onChange}
|
|
|
renderButton={
|
|
|
<Block>
|
|
|
<View
|
|
|
className={
|
|
|
"custom-button flex jcenter aitems " +
|
|
|
(gearLevel.currentGearMode !== "rightCheek" &&
|
|
|
"current-button")
|
|
|
}
|
|
|
>
|
|
|
<View className="circle"></View>
|
|
|
<View className="level">
|
|
|
{gearLevel.rightCheek + "档"}
|
|
|
</View>
|
|
|
</View>
|
|
|
</Block>
|
|
|
}
|
|
|
></Slider>
|
|
|
</View>
|
|
|
{/* <View className='level_box flex aitems'>
|
|
|
{(10).map((item, index) => {
|
|
|
return (
|
|
|
<View key={item}
|
|
|
className='level_num'
|
|
|
style={{
|
|
|
marginRight: '1.225rem',
|
|
|
}}
|
|
|
>
|
|
|
{item + 1}
|
|
|
</View>
|
|
|
)
|
|
|
})}
|
|
|
</View> */}
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
|
|
|
<View className="gear_adjustment">
|
|
|
<View className="gear_box">
|
|
|
<View className="gear flex aitems">
|
|
|
<View className="pos">额头</View>
|
|
|
<View className="gear_button flex aitems">
|
|
|
<View className="button_minus">
|
|
|
<Image
|
|
|
className="image"
|
|
|
src={require("@/img/fr200/minus.png")}
|
|
|
></Image>
|
|
|
</View>
|
|
|
<View className="button_value">
|
|
|
<View className="number">1</View>档
|
|
|
</View>
|
|
|
<View className="button_plus">
|
|
|
<Image
|
|
|
className="image"
|
|
|
src={require("@/img/fr200/add.png")}
|
|
|
></Image>
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
<View className="gear flex aitems">
|
|
|
<View className="pos">左脸颊</View>
|
|
|
<View className="gear_button flex aitems">
|
|
|
<View className="button_minus">
|
|
|
<Image
|
|
|
className="image"
|
|
|
src={require("@/img/fr200/minus.png")}
|
|
|
></Image>
|
|
|
</View>
|
|
|
<View className="button_value">
|
|
|
<View className="number">1</View>档
|
|
|
</View>
|
|
|
<View className="button_plus">
|
|
|
<Image
|
|
|
className="image"
|
|
|
src={require("@/img/fr200/add.png")}
|
|
|
></Image>
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
<View className="gear flex aitems">
|
|
|
<View className="pos">右脸颊</View>
|
|
|
<View className="gear_button flex aitems">
|
|
|
<View className="button_minus">
|
|
|
<Image
|
|
|
className="image"
|
|
|
src={require("@/img/fr200/minus.png")}
|
|
|
></Image>
|
|
|
</View>
|
|
|
<View className="button_value">
|
|
|
<View className="number">1</View>档
|
|
|
</View>
|
|
|
<View className="button_plus">
|
|
|
<Image
|
|
|
className="image"
|
|
|
src={require("@/img/fr200/add.png")}
|
|
|
></Image>
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
</View>
|
|
|
</Block>
|
|
|
</Block>
|
|
|
);
|
|
|
}
|
|
|
|
|
|
export default Index;
|