diff --git a/.vscode/settings.json b/.vscode/settings.json
index 5b82025..fab1e38 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,3 @@
{
- "cSpell.words": ["Cascader"]
+ "cSpell.words": ["Cascader", "MINIPROF"]
}
diff --git a/src/App.tsx b/src/App.tsx
index 75098a8..60ecb38 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,21 +1,21 @@
import React, { useEffect } from 'react';
import { Outlet, useLocation, useNavigate } from 'react-router';
-import { SafeArea, TabBar } from 'antd-mobile';
+import { Mask, SafeArea, SpinLoading, TabBar, Toast } from 'antd-mobile';
import icon_1_s from './assets/tabIcon/icon_tab1_s.svg';
import icon_1_u from './assets/tabIcon/icon_tab1_u.svg';
-import icon_2_s from './assets/tabIcon/icon_tab2_s.svg';
-import icon_2_u from './assets/tabIcon/icon_tab2_u.svg';
+// import icon_2_s from './assets/tabIcon/icon_tab2_s.svg';
+// import icon_2_u from './assets/tabIcon/icon_tab2_u.svg';
import icon_3_s from './assets/tabIcon/icon_tab3_s.svg';
import icon_3_u from './assets/tabIcon/icon_tab3_u.svg';
import icon_4_s from './assets/tabIcon/icon_tab4_s.svg';
import icon_4_u from './assets/tabIcon/icon_tab4_u.svg';
-import { appWebview, bridgeOb, emitBridgeEvent, registerBridgeFunc } from './utils/bridge';
+import Bridge, { bridgeOb, emitBridgeEvent } from './utils/bridge';
import { useAppDispatch, useAppSelector } from './utils/hooks';
import { addNewPoint, updateTaskState } from './store/features/measureSlice';
import { updateBleList, updateDevice, updateSyncProgress } from './store/features/contextSlice';
import { createWebSocket, sharedWsUrl } from './services/socket';
-import { fetchRailTypes } from './store/features/baseData';
+import { fetchOrgTree, fetchRailTypes, syncBaseData } from './store/features/baseData';
const BottomBar = () => {
const navigate = useNavigate();
@@ -70,11 +70,15 @@ const BottomBar = () => {
function App() {
const dispatch = useAppDispatch();
const baseState = useAppSelector((state) => state.baseData);
- if (baseState.railTypes.length === 0) {
- dispatch(fetchRailTypes());
- }
useEffect(() => {
+ if (baseState.railTypes.length === 0) {
+ dispatch(fetchRailTypes());
+ }
+ },[baseState.railTypes.length, dispatch])
+
+ // 监听推送消息,更新store
+ useEffect(() => {
const subscription = bridgeOb.subscribe((datagram) => {
if (datagram.type === 'measure-event') {
dispatch(updateTaskState(datagram.data));
@@ -91,32 +95,63 @@ function App() {
return () => subscription.unsubscribe();
}, [dispatch]);
+ // 开启推送
useEffect(() => {
- // registerBridgeFunc();
- if (appWebview) {
- registerBridgeFunc();
- } else {
- //连接websocket
- const wsClient = createWebSocket(sharedWsUrl);
- const subscription = wsClient.dataOb.subscribe((data) => {
- emitBridgeEvent(data);
- });
- wsClient.connect();
- return () => subscription.unsubscribe();
- }
+ // if (appWebview) {
+ // registerBridgeFunc();
+ // } else {
+ //连接websocket
+ const wsClient = createWebSocket(sharedWsUrl);
+ const subscription = wsClient.dataOb.subscribe((data) => {
+ emitBridgeEvent(data);
+ });
+ wsClient.connect();
+ return () => subscription.unsubscribe();
+ // }
}, []);
+ // 初始同步数据
+ useEffect(() => {
+ Bridge.needSyncBaseData().then((res) => {
+ if (!res.success) {
+ return Toast.show(res.message);
+ }
+ if (res.data.needSync) {
+ dispatch(syncBaseData())
+ .unwrap()
+ .then((res) => {
+ if (res.success) {
+ dispatch(fetchOrgTree());
+ } else {
+ Toast.show(res.message);
+ }
+ });
+ } else {
+ dispatch(fetchOrgTree());
+ }
+ });
+ }, [dispatch]);
+
return (
-
-
-
-
-
-
+
+
+
+
+ >
);
}
diff --git a/src/pages/Measure.tsx b/src/pages/Measure.tsx
index 60899c2..6e5069c 100644
--- a/src/pages/Measure.tsx
+++ b/src/pages/Measure.tsx
@@ -13,7 +13,7 @@ import { useAppDispatch, useAppSelector } from '../utils/hooks';
import { updateTaskState } from '../store/features/measureSlice';
import Bridge from '../utils/bridge';
import { selectLabeledKtjOrgs, updateRailPoints } from '../store/features/baseData';
-import { updateOrg } from '../store/features/contextSlice';
+import { refreshStationList, updateOrg } from '../store/features/contextSlice';
import { selectOrgTextArr } from '../store';
export default function Measure() {
@@ -25,13 +25,11 @@ export default function Measure() {
const measureState = useAppSelector((state) => state.measure);
const contextState = useAppSelector((state) => state.context);
const baseState = useAppSelector((state) => state.baseData);
-
- const canvasRef = useRef
(null);
-
const [railPickerVisible, setRailPickerVisible] = useState(false);
-
const [railId, setRailId] = useState<(number | string | null)[]>([]);
+ const canvasRef = useRef(null);
+
// 默认选中第一个轨型
useEffect(() => {
if (baseState.railTypes.length > 0) {
@@ -39,6 +37,19 @@ export default function Measure() {
}
}, [baseState.railTypes]);
+ // 预获取车站信息
+ useEffect(() => {
+ if (contextState.currXMCode) {
+ dispatch(
+ refreshStationList({
+ tljCode: contextState.currOrgCode,
+ gwdCode: contextState.currGWDCode,
+ xmCode: contextState.currXMCode,
+ })
+ );
+ }
+ },[contextState.currGWDCode, contextState.currOrgCode, contextState.currXMCode, dispatch]);
+
function drawRailBaseLine(points: string) {
const benchmarkShapes = JSON.parse(points) as BenchmarkShape[];
if (canvasRef.current) {
@@ -84,11 +95,6 @@ export default function Measure() {
};
const onStartClick = () => {
- // if (typeof window.ReactNativeWebView !== "undefined") {
- // window.ReactNativeWebView.postMessage(JSON.stringify(["add", 2, 3]));
- // } else {
- // console.log("当前环境不支持 React Native WebView");
- // }
if (!contextState.device.connected) {
Dialog.alert({
content: '蓝牙未连接,请先连接蓝牙',
diff --git a/src/pages/MeasureSave.tsx b/src/pages/MeasureSave.tsx
index ae55a42..f2941b7 100644
--- a/src/pages/MeasureSave.tsx
+++ b/src/pages/MeasureSave.tsx
@@ -3,8 +3,8 @@ import { useNavigate } from 'react-router';
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, XB_CODES } from '../utils/constant';
-import { SaveMeasureDTO } from '../services/apiTypes';
+import { DATA_SOURCE, LINE_CLASSIFY, UNIT_TYPES, XB_CODES } from '../utils/constant';
+import { ExtraDesc, SaveMeasureDTO } from '../services/apiTypes';
import Bridge from '../utils/bridge';
import { resetState } from '../store/features/measureSlice';
import { selectOrgTextArr } from '../store';
@@ -19,31 +19,74 @@ export default function MeasureSave() {
const orgTextArr = useAppSelector(selectOrgTextArr);
const [name, setName] = useState('');
+ const [batch, setBatch] = useState('');
+ const [mile, setMile] = useState(10);
+ const [meter, setMeter] = useState(10);
const [railPickerVisible, setRailPickerVisible] = useState(false);
const [dataSourcePickerVisible, setDataSourcePickerVisible] = useState(false);
const [lineClassPickerVisible, setLineClassPickerVisible] = useState(false);
- // const [railId, setRailId] = useState<(number | string | null)[]>([1]);
+ const [unitTypePickerVisible, setUnitTypePickerVisible] = useState(false);
+ const [stationPickerVisible, setStationPickerVisible] = useState(false);
+
const [directionCode, setDirectionCode] = useState([XB_CODES[0].value]);
const [dataSourceCode, setDataSourceCode] = useState([DATA_SOURCE[0].value]);
const [lineClassCode, setLineClassCode] = useState([LINE_CLASSIFY[0].value]);
+ const [stationCode, setStationCode] = useState([contextState.stationList[0].value]);
+ const [unitType, setUnitType] = useState([UNIT_TYPES[0].value]);
const onInputChange = (evt: ChangeEvent) => {
- setName(evt.target.value);
+ if (evt.target.name === 'name') {
+ setName(evt.target.value);
+ } else if (evt.target.name === 'batch') {
+ setBatch(evt.target.value);
+ } else if (evt.target.name === 'mile') {
+ if (/^\d*$/.test(evt.target.value)) {
+ setMile(+evt.target.value);
+ }
+ } else if (evt.target.name === 'meter') {
+ if (/^\d*$/.test(evt.target.value)) {
+ setMeter(+evt.target.value);
+ }
+ }
};
const onSaveBtnClick = () => {
if (!name) {
- Toast.show('请输入测量名称');
- return;
+ return Toast.show('请输入测量名称');
+ }
+ if (!batch) {
+ return Toast.show('请输入批次号');
}
const railType = baseState.railTypes.find((r) => r.id === contextState.currRailTypeId);
- const [, gwd, xm] = orgTextArr;
+ const [tlj, gwd, xm] = orgTextArr;
+ const desc: ExtraDesc = {
+ railSize: railType!.name,
+ tljCode: tlj,
+ gwdCode: gwd,
+ xmCode: xm,
+ xbCode: XB_CODES.find((x) => x.value === directionCode[0])!.label,
+ stationCode: contextState.stationList.find((s) => s.value === stationCode[0])!.label,
+ lineClassify: LINE_CLASSIFY.find((l) => l.value === lineClassCode[0])!.label,
+ dataSource: DATA_SOURCE.find((d) => d.value === dataSourceCode[0])!.label,
+ unitType: UNIT_TYPES.find((u) => u.value === unitType[0])!.label,
+ mile,
+ meter,
+ };
const dto: SaveMeasureDTO = {
- operatorName: '',
- trackShapeCode: railType!.code,
+ operator: 'klj_test',
+ dataType: 'MINIPROF',
name,
- lineName: xm,
- location: gwd,
- direction: directionCode[0],
+ batch,
+ railSize: railType!.code,
+ tljCode: contextState.currOrgCode,
+ gwdCode: contextState.currGWDCode,
+ xmCode: contextState.currXMCode,
+ xbCode: directionCode[0],
+ stationCode: stationCode[0],
+ lineClassify: lineClassCode[0],
+ dataSource: dataSourceCode[0],
+ unitType: unitType[0],
+ mileage: `${mile}+${meter.toString().padStart(3, '0')}`,
+ extraDesc: JSON.stringify(desc),
};
Bridge.saveMeasure(dto).then((res) => {
if (res.success) {
@@ -70,12 +113,43 @@ export default function MeasureSave() {
测量名称
+
+
+ 批次
+
+
+ 里程
+
+ 公里+
+
+ 米
+
setDataSourcePickerVisible(true)}
@@ -88,6 +162,16 @@ export default function MeasureSave() {
setStationPickerVisible(true)}
+ >
+
车站
+
+ {contextState.stationList.find((r) => r.value === stationCode[0])?.label || ''}
+
+

+
+ setLineClassPickerVisible(true)}
>
线路分类
@@ -96,13 +180,24 @@ export default function MeasureSave() {
- setRailPickerVisible(true)}>
+
+
setRailPickerVisible(true)}
+ >
行别
{XB_CODES.find((r) => r.value === directionCode[0])?.label || ''}
+
setUnitTypePickerVisible(true)}>
+
股别
+
+ {UNIT_TYPES.find((r) => r.value === unitType[0])?.label || ''}
+
+

+
+ {
+ setUnitTypePickerVisible(false);
+ }}
+ value={unitType}
+ onConfirm={(v) => {
+ setUnitType(v as string[]);
+ }}
+ />
+ {
+ setStationPickerVisible(false);
+ }}
+ value={stationCode}
+ onConfirm={(v) => {
+ setStationCode(v as string[]);
+ }}
+ />
>
);
}
diff --git a/src/pages/Mine2.tsx b/src/pages/Mine2.tsx
index aabc7a6..4d79ffd 100644
--- a/src/pages/Mine2.tsx
+++ b/src/pages/Mine2.tsx
@@ -1,10 +1,23 @@
-import { List, NavBar } from 'antd-mobile';
+import { List, NavBar, Toast } from 'antd-mobile';
-import { UnorderedListOutline, SetOutline, UploadOutline } from 'antd-mobile-icons';
+import { UnorderedListOutline, SetOutline, UploadOutline, LoopOutline } from 'antd-mobile-icons';
import { useNavigate } from 'react-router-dom';
+import { useAppDispatch } from '../utils/hooks';
+import { syncBaseData } from '../store/features/baseData';
export default function Mine2() {
const navigate = useNavigate();
+ const dispatch = useAppDispatch();
+
+ const onSync = async () => {
+ const res = await dispatch(syncBaseData()).unwrap();
+ if (res.success) {
+ Toast.show('同步完成');
+ } else {
+ Toast.show(res.message);
+ }
+ };
+
return (
@@ -18,10 +31,12 @@ export default function Mine2() {
} onClick={() => navigate('/measure/upload')}>
上传记录
-
} onClick={() => navigate('/profile/setting')}>
设置
+ } onClick={onSync}>
+ 同步数据
+
diff --git a/src/pages/Setting.tsx b/src/pages/Setting.tsx
index b6be2ca..ab547dd 100644
--- a/src/pages/Setting.tsx
+++ b/src/pages/Setting.tsx
@@ -3,7 +3,7 @@ import icon_arr_r from '../assets/icon_arr_s_r.svg';
import { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router';
import { useAppDispatch, useAppSelector } from '../utils/hooks';
-import { fetchConfig, saveConfig } from '../store/features/contextSlice';
+import { fetchConfig, resetSettingReqStatus, saveConfig } from '../store/features/contextSlice';
import { standbyMinutes } from '../utils/constant';
export default function Setting() {
@@ -14,17 +14,6 @@ export default function Setting() {
const addrInput = useRef(null);
const [standbyPickerVisible, setStandbyPickerVisible] = useState(false);
const [selectStandby, setSelectStandby] = useState([context.setting.standbyMinutes]);
- // const [addr, setAddr] = useState('');
- // const [port, setPort] = useState(80);
-
- // const onAddrChange = (evt: ChangeEvent) => {
- // setAddr(evt.target.value);
- // };
- // const onPortChange = (evt: ChangeEvent) => {
- // if (/^\d*$/.test(evt.target.value)) {
- // setPort(+evt.target.value);
- // }
- // };
useEffect(() => {
if (addrInput.current && context.setting.server) {
@@ -35,6 +24,9 @@ export default function Setting() {
useEffect(() => {
dispatch(fetchConfig());
+ return () => {
+ dispatch(resetSettingReqStatus());
+ };
}, [dispatch]);
useEffect(() => {
diff --git a/src/services/apiTypes.ts b/src/services/apiTypes.ts
index 452fe3d..b0e273b 100644
--- a/src/services/apiTypes.ts
+++ b/src/services/apiTypes.ts
@@ -43,10 +43,36 @@ export type RailType = {
};
export type SaveMeasureDTO = {
- operatorName: string;
- trackShapeCode: string;
+ operator: string;
name: string;
- lineName: string;
- location: string;
- direction: string;
+ tljCode: string;
+ gwdCode: string;
+ xmCode: string;
+ stationCode: string;
+ dataType: string; // 采集方式
+ dataSource: string;
+ railSize: string; // 轨型
+ lineClassify: string; // 线路分类
+ batch: string;
+ xbCode: string; // 行别
+ mileage: string; // 里程
+ unitType: string; // 股别
+ extraDesc: string; // 额外描述
+};
+
+export type ExtraDesc = {
+ railSize: string;
+ tljCode: string;
+ gwdCode: string;
+ xmCode: string;
+ xbCode: string;
+ stationCode: string;
+ lineClassify: string;
+ dataSource: string;
+ unitType: string;
+ mile: number;
+ meter: number;
};
+
+export type StationItem = { key: string; value: string };
+export type StationLabelItem = { label: string; value: string };
diff --git a/src/store/features/baseData.ts b/src/store/features/baseData.ts
index ec3de42..3e2a4ea 100644
--- a/src/store/features/baseData.ts
+++ b/src/store/features/baseData.ts
@@ -9,11 +9,13 @@ import { RootState } from '..';
interface BaseDataState {
ktjOrgs: KTJOrg[];
railTypes: RailType[];
+ syncingBaseData: boolean;
}
const initialState: BaseDataState = {
ktjOrgs: ktjOrgs as KTJOrg[],
railTypes: [],
+ syncingBaseData: false,
};
export const fetchRailTypes = createAsyncThunk('base/fetchRailTypes', async (_, thunkAPI) => {
@@ -21,6 +23,14 @@ export const fetchRailTypes = createAsyncThunk('base/fetchRailTypes', async (_,
return res.success ? res.data : null;
});
+export const syncBaseData = createAsyncThunk('base/syncBaseData', async () => {
+ return await Bridge.syncBaseData();
+});
+
+export const fetchOrgTree = createAsyncThunk('base/fetchOrgTree', async () => {
+ return await Bridge.getOrgTree();
+});
+
export const baseDataSlice = createSlice({
name: 'baseData',
initialState,
@@ -40,6 +50,17 @@ export const baseDataSlice = createSlice({
builder.addCase(fetchRailTypes.fulfilled, (state, action) => {
state.railTypes = action.payload || [];
});
+ builder.addCase(syncBaseData.pending, (state) => {
+ state.syncingBaseData = true;
+ });
+ builder.addCase(syncBaseData.fulfilled, (state) => {
+ state.syncingBaseData = false;
+ });
+ builder.addCase(fetchOrgTree.fulfilled, (state, action) => {
+ if (action.payload.success) {
+ state.ktjOrgs = action.payload.data;
+ }
+ });
},
});
diff --git a/src/store/features/contextSlice.ts b/src/store/features/contextSlice.ts
index 5961cdd..1622536 100644
--- a/src/store/features/contextSlice.ts
+++ b/src/store/features/contextSlice.ts
@@ -6,8 +6,7 @@ import {
SyncProgress,
} from '../../services/mobileWsType';
import Bridge from '../../utils/bridge';
-import { RootState } from '..';
-import { ReqStatus, SettingDTO } from '../../services/apiTypes';
+import { ReqStatus, SettingDTO, StationLabelItem } from '../../services/apiTypes';
interface ContextState {
device: PeripheralStatus['data'];
@@ -15,6 +14,7 @@ interface ContextState {
currOrgCode: string; // 铁路局
currGWDCode: string; // 工务段
currXMCode: string; // 线名
+ stationList: StationLabelItem[];
bleList: BleList['data'];
syncProgress: SyncProgress['data'];
@@ -45,6 +45,7 @@ const initialState: ContextState = {
currOrgCode: orgGwdXm ? orgGwdXm[0] : '',
currGWDCode: orgGwdXm ? orgGwdXm[1] : '',
currXMCode: orgGwdXm ? orgGwdXm[2] : '',
+ stationList: [],
bleList: [],
syncProgress: {
@@ -82,6 +83,13 @@ export const refreshSyncProgress = createAsyncThunk('context/refreshSync', async
return res.success ? res.data : null;
});
+export const refreshStationList = createAsyncThunk(
+ 'context/refreshStationList',
+ async (params: { tljCode: string; gwdCode: string; xmCode: string }) => {
+ return await Bridge.getStationList(params);
+ }
+);
+
export const contextSlice = createSlice({
name: 'context',
initialState,
@@ -117,6 +125,11 @@ export const contextSlice = createSlice({
updateSyncProgress: (state, action: PayloadAction) => {
state.syncProgress = action.payload;
},
+
+ resetSettingReqStatus: (state) => {
+ state.settingReqStatus = 'idle';
+ state.error = undefined;
+ },
},
extraReducers: (builder) => {
builder.addCase(fetchConfig.pending, (state) => {
@@ -145,6 +158,14 @@ export const contextSlice = createSlice({
state.syncProgress = action.payload;
}
});
+ builder.addCase(refreshStationList.fulfilled, (state, action) => {
+ if (action.payload.success) {
+ state.stationList = action.payload.data.map((item) => ({
+ label: item.value,
+ value: item.key,
+ }));
+ }
+ });
},
});
@@ -155,12 +176,8 @@ export const {
updateBleList,
updateBleLinkStatus,
updateSyncProgress,
+ resetSettingReqStatus,
} = contextSlice.actions;
export default contextSlice.reducer;
-// 铁路局、工务段、线路名 编码数组
-export const selectOrgCodes = (state: RootState) => [
- state.context.currOrgCode,
- state.context.currGWDCode,
- state.context.currXMCode,
-];
+
diff --git a/src/store/index.ts b/src/store/index.ts
index 0d2632f..6f4f24c 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -1,6 +1,6 @@
import { configureStore, createSelector } from '@reduxjs/toolkit';
import measureSlice from './features/measureSlice';
-import contextSlice, { selectOrgCodes } from './features/contextSlice';
+import contextSlice from './features/contextSlice';
import historySlice from './features/historySlice';
import baseDataSlice, { selectLabeledKtjOrgs } from './features/baseData';
import { textsOfKeys } from '../utils/helper';
@@ -19,9 +19,9 @@ const store = configureStore({
// 铁路局、工务段、线路名 文本数组
export const selectOrgTextArr = createSelector(
selectLabeledKtjOrgs,
- selectOrgCodes,
- (ktjOrgs, codes) => {
- return textsOfKeys(codes, ktjOrgs);
+ (state: RootState) => state.context,
+ (ktjOrgs, ctx) => {
+ return textsOfKeys([ctx.currOrgCode, ctx.currGWDCode, ctx.currXMCode], ktjOrgs);
}
);
diff --git a/src/utils/bridge.ts b/src/utils/bridge.ts
index 22199ce..fdc92c2 100644
--- a/src/utils/bridge.ts
+++ b/src/utils/bridge.ts
@@ -1,6 +1,13 @@
import { Subject } from 'rxjs';
import httpRequest from '../services/httpRequest';
-import { Measurement, RailType, SaveMeasureDTO, SettingDTO } from '../services/apiTypes';
+import {
+ KTJOrg,
+ Measurement,
+ RailType,
+ SaveMeasureDTO,
+ SettingDTO,
+ StationItem,
+} from '../services/apiTypes';
import { MobileDatagram, SyncProgress } from '../services/mobileWsType';
declare global {
@@ -329,10 +336,39 @@ export default class Bridge {
});
}
static saveMeasure(params: SaveMeasureDTO) {
+ console.log('保存测量 入参:', params);
return httpRequest({
url: '/api/measure/save',
method: 'POST',
params,
});
}
+ static getOrgTree() {
+ return httpRequest>({
+ url: '/api/basic/org',
+ method: 'POST',
+ params: {},
+ });
+ }
+ static getStationList(params: { tljCode: string; gwdCode: string; xmCode: string }) {
+ return httpRequest>({
+ url: '/api/basic/station',
+ method: 'POST',
+ params,
+ });
+ }
+ static needSyncBaseData() {
+ return httpRequest>({
+ url: '/api/basic/ktj/check',
+ method: 'POST',
+ params: {},
+ });
+ }
+ static syncBaseData() {
+ return httpRequest({
+ url: '/api/basic/ktj/update',
+ method: 'POST',
+ params: {},
+ });
+ }
}
diff --git a/src/utils/constant.ts b/src/utils/constant.ts
index c9ab7df..e337039 100644
--- a/src/utils/constant.ts
+++ b/src/utils/constant.ts
@@ -1690,7 +1690,7 @@ export const MILE_TYPES_MAP = {
};
//股别 type 1:直线 2:曲线
-export const RAIN_TYPES = [
+export const UNIT_TYPES = [
{
label: '左股',
value: 'SL',
@@ -1701,26 +1701,26 @@ export const RAIN_TYPES = [
value: 'SR',
type: 1,
},
- {
- label: '上股 左股',
- value: 'HL',
- type: 2,
- },
- {
- label: '上股 右股',
- value: 'HR',
- type: 2,
- },
- {
- label: '下股 左股',
- value: 'LL',
- type: 2,
- },
- {
- label: '下股 右股',
- value: 'LR',
- type: 2,
- },
+ // {
+ // label: '上股 左股',
+ // value: 'HL',
+ // type: 2,
+ // },
+ // {
+ // label: '上股 右股',
+ // value: 'HR',
+ // type: 2,
+ // },
+ // {
+ // label: '下股 左股',
+ // value: 'LL',
+ // type: 2,
+ // },
+ // {
+ // label: '下股 右股',
+ // value: 'LR',
+ // type: 2,
+ // },
];
export const standbyMinutes = [
@@ -1751,30 +1751,30 @@ export const standbyMinutes = [
];
export const DATA_SOURCE = [
- {
- value: 'GCZD',
- label: '跟车指导',
- },
- {
- value: 'DQGC',
- label: '定期观测',
- },
+ // {
+ // value: 'GCZD',
+ // label: '跟车指导',
+ // },
+ // {
+ // value: 'DQGC',
+ // label: '定期观测',
+ // },
{
value: 'XLDC',
label: '线路调查',
},
- {
- value: 'DMYS',
- label: '打磨验收',
- },
- {
- value: 'PSPG',
- label: '普速评估',
- },
- {
- value: 'GSPG',
- label: '高速评估',
- },
+ // {
+ // value: 'DMYS',
+ // label: '打磨验收',
+ // },
+ // {
+ // value: 'PSPG',
+ // label: '普速评估',
+ // },
+ // {
+ // value: 'GSPG',
+ // label: '高速评估',
+ // },
{
value: 'DCDC',
label: '道岔调查',