From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 十一月 2024 10:22:45 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/insight/agv/AgvControl.jsx |   99 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 74 insertions(+), 25 deletions(-)

diff --git a/zy-acs-flow/src/map/insight/agv/AgvControl.jsx b/zy-acs-flow/src/map/insight/agv/AgvControl.jsx
index c90adf0..a350946 100644
--- a/zy-acs-flow/src/map/insight/agv/AgvControl.jsx
+++ b/zy-acs-flow/src/map/insight/agv/AgvControl.jsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useEffect } from 'react';
 import { useTranslate } from "react-admin";
 import { useForm, Controller } from 'react-hook-form';
 import {
@@ -18,12 +18,14 @@
 import CheckOutlinedIcon from '@mui/icons-material/CheckOutlined';
 import RestartAltIcon from '@mui/icons-material/RestartAlt';
 import useCoolHook from './useCoolHook';
+import { handleControlAgv } from '../../http';
 
 function AgvControl(props) {
+    const { curAgvNo } = props;
     const theme = useTheme();
     const translate = useTranslate();
 
-    const { control, handleSubmit, reset, watch } = useForm({
+    const { control, handleSubmit, reset, watch, setValue } = useForm({
         defaultValues: {
             taskMode: 'MOVE',
             startCode: '',
@@ -36,17 +38,25 @@
     });
 
     const taskModes = [
-        { value: 'MOVE', label: '绉诲姩' },
-        { value: 'TO_CHARGE', label: '鍘诲厖鐢�' },
-        { value: 'TO_STANDBY', label: '鍘诲緟鏈轰綅' },
-        { value: 'LOC_TO_LOC', label: '搴撲綅鍒板簱浣�' },
-        { value: 'LOC_TO_STA', label: '搴撲綅鍒扮珯鐐�' },
-        { value: 'STA_TO_LOC', label: '绔欑偣鍒板簱浣�' },
-        { value: 'STA_TO_STA', label: '绔欑偣鍒扮珯鐐�' },
+        { value: 'MOVE', label: translate('page.map.insight.control.type.MOVE') },
+        { value: 'TO_CHARGE', label: translate('page.map.insight.control.type.TO_CHARGE') },
+        { value: 'TO_STANDBY', label: translate('page.map.insight.control.type.TO_STANDBY') },
+        { value: 'LOC_TO_LOC', label: translate('page.map.insight.control.type.LOC_TO_LOC') },
+        { value: 'LOC_TO_STA', label: translate('page.map.insight.control.type.LOC_TO_STA') },
+        { value: 'STA_TO_LOC', label: translate('page.map.insight.control.type.STA_TO_LOC') },
+        { value: 'STA_TO_STA', label: translate('page.map.insight.control.type.STA_TO_STA') },
     ];
 
+    useEffect(() => {
+        reset();
+    }, [curAgvNo, reset]);
+
     const onSubmit = (data) => {
-        console.log(data);
+        if (curAgvNo) {
+            handleControlAgv({ agvNo: curAgvNo, ...data }, () => {
+
+            });
+        }
     };
 
     const taskMode = watch('taskMode');
@@ -74,29 +84,71 @@
     const {
         options: endCodeOptions,
         setInputValue: setEndCodeInputValue,
+        resetInput: resetEndCodeInput,
     } = useCoolHook('/code/page', 'data');
 
     const {
         options: startLocOptions,
         setInputValue: setStartLocInputValue,
+        resetInput: resetStartLocInput,
     } = useCoolHook('/loc/page', 'locNo');
 
     const {
         options: endLocOptions,
         setInputValue: setEndLocInputValue,
+        resetInput: resetEndLocInput,
     } = useCoolHook('/loc/page', 'locNo');
 
     const {
         options: startStaOptions,
         setInputValue: setStartStaInputValue,
+        resetInput: resetStartStaInput,
     } = useCoolHook('/sta/page', 'staNo');
 
     const {
         options: endStaOptions,
         setInputValue: setEndStaInputValue,
+        resetInput: resetEndStaInput,
     } = useCoolHook('/sta/page', 'staNo');
 
+    useEffect(() => {
+        const fieldsToClear = ['endCode', 'startLocNo', 'endLocNo', 'startStaNo', 'endStaNo'];
 
+        fieldsToClear.forEach(field => {
+            if (!showField(field)) {
+                setValue(field, '');
+
+                switch (field) {
+                    case 'endCode':
+                        resetEndCodeInput();
+                        break;
+                    case 'startLocNo':
+                        resetStartLocInput();
+                        break;
+                    case 'endLocNo':
+                        resetEndLocInput();
+                        break;
+                    case 'startStaNo':
+                        resetStartStaInput();
+                        break;
+                    case 'endStaNo':
+                        resetEndStaInput();
+                        break;
+                    default:
+                        break;
+                }
+            }
+        });
+    }, [
+        taskMode,
+        setValue,
+        showField,
+        resetEndCodeInput,
+        resetStartLocInput,
+        resetEndLocInput,
+        resetStartStaInput,
+        resetEndStaInput
+    ]);
     return (
         <>
             <form onSubmit={handleSubmit(onSubmit)}>
@@ -145,12 +197,12 @@
                                     <Controller
                                         name="startCode"
                                         control={control}
-                                        rules={{ required: '璧峰鍦伴潰鐮佷笉鑳戒负绌�' }}
+                                        rules={{ required: translate('ra.validation.required') }}
                                         render={({ field, fieldState }) => (
                                             <TextField
                                                 {...field}
                                                 fullWidth
-                                                label="璧峰鍦伴潰鐮�"
+                                                label={translate('page.map.insight.control.startCode')}
                                                 error={!!fieldState.error}
                                                 helperText={fieldState.error?.message}
                                             />
@@ -164,7 +216,7 @@
                                     <Controller
                                         name="endCode"
                                         control={control}
-                                        rules={{ required: '鐩爣鍦伴潰鐮佷笉鑳戒负绌�' }}
+                                        rules={{ required: translate('ra.validation.required') }}
                                         render={({ field, fieldState }) => {
                                             const selectedOption = endCodeOptions.find(option => option.id === field.value) || null;
                                             return (
@@ -182,7 +234,7 @@
                                                     renderInput={(params) => (
                                                         <TextField
                                                             {...params}
-                                                            label="鐩爣鍦伴潰鐮�"
+                                                            label={translate('page.map.insight.control.endCode')}
                                                             error={!!fieldState.error}
                                                             helperText={fieldState.error?.message}
                                                         />
@@ -199,7 +251,7 @@
                                     <Controller
                                         name="startLocNo"
                                         control={control}
-                                        rules={{ required: '璧峰搴撲綅涓嶈兘涓虹┖' }}
+                                        rules={{ required: translate('ra.validation.required') }}
                                         render={({ field, fieldState }) => {
                                             const selectedOption = startLocOptions.find(option => option.id === field.value) || null;
                                             return (
@@ -217,7 +269,7 @@
                                                     renderInput={(params) => (
                                                         <TextField
                                                             {...params}
-                                                            label="璧峰搴撲綅"
+                                                            label={translate('page.map.insight.control.startLoc')}
                                                             error={!!fieldState.error}
                                                             helperText={fieldState.error?.message}
                                                         />
@@ -234,7 +286,7 @@
                                     <Controller
                                         name="endLocNo"
                                         control={control}
-                                        rules={{ required: '鐩爣搴撲綅涓嶈兘涓虹┖' }}
+                                        rules={{ required: translate('ra.validation.required') }}
                                         render={({ field, fieldState }) => {
                                             const selectedOption = endLocOptions.find(option => option.id === field.value) || null;
                                             return (
@@ -252,7 +304,7 @@
                                                     renderInput={(params) => (
                                                         <TextField
                                                             {...params}
-                                                            label="鐩爣搴撲綅"
+                                                            label={translate('page.map.insight.control.endLoc')}
                                                             error={!!fieldState.error}
                                                             helperText={fieldState.error?.message}
                                                         />
@@ -269,7 +321,7 @@
                                     <Controller
                                         name="startStaNo"
                                         control={control}
-                                        rules={{ required: '璧峰绔欑偣涓嶈兘涓虹┖' }}
+                                        rules={{ required: translate('ra.validation.required') }}
                                         render={({ field, fieldState }) => {
                                             const selectedOption = startStaOptions.find(option => option.id === field.value) || null;
                                             return (
@@ -287,7 +339,7 @@
                                                     renderInput={(params) => (
                                                         <TextField
                                                             {...params}
-                                                            label="璧峰绔欑偣"
+                                                            label={translate('page.map.insight.control.startSta')}
                                                             error={!!fieldState.error}
                                                             helperText={fieldState.error?.message}
                                                         />
@@ -304,7 +356,7 @@
                                     <Controller
                                         name="endStaNo"
                                         control={control}
-                                        rules={{ required: '鐩爣绔欑偣涓嶈兘涓虹┖' }}
+                                        rules={{ required: translate('ra.validation.required') }}
                                         render={({ field, fieldState }) => {
                                             const selectedOption = endStaOptions.find(option => option.id === field.value) || null;
                                             return (
@@ -322,7 +374,7 @@
                                                     renderInput={(params) => (
                                                         <TextField
                                                             {...params}
-                                                            label="鐩爣绔欑偣"
+                                                            label={translate('page.map.insight.control.endSta')}
                                                             error={!!fieldState.error}
                                                             helperText={fieldState.error?.message}
                                                         />
@@ -350,9 +402,6 @@
                             variant="outlined"
                             color="primary"
                             type="submit"
-                            onClick={() => {
-
-                            }}
                             sx={{
                                 borderColor: theme => theme.palette.primary.main,
                                 color: theme => theme.palette.primary.main,

--
Gitblit v1.9.1