import { useFormReset } from "@/hooks/useFormReset"; import TemplateContainer from "@/pages/TemplateContainer"; import { DeactivationMachine, MachinePermanent, QueryMachineList } from "@/services/services/machine"; import { FormatDate } from "@/util/time"; import { useAccess, useModel } from "@umijs/max"; import { Button, Form, Input, message, Modal, Select, SelectProps, Spin, Table, Tag } from "antd"; import { ColumnsType, TablePaginationConfig } from "antd/es/table"; import { FilterValue, SorterResult, TableCurrentDataSource } from "antd/es/table/interface"; import { delay, set } from "lodash"; import { useEffect, useState } from "react"; import ModifyMachine from "../ModifyMachine"; import { PlusOutlined } from "@ant-design/icons"; import AddMachineForm from "../AddMachineForm"; const MachineManagement: React.FC = () => { const { initialState } = useModel('@@initialState'); const [data, setData] = useState(); // 数据 const [messageApi, messageHolder] = message.useMessage(); const [form] = Form.useForm(); const access = useAccess(); const { setFormRef, resetForm } = useFormReset(); const [tableParams, setTableParams] = useState({ pagination: { current: 1, pageSize: 10, showQuickJumper: true, totalBoundaryShowSizeChanger: true, }, }); const [id, setId] = useState(''); const [loading, setLoading] = useState(true); const [openModal, setOpenModal] = useState(false); const [openAddModal, setOpenAddModal] = useState(false); const [spinning, setSpinning] = useState(false); const [spinTip, setSpinTip] = useState(''); useEffect(() => { QueryMachineList(tableParams, form.getFieldsValue()) .then((res) => { setData(res.collection); setTableParams({ pagination: { ...tableParams.pagination, total: res.total } }) setLoading(false); }) .catch((error: any) => { messageApi.error(error.message); }) .finally(() => { setLoading(false); }) }, []); async function SetMachinePermanent(id: string): Promise { setSpinning(true); setSpinTip('正在设置为永久。。。'); try { // await MachinePermanent(id); messageApi.success('设置为永久成功'); setSpinning(false); // 重新加载数据 await QueryMachineBasic(form.getFieldsValue(), tableParams.pagination); } catch (error: any) { messageApi.error(error.message); } finally { setSpinning(false); } } async function ChangeDeactivationMachine(id: string): Promise { setSpinning(true); setSpinTip('正在停用。。。'); try { await DeactivationMachine(id); messageApi.success('停用成功'); setSpinning(false); // 重新加载数据 await QueryMachineBasic(form.getFieldsValue(), tableParams.pagination); } catch (error: any) { messageApi.error(error.message); } finally { setSpinning(false); } } async function QueryMachineBasic(params: MachineModel.QueryUMachineParams | null, pagination: TablePaginationConfig | null): Promise { setLoading(true); try { let tableParamsParams = pagination ? { pagination } : tableParams; let res = await QueryMachineList(tableParamsParams, params ?? form.getFieldsValue()); setData(res.collection); setTableParams({ pagination: { ...tableParams.pagination, total: res.total } }) } catch (error: any) { message.error(error.message); } finally { setLoading(false); } } async function handleTableChange(pagination: TablePaginationConfig, filters: Record, sorter: SorterResult | SorterResult[], extra: TableCurrentDataSource): Promise { setLoading(true); try { let queryUser = await QueryMachineList({ pagination }, form.getFieldsValue()); setData(queryUser.collection); setTableParams({ pagination: { ...pagination, total: queryUser.total } }) } catch (error: any) { message.error(error.message); } finally { setLoading(false); } } async function modalCancel(): Promise { setOpenModal(false); setOpenAddModal(false); resetForm(); setId(''); // 这边调用加载数据的方法 await QueryMachineBasic(null, null); } async function QueryMachineListByCondition(values: any): Promise { await QueryMachineBasic(values, null); } const columns: ColumnsType = [ { title: 'ID', dataIndex: 'machineId', }, { title: '创建人', dataIndex: 'createId', width: '100px', }, { title: '修改人', dataIndex: 'updateId', width: '100px', }, { title: '所属人', dataIndex: 'userID', width: '100px', }, { title: '创建时间', dataIndex: 'createTime', render: (text) => FormatDate(text), width: '160px', }, { title: '使用状态', dataIndex: 'useStatus', render: (text, record) => {record.useStatus === 1 ? '永久' : '试用'}, width: '100px', }, { title: '状态', dataIndex: 'status', render: (text, record) => {record.status === 1 ? '激活' : '冻结'}, width: '100px', }, { title: '停用时间', dataIndex: 'deactivationTime', render: (text) => FormatDate(text), width: '160px', }, { title: '备注', dataIndex: 'remark', }, { title: '操作', width: '200px', render: (text, record) => (
), }, ]; return (
label="机器码" name='machineId' style={{ marginBottom: 5 }}> { access.isAdminOrSuperAdmin ? label="创建用户名" name='createdUserName' style={{ marginBottom: 5 }}> : null } { access.isAdminOrSuperAdmin ? label="所属用户名" name='ownUserName' style={{ marginBottom: 5 }}> : null } label="状态" name='status' style={{ marginBottom: 5 }}> label="使用状态" name='useStatus' style={{ marginBottom: 5 }}> label="备注" name='remark' style={{ marginBottom: 5 }}> columns={columns} rowKey={(record) => record.id} dataSource={data} pagination={tableParams.pagination} loading={loading} onChange={handleTableChange} />
{messageHolder}
); }; export default MachineManagement;