From 4f8b3953d2f45ad7e87102672e807ca434428b84 Mon Sep 17 00:00:00 2001 From: rongweikang <1174906669@qq.com> Date: Mon, 18 Mar 2024 14:26:40 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0echats=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moisture_test_report/Echarts/index.less | 0 .../moisture_test_report/Echarts/index.tsx | 100 ++++++++++++++++ src/pages/moisture_test_report/util.js | 112 ++++++++++++++++++ 3 files changed, 212 insertions(+) create mode 100644 src/pages/moisture_test_report/Echarts/index.less create mode 100644 src/pages/moisture_test_report/Echarts/index.tsx create mode 100644 src/pages/moisture_test_report/util.js diff --git a/src/pages/moisture_test_report/Echarts/index.less b/src/pages/moisture_test_report/Echarts/index.less new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/moisture_test_report/Echarts/index.tsx b/src/pages/moisture_test_report/Echarts/index.tsx new file mode 100644 index 0000000..3b47257 --- /dev/null +++ b/src/pages/moisture_test_report/Echarts/index.tsx @@ -0,0 +1,100 @@ +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 echartsRef = useRef(null); + const option: EChartOption = { + grid: { + // 让图表占满容器 + top: "28rpx", + left: "30rpx", + right: "35rpx", + bottom: "38rpx", + }, + title: { + left: 'center', + }, + xAxis: { + type: 'category', + boundaryGap: false, + splitLine: { + show: true, + }, + data: ['6.17', '6.18', '6.19', '6.20', '6.21', '6.22', '6.23'], + axisTick: { + show: false + }, + axisLine: { + lineStyle: { + color: '#ccc' + } + }, + axisLabel: { + fontSize: 9 + } + }, + yAxis: { + type: 'value', + show: false + }, + series: [ + { + type: 'line', + itemStyle: { + color: 'rgb(168, 222, 244)' + }, + symbolSize: 0, + label: { + show: true, + distance: 8, + formatter: function (params) { + return params.value + '级'; + } + }, + areaStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: 'rgb(220, 240, 248)' + + }, + { + offset: 1, + color: 'rgb(248, 253, 255)' + } + ]) + }, + data: [5, 3, 4, 6, 3, 4, 3], + } + ] + }; + + return ( + + + + + + ); +} + +export default Index; diff --git a/src/pages/moisture_test_report/util.js b/src/pages/moisture_test_report/util.js new file mode 100644 index 0000000..b7783af --- /dev/null +++ b/src/pages/moisture_test_report/util.js @@ -0,0 +1,112 @@ +// 获取当前连接状态Text +var getConnectionStatusTitle = function (isError, isConnection, deviceType, isStand) { + if (isError) { + return '蓝牙连接失败' + } + if (!isConnection) return '蓝牙连接指引' + // 1: FR200 2: MATRIX 3: WL200 4: FR380 5: FR390 6: M01 + switch (deviceType) { + case 1: + case 2: + case 4: + case 5: + case 6: + return '蓝牙连接中' + case 3: + return isStand ? '支架模式启动中' : '面罩模式启动中' + default: + return '蓝牙已连接' + } +} + +var getHttpsUrl = function (url) { + if (!url) return; + if ((url.indexOf('http') || url.indexOf('https')) > -1) { + return url; + } + return 'https://oss.flossom.com' + url; +} + +var getStatusData = function (level) { + var bgCssData = { + serious: 'background: #FFE3E3', + moderate: 'background: #FFEBDC', + slight: 'background: #F6FCFF', + normal: 'background: #F8F8F8', + sufficient: 'background: #F8F8F8' + } + var progressBgData = { + serious: 'background: #FF9393', + moderate: 'background: #FFC58C', + slight: 'background: #E5F3F9', + normal: 'background: #C2E5F3', + sufficient: 'background: #9FDBF3' + } + if (level >= 1 && level <= 2) { + return { + bg: bgCssData.serious, + title: '严重缺水', + gear: 1, + img: 'serious', + progressBg: progressBgData.serious + } + } else if (level >= 3 && level <= 4) { + return { + bg: bgCssData.moderate, + title: '中度缺水', + gear: 2, + img: 'moderate', + progressBg: progressBgData.moderate + } + } else if (level >= 5 && level <= 6) { + return { + bg: bgCssData.slight, + title: '轻微缺水', + gear: 3, + img: 'slight', + progressBg: progressBgData.slight + } + } else if (level >= 7 && level <= 8) { + return { + bg: bgCssData.normal, + title: '水分正常', + gear: 4, + img: 'normal', + progressBg: progressBgData.normal + } + } else if (level >= 9 && level <= 10) { + return { + bg: bgCssData.sufficient, + title: '水分充足', + gear: 5, + img: 'sufficient', + progressBg: progressBgData.sufficient + } + } +} + +var formatDuration = function (string) { + return string.slice(0, 2) + '分' + string.slice(-2) + '秒' +} + +var formatEnergy = function (string, type) { + if (!string) return; + var minutes = parseInt(string.slice(0, 2)); + var seconds = parseInt(string.slice(-2)); + var energy = minutes * 60 + seconds + if (type === 'face') { + return energy >= 360 ? 360 : energy + } + if (type === 'eye') { + return energy >= 240 ? 240 : energy + } + return energy >= 600 ? 600 : energy +} + +module.exports = { + getConnectionStatusTitle, + getStatusData, + getHttpsUrl, + formatDuration, + formatEnergy +} From 5fb64bc55ce58c2ba2daffb6756b87935f26947d Mon Sep 17 00:00:00 2001 From: rongweikang <1174906669@qq.com> Date: Mon, 18 Mar 2024 14:27:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iotCarePlan/components/Echart/index.less | 5 +-- .../iotCarePlan/components/Echart/index.tsx | 40 ++----------------- .../moisture_test_report.less | 5 ++- .../moisture_test_report.tsx | 22 +++++----- 4 files changed, 21 insertions(+), 51 deletions(-) diff --git a/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less b/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less index 516b404..ad4506d 100644 --- a/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less +++ b/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less @@ -1,13 +1,12 @@ .box { width: 690rpx; height: 320rpx; - margin: 28rpx auto; + margin: 28rpx auto 150rpx; background-color: #fff; border-radius: 30rpx; padding: 35rpx 25rpx 25rpx 35rpx; box-sizing: border-box; position: relative; - z-index: 0; } .box_background { position: absolute; @@ -40,7 +39,7 @@ position: relative; height: 18rpx; .bottom_line { - border-bottom: 1rpx #ccc dashed; + // border-bottom: 1rpx #ccc dashed; width: 550rpx; margin-left: 20rpx; position: absolute; diff --git a/src/moduleIOT/pages/iotCarePlan/components/Echart/index.tsx b/src/moduleIOT/pages/iotCarePlan/components/Echart/index.tsx index 414a36f..20ac446 100644 --- a/src/moduleIOT/pages/iotCarePlan/components/Echart/index.tsx +++ b/src/moduleIOT/pages/iotCarePlan/components/Echart/index.tsx @@ -15,36 +15,6 @@ interface Props { } 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(null); const option: EChartOption = { grid: { @@ -54,10 +24,6 @@ function Index() { right: "28rpx", bottom: "17rpx", }, - legend: { - show: false, - zlevel: -1, - }, xAxis: { // name: '', // nameGap: 5, @@ -100,7 +66,7 @@ function Index() { max: 8, splitNumber: 8, splitLine: { - show: false, + show: true, lineStyle: { color: "#cccccc", type: [4, 2], @@ -294,7 +260,7 @@ function Index() { ref={echartsRef} // isPage={false} // style自定义设置echarts宽高 - style={{ width: "630rpx", height: "260rpx" }} + style={{ width: "630rpx", height: "260rpx", zIndex: 1 }} /> @@ -302,7 +268,7 @@ function Index() { {level.map((item) => ( {item} - 8 + ))} diff --git a/src/pages/moisture_test_report/moisture_test_report.less b/src/pages/moisture_test_report/moisture_test_report.less index 9ce13f2..a9d9092 100644 --- a/src/pages/moisture_test_report/moisture_test_report.less +++ b/src/pages/moisture_test_report/moisture_test_report.less @@ -7,8 +7,9 @@ page { } .moisture_test_report .time { + font-family: Poppins, Poppins; font-size: 36rpx; - font-weight: 500; + font-weight: 700; color: #000000; line-height: 1; padding: 38rpx 0; @@ -245,7 +246,7 @@ page { .report_chart { width: 100%; - height: 500rpx; + height: 328rpx; background: #FFFFFF; border-radius: 30rpx; margin: 20rpx 0; diff --git a/src/pages/moisture_test_report/moisture_test_report.tsx b/src/pages/moisture_test_report/moisture_test_report.tsx index 67baec6..3cf766c 100644 --- a/src/pages/moisture_test_report/moisture_test_report.tsx +++ b/src/pages/moisture_test_report/moisture_test_report.tsx @@ -9,9 +9,8 @@ import Taro from "@tarojs/taro"; import { connect } from "react-redux"; import { setMobile } from "../../store/features/userInfo"; /*** redux end ***/ - -import { WCUserLogin } from "../../utils/Interface"; - +import Navbar from "../../components/navbar/navbar"; +import Echarts from "./Echarts/index"; import "./moisture_test_report.less"; class MoistureTestReport extends Component { @@ -49,7 +48,7 @@ class MoistureTestReport extends Component { }; } - async onLoad() { } + componentDidMount() { } componentWillUnmount() { } @@ -58,6 +57,9 @@ class MoistureTestReport extends Component { componentDidHide() { } + async onLoad() { + + } async initData() { } getStatusData(level) { @@ -121,16 +123,18 @@ class MoistureTestReport extends Component { render() { let { name, imgUrl, reportData, bgCssData, isClock, xinde, imglist, id, show } = this.state return ( + - - {reportData.curDate || ''} + + + 2023.6.23 - + 额头 - {/* {this.getStatusData(7).title} */} + {this.getStatusData(7).title} @@ -217,7 +221,7 @@ class MoistureTestReport extends Component { 肌肤整体 - {/* */} + From 3bac8ffbed203e9f7b95b1a7c36b5ec40513b4ed Mon Sep 17 00:00:00 2001 From: rongweikang <1174906669@qq.com> Date: Mon, 18 Mar 2024 16:32:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=88=86=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.config.ts | 32 +- .../pages/instrument/instrument.config.js | 0 .../pages/instrument/instrument.less | 0 .../pages/instrument/instrument.tsx | 138 +- .../pages/instrument/intro.config.js | 0 .../pages/instrument/intro.less | 0 .../pages/instrument/intro.tsx | 0 .../pages/instrumentClickinUpload/index.less | 0 .../pages/instrumentClickinUpload/index.tsx | 118 +- .../pages/instrument_detail/index.less | 0 .../pages/instrument_detail/index.tsx | 2 +- .../pages/instrument_manage/index.config.js | 0 .../pages/instrument_manage/index.less | 0 .../pages/instrument_manage/index.tsx | 10 +- .../iotCarePlan/components/Echart/index.less | 2 +- .../components/Echart_face/index.less | 1654 ----------------- src/pages/index/index.tsx | 4 +- src/pages/initiate/initiate.tsx | 2 +- .../face_report_one/face_report_one.config.js | 0 .../face_report_one/face_report_one.less | 0 .../pages/face_report_one/face_report_one.tsx | 151 +- .../moisture_test_report/Echarts/index.less | 0 .../moisture_test_report/Echarts/index.tsx | 0 .../moisture_test_report.less | 0 .../moisture_test_report.tsx | 4 +- .../pages/moisture_test_report/util.js | 0 .../pages/recording/recording.config.js | 0 .../pages/recording/recording.less | 0 .../pages/recording/recording.tsx | 232 +-- 29 files changed, 354 insertions(+), 1995 deletions(-) rename src/{ => instrument}/pages/instrument/instrument.config.js (100%) rename src/{ => instrument}/pages/instrument/instrument.less (100%) rename src/{ => instrument}/pages/instrument/instrument.tsx (85%) rename src/{ => instrument}/pages/instrument/intro.config.js (100%) rename src/{ => instrument}/pages/instrument/intro.less (100%) rename src/{ => instrument}/pages/instrument/intro.tsx (100%) rename src/{ => instrument}/pages/instrumentClickinUpload/index.less (100%) rename src/{ => instrument}/pages/instrumentClickinUpload/index.tsx (80%) rename src/{ => instrument}/pages/instrument_detail/index.less (100%) rename src/{ => instrument}/pages/instrument_detail/index.tsx (98%) rename src/{ => instrument}/pages/instrument_manage/index.config.js (100%) rename src/{ => instrument}/pages/instrument_manage/index.less (100%) rename src/{ => instrument}/pages/instrument_manage/index.tsx (95%) rename src/{ => recoding}/pages/face_report_one/face_report_one.config.js (100%) rename src/{ => recoding}/pages/face_report_one/face_report_one.less (100%) rename src/{ => recoding}/pages/face_report_one/face_report_one.tsx (72%) rename src/{ => recoding}/pages/moisture_test_report/Echarts/index.less (100%) rename src/{ => recoding}/pages/moisture_test_report/Echarts/index.tsx (100%) rename src/{ => recoding}/pages/moisture_test_report/moisture_test_report.less (100%) rename src/{ => recoding}/pages/moisture_test_report/moisture_test_report.tsx (99%) rename src/{ => recoding}/pages/moisture_test_report/util.js (100%) rename src/{ => recoding}/pages/recording/recording.config.js (100%) rename src/{ => recoding}/pages/recording/recording.less (100%) rename src/{ => recoding}/pages/recording/recording.tsx (76%) diff --git a/src/app.config.ts b/src/app.config.ts index 21b808b..67a4efb 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -12,26 +12,18 @@ export default defineAppConfig({ "pages/userInfo/userInfo", "pages/userInfoDetail/userInfoDetail", "pages/register/register", - "pages/instrument/instrument", - "pages/instrument/intro", - "pages/instrument_manage/index", - "pages/instrument_detail/index", - "pages/instrumentClickinUpload/index", "pages/privacyPolicy/privacyPolicy", "pages/userPolicy/userPolicy", "pages/about/about", "pages/message/message", "pages/consultant/consultant", "pages/integral_list/integral_list", - "pages/recording/recording", "pages/webViewPage/webViewPage", - 'pages/template/template', - 'pages/face_report/face_report', - 'pages/face_report_one/face_report_one', - 'pages/face_report_AllDevice/face_report_AllDevice', + "pages/template/template", + "pages/face_report/face_report", + "pages/face_report_AllDevice/face_report_AllDevice", "pages/connection_help/connection_help", "pages/errorpage/errorpage", - "pages/moisture_test_report/moisture_test_report", ], tabBar: { custom: true, @@ -88,5 +80,23 @@ export default defineAppConfig({ root: "moduleIOT", pages: ["pages/iotCarePlan/WL200", "pages/iotCarePlan/FR200"], }, + { + root: "recoding", + pages: [ + "pages/recording/recording", + "pages/face_report_one/face_report_one", + "pages/moisture_test_report/moisture_test_report", + ], + }, + { + root: "instrument", + pages: [ + "pages/instrument/instrument", + "pages/instrument/intro", + "pages/instrument_manage/index", + "pages/instrument_detail/index", + "pages/instrumentClickinUpload/index", + ], + }, ], }); diff --git a/src/pages/instrument/instrument.config.js b/src/instrument/pages/instrument/instrument.config.js similarity index 100% rename from src/pages/instrument/instrument.config.js rename to src/instrument/pages/instrument/instrument.config.js diff --git a/src/pages/instrument/instrument.less b/src/instrument/pages/instrument/instrument.less similarity index 100% rename from src/pages/instrument/instrument.less rename to src/instrument/pages/instrument/instrument.less diff --git a/src/pages/instrument/instrument.tsx b/src/instrument/pages/instrument/instrument.tsx similarity index 85% rename from src/pages/instrument/instrument.tsx rename to src/instrument/pages/instrument/instrument.tsx index 01dc8e9..b9fb4de 100644 --- a/src/pages/instrument/instrument.tsx +++ b/src/instrument/pages/instrument/instrument.tsx @@ -529,7 +529,7 @@ export default class Instrument extends Component { confirm={this.closeDev} /> */} { /> - - - 仪器绑定 - + + + 仪器绑定 + 请参考图片指引,扫描或输入产品序列号 - 完成花至美容仪绑定 + 完成花至美容仪绑定 - + {inputType === 1 ? ( - - - + + + 需要绑定的仪器 @@ -623,11 +623,11 @@ export default class Instrument extends Component { {equipmentList.length > 0 && equipmentList.map((item, index) => { @@ -641,11 +641,11 @@ export default class Instrument extends Component { onClick={this.onSelectChange.bind(this, item)} > - {item.name} + {item.name} ); })} @@ -659,8 +659,8 @@ export default class Instrument extends Component { )} - - + + { onClick={this.onTabTap.bind(this, 1)} > 手写输入绑定 - + {channelInfo.isScanCode === 1 && ( { onClick={this.onTabTap.bind(this, 2)} > 扫码绑定 - + )} @@ -686,38 +686,38 @@ export default class Instrument extends Component { {inputType == 1 && ( - - - - + + + + 填写序列号 * - - 查看序列号位置 + + 查看序列号位置 - + - - - + + + 上传序列号照片 * @@ -725,20 +725,20 @@ export default class Instrument extends Component { {channelInfo.serialImage && ( )} {!channelInfo.serialImage && ( )} @@ -748,10 +748,10 @@ export default class Instrument extends Component { )} - + {inputType == 1 && ( 确认绑定 @@ -759,10 +759,10 @@ export default class Instrument extends Component { )} {inputType == 2 && ( - + 扫码绑定 diff --git a/src/pages/instrument/intro.config.js b/src/instrument/pages/instrument/intro.config.js similarity index 100% rename from src/pages/instrument/intro.config.js rename to src/instrument/pages/instrument/intro.config.js diff --git a/src/pages/instrument/intro.less b/src/instrument/pages/instrument/intro.less similarity index 100% rename from src/pages/instrument/intro.less rename to src/instrument/pages/instrument/intro.less diff --git a/src/pages/instrument/intro.tsx b/src/instrument/pages/instrument/intro.tsx similarity index 100% rename from src/pages/instrument/intro.tsx rename to src/instrument/pages/instrument/intro.tsx diff --git a/src/pages/instrumentClickinUpload/index.less b/src/instrument/pages/instrumentClickinUpload/index.less similarity index 100% rename from src/pages/instrumentClickinUpload/index.less rename to src/instrument/pages/instrumentClickinUpload/index.less diff --git a/src/pages/instrumentClickinUpload/index.tsx b/src/instrument/pages/instrumentClickinUpload/index.tsx similarity index 80% rename from src/pages/instrumentClickinUpload/index.tsx rename to src/instrument/pages/instrumentClickinUpload/index.tsx index 7dddbc6..005c239 100644 --- a/src/pages/instrumentClickinUpload/index.tsx +++ b/src/instrument/pages/instrumentClickinUpload/index.tsx @@ -319,84 +319,84 @@ export default class InstrumentClickInUpload extends Component { } = this.state; return ( - + - - + + - + {modeInfo.map((item, index) => { return ( { : "", }} > - - - {item.modeName} - {item.modeDesc} + + + {item.modeName} + {item.modeDesc} {!item.lock && zkmoshiindex !== index && ( - + )} {!item.lock && zkmoshiindex == index && ( - - + + )} {item.lock && ( - + )} {item.modeBanner && index == zkmoshiindex && ( - - + + )} @@ -441,32 +441,32 @@ export default class InstrumentClickInUpload extends Component { - - - - - 打卡上传 - + + + + + 打卡上传 + - + {punchInInfo.clockImageList.length > 0 && punchInInfo.clockImageList.map((item, index) => { return ( - + @@ -475,23 +475,23 @@ export default class InstrumentClickInUpload extends Component { {punchInInfo.clockImageList.length < 3 && ( )} - + {/* {tipshow && ( @@ -500,7 +500,7 @@ export default class InstrumentClickInUpload extends Component { : "请记录一下今天打卡的心得吧~"} )} */} - + {punchInInfo.clockContent.length}/100 {/* {punchInInfo.clockContent.length}/100 */} @@ -509,16 +509,16 @@ export default class InstrumentClickInUpload extends Component { - + {!isSubmit && ( - - 提交打卡 + + 提交打卡 )} {isSubmit && ( - - 提交打卡 + + 提交打卡 )} diff --git a/src/pages/instrument_detail/index.less b/src/instrument/pages/instrument_detail/index.less similarity index 100% rename from src/pages/instrument_detail/index.less rename to src/instrument/pages/instrument_detail/index.less diff --git a/src/pages/instrument_detail/index.tsx b/src/instrument/pages/instrument_detail/index.tsx similarity index 98% rename from src/pages/instrument_detail/index.tsx rename to src/instrument/pages/instrument_detail/index.tsx index c690a92..c224674 100644 --- a/src/pages/instrument_detail/index.tsx +++ b/src/instrument/pages/instrument_detail/index.tsx @@ -5,7 +5,7 @@ import dayjs from "dayjs"; import { Component, PropsWithChildren, useEffect, useState } from "react"; import { Block, View, Text, Image, Input, Button } from "@tarojs/components"; -import Navbar from "../../components/navbar/navbar"; +import Navbar from "../../../components/navbar/navbar"; import "./index.less"; import { getStorageSync } from "@/utils/traoAPI"; diff --git a/src/pages/instrument_manage/index.config.js b/src/instrument/pages/instrument_manage/index.config.js similarity index 100% rename from src/pages/instrument_manage/index.config.js rename to src/instrument/pages/instrument_manage/index.config.js diff --git a/src/pages/instrument_manage/index.less b/src/instrument/pages/instrument_manage/index.less similarity index 100% rename from src/pages/instrument_manage/index.less rename to src/instrument/pages/instrument_manage/index.less diff --git a/src/pages/instrument_manage/index.tsx b/src/instrument/pages/instrument_manage/index.tsx similarity index 95% rename from src/pages/instrument_manage/index.tsx rename to src/instrument/pages/instrument_manage/index.tsx index 9ee030b..b48b52c 100644 --- a/src/pages/instrument_manage/index.tsx +++ b/src/instrument/pages/instrument_manage/index.tsx @@ -15,10 +15,10 @@ import { } from "@tarojs/components"; import "./index.less"; -import Navbar from "../../components/navbar/navbar"; +import Navbar from "../../../components/navbar/navbar"; -import { InstrumentInfo } from "../../utils/Interface"; -import { go, msg, setStorageSync } from "../../utils/traoAPI"; +import { InstrumentInfo } from "../../../utils/Interface"; +import { go, msg, setStorageSync } from "../../../utils/traoAPI"; export default class InstrumentManage extends Component { constructor(props) { @@ -177,7 +177,7 @@ export default class InstrumentManage extends Component { 仪器介绍 @@ -229,7 +229,7 @@ export default class InstrumentManage extends Component { 立即购买 diff --git a/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less b/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less index ad4506d..d3a6450 100644 --- a/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less +++ b/src/moduleIOT/pages/iotCarePlan/components/Echart/index.less @@ -1,7 +1,7 @@ .box { width: 690rpx; height: 320rpx; - margin: 28rpx auto 150rpx; + margin: 28rpx auto; background-color: #fff; border-radius: 30rpx; padding: 35rpx 25rpx 25rpx 35rpx; diff --git a/src/moduleIOT/pages/iotCarePlan/components/Echart_face/index.less b/src/moduleIOT/pages/iotCarePlan/components/Echart_face/index.less index fbe4ead..e69de29 100644 --- a/src/moduleIOT/pages/iotCarePlan/components/Echart_face/index.less +++ b/src/moduleIOT/pages/iotCarePlan/components/Echart_face/index.less @@ -1,1654 +0,0 @@ -.box { - width: 690rpx; - height: 320rpx; - margin: 28rpx auto; - background-color: #fff; - border-radius: 30rpx; - padding: 35rpx 25rpx 25rpx 35rpx; - box-sizing: border-box; - position: relative; - z-index: 0; -} -.box_background { - position: absolute; - top: 0; - left: 0; - width: 690rpx; - height: 320rpx; - border-radius: 30rpx; - background-color: #fff; - .power { - margin: 34rpx 0 28rpx 28rpx; - font-family: PingFang-SC; - font-weight: 500; - font-size: 18rpx; - color: #cccccc; - } - .full { - width: 24rpx; - height: 24rpx; - position: absolute; - top: 32rpx; - right: 26rpx; - } - .line { - margin: 0 0 6rpx 35rpx; - font-family: PingFang-SC; - font-size: 14rpx; - color: #cccccc; - display: flex; - position: relative; - height: 18rpx; - .bottom_line { - border-bottom: 1rpx #ccc dashed; - width: 550rpx; - margin-left: 20rpx; - position: absolute; - bottom: -6rpx; - right: 74rpx; - height: 4rpx; - color: #fff; - } - } - - .time { - position: absolute; - bottom: 22rpx; - right: 24rpx; - font-family: PingFang-SC; - font-size: 18rpx; - color: #cccccc; - } - .Seconds{ - position: absolute; - font-size: 18rpx; - color: #cccccc; - margin: 0 0 6rpx 65rpx; - font-family: PingFang-SC; - font-size: 14rpx; - color: #cccccc; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - position: relative; - height: 18rpx; - width: 550rpx; - background-color: red; - .Seconds_item{ - background-color: #bf8e49; - flex: 1; - } - } -} - -page { - background: #f8f8f8; - background: #f3f3f3; -} -.titlemain { - position: fixed; - z-index: 99; - width: 100%; - top: 0; - .logoicon { - width: 223rpx; - } - .title { - position: relative; - display: flex; - align-items: center; - justify-content: center; - } -} -.infobox1 { - background: #fff; - border-radius: 30rpx; - margin: 27rpx 30rpx 22rpx; - position: relative; - box-shadow: -2rpx 0 12rpx 0.5rpx rgba(129, 129, 129, 0.05); - .img { - width: 690rpx; - height: 690rpx; - box-shadow: -2rpx 0 12rpx 0.5rpx rgba(129, 129, 129, 0.05); - position: relative; - border-radius: 20rpx; - margin: auto; - .imgz { - border-radius: 20rpx; - width: 100%; - height: 100%; - overflow: hidden; - .video_tip { - position: absolute; - z-index: 99; - background: rgba(0, 0, 0, 0.5); - color: #fff; - font-size: 28rpx; - top: 50%; - left: 50%; - margin-top: -25rpx; - padding: 11rpx 34rpx; - font-weight: 500; - border-radius: 30rpx; - width: 500rpx; - transform: translateX(-50%); - text-align: center; - word-break: break-word; - box-sizing: border-box; - .icon { - width: 30rpx; - height: 30rpx; - margin-right: 17rpx; - } - } - .music { - width: 54rpx; - height: 54rpx; - background: rgba(255, 255, 255, 0.6); - border-radius: 50%; - position: absolute; - right: 20rpx; - top: 20rpx; - image { - width: 100%; - height: 100%; - } - } - } - .tipbox2 { - position: absolute; - z-index: 999999; - width: 500rpx; - bottom: -290rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 16rpx 0; - .jicon { - width: 26rpx; - position: absolute; - top: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 34rpx 24rpx 0 24rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 16rpx; - position: relative; - left: calc(500rpx - 36rpx - 154rpx); - } - } - .dottedLine { - border: 4rpx dashed #e2c6a3; - height: 100%; - position: absolute; - z-index: 999999; - border-radius: 20rpx; - right: 0; - left: 0; - } - .tipbox1 { - position: absolute; - z-index: 999999; - width: 480rpx; - bottom: -330rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 16rpx 0; - margin-left: 8rpx; - .jicon { - width: 26rpx; - position: absolute; - top: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 34rpx 2rpx 0 24rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 14rpx; - position: relative; - left: calc(460rpx - 22rpx - 154rpx); - } - } - } - .info1 { - height: 92rpx; - background: #fff; - border-radius: 20rpx; - position: relative; - .dottedLine { - border: 4rpx dashed #e2c6a3; - height: 100%; - position: absolute; - z-index: 999999; - border-radius: 20rpx; - right: 0; - left: 0; - } - .block { - width: 33%; - text-align: center; - .num { - font-size: 30rpx; - font-weight: 800; - color: #000000; - } - .color { - font-size: 30rpx; - font-weight: 800; - color: #000000; - } - .icon { - position: relative; - margin-left: 10rpx; - .num { - position: absolute; - color: #e8d3b0; - font-size: 22rpx; - font-weight: bold; - left: 50%; - margin-left: -8rpx; - top: 50%; - margin-top: -18rpx; - } - } - .dianliang1 { - background: linear-gradient(0deg, #efdcc2, #fff2df); - width: 10rpx; - height: 24rpx; - border-radius: 5rpx; - margin: 0 12rpx 0 0; - } - .dianliang2 { - background: #f8f8f8; - width: 10rpx; - height: 24rpx; - border-radius: 5rpx; - margin: 0 12rpx 0 0; - } - } - .border { - background: #dddddd; - width: 1rpx; - height: 50rpx; - } - } - .border_img { - position: absolute; - width: 700rpx; - z-index: 9999999; - bottom: -6rpx; - border: 6rpx dashed #e2c6a3; - border-radius: 20rpx; - padding: 4rpx; - left: -4rpx; - } - .tipbox4 { - position: absolute; - z-index: 999999; - width: 460rpx; - bottom: -260rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 16rpx 0; - .jicon { - width: 26rpx; - position: absolute; - top: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 34rpx 0 0 24rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 14rpx; - position: relative; - left: calc(460rpx - 22rpx - 154rpx); - } - } -} -.infobox1 .info1 .block .tip1, -.infobox1 .info1 .block .dang { - font-size: 26rpx; - font-weight: 500; - color: #000000; -} -.infobox2 { - position: relative; - border-radius: 20rpx; - height: 74rpx; - margin: 60rpx 20rpx 0; - .block { - width: 50%; - .icon { - width: 46rpx; - } - .name { - margin-left: 14rpx; - color: #202020; - font-size: 22rpx; - } - } - .border { - background: #696460; - width: 2rpx; - height: 16rpx; - } - .border_img4 { - height: 94rpx; - border: 6rpx dashed #e2c6a3; - position: absolute; - z-index: 99999; - left: -8rpx; - width: calc(100% + 8rpx); - border-radius: 20rpx; - } - .tipbox5 { - position: fixed; - z-index: 999999; - width: 460rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 24rpx 0; - left: 60rpx; - .jicon { - width: 26rpx; - position: absolute; - bottom: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 26rpx 0 0 34rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 14rpx; - position: relative; - left: calc(460rpx - 22rpx - 154rpx); - } - } -} -.action_box { - position: fixed; - bottom: 0; - width: 100%; - height: 138rpx; - background: #ffffff; - box-shadow: 0rpx -3rpx 7rpx 1rpx rgba(173, 191, 207, 0.21); - border-bottom: 15rpx solid #ffffff; - .line { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 2rpx; - height: 70rpx; - background: #dddddd; - } - .items { - flex: 1; - } - .start_img { - width: 36rpx; - height: 36rpx; - } - .disabled { - opacity: 0.5 !important; - } - .end_img { - width: 36rpx; - height: 36rpx; - } - .text { - font-size: 32rpx; - font-weight: bold; - color: #000000; - margin-left: 18rpx; - } - .start_test { - width: 100%; - padding: 0 30rpx; - .txt { - width: 100%; - height: 90rpx; - line-height: 90rpx; - background: #000000; - border-radius: 45rpx; - text-align: center; - font-size: 32rpx; - font-weight: bold; - color: #ffffff; - } - } -} -.infobox3 { - margin: 4rpx 0 0 0; - height: 162rpx; - position: relative; - border-radius: 20rpx; - .tipbox4 { - position: absolute; - z-index: 999999; - width: 460rpx; - bottom: -260rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 16rpx 0; - .jicon { - width: 26rpx; - position: absolute; - top: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 34rpx 0 0 24rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 14rpx; - position: relative; - left: calc(460rpx - 22rpx - 154rpx); - } - } - .dottedLine { - border: 4rpx dashed #e2c6a3; - height: 100%; - position: absolute; - z-index: 999999; - border-radius: 20rpx; - right: 0; - left: 0; - } - .left { - display: inline-block; - width: 134rpx; - background: #fff; - border-radius: 0 18rpx 18rpx 0; - margin: 0 22rpx 0 0; - overflow: hidden; - .img { - width: 78rpx; - height: 78rpx; - margin-top: 10rpx; - margin: 4rpx auto 0; - } - .tip { - color: #000; - font-size: 22rpx; - padding: 4rpx 0; - text-align: center; - } - .checked { - text-align: center; - } - } - .info1 { - display: inline-block; - white-space: nowrap; - background: #fff; - flex-direction: column; - height: 100%; - border-radius: 20rpx; - overflow: hidden; - box-shadow: -2rpx 0 12rpx 0.5rpx rgba(129, 129, 129, 0.05); - .block1 { - .block1_1 { - height: 100%; - padding: 0 20rpx; - flex-direction: column; - .tip1 { - font-size: 26rpx; - font-weight: bold; - color: #000000; - } - .tip2 { - font-size: 24rpx; - font-weight: 500; - color: #666666; - padding-top: 3rpx; - } - } - } - .block2 { - display: inline-block; - height: 100%; - width: 0; - transition: all 0.3s; - .block2_info { - width: 140rpx; - text-align: center; - box-shadow: -2rpx 0 12rpx 0.5rpx rgba(129, 129, 129, 0.05); - height: calc(140rpx - 10rpx); - border-radius: 20rpx; - align-items: flex-end; - padding: 0 0 10rpx 0; - display: inline-block; - position: relative; - overflow: hidden; - .block2_img { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - } - .block3_img { - -webkit-filter: grayscale(100%); - -moz-filter: grayscale(100%); - -ms-filter: grayscale(100%); - -o-filter: grayscale(100%); - filter: grayscale(100%); - filter: gray; - opacity: 0.5; - } - .block2_bg { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: 0.5; - } - .block2_info1 { - height: 100%; - position: relative; - z-index: 99; - background: transparent; - .block2_info1_tip1 { - color: #202020; - font-weight: bold; - font-size: 22rpx; - position: absolute; - bottom: 20rpx; - width: 100%; - text-align: center; - } - .block2_info1_tip2 { - color: #202020; - font-size: 16rpx; - position: absolute; - bottom: 0; - text-align: center; - width: 100%; - } - } - } - } - .icon { - width: 28rpx; - margin-top: 20rpx; - } - } - .info2 { - width: calc(100% - 130rpx - 20rpx); - background: #fff; - height: 162rpx; - border-radius: 20rpx; - box-shadow: -2rpx 0 12rpx 0.5rpx rgba(129, 129, 129, 0.05); - .block1 { - padding: 0 16rpx; - } - } - .border_img2 { - width: calc(100% + 8rpx); - position: absolute; - z-index: 999999; - left: -8rpx; - } - .tipbox3 { - position: absolute; - z-index: 999999; - width: 460rpx; - bottom: -290rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 16rpx 0; - margin-left: 8rpx; - .jicon { - width: 26rpx; - position: absolute; - top: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 34rpx 0 0 24rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 14rpx; - position: relative; - left: calc(460rpx - 22rpx - 154rpx); - } - } -} -.infobox3 .info1 .block1, -.infobox3 .info2 .block1 { - flex-direction: column; - display: inline-block; - height: 100%; - text-align: center; -} -.infobox3 .info1 .tip1, -.infobox3 .info2 .tip1 { - color: #202020; - font-size: 22rpx; - font-weight: bold; -} -.infobox3 .info1 .tip2, -.infobox3 .info2 .tip2 { - color: #202020; - font-size: 22rpx; -} -.infobox3 .info1 .quan1, -.infobox3 .info2 .quan1 { - border-radius: 50%; - width: 30rpx; - height: 30rpx; - position: relative; - margin: 18rpx auto 0; - background: #fff; - box-sizing: border-box; - border: 4rpx solid #f1f1f1; -} -.infobox3 .info1 .quan1 .quan2, -.infobox3 .info2 .quan1 .quan2 { - position: absolute; - border-radius: 50%; - background: #000000; - width: 14rpx; - height: 14rpx; -} -.tipbox { - position: absolute; - z-index: 999999; - width: 100%; - bottom: 50rpx; - .tip1 { - color: #fefeff; - font-size: 36rpx; - text-align: center; - } - .tip_btn { - background: #e2c6a3; - border-radius: 32rpx; - width: 212rpx; - height: 66rpx; - line-height: 66rpx; - text-align: center; - margin: auto; - font-size: 30rpx; - font-weight: bold; - color: #ffffff; - margin-top: 54rpx; - } -} -.infobox4 { - height: 300rpx; - border-radius: 20rpx; - box-shadow: -2rpx 0 12rpx 0.5rpx rgba(129, 129, 129, 0.05); - margin: 22rpx 20rpx; - background: #fff; - position: relative; - .dottedLine { - border: 4rpx dashed #e2c6a3; - height: 100%; - position: absolute; - z-index: 999999; - border-radius: 20rpx; - right: 0; - left: 0; - } - .border_img3 { - width: calc(100% + 16rpx); - position: absolute; - z-index: 999999; - top: -15rpx; - left: -8rpx; - } - .tipbox5 { - position: absolute; - z-index: 999999; - width: 460rpx; - top: -280rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 24rpx 0; - margin-left: 60rpx; - .jicon { - width: 26rpx; - position: absolute; - bottom: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 26rpx 0 0 34rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 14rpx; - position: relative; - left: calc(460rpx - 22rpx - 154rpx); - } - } -} -ec-canvas { - width: 100%; - height: 100%; -} -.popbox2 { - width: 670rpx; - height: 1102rpx; - background: #ffffff; - border-radius: 30rpx; - & > .title { - text-align: center; - padding: 49rpx 0 61rpx; - font-size: 36rpx; - font-weight: bold; - color: #030000; - line-height: 1; - } - & > .tipimg { - margin: 20rpx 28rpx 0; - } - & > .tipvideo { - margin: 0 auto; - width: 600rpx; - height: 600rpx; - } - & > .tiptext { - margin: 65rpx 0 63rpx; - padding: 0 48rpx 0 36rpx; - font-size: 28rpx; - font-weight: 500; - color: #000000; - min-height: 76rpx; - } - & > .popbox2btn { - & > .nextbtn { - text-align: center; - color: #fff; - width: 270rpx; - height: 90rpx; - line-height: 90rpx; - background: #000000; - border-radius: 45rpx; - font-size: 32rpx; - font-weight: bold; - margin: 0 auto; - box-sizing: border-box; - } - & > .prebtn { - text-align: center; - width: 270rpx; - height: 90rpx; - line-height: 90rpx; - border-radius: 45rpx; - font-weight: bold; - font-size: 32rpx; - color: #000000; - border: 2rpx solid #000000; - background: #ffffff; - margin: 0 auto; - box-sizing: border-box; - } - } - & > .icon { - position: absolute; - top: 0; - right: 0; - width: 90rpx; - height: 90rpx; - display: flex; - justify-content: center; - align-items: center; - & > image { - width: 24rpx; - height: 24rpx; - } - } -} -.popbox2btn { - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 25rpx; -} -.quantityTipShow { - position: absolute; - top: -50rpx; - right: 0; - background: rgba(0, 0, 0, 0.3); - font-size: 22rpx; - color: #fff; - border-radius: 30rpx; - padding: 8rpx 0rpx; - width: 260rpx; - .sanjiao { - position: absolute; - left: 50%; - margin-left: -15rpx; - width: 30rpx; - height: 30rpx; - transform: rotate(45deg); - bottom: -15rpx; - background: rgba(0, 0, 0, 0.3); - } -} -.async_box { - padding: 0 50rpx; - .title { - font-weight: bold; - text-align: center; - font-size: 32rpx; - padding: 30rpx 0; - } - .jindubox { - background: #dddddd; - height: 30rpx; - border-radius: 30rpx; - overflow: hidden; - position: relative; - .jindu { - width: 80%; - background: #dfc3a2; - height: 100%; - border-radius: 30rpx; - } - .baifenbi { - position: absolute; - font-size: 22rpx; - right: 20rpx; - color: #999; - top: 0; - } - } - .tip1 { - font-size: 26rpx; - padding: 30rpx 0 40rpx; - } -} -.infobox5 { - margin: 24rpx 20rpx 0; - border-radius: 18rpx; - background: #fff; - height: 260rpx; - padding: 20rpx; - position: relative; - .icon { - position: absolute; - width: 24rpx; - height: 24rpx; - right: 26rpx; - top: 32rpx; - } - .title { - color: #ccc; - font-size: 18rpx; - height: 42rpx; - line-height: 42rpx; - } - .info1 { - font-size: 14rpx; - color: #ccc; - display: flex; - margin-top: 10rpx; - .left { - border-right: 1px solid #e3e3e3; - padding: 0 8rpx; - width: 16rpx; - height: 180rpx; - display: flex; - align-items: center; - flex-direction: column; - justify-content: center; - .numblock { - padding: 0rpx 0; - } - } - .right { - width: calc(100% - 20rpx - 100rpx); - height: 180rpx; - border-bottom: 1px solid #e3e3e3; - padding: 0 10rpx 4rpx 20rpx; - position: relative; - .block { - flex-direction: column; - justify-content: flex-end; - position: relative; - .num { - position: absolute; - bottom: -30rpx; - } - .block_b0 { - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b1 { - background: #ffcf55; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b2 { - background: #febb22; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b3 { - background: #ffad28; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b4 { - background: #ff8510; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b5 { - background: #f85803; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b6 { - background: #e02e13; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b7 { - background: #b40016; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - .block_b8 { - background: #750010; - border-radius: 10rpx; - width: 38rpx; - height: 18rpx; - margin: 4rpx 0 0; - } - } - .timetip { - position: absolute; - right: -40rpx; - bottom: -25rpx; - } - } - } - .tipbox5 { - position: absolute; - z-index: 999999; - width: 460rpx; - top: -280rpx; - background: linear-gradient(#e2c6a3, #c7a274); - border-radius: 20rpx; - padding: 0 0 24rpx 0; - margin-left: 60rpx; - .jicon { - width: 26rpx; - position: absolute; - bottom: -20rpx; - left: 54rpx; - } - .tip1 { - color: #fefeff; - font-size: 36rpx; - padding: 26rpx 0 0 34rpx; - } - .tip_btn { - background: #ffffff; - border-radius: 26rpx; - width: 154rpx; - height: 52rpx; - line-height: 52rpx; - text-align: center; - font-size: 30rpx; - font-weight: bold; - color: #c69962; - margin-top: 14rpx; - position: relative; - left: calc(460rpx - 22rpx - 154rpx); - } - } -} -.water_test { - margin: 0 auto; - box-sizing: border-box; - padding: 42rpx 48rpx; - width: 690rpx; - height: 292rpx; - background: #ffffff; - border-radius: 30rpx; - .test_step { - .step_block { - flex-direction: column; - } - .step_top { - position: relative; - .line { - position: absolute; - top: 50%; - right: -117rpx; - width: 97rpx; - height: 0; - border-top: 2rpx dashed #f1f1f1; - } - .drop { - width: 10rpx; - height: 10rpx; - background: #999999; - border-radius: 50%; - } - .step_num { - font-size: 24rpx; - font-weight: 500; - color: #666666; - margin-left: 14rpx; - } - } - .step_name { - font-size: 26rpx; - font-weight: bold; - color: #000000; - margin-left: 14rpx; - padding-top: 12rpx; - letter-spacing: 2rpx; - } - } - .test_txt { - font-size: 24rpx; - font-weight: 500; - color: #999999; - padding-top: 48rpx; - line-height: 36rpx; - letter-spacing: 2rpx; - } -} -.testing { - .testing_header { - .items { - flex: 1; - border-radius: 30rpx 30rpx 0rpx 0rpx; - padding: 25rpx 0 21rpx; - justify-content: space-evenly; - .finish_img { - width: 24rpx; - height: 24rpx; - border-radius: 50%; - } - .value { - font-size: 24rpx; - font-weight: 500; - color: #666666; - line-height: 1; - } - .name { - font-size: 26rpx; - font-weight: bold; - color: #000000; - line-height: 1; - } - } - } - .testing_content { - width: 100%; - height: 228rpx; - background: #ffffff; - border-radius: 0rpx 0rpx 30rpx 30rpx; - padding: 51rpx 30rpx 0 36rpx; - box-sizing: border-box; - .progress_box { - width: 100%; - height: 36rpx; - line-height: 36rpx; - .title { - font-size: 28rpx; - font-weight: bold; - color: #000000; - min-width: 200rpx; - margin-right: 60rpx; - letter-spacing: 2rpx; - } - } - .tips { - font-size: 24rpx; - font-weight: 500; - color: #999999; - margin-top: 45rpx; - line-height: 36rpx; - letter-spacing: 2rpx; - } - .progress_block { - flex: 1; - } - .finish_img { - width: 36rpx; - height: 36rpx; - margin-left: 49rpx; - } - } -} -.isquanpingclass { - position: fixed; - width: calc(100% - 100rpx); - padding: 20rpx 50rpx; - margin: 0; - z-index: 999; - top: 0; - left: 0; - right: 0; - height: 100vh; -} -.canvas { - position: fixed; - top: -9999999px; -} -.popbox1 { - width: 600rpx; - height: 360rpx; - border-radius: 28rpx; - flex-direction: column; - .tip1 { - font-size: 40rpx; - color: #000000; - text-align: center; - font-weight: 400; - margin-top: 28rpx; - } - .tip2 { - font-size: 32rpx; - color: #000000; - text-align: center; - font-weight: 400; - margin-top: 36rpx; - height: 110rpx; - } - .btnbox { - .btn1 { - font-size: 30rpx; - color: #000000; - text-align: center; - font-weight: 400; - width: 240rpx; - height: 100rpx; - line-height: 100rpx; - border: 2rpx solid rgba(0, 0, 0, 0.3); - border-radius: 28rpx; - } - .btn2 { - font-size: 30rpx; - color: #000000; - text-align: center; - font-weight: 400; - width: 240rpx; - height: 100rpx; - line-height: 100rpx; - margin-left: 40rpx; - background: #e2c5a3; - border-radius: 28rpx; - } - } -} -.van-tabs__scroll--line { - background: transparent !important; -} -image { - width: 100%; - height: 100%; - display: flex; -} -/* .color{ - color: #F1AB15; - } */ -.ellipsis2 { - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; -} -.nodata { - color: #666666; - text-align: center; - margin-top: 50rpx; - font-size: 28rpx; -} -.MT30 { - margin-top: 30rpx; -} -.submitbtn { - position: absolute; - bottom: 100rpx; - width: 400rpx; - left: 50%; - margin-left: -200rpx; - .btn { - position: absolute; - top: 20rpx; - color: #fff; - font-weight: bold; - font-size: 32rpx; - text-align: center; - width: 100%; - bottom: 0; - } -} -.avatar-wrapper { - position: absolute; - bottom: 0; - width: 100%; - height: 100%; - left: 0; - right: 0; - top: 0; - z-index: 99; - opacity: 0; -} -.permeate_model_box { - position: relative; - display: flex; - flex-direction: column; - align-items: center; - width: 100%; - padding: 52rpx 30rpx 38rpx 30rpx; - box-sizing: border-box; - .my_moisture_box { - width: 600rpx; - height: 600rpx; - margin: 0 auto; - } - .permeate_title { - font-size: 36rpx; - font-weight: bold; - color: #030000; - line-height: 1; - padding-bottom: 54rpx; - box-sizing: border-box; - } - .permeate_tips { - font-size: 28rpx; - font-weight: 500; - color: #030000; - line-height: 60rpx; - padding: 37rpx 0; - box-sizing: border-box; - .txt { - font-size: 26rpx; - font-weight: 500; - color: #666666; - margin-left: 12rpx; - } - } - .permeate_btn { - height: 90rpx; - line-height: 90rpx; - background: #000000; - border-radius: 45rpx; - font-size: 32rpx; - font-weight: bold; - color: #ffffff; - padding: 0 72rpx; - } - .close_box { - position: absolute; - top: 34rpx; - right: 29rpx; - padding: 50rpx; - } - .close_img { - position: absolute; - top: 0; - right: 0; - width: 24rpx; - height: 24rpx; - } -} -.gear_adjust { - padding: 2rpx 10rpx 40rpx 18rpx; - .title { - font-size: 28rpx; - font-weight: bold; - color: #000000; - } - .gear_box { - margin-top: 14rpx; - .slider_class { - height: 12rpx; - box-sizing: border-box; - flex: 1; - border-radius: 6rpx; - } - .gear { - padding: 20rpx 0; - } - .pos { - font-size: 26rpx; - font-weight: 500; - color: #666666; - min-width: 76rpx; - margin-right: 32rpx; - } - } -} - -.gear_adjustment { - box-sizing: border-box; - width: 690rpx; - height: 300rpx; - background: #ffffff; - border-radius: 30rpx; - padding: 30rpx; - margin: 30rpx auto 200rpx; - .gear_box { - .gear { - margin-bottom: 30rpx; - .pos { - font-size: 26rpx; - font-weight: 500; - color: #666666; - min-width: 76rpx; - margin-right: 32rpx; - } - .gear_button { - width: 500rpx; - height: 60rpx; - background: #f8f8f8; - border-radius: 30rpx; - justify-content: space-between; - font-size: 20rpx; - - .button_minus { - width: 90rpx; - height: 60rpx; - background: #e5e5e5; - border-radius: 30rpx 0rpx 0rpx 30rpx; - display: flex; - justify-content: center; - align-items: center; - .image { - width: 28rpx; - height: 28rpx; - } - } - - .button_plus { - width: 90rpx; - height: 60rpx; - background: #e5e5e5; - border-radius: 0rpx 30rpx 30rpx 0rpx; - display: flex; - justify-content: center; - align-items: center; - .image { - width: 28rpx; - height: 28rpx; - } - } - - .button_value { - display: flex; - justify-content: center; - align-items: center; - font-size: 24rpx; - width: 320rpx; - height: 60rpx; - line-height: 60rpx; - color: #666; - .number { - font-family: PingFang SC; - font-weight: 800; - font-size: 30rpx; - color: #000000; - margin-right: 4rpx; - } - } - } - } - } -} - -.level_box { - padding-left: 109rpx; - .level_num { - font-size: 16rpx; - font-weight: 500; - color: #cccccc; - } -} -.custom-button { - position: relative; - width: 32rpx; - height: 32rpx; - background: linear-gradient(90deg, #ffe9c7, #eecda1); - border: 4rpx solid #ffffff; - border-radius: 50%; - box-sizing: border-box; - .circle { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 12rpx; - height: 12rpx; - background: #ffffff; - border-radius: 50%; - } - .level { - position: absolute; - top: -30rpx; - left: 0; - width: 44rpx; - font-size: 20rpx; - font-weight: 500; - color: #bf8e49; - height: 28rpx; - } -} -.current-button { - background: #cccc; - .level { - color: #cccc; - } -} -.success_popup { - width: calc(100% - 110rpx); - box-sizing: border-box; - .popup_content { - width: 100%; - padding: 52rpx 0 60rpx; - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - color: #030000; - .title { - font-size: 36rpx; - font-weight: bold; - } - .success_icon { - width: 120rpx; - height: 120rpx; - margin: 52rpx 0; - } - .tips { - font-size: 30rpx; - } - } - & > .infobox1 { - padding: 0rpx 0 35rpx; - .tip { - font-size: 36rpx; - font-weight: bold; - color: #030000; - text-align: center; - } - .tip1 { - text-align: center; - margin-top: 71rpx; - font-size: 30rpx; - color: #030000; - } - .tip2 { - color: #202020; - font-size: 40rpx; - text-align: center; - } - .btnbox { - margin-top: 71rpx; - padding: 0 3rpx 10rpx 15rpx; - display: flex; - align-items: center; - justify-content: space-between; - .btn1 { - background: #fff; - width: 212rpx; - height: 66rpx; - line-height: 66rpx; - text-align: center; - font-size: 30rpx; - color: #e2c6a3; - border-radius: 32rpx; - border: 2rpx solid #e2c6a3; - font-style: normal; - width: 270rpx; - height: 90rpx; - line-height: 90rpx; - background: #ffffff; - text-align: center; - border: 2rpx solid #000000; - border-radius: 45rpx; - font-size: 32rpx; - font-weight: bold; - color: #000000; - } - .btn2 { - width: 270rpx; - height: 90rpx; - line-height: 90rpx; - text-align: center; - background: #000000; - border-radius: 45rpx; - font-size: 32rpx; - font-weight: bold; - color: #ffffff; - font-style: normal; - width: 270rpx; - height: 90rpx; - line-height: 90rpx; - background: #000000; - text-align: center; - border-radius: 45rpx; - font-size: 32rpx; - font-weight: bold; - color: #ffffff; - } - } - } -} -.flex { - display: flex; -} -.aitems { - align-items: center; -} -.jcenter { - justify-content: center; -} -.sb { - justify-content: space-between; -} -.sa { - justify-content: space-around; -} -.wrap { - flex-wrap: wrap; -} diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 60f17b6..5abb48e 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -420,7 +420,7 @@ class Index extends Component { }; GetSiteAddTag = async (id) => { - go("/pages/moisture_test_report/moisture_test_report") + go("/recoding/pages/moisture_test_report/moisture_test_report") let res = await GetSiteAddTag(id); if (res.data.code === 200) { console.log("点击自动上报,不需要逻辑处理"); @@ -485,7 +485,7 @@ class Index extends Component { toNursingRecords = () => { let { ViewAddInstrument } = this.state; // go(`/pages/recording/recording?param1=${param1Value}`); - go(`/pages/recording/recording?param=${ViewAddInstrument}`); + go(`/recoding/pages/recording/recording?param=${ViewAddInstrument}`); }; gourl = async (e) => { diff --git a/src/pages/initiate/initiate.tsx b/src/pages/initiate/initiate.tsx index 8ede2f1..1ccc2f4 100644 --- a/src/pages/initiate/initiate.tsx +++ b/src/pages/initiate/initiate.tsx @@ -189,7 +189,7 @@ class Initiate extends Component { 欢迎来到花至小程序 diff --git a/src/pages/face_report_one/face_report_one.config.js b/src/recoding/pages/face_report_one/face_report_one.config.js similarity index 100% rename from src/pages/face_report_one/face_report_one.config.js rename to src/recoding/pages/face_report_one/face_report_one.config.js diff --git a/src/pages/face_report_one/face_report_one.less b/src/recoding/pages/face_report_one/face_report_one.less similarity index 100% rename from src/pages/face_report_one/face_report_one.less rename to src/recoding/pages/face_report_one/face_report_one.less diff --git a/src/pages/face_report_one/face_report_one.tsx b/src/recoding/pages/face_report_one/face_report_one.tsx similarity index 72% rename from src/pages/face_report_one/face_report_one.tsx rename to src/recoding/pages/face_report_one/face_report_one.tsx index d35c1bc..94c211c 100644 --- a/src/pages/face_report_one/face_report_one.tsx +++ b/src/recoding/pages/face_report_one/face_report_one.tsx @@ -1,21 +1,24 @@ import Taro from "@tarojs/taro"; import classnames from "classnames"; import { Component, PropsWithChildren, useEffect, useState } from "react"; -import { Progress } from "@antmjs/vantui"; -import { showModal } from "../../utils/traoAPI"; -import { Tab, Tabs, Dialog, Popup } from "@antmjs/vantui"; +import { Progress , Tab, Tabs, Dialog, Popup } from "@antmjs/vantui"; +import { showModal } from "@/utils/traoAPI"; + import { Block, View, Text, Image, Input, Button, Textarea, } from "@tarojs/components"; -import { date, getdates, previewImage } from "../../utils/util"; +import { date, getdates, previewImage } from "@/utils/util"; /** 自定义组件 **/ -import Navbar from "../../components/navbar/navbar"; -import PopupAlert from "../../components/popup/popup-alert"; -import { InstrumentInfo } from "../../utils/Interface"; +import Navbar from "@/components/navbar/navbar"; +import PopupAlert from "@/components/popup/popup-alert"; +import { InstrumentInfo } from "@/utils/Interface"; // 引入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 "./face_report_one.less"; @@ -29,7 +32,7 @@ export default class Index extends Component { statistics: {}, recordList: [], recordData: { - modeImage:require("@/img/face-report/face.png") + modeImage: require("@/img/face-report/face.png") }, year: new Date().getFullYear(), show: false, @@ -285,45 +288,45 @@ export default class Index extends Component { let { name, statistics, recordList, recordData, show, clockStatistics, punchInInfo, monthTime, reportShow, face_Tyep } = this.state; return ( - - - - + + + + {statistics.nursingNum} - + - 本月护理天数 + 本月护理天数 - - {statistics.nursingTime} - 本月护理时间 + + {statistics.nursingTime} + 本月护理时间 {/* */} - - + + - - + + - {face_Tyep} + {face_Tyep} - - + + - - 能量发数:{recordData.modeName} - + + 能量发数:{recordData.modeName} + 脸部能量:≈{recordData.nursingTime} - + 平均能量等级:{recordData.nursingTime} - + 最大等级:{recordData.nursingTime} @@ -332,93 +335,93 @@ export default class Index extends Component { - 能量等级图谱-{face_Tyep} - - + 能量等级图谱-{face_Tyep} + + - + - - [1] 能量发数:指小程序每秒以1发能量呈现,当次使用仪器所呈现的能量总数量。“1发”指仪器1秒内仪器持续输出的平均能量。 + + [1] 能量发数:指小程序每秒以1发能量呈现,当次使用仪器所呈现的能量总数量。“1发”指仪器1秒内仪器持续输出的平均能量。 - [2]能量总值: 指单次使用时长、仪器每秒输出的实际能量综合计算的能量总值 - [3]平均能量等级:指单次使用时长,根据花至精准能量算法根据不同皮肤所输出的平均能量等级。
- [4]最大能量:指根据花至精准能量算法根据不同皮肤所输出的能量最高等级
- - [5]最小能量:指根据花至精准能量算法根据不同皮肤所输出的能量最低等级。 + [2]能量总值: 指单次使用时长、仪器每秒输出的实际能量综合计算的能量总值 + [3]平均能量等级:指单次使用时长,根据花至精准能量算法根据不同皮肤所输出的平均能量等级。
+ [4]最大能量:指根据花至精准能量算法根据不同皮肤所输出的能量最高等级
+ + [5]最小能量:指根据花至精准能量算法根据不同皮肤所输出的能量最低等级。
- + {reportShow ? ( - - 前往打卡 - + + 前往打卡 + 跳过 ) : null} this.setState({ show: false })}> - + - 今日打卡 - + 今日打卡 + 本月您已打卡 - {clockStatistics[0]?.clockNum}{" "} + {clockStatistics[0]?.clockNum}{" "} 天,超越 - + {(clockStatistics[0]?.percentage * 100).toFixed(1)}% 花至用户 - + {punchInInfo.clockImageList.map((item, index) => ( - - + + ))} {punchInInfo.clockImageList.length < 3 && ( )} - - + + - + {"(" + (punchInInfo.clockContent.length || 0) + "/120)"} - - + + 确认提交 diff --git a/src/pages/moisture_test_report/Echarts/index.less b/src/recoding/pages/moisture_test_report/Echarts/index.less similarity index 100% rename from src/pages/moisture_test_report/Echarts/index.less rename to src/recoding/pages/moisture_test_report/Echarts/index.less diff --git a/src/pages/moisture_test_report/Echarts/index.tsx b/src/recoding/pages/moisture_test_report/Echarts/index.tsx similarity index 100% rename from src/pages/moisture_test_report/Echarts/index.tsx rename to src/recoding/pages/moisture_test_report/Echarts/index.tsx diff --git a/src/pages/moisture_test_report/moisture_test_report.less b/src/recoding/pages/moisture_test_report/moisture_test_report.less similarity index 100% rename from src/pages/moisture_test_report/moisture_test_report.less rename to src/recoding/pages/moisture_test_report/moisture_test_report.less diff --git a/src/pages/moisture_test_report/moisture_test_report.tsx b/src/recoding/pages/moisture_test_report/moisture_test_report.tsx similarity index 99% rename from src/pages/moisture_test_report/moisture_test_report.tsx rename to src/recoding/pages/moisture_test_report/moisture_test_report.tsx index 3cf766c..2d94767 100644 --- a/src/pages/moisture_test_report/moisture_test_report.tsx +++ b/src/recoding/pages/moisture_test_report/moisture_test_report.tsx @@ -7,9 +7,9 @@ import Taro from "@tarojs/taro"; /*** redux ***/ import { connect } from "react-redux"; -import { setMobile } from "../../store/features/userInfo"; +import { setMobile } from "@/store/features/userInfo"; /*** redux end ***/ -import Navbar from "../../components/navbar/navbar"; +import Navbar from "@/components/navbar/navbar"; import Echarts from "./Echarts/index"; import "./moisture_test_report.less"; diff --git a/src/pages/moisture_test_report/util.js b/src/recoding/pages/moisture_test_report/util.js similarity index 100% rename from src/pages/moisture_test_report/util.js rename to src/recoding/pages/moisture_test_report/util.js diff --git a/src/pages/recording/recording.config.js b/src/recoding/pages/recording/recording.config.js similarity index 100% rename from src/pages/recording/recording.config.js rename to src/recoding/pages/recording/recording.config.js diff --git a/src/pages/recording/recording.less b/src/recoding/pages/recording/recording.less similarity index 100% rename from src/pages/recording/recording.less rename to src/recoding/pages/recording/recording.less diff --git a/src/pages/recording/recording.tsx b/src/recoding/pages/recording/recording.tsx similarity index 76% rename from src/pages/recording/recording.tsx rename to src/recoding/pages/recording/recording.tsx index e56f67b..a667d79 100644 --- a/src/pages/recording/recording.tsx +++ b/src/recoding/pages/recording/recording.tsx @@ -17,12 +17,12 @@ import { go } from "@/utils/traoAPI"; import { Tab, Tabs, Dialog, Popup } from "@antmjs/vantui"; /** 自定义组件 **/ -import Navbar from "../../components/navbar/navbar"; -import PopupClock from "../../components/popup/popup-clock"; +import Navbar from "@/components/navbar/navbar"; +import PopupClock from "@/components/popup/popup-clock"; /** 自定义组件 **/ -import { InstrumentInfo } from "../../utils/Interface"; -import { date, getdates, previewImage } from "../../utils/util"; -import { showModal } from "../../utils/traoAPI.js"; +import { InstrumentInfo } from "@/utils/Interface"; +import { date, getdates, previewImage } from "@/utils/util"; +import { showModal } from "@/utils/traoAPI.js"; import "./recording.less"; @@ -294,16 +294,16 @@ export default class Recording extends Component { }; // 跳转到护理报告 toReport(id, recordId, item) { - console.log(item, '查看类型', item.jumpType ); - item.jumpType =1 - switch (item.jumpType ) { + console.log(item, '查看类型', item.jumpType); + item.jumpType = 1 + switch (item.jumpType) { case 1: this.One(item); break; case 2: this.two(item); break; - case 3: + case 3: this.three(item); break; default: @@ -315,19 +315,19 @@ export default class Recording extends Component { // 打开第一种类型 One = async (item) => { console.log('打开第一种类型', item); - let report =false - go("/pages/face_report_one/face_report_one?id=" + item.id + "&recordId=" + item.recordId+ "&report=" + report ); + let report = false + go("/recoding/pages/face_report_one/face_report_one?id=" + item.id + "&recordId=" + item.recordId + "&report=" + report); } - // 打开第二种类型 + // 打开第二种类型 two = async (item) => { console.log('打开第二种类型', item); } - // 打开第二种类型 - three = async (item) => { - console.log('打开第二种类型', item); - - } + // 打开第二种类型 + three = async (item) => { + console.log('打开第二种类型', item); + + } // 打开其他类型 AllDevice = async (item) => { console.log('打开其他类型', item); @@ -427,8 +427,8 @@ export default class Recording extends Component { return ( - - + + { {current === 0 && ( - + { onClick={this.onChangeProduct.bind(this, item.id)} > - 画质抗老射频仪 + 画质抗老射频仪 ))} @@ -479,17 +479,17 @@ export default class Recording extends Component { {current === 0 && recordList.length === 0 && ( - + - 暂无数据 + 暂无数据 )} {current === 0 && ( - + {/* @@ -516,12 +516,12 @@ export default class Recording extends Component { */} - + {recordList.map((item: any, index: any) => ( - - - - {item.createTime} + + + + {item.createTime} { {item.instrumentType === 2 && ( { > 回看报告 )} - + - - {item.instrumentName} - - 模式:{item.modeName} - + + {item.instrumentName} + + 模式:{item.modeName} + 护理时间:{item.nursingTime} @@ -570,7 +570,7 @@ export default class Recording extends Component { )} {current === 1 && ( - + {/* { > 暂无数据 */} - - - - 年度打卡统计 + + + + 年度打卡统计 - + {year}年 - + {monthTime.map((item) => ( - + {item.time > 0 && ( - {item.time}天 + {item.time}天 )} - {item.month} + {item.month} ))} - - + + {clockStatistics.map((item) => ( - - - + + + {item.year}年{item.month}月 { item.month )} > - + {" "} {!item.isMore ? "展开更多" : "收起更多"} @@ -641,49 +641,49 @@ export default class Recording extends Component { ? "rotate(180deg)" : "rotate(0deg)", }} - className="more_icon" - src={require("../../img/arrow-down.png")} - mode="widthFix" + className='more_icon' + src={require("@/img/arrow-down.png")} + mode='widthFix' > - - - - {item.clockNum} - 本月打卡天数 + + + + {item.clockNum} + 本月打卡天数 - - + + {(item.percentage * 100).toFixed(2)}% - 超越花至用户 + 超越花至用户 - + {item.isMore && item.detail && ( {item.detail.map((obj) => ( - - - + + + {obj.updateTime} - + {obj.clockImg.map((img) => ( ))} - + {/* 小紫弹智能射频仪、花至抗老射频仪PRO{" "} */} {obj.instrumentName === null ? "" : obj.instrumentName} - + {obj.clockContent} @@ -699,8 +699,8 @@ export default class Recording extends Component { )} { !clockShow && ViewAddInstrument === "true" && ( - - + + 前往打卡 {/* @@ -711,65 +711,65 @@ export default class Recording extends Component { } this.setState({ show: false })}> - + - 今日打卡 - + 今日打卡 + 本月您已打卡 - {clockStatistics[0]?.clockNum}{" "} + {clockStatistics[0]?.clockNum}{" "} 天,超越 - + {(clockStatistics[0]?.percentage * 100).toFixed(1)}% 花至用户 - + {punchInInfo.clockImageList.map((item, index) => ( - - + + ))} {punchInInfo.clockImageList.length < 3 && ( )} - - + + - + {"(" + (punchInInfo.clockContent.length || 0) + "/120)"} - - + + 确认提交