From 1bc33546a044cbc84dd9595c19dbcd9a4e309fc9 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期六, 10 一月 2026 14:06:10 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/areaSettings/AreaBasicTab.jsx |   65 +++++++++++++++++++++++++-------
 1 files changed, 51 insertions(+), 14 deletions(-)

diff --git a/zy-acs-flow/src/map/areaSettings/AreaBasicTab.jsx b/zy-acs-flow/src/map/areaSettings/AreaBasicTab.jsx
index df2e4d5..c024488 100644
--- a/zy-acs-flow/src/map/areaSettings/AreaBasicTab.jsx
+++ b/zy-acs-flow/src/map/areaSettings/AreaBasicTab.jsx
@@ -23,24 +23,56 @@
     codeList,
     onSave,
     disableSave,
+    onDelete,
+    canDelete = false,
 }) => {
     const translate = useTranslate();
     const icon = <CheckBoxOutlineBlankIcon fontSize="small" />;
     const checkedIcon = <CheckBoxIcon fontSize="small" />;
 
+    const normalizeAgvId = (agv) => {
+        if (agv == null) {
+            return '';
+        }
+        if (typeof agv === 'object') {
+            return String(agv.uuid ?? '');
+        }
+        return String(agv);
+    };
+
+    const getOptionId = (option) => {
+        return normalizeAgvId(option)
+    };
+
     const getOptionLabel = (option) => {
         return option?.uuid ?? '';
     };
 
-    const getOptionId = (option) => {
-        return option?.id;
+    const handleSaveClick = () => {
+        if (disableSave) {
+            return;
+        }
+        const confirmMsg = translate('page.map.area.confirm.save');
+        if (window.confirm(confirmMsg)) {
+            onSave?.();
+        }
+    };
+
+    const handleDeleteClick = () => {
+        if (!canDelete) {
+            return;
+        }
+        const confirmMsg = translate('page.map.area.confirm.delete');
+        if (window.confirm(confirmMsg)) {
+            onDelete?.();
+        }
     };
 
     return (
-        <Stack spacing={3}>
+        <Stack spacing={3} sx={{ mt: 1 }}>
             <Stack direction="row" spacing={1} alignItems="center">
                 <TextField
-                    label={translate('page.map.area.name', { _: '鍚嶇О' })}
+                    label={translate('page.map.area.form.name')}
                     size="small"
                     fullWidth
                     variant="outlined"
@@ -51,7 +83,7 @@
 
             <Box >
                 <Typography variant="subtitle2" gutterBottom>
-                    {translate('page.map.area.agv', { _: '閫夋嫨AGV灏忚溅' })}
+                    {translate('page.map.area.form.agv')}
                 </Typography>
                 <Autocomplete
                     multiple
@@ -59,7 +91,9 @@
                     options={agvOptions || []}
                     value={agvList || []}
                     getOptionLabel={getOptionLabel}
-                    isOptionEqualToValue={(option, value) => getOptionId(option) === getOptionId(value)}
+                    isOptionEqualToValue={(option, value) => {
+                        return getOptionId(option) === getOptionId(value);
+                    }}
                     onChange={(event, newValue) => {
                         setAgvList(newValue);
                     }}
@@ -67,8 +101,8 @@
                         value.map((option, index) => (
                             <Chip
                                 {...getTagProps({ index })}
-                                key={getOptionId(option)}
-                                label={getOptionLabel(option)}
+                                key={getOptionId(option) || index}
+                                label={normalizeAgvId(option)}
                                 size="small"
                                 sx={{ mr: 0.5, fontWeight: 'bold' }}
                             />
@@ -109,7 +143,7 @@
                             {...params}
                             size="small"
                             variant="outlined"
-                            placeholder={translate('page.map.area.agv.placeholder', { _: '' })}
+                            placeholder={translate('page.map.area.form.agvPlaceholder')}
                         />
                     )}
                 />
@@ -117,7 +151,7 @@
 
             <Box>
                 <Typography variant="subtitle2" gutterBottom>
-                    {translate('page.map.area.barcodes', { _: '鍖哄煙鍐呮潯鐮侀泦鍚�' })}
+                    {translate('page.map.area.form.codes', { count: codeList.length })}
                 </Typography>
                 <Paper
                     variant="outlined"
@@ -142,15 +176,18 @@
                         ))
                     ) : (
                         <Typography variant="body2" color="text.secondary">
-                            {translate('page.map.area.barcodes.empty', { _: '鏆傛棤鏉$爜' })}
+                            {translate('page.map.area.form.codesEmpty')}
                         </Typography>
                     )}
                 </Paper>
             </Box>
 
-            <Box display="flex" justifyContent="flex-start">
-                <Button variant="contained" onClick={onSave} disabled={disableSave}>
-                    {translate('common.action.save', { _: '淇濆瓨' })}
+            <Box display="flex" justifyContent="space-between" alignItems="center">
+                <Button variant="contained" onClick={handleSaveClick} disabled={disableSave}>
+                    {translate('ra.action.save')}
+                </Button>
+                <Button variant="text" color="error" onClick={handleDeleteClick} disabled={!canDelete}>
+                    {translate('ra.action.delete')}
                 </Button>
             </Box>
         </Stack>

--
Gitblit v1.9.1