diff --git a/src/components/CustomNavBar.tsx b/src/components/CustomNavBar.tsx index 9d74cb0..da25498 100644 --- a/src/components/CustomNavBar.tsx +++ b/src/components/CustomNavBar.tsx @@ -2,15 +2,28 @@ import icon_bluetooth from '../assets/icon_bluetooth.svg'; import icon_arr_d from '../assets/icon_arr_down.svg'; import power_icon from '../assets/power.svg'; import './CustomNavBar.scss'; -import { useState } from 'react'; +import {useEffect, useRef, useState} from 'react'; import { useAppSelector } from '../utils/hooks'; import { useNavigate } from 'react-router-dom'; +import {Dialog} from "antd-mobile"; export default function CustomNavBar({ title }: { title: string }) { const navigate = useNavigate(); const device = useAppSelector((state) => state.context.device); const [showDetail, setShowDetail] = useState(false); + const hasWarned = useRef(false); + useEffect(() => { + if (device.connected && device.power< 20 && !hasWarned.current) { + Dialog.alert({ + content: '设备电量过低,请及时充电', + onConfirm: () => { + }, + }).then(r => {}); + hasWarned.current = true; // 标记已弹窗 + } + }, [device]); + return (
{/** 温度,水平仪 */} diff --git a/src/components/MeasurementItem.tsx b/src/components/MeasurementItem.tsx index 7c0e1b0..ac0e660 100644 --- a/src/components/MeasurementItem.tsx +++ b/src/components/MeasurementItem.tsx @@ -16,6 +16,9 @@ export default function MeasurementItem({ onDetail?: () => void; onSelected?: () => void; }) { + const padNumber = (num: string, length: number = 4): string => { + return num.toString().padStart(length, '0'); + } return (
{editMode && ( @@ -25,7 +28,7 @@ export default function MeasurementItem({ )}
- {item.todayNumber}. + {padNumber(item.todayNumber)}.

{item.name}

{item.syncStatus === 'finish' && 已上传}
diff --git a/src/components/konva/MeasurementCanvas.tsx b/src/components/konva/MeasurementCanvas.tsx index dca6baf..6b3b643 100644 --- a/src/components/konva/MeasurementCanvas.tsx +++ b/src/components/konva/MeasurementCanvas.tsx @@ -83,6 +83,7 @@ export interface MeasurementCanvasRef { setMeasurementData: (data: Point[]) => void; setAnalysisData: (data: AnalysisData[]) => void; redraw: () => void; + setCustomScale: (data: number) => void; } interface PinchData { @@ -212,6 +213,9 @@ const MeasurementCanvas = forwardRef { + setScale(newScale); + }, })); const stageRef = useRef(null); diff --git a/src/pages/Measure.tsx b/src/pages/Measure.tsx index 5cb4c21..c1a5807 100644 --- a/src/pages/Measure.tsx +++ b/src/pages/Measure.tsx @@ -135,7 +135,10 @@ export default function Measure() { }; const [initStart, setInitStart] = useState(false); + + const [measurementCanvasKey, setMeasurementCanvasKey] = useState(0); const onStartClick = () => { + setMeasurementCanvasKey(measurementCanvasKey+1) setshowCalibration(false); dispatch(updateMeasureData([])); if (!contextState.device.connected) { @@ -453,6 +456,7 @@ export default function Measure() { showCoordinates={false} showCalibration={showCalibration || showMeasureFinish} ref={canvasRef} + key={measurementCanvasKey} /> {/**选择轨型区 */} diff --git a/src/pages/Setting.tsx b/src/pages/Setting.tsx index ab547dd..dbfa397 100644 --- a/src/pages/Setting.tsx +++ b/src/pages/Setting.tsx @@ -87,6 +87,21 @@ export default function Setting() {
)} + {!context.device.connected && ( +
+
+

设备设置

+
+
+
Toast.show('连接设备后可设置')}> + 自动待机 + + --分钟 + +
+
+
+ )}