import React, { useState, createContext, useEffect } from "react"; import { Button, Input, Select, message, Table, Tag, Modal, Form, InputNumber, Radio, ConfigProvider, TreeSelect, Row, Col, // Icon } from "antd"; import type { ColumnsType } from "antd/es/table"; import { SyncOutlined, SearchOutlined, ExclamationCircleFilled, SwapOutlined, } from "@ant-design/icons"; import zh_CN from "antd/es/locale/zh_CN"; import "dayjs/locale/zh-cn"; // import 'moment/locale/zh-cn'; import { getDatasAPI, delDataAPI, addDataAPI, editDataAPI, getDataAPI, } from "../../../api/system/dept"; import "./index.scss"; import { useForm } from "antd/es/form/Form"; interface searchValueType { deptName: string | undefined; state: string | undefined; } //表格单项数据类型 interface TableDataType { children: number[]; createTime: string; deptId: number; deptName: string; orderNum: string; state: string; } let thisDept = {}; let treeData: any = []; let isTreeAnyId = false; // const Dayjs=dayjs.Dayjs export default function Role() { const { confirm } = Modal; //提示组件 const [messageApi, contextHolder] = message.useMessage(); const [isAllExpend, setIsAllExpend] = useState(true); //搜索框内所有内容 let [searchValue, setSearchValue] = useState({ deptName: undefined, state: undefined, }); // const is //树列表数据 // const [isTreeAnyId,setIsTreeAnyId]=useState(false) const [treeAnyId, setTreeAnyId] = useState([]); const [expandedRowKeys, setExpandedRowKeys] = useState([]); //Modal const [isModalOpen, setIsModalOpen] = useState(false); const [modalTitle, setModalTitle] = useState(""); //表单区域 const [isDisbaled, setIsDisbaled] = useState(false); //serach const [formSearch] = Form.useForm(); const [formModal] = Form.useForm(); //当前页面页数 //表格内数据 let [tableData, setTableData] = useState([]); //表格格式 const columns: ColumnsType = [ { title: "部门名称", dataIndex: "deptName", key: "deptName", }, { title: "排序", dataIndex: "orderNum", key: "orderNum", }, { title: "状态", key: "state", dataIndex: "state", render: (text) => ( <> {text === "0" ? ( 正常 ) : ( 停用 )} ), }, { title: "创建时间", key: "createTime", dataIndex: "createTime", }, { title: "操作", key: "", dataIndex: "", render: (text) => ( <> {/* */} {text.parentId !== 0 ? ( ) : null} ), }, ]; //请求表格内容参数 let [queryTableDataParams, setQueryTableDataParams] = useState({ deptName: undefined, state: undefined, }); const handleDelete = (dept: any) => { confirm({ title: "系统提示", icon: , content: `确定删除角色名称为${dept.deptName}的数据吗`, okText: "确定", okType: "danger", cancelText: "取消", onOk() { (async () => { try { let { code } = await delDataAPI(dept.deptId); if (code === 1000) { console.log("del", dept.deptId); messageApi.open({ type: "success", content: "操作成功", }); getDatas({}); } } catch (error) { console.log(error); } })(); }, onCancel() { console.log("Cancel"); }, }); }; const handleSerach = () => { // console.log("搜索框", searchValue); // setSearchValue({ ...searchValue }); searchValue = formSearch.getFieldsValue(); console.log(searchValue); // queryTableDataParams={...searchValue} setQueryTableDataParams({ ...searchValue }); }; const handleReset = () => { formSearch.resetFields(); searchValue = formSearch.getFieldsValue(); setQueryTableDataParams({ ...searchValue }); // setSearchValue({ ...searchValue }); // setCount(1) }; const handleEdit = async (dept: any) => { if (dept.parentId === 0) { setIsDisbaled(true); formModal.setFieldsValue({ ...thisDept, parentId: dept.deptName }); } else { setIsDisbaled(false); // formModal.setFieldsValue({...thisDept}); } await getData(dept.deptId); if (dept.parentId === 0) { setIsDisbaled(true); formModal.setFieldsValue({ ...thisDept, parentId: dept.deptName }); } else { setIsDisbaled(false); formModal.setFieldsValue({ ...thisDept }); } console.log(thisDept); setModalTitle("修改角色"); setIsModalOpen(true); // formModal.setFieldsValue({...thisDept}); // formModal.setFieldsValue({...thisDept,parentId:dept.deptName}); }; const handleNewAdd = (deptId?: string) => { setModalTitle("新增角色"); setIsModalOpen(true); if (deptId) { formModal.setFieldsValue({ parentId: deptId, deptName: undefined, orderNum: 0, leader: undefined, phone: undefined, email: undefined, state: "0", }); } else formModal.setFieldsValue({ parentId: undefined, deptName: undefined, orderNum: 0, leader: undefined, phone: undefined, email: undefined, state: "0", }); }; const handleModalOk = () => { formModal .validateFields() .then((values) => { // form.resetFields(); console.log("add", values); // onCreate(values); // setSelectedKeys([]) // setIsModalOpen(false); if (modalTitle == "新增角色") { console.log(values); postAdd(values); } else if (modalTitle == "修改角色") { editData(values); } }) .catch((info) => { console.log("Validate Failed:", info); }); }; //遍历菜单树获取所有节点ID const getTree = function (tree: any) { tree.title = tree.deptName; tree.value = tree.deptId; if (!isTreeAnyId) { treeAnyId.push(tree.deptId); setTreeAnyId([...treeAnyId]); } if (tree.children) { for (let child of tree.children) { getTree(child); } } // treeData=tree }; const handleModalCanle = () => { setIsModalOpen(false); }; //获取详细数据 const getData = async (deptId: number) => { try { const { code, data } = await getDataAPI(deptId); if (code === 1000) { thisDept = data; // console.log(thisDept); } } catch (error) {} }; //修改数据 const editData = async (dept: any) => { try { console.log(thisDept); console.log({ ...thisDept, ...dept }); const { code } = await editDataAPI({ ...thisDept, ...dept }); if (code === 1000) { messageApi.open({ type: "success", content: "操作成功", }); setIsModalOpen(false); getDatas(queryTableDataParams); } else { messageApi.open({ type: "error", content: "操作失败", }); } } catch (error) {} }; //获取部门数据 const getDatas = async (queryTableDataParams: any) => { console.log("参数:", queryTableDataParams); try { const { code, data } = await getDatasAPI(queryTableDataParams); console.log(data); if (code === 1000) { // console.log(isTreeAnyId); for (let child of data) { getTree(child); } setExpandedRowKeys([...treeAnyId]); // console.log(treeAnyId); console.log(data); setTableData(data); treeData = data; console.log(treeData); // setTotal(data.total); } } catch (err: any) { console.log("555", err); } isTreeAnyId = true; }; //新增 const postAdd = async (dept: any) => { try { let { code } = await addDataAPI(dept); console.log(code); if (code === 1000) { console.log("success"); messageApi.open({ type: "success", content: "操作成功", }); formModal.setFieldsValue({}); getDatas({ ...queryTableDataParams }); setIsModalOpen(false); } else { messageApi.open({ type: "error", content: "角色名称已存在", }); } } catch (error) {} }; useEffect(() => { queryTableDataParams = { ...queryTableDataParams, }; getDatas(queryTableDataParams); // console.log(queryParams); console.log(tableData); }, [queryTableDataParams]); return (
正常 停用
{/* 表格 */}
{contextHolder} { // console.log(expanded, record); if (expanded) { setExpandedRowKeys([record.deptId, ...expandedRowKeys]); } else { const newEx = expandedRowKeys.filter((element) => { return element != record.deptId; }); // console.log(expandedRowKeys); setExpandedRowKeys(newEx); } console.log(expandedRowKeys); }} columns={columns} rowKey={"deptId"} dataSource={tableData} pagination={false} /> ); }