master
qsj 2 years ago
parent 9411acf843
commit 9dfed2e66d

@ -2078,14 +2078,10 @@ class IotCarePlanFR200 extends Component<any, any> {
// 脸部one // 脸部one
todoPromise = async () => { todoPromise = async () => {
const nowFR200NursingHistory = Taro.getStorageSync("FR200NursingHistory"); const nowFR200NursingHistory = Taro.getStorageSync("FR200NursingHistory");
console.log(nowFR200NursingHistory,'nowFR200NursingHistory');
// 护理脸部 // 护理脸部
if (nowFR200NursingHistory.workMode === 'face') { if (nowFR200NursingHistory.workMode === 'face') {
// 把working=工作中的状态数据筛选出来 // 把working=工作中的状态数据筛选出来
let filtered = nowFR200NursingHistory.dataArray.filter(item => item.workStatus === 'working'); let filtered = nowFR200NursingHistory.dataArray.filter(item => item.workStatus === 'working');
console.log(filtered,'filtered');
// 能量发数 // 能量发数
filtered = filtered.slice(0, 360); filtered = filtered.slice(0, 360);
// 脸部能量 // 脸部能量
@ -2120,51 +2116,36 @@ class IotCarePlanFR200 extends Component<any, any> {
let maxName = Math.max(...group.map(obj => obj.impedance)); let maxName = Math.max(...group.map(obj => obj.impedance));
// 计算并存储每组的平均数 // 计算并存储每组的平均数
let average = this.determineTier(maxName / 2); let average:any = this.determineTier(maxName / 2);
// let average = maxName / 2; // let average = maxName / 2;
if(average >=1) {
average=average-1
average=average *10
}
// 将包含该组对象和平均数的对象添加到 groupedAa 数组中 // 将包含该组对象和平均数的对象添加到 groupedAa 数组中
groupedAa.push({ objects: group, average: average }); groupedAa.push(average);
} }
// 转换时间
// 将分钟转换为两位数字的字符串
// let minuteString = filtered.jsonStatus.totalWorkingMinutes.toString().padStart(2, '0');
// // 将秒转换为两位数字的字符串
// let secondString = filtered.jsonStatus.totalWorkingMinutes.toString().padStart(2, '0');
// 拼接分钟和秒的字符串
// let result = `${minuteString}:${secondString}`;
let result = `02:01`;
// let GearData = this.state.GearData;
// // 水分报告
// let Allnum=0
// GearData.forEach(e => {
// Allnum =+e.forehead
// });
// // 向下取整
// Allnum = Math.floor(Allnum / 3);
let nursingData = { let nursingData = {
// nursingTime:result, // nursingTime:result,
nursingData:JSON.stringify({ nursingData: JSON.stringify({
faceEnergy, max, min, average, groupedAa faceEnergy, max, min, average, groupedAa, filtered: filtered.length, workMode: nowFR200NursingHistory.workMode
}) })
} }
return nursingData return nursingData
} else { } else {
let GearData = this.state.GearData; let GearData = this.state.GearData;
// 肌肤报告 // 肌肤报告
let Allnum=0 let Allnum = 0
GearData.forEach(e => { GearData.forEach(e => {
Allnum =+e.forehead Allnum = +e.forehead
}); });
// 向下取整 // 向下取整
Allnum = Math.floor(Allnum / 3); Allnum = Math.floor(Allnum / 3);
let nursingData = { let nursingData = {
nursingData:JSON.stringify({ nursingData: JSON.stringify({
Allnum,GearData Allnum, GearData
}) })
} }
return nursingData return nursingData
@ -2210,7 +2191,7 @@ class IotCarePlanFR200 extends Component<any, any> {
} }
let res1: any = await this.todoPromise() let res1: any = await this.todoPromise()
console.log(res1, '查看返回数据'); console.log(res1, '查看返回数据');
params = { ...params, ...res1 } params = { ...params, ...res1 }
let res: any = await InstrumentInfo.apiNursingLog.addLog(params); let res: any = await InstrumentInfo.apiNursingLog.addLog(params);
console.log("PostNursingLogClock", res); console.log("PostNursingLogClock", res);
if (res.data.code === 200) { if (res.data.code === 200) {
@ -2230,7 +2211,9 @@ class IotCarePlanFR200 extends Component<any, any> {
this.setState({ this.setState({
isShowNursingSuccess: false, isShowNursingSuccess: false,
}); });
this.goFaceReport(); // 跳转
this.goFaceReport(res1, ActiveModeItem.id); // 跳转
}, 2000); }, 2000);
} }
} }
@ -2386,10 +2369,31 @@ class IotCarePlanFR200 extends Component<any, any> {
}; };
/** 完成护理提交:跳转护理报告页 */ /** 完成护理提交:跳转护理报告页 */
goFaceReport = () => { goFaceReport = (data, id) => {
let nursingData = JSON.parse(data.nursingData)
// 跳转前置空定时器,防止重复提交 // 跳转前置空定时器,防止重复提交
if (currentTimeTimer) clearInterval(currentTimeTimer); if (currentTimeTimer) clearInterval(currentTimeTimer);
go("/pages/face_report/face_report?id=" + this.state.currentDevice.id); if (['face', 'eyes', 'nasolabialFold', 'mandibularLine', 'headLiftingPro'].includes(nursingData.workMode)) {
let obj = {
modeName: nursingData.modeName,
data: nursingData
}
let report = true;
go(
"/recoding/pages/face_report_one/face_report_one?id=" +
id +
"&report=" +
report + "&obj=" +
JSON.stringify(obj)
);
} else if ('moistureTest' === nursingData.workMode) {
console.log('水分测试');
} else {
go("/pages/face_report/face_report?id=" + this.state.currentDevice.id);
}
}; };
// 完成配对 // 完成配对

