From 7181a67430d68dedd41ae6113b1e0532d89ca9be Mon Sep 17 00:00:00 2001 From: LiLongLong <13717757313@163.com> Date: Mon, 14 Apr 2025 20:50:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icon_down.svg | 1 + src/assets/icon_left.svg | 1 + src/assets/icon_leftR.svg | 1 + src/assets/icon_right.svg | 1 + src/assets/icon_rightR.svg | 1 + src/assets/icon_up.svg | 1 + src/pages/measure/components/Detail.tsx | 4 ++- src/pages/measure/components/MeasureAction.tsx | 45 +++++++++++++++++--------- src/pages/measure/components/MeasureConfig.tsx | 22 ++++++------- src/store/measure/measureState.ts | 2 +- 10 files changed, 49 insertions(+), 30 deletions(-) create mode 100644 src/assets/icon_down.svg create mode 100644 src/assets/icon_left.svg create mode 100644 src/assets/icon_leftR.svg create mode 100644 src/assets/icon_right.svg create mode 100644 src/assets/icon_rightR.svg create mode 100644 src/assets/icon_up.svg diff --git a/src/assets/icon_down.svg b/src/assets/icon_down.svg new file mode 100644 index 0000000..7e92214 --- /dev/null +++ b/src/assets/icon_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icon_left.svg b/src/assets/icon_left.svg new file mode 100644 index 0000000..849f4e1 --- /dev/null +++ b/src/assets/icon_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icon_leftR.svg b/src/assets/icon_leftR.svg new file mode 100644 index 0000000..4eb5471 --- /dev/null +++ b/src/assets/icon_leftR.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icon_right.svg b/src/assets/icon_right.svg new file mode 100644 index 0000000..eacb73a --- /dev/null +++ b/src/assets/icon_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icon_rightR.svg b/src/assets/icon_rightR.svg new file mode 100644 index 0000000..8387647 --- /dev/null +++ b/src/assets/icon_rightR.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icon_up.svg b/src/assets/icon_up.svg new file mode 100644 index 0000000..d46bb5f --- /dev/null +++ b/src/assets/icon_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/pages/measure/components/Detail.tsx b/src/pages/measure/components/Detail.tsx index 04c1b3f..4c46d14 100644 --- a/src/pages/measure/components/Detail.tsx +++ b/src/pages/measure/components/Detail.tsx @@ -9,6 +9,8 @@ import MeasurementCanvas from "./konva/MeasurementCanvas"; import { getReport } from "../../../services/measure/analysis"; import { getBaseRecordPointSetByCode } from "../../../services/track/trackShape" import { useAppSelector } from "../../../utils/hooks"; +import { GX_CODE } from '../../../constant'; + export default function MeasureDetail() { const {id} = useParams() const measureState = useAppSelector((store) => store.measureState); @@ -18,7 +20,7 @@ export default function MeasureDetail() { onShowDetail(measureId) }, []) - const [gxCode, setGxCode] = useState('') + const [gxCode, setGxCode] = useState(GX_CODE) useEffect(()=>{ setGxCode(measureState.gxCode) }, [measureState]) diff --git a/src/pages/measure/components/MeasureAction.tsx b/src/pages/measure/components/MeasureAction.tsx index 3d359f9..d40df11 100644 --- a/src/pages/measure/components/MeasureAction.tsx +++ b/src/pages/measure/components/MeasureAction.tsx @@ -16,6 +16,12 @@ import { MeasureState, TaskState, TrackRecordSig } from "../../../services/wsTyp import { useAppDispatch, useAppSelector } from "../../../utils/hooks"; import Gr_round from "../../../assets/green_round.svg"; import Bl_round from "../../../assets/blue_round.svg"; +import icon_left from "../../../assets/icon_left.svg"; +import icon_right from "../../../assets/icon_right.svg"; +import icon_up from "../../../assets/icon_up.svg"; +import icon_down from "../../../assets/icon_down.svg"; +import icon_leftR from "../../../assets/icon_leftR.svg"; +import icon_rightR from "../../../assets/icon_rightR.svg"; import MeasurementCanvas, { AnalysisData, BenchmarkShape, MeasurementCanvasRef, Point } from "./konva/MeasurementCanvas"; import "./MeasureAction.scss"; import { GX_CODE } from "../../../constant"; @@ -115,6 +121,7 @@ export default function MeasureAction() { setMeasurementFinished(false); setAnalysisReport(null); setshowCalibration(false)//校准线 + dispatch(updateMeasureData([])) isLeftFinished.current = false; leftPoints.current = []; rightPoints.current = []; @@ -141,13 +148,13 @@ export default function MeasureAction() { // 保存按钮点击事件 const onSaveBtnClick = () => { + dispatch(updateMeasureData(newMeasureData)) navigate('/measure/config') //将校准的数据存入store - dispatch(updateMeasureData(newMeasureData)) }; //校准 - const [showCalibration, setshowCalibration] = useState(true) + const [showCalibration, setshowCalibration] = useState(false) const [caloading, setCaLoading] = useState(false) const onCalibrationBtnClick = () => { setCaLoading(true) @@ -361,16 +368,16 @@ export default function MeasureAction() { if(list && list.length){ list.forEach(item => { if(type === 'up'){//向上移动,原数据减y X轴不动 - item.y = item.y - 0.1; + item.y = item.y - distance/1000; } if(type === 'down'){//向上移动,原数据加y X轴不动 - item.y = item.y + 0.1; + item.y = item.y + distance/1000; } if(type === 'left'){//向左移动,原数据减x Y轴不动 - item.x = item.x - 0.1; + item.x = item.x - distance/1000; } if(type === 'right'){//向右移动,原数据加x Y轴不动 - item.x = item.x + 0.1; + item.x = item.x + distance/1000; } }) canvasRef.current?.setMeasurementCalibrationData(list) @@ -381,14 +388,15 @@ export default function MeasureAction() { //旋转 let [measurementRotation, setMeasurementRotation] = useState(0) let [newMeasureData, setNewMeasureData] = useState() - let [angle, setAngle] = useState(0) + let [angle, setAngle] = useState(1);//角度单位 分 + let [distance, setDistance] = useState(10) const onRotationLine = (type:string) => { let mrValue = 0 if(type === 'left'){//逆时针 - mrValue = measurementRotation - angle * Math.PI / 180; + mrValue = measurementRotation - (angle/60) * Math.PI / 180; } if(type === 'right'){//顺时针 - mrValue = measurementRotation + angle * Math.PI / 180; + mrValue = measurementRotation + (angle/60) * Math.PI / 180; } let list = canvasRef.current?.getMeasurementCalibrationData() if(list && list.length){ @@ -494,14 +502,19 @@ export default function MeasureAction() { {showCalibration &&
- (onMoveLine("up"))} className="text-[20px] ml-[20px]"/> - (onMoveLine("down"))} className="text-[20px] ml-[20px]"/> - (onMoveLine("left"))} className="text-[20px] ml-[20px]"/> - (onMoveLine("right"))} className="text-[20px] ml-[20px]"/> - (onRotationLine("left"))} className="text-[20px] ml-[20px]"/> - (onRotationLine("right"))} className="text-[20px] ml-[20px]"/> +
+ 移动距离: value !== null && setDistance(Number(value))}> + 微米 +
+ (onMoveLine("left"))} className="text-[20px] ml-[20px]" alt="左移"/> + (onMoveLine("right"))} className="text-[20px] ml-[20px]" alt="右移"/> + (onMoveLine("up"))} className="text-[20px] ml-[20px]" alt="上移"/> + (onMoveLine("down"))} className="text-[20px] ml-[20px]" alt="下移"/> + (onRotationLine("left"))} className="text-[20px] ml-[20px]" alt="逆时针旋转"/> + (onRotationLine("right"))} className="text-[20px] ml-[20px]" alt="顺时针旋转"/>
- 旋转角度: value !== null && setAngle(Number(value))}> + 旋转角度: value !== null && setAngle(Number(value))}> +
} diff --git a/src/pages/measure/components/MeasureConfig.tsx b/src/pages/measure/components/MeasureConfig.tsx index 6ebc287..55190b2 100644 --- a/src/pages/measure/components/MeasureConfig.tsx +++ b/src/pages/measure/components/MeasureConfig.tsx @@ -29,18 +29,10 @@ export default function MeasureConfig() { const [messageApi, contextHolder] = message.useMessage(); const dispatch = useAppDispatch(); const context = useAppSelector((store) => store.context); - const deviceState = useAppSelector((store) => store.deviceState); + const measureState = useAppSelector((store) => store.measureState); const [extraDesc, setExtraDesc] = useState() const onFinish = (values: any) => { - - console.log("Received values of form: ", values); - //判断是否连接了设备 - if (!deviceState.isConnect) { - // message.error('设备尚未连接或连接失败,请重新连接') - // return; - } let mtValue = values["meters"] - //百米小于100时, 补齐3位。 比如 1 :"001", 10: "010" if (mtValue < 100) { mtValue = String(mtValue).padStart(3, '0'); @@ -66,6 +58,7 @@ export default function MeasureConfig() { turnoutNum: values["turnoutNum"],//道岔号 sleeperNum: values["sleeperNum"],//枕木号 extraDesc:JSON.stringify(extraDesc), + alignPoints:[] }; const orgItem = { @@ -75,6 +68,11 @@ export default function MeasureConfig() { } localStorage.setItem('orgInfo', JSON.stringify(orgItem)); params.extraDesc = JSON.stringify(extraDesc) + let measureData = measureState.measureData; + console.log('measureState=====1===', measureState.measureData) + if(measureData && measureData.length){ + params.alignPoints = measureData + } saveMeasurement_new(params) .then((res) => { if (res.success) { @@ -90,9 +88,6 @@ export default function MeasureConfig() { }; let user = localStorage.getItem("user") || ""; let userInfo = (user && JSON.parse(user)) || {}; - if (context.user.loginUser && context.user.loginUser.nickname) { - // setNickName(context.user.loginUser.nickname) - } const [form] = Form.useForm(); useEffect(() => { queryKTJOrgList(); @@ -101,6 +96,9 @@ export default function MeasureConfig() { resetRailTypes() }, []); + useEffect(()=>{ + }, [measureState.measureData]) + //给股别分类 const [unitTypeList, setUnitTypeList] = useState([]) const resetRailTypes = () => { diff --git a/src/store/measure/measureState.ts b/src/store/measure/measureState.ts index 5ac082a..c455366 100644 --- a/src/store/measure/measureState.ts +++ b/src/store/measure/measureState.ts @@ -16,7 +16,7 @@ export const measureStateSlice = createSlice({ state.gxCode = payload.gxCode || "GX-60"; }, updateMeasureData: (state, { payload }) => { - state.measureData = payload.measureData + state.measureData = payload }, }, });