Browse Source

设置对象添加 待机分钟数

master
zhangjiming 4 months ago
parent
commit
70fa072170
  1. 5
      src/pages/Measure.tsx
  2. 2
      src/pages/MeasureSave.tsx
  3. 4
      src/pages/Setting.tsx
  4. 5
      src/services/apiTypes.ts
  5. 15
      src/store/features/contextSlice.ts
  6. 9
      src/store/index.ts
  7. 8
      src/utils/bridge.ts

5
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() {
</>
);
}

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

4
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);
}
};

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

15
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<SyncItemFinish['data']>;
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];
// 铁路局、工务段、线路名 编码数组
export const selectOrgCodes = (state: RootState) => [
state.context.currOrgCode,
state.context.currGWDCode,
state.context.currXMCode,
];

9
src/store/index.ts

@ -16,9 +16,14 @@ const store = configureStore({
},
});
export const selectOrgTextArr = createSelector(selectLabeledKtjOrgs, selectOrgCodes, (ktjOrgs, codes) => {
// 铁路局、工务段、线路名 文本数组
export const selectOrgTextArr = createSelector(
selectLabeledKtjOrgs,
selectOrgCodes,
(ktjOrgs, codes) => {
return textsOfKeys(codes, ktjOrgs);
})
}
);
export default store;

8
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<BridgeBaseResult<{ server: string }>>({
return httpRequest<BridgeBaseResult<SettingDTO>>({
url: '/api/system/config',
method: 'POST',
params: {},
});
}
static saveConfig(params: { server: string }) {
return httpRequest<BridgeBaseResult<{ server: string }>>({
static saveConfig(params: SettingDTO) {
return httpRequest<BridgeBaseResult>({
url: '/api/system/config/save',
method: 'POST',
params,

Loading…
Cancel
Save