import { Button, DatePicker, Input, notification, Popconfirm, Select } from 'antd'; import { stringify } from 'qs'; import { useEffect, useRef, useState } from 'react'; import { FormItemPlugin, FormPlugin } from '@/components/FormPlugin'; import { GapBox } from '@/components/GapBox'; import PageContainerPlugin from '@/components/PageContainer/PageContainerPlugin'; import { FooterPagination, HeaderPagination } from '@/components/PaginationPlugin'; import { SearchButton } from '@/components/SearchButton'; import type { ColumnsTypeUltra } from '@/components/TableColumnsFilterPlugin'; import { TablePlugin } from '@/components/TablePlugin'; import { stateObj, stateOptions } from '@/configs/adminDepConfig'; import type { IAjaxDataBase, IParamsBase } from '@/interfaces/common'; import { AdminDepartmentServices } from '@/services/AdminDepartmentServices'; import { useAuthStore } from '@/store/AuthStore'; import { tableFixedByPhone, toArray } from '@/utils/common'; import { useRequest } from '@/utils/useRequest'; import { AdminDepEditModal, type IAdminDepEditModalType } from './components/AdminDepEditModal'; interface IAjaxData extends IAjaxDataBase { data: any[]; } type IParams = IParamsBase & { department_name?: string; nickname?: string; mobile?: string; state?: number; create_dateL?: string; create_dateU?: string; }; /** 组织架构列表页面 */ const DepListForm: React.FC = () => { const auth = useAuthStore().auth; const [params, setParams] = useState({ curr_page: 1, page_count: 20 }); const [ajaxData, setAjaxData] = useState({ count: 0, data: [] }); //const [showMoreSearch, setShowMoreSearch] = useState(false); const AdminDepEditModalRef = useRef(null); const { loading: listLoading, request: listRequest } = useRequest(AdminDepartmentServices.getAdminDepartmentList, { onSuccessCodeZero: (res) => { setAjaxData({ count: res.count || 0, data: toArray(res.data), }); }, }); const { request: deleteAdminDepartmentRequest } = useRequest(AdminDepartmentServices.del, { onSuccessCodeZero: (res) => { if (res.err_code == 0) { notification.success({ message: '删除成功' }); page(params.curr_page); } }, }); const columns: ColumnsTypeUltra = [ { title: '操作', width: 50, fixed: tableFixedByPhone('left'), render: (_, item) => ( {item?.admin_id != localStorage.getItem('admin_id') && ( <> {auth.SF_ADMIN_DEPART_EDIT && ( )} {auth.SF_ADMIN_DEPART_DEL && ( { deleteAdminDepartmentRequest(stringify({ department_id: item.department_id })); }} > )} )} ), }, { title: '组织架构', dataIndex: 'department_name', width: 120 }, { title: '状态', dataIndex: 'state', width: 60, ellipsis: true, render: (value) => stateObj[value] }, { title: '备注', dataIndex: 'comments', width: 120 }, { title: '创建时间', width: window.dfConfig.isPhone ? 160 : 160, dataIndex: 'create_date', ellipsis: true, }, ]; function page(curr: number) { if (!listLoading) { params.curr_page = curr; listRequest(stringify(params)); } } useEffect(() => { page(1); }, []); return ( <> { params.department_name = e.target.value.trim() || undefined; }} onPressEnter={() => page(1)} /> { params.state = value || undefined; setParams({ ...params }); }} /> { params.create_dateL = dates?.[0] || undefined; params.create_dateU = dates?.[1] || undefined; }} /> */} {auth.SF_ADMIN_DEPART_ADD && ( )} { page(1); }} dataSource={ajaxData.data} columns={columns} scroll={{ x: true }} rowKey={'department_id'} /> { params.page_count = pageSize; page(curr); }} /> page(1)} /> ); }; const Dept = () => ( ); export default Dept;