/* * @Author: Sakura * @LastEditors: Sakura * @Date: 2024-02-28 9:55:04 * @Description: 计划任务 ---- 机台任务 */ import React, { useEffect, useRef, useState } from "react"; import moment from "moment"; import { Carousel, Col, Row, Button, Input, Modal, Space, Dropdown, message, Tooltip } from "antd"; import { SettingTwoTone } from "@ant-design/icons"; import * as commonFunc from "@/components/Common/commonFunc"; import * as commonUtils from "@/utils/utils"; import * as commonConfig from "@/utils/config"; import * as commonBusiness from "@/components/Common/commonBusiness"; import * as commonServices from "@/services/services"; import useCommonBase from "@/components/Common/CommonHooks/useCommonBase"; import StaticEditTable from "@/components/Common/CommonTable"; import CommonViewTable from "@/components/Common/CommonViewTable"; import styles from "./index.less"; import taskInfoIcon from "../assets/taskInfo2.png"; import statusIcon from "../assets/status.png"; import taskIcon from "../assets/task.png"; import timeIcon from "../assets/time.png"; import { handleOeeBtnEent } from "./common/handlePause"; import { operationFetch } from "../../productionExec/productionExecMain/operationFetch"; // 业务层 const useInfoEvent = props => { const { formData } = props; const [refreshCount, setRefreshCount] = useState(0); useEffect( async () => { if (commonUtils.isNotEmptyArr(formData)) { const colunmData = handleGetColumnData(formData, true); const result = await handleGetData(formData, true); const addState = { ...colunmData, ...result }; props.onSaveState(addState); } }, [formData, refreshCount] ); // 获取表头数据 const handleGetColumnData = (formData = [], isWait) => { let addState = {}; for (let i = 0; i < formData.length; i++) { const config = formData[i]; const column = commonFunc.getHeaderConfig(config); addState = { ...addState, [`slave${i}Column`]: column, [`slave${i}Config`]: config }; } if (isWait) { return addState; } else { props.onSaveState(addState); } }; // 获取数据集 const handleGetData = async (formData = [], isWait, filter) => { let addState = {}; for (let i = 0; i < formData.length; i++) { const config = formData[i]; if (!config) continue; const conditonValues = props.onGetSqlConditionValues(config); if (config.sSqlStr === "Sp_OEE_ProductionReport") { conditonValues.sMachineId_s_pro = props.app.sMachineNameSId; } // 前期生产或反馈问题表必须有非空过滤条件 if ( (i === 1 && Object.values(conditonValues).includes("")) || Object.values(conditonValues).includes(undefined) ) { continue; } const bFilter = []; if (filter) { Object.keys(filter).forEach(key => { bFilter.push({ bFilterName: key, bFilterCondition: "like", bFilterValue: filter[key] }); }); } const result = (await props.onGetDataSet({ name: `slave${i}`, configData: config, condition: { bFilter, sSqlCondition: { ...conditonValues } }, isWait: true })) || {}; props.setTempRef(result); addState = { ...addState, ...result }; } props.setTempRef({}, true); if (isWait) { return addState; } else { props.onSaveState(addState); } }; // 查询 const handleSearch = sWorkOrderNo => { handleGetData([formData[0]], false, { sWorkOrderNo }); }; // 开工事件 const handleStartWork = async params => { const { sModelsId, token, app } = props; const { name, record, config, tableData, iFlag, pauseValue } = params; const { sMachineId, sId, sSlaveId } = record; // /* 若设置了禁止跳单 选择数据不是第一条时进行提示 */ // const iIndex = app.systemData.findIndex(item => item.sName === "CkxNoSkip"); // if (iIndex > -1) { // const sValue = app.systemData[iIndex].sValue; // if (sValue === "1") { // /* 如果设置了进制跳单 */ // const indexFirst = tableData.findIndex( // item => sId === item.sId || sSlaveId === item.sSlaveId // ); // if (indexFirst > 0) { // message.warn("禁止跳单!"); // return; // } // } // } // // 验证是否单据是否被使用 // const dataUrl = `${ // commonConfig.server_host // }bill/billCopyToCheckWork?sModelsId=${sModelsId}`; // const values = { sMachineId }; // const dataReturn = (await commonServices.postValueService( // token, // values, // dataUrl // )).data; // if (dataReturn.code !== 1) { // props.getServiceError(dataReturn); // return; // } // 单据可以使用 const { startWorkConfig = {} } = config; const { sAssignField } = startWorkConfig; const allTableData = { [name]: record }; let rowData = commonFunc.getDefaultData(config, allTableData); // 取默认值 rowData = { ...rowData, ...commonFunc.getAssignFieldValue(sAssignField, record, allTableData), handleType: "add", sId: commonUtils.createSid(), sTeamId: app.sTeamNameSId, sMachineId: app.sMachineNameSId, sParentId: record.sId, tCreateDate: new Date() }; const valuesNew = {}; valuesNew.data = []; valuesNew.data.push( commonBusiness.mergeData(name, "plc_machinedata", [rowData], []) ); if ((iFlag || Object.is(iFlag, 0)) && valuesNew.data[0]) { valuesNew.data[0].iFlag = iFlag; } if (pauseValue) { valuesNew.data[0].sWorkOrderChangeMemo = pauseValue; } const BtnSave = commonFunc.showMessage( app.commonConst, "BtnSave" ); /* 保存 */ params.optName = BtnSave; params.sClientType = "1"; const returnData = await commonBusiness.saveData({ token, value: valuesNew, sModelsId, bMachineTask: true }); return returnData; // if (commonUtils.isEmptyObject(returnData)) return; // props.onSaveState( // { // [`${name}SelectedRowKeys`]: [record.sId] // }, // () => { // props.dispatch({ // type: "app/saveGlobalData", // payload: { // currentStartWorkMachineTaskDataRow: rowData // } // }); // handleRefresh(); // setTimeout(() => { // props.onChangeRouter({ // type: "name", // path: ["生产执行", "生产执行"] // }); // }, 500); // } // ); // this.props.onSaveCurrentState(slaveData, true, undefined, undefined, 1); }; // 更新工单状态 const handleUpdateStatus = async params => { const { doWorkState, record } = params; const { sModelsId, app } = props; const value = { plcMachinedata: record }; const url = `${ commonConfig.server_host }oee/doUpdateStatus/${doWorkState}?sModelsId=${sModelsId}&sMachineId=${ record.sMachineId }`; const returnData = (await commonServices.postValueService( app.token, value, url )).data; if (returnData.code !== 1) { props.getServiceError(returnData); return false; } return true; }; // 监听机台任务选中行变化 const { slave0SelectedRowKeys = [], slave0Data = [], sModelsId } = props; useEffect( () => { if (!slave0Data.length) return; const globalData = commonUtils.convertStrToObj( localStorage.xlybusinessglobalData ); const { currentSelectedMachineTaskDataRow = {} } = globalData; // 当前选中行sId,默认取缓存数据 let currentSelectedRowKey = slave0SelectedRowKeys[0]; if ( !currentSelectedRowKey && sModelsId === currentSelectedMachineTaskDataRow?.sModelsId ) { currentSelectedRowKey = currentSelectedMachineTaskDataRow.sId; } if (!currentSelectedRowKey) { currentSelectedRowKey = slave0Data[0].sId; } // 默认选中第一行 if (!slave0SelectedRowKeys.length) { props.onSaveState({ slave0SelectedRowKeys: [currentSelectedRowKey] }); } // 将当前选中行保存到全局 props.dispatch({ type: "app/saveGlobalData", payload: { currentSelectedMachineTaskDataRow: { ...(slave0Data.find(item => item.sId === currentSelectedRowKey) || {}), sModelsId } } }); // 前期生产或反馈问题数据根据机台任务选中行变化 handleGetData(["", formData[1]], false); }, [slave0SelectedRowKeys[0], slave0Data.length] ); // 监听开工任务变化 useEffect( () => { if (commonUtils.isEmptyObject(props.slave0Data)) return; const startRowData = props.slave0Data.find(item => item.iStar === 1); if (!startRowData) return; props.dispatch({ type: "app/saveGlobalData", payload: { currentStartWorkMachineTaskDataRow: startRowData } }); }, [JSON.stringify(props.slave0Data)] ); // 刷新页面 const handleRefresh = () => { setRefreshCount(pre => pre + 1); }; const itemClickRef = useRef(); const finishConstruction = commonFunc.showLocalMessage(props, 'finishConstruction', '完工'); const confirmCompletion = commonFunc.showLocalMessage(props, 'confirmCompletion', '确认完工'); const FriendlyReminder = commonFunc.showLocalMessage(props, 'FriendlyReminder', '温馨提示'); const btnSure = commonFunc.showLocalMessage(props, 'BtnSure', '确认'); const btnCancel = commonFunc.showLocalMessage(props, 'BtnCancel', '取消'); const pause = commonFunc.showLocalMessage(props, 'pause', '暂停'); const pausingReason = commonFunc.showLocalMessage(props, 'pausingReason', '请选择暂停原因'); const sLanguage = props?.app?.userinfo?.sLanguage ; // 开工、暂停事件 const handleTableBtnClick = async item => { const { tableName, index, record, tableData, config, iFlag } = item; const { showName, sChinese } = config; if (sChinese === "完工" || showName === 'Complete') { Modal.confirm({ title: FriendlyReminder, content:
{confirmCompletion}?
, okText: btnSure, cancelText: btnCancel, onOk() { handleUpdateProductionplan({ item, iFlag: 4 }); } }); return; } // const iStar = index === 0 ? 1 : 2; const { iStar } = record; if (iStar === 1) { // 如果只剩一条数据,询问是暂停还是完工 if (tableData.length === 1) { const result = await new Promise(resolve => { Modal.confirm({ title: FriendlyReminder, content:
{sLanguage === "sEnglish" ? "Please select the status you want to change" : "请选择要变更的状态"}
, okText: finishConstruction, cancelText: pause, onOk() { resolve(true); }, onCancel() { resolve(false); } }); }); if (result) { // 走完工接口 handleUpdateProductionplan({ item, iFlag: 4 }); return; } } // 开工中,走暂停接口 props.onSaveState({ taskConfirmModalVisible: true, taskConfirmModalMsg: pausingReason, tempTaskId: record.sId, bPauseOnly: true, pauseCallback: pauseValue => { props.onSaveState({ taskConfirmModalVisible: false, taskConfirmModalMsg: "", tempTaskId: "", bPauseOnly: false, pauseCallback: null }); handleUpdateProductionplan({ item, iFlag: 3, pauseValue }); } }); } else if (iStar === 2 || iStar === 3) { // 暂停中,走开工接口 const dataReturn = await handleStartWork(item); const { code, msg } = dataReturn; if (code === 1) { // 成功开工 itemClickRef.current = null; message.success(dataReturn.msg); if (props.taskConfirmModalVisible) { props.onSaveState({ taskConfirmModalVisible: false, taskConfirmModalMsg: "", tempTaskId: "" }); } if(sLanguage ==='sEnglish') { props.onChangeRouter({ type: "name", path: ["Production Execution", "Production Execution"] }); }else { props.onChangeRouter({ type: "name", path: ["生产执行", "生产执行"] }); } } else if (code === -7) { // 如果有开工中的任务,即接口返回-7,弹出确认窗体 itemClickRef.current = { data: item }; props.onSaveState({ taskConfirmModalVisible: true, taskConfirmModalMsg: msg, tempTaskId: record.sId }); } else { // 报错 message.error(msg); } } }; // 更新机台状态 const handleUpdateProductionplan = async ({ item, iFlag, pauseValue }) => { const { app } = props; const { sId } = item.record; const { token } = app; const url = `${ commonConfig.server_host }oee/updateProductionplan/${sId}/${iFlag}${ pauseValue ? `?sWorkOrderChangeMemo=${encodeURIComponent(pauseValue)}` : "" }`; const dataReturn = (await commonServices.getService(token, url)).data; if (dataReturn.code === 1) { dataReturn.msg && message.success(dataReturn.msg, 3); handleRefresh(); } else { message.error(dataReturn.msg, 3); } }; return { ...props, // 其他对象 itemClickRef, onSearch: handleSearch, onStartWork: handleStartWork, // 开工事件 onRefresh: handleRefresh, // 刷新页面 onTableBtnClick: handleTableBtnClick, // 开工、暂停事件 onUpdateProductionplan: handleUpdateProductionplan // 更新机台状态 }; }; /** * 暂停按钮 * @param {*} params */ const handlePause = async params => { const { item, props } = params; const { record, config } = item; await operationFetch( { ...props, workOrderInfoData: [record] }, config, config.sName || "fileError" ); await handleOeeBtnEent({ props, item }); }; const MachineTasks = baseProps => { const props = useInfoEvent(useCommonBase({ ...baseProps })); const { app, slave0Config, slave1Column, slave1Data = [], slave2Column, slave2Data = [] } = props; const bStartWork = commonUtils.getAppData("userinfo", "bStartWork"); const [isTableLoading, setTableLoading] = useState(false); // const BtnTableCopyTo.startWork // 开工按钮配置 const startWorkConfig = slave0Config?.gdsconfigformslave?.find( item => item.sControlName === "BtnTableCopyTo.startWork" ) || {}; const pauseWorkConfig = slave0Config?.gdsconfigformslave?.find( item => item.sControlName === "BtnTableCopyTo.pauseWork" ) || {}; const beginConstruction = commonFunc.showLocalMessage(props, 'beginConstruction', '开工'); const finishConstruction = commonFunc.showLocalMessage(props, 'finishConstruction', '完工'); const pause = commonFunc.showLocalMessage(props, 'pause', '暂停'); // 表格业务 const [sSrcNo, setSSrcNo] = useState(""); // 顶部表格配置 const tableProps = { ...commonBusiness.getTableTypes("slave0", props), tableProps: { onChange: () => {}, loading: isTableLoading }, tableBtnsConfig: params => { const { record, index } = params; const { iStar } = record; // const iStar = index === 0 ? 1 : 2; // const bStart = iStar === 1; // const bPause = iStar === 2; // 1 :开工状态(显示暂停) 2: 暂停状态(显示开工) 3: 完工状态(显示完工,灰色) // 开工:开工接口(现在)1:正常, -7:有开工,要有提示, -1: 错误提示 // -7 :完工: iFlag:3 (完工上一条) 暂停:iFlag:2 (暂停上一条) // 暂停:新接口 let showName, btnBgColor, sDefault; if (iStar === 1) { showName = pause; btnBgColor = "#FAAD14"; } else if (iStar === 2 || iStar === 3) { showName = beginConstruction; btnBgColor = "#1890FF"; } else { showName = finishConstruction; btnBgColor = "#AAA"; sDefault = "${false}"; } if (!bStartWork) { sDefault = "${false}"; } return [ { showName, btnBgColor, sDefault, startWorkConfig, pauseWorkConfig }, { showName: finishConstruction, btnBgColor: "#1890FF", sDefault } ]; // return [ // { // ...startWorkConfig, // showName: "开工", // btnBgColor: bStart ? "#1890FF" : "#AAA" // }, // { // ...pauseWorkConfig, // showName: "暂停", // btnBgColor: bPause ? "#FAAD14" : "#AAA" // } // ]; }, onTableBtnClick: item => { props.onTableBtnClick(item); return; // 通用按钮操作 // props.onTableBtnClick(item); const { tableName, index, record, tableData, config } = item; const { iStar } = record; const { showName } = config; if (iStar === 1 && showName === "开工") { setTableLoading(true); props.onStartWork(item).finally(() => { setTableLoading(false); }); } else if (iStar === 2 && showName === "暂停") { setTableLoading(true); handlePause({ item, props }).finally(() => { setTableLoading(false); props.onRefresh(); }); } }, tableBtnsWidth: "190px", fixedHeight: "335px" }; // 全部按钮事件 const tableAll = () => { setSSrcNo(""); props.onSearch(); }; // 查询按钮事件 const tableQuery = () => { props.onSearch(sSrcNo); }; // 前期生产或反馈问题业务 const [issueType, setIssueType] = useState(4); const issueObj = slave1Column?.reduce((acc, item) => { const chineseKey = item.title.replace(/[0-9]/g, ""); if (acc[chineseKey]) { acc[chineseKey].push(item); } else { acc[chineseKey] = [item]; } return acc; }, {}); let issue = []; if (issueObj) { issue = Object.keys(issueObj)?.map((key, i) => { return { name: key, items: issueObj[key], id: i }; }); } const component = id => { if (issue?.length > 0) { return (
{issue[id].items.map(item => (

{item.title}: {slave1Data[0] ? ( {slave1Data[0][item.dataIndex]} } > {slave1Data[0][item.dataIndex]} ) : ( "" )}

))}
); } }; const NoAnnouncements = commonFunc.showLocalMessage(props, 'NoAnnouncements', '暂无通告'); const [carouselData, setCarouselData] = useState([ { title: NoAnnouncements, content: NoAnnouncements, id: 999 } ]); const { slave3Data = [] } = props; useEffect( () => { if (!slave3Data.length) return; const tempData = slave3Data.map((item, index) => ({ title: `车间通告${index + 1}`, content: item.sNoticeMemo, id: index })); setCarouselData(tempData); }, [slave3Data.length] ); // 设备信息业务 const slave2OneData = slave2Data[0] || {}; const { countMapJsON } = slave2OneData; const countMap = commonUtils.convertStrToObj(countMapJsON); const taskInfoData = {}; slave2Column?.forEach(obj => { taskInfoData[`${obj.dataIndex}Title`] = obj.title; taskInfoData[`${obj.dataIndex}Conent`] = countMap[obj.dataIndex]; }); const feedbackIssues = commonFunc.showLocalMessage(props, 'feedbackIssues', '前期生产或反馈问题'); const btnsearch = commonFunc.showLocalMessage(props, 'BtnSearch', '查询'); const btnAll = 111111; const sWorkOrderNo = commonFunc.showLocalMessage(props, 'sWorkOrderNo', '工单编号'); const deviceInfo = commonFunc.showLocalMessage(props, 'deviceInfo', '设备信息'); const TasksQty = commonFunc.showLocalMessage(props, 'TasksQty', '今日完成任务批次/产量(个)'); return (
setSSrcNo(e.target.value)} />

