import { queryMandate } from '@/services/SmartOps'; import { UnityAction } from '@/utils/utils'; import { connect, useRequest } from '@umijs/max'; import { Button, Checkbox, Col, ConfigProvider, DatePicker, Divider, Form, Input, Modal, Row, Select, Table, message, } from 'antd'; import dayjs from 'dayjs'; import { useEffect, useState } from 'react'; import { MandateClass, MandateStatus, MandateType, OrderStatus, OrderType, ignoreReason, } from '../constent'; import styles from './MandateDetail.less'; import zhCN from 'antd/es/locale/zh_CN'; const MandateDetail = (props) => { const { projectID, mandateID, userList, ignoreTask, dispatchTask, autoHandleTask, dispatch, } = props; useEffect(() => { if (userList.length === 0) { dispatch({ type: 'taskUser/fetchUserList', payload: { project_id: projectID }, }); } }, []); const [mandateDetail, setMandateDetail] = useState(); const [mandateChild, setMandateChild] = useState([]); const [handledWorkOrder, setHandledWorkOrder] = useState([]); const [ignoreModalOpen, setIgnoreModalOpen] = useState(false); const [autoHandleModalOpen, setAutoHandleModalOpen] = useState(false); const [mandateSelectModalOpen, setMandateSelectModalOpen] = useState(false); const [selectedTask, setSelectedTask] = useState([]); const [dispatchModalOpen, setDispatchModalOpen] = useState(false); const columns = [ { title: '参数', dataIndex: 'Title', }, { title: '调整内容', dataIndex: 'Content', }, ]; const { run: getMandateInfo } = useRequest(queryMandate, { manual: true, formatResult: (result) => { if (result?.data) { const tempMandate = { ...result.data, Status: MandateStatus.find( (item) => item.value === result.data.Status, ), MandateClass: MandateClass.find( (item) => item.value === result.data.MandateClass, ), MandateType: MandateType.find( (item) => item.value === result.data.MandateType, ), ResponsiblePeople: userList.find( (item) => item.ID === result.data.ResponsiblePeople, ), CreateTime: dayjs(result.data.CreateTime).format('YYYY-MM-DD HH:mm'), }; const workOrder = result.data.Records.map((item) => { return { ...item, CreateTime: dayjs(item.CreateTime).format('YYYY-MM-DD HH:mm'), Status: OrderStatus.find((status) => status.value === item.Status), RecordType: OrderType.find( (type) => type.value === item.RecordType, ), Responsible: userList.find((user) => user.ID === item.Responsible), }; }); setMandateDetail(tempMandate); setMandateChild(tempMandate.MandateChild); setHandledWorkOrder(workOrder); } }, }); // 打开指定弹窗 const openSpecifiedModal = (type) => { switch (type) { case 'ignore': setIgnoreModalOpen(true); break; case 'manual': UnityAction.sendMsg('menuItem', '工艺监控'); break; case 'auto': setAutoHandleModalOpen(true); break; case 'dispatch': setMandateSelectModalOpen(true); break; } }; // 忽略 const onIgnoreConfirm = async (reason) => { const result = await ignoreTask(mandateID, reason); if (result) { setIgnoreModalOpen(false); getMandateInfo({ mandate_id: mandateID }); } }; const onAutoHandleConfirm = async (pw) => { const result = await autoHandleTask(pw, mandateDetail); if (result) { setAutoHandleModalOpen(false); getMandateInfo({ mandate_id: mandateID }); } }; const onManualHandleConfirm = () => { console.log('manual handle Confirm'); }; const onMandateSelected = (records) => { // 打开派单Form弹窗将选中的任务进行派遣 if (records?.length === 0) { message.warning('请先选择要派遣的任务'); return; } setSelectedTask(records); setDispatchModalOpen(true); }; const onDispatchConfirm = async (value) => { const params = { ...value, m_id: Number(mandateID), mc_id: selectedTask.join(), plan_end_time: dayjs(value.plan_end_time).format('YYYY-MM-DD HH:mm:ss'), }; if (params.type === 5) { if (params.mc_id.split(',').length > 1) { message.warning('加药工单不可批量派遣'); return; } params.note = `${ mandateChild .find((mandate) => mandate.Id === Number(params.mc_id)) ?.Title?.split(':')[1] + ',请及时加药' }`; } else { params.note = mandateDetail.Summary; } const result = await dispatchTask(params); if (result) { setDispatchModalOpen(false); getMandateInfo({ mandate_id: mandateID }); } }; const openWorkOrderModal = (record) => { UnityAction.sendMsg( 'OpenWorkOrderModal', `order_id=${record.Id}&order_type=${record.RecordType.value}`, ); }; useEffect(() => { getMandateInfo({ mandate_id: mandateID }); }, []); return (