feat: required check in dutyinfo; change service in dutyinfo

mgy
Dawn1Ocean 2024-05-08 19:01:58 +08:00
parent 8f062b0e8c
commit 31fca48feb
3 changed files with 82 additions and 73 deletions

View File

@ -1,4 +1,4 @@
import { getDutyInfo, updateDutyInfo } from '@/services/api'; import { getDutyInfo } from '@/services/api';
import { import {
EditableProTable, EditableProTable,
PageContainer, PageContainer,
@ -12,6 +12,7 @@ import {
} from '@ant-design/pro-components'; } from '@ant-design/pro-components';
import { Card, message } from 'antd'; import { Card, message } from 'antd';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import request from 'umi-request';
import { Info } from './info'; import { Info } from './info';
type Shift = { type Shift = {
@ -91,7 +92,21 @@ const DutyInfo: React.FC = () => {
return <div style={{ textAlign: 'center' }}>{doms}</div>; return <div style={{ textAlign: 'center' }}>{doms}</div>;
}, },
}} }}
onFinish={updateDutyInfo} onFinish={async (values) => {
setLoading(true);
request('/admin/duty/update', {
method: 'POST',
data: values,
})
.then(() => {
setLoading(false);
message.success('提交成功');
})
.catch((err) => {
setLoading(false);
message.error('提交失败:' + err);
});
}}
initialValues={dutyInfo} initialValues={dutyInfo}
> >
<div style={{ justifyContent: 'center', display: 'flex' }}> <div style={{ justifyContent: 'center', display: 'flex' }}>
@ -125,11 +140,13 @@ const DutyInfo: React.FC = () => {
name="offDutyReason" name="offDutyReason"
label="值班暂停原因" label="值班暂停原因"
placeholder="请输入暂停值班的原因" placeholder="请输入暂停值班的原因"
rules={[{ required: true }]}
/> />
<ProFormDateTimePicker <ProFormDateTimePicker
name="dutyRecoverTime" name="dutyRecoverTime"
width="md" width="md"
label="值班恢复时间" label="值班恢复时间"
rules={[{ required: true }]}
/> />
</div> </div>
); );
@ -142,6 +159,7 @@ const DutyInfo: React.FC = () => {
width="md" width="md"
min={0} min={0}
max={10} max={10}
rules={[{ required: true }]}
/> />
); );
}} }}
@ -158,6 +176,7 @@ const DutyInfo: React.FC = () => {
initialValue={dutyInfo?.otherDutyTime} initialValue={dutyInfo?.otherDutyTime}
trigger="onValuesChange" trigger="onValuesChange"
style={{ width: '80%' }} style={{ width: '80%' }}
rules={[{ required: true }]}
> >
<EditableProTable<Shift> <EditableProTable<Shift>
rowKey="id" rowKey="id"

View File

@ -208,7 +208,6 @@ const Login: React.FC = () => {
</ProFormCheckbox> </ProFormCheckbox>
</div> </div>
<div style={{ marginBottom: '2vh' }}> <div style={{ marginBottom: '2vh' }}>
{' '}
<Button <Button
type="default" type="default"
block block

View File

@ -1,6 +1,6 @@
// @ts-ignore // @ts-ignore
/* eslint-disable */ /* eslint-disable */
import { Info, ServerInfo } from '@/pages/Admin/DutyInfo/info'; import { ServerInfo } from '@/pages/Admin/DutyInfo/info';
import { Stat } from '@/pages/Welcome/stat'; import { Stat } from '@/pages/Welcome/stat';
import { request } from '@umijs/max'; import { request } from '@umijs/max';
import { API } from './typings'; import { API } from './typings';
@ -54,12 +54,3 @@ export async function getDutyInfo(options?: { [key: string]: any }) {
...(options || {}), ...(options || {}),
}); });
} }
/** 上传当前值班信息 POST /admin/duty/update */
export async function updateDutyInfo(body: Info, options?: { [key: string]: any }) {
return request<boolean | void>('/admin/duty/update', {
method: 'POST',
data: body,
...(options || {}),
});
}