Browse Source

fix:测试bug

master
guoapeng 2 months ago
parent
commit
c8ab6d8264
  1. 6
      src/App.tsx
  2. 2
      src/components/konva/MeasurementCanvas.tsx
  3. 42
      src/pages/Measure.tsx
  4. 8
      src/pages/MeasureSave.tsx
  5. 38
      src/pages/Setting.tsx
  6. 1
      src/services/apiTypes.ts
  7. 7
      src/services/mobileWsType.ts
  8. 3
      src/store/features/contextSlice.ts
  9. 7
      src/utils/bridge.ts

6
src/App.tsx

@ -48,6 +48,12 @@ function App() {
dispatch(updateSyncBaseProgress(datagram.data));
}else if (datagram.type === 'measure-finished') {
dispatch(updateMeasureFinish(datagram.data));
}else if (datagram.type === 'msg-toast') {
// @ts-ignore
Toast.show({
content: datagram.data,
position: 'bottom',
})
}
});
return () => subscription.unsubscribe();

2
src/components/konva/MeasurementCanvas.tsx

@ -490,8 +490,6 @@ const MeasurementCanvas = forwardRef<MeasurementCanvasRef, MeasurementCanvasProp
}
return null;
});
console.log( 'bk', bk)
console.log('benchmarkData', benchmarkData)
return bk;
};

42
src/pages/Measure.tsx

