Browse Source

fix:loading提示

master
guoapeng 2 months ago
parent
commit
6dee9178b2
  1. 14
      src/pages/Measure.tsx
  2. 19
      src/pages/MeasureSave.tsx
  3. 20
      src/pages/Setting.tsx
  4. 1
      src/services/apiTypes.ts
  5. 1
      src/store/features/contextSlice.ts
  6. 10
      src/utils/constant.ts

14
src/pages/Measure.tsx

@ -138,6 +138,15 @@ export default function Measure() {
}, [])
const onSaveClick = () => {
if (!contextState.currOrgCode) {
Dialog.alert({
content: '请选择铁路局/工务段/线路',
onConfirm: () => {
onOrgBarClick();
},
});
return;
}
dispatch(updateMeasureData(newMeasureData));
navigate('/measure/save');
};
@ -241,9 +250,12 @@ export default function Measure() {
options: labeledKtjOrgs,
placeholder: '请选择',
});
console.log(value)
// Toast.show(value ? `你选择了 ${value.join(' - ')}` : '你没有进行选择');
if (value) {
if (value?.length) {
dispatch(updateOrg(value as string[]));
}else {
Toast.show('请选择组织机构');
}
};

19
src/pages/MeasureSave.tsx

@ -1,4 +1,4 @@
import { NavBar, Picker, Toast } from 'antd-mobile';
import {Mask, NavBar, Picker, SpinLoading, Toast} from 'antd-mobile';
import { useNavigate } from 'react-router';
import icon_arr_r from '../assets/icon_arr_s_r.svg';
import {ChangeEvent, useCallback, useEffect, useState} from 'react';
@ -69,6 +69,8 @@ export default function MeasureSave() {
if (evt.target.name === 'name') {
if (evt.target.value.length <= 50) {
setName(evt.target.value);
}else {
Toast.show('名称长度不能超过50个字符');
}
} else if (evt.target.name === 'batch') {
if (evt.target.value.length <= 10) {
@ -98,6 +100,8 @@ export default function MeasureSave() {
useEffect(()=>{
setMeasureData(measureState.measureData)
},[measureState.measureData])
const [loading, setLoading] = useState(false);
const onSaveBtnClick = () => {
if (!name) {
return Toast.show('请输入测量名称');
@ -105,6 +109,7 @@ export default function MeasureSave() {
if (!batch) {
return Toast.show('请输入批次号');
}
setLoading(true)
const railType = baseState.railTypes.find((r) => r.id === contextState.currRailTypeId);
const [tlj, gwd, xm] = orgTextArr;
const desc: ExtraDesc = {
@ -151,7 +156,7 @@ export default function MeasureSave() {
if (res.success) {
Toast.show('保存成功');
setTimeout(() => {
navigate(-1);
navigate('/home/measure');
dispatch(resetState());
}, 300);
} else {
@ -161,12 +166,22 @@ export default function MeasureSave() {
Toast.show({
content: '操作失败',
});
}).finally(() => {
setLoading(false)
});
};
return (
<>
<div>
{loading && (
<Mask opacity='thick' className="h-[100vh] flex justify-center items-center">
<div style={{ margin: '45%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center' }}>
<SpinLoading color="#5c92b4" />
<span className="whitespace-nowrap mt-5 text-[#5c92b4]" style={{fontSize: '16px'}}>...</span>
</div>
</Mask>
)}
<NavBar className="bg-white" onBack={back}>
</NavBar>

20
src/pages/Setting.tsx

@ -1,4 +1,4 @@
import { Mask, NavBar, Picker, SpinLoading, Toast } from 'antd-mobile';
import {Mask, NavBar, Picker, SpinLoading, Switch, Toast} from 'antd-mobile';
import icon_arr_r from '../assets/icon_arr_s_r.svg';
import { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router';
@ -13,6 +13,7 @@ export default function Setting() {
const addrInput = useRef<HTMLInputElement>(null);
const [standbyPickerVisible, setStandbyPickerVisible] = useState(false);
const [checked, setChecked] = useState(false)
const [selectStandby, setSelectStandby] = useState<number[]>([context.setting.standbyMinutes]);
useEffect(() => {
@ -20,6 +21,7 @@ export default function Setting() {
addrInput.current!.value = context.setting.server;
}
setSelectStandby([context.setting.standbyMinutes]);
setChecked(context.setting.todayNumberFlag)
}, [context.setting]);
useEffect(() => {
@ -38,7 +40,7 @@ export default function Setting() {
const onSaveClick = async () => {
const server = addrInput.current!.value;
try {
const res = await dispatch(saveConfig({ server, standbyMinutes: selectStandby[0] })).unwrap();
const res = await dispatch(saveConfig({ server, standbyMinutes: selectStandby[0], todayNumberFlag: checked })).unwrap();
if (res.success) {
Toast.show('保存成功');
}
@ -71,6 +73,20 @@ export default function Setting() {
</div>
</section>
<section>
<div className="h-[42px] px-5">
<h1 className="h-[42px] leading-[42px] text-base text-text font-medium">
</h1>
</div>
<div className="bg-white px-5 text-sm text-text">
<div className="h-12 flex items-center justify-between">
<span></span>
<Switch checked={checked} onChange={() => setChecked(!checked)} />
</div>
</div>
</section>
{context.device.connected && (
<section>
<div className="h-[42px] px-5">

1
src/services/apiTypes.ts

@ -13,6 +13,7 @@ export type Measurement = MeasurementDTO & {
export type SettingDTO = {
server: string;
todayNumberFlag: boolean;
standbyMinutes: number; // 待机分钟数
};

1
src/store/features/contextSlice.ts

@ -60,6 +60,7 @@ const initialState: ContextState = {
setting: {
server: '',
standbyMinutes: 20,
todayNumberFlag: true
},
settingReqStatus: 'idle',
error: undefined,

10
src/utils/constant.ts

@ -1741,13 +1741,9 @@ export const standbyMinutes = [
value: 10,
},
{
label: '20分钟',
value: 20,
},
{
label: '30分钟',
value: 30,
},
label: '15分钟',
value: 15,
}
];
export const DATA_SOURCE = [

Loading…
Cancel
Save