import * as React from 'react'; import { useState, useMemo, useRef } from 'react'; import DrawerPro from '@/components/DrawerPro'; import AutoTable from '@/components/AutoTable'; import AutoTables from '@/components/AutoTable/mtable'; import PremButton from '@/components/PremButton'; import getcolumns from './columns'; import { useRequest } from 'ahooks'; import { doFetch } from '@/utils/doFetch'; function Order(props) { let actionRef = useRef(), formRef = useRef(); const [drawer, setdrawer] = useState({ open: false, }); const pathconfig = useMemo(() => { let pathconf = getcolumns(setdrawer)?.pathconfig ?? {}; return pathconf; }, []); const { run, loading, runAsync } = useRequest(doFetch, { manual: true, onSuccess: (res, params) => { if (res?.code == '0000') { actionRef?.current?.reload(); setdrawer((s) => ({ ...s, open: false, })); } }, }); const detail = (text, row, _, action) => { return ( { setdrawer((s) => ({ ...s, open: true, item: row, title: '详情', val: 'detail', title: '详细信息', })); }, }} > 详情 ); }; const edit = (text, row, _, action) => { return ( { setdrawer((s) => ({ ...s, open: true, item: row, title: '编辑', val: 'edit', })); }, }} > 编辑 ); }; const remove = (text, row, _, action) => { return ( { run({ url: pathconfig?.delete || '/delete', params: { id: row?.id } }); }, }} btn={{ size: 'small', type: 'danger', }} > 删除 ); }; const order = (text, row, _, action) => { return ( { await runAsync({ url: '/check/umEquipmentCheckTask/meet', params: { id: row?.id } }); }, }} btn={{ size: 'small', }} > 接单 ); }; const close = (text, row, _, action) => { return ( { await runAsync({ url: '/check/umEquipmentCheckTask/shut', params: { id: row?.id } }); }, }} btn={{ size: 'small', type: 'danger', }} > 关单 ); }; const columns = useMemo(() => { let defcolumn = getcolumns(setdrawer)?.columns; return defcolumn.concat({ title: '操作', valueType: 'option', width: 120, render: (text, row, _, action) => [order(text, row, _, action), close(text, row, _, action)], }); }, []); const detailsColumns = useMemo(() => { const columnsc = [ { title: '点检项目', dataIndex: 'checkItem', key: 'checkItem', hideInForm: true, }, { title: '部位', dataIndex: 'checkPosition', key: 'checkPosition', hideInForm: true, }, { title: '点检方法', dataIndex: 'checkWay', key: 'checkWay', hideInForm: true, }, ]; if (drawer?.val == 'detail') { return [ { title: '计划信息', valueType: 'split', }, { title: '点检单号', dataIndex: 'taskNo', key: 'taskNo', }, { title: '创建时间', dataIndex: 'createTime', key: 'createTime', }, { title: '工单状态', dataIndex: 'statusName', key: 'statusName', }, { title: '点检计划单号', dataIndex: 'planNo', key: 'planNo', }, { title: '基本信息', valueType: 'split', }, { title: '设备编号', dataIndex: 'equipmentNo', key: 'equipmentNo', }, { title: '设备名称', dataIndex: 'equipmentName', key: 'equipmentName', }, { title: '设备型号', dataIndex: 'equipmentModelName', key: 'equipmentModelName', }, { title: '点检类型', dataIndex: 'checkTypeName', key: 'checkTypeName', }, { title: '点检截止日期', dataIndex: 'checkCloseDate', key: 'checkCloseDate', span: 2, }, { title: '点检项目', dataIndex: 'item', key: 'item', valueType: 'formList', colProps: { span: 24, }, columns, span: 3, render: (text, row) => { return ( ({ ...it, hideInSearch: true, }))} dataSource={row?.item} /> ); }, }, ]; } }, [drawer?.val, drawer?.item?.id]); return (
点检接单} columns={columns} actionRef={actionRef} path={pathconfig?.list || '/ngic-auth/sysUser/query/page'} pageextra={pathconfig?.enableadd ? 'add' : null} resizeable={false} addconfig={{ // access: 'sysDepartment_save', btn: { disabled: false, onClick: () => { setdrawer((s) => ({ ...s, open: true, item: null, title: '新增', val: 'add', })); }, }, }} /> { setdrawer((s) => ({ ...s, open: false, })); }} {...drawer} onFinish={(vals) => { if (drawer?.val == 'add') { run({ url: pathconfig?.add || '/add', params: { ...vals } }); } else if (drawer?.val == 'edit') { run({ url: pathconfig?.edit || '/edit', params: { ...vals, id: drawer?.item?.id } }); } }} />
); } export default Order;