@ -11,7 +11,12 @@ import { useEffect, useRef, useState } from 'react';
import RailTypeBtn from '../components/RailTypeBtn';
import { Cascader, Dialog, Mask, Picker, SpinLoading, Toast } from 'antd-mobile';
import { useAppDispatch, useAppSelector } from '../utils/hooks';
import { updateMeasureData, updateTaskState, updateMeasureStatus } from '../store/features/measureSlice';
import {
updateMeasureData,
updateTaskState,
updateMeasureStatus,
updateMeasureFinish
} from '../store/features/measureSlice';
import Bridge from '../utils/bridge';
import { selectLabeledKtjOrgs, updateRailPoints } from '../store/features/baseData';
import { updateOrg } from '../store/features/contextSlice';
@ -97,7 +102,7 @@ export default function Measure() {
}, 100);
canvasRef.current?.setMeasurementCalibrationData(measureState.measureFinishData);
setShowMeasureFinish(true)
setCaloading(false)
setLoading(false)
}
@ -128,9 +133,9 @@ export default function Measure() {
// setShowStandard(true)
// }, 100);
// canvasRef.current?.setMeasurementCalibrationData(measureState.measureFinishData);
// // setshowCalibration(true);
// // setShowCalibration(true);
// setShowMeasureFinish(true)
// setCaloading(false)
// setLoading(false)
//
//
// }
@ -138,9 +143,16 @@ export default function Measure() {
useEffect(() => {
if(measureState.measureStatus === 'FINISH_RECORD'){
setCaloading(true)
setLoading(true)
Bridge.record().then((res) => {
if (res.success) {
dispatch(updateMeasureFinish(res.data));
} else {
Toast.show(res.message);
}
})
}
}, [measureState.measureStatus])
}, [dispatch, measureState.measureStatus])
useEffect(() => {
@ -163,22 +175,22 @@ export default function Measure() {
navigate('/measure/save');
};
const [caloading, setCaloading] = useState(false);
const [showCalibration, setshowCalibration] = useState(false);
const [loading, setLoading] = useState(false);
const [showCalibration, setShowCalibration] = useState(false);
const [showMeasureFinish, setShowMeasureFinish] = useState(false);
const onCalibrationBtnClick = () => {
setCaloading(true);
setLoading(true);
Bridge.alignPoints({ railSize: railSize || 'GX-60' })
.then((res) => {
if (res.success) {
setshowCalibration(true);
setShowCalibration(true);
canvasRef.current?.setMeasurementCalibrationData(res.data);
} else {
}
setCaloading(false);
setLoading(false);
})
.catch((e) => {
setCaloading(false);
setLoading(false);
Toast.show({
content: <span></span>,
position: 'top',
@ -203,7 +215,7 @@ export default function Measure() {
const onStartClick = () => {
setMeasurementCanvasKey(measurementCanvasKey+1)
setshowCalibration(false);
setShowCalibration(false);
setShowMeasureFinish(false)
dispatch(updateMeasureData([]));
if (!contextState.device.connected) {
@ -489,8 +501,8 @@ export default function Measure() {
<main className="home-page-content overflow-x-hidden overflow-y-auto">
<div className="relative h-0 p-0 pb-[70%]">
{/**正在校准时的loading */}
{/*caloading*/}
{caloading && (
{/*loading*/}
{loading && (
<Mask opacity='thick' className="h-[100vh] flex justify-center items-center">
<div style={{ margin: '45%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>
<SpinLoading color="#5c92b4" />

8
src/pages/MeasureSave.tsx

@ -33,11 +33,13 @@ export default function MeasureSave() {
const loadData = useCallback(() => {
Bridge.getRecordList({ pageNum: 1, size: 1 }).then((res) => {
const [tlj, gwd, xm] = orgTextArr;
if (res.success && res.data.list.length) {
const data = (sessionStorage.getItem('measureData') ? JSON.parse(sessionStorage.getItem('measureData')!) : false) || res.data.list[0]?.records?.[0]
console.log('res', res)
const data = res.data.list[0]?.records?.[0]
console.log(data)
let num = data?.todayNumber || 0
setName(`${data?.tljCode}-${data.gwdCode}-${data.xmCode}-${getDate()}${(Number(num) + 1).toString().padStart(4, '0') }`)
setName(`${tlj}-${gwd}-${xm}-${getDate()}${(Number(num) + 1).toString().padStart(4, '0') }`)
setBatch(data?.batch)
setMile(data?.mileage?.split('+')?.[0])
setMeter(data?.mileage?.split('+')?.[1])
@ -167,7 +169,7 @@ export default function MeasureSave() {
if(measureData && measureData.length){
dto.alignPoints = measureData
}
sessionStorage.setItem('measureData', JSON.stringify(measureData))
sessionStorage.setItem('measureData', JSON.stringify(dto))
Bridge.saveMeasure(dto).then((res) => {
if (res.success) {
Toast.show('保存成功');

38
src/pages/Setting.tsx

@ -1,4 +1,4 @@
import {Mask, NavBar, Picker, SpinLoading, Switch, Toast} from 'antd-mobile';
import {Mask, NavBar, Picker, Selector, SpinLoading, Switch, Toast} from 'antd-mobile';
import icon_arr_r from '../assets/icon_arr_s_r.svg';
import { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router';
@ -12,14 +12,20 @@ export default function Setting() {
const context = useAppSelector((state) => state.context);
const addrInput = useRef<HTMLInputElement>(null);
const suffixInput = useRef<HTMLInputElement>(null);
const [standbyPickerVisible, setStandbyPickerVisible] = useState(false);
const [checked, setChecked] = useState(false)
const [selectStandby, setSelectStandby] = useState<number[]>([context.setting.standbyMinutes]);
const [downloadFileType, serDownloadFileType] = useState<string>('txt');
useEffect(() => {
if (addrInput.current && context.setting.server) {
addrInput.current!.value = context.setting.server;
}
if (context.setting.downloadFileType) {
serDownloadFileType(context.setting.downloadFileType)
}
setSelectStandby([context.setting.standbyMinutes]);
setChecked(context.setting.todayNumberFlag)
}, [context.setting]);
@ -40,13 +46,17 @@ export default function Setting() {
const onSaveClick = async () => {
const server = addrInput.current!.value;
try {
const res = await dispatch(saveConfig({ server, standbyMinutes: selectStandby[0], todayNumberFlag: checked })).unwrap();
const res = await dispatch(saveConfig({ server, standbyMinutes: selectStandby[0], todayNumberFlag: checked, downloadFileType })).unwrap();
if (res.success) {
Toast.show('保存成功');
}
} catch (err) {}
};
const setType = (arr: string[]) => {
serDownloadFileType(arr[0])
}
const back = () => navigate(-1);
return (
<div>
@ -86,6 +96,30 @@ export default function Setting() {
</div>
</div>
</section>
<section>
<div className="h-[42px] px-5">
<h1 className="h-[42px] leading-[42px] text-base text-text font-medium">
</h1>
</div>
<div className="bg-white px-5 text-sm text-text">
<div className="h-12 flex items-center justify-between">
<span></span>
<Selector
options={[{label: 'txt', value: 'txt'}, {label: 'ban', value: 'ban'}]}
defaultValue={['ban']}
value={[downloadFileType]}
onChange={(arr, extend) => setType(arr) }
/>
{/*<input*/}
{/* ref={suffixInput}*/}
{/* type="text"*/}
{/* placeholder="请填写"*/}
{/* className="border-0 outline-none self-stretch text-right flex-1 ml-4"*/}
{/*/>*/}
</div>
</div>
</section>
{context.device.connected && (
<section>

1
src/services/apiTypes.ts

@ -15,6 +15,7 @@ export type SettingDTO = {
server: string;
todayNumberFlag: boolean;
standbyMinutes: number; // 待机分钟数
downloadFileType: string;
};
export type KTJOrg = {

7
src/services/mobileWsType.ts

@ -78,6 +78,10 @@ export type MeasurePointFinish = {
outline2: Points[];
};
};
export type MsgToast = {
type: 'msg-toast';
data: string;
};
export type MobileDatagram =
| PeripheralStatus
@ -87,4 +91,5 @@ export type MobileDatagram =
| SyncProgress
| SyncItemFinish
| SyncBaseStatus
| MeasurePointFinish;
| MeasurePointFinish
| MsgToast;

3
src/store/features/contextSlice.ts

@ -60,7 +60,8 @@ const initialState: ContextState = {
setting: {
server: '',
standbyMinutes: 20,
todayNumberFlag: true
todayNumberFlag: true,
downloadFileType: 'ban'
},
settingReqStatus: 'idle',
error: undefined,

7
src/utils/bridge.ts

@ -388,4 +388,11 @@ export default class Bridge {
params,
});
}
static record(){
return httpRequest<BridgeBaseResult>({
url: 'api/measure/record',
method: 'POST',
});
}
}
Loading…
Cancel
Save