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 './components/UpdateForm'; import CreateForm from "./components/CreateForm"; import SetPermissionForm from "./components/SetPermissionForm"; import {ColumnDrawer} from "./components/ColumnDrawer"; import {postRoleGetRoleList} from "@/services/system/Role"; // 列表操作栏组件 import TableActionCard from '@/components/TableActionCard'; import IsDelete from '@/components/TableActionCard/isDelete'; // 批量删除 import IsBatchDelete from '@/components/BatchOperation/isBatchDelete'; const RoleList: 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 access = useAccess(); const intl = useIntl(); const actionRef = useRef(); const [currentRow, setCurrentRow] = useState(); const [selectedRowsState, setSelectedRows] = useState([]); const [setPermissionModalOpen, setSetPermissionModalOpen] = useState(false); const handleUpdateModal = () => { if (updateModalOpen) { setUpdateModalOpen(false) setCurrentRow(undefined) } else { setUpdateModalOpen(true) } } const handleSetPermissionModal = () => { if (setPermissionModalOpen) { setSetPermissionModalOpen(false) setCurrentRow(undefined) } else { setSetPermissionModalOpen(true) } } const handleCreateModal = () => { if (createModalOpen) { setCreateModalOpen(false) setCurrentRow(undefined) } else { setCreateModalOpen(true) } } const handleColumnDrawer = () => { if (showDetail) { setShowDetail(false) setCurrentRow(undefined) } else { setShowDetail(true) } } const handleDestroy = async (selectedRow: API.Role) => { // postRoleDeleteRole(selectedRow).then(() => { // message.success(intl.formatMessage({id: 'common.success', defaultMessage: '$$$'})) // actionRef.current?.reload() // }).catch(() => { // message.error(intl.formatMessage({id: 'common.failure', defaultMessage: '$$$'})) // }) }; const columns: ProColumns[] = [ { title: (), dataIndex: "id", sorter: true, // valueType: "digit", filters: true, onFilter: true, render: (dom, entity) => { return ( { setCurrentRow(entity); setShowDetail(true); }} > {dom} ); }, }, { sorter: true, title: (), dataIndex: "name", hideInSearch: true, }, { title: (), dataIndex: "code", hideInSearch: true, }, { title: (), dataIndex: "sort", hideInSearch: true, }, { title: (), dataIndex: "status", valueEnum: { true: { text: (), status: 'Success' }, false: { text: (), status: 'Error' } }, filters: true, onFilter: true, }, { title: , dataIndex: 'option', valueType: 'option', fixed: 'right', render: (_, record) => [ { setUpdateModalOpen(true); setCurrentRow(record); }} > ), }, { key: 'set_permissions', renderDom: ( ), }, { key: 'destroy', renderDom: ( { handleDestroy(record).then(() => {}); }} > ), }, ]} > // // { // setUpdateModalOpen(true); // setCurrentRow(record); // }} // > // // // { // setSetPermissionModalOpen(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, pageSize: 10, }} columnsState={{ persistenceKey: 'api_list', persistenceType: 'localStorage' }} toolBarRender={() => [ ]} request={async (params = {}, sort) => { const {current, ...rest} = params const reqParams = { page: current, desc: false, orderKey: "", ...rest, } if ('status' in reqParams){ reqParams.status = reqParams.status === 'true' } 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 postRoleGetRoleList({...reqParams}) return { data: resp.data.list.map((v: API.Role)=>{ 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 && ( { const ids = selectedRowsState.map((v: API.Role) => { return v.id }) // deleteRoleDeleteRolesByIds({ids: ids as number[]}).then(() => { // actionRef.current?.reloadAndRest?.(); // }) }} /> )} ); }} /> {selectedRowsState?.length > 0 && ( {' '} {selectedRowsState.length}{' '} } > )} ); }; export default RoleList;