Browse Source

从附加描述对象中反显

master
zhangjiming 4 months ago
parent
commit
1ec501b38f
  1. 14
      src/components/MeasureItem.tsx
  2. 8
      src/components/MeasurementItem.tsx
  3. 53
      src/pages/MeasureRecord.tsx
  4. 4
      src/pages/MeasureSave.tsx
  5. 18
      src/pages/MeasurementList.tsx
  6. 6
      src/pages/UploadList.tsx
  7. 13
      src/services/apiTypes.ts
  8. 4
      src/utils/bridge.ts

14
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 (
<div className="flex mx-2 gap-3">
<main className="flex-1">
@ -37,9 +35,9 @@ export default function MeasureItem({
{stateText()}
</header>
<main className="flex my-2">
<p className="flex-1 text-sm ">{`${item.lineName}`}</p>
<p className="flex-1 text-sm ">{`${item.location}`}</p>
<p className="flex-1 text-sm ">{`${direct?.label}方向`}</p>
<p className="flex-1 text-sm ">{item.extraDescObj?.gwdCode}</p>
<p className="flex-1 text-sm ">{item.extraDescObj?.xmCode}</p>
<p className="flex-1 text-sm ">{item.extraDescObj?.xbCode}</p>
</main>
<footer>
<span className="text-sm text-[#b7b7b7]">{item.createTime}</span>
@ -97,9 +95,9 @@ export function MeasureItemEx(props: {
<h1 className="text-[15px] font-medium ">{props.item.name}</h1>
</header>
<main className="flex my-2">
<p className="flex-1 text-sm ">{`${props.item.lineName}`}</p>
<p className="flex-1 text-sm ">{`${props.item.location}`}</p>
<p className="flex-1 text-sm ">{`${props.item.direction}方向`}</p>
<p className="flex-1 text-sm ">{props.item.extraDescObj?.gwdCode}</p>
<p className="flex-1 text-sm ">{props.item.extraDescObj?.xmCode}</p>
<p className="flex-1 text-sm ">{props.item.extraDescObj?.xbCode}</p>
</main>
<footer>
<span className="text-sm text-[#b7b7b7]">{props.item.createTime}</span>

8
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 (
<div className="flex mx-2 gap-3" onClick={editMode ? onSelected : undefined}>
{editMode && (
@ -31,9 +29,9 @@ export default function MeasurementItem({
{/* <span className="text-sm text-[#b7b7b7]">{item.createAt.replace('T',' ').split(' ')[1]}</span> */}
</header>
<main className="flex mt-2">
<p className="flex-1 text-sm ">{`${item.lineName}`}</p>
<p className="flex-1 text-sm ">{`${item.location}`}</p>
<p className="flex-1 text-sm ">{`${direct ? direct.label : ''}方向`}</p>
<p className="flex-1 text-sm ">{item.extraDescObj?.gwdCode}</p>
<p className="flex-1 text-sm ">{item.extraDescObj?.xmCode}</p>
<p className="flex-1 text-sm ">{item.extraDescObj?.xbCode}</p>
</main>
</main>
{!editMode && (

53
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 (
<div>
@ -111,20 +111,41 @@ export default function MeasureRecord() {
<p className="text-[#818181]"></p>
<span className="text-text">{measure.name}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{measure.batch}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{measure.extraDescObj?.railSize}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{measure.extraDescObj?.dataSource}</span>
<p className="text-[#818181]">线</p>
<span className="text-text">{measure.extraDescObj?.lineClassify}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{railType(measure.trackShapeCode)?.name}</span>
<span className="text-text">{measure.extraDescObj?.railSize}</span>
{/* <p className="text-[#818181]"></p>
<span className="text-text"></span> */}
<p className="text-[#818181]"></p>
<span className="text-text">{measure.extraDescObj?.tljCode}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{measure.location}</span>
<span className="text-text">{measure.extraDescObj?.gwdCode}</span>
<p className="text-[#818181]">线</p>
<span className="text-text">{measure.lineName}</span>
<span className="text-text">{measure.extraDescObj?.xmCode}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{measure.extraDescObj?.stationCode}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{direction(measure.direction)?.label}</span>
<span className="text-text">{measure.extraDescObj?.xbCode}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{measure.extraDescObj?.unitType}</span>
<p className="text-[#818181]"></p>
<span className="text-text">{`${measure.extraDescObj?.mile}公里+${measure.extraDescObj?.meter}`}</span>
</div>
)}
</section>

4
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,

18
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 = (
<div className="flex justify-end gap-x-2" style={{ fontSize: 24 }}>
<SearchOutline onClick={() => navigate('/measure/search')} />
{/* <SearchOutline onClick={() => navigate('/measure/search')} /> */}
<MoreOutline onClick={() => setEditMode(!editMode)} />
</div>
);

6
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);

13
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;

4
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<BridgeBaseResult>({
url: '/api/measure/save',

Loading…
Cancel
Save