import {postDepartmentGetDepartmentList, deleteDepartmentDeleteDepartment} from '@/services/system/Department'; import { PlusOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { FooterToolbar, PageContainer, ProTable, } from '@ant-design/pro-components'; import { FormattedMessage, useIntl, useAccess, Access, history } from '@umijs/max'; import {Button, Popconfirm, message} from 'antd'; import React, { useRef, useState } from 'react'; import UpdateForm from '@/pages/System/DepartmentList/components/UpdateForm' import CreateForm from '@/pages/System/DepartmentList/components/CreateForm' import {ColumnDrawer} from '@/pages/System/DepartmentList/components/ColumnDrawer' // 列表操作栏组件 import TableActionCard from '@/components/TableActionCard'; import IsDelete from '@/components/TableActionCard/isDelete'; // 批量删除 import IsBatchDelete from '@/components/BatchOperation/isBatchDelete'; const DepartmentList: React.FC = () => { /** * @en-US Pop-up window of new window * @zh-CN 新建窗口的弹窗 * */ const [createModalOpen, setCreateModalOpen] = useState(false); /** * @en-US The pop-up window of the distribution update window * @zh-CN 分布更新窗口的弹窗 * */ const [updateModalOpen, setUpdateModalOpen] = useState(false); const [showDetail, setShowDetail] = useState(false); /** * @en-US International configuration * @zh-CN 国际化配置 * */ const intl = useIntl(); const actionRef = useRef(); const [currentRow, setCurrentRow] = useState(); const access = useAccess(); const [selectedRowsState, setSelectedRows] = useState([]); const handleUpdateModal = ()=>{ if (updateModalOpen) { setCurrentRow(undefined); setUpdateModalOpen(false) } else { setUpdateModalOpen(true) } } const handleCreateModal = ()=>{ if (createModalOpen) { setCurrentRow(undefined) setCreateModalOpen(false) } else { setCreateModalOpen(true) } } const handleColumnDraw = ()=>{ if (showDetail) { setShowDetail(false) } else { setShowDetail(true) } } const handleDestroy = async (selectedRow: API.Department) => { deleteDepartmentDeleteDepartment({id: selectedRow.id}).then(()=>{ message.success(intl.formatMessage({id: 'common.success', defaultMessage: '$$$'})) actionRef.current?.reload() }).catch(()=>{ message.error(intl.formatMessage({id: 'common.error', defaultMessage: '$$$'})) }) }; const columns: ProColumns[] = [ { title: (), dataIndex: "id", sorter: true, render: (dom, entity) => { return ( { setCurrentRow(entity); setShowDetail(true); }} > {dom} ); }, }, { title: (), dataIndex: "name", hideInSearch: true, }, { title: (), dataIndex: "code", hideInSearch: true, }, // { // title: (), // dataIndex: "type", // hideInSearch: true, // render: (_, record)=>{ // if (record.type === 'M') { // return // } else if (record.type === 'C') { // return // } else if (record.type === 'F') { // return // } else { // return - // } // } // }, // { // title: (), // dataIndex: "name", // hideInSearch: true, // }, // { // title: (), // dataIndex: "icon", // hideInSearch: true, // render: (_, record)=>{ // if (record.icon === undefined || record.icon === '') { // return - // } else { // return // } // } // }, { title: (), dataIndex: "sort", hideInSearch: true, }, { title: (), dataIndex: "status", valueEnum: { true: { text: (), status: 'Success' }, false: { text: (), status: 'Error' } }, filters: true, onFilter: true, }, // { // title: (), // dataIndex: "components", // hideInSearch: true, // }, // // // { // title: (), // dataIndex: "path", // hideInSearch: true, // }, { title: , dataIndex: 'option', valueType: 'option', fixed:'right', render: (_, record) => [ { setCreateModalOpen(true); setCurrentRow(record); }} > ), }, { key: 'update', renderDom: ( ), }, { key: 'destroy', renderDom: ( { handleDestroy(record).then(() => {}); }} > ), }, ]} > // // { // setCreateModalOpen(true); // setCurrentRow(record); // }} // > // // // { // setUpdateModalOpen(true); // setCurrentRow(record); // }} // > // // // { // handleDestroy(record).then(() => {}); // }} // > // // // ], },]; return ( headerTitle={intl.formatMessage({ id: 'pages.searchTable.title', defaultMessage: '$$$', })} options={{ fullScreen: true, setting: true, density: true, reload: true }} actionRef={actionRef} rowKey="key" search={{ labelWidth: 'auto', }} pagination={{ showSizeChanger: true, }} columnsState={{ persistenceKey: 'department-list', persistenceType: 'localStorage' }} toolBarRender={() => [ , ]} request={async (params = {}, sort) => { const {current, ...rest} = params const reqParams = { page: current, desc: false, orderKey: "", ...rest, } if (sort && Object.keys(sort).length) { reqParams.orderKey = Object.keys(sort)[0] let sort_select = sort[reqParams.orderKey] reqParams.desc = sort_select === 'descend'; } let resp = await postDepartmentGetDepartmentList({...reqParams}) return { data: resp.data?.list?.map((v: API.Department)=>{ return {...v, key: v.id}}) || [], success: resp.success, total: resp.data.total, current: resp.data.page, pageSize: resp.data.pageSize }; }} columns={columns} rowSelection={{ onChange: (_, selectedRows) => { setSelectedRows(selectedRows); }, }} tableAlertOptionRender={() => { return ( <> {selectedRowsState?.length > 0 && ( { actionRef.current?.reloadAndRest?.(); }} /> )} ); }} /> {/* {selectedRowsState?.length > 0 && ( {' '} {selectedRowsState.length}{' '} } > )} */} ); }; export default DepartmentList;