RobotApp/RobotApp.Client/Pages/Components/Config/RobotSafetyConfig.razor
Đăng Nguyễn aa2146e383 update
2025-10-30 13:34:44 +07:00

70 lines
2.3 KiB
Plaintext

<EditForm Model="@Local" OnValidSubmit="OnSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="row g-2 mb-2">
<div class="col-6">
<label class="form-label">Very Slow (m/s)</label>
<InputNumber class="form-control" @bind-Value="Local.SafetySpeedVerySlow" />
</div>
<div class="col-6">
<label class="form-label">Slow (m/s)</label>
<InputNumber class="form-control" @bind-Value="Local.SafetySpeedSlow" />
</div>
</div>
<div class="row g-2 mb-2">
<div class="col-6">
<label class="form-label">Normal (m/s)</label>
<InputNumber class="form-control" @bind-Value="Local.SafetySpeedNormal" />
</div>
<div class="col-6">
<label class="form-label">Medium (m/s)</label>
<InputNumber class="form-control" @bind-Value="Local.SafetySpeedMedium" />
</div>
</div>
<div class="row g-2 mb-2">
<div class="col-6">
<label class="form-label">Optimal (m/s)</label>
<InputNumber class="form-control" @bind-Value="Local.SafetySpeedOptimal" />
</div>
<div class="col-6">
<label class="form-label">Fast (m/s)</label>
<InputNumber class="form-control" @bind-Value="Local.SafetySpeedFast" />
</div>
</div>
<div class="mb-2">
<label class="form-label">Very Fast (m/s)</label>
<InputNumber class="form-control" @bind-Value="Local.SafetySpeedVeryFast" />
</div>
<div class="mb-2">
<label class="form-label">Description</label>
<InputTextArea class="form-control" @bind-Value="Local.Description" />
</div>
</EditForm>
@code {
[Parameter]
public RobotSafetyConfigDto Model { get; set; } = new();
[Parameter]
public EventCallback<RobotSafetyConfigDto> ModelChanged { get; set; }
private RobotSafetyConfigDto Local = new();
protected override void OnParametersSet()
{
// Work on a shallow copy (record) so parent instance isn't mutated until submit
Local = Model is not null ? Model with { } : new RobotSafetyConfigDto();
}
private async Task OnSubmit()
{
Model = Local;
await ModelChanged.InvokeAsync(Model);
}
}