import { mRequest } from "@/app/_lib/request" import ImageUpload from "@/app/_ui/ImageUpload" import { Link } from "@/app/api/link/route" import { Button, Card, Form, Image, Input, InputNumber, message, Modal, Popconfirm, Space, Table, } from "antd" import { useCallback, useEffect, useState } from "react" export default function LinkTable(props: { id: string }) { const [list, setList] = useState([]) const [loading, setLoading] = useState(false) const refresh = useCallback(async () => { setLoading(true) const res = await mRequest<{ list: Link[] }>( "GET", `/api/link?typeId=${props.id}&page=1&pageSize=9999` ) setList(res.list) setLoading(false) }, [props.id]) useEffect(() => { refresh() }, [refresh]) const [selected, setSelected] = useState( undefined ) return (
} > loading={loading} dataSource={list} pagination={false} rowKey="_id" columns={[ { title: "名称", dataIndex: "name", }, { title: "图标", dataIndex: "logoLink", render: (_, row) => ( ) }, { title: "操作", fixed: "right", width: 200, render: (_, row) => ( { await mRequest("DELETE", "/app/link/" + row.id, { returnType: "text", }) refresh() message.success("删除成功") }} > ), }, ]} /> setSelected(undefined)} destroyOnClose title={(selected ? "编辑" : "新增") + "链接"} footer={false} >
{ if (selected) { await mRequest("PUT", "/api/link", { id: selected._id, ...res }) } else { await mRequest("POST", "/api/link", { ...res, type: props.id }) } refresh() setSelected(undefined) message.success("操作成功") }} >
) }