新增分类模式

This commit is contained in:
宇阳
2024-10-18 13:12:03 +08:00
parent bc774c915b
commit b17ba5cdb0

View File

@@ -2,7 +2,7 @@ import { useState, useEffect } from 'react';
import { Cate } from '@/types/app/cate'; import { Cate } from '@/types/app/cate';
import { addCateDataAPI, delCateDataAPI, editCateDataAPI, getCateDataAPI, getCateListAPI } from '@/api/Cate'; import { addCateDataAPI, delCateDataAPI, editCateDataAPI, getCateDataAPI, getCateListAPI } from '@/api/Cate';
import { DownOutlined } from '@ant-design/icons'; import { DownOutlined } from '@ant-design/icons';
import { Form, Input, Button, Tree, Modal, Spin, Dropdown, Card, MenuProps, Popconfirm, message } from 'antd'; import { Form, Input, Button, Tree, Modal, Spin, Dropdown, Card, MenuProps, Popconfirm, message, Radio } from 'antd';
import Title from '@/components/Title'; import Title from '@/components/Title';
import "./index.scss" import "./index.scss"
@@ -12,6 +12,7 @@ const CatePage = () => {
const [cate, setCate] = useState<Cate>({} as Cate); const [cate, setCate] = useState<Cate>({} as Cate);
const [list, setList] = useState<Cate[]>([]); const [list, setList] = useState<Cate[]>([]);
const [isMethod, setIsMethod] = useState<'create' | 'edit'>('create'); const [isMethod, setIsMethod] = useState<'create' | 'edit'>('create');
const [isCateShow, setIsCateShow] = useState(false)
const [form] = Form.useForm(); const [form] = Form.useForm();
const getCateList = async () => { const getCateList = async () => {
@@ -23,18 +24,22 @@ const CatePage = () => {
const addCateData = (id: number) => { const addCateData = (id: number) => {
setIsMethod("create") setIsMethod("create")
setIsModelOpen(true); setIsModelOpen(true);
setIsCateShow(false)
form.resetFields(); form.resetFields();
setCate({ ...cate, level: id }); setCate({ ...cate, level: id, type: "cate" });
}; };
const editCateData = async (id: number) => { const editCateData = async (id: number) => {
setIsMethod("edit") setIsMethod("edit")
setLoading(true); setLoading(true);
setIsModelOpen(true); setIsModelOpen(true);
const { data } = await getCateDataAPI(id); const { data } = await getCateDataAPI(id);
setIsCateShow(data.type === "cate" ? false : true)
setCate(data); setCate(data);
form.setFieldsValue(data); form.setFieldsValue(data);
setLoading(false); setLoading(false);
}; };
@@ -48,6 +53,8 @@ const CatePage = () => {
const submit = async () => { const submit = async () => {
form.validateFields().then(async (values: Cate) => { form.validateFields().then(async (values: Cate) => {
if (values.type === "cate") values.url = '/'
if (isMethod === "edit") { if (isMethod === "edit") {
await editCateDataAPI({ ...cate, ...values }); await editCateDataAPI({ ...cate, ...values });
message.success('🎉 修改分类成功'); message.success('🎉 修改分类成功');
@@ -67,6 +74,7 @@ const CatePage = () => {
}; };
const closeModel = () => { const closeModel = () => {
setIsCateShow(false)
setIsMethod("create") setIsMethod("create")
setIsModelOpen(false); setIsModelOpen(false);
form.resetFields(); form.resetFields();
@@ -143,15 +151,25 @@ const CatePage = () => {
<Input placeholder="请输入分类图标" /> <Input placeholder="请输入分类图标" />
</Form.Item> </Form.Item>
<Form.Item label="链接" name="url"> {
isCateShow && <Form.Item label="链接" name="url">
<Input placeholder="请输入分类链接" /> <Input placeholder="请输入分类链接" />
</Form.Item> </Form.Item>
}
<Form.Item label="顺序" name="order"> <Form.Item label="顺序" name="order">
<Input placeholder="请输入分类顺序(值越小越靠前)" /> <Input placeholder="请输入分类顺序(值越小越靠前)" />
</Form.Item> </Form.Item>
{/* TODO有时间做个分类的类型导航或者分类选项 */} <Form.Item label="模式" name="type">
<Radio.Group onChange={(e) => {
const type = e.target.value
type === "nav" ? setIsCateShow(true) : setIsCateShow(false)
}}>
<Radio value="cate"></Radio>
<Radio value="nav"></Radio>
</Radio.Group>
</Form.Item>
<Form.Item className='!mb-0 flex justify-end'> <Form.Item className='!mb-0 flex justify-end'>
<Button onClick={closeModel}></Button> <Button onClick={closeModel}></Button>