@ -9,13 +9,32 @@ import echarts from "@/utils/echarts.min.js";
import "./index.less"; import "./index.less";
interface Props { interface Props {
Electricity: any; EchartsData:any
matrixElectricity: any;
facialMaskConnectStatus: any;
} }
function Index() { function Index({
EchartsData
}:Props) {
let type =0
switch(EchartsData.modeName) {
case '基础班脸部':
type=37
break;
case '基础版眼部':
type=25
break;
case '法令纹Pro':
type=25
break;
case '下颌线Pro':
type=19
break;
case '抬头纹Pro':
type=13
break;
default:
}
const echartsRef = useRef<EchartsHandle>(null); const echartsRef = useRef<EchartsHandle>(null);
function generateColorArray(startColor, endColor, steps) { function generateColorArray(startColor, endColor, steps) {
var startRGB = hexToRgb(startColor); var startRGB = hexToRgb(startColor);
@ -50,31 +69,20 @@ function Index() {
const startColor = "#FFFF00"; // 黄色 const startColor = "#FFFF00"; // 黄色
const endColor = "#FF0000"; // 红色 const endColor = "#FF0000"; // 红色
const steps = 80; // 80个颜色 const steps = 81; // 80个颜色
const colors = generateColorArray(startColor, endColor, steps); const colors = generateColorArray(startColor, endColor, steps);
const xList = [...new Array(37).fill(0).map((item, key) => key)]; const xList = [...new Array(type).fill(0).map((item, key) => key)];
const seriesData = [ let seriesData:any =[]
...xList.map((item) => { seriesData = EchartsData?.data?.groupedAa
return Math.random() * 80; // const xList = [...new Array(37).fill(0).map((item, key) => key)];
}), // const seriesData = [
]; // ...xList.map((item) => {
// let seriesData=[ // return Math.random() * 80;
// 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3, // }),
// 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3, // ];
// 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,8,5,1,2,3,
// 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3
// ]
// console.log(seriesData,'seriesData',xList);
const option: EChartOption ={ const option: EChartOption ={
grid: { grid: {
@ -90,8 +98,6 @@ const seriesData = [
axisLabel: { axisLabel: {
interval: 5, interval: 5,
formatter: function (value, index) { formatter: function (value, index) {
console.log(value,'查看');
return value * 10 + 's'; return value * 10 + 's';
}, },
textStyle: { textStyle: {
@ -170,7 +176,7 @@ const seriesData = [
// isPage={false} // isPage={false}
// style自定义设置echarts宽高 // style自定义设置echarts宽高
// style={{ width: "100%", height: "100%" }} // style={{ width: "100%", height: "100%" }}
style={{ width: "630rpx", height: "260rpx" }} style={{ width: "670rpx", height: "260rpx" }}
/> />
{/* <View className="box"> {/* <View className="box">

@ -842,10 +842,10 @@ class Index extends Component<any, any> {
goNursing = (item) => { goNursing = (item) => {
// 仅开发者工具调试使用 // 仅开发者工具调试使用
const platform = Taro.getSystemInfoSync().platform; const platform = Taro.getSystemInfoSync().platform;
setStorageSync("instrument_detail", item); // setStorageSync("instrument_detail", item);
this.setState({ connectInstrument: item }); // this.setState({ connectInstrument: item });
setTimeout(() => this.goIot()); // setTimeout(() => this.goIot());
return; // return;
if (platform === "devtools") { if (platform === "devtools") {
setStorageSync("instrument_detail", item); setStorageSync("instrument_detail", item);
this.setState({ connectInstrument: item }); this.setState({ connectInstrument: item });

@ -23,7 +23,27 @@ page {
margin-bottom: 20rpx; margin-bottom: 20rpx;
margin-top: 32rpx; margin-top: 32rpx;
} }
.itemStyel{
display: inline-block;
font-size: 15rpx;
position: absolute;
top: 0rpx;
left: 94rpx;
}
.itemStyelone{
display: inline-block;
font-size: 15rpx;
position: absolute;
top: 0rpx;
left: 142rpx;
}
.itemStyeltwo{
display: inline-block;
font-size: 15rpx;
position: absolute;
top: 0rpx;
left: 278rpx;
}
.statistic_item { .statistic_item {
flex: 1; flex: 1;
border-right: 1rpx solid #dddddd; border-right: 1rpx solid #dddddd;
@ -323,6 +343,7 @@ page {
margin: 12rpx 0rpx; margin: 12rpx 0rpx;
color: #181818; color: #181818;
font-weight: 700; font-weight: 700;
position: relative;
} }
// .desc:last-child { // .desc:last-child {

@ -17,6 +17,7 @@ import { InstrumentInfo } from "@/utils/Interface";
// 引入ecahrts图表 // 引入ecahrts图表
// import EchartsForm from '@/moduleIOT/pages/iotCarePlan/components/Echart_face' // import EchartsForm from '@/moduleIOT/pages/iotCarePlan/components/Echart_face'
import EchartsForm from '../../../moduleIOT/pages/iotCarePlan/components/Echart_face' import EchartsForm from '../../../moduleIOT/pages/iotCarePlan/components/Echart_face'
import Echarts1 from '../../../moduleIOT/pages/iotCarePlan/components/Echart'
/** 自定义组件 **/ /** 自定义组件 **/
@ -26,13 +27,19 @@ export default class Index extends Component<any, any> {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
face_Tyep: '基础脸部', EchartsData:{},
reportShow: true, reportShow: true,
name: "template模板页", name: "template模板页",
statistics: {}, statistics: {},
recordList: [], recordList: [],
modeImage: require("@/img/face-report/face.png"),
recordData: { recordData: {
modeImage: require("@/img/face-report/face.png") modeName: '基础班脸部',
filtered:111,
faceEnergy:222,
average:2222,
max:33,
min:7
}, },
year: new Date().getFullYear(), year: new Date().getFullYear(),
show: false, show: false,
@ -73,7 +80,7 @@ export default class Index extends Component<any, any> {
data["instrumentId"] = id; data["instrumentId"] = id;
} }
let res = await InstrumentInfo.apiNursingLog.getStatistics(data); let res = await InstrumentInfo.apiNursingLog.getStatistics(data);
if (res.data.code === 200) { if (res.data.code === 200) {
this.setState({ statistics: res.data.data }); this.setState({ statistics: res.data.data });
} }
@ -246,8 +253,8 @@ export default class Index extends Component<any, any> {
const id = searchParams.get("id"); const id = searchParams.get("id");
const recordId = searchParams.get("recordId"); const recordId = searchParams.get("recordId");
this.getStatistics(id); this.getStatistics(id);
this.getRecord(id, recordId); // this.getRecord(id, recordId);
console.log(recordId); // console.log(recordId);
} }
getTime(time) { getTime(time) {
const hour = time.slice(0, 2); const hour = time.slice(0, 2);
@ -260,20 +267,52 @@ export default class Index extends Component<any, any> {
return minute + "分" + second + "秒"; return minute + "分" + second + "秒";
} }
} }
async onLoad(options) { onLoad(options) {
console.log(options, '查看传过来的参数');
let Bool = JSON.parse(options?.report) let Bool = JSON.parse(options?.report)
if (!Bool) { if (!Bool) {
this.setState({ this.setState({
reportShow: Bool reportShow: Bool
}) })
} }
this.init(options)
this.getRouteId(); this.getRouteId();
this.getClockStatistics() // this.getClockStatistics()
}
init(options){
let obj =JSON.parse(options.obj)
let recordData =this.state.recordData
let modeImage =this.state.modeImage
switch(obj.modeName) {
case '基础班脸部':
modeImage =require("@/img/face-report/face.png")
break;
case '基础版眼部':
modeImage =require("@/img/face-report/eye.png")
break;
case '法令纹Pro':
modeImage =require("@/img/face-report/nasolabial_Pro.png")
break;
case '下颌线Pro':
modeImage =require("@/img/face-report/Mandibular_Pro.png")
break;
case '抬头纹Pro':
modeImage =require("@/img/face-report/Head_lift_Pro.png")
break;
default:
}
recordData ={
...obj,
...obj.data
}
this.setState({recordData,modeImage,EchartsData:{...obj}})
console.log(obj,'查看');
} }
componentDidShow() { } componentDidShow() { }
componentDidHide() { } componentDidHide() { }
@ -285,7 +324,7 @@ export default class Index extends Component<any, any> {
}; };
render() { render() {
let { name, statistics, recordList, recordData, show, clockStatistics, punchInInfo, monthTime, reportShow, face_Tyep } = this.state; let { name, statistics, modeImage, recordData, show, clockStatistics, punchInInfo, monthTime, reportShow,EchartsData } = this.state;
return ( return (
<Block> <Block>
<Navbar isBack titleSlot='护理报告'></Navbar> <Navbar isBack titleSlot='护理报告'></Navbar>
@ -310,24 +349,24 @@ export default class Index extends Component<any, any> {
<View className='left'> <View className='left'>
<Image <Image
className='cover' className='cover'
src={recordData.modeImage} src={modeImage}
mode='aspectFill' mode='aspectFill'
></Image> ></Image>
<View className='face_type'>{face_Tyep}</View> <View className='face_type'>{recordData.modeName}</View>
</View> </View>
<View className='content'> <View className='content'>
<View className='content_top'> <View className='content_top'>
<View className='desc_box'> <View className='desc_box'>
<View className='desc'>{recordData.modeName}</View> <View className='desc'>{recordData.modeName === '下颌线Pro'?<View className="itemStyel">[1]</View>:null}&nbsp;&nbsp;{recordData.filtered}</View>
<View className='desc'> <View className='desc'>
{recordData.nursingTime} {recordData.modeName === '下颌线Pro'?<View className="itemStyel">[2]</View>:null}&nbsp;&nbsp;{recordData.faceEnergy}
</View> </View>
<View className='desc'> <View className='desc'>
{recordData.nursingTime} &nbsp;&nbsp;<View className="itemStyelone">[3]</View>{recordData.average}
</View> </View>
<View className='desc'> <View className='desc'>
{recordData.nursingTime} &nbsp;&nbsp;<View className="itemStyel">[4]</View>{recordData.max} &nbsp;&nbsp;<View className="itemStyeltwo">[5]</View>{recordData.min}
</View> </View>
</View> </View>
</View> </View>
@ -335,9 +374,10 @@ export default class Index extends Component<any, any> {
</View> </View>
</View> </View>
</View> </View>
<View className='main_title'>-{face_Tyep}</View> <View className='main_title'>-{recordData.modeName}</View>
<View className='eacharts'> <View className='eacharts'>
<EchartsForm></EchartsForm> <EchartsForm EchartsData={EchartsData}></EchartsForm>
{/* <Echarts1></Echarts1> */}
</View> </View>
</View> </View>

@ -290,34 +290,36 @@ export default class Recording extends Component<any, any> {
// 跳转到护理报告 // 跳转到护理报告
toReport(id, recordId, item) { toReport(id, recordId, item) {
console.log(item, "查看类型", item.jumpType); console.log(item, "查看类型", item.jumpType);
item.jumpType = 1; if ([1,2,3,4,5].includes(item.jumpType)) {
switch (item.jumpType) { this.One(item);
case 1: } else if (item.jumpType === 0) {
this.One(item); this.two(item);
break; } else if (item.jumpType === 6) {
case 2: this.three(item);
this.two(item); } else {
break; this.AllDevice(item);
case 6:
this.three(item);
break;
default:
this.AllDevice(item);
} }
// let report =false // let report =false
// go("/pages/face_report/face_report?id=" + id + "&recordId=" + recordId+ "&report=" + report ); // go("/pages/face_report/face_report?id=" + id + "&recordId=" + recordId+ "&report=" + report );
} }
// 打开第一种类型 // 打开第一种类型
One = async (item) => { One = async (item) => {
console.log("打开第一种类型", item);
let report = false; let report = false;
let nursingData=JSON.parse(item.nursingData)
let obj ={
modeName:item.modeName,
data:nursingData
}
console.log("打开第一种类型", item,obj);
go( go(
"/recoding/pages/face_report_one/face_report_one?id=" + "/recoding/pages/face_report_one/face_report_one?id=" +
item.id + item.id +
"&recordId=" +
item.recordId +
"&report=" + "&report=" +
report report+ "&obj=" +
JSON.stringify(obj)
); );
}; };
// 打开第二种类型 // 打开第二种类型

Loading…
Cancel
Save