From 1ec501b38fb5ee63e14408ed2759fac5a341f840 Mon Sep 17 00:00:00 2001 From: zhangjiming Date: Wed, 9 Apr 2025 18:11:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=8E=E9=99=84=E5=8A=A0=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E4=B8=AD=E5=8F=8D=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MeasureItem.tsx | 14 +++++----- src/components/MeasurementItem.tsx | 8 +++--- src/pages/MeasureRecord.tsx | 53 ++++++++++++++++++++++++++------------ src/pages/MeasureSave.tsx | 4 +-- src/pages/MeasurementList.tsx | 18 ++++++++++--- src/pages/UploadList.tsx | 6 +++-- src/services/apiTypes.ts | 13 +++------- src/utils/bridge.ts | 4 +-- 8 files changed, 72 insertions(+), 48 deletions(-) diff --git a/src/components/MeasureItem.tsx b/src/components/MeasureItem.tsx index 542b08f..1569f5d 100644 --- a/src/components/MeasureItem.tsx +++ b/src/components/MeasureItem.tsx @@ -5,7 +5,6 @@ import icon_pending from '../assets/icon_upload_0.svg'; import icon_uploading from '../assets/icon_upload_1.svg'; import icon_uploaded from '../assets/icon_upload_2.svg'; import { Measurement } from '../services/apiTypes'; -import { XB_CODES } from '../utils/constant'; export type UpdateState = 'idle' | 'pending' | 'uploading' | 'uploaded'; @@ -28,7 +27,6 @@ export default function MeasureItem({ return null; }; - const direct = XB_CODES.find((dire) => dire.value === item.direction); return (
@@ -37,9 +35,9 @@ export default function MeasureItem({ {stateText()}
-

{`${item.lineName}`}

-

{`${item.location}`}

-

{`${direct?.label}方向`}

+

{item.extraDescObj?.gwdCode}

+

{item.extraDescObj?.xmCode}

+

{item.extraDescObj?.xbCode}

{item.createTime} @@ -97,9 +95,9 @@ export function MeasureItemEx(props: {

{props.item.name}

-

{`${props.item.lineName}`}

-

{`${props.item.location}`}

-

{`${props.item.direction}方向`}

+

{props.item.extraDescObj?.gwdCode}

+

{props.item.extraDescObj?.xmCode}

+

{props.item.extraDescObj?.xbCode}

{props.item.createTime} diff --git a/src/components/MeasurementItem.tsx b/src/components/MeasurementItem.tsx index b32aa81..ad2465a 100644 --- a/src/components/MeasurementItem.tsx +++ b/src/components/MeasurementItem.tsx @@ -2,7 +2,6 @@ import icon_check_s from '../assets/icon_check_s_s.svg'; import icon_check_u from '../assets/icon_check_s_u.svg'; import icon_arr from '../assets/icon_arr_p_r.svg'; import { Measurement } from '../services/apiTypes'; -import { XB_CODES } from '../utils/constant'; export default function MeasurementItem({ item, @@ -17,7 +16,6 @@ export default function MeasurementItem({ onDetail?: () => void; onSelected?: () => void; }) { - const direct = XB_CODES.find((dire) => dire.value === item.direction); return (
{editMode && ( @@ -31,9 +29,9 @@ export default function MeasurementItem({ {/* {item.createAt.replace('T',' ').split(' ')[1]} */}
-

{`${item.lineName}`}

-

{`${item.location}`}

-

{`${direct ? direct.label : ''}方向`}

+

{item.extraDescObj?.gwdCode}

+

{item.extraDescObj?.xmCode}

+

{item.extraDescObj?.xbCode}

{!editMode && ( diff --git a/src/pages/MeasureRecord.tsx b/src/pages/MeasureRecord.tsx index 6684ff1..1c31bc7 100644 --- a/src/pages/MeasureRecord.tsx +++ b/src/pages/MeasureRecord.tsx @@ -8,7 +8,7 @@ import MeasurementCanvas, { import Bridge from '../utils/bridge'; import { Measurement } from '../services/apiTypes'; import { useAppDispatch, useAppSelector } from '../utils/hooks'; -import { XB_CODES } from '../utils/constant'; +// import { XB_CODES } from '../utils/constant'; import { updateRailPoints } from '../store/features/baseData'; export default function MeasureRecord() { @@ -24,7 +24,7 @@ export default function MeasureRecord() { useEffect(() => { Bridge.getMeasurementDetail({ id: +(params.recordId || '') }).then((res) => { if (res.success) { - setMeasure(res.data); + setMeasure({ ...res.data, extraDescObj: JSON.parse(res.data.extraDesc) }); } else { Toast.show(res.message); } @@ -47,7 +47,7 @@ export default function MeasureRecord() { useEffect(() => { if (measure) { - const r = baseState.railTypes.find((rail) => rail.code === measure.trackShapeCode); + const r = baseState.railTypes.find((rail) => rail.code === measure.railSize); if (!r) return; if (!!r.points) { drawRailBaseLine(r.points); @@ -66,14 +66,14 @@ export default function MeasureRecord() { } }, [baseState.railTypes, dispatch, measure]); - function railType(code: string) { - const rail = baseState.railTypes.find((rail) => rail.code === code); - return rail; - } + // function railType(code: string) { + // const rail = baseState.railTypes.find((rail) => rail.code === code); + // return rail; + // } - function direction(directCode: string) { - return XB_CODES.find((dire) => dire.value === directCode); - } + // function direction(directCode: string) { + // return XB_CODES.find((dire) => dire.value === directCode); + // } return (
@@ -111,20 +111,41 @@ export default function MeasureRecord() {

测量名称

{measure.name} +

批次

+ {measure.batch} + +

轨型

+ {measure.extraDescObj?.railSize} + +

数据来源

+ {measure.extraDescObj?.dataSource} + +

线路分类

+ {measure.extraDescObj?.lineClassify} +

轨型

- {railType(measure.trackShapeCode)?.name} + {measure.extraDescObj?.railSize} - {/*

铁路局名称

- 北京铁路局 */} +

铁路局名称

+ {measure.extraDescObj?.tljCode}

路段名称

- {measure.location} + {measure.extraDescObj?.gwdCode}

线路名称

- {measure.lineName} + {measure.extraDescObj?.xmCode} + +

车站

+ {measure.extraDescObj?.stationCode}

方向

- {direction(measure.direction)?.label} + {measure.extraDescObj?.xbCode} + +

股别

+ {measure.extraDescObj?.unitType} + +

里程

+ {`${measure.extraDescObj?.mile}公里+${measure.extraDescObj?.meter}米`}
)} diff --git a/src/pages/MeasureSave.tsx b/src/pages/MeasureSave.tsx index f2941b7..f3dc678 100644 --- a/src/pages/MeasureSave.tsx +++ b/src/pages/MeasureSave.tsx @@ -4,7 +4,7 @@ import icon_arr_r from '../assets/icon_arr_s_r.svg'; import { ChangeEvent, useState } from 'react'; import { useAppDispatch, useAppSelector } from '../utils/hooks'; import { DATA_SOURCE, LINE_CLASSIFY, UNIT_TYPES, XB_CODES } from '../utils/constant'; -import { ExtraDesc, SaveMeasureDTO } from '../services/apiTypes'; +import { ExtraDesc, MeasurementDTO } from '../services/apiTypes'; import Bridge from '../utils/bridge'; import { resetState } from '../store/features/measureSlice'; import { selectOrgTextArr } from '../store'; @@ -71,7 +71,7 @@ export default function MeasureSave() { mile, meter, }; - const dto: SaveMeasureDTO = { + const dto: MeasurementDTO = { operator: 'klj_test', dataType: 'MINIPROF', name, diff --git a/src/pages/MeasurementList.tsx b/src/pages/MeasurementList.tsx index c3748f6..b9d9667 100644 --- a/src/pages/MeasurementList.tsx +++ b/src/pages/MeasurementList.tsx @@ -20,7 +20,13 @@ export default function MeasurementList() { const loadData = useCallback(() => { Bridge.getRecordList({ pageNum: 1, size: PAGE_SIZE }).then((res) => { if (res.success) { - setDataList(res.data.list); + const nList = res.data.list.map((g) => { + return { + date: g.date, + records: g.records.map((r) => ({ ...r, extraDescObj: JSON.parse(r.extraDesc) })), + }; + }); + setDataList(nList); setNoMore(res.data.list.length < PAGE_SIZE); } else { Toast.show(res.message); @@ -32,7 +38,13 @@ export default function MeasurementList() { const pageNum = Math.floor(dataList.length / PAGE_SIZE); const res = await Bridge.getRecordList({ pageNum: pageNum + 1, size: PAGE_SIZE }); if (res.success) { - setDataList((list) => list.concat(res.data.list)); + const nList = res.data.list.map((g) => { + return { + date: g.date, + records: g.records.map((r) => ({ ...r, extraDescObj: JSON.parse(r.extraDesc) })), + }; + }); + setDataList((list) => list.concat(nList)); setNoMore(res.data.list.length < PAGE_SIZE); } else { Toast.show(res.message); @@ -82,7 +94,7 @@ export default function MeasurementList() { const right = (
- navigate('/measure/search')} /> + {/* navigate('/measure/search')} /> */} setEditMode(!editMode)} />
); diff --git a/src/pages/UploadList.tsx b/src/pages/UploadList.tsx index 232189b..371acb2 100644 --- a/src/pages/UploadList.tsx +++ b/src/pages/UploadList.tsx @@ -82,7 +82,8 @@ export default function UploadList() { dispatch(refreshSyncProgress()); Bridge.getSyncTaskList({ pageNum: 1, size: PAGE_SIZE }).then((res) => { if (res.success) { - setList(res.data.list); + const nList = res.data.list.map((r) => ({ ...r, extraDescObj: JSON.parse(r.extraDesc) })); + setList(nList); setNoMore(res.data.list.length < PAGE_SIZE); } else { Toast.show(res.message); @@ -94,7 +95,8 @@ export default function UploadList() { const pageNum = Math.floor(list.length / PAGE_SIZE); const res = await Bridge.getSyncTaskList({ pageNum: pageNum + 1, size: PAGE_SIZE }); if (res.success) { - setList(list.concat(res.data.list)); + const nList = res.data.list.map((r) => ({ ...r, extraDescObj: JSON.parse(r.extraDesc) })); + setList(list.concat(nList)); setNoMore(res.data.list.length < PAGE_SIZE); } else { Toast.show(res.message); diff --git a/src/services/apiTypes.ts b/src/services/apiTypes.ts index b0e273b..809bc28 100644 --- a/src/services/apiTypes.ts +++ b/src/services/apiTypes.ts @@ -1,19 +1,12 @@ export type ReqStatus = 'idle' | 'loading' | 'succeeded' | 'failed'; -export type Measurement = { +export type Measurement = MeasurementDTO & { id: number; - name: string; - trackShapeCode: string; - operatorName: string; - bureau: string; - lineName: string; - location: string; - direction: string; createTime: string; // Date; leftPoints: string; // json: 坐标数组 rightPoints: string; // json: 坐标数组 - upload: boolean; syncStatus: 'wait' | 'finish' | 'fail'; + extraDescObj?: ExtraDesc; }; export type SettingDTO = { @@ -42,7 +35,7 @@ export type RailType = { points?: string; }; -export type SaveMeasureDTO = { +export type MeasurementDTO = { operator: string; name: string; tljCode: string; diff --git a/src/utils/bridge.ts b/src/utils/bridge.ts index fdc92c2..9a7b6ba 100644 --- a/src/utils/bridge.ts +++ b/src/utils/bridge.ts @@ -4,7 +4,7 @@ import { KTJOrg, Measurement, RailType, - SaveMeasureDTO, + MeasurementDTO, SettingDTO, StationItem, } from '../services/apiTypes'; @@ -335,7 +335,7 @@ export default class Bridge { params, }); } - static saveMeasure(params: SaveMeasureDTO) { + static saveMeasure(params: MeasurementDTO) { console.log('保存测量 入参:', params); return httpRequest({ url: '/api/measure/save',