| | |
| | | setMaxQty, |
| | | speedLimit, |
| | | setSpeedLimit, |
| | | shapeData, |
| | | setShapeData, |
| | | startPoint, |
| | | endPoint, |
| | | priority, |
| | | setPriority, |
| | | onSave, |
| | | }) => { |
| | | const translate = useTranslate(); |
| | | const formatCoord = (value) => { |
| | | if (value === null || value === undefined || value === '') { |
| | | return ''; |
| | | } |
| | | const num = Number(value); |
| | | if (Number.isNaN(num)) { |
| | | return String(value); |
| | | } |
| | | return num.toFixed(2); |
| | | }; |
| | | |
| | | return ( |
| | | <Box component="form" onSubmit={(e) => { e.preventDefault(); onSave(); }}> |
| | |
| | | onChange={(e) => setSpeedLimit(e.target.value)} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={12}> |
| | | <Grid item xs={12} sm={6}> |
| | | <TextField |
| | | label={translate('page.map.area.shape', { _: '形状数据' })} |
| | | label={translate('page.map.area.startX', { _: '起点 X' })} |
| | | fullWidth |
| | | multiline |
| | | minRows={3} |
| | | value={shapeData} |
| | | onChange={(e) => setShapeData(e.target.value)} |
| | | value={formatCoord(startPoint?.x)} |
| | | InputProps={{ readOnly: true }} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={12} sm={6}> |
| | | <TextField |
| | | label={translate('page.map.area.startY', { _: '起点 Y' })} |
| | | fullWidth |
| | | value={formatCoord(startPoint?.y)} |
| | | InputProps={{ readOnly: true }} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={12} sm={6}> |
| | | <TextField |
| | | label={translate('page.map.area.endX', { _: '终点 X' })} |
| | | fullWidth |
| | | value={formatCoord(endPoint?.x)} |
| | | InputProps={{ readOnly: true }} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={12} sm={6}> |
| | | <TextField |
| | | label={translate('page.map.area.endY', { _: '终点 Y' })} |
| | | fullWidth |
| | | value={formatCoord(endPoint?.y)} |
| | | InputProps={{ readOnly: true }} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={12}> |
| | |
| | | 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 [agvOptions, setAgvOptions] = useState([]); |
| | | const [initialBasic, setInitialBasic] = useState({ name: '', agvIds: [] }); |
| | |
| | | setCode(''); |
| | | setMaxCount(''); |
| | | setSpeedLimit(''); |
| | | setMemo(''); |
| | | setStartPoint({ x: '', y: '' }); |
| | | setEndPoint({ x: '', y: '' }); |
| | | setPriority(''); |
| | | setAgvList([]); |
| | | setCodeList([]); |
| | |
| | | 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 ?? ''); |
| | | |
| | | const selected = curAreaInfo.agvList || []; |
| | |
| | | setMaxQty={setMaxCount} |
| | | speedLimit={speedLimit} |
| | | setSpeedLimit={setSpeedLimit} |
| | | shapeData={memo} |
| | | setShapeData={setMemo} |
| | | startPoint={startPoint} |
| | | endPoint={endPoint} |
| | | priority={priority} |
| | | setPriority={setPriority} |
| | | onSave={handleSaveAdvanced} |