|
@@ -2,7 +2,8 @@ import PageHeader from '../../components/PageHeader';
|
|
import { Input, Button, Form, Upload } from 'antd';
|
|
import { Input, Button, Form, Upload } from 'antd';
|
|
import { PlusOutlined } from '@ant-design/icons';
|
|
import { PlusOutlined } from '@ant-design/icons';
|
|
import './TodoAdd.scss';
|
|
import './TodoAdd.scss';
|
|
-import { useSubmit } from 'react-router-dom';
|
|
|
|
|
|
+import { redirect, useSubmit } from 'react-router-dom';
|
|
|
|
+import { addTodo } from '../../api/todos';
|
|
|
|
|
|
const { TextArea } = Input;
|
|
const { TextArea } = Input;
|
|
|
|
|
|
@@ -10,11 +11,15 @@ function TodoAdd() {
|
|
let [form] = Form.useForm();
|
|
let [form] = Form.useForm();
|
|
const submit = useSubmit();
|
|
const submit = useSubmit();
|
|
function onFinish() {
|
|
function onFinish() {
|
|
- console.log(form);
|
|
|
|
- form.setFieldValue('cover', '/public/favicon.ico');
|
|
|
|
- setTimeout(() => {
|
|
|
|
- submit(document.querySelector('#addForm'), { method: 'post' });
|
|
|
|
- }, 0);
|
|
|
|
|
|
+ submit(document.querySelector('#addForm'), { method: 'post' });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function handleUpload({ file }) {
|
|
|
|
+ let { status } = file;
|
|
|
|
+ if (status == 'done') {
|
|
|
|
+ let { code, data } = file.response;
|
|
|
|
+ code == 0 && form.setFieldValue('cover', data.dir);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return (
|
|
return (
|
|
<>
|
|
<>
|
|
@@ -57,7 +62,23 @@ function TodoAdd() {
|
|
/>
|
|
/>
|
|
</Form.Item>
|
|
</Form.Item>
|
|
<Form.Item label="代办封面">
|
|
<Form.Item label="代办封面">
|
|
- <Upload listType="picture-card" accept="image/*">
|
|
|
|
|
|
+ <Upload
|
|
|
|
+ listType="picture-card"
|
|
|
|
+ accept="image/*"
|
|
|
|
+ name="cover"
|
|
|
|
+ action={'/api/v1/upload'}
|
|
|
|
+ data={{ folder: 'covers' }}
|
|
|
|
+ method="put"
|
|
|
|
+ headers={{
|
|
|
|
+ Authorization: sessionStorage.getItem('token'),
|
|
|
|
+ }}
|
|
|
|
+ maxCount={1}
|
|
|
|
+ onChange={handleUpload}
|
|
|
|
+ showUploadList={{
|
|
|
|
+ showPreviewIcon: false, //! 是否显示预览图标
|
|
|
|
+ showRemoveIcon: true, //! 是否显示删除图标
|
|
|
|
+ }}
|
|
|
|
+ >
|
|
<div>
|
|
<div>
|
|
<PlusOutlined />
|
|
<PlusOutlined />
|
|
<div
|
|
<div
|
|
@@ -95,8 +116,11 @@ export async function todoAddAction({ request }) {
|
|
//! 在添加代办时 会发起当前路由的一个post请求,下面是获取请求体数据
|
|
//! 在添加代办时 会发起当前路由的一个post请求,下面是获取请求体数据
|
|
let formData = await request.formData();
|
|
let formData = await request.formData();
|
|
|
|
|
|
- let data = Object.fromEntries(formData);
|
|
|
|
|
|
+ let newTodo = Object.fromEntries(formData);
|
|
|
|
+
|
|
|
|
+ let { code } = await addTodo(newTodo);
|
|
|
|
+
|
|
|
|
+ if (code == 0) return redirect('/todo/list');
|
|
|
|
|
|
- console.log(data);
|
|
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|