import PageContent from '@/components/PageContent'; import PageTitle from '@/components/PageTitle'; import { IUserType } from '@/pages/TaskManage/Detail/TaskList/taskList.types'; import SubTitle from '@/pages/TaskManage/components/SubTitle'; import { OrderStatus, OrderType } from '@/pages/TaskManage/constent'; import { getCraftRecordList, getMaintainRecordList, getRepairRecordList, } from '@/services/TaskManage'; import { useLocation } from '@@/exports'; import { connect, useRequest } from '@umijs/max'; import { Col, Row } from 'antd'; import dayjs from 'dayjs'; import { DefaultOptionType } from 'rc-select/es/Select'; import React, { useEffect, useState } from 'react'; import ReactZmage from 'react-zmage'; import styles from './taskOrder.less'; interface IPropsType { userList: IUserType[]; dispatch: (args: { type: string; payload: object }) => {}; } interface IOrderInfo { CreateTime: string; PlanTime: string; RepairTime: string; Reason: string; Repairman: string | IUserType; DispatchMan: string | IUserType; OrderStatus: string | DefaultOptionType; Lubrication?: number; Fasten?: number; RustRemoval?: number; AntiCorrosive?: number; Clean?: number; Check?: number; MandateImages?: any[]; } const TaskOrder: React.FC = (props) => { const { userList, dispatch } = props; const location = useLocation(); const queryParams = new URLSearchParams(location.search); const project_id = Number(queryParams.get('project_id')); const order_id = Number(queryParams.get('order_id')); const order_type = Number(queryParams.get('order_type')); const mandate_class = Number(queryParams.get('mandate_class')); const [orderInfo, setOrderInfo] = useState(); // 根据type请求详情 const { run: getMaintainDetail } = useRequest(getMaintainRecordList, { manual: true, formatResult: (result) => { const temp = result.data.list[0]; const tempDetail = { CreateTime: dayjs(temp.CreateTime).format('YYYY-MM-DD HH:mm'), PlanTime: dayjs(temp.PlanTime).format('YYYY-MM-DD HH:mm'), RepairTime: dayjs(temp.RepairTime).format('YYYY-MM-DD HH:mm') || '-', Reason: temp.Note, Lubrication: temp.Lubrication, Fasten: temp.Fasten, RustRemoval: temp.RustRemoval, AntiCorrosive: temp.Anticorrosive, Clean: temp.Clean, Check: temp.Check, Repairman: userList.find((item) => item.ID === temp.MaintenancePerson) || '-', DispatchMan: userList.find( (item) => (item.ID = temp.Operators[0]?.Operator?.ID), ) || '-', OrderStatus: OrderStatus.find((item) => item.value === temp.Status) || '-', MandateImages: temp?.mandate_images?.length > 0 ? temp.mandate_images.map((item: any) => { console.log(item); if (item.type === 2) { return { src: item.val, }; } return { src: `data:image/png;base64,${item.val}`, }; }) : [], }; setOrderInfo(tempDetail); }, }); // 根据type请求详情 const { run: getRepairDetail } = useRequest(getRepairRecordList, { manual: true, formatResult: (result: any) => { const temp = result.data.list[0]; if (temp === undefined) { return; } const tempDetail: IOrderInfo = { CreateTime: dayjs(temp.CreateTime).format('YYYY-MM-DD HH:mm'), PlanTime: dayjs(temp.PlanTime).format('YYYY-MM-DD HH:mm'), RepairTime: (temp.RepairTime && dayjs(temp.RepairTime).format('YYYY-MM-DD HH:mm')) || '-', Reason: temp.Reason, Repairman: userList.find((item) => item.ID === temp.Repairman) || '-', DispatchMan: userList.find((item) => { item.ID === temp.operator_id; }) || '-', OrderStatus: OrderStatus.find((item) => item.value === temp.AcceptanceStatus) || '-', MandateImages: temp?.mandate_images?.length > 0 ? temp.mandate_images.map((item: any) => { console.log(item); if (item.type === 2) { return { src: item.val, }; } return { src: `data:image/png;base64,${item.val}`, }; }) : [], }; setOrderInfo(tempDetail); }, }); const renderReason = (detail: any) => { const title = detail.match(/^(.*?)(?=\{)/g)[0]; const content = JSON.parse(detail.match(/\{.*\}/g)[0]); console.log(content, title); console.log(Object.values(content)); const result = []; result.push( {title} , ); Object.values(content).forEach((item: any) => { result.push( {item['item_alias'] + ' 现有数值:' + item['old_value'] + ' 建议调整数值' + item['new_value']} , ); }); return result; }; // 根据type请求详情 const { run: getCraftDetail } = useRequest(getCraftRecordList, { manual: true, formatResult: (result) => { const temp = result.data.list[0]; const tempDetail = { CreateTime: dayjs(temp.start_time).format('YYYY-MM-DD HH:mm'), PlanTime: dayjs(temp.plan_end_time).format('YYYY-MM-DD HH:mm'), RepairTime: (temp.actual_end_time && dayjs(temp.actual_end_time).format('YYYY-MM-DD HH:mm')) || '-', Reason: mandate_class !== 2 ? temp.detail : renderReason(temp.detail), Repairman: userList.find((item) => item.ID === temp.checker_id) || '-', DispatchMan: userList.find((item) => item.ID === temp.operator_id) || '-', OrderStatus: OrderStatus.find((item) => item.value === temp.status) || '-', MandateImages: temp?.mandate_images?.length > 0 ? temp.mandate_images.map((item: any) => { console.log(item); if (item.type === 2) { return { src: item.val, }; } return { src: `data:image/png;base64,${item.val}`, }; }) : [], }; setOrderInfo(tempDetail); }, }); useEffect(() => { if (userList.length === 0) { dispatch({ type: 'taskUser/fetchUserList', payload: { project_id }, }); } switch (order_type) { // 工艺 case 1: case 6: getCraftDetail({ project_id, work_id: order_id }); break; // 维修 case 2: getRepairDetail({ project_id, id: order_id }); break; // 保养 case 3: getMaintainDetail({ project_id, id: order_id }); break; } }, []); const image = []; // JSON.parse( // '[{"name":"1694762306412_Screenshot_20230815_180902_uni.UNI7E61B21.jpg","path":"work_order_files/1694762306412_Screenshot_20230815_180902_uni.UNI7E61B21.jpg","created_time":"2023-09-15 15:18:29","url":"https://water-service-test.oss-cn-hangzhou.aliyuncs.com/work_order_files/1694762306412_Screenshot_20230815_180902_uni.UNI7E61B21.jpg"},{"name":"1694762306230_Screenshot_20230815_180907_uni.UNI7E61B21.jpg","path":"work_order_files/1694762306230_Screenshot_20230815_180907_uni.UNI7E61B21.jpg","created_time":"2023-09-15 15:18:29","url":"https://water-service-test.oss-cn-hangzhou.aliyuncs.com/work_order_files/1694762306230_Screenshot_20230815_180907_uni.UNI7E61B21.jpg"}]', // ); return ( 工单详情
{/*// @ts-ignore*/} 工单类型: {OrderType.find((item) => item.value === order_type)?.label || '-'} {/*// @ts-ignore*/} 工单负责人:{orderInfo?.Repairman?.CName || '-'} {/*// @ts-ignore*/} 工单状态:{orderInfo?.OrderStatus?.label} {/*// @ts-ignore*/} 派单人员:{orderInfo?.DispatchMan?.CName} 派单时间:{orderInfo?.CreateTime || '-'} 计划完成时间:{orderInfo?.PlanTime || '-'} 实际完成时间:{orderInfo?.RepairTime || '-'} 工单详情: {orderInfo?.Reason} {orderInfo?.MandateImages?.length > 0 && ( 任务图片: )}
{order_type === 3 && (
是否润滑/加油:{orderInfo?.Lubrication === 1 ? '是' : '否'} 是否拆检:{orderInfo?.Check === 1 ? '是' : '否'} 是否清洁:{orderInfo?.Clean === 1 ? '是' : '否'} 是否紧固:{orderInfo?.Fasten === 1 ? '是' : '否'} 是否除锈:{orderInfo?.AntiCorrosive === 1 ? '是' : '否'} 是否防腐:{orderInfo?.RustRemoval === 1 ? '是' : '否'}
)} {/*
*/} {/* */} {/*
*/} {/* */} {/*
*/} {/*
*/}
); }; export default connect(({ taskUser }: any): { userList: IUserType[] } => { return { userList: taskUser.userList, }; })(TaskOrder);