/* 追踪工单 * @Author: Li Hanlin * @Date: 2022-12-02 11:41:03 * @Last Modified by: Li Hanlin * @Last Modified time: 2022-12-07 19:10:04 */ import * as React from 'react'; import { useState, useMemo, useRef } from 'react'; import DrawerPro from '@/components/DrawerPro'; import AutoTable from '@/components/AutoTable'; import PremButton from '@/components/PremButton'; import getcolumns from './columns'; import { useRequest } from 'ahooks'; import { doFetch } from '@/utils/doFetch'; import Addform from '@/components/Addform'; import { Menu, Dropdown, Button, message } from 'antd'; import InitForm from '@/components/InitForm'; function Failure(props) { const actionRef = useRef(), containderef = useRef(), formRef = useRef(); const [drawer, setdrawer] = useState({ open: false, }), [activeTabKey, setactiveTabKey] = useState('1'); const { run, loading } = 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 Reassig = () => { return ( <> { let params = { trackAssistList: vals?.trackAssistList.map((it) => ({ assistUserId: it })), id: drawer?.item?.id, }; let res = await doFetch({ url: '/repair/umTrackOrder/againTrack', params, }); if (res.code === '0000') { message.success('重新指派成功!'); setdrawer((s) => ({ ...s, open: false, })); actionRef.current.reload(); } }} {...drawer} /> ); }; // 追踪 const TrackForm = () => { return ( <> { let params = { trackTraceinfo: vals, id: drawer?.item?.id, }; let res = await doFetch({ url: '/repair/umTrackOrder/trackById', params, }); if (res.code === '0000') { message.success('成功完成追踪!'); setdrawer((s) => ({ ...s, open: false, })); actionRef.current.reload(); } }} {...drawer} /> ); }; // 验证 const CheckForm = () => { return ( <> { let params = { trackProcess: { reviewerResult: vals.reviewerResult, remark: vals.remark, }, id: drawer?.item?.id, }; let res = await doFetch({ url: '/repair/umTrackOrder/verification', params, }); if (res.code === '0000') { message.success('验证成功!'); setdrawer((s) => ({ ...s, open: false, })); actionRef.current.reload(); } }} {...drawer} /> ); }; const remove = (text, row, _, action) => { return ( { run({ url: pathconfig?.delete || '/delete', params: { id: row?.id } }); }, }} btn={{ size: 'small', type: 'danger', }} > 删除 ); }; // 更多 const more = (text, row, _, action) => { const menu = ( { let params = { id: row?.id, }; let res = await doFetch({ url: '/repair/umTrackOrder/orderReceiving', params, }); if (res.code === '0000') { message.success('接单成功!'); setdrawer((s) => ({ ...s, open: false, })); actionRef.current.reload(); } }} > 接单 ) : ( { let params = { id: row?.id, }; let res = await doFetch({ url: '/repair/umTrackOrder/dispatchById', params, }); if (res.code === '0000') { message.success('派单成功!'); setdrawer((s) => ({ ...s, open: false, })); actionRef.current.reload(); } }} > 派单 ), key: '0', // disabled: true, }, { label: ( { setdrawer((s) => ({ ...s, open: true, type: 'track', item: { id: row.id, }, detailpath: '/repair/umTrackTraceinfo/queryByTrackOrderId', params: { trackOrderId: row?.id }, val: 'only', title: '追踪信息', })); }} > 追踪 ), key: '1', }, { label: ( { setdrawer((s) => ({ ...s, open: true, val: 'only', title: '验证', detailpath: '/repair/umTrackTraceinfo/queryByTrackOrderId', params: { trackOrderId: row?.id }, type: 'check', })); }} > 验证 ), key: '2', }, ]} /> ); return ( containderef.current} > ); }; // 未完成按钮 const unfinishBtn = (text, row, _, action) => { if (row?.status == 1 || row?.status == 2) { return ( { run({ url: pathconfig?.delete || '/delete', params: { id: row?.id } }); }, }} btn={{ size: 'small', type: 'danger', }} > 删除 ); } else if (row?.status == 3) { return ( { setdrawer((s) => ({ ...s, item: row, type: 'Reassig', open: true, val: 'only', })); console.log(drawer); }, }} > 重新指派 ); } }; const columns = useMemo(() => { let defcolumn = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.columns; console.log(defcolumn); let defpath = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.pathconfig ?? {}; if (activeTabKey == '1') { return defcolumn.concat({ title: '操作', valueType: 'option', width: 150, render: (text, row, _, action) => { return [more(text, row, _, action)]; }, }); } else if (activeTabKey == '2') { return defcolumn.concat({ title: '操作', valueType: 'option', width: 150, render: (text, row, _, action) => { return [unfinishBtn(text, row, _, action)]; }, }); } else if (activeTabKey == '3') { return defcolumn; } }, [activeTabKey]); const pathconfig = useMemo(() => { let defpath = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.pathconfig ?? {}; return defpath; }, [activeTabKey]); const selectType = (type) => { switch (type) { case 'add': return ( ); case 'track': return ; case 'check': return ; case 'Reassig': return ; default: break; } }; return (
追踪工单} columns={columns} path={pathconfig?.list || '/ngic-auth/sysUser/query/page'} actionRef={actionRef} pageextra={pathconfig?.enableadd ? 'add' : null} resizeable={false} addconfig={{ // access: 'sysDepartment_save', btn: { disabled: false, type: 'primary', onClick: () => { setdrawer((s) => ({ ...s, open: true, item: { isShutdown: 1, }, title: '新建追踪工单', val: 'only', type: 'add', })); }, }, }} tabList={getcolumns()} activeTabKey={activeTabKey} onTabChange={(key) => { setactiveTabKey(key); }} /> { 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 } }); } }} > {selectType(drawer?.type)}
); } export default Failure;