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