| | |
| | | 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}> |