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,