{feedbackIssues}

{issue?.map(item => ( ))} {component(issueType)}
{carouselData.map(item => (

{item.title}

{item.content}

))}

{deviceInfo}

{taskInfoData.sMachineNameTitle}

{taskInfoData.sMachineNameTitle}:

{taskInfoData.sMachineNameConent}

{taskInfoData.sStatusNameTitle}

{taskInfoData.sStatusNameTitle}:

{taskInfoData.sStatusNameConent}

{taskInfoData.tStartingUpTimeTitle}

{taskInfoData.tStartingUpTimeTitle}:

{taskInfoData.tStartingUpTimeConent}

{taskInfoData.tNorRunTimeTitle}:

{taskInfoData.tNorRunTimeConent}

{taskInfoData.tExeWaitTimeTitle}:

{taskInfoData.tExeWaitTimeConent}

{taskInfoData.tNorWaitTimeTitle}:

{taskInfoData.tNorWaitTimeConent}

{taskInfoData.tMaintenceTimeTitle}:

{taskInfoData.tMaintenceTimeConent}
{taskInfoData.tStartingUpTimeTitle}

{TasksQty}:

{taskInfoData.iFinishTaskBatchConent} /{" "} {taskInfoData.iFinishProductionNumConent}

); }; const TaskConfirmModal = props => { const { taskConfirmModalVisible, taskConfirmModalMsg, bPauseOnly, slave0Config } = props; if (!taskConfirmModalVisible) return ""; const handleClose = () => { props.itemClickRef.current = null; props.onSaveState({ taskConfirmModalVisible: false, bPauseOnly: false, pauseCallback: null }); }; const [pauseValue, setPauseValue] = useState(""); const viewConfigs = slave0Config?.gdsconfigformslave.filter( item => item.sName === "sPausereason" ); const sIdRef = useRef(commonUtils.createSid()); const viewProps = { ...props, viewConfigs, tableConfig: { ...slave0Config, gdsconfigformslave: viewConfigs }, iColValueView: 24, viewRow: { sId: sIdRef.current, sPausereason: pauseValue }, tableName: "slave0", enabled: true, onDataChange: (...args) => { setPauseValue(args[2].sPausereason); } }; const prompt = commonFunc.showLocalMessage(props, 'prompt', '提示'); const pause = commonFunc.showLocalMessage(props, 'pause', '提示'); const finishConstruction = commonFunc.showLocalMessage(props, 'finishConstruction', '完工'); const choosePauseReason = commonFunc.showLocalMessage(props, 'choosePauseReason', '请先选择暂停原因'); return ( {prompt}} open={taskConfirmModalVisible} width={500} height={320} className="mesCommonModal" footer={ <> {bPauseOnly ? ( ) : ( )} } onCancel={handleClose} >
{taskConfirmModalMsg}
{/*
暂停原因
*/} {/* setPauseValue(e.target.value)} /> */}
); }; // 全屏状态 const StatusBtnComponent = ({props}) => { const test = commonFunc.showLocalMessage(props, 'test', '测试'); const switchProduction = commonFunc.showLocalMessage(props, 'switchProduction', '转111产'); const maintain = commonFunc.showLocalMessage(props, 'maintain', '保养'); const productSampling = commonFunc.showLocalMessage(props, 'productSampling', '产品打111样'); const processTesting = commonFunc.showLocalMessage(props, 'processTesting', '工艺测试'); const dailyMaintenance = commonFunc.showLocalMessage(props, 'dailyMaintenance', '日常保养'); const firstMaintenance = commonFunc.showLocalMessage(props, 'firstMaintenance', '日常保养'); const secondMaintenance = commonFunc.showLocalMessage(props, 'secondMaintenance', '二级保养'); const FSMaintenance = commonFunc.showLocalMessage(props, 'FSMaintenance', '一级+二级保养'); const annualMaintenance = commonFunc.showLocalMessage(props, 'annualMaintenance', '年度保养'); const items = [ { key: "4", label: {switchProduction}, value: { conent2: switchProduction, backgroundColor: "#752AFE" } }, { key: "1", label: {test}, value: { conent2: switchProduction, backgroundColor: "#21C9FE" }, children: [ { key: "1-1", label: {productSampling}, value: { conent2: processTesting, backgroundColor: "#21C9FE" } }, { key: "1-2", label: {processTesting}, value: { conent2: processTesting, backgroundColor: "#21C9FE" } } ] }, { key: "2", label: {maintain}, value: { conent2: maintain, backgroundColor: "#FF6600" }, children: [ { key: "2-1", label: {dailyMaintenance}, value: { conent2: dailyMaintenance, backgroundColor: "#FF6600" } }, { key: "2-2", label: {firstMaintenance}, value: { conent2: firstMaintenance, backgroundColor: "#FF6600" } }, { key: "2-3", label: {secondMaintenance}, value: { conent2: secondMaintenance, backgroundColor: "#FF6600" } }, // { // key: "2-4", // label: {FSMaintenance}, // value: { // conent2: FSMaintenance, // backgroundColor: "#FF6600", // fontSize: 130 // } // }, { key: "2-5", label: {annualMaintenance}, value: { conent2: annualMaintenance, backgroundColor: "#FF6600" } } ] } ]; // 全屏 const handleMenuClick = item2 => { const newObj = { ...item2, item: item2.item }; window.$wkcFullStatus(newObj , true) }; return ( <>
); }; // const MachineMessageComponent = ({ e , shutDown , minimize}) => { // const value = e.item?.props?.value || {}; // const { current: startTime } = useRef(moment().format("YYYY-MM-DD HH:mm:ss")); // const { backgroundColor, conent2, fontSize } = value; // const [currentTime, setCurrentTime] = useState(""); // const [diffHours, setDiffHours] = useState(0); // const [diffMins, setDiffMins] = useState(0); // const [diffSecs, setDiffSecs] = useState(0); // const flagRef = useRef(0); // useEffect(() => { // const getTime = () => { // const currentTimeNew = moment().format("YYYY-MM-DD HH:mm:ss"); // setCurrentTime(currentTimeNew); // const duration = moment.duration( // moment(currentTimeNew).diff(moment(startTime)) // ); // const hours = duration // .asHours() // .toString() // .split(".")[0]; // const minutes = (duration.asMinutes() % 60).toString().split(".")[0]; // const seconds = duration.asSeconds() % 60; // setDiffHours(hours); // setDiffMins(minutes); // setDiffSecs(seconds); // }; // getTime(); // const timer = setInterval(() => { // getTime(); // }, 1000); // // const handleMenuClose = () => { // // if (flagRef.current) return; // // flagRef.current++; // // Modal.confirm({ // // title: "温馨提示:", // // content:
确认退出该页面?
, // // okText: "确认", // // cancelText: "取消", // // zIndex: 2000, // // onOk() { // // message.destroy(); // // }, // // onCancel() { // // setTimeout(() => { // // flagRef.current = 0; // // }, 500); // // } // // }); // // }; // // setInterval(() => { // // document.addEventListener("click", handleMenuClose); // // }, 1000); // return () => { // clearInterval(timer); // // document.removeEventListener("click", handleMenuClose); // }; // }, []); // const handleMenuClose = () => { // if (flagRef.current) return; // flagRef.current++; // Modal.confirm({ // title: "温馨提示:", // content:
确认退出该页面?
, // okText: "确认", // cancelText: "取消", // zIndex: 2000, // onOk() { // // message.destroy(); // shutDown() // }, // onCancel() { // setTimeout(() => { // flagRef.current = 0; // }, 500); // } // }); // }; // return ( //
//
设备停机状态告知
//
// {conent2} //
//
// 停机开始时间: // {startTime} //
//
// 系统当前时间: // {currentTime} //
//
// 此次停机耗时: // // 约: // {diffHours}时 {diffMins}分 {diffSecs}秒 // //
//
// // //
//
// ); // }; export default MachineTasks;