import React, { useState, useEffect } from "react"; import { Button, Space, Table, Popconfirm, message } from "antd"; import type { ColumnsType } from "antd/es/table"; import styles from "./index.module.less"; import { PlusOutlined, ReloadOutlined } from "@ant-design/icons"; import { department } from "../../api/index"; import { dateFormat } from "../../utils/index"; import { Link, useNavigate } from "react-router-dom"; interface Option { id: string | number; name: string; created_at: string; children?: Option[]; } interface DataType { id: React.Key; name: string; created_at: string; } export const DepartmentPage: React.FC = () => { const navigate = useNavigate(); const [loading, setLoading] = useState(true); const [list, setList] = useState([]); const [refresh, setRefresh] = useState(false); const columns: ColumnsType = [ { title: "部门名", dataIndex: "name", render: (text: string) => {text}, }, { title: "ID", key: "id", dataIndex: "id", }, { title: "时间", dataIndex: "created_at", render: (text: string) => {text && dateFormat(text)}, }, { title: "操作", key: "action", fixed: "right", width: 160, render: (_, record) => ( delUser(record.id)} okText="确定" cancelText="取消" > ), }, ]; useEffect(() => { getData(); }, [refresh]); const getData = () => { setLoading(true); department.departmentList().then((res: any) => { const departments = res.data.departments; const new_arr: Option[] = checkArr(departments, 0); setList(new_arr); setTimeout(() => { setLoading(false); }, 1000); }); }; const checkArr = (departments: any[], id: number) => { const arr = []; for (let i = 0; i < departments[id].length; i++) { if (!departments[departments[id][i].id]) { arr.push({ name: departments[id][i].name, id: departments[id][i].id, created_at: departments[id][i].created_at, }); } else { const new_arr: Option[] = checkArr(departments, departments[id][i].id); arr.push({ name: departments[id][i].name, id: departments[id][i].id, created_at: departments[id][i].created_at, children: new_arr, }); } } return arr; }; const resetData = () => { setList([]); setRefresh(!refresh); }; const delUser = (id: any) => { department.destroyDepartment(id).then((res: any) => { setTimeout(() => { message.success("操作成功"); setRefresh(!refresh); }, 1000); }); }; return ( <>
record.id} /> ); };