From 70fa07217056f3ec3e71faa8c3fc7d28e905dc7a Mon Sep 17 00:00:00 2001 From: zhangjiming Date: Tue, 8 Apr 2025 15:04:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=AF=B9=E8=B1=A1=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20=E5=BE=85=E6=9C=BA=E5=88=86=E9=92=9F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Measure.tsx | 5 +---- src/pages/MeasureSave.tsx | 2 +- src/pages/Setting.tsx | 4 +++- src/services/apiTypes.ts | 5 +++++ src/store/features/contextSlice.ts | 15 ++++++++++----- src/store/index.ts | 11 ++++++++--- src/utils/bridge.ts | 8 ++++---- 7 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/pages/Measure.tsx b/src/pages/Measure.tsx index e2c033a..e5dcfc1 100644 --- a/src/pages/Measure.tsx +++ b/src/pages/Measure.tsx @@ -20,7 +20,7 @@ export default function Measure() { const navigate = useNavigate(); const dispatch = useAppDispatch(); const labeledKtjOrgs = useAppSelector(selectLabeledKtjOrgs); - const orgTextArr = useAppSelector(selectOrgTextArr) + const orgTextArr = useAppSelector(selectOrgTextArr); const measureState = useAppSelector((state) => state.measure); const contextState = useAppSelector((state) => state.context); @@ -79,7 +79,6 @@ export default function Measure() { } }, [measureState.rightPoints]); - const onSaveClick = () => { navigate('/measure/save'); }; @@ -249,5 +248,3 @@ export default function Measure() { ); } - - diff --git a/src/pages/MeasureSave.tsx b/src/pages/MeasureSave.tsx index cf30b28..db5e2cf 100644 --- a/src/pages/MeasureSave.tsx +++ b/src/pages/MeasureSave.tsx @@ -16,7 +16,7 @@ export default function MeasureSave() { const contextState = useAppSelector((state) => state.context); const baseState = useAppSelector((state) => state.baseData); - const orgTextArr = useAppSelector(selectOrgTextArr) + const orgTextArr = useAppSelector(selectOrgTextArr); const [name, setName] = useState(''); const [railPickerVisible, setRailPickerVisible] = useState(false); diff --git a/src/pages/Setting.tsx b/src/pages/Setting.tsx index 44b325d..af65077 100644 --- a/src/pages/Setting.tsx +++ b/src/pages/Setting.tsx @@ -37,9 +37,11 @@ export default function Setting() { const onSaveClick = async () => { const server = addrInput.current!.value; - const res = await dispatch(saveConfig({ server })).unwrap(); + const res = await dispatch(saveConfig({ server, standbyMinutes: selectStandby[0] })).unwrap(); if (res.success) { Toast.show('保存成功'); + } else { + Toast.show(res.message); } }; diff --git a/src/services/apiTypes.ts b/src/services/apiTypes.ts index c9629fb..a0b309c 100644 --- a/src/services/apiTypes.ts +++ b/src/services/apiTypes.ts @@ -14,6 +14,11 @@ export type Measurement = { syncStatus: 'wait' | 'finish' | 'fail'; }; +export type SettingDTO = { + server: string; + standbyMinutes: number; // 待机分钟数 +}; + export type KTJOrg = { key: string; value: string; diff --git a/src/store/features/contextSlice.ts b/src/store/features/contextSlice.ts index ea1e071..d5f5bb1 100644 --- a/src/store/features/contextSlice.ts +++ b/src/store/features/contextSlice.ts @@ -7,6 +7,7 @@ import { } from '../../services/mobileWsType'; import Bridge from '../../utils/bridge'; import { RootState } from '..'; +import { SettingDTO } from '../../services/apiTypes'; interface ContextState { device: PeripheralStatus['data']; @@ -19,9 +20,7 @@ interface ContextState { syncProgress: SyncProgress['data']; syncItems: Array; - setting: { - server: string; - }; + setting: SettingDTO; } const orgGwdXmStr = localStorage.getItem('org_gwd_xm'); @@ -56,6 +55,7 @@ const initialState: ContextState = { setting: { server: '', + standbyMinutes: 20, }, }; @@ -66,7 +66,7 @@ export const fetchConfig = createAsyncThunk('context/fetchConfig', async () => { export const saveConfig = createAsyncThunk( 'context/saveConfig', - async (param: { server: string }, thunkAPI) => { + async (param: SettingDTO, thunkAPI) => { const res = await Bridge.saveConfig(param); res.success && thunkAPI.dispatch(fetchConfig()); return res; @@ -138,4 +138,9 @@ export const { } = contextSlice.actions; export default contextSlice.reducer; -export const selectOrgCodes = (state: RootState) => [state.context.currOrgCode, state.context.currGWDCode, state.context.currXMCode]; \ No newline at end of file +// 铁路局、工务段、线路名 编码数组 +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 3521291..0d2632f 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -16,9 +16,14 @@ const store = configureStore({ }, }); -export const selectOrgTextArr = createSelector(selectLabeledKtjOrgs, selectOrgCodes, (ktjOrgs, codes) => { - return textsOfKeys(codes, ktjOrgs); -}) +// 铁路局、工务段、线路名 文本数组 +export const selectOrgTextArr = createSelector( + selectLabeledKtjOrgs, + selectOrgCodes, + (ktjOrgs, codes) => { + return textsOfKeys(codes, ktjOrgs); + } +); export default store; diff --git a/src/utils/bridge.ts b/src/utils/bridge.ts index 3f4b766..22199ce 100644 --- a/src/utils/bridge.ts +++ b/src/utils/bridge.ts @@ -1,6 +1,6 @@ import { Subject } from 'rxjs'; import httpRequest from '../services/httpRequest'; -import { Measurement, RailType, SaveMeasureDTO } from '../services/apiTypes'; +import { Measurement, RailType, SaveMeasureDTO, SettingDTO } from '../services/apiTypes'; import { MobileDatagram, SyncProgress } from '../services/mobileWsType'; declare global { @@ -229,14 +229,14 @@ export default class Bridge { }); } static getConfig() { - return httpRequest>({ + return httpRequest>({ url: '/api/system/config', method: 'POST', params: {}, }); } - static saveConfig(params: { server: string }) { - return httpRequest>({ + static saveConfig(params: SettingDTO) { + return httpRequest({ url: '/api/system/config/save', method: 'POST', params,