临时提交

master
blak-kong 2 years ago
parent 7f029b26c4
commit 819d2d0cdc

@ -1,7 +0,0 @@
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"setting": {
"compileHotReLoad": true,
"bigPackageSizeSupport": true
}
}

@ -24,7 +24,6 @@ class App extends Component {
return;
}
// go("/pages/iotCarePlan/iotCarePlan");
// go("/pages/instrument_clickin_upload/index");
// go("/pages/instrument/intro");
// Taro.switchTab({

@ -86,7 +86,7 @@ export default defineAppConfig({
{
root: 'moduleIOT',
pages: [
"pages/iotCarePlan/iotCarePlan",
"pages/iotCarePlan/WL200",
"pages/iotCarePlan/FR200",
]
}

@ -27,7 +27,6 @@ class App extends Component<PropsWithChildren> {
// 每次进入小程序,删除可能残留的同步状态
Taro.removeStorageSync("isSyncHistory");
// go("/pages/iotCarePlan/iotCarePlan");
// go("/pages/instrument_clickin_upload/index");
// go("/pages/instrument/intro");
// Taro.switchTab({

@ -0,0 +1 @@
@import url(./WL200.less);

@ -10,7 +10,7 @@ import React, {
useState,
} from "react";
// import Echarts from "./components/Echart/index";
import Echarts from "./components/Echart/index";
import {
Block,
View,
@ -38,14 +38,14 @@ import ConnectionBluetoot from "@/components/bluetoot/connection";
/* 本页组件 */
import ElectricityView from "./components/ElectricityView/index";
import ModeListView from "./components/ModeList/index";
import ModeContent from "./components/ModeContent/index";
import ModeListView from "./components/ModeList/FR200";
import ModeContent from "./components/ModeContent/FR200";
import Footer from "./components/Footer";
/* 本页组件 END */
import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI";
import { InstrumentInfo } from "@/utils/Interface";
import "./iotCarePlan.less";
import "./FR200.less";
import {
notifyBLECharacteristicValueChange,
@ -75,27 +75,6 @@ let loadingTipsTimer: any = null; // 蓝牙连接提示
// 设备运行时间校准频率,每多少秒校准一次
const TIME_CALIBRATION_FREQUENCY = 5;
// 组合模式:分别对应的是哪几个模式类型
// 黄光590nm
// 红光630nm
// 近红外光830nm
// 模式类型中文名
const WORK_MODE_Chinese_NAME = {
: "powerfulSoothing",
: "Stability", // 黄光?近红外光?
: "Brighten", // 黄光?近红外光?
: "FirmSkin", // 黄光?近红外光?
: "MaskCustom",
Pro: "BrightenStand",
Pro: "FirmSkinStand",
Pro: "SmallpoxSoothingPro",
: "SmallpoxSoothing",
Pro: "MixNursePro",
: "MixNurse",
: "ScalpCare",
};
const MODE_WORKING_ENUM = {
STANDBY: "standby", // 待命
WORKING: "working", // 工作
@ -125,12 +104,12 @@ let DeviceSyncData = {
};
let deviceToolKitInstance = deviceToolKitInstanceFR200;
class IotCareWR200 extends Component<any, any> {
class IotCarePlanFR200 extends Component<any, any> {
constructor(props) {
super(props);
this.state = {
name: "iotCarePlan",
title: "美容仪名字", // 页面标题
name: "FR200",
title: "FR200", // 页面标题
// 当前设备
currentDevice: {
name: "",
@ -171,8 +150,8 @@ class IotCareWR200 extends Component<any, any> {
// 模式列表
isSwitchActiveMode: false, // 是否显示弹窗切换模式
ModeList: [],
ModeType: "all", // all visor面罩 cabin舱体 yimeish医美
modeClass: "", // 1面罩 2舱体 3医美
ModeType: "all", // all
modeClass: "", // 1基础护理 2专区护理 3专研促渗 4敏期护理 5智能测肤
ActiveModeItem: {}, // 当前选中模式
SwitchActiveModeItem: {}, // 切换选中模式
ModeID: "mode_", // 模式KEY
@ -230,12 +209,22 @@ class IotCareWR200 extends Component<any, any> {
hadGotInstrumentHistoryData = false; // 是否已缓存仪器历史数据
hadLoadedPage = false; // 判断是否首次进入页面
/** FR200模式类型名称 */
ModeTypeArray: string[] = [
"all",
"Base",
"Zone",
"Permeation",
"Sensitive",
"Intelligence",
];
async onLoad() {
// 保持屏幕常亮
Taro.setKeepScreenOn({
keepScreenOn: true,
});
this.getWL200NursingHistory();
// this.getWL200NursingHistory();
this.initData();
}
componentDidMount() {}
@ -250,7 +239,7 @@ class IotCareWR200 extends Component<any, any> {
return;
}
this.getWL200NursingHistory();
// this.getWL200NursingHistory();
// 重置初始值,每次进入页面重新检查面罩护理记录
this.hadCheckReport = false;
this.hadGotInstrumentHistoryData = false;
@ -285,9 +274,6 @@ class IotCareWR200 extends Component<any, any> {
// 仅手机端初始化蓝牙
this.init();
}
// 初始化蓝牙
// this.init();
}
getOption() {
@ -448,7 +434,7 @@ class IotCareWR200 extends Component<any, any> {
}
let currentTime = data.modeTimeStr;
let modeArray = ["all", "visor", "cabin", "yimeish"];
this.setState({
ActiveModeItem: data,
activeModeID: data.id,
@ -456,7 +442,7 @@ class IotCareWR200 extends Component<any, any> {
currentServiceData,
ModeStepIndex: 0,
currentTime,
ModeType: modeArray[data.modeClass],
ModeType: this.ModeTypeArray[data.modeClass],
});
setTimeout(() => {
@ -539,19 +525,16 @@ class IotCareWR200 extends Component<any, any> {
this.cancelModeSwitchBtn();
this.modeCurrentFun(SwitchActiveModeItem);
let modeArray = ["all", "visor", "cabin", "yimeish"];
this.setState({
ModeType: modeArray[SwitchActiveModeItem.modeClass],
ModeType: this.ModeTypeArray[SwitchActiveModeItem.modeClass],
});
};
stepNext = () => {
// //0未定义全部 1面罩模式 2舱体模式 3医美术后
let modeArray = ["all", "visor", "cabin", "yimeish"];
let modeClass = this.state.ActiveModeItem.modeClass;
this.workStatus = "pause";
this.setState({
ModeType: modeArray[modeClass],
ModeType: this.ModeTypeArray[modeClass],
isShowNurse: true,
isStopNurse: true,
step: 2,
@ -790,18 +773,6 @@ class IotCareWR200 extends Component<any, any> {
case "BleMatch":
// 蓝牙相关指令
this.switchBLEMatch(jsonStatus);
// switch (jsonStatus.bleCommandType) {
// case 'SendMatchCode':
// if(jsonStatus.matchedSuccess){
// //设备返回了蓝牙配对成功
// }else{
// }
// break;
// default:
// break;
// }
break;
//设备状态同步
case "DeviceStatusSync":
@ -2277,7 +2248,7 @@ class IotCareWR200 extends Component<any, any> {
/>
)}
{/* <Echarts></Echarts> */}
<Echarts></Echarts>
</View>
<Footer
@ -2303,4 +2274,4 @@ const mapDispatchToProps = (dispatch) => ({
// dispatch(userRefresh(data));
// },
});
export default connect(mapStateToProps, mapDispatchToProps)(IotCareWR200);
export default connect(mapStateToProps, mapDispatchToProps)(IotCarePlanFR200);

@ -38,14 +38,14 @@ import ConnectionBluetoot from "@/components/bluetoot/connection";
/* 本页组件 */
import ElectricityView from "./components/ElectricityView/index";
import ModeListView from "./components/ModeList/index";
import ModeContent from "./components/ModeContent/index";
import ModeListView from "./components/ModeList/WL200";
import ModeContent from "./components/ModeContent/WL200";
import Footer from "./components/Footer";
/* 本页组件 END */
import { go, getStorageSync, setStorageSync, msg } from "@/utils/traoAPI";
import { InstrumentInfo } from "@/utils/Interface";
import "./iotCarePlan.less";
import "./WL200.less";
import {
notifyBLECharacteristicValueChange,
@ -122,12 +122,12 @@ let DeviceSyncData = {
};
let deviceToolKitInstance = deviceToolKitInstanceWL200;
class IotCarePlan extends Component<any, any> {
class IotCarePlanWL200 extends Component<any, any> {
constructor(props) {
super(props);
this.state = {
name: "iotCarePlan",
title: "美容仪名字", // 页面标题
name: "WL200",
title: "WL200", // 页面标题
// 当前设备
currentDevice: {
name: "",
@ -1962,20 +1962,20 @@ class IotCarePlan extends Component<any, any> {
let res = await InstrumentInfo.firstNurseInfo({
instrumentId: currentDevice.id,
});
console.log(res,'接口');
console.log(res, "接口");
if (res.data.code === 200) {
let isFirstTipShow = getStorageSync(
"first_instrument_" + currentDevice.id
);
console.log(isFirstTipShow,'查看返回值');
console.log(isFirstTipShow, "查看返回值");
if (!isFirstTipShow) {
if(res.data.data.length !== 0){
// 首次进入页面:自动打开打卡介绍弹窗
this.setState({ nurseInfo: res.data.data, isFirstTipShow: true });
if (res.data.data.length !== 0) {
// 首次进入页面:自动打开打卡介绍弹窗
this.setState({ nurseInfo: res.data.data, isFirstTipShow: true });
}
setStorageSync("first_instrument_" + currentDevice.id, true);
} else {
this.setState({ nurseInfo: res.data.data });
@ -2311,6 +2311,6 @@ const mapDispatchToProps = (dispatch) => ({
// dispatch(userRefresh(data));
// },
});
export default connect(mapStateToProps, mapDispatchToProps)(IotCarePlan);
export default connect(mapStateToProps, mapDispatchToProps)(IotCarePlanWL200);
// isCharging

@ -1,6 +1,6 @@
import Taro from "@tarojs/taro";
import classnames from "classnames";
import { Block, View, Image, Text } from "@tarojs/components";
import { Block, View, Image, Text, CoverView } from "@tarojs/components";
import { useState, useEffect } from "react";
import "./index.less";
@ -42,7 +42,7 @@ function Index({
return (
<Block>
<View className="iot-footer">
<CoverView className="iot-footer">
{!isShowNurse && (
<Block>
{isDisabled ? (
@ -124,7 +124,7 @@ function Index({
</View>
</View>
)}
</View>
</CoverView>
</Block>
);
}

@ -0,0 +1,23 @@
import Taro from "@tarojs/taro";
import classnames from "classnames";
import { Block, View, ScrollView, Image } from "@tarojs/components";
import { useState, useEffect } from "react";
import "./FR200.less";
interface Props {
isShowNurse: boolean;
ActiveModeItem: any;
ModeStepIndex: number;
}
function Index({ isShowNurse, ActiveModeItem, ModeStepIndex }: Props) {
const ModeColor = {
"590nm": "#CF231D",
"630nm": "#CF231D",
"830nm": "#9C1D17",
};
return (
<Block>{isShowNurse && <View className="modelInfo-box"></View>}</Block>
);
}
export default Index;

@ -2,7 +2,7 @@ import Taro from "@tarojs/taro";
import classnames from "classnames";
import { Block, View, ScrollView, Image } from "@tarojs/components";
import { useState, useEffect } from "react";
import "./index.less";
import "./WL200.less";
interface Props {
isShowNurse: boolean;

@ -0,0 +1,347 @@
import Taro from "@tarojs/taro";
import classnames from "classnames";
import { Block, View, ScrollView, Image } from "@tarojs/components";
import { useState, useEffect } from "react";
import "./FR200.less";
interface Props {
ModeID: any;
activeModeID: any;
ModeList: any;
ModeType: string; // all visor cabin yimeish
isShowNurse: boolean; // 是否已进入护理详情页
isPop: boolean; // 是否弹窗
onEmit: Function; // 每次点击item回调事件和数据给父组件
onEmitShowAll: Function; // 打开弹窗按钮
}
function Index({
isShowNurse,
isPop,
ModeList,
ModeType,
ModeID,
activeModeID,
onEmit,
onEmitShowAll,
}: Props) {
let BaseList = ModeList.filter((item) => item.modeClass === 1); // 基础护理
let ZoneList = ModeList.filter((item) => item.modeClass === 2); // 专区护理
let PermeationList = ModeList.filter((item) => item.modeClass === 3); // 专研促渗
let SensitiveList = ModeList.filter((item) => item.modeClass === 4); // 敏感期护理
let IntelligenceList = ModeList.filter((item) => item.modeClass === 5); // 智能测肤
const onItemClick = (item) => {
onEmit(item);
};
const showAll = () => {
onEmitShowAll();
};
return (
<Block>
<View className="mode-list-main">
{!isPop && ModeList.length > 0 && isShowNurse && (
<View className="change-all-mode-btn" onClick={showAll}>
<View className="title"></View>
<Image
className="icon"
src={require("@/img/iot/mode-switch.png")}
/>
</View>
)}
{BaseList.length > 0 &&
(ModeType === "all" || ModeType === "Base" || isPop) && (
<ScrollView
className="mode-list-box"
scroll-x="true"
scrollIntoView={ModeID} // itemID自动滚动到该元素位置
>
<View className="mode-list">
<View className="mode-item-title"></View>
{BaseList.map((item: any, index: any) => {
return (
<View
key={"Base_" + index}
id={"Base_" + item.id}
className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id,
})}
onClick={onItemClick.bind(this, item)}
>
<View
className={classnames("new", {
"is-new": item.isNew === 1,
})}
>
NEW
</View>
<View className="mode-info">
<View className="mode-info-title">{item.modeName}</View>
<View className="mode-info-time">
{item.modeTimeStr}
</View>
<View
className={classnames("mode-info-select", {
"is-select": activeModeID === item.id,
})}
>
{activeModeID === item.id && (
<View className="mode-info-select-point"></View>
)}
</View>
</View>
{activeModeID === item.id && (
<View className="mode-pic">
<Image
src={item.modeBanner}
mode="aspectFill"
style="animation-iteration-count:1;"
/>
</View>
)}
</View>
);
})}
<View style="width:120rpx;min-width:120rpx;height:40rpx;display:flex"></View>
</View>
</ScrollView>
)}
{ZoneList.length > 0 &&
(ModeType === "all" || ModeType === "Zone" || isPop) && (
<ScrollView
className="mode-list-box"
scrollX={true}
scrollIntoView={ModeID}
>
<View className="mode-list">
<View className="mode-item-title"></View>
{ZoneList.map((item: any, index: any) => {
return (
<View
key={"Zone_" + index}
id={"Zone_" + item.id}
onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id,
})}
>
<View
className={classnames("new", {
"is-new": item.isNew === 1,
})}
>
NEW
</View>
<View className="mode-info">
<View className="mode-info-title">{item.modeName}</View>
<View className="mode-info-time">
{item.modeTimeStr}
</View>
<View
className={classnames("mode-info-select", {
"is-select": activeModeID === item.id,
})}
>
{activeModeID === item.id && (
<View className="mode-info-select-point"></View>
)}
</View>
</View>
{activeModeID === item.id && (
<View className="mode-pic">
<Image
src={item.modeBanner}
mode="aspectFill"
style="animation-iteration-count:1;"
/>
</View>
)}
</View>
);
})}
</View>
</ScrollView>
)}
{PermeationList.length > 0 &&
(ModeType === "all" || ModeType === "Permeation" || isPop) && (
<ScrollView
className="mode-list-box"
scrollX={true}
scrollIntoView={ModeID}
>
<View className="mode-list">
<View className="mode-item-title"></View>
{PermeationList.map((item: any, index: any) => {
return (
<View
key={"Permeation_" + index}
id={"Permeation_" + item.id}
onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id,
})}
>
<View
className={classnames("new", {
"is-new": item.isNew === 1,
})}
>
NEW
</View>
<View className="mode-info">
<View className="mode-info-title">{item.modeName}</View>
<View className="mode-info-time">
{item.modeTimeStr}
</View>
<View
className={classnames("mode-info-select", {
"is-select": activeModeID === item.id,
})}
>
{activeModeID === item.id && (
<View className="mode-info-select-point"></View>
)}
</View>
</View>
{activeModeID === item.id && (
<View className="mode-pic">
<Image
src={item.modeBanner}
mode="aspectFill"
style="animation-iteration-count:1;"
/>
</View>
)}
</View>
);
})}
</View>
</ScrollView>
)}
{SensitiveList.length > 0 &&
(ModeType === "all" || ModeType === "Sensitive" || isPop) && (
<ScrollView
className="mode-list-box"
scrollX={true}
scrollIntoView={ModeID}
>
<View className="mode-list">
<View className="mode-item-title"></View>
{PermeationList.map((item: any, index: any) => {
return (
<View
key={"Sensitive_" + index}
id={"Sensitive_" + item.id}
onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id,
})}
>
<View
className={classnames("new", {
"is-new": item.isNew === 1,
})}
>
NEW
</View>
<View className="mode-info">
<View className="mode-info-title">{item.modeName}</View>
<View className="mode-info-time">
{item.modeTimeStr}
</View>
<View
className={classnames("mode-info-select", {
"is-select": activeModeID === item.id,
})}
>
{activeModeID === item.id && (
<View className="mode-info-select-point"></View>
)}
</View>
</View>
{activeModeID === item.id && (
<View className="mode-pic">
<Image
src={item.modeBanner}
mode="aspectFill"
style="animation-iteration-count:1;"
/>
</View>
)}
</View>
);
})}
</View>
</ScrollView>
)}
{IntelligenceList.length > 0 &&
(ModeType === "all" || ModeType === "Intelligence" || isPop) && (
<ScrollView
className="mode-list-box"
scrollX={true}
scrollIntoView={ModeID}
>
<View className="mode-list">
<View className="mode-item-title"></View>
{IntelligenceList.map((item: any, index: any) => {
return (
<View
key={"Intelligence_" + index}
id={"Intelligence_" + item.id}
onClick={onItemClick.bind(this, item)}
className={classnames("mode-item", {
"mode-item-active": activeModeID === item.id,
})}
>
<View
className={classnames("new", {
"is-new": item.isNew === 1,
})}
>
NEW
</View>
<View className="mode-info">
<View className="mode-info-title">{item.modeName}</View>
<View className="mode-info-time">
{item.modeTimeStr}
</View>
<View
className={classnames("mode-info-select", {
"is-select": activeModeID === item.id,
})}
>
{activeModeID === item.id && (
<View className="mode-info-select-point"></View>
)}
</View>
</View>
{activeModeID === item.id && (
<View className="mode-pic">
<Image
src={item.modeBanner}
mode="aspectFill"
style="animation-iteration-count:1;"
/>
</View>
)}
</View>
);
})}
</View>
</ScrollView>
)}
</View>
</Block>
);
}
export default Index;

@ -2,7 +2,7 @@ import Taro from "@tarojs/taro";
import classnames from "classnames";
import { Block, View, ScrollView, Image } from "@tarojs/components";
import { useState, useEffect } from "react";
import "./index.less";
import "./WL200.less";
interface Props {
ModeID: any;
@ -28,7 +28,6 @@ function Index({
let CabinList = ModeList.filter((item) => item.modeClass === 2); // 舱体模式
let YimeishList = ModeList.filter((item) => item.modeClass === 3); // 医美术后
console.log("ModeType", ModeType);
const yimeishClick = (item) => {
onEmit(item);
};

@ -911,7 +911,7 @@ class Index extends Component<any, any> {
if (this.state.connectInstrument.model === "FR200") {
go("/moduleIOT/pages/iotCarePlan/FR200"); // 画页面直接跳转
} else {
go("/moduleIOT/pages/iotCarePlan/iotCarePlan"); // 画页面直接跳转
go("/moduleIOT/pages/iotCarePlan/WL200"); // 画页面直接跳转
}
this.connectionClose();
@ -921,7 +921,7 @@ class Index extends Component<any, any> {
if (this.state.connectInstrument.model === "FR200") {
go("/moduleIOT/pages/iotCarePlan/FR200"); // 画页面直接跳转
} else {
go("/moduleIOT/pages/iotCarePlan/iotCarePlan"); // 画页面直接跳转
go("/moduleIOT/pages/iotCarePlan/WL200"); // 画页面直接跳转
}
// return;
}

@ -187,7 +187,12 @@ class Intro extends Component<any, any> {
*/
pairingChange = (e) => {
console.log("===epairingChange===》", e);
go("/moduleIOT/pages/iotCarePlan/iotCarePlan"); // 画页面直接跳转
if (this.state.connectInstrument.model === "FR200") {
go("/moduleIOT/pages/iotCarePlan/FR200"); // 画页面直接跳转
} else {
go("/moduleIOT/pages/iotCarePlan/WL200"); // 画页面直接跳转
}
setTimeout(() => {
this.connectionClose();
@ -195,7 +200,11 @@ class Intro extends Component<any, any> {
};
async goIot() {
go("/moduleIOT/pages/iotCarePlan/iotCarePlan"); // 画页面直接跳转
if (this.state.connectInstrument.model === "FR200") {
go("/moduleIOT/pages/iotCarePlan/FR200"); // 画页面直接跳转
} else {
go("/moduleIOT/pages/iotCarePlan/WL200"); // 画页面直接跳转
}
setTimeout(() => {
this.connectionClose();
}, 100);

Loading…
Cancel
Save