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/index.jsx | 72 ++++++++++++++++++++++++++----------
1 files changed, 52 insertions(+), 20 deletions(-)
diff --git a/zy-acs-flow/src/map/areaSettings/index.jsx b/zy-acs-flow/src/map/areaSettings/index.jsx
index c7894ab..d86d5be 100644
--- a/zy-acs-flow/src/map/areaSettings/index.jsx
+++ b/zy-acs-flow/src/map/areaSettings/index.jsx
@@ -18,6 +18,7 @@
import AreaBasicTab from './AreaBasicTab';
import AreaAdvancedTab from './AreaAdvancedTab';
import { getAreaInfo, fetchAgvListAll, updateAreaData, removeArea } from '../http';
+import * as Tool from '../tool';
const getAgvOptionId = (option) => {
if (option == null) {
@@ -62,8 +63,10 @@
const [code, setCode] = useState('');
const [maxCount, setMaxCount] = useState('');
const [speedLimit, setSpeedLimit] = useState('');
- const [memo, setMemo] = useState('');
+ const [startPoint, setStartPoint] = useState({ x: '', y: '' });
+ const [endPoint, setEndPoint] = useState({ x: '', y: '' });
const [priority, setPriority] = useState('');
+ const [memo, setMemo] = useState('');
const [agvOptions, setAgvOptions] = useState([]);
const [initialBasic, setInitialBasic] = useState({ name: '', agvIds: [] });
const [curAreaInfo, setCurAreaInfo] = useState(null);
@@ -83,8 +86,10 @@
setCode('');
setMaxCount('');
setSpeedLimit('');
- setMemo('');
+ setStartPoint({ x: '', y: '' });
+ setEndPoint({ x: '', y: '' });
setPriority('');
+ setMemo('');
setAgvList([]);
setCodeList([]);
setInitialBasic({ name: '', agvIds: [] });
@@ -106,8 +111,16 @@
setCode(curAreaInfo.code || '');
setMaxCount(curAreaInfo.maxCount ?? '');
setSpeedLimit(curAreaInfo.speedLimit ?? '');
- setMemo(curAreaInfo.memo || '');
+ setStartPoint({
+ x: curAreaInfo.start?.x ?? '',
+ y: curAreaInfo.start?.y ?? '',
+ });
+ setEndPoint({
+ x: curAreaInfo.end?.x ?? '',
+ y: curAreaInfo.end?.y ?? '',
+ });
setPriority(curAreaInfo.priority ?? '');
+ setMemo(curAreaInfo.memo || '');
const selected = curAreaInfo.agvList || [];
const normalizedSelection = mapSelectionToOptions(selected, agvOptions);
@@ -126,21 +139,39 @@
setActiveTab(newValue);
};
- const handleSaveBasic = async () => {
- console.log(agvList);
+ const submitAreaUpdate = async (payload = {}) => {
const id = sprite?.data?.id;
if (!id) {
return;
}
- const payload = {
- id,
- name,
- agvIds: agvList.map(getAgvOptionId),
- };
- const data = await updateAreaData(payload);
+ const data = await updateAreaData({ id, ...payload });
if (data) {
setCurAreaInfo(data);
+ if (sprite) {
+ Tool.updateAreaSpriteName(sprite, data.name || name);
+ }
}
+ };
+
+ const handleSaveBasic = async () => {
+ await submitAreaUpdate({
+ name,
+ agvIds: agvList.map(getAgvOptionId),
+ });
+ };
+
+ const handleSaveAdvanced = async () => {
+ await submitAreaUpdate({
+ name,
+ agvIds: agvList.map(getAgvOptionId),
+ code,
+ maxCount,
+ speedLimit,
+ priority,
+ memo,
+ start: startPoint,
+ end: endPoint,
+ });
};
const handleDeleteArea = async () => {
@@ -150,12 +181,11 @@
}
const success = await removeArea(id);
if (success) {
+ if (sprite) {
+ Tool.removeAreaSprite(sprite);
+ }
onCancel?.();
}
- };
-
- const handleSaveAdvanced = () => {
- // placeholder for save logic
};
const basicDirty = name !== initialBasic.name
@@ -179,7 +209,7 @@
<Typography variant="h6" flex="1">
{sprite
? translate(`page.map.devices.${sprite?.data?.type?.toLowerCase()}`) + ' - ' + sprite?.data?.name
- : translate('page.map.settings.title')}
+ : translate('page.map.area.title')}
</Typography>
<IconButton onClick={handleClose} size="small">
<CloseIcon />
@@ -208,8 +238,8 @@
variant="fullWidth"
sx={{ mb: 0 }}
>
- <Tab label={translate('page.map.area.basic', { _: '鍩虹' })} />
- <Tab label={translate('page.map.area.advanced', { _: '楂樼骇' })} />
+ <Tab label={translate('page.map.area.tabs.basic')} />
+ <Tab label={translate('page.map.area.tabs.advanced')} />
</Tabs>
<Divider />
@@ -237,10 +267,12 @@
setMaxQty={setMaxCount}
speedLimit={speedLimit}
setSpeedLimit={setSpeedLimit}
- shapeData={memo}
- setShapeData={setMemo}
+ startPoint={startPoint}
+ endPoint={endPoint}
priority={priority}
setPriority={setPriority}
+ memo={memo}
+ setMemo={setMemo}
onSave={handleSaveAdvanced}
/>
)}
--
Gitblit v1.9.1