diff --git a/README.md b/README.md index 10166ef..61da68a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ > 基于 Electron + React + Vite 开发的传感器监测应用程序 -![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg) ![Version](https://img.shields.io/badge/version-1.0.0-green.svg) diff --git a/src/renderer/src/components/MeasurementPointSetting/MeasurementPointSetting.jsx b/src/renderer/src/components/MeasurementPointSetting/MeasurementPointSetting.jsx index 3d9600d..9a76014 100644 --- a/src/renderer/src/components/MeasurementPointSetting/MeasurementPointSetting.jsx +++ b/src/renderer/src/components/MeasurementPointSetting/MeasurementPointSetting.jsx @@ -10,7 +10,7 @@ import { } from '@ant-design/icons' import useRectangleStore from '../../stores/rectangleStore' import useDeviceStore from '../../stores/deviceStore' -import { useState } from 'react' +import { useState, useMemo } from 'react' import { IPC_EVENT } from '../../common/ipcEvents' function MeasurementPointSetting() { @@ -25,10 +25,29 @@ function MeasurementPointSetting() { const [formData, setFormData] = useState({ location: 1, // 测点位置 description: '', // 测点描述 - coefficient: 0, // 计算系数 baseTarget: 'n' // 基准标靶 }) + // 系数计算相关状态 + const [lensDistance, setLensDistance] = useState(50) // 镜头焦距 + const [measureDistance, setMeasureDistance] = useState(10) // 测点距离 + + // 计算系数函数 + const calculateCoefficient = (measureDist, lensDist) => { + if (!lensDist || lensDist <= 0) return 0 + return Number(((measureDist / lensDist) * 2.24).toFixed(6)) + } + + // 处理镜头焦距变化 + const handleLensDistanceChange = (value) => { + setLensDistance(value) + } + + // 处理测点距离变化 + const handleMeasureDistanceChange = (value) => { + setMeasureDistance(value) + } + // 测点列表状态 const [sensorList, setSensorList] = useState([]) @@ -39,6 +58,11 @@ function MeasurementPointSetting() { const [loadingSensors, setLoadingSensors] = useState(false) const [settingSensors, setSettingSensors] = useState(false) + // 使用useMemo计算系数,当镜头焦距或测点距离变化时自动重新计算 + const calculatedCoefficient = useMemo(() => { + return calculateCoefficient(measureDistance, lensDistance) + }, [measureDistance, lensDistance]) + // 根据选中的传感器更新矩形数据 const updateRectangleFromSensor = (sensorKey) => { if (!sensorKey) { @@ -110,7 +134,7 @@ function MeasurementPointSetting() { children: [ { key: `${newSensorKey}-1`, name: '测点位置', value: formData.location }, { key: `${newSensorKey}-2`, name: '测点描述', value: formData.description }, - { key: `${newSensorKey}-3`, name: '计算系数', value: formData.coefficient }, + { key: `${newSensorKey}-3`, name: '计算系数', value: calculatedCoefficient }, { key: `${newSensorKey}-4`, name: '基准标靶', @@ -132,7 +156,6 @@ function MeasurementPointSetting() { setFormData((prev) => ({ location: prev.location + 1, // 自动递增位置 description: '', - coefficient: 0, baseTarget: 'n' })) } @@ -416,10 +439,10 @@ function MeasurementPointSetting() { 计算系数: handleFormChange('coefficient', value)} - precision={4} - style={{ flex: 1 }} + value={calculatedCoefficient} + readOnly + precision={6} + style={{ flex: 1, backgroundColor: '#f5f5f5' }} /> @@ -486,15 +509,15 @@ function MeasurementPointSetting() { 镜头焦距: - { + setSelectedDevice(value) + }} + onSelect={(value) => { + setSelectedDevice(value) + }} style={{ minWidth: 120, flex: 1 }} - notFoundContent={searching ? : '无设备'} disabled={searching || uiDisabled} + allowClear + filterOption={(inputValue, option) => + option?.value?.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1 + } /> + - 设备端口: + 设备端口: +