refactor: admin ui를 fluent v5와 html 기반으로 전환
TaxBaik CI/CD / build-and-deploy (push) Failing after 1m53s

This commit is contained in:
2026-06-29 22:37:40 +09:00
parent 1a7bc9e209
commit 1b173376ee
51 changed files with 2471 additions and 3560 deletions
@@ -1,49 +1,28 @@
@using TaxBaik.Application.Services
@using Microsoft.FluentUI.AspNetCore.Components
<MudForm @ref="form">
<MudTextField @bind-Value="model.CompanyCode" Label="회사 코드"
Variant="Variant.Outlined" Class="mb-4" Required="true"
HelperText="영문/숫자, 최대 50자" />
<MudTextField @bind-Value="model.CompanyName" Label="회사명"
Variant="Variant.Outlined" Class="mb-4" Required="true" />
<MudTextField @bind-Value="model.ContactPerson" Label="담당자명"
Variant="Variant.Outlined" Class="mb-4" />
<MudTextField @bind-Value="model.Phone" Label="전화번호"
Variant="Variant.Outlined" Class="mb-4" />
<MudTextField @bind-Value="model.Email" Label="이메일"
Variant="Variant.Outlined" Class="mb-4" InputType="InputType.Email" />
<MudTextField @bind-Value="model.Memo" Label="메모"
Variant="Variant.Outlined" Lines="3" Class="mb-4" />
<MudCheckBox @bind-Checked="model.IsActive" Label="활성" Class="mb-4" />
<div class="d-flex gap-2">
<MudButton Variant="Variant.Filled" Color="Color.Primary" @onclick="HandleSubmit">
@ButtonText
</MudButton>
<MudButton Variant="Variant.Outlined" @onclick="OnCancel">취소</MudButton>
<form class="admin-form" @onsubmit="HandleSubmit" @onsubmit:preventDefault>
<FluentTextInput Label="회사 코드" @bind-CurrentValue="model.CompanyCode" />
<FluentTextInput Label="회사명" @bind-CurrentValue="model.CompanyName" />
<FluentTextInput Label="담당자명" @bind-CurrentValue="model.ContactPerson" />
<FluentTextInput Label="전화번호" @bind-CurrentValue="model.Phone" />
<FluentTextInput Label="이메일" @bind-CurrentValue="model.Email" />
<FluentTextArea Label="메모" @bind-CurrentValue="model.Memo" />
<label class="admin-checkbox-row">
<input type="checkbox" @bind="model.IsActive" />
<span>활성</span>
</label>
<div class="admin-form-actions">
<button type="submit" class="admin-login-submit">@ButtonText</button>
<button type="button" class="admin-secondary-button" @onclick="OnCancel">취소</button>
</div>
</MudForm>
</form>
@code {
[Parameter, EditorRequired]
public string ButtonText { get; set; } = "저장";
[Parameter]
public EventCallback<CompanyFormModel> OnSubmit { get; set; }
[Parameter]
public EventCallback OnCancel { get; set; }
[Parameter]
public CompanyFormModel? InitialData { get; set; }
private MudForm? form;
[Parameter, EditorRequired] public string ButtonText { get; set; } = "저장";
[Parameter] public EventCallback<CompanyFormModel> OnSubmit { get; set; }
[Parameter] public EventCallback OnCancel { get; set; }
[Parameter] public CompanyFormModel? InitialData { get; set; }
private CompanyFormModel model = new();
protected override void OnInitialized()
@@ -63,17 +42,7 @@
}
}
private async Task HandleSubmit()
{
if (form == null)
return;
await form.Validate();
if (!form.IsValid)
return;
await OnSubmit.InvokeAsync(model);
}
private Task HandleSubmit() => OnSubmit.InvokeAsync(model);
public class CompanyFormModel
{
@@ -1,61 +1,38 @@
@using TaxBaik.Application.DTOs
@using TaxBaik.Application.Services
@using Microsoft.FluentUI.AspNetCore.Components
<MudForm @ref="form">
<MudTextField @bind-Value="model.Name" Label="이름"
Variant="Variant.Outlined" Class="mb-4" Required="true" />
<form class="admin-form" @onsubmit="HandleSubmit" @onsubmit:preventDefault>
<FluentTextInput Label="이름" @bind-CurrentValue="model.Name" />
<FluentTextInput Label="전화번호 (예: 010-1234-5678)" @bind-CurrentValue="model.Phone" />
<FluentTextInput Label="이메일" @bind-CurrentValue="model.Email" />
<FluentSelect TValue="string" TOption="string" Label="문의 유형" @bind-CurrentValue="model.ServiceType">
<FluentOption Value="@("사업자세무")">사업자세무</FluentOption>
<FluentOption Value="@("부동산세금")">부동산세금</FluentOption>
<FluentOption Value="@("가족자산")">가족자산</FluentOption>
<FluentOption Value="@("기타")">기타</FluentOption>
</FluentSelect>
<FluentTextArea Label="문의 내용" @bind-CurrentValue="model.Message" />
<FluentSelect TValue="string" TOption="string" Label="상태" @bind-CurrentValue="model.Status">
<FluentOption Value="@("new")">신규</FluentOption>
<FluentOption Value="@("consulting")">상담중</FluentOption>
<FluentOption Value="@("contracted")">계약완료</FluentOption>
<FluentOption Value="@("rejected")">거절</FluentOption>
<FluentOption Value="@("closed")">종결</FluentOption>
</FluentSelect>
<FluentTextArea Label="관리 메모" @bind-CurrentValue="model.AdminMemo" />
<MudTextField @bind-Value="model.Phone" Label="전화번호 (예: 010-1234-5678)"
Variant="Variant.Outlined" Class="mb-4" Required="true" />
<MudTextField @bind-Value="model.Email" Label="이메일"
Variant="Variant.Outlined" Class="mb-4" InputType="InputType.Email" />
<MudSelect @bind-Value="model.ServiceType" Label="문의 유형"
Variant="Variant.Outlined" Class="mb-4">
<MudSelectItem Value="@("사업자세무")">사업자세무</MudSelectItem>
<MudSelectItem Value="@("부동산세금")">부동산세금</MudSelectItem>
<MudSelectItem Value="@("가족자산")">가족자산</MudSelectItem>
<MudSelectItem Value="@("기타")">기타</MudSelectItem>
</MudSelect>
<MudTextField @bind-Value="model.Message" Label="문의 내용"
Variant="Variant.Outlined" Lines="5" Class="mb-4" Required="true" />
<MudSelect @bind-Value="model.Status" Label="상태"
Variant="Variant.Outlined" Class="mb-4">
<MudSelectItem Value="@("new")">신규</MudSelectItem>
<MudSelectItem Value="@("consulting")">상담중</MudSelectItem>
<MudSelectItem Value="@("contracted")">계약완료</MudSelectItem>
<MudSelectItem Value="@("rejected")">거절</MudSelectItem>
<MudSelectItem Value="@("closed")">종결</MudSelectItem>
</MudSelect>
<MudTextField @bind-Value="model.AdminMemo" Label="관리 메모"
Variant="Variant.Outlined" Lines="3" Class="mb-4" />
<div class="d-flex gap-2">
<MudButton Variant="Variant.Filled" Color="Color.Primary" @onclick="HandleSubmit">
@ButtonText
</MudButton>
<MudButton Variant="Variant.Outlined" @onclick="OnCancel">취소</MudButton>
<div class="admin-form-actions">
<button type="submit" class="admin-login-submit">@ButtonText</button>
<button type="button" class="admin-secondary-button" @onclick="OnCancel">취소</button>
</div>
</MudForm>
</form>
@code {
[Parameter, EditorRequired]
public string ButtonText { get; set; } = "저장";
[Parameter]
public EventCallback<InquiryFormModel> OnSubmit { get; set; }
[Parameter]
public EventCallback OnCancel { get; set; }
[Parameter]
public InquiryFormModel? InitialData { get; set; }
private MudForm? form;
[Parameter, EditorRequired] public string ButtonText { get; set; } = "저장";
[Parameter] public EventCallback<InquiryFormModel> OnSubmit { get; set; }
[Parameter] public EventCallback OnCancel { get; set; }
[Parameter] public InquiryFormModel? InitialData { get; set; }
private InquiryFormModel model = new();
protected override void OnInitialized()
@@ -75,17 +52,7 @@
}
}
private async Task HandleSubmit()
{
if (form == null)
return;
await form.Validate();
if (!form.IsValid)
return;
await OnSubmit.InvokeAsync(model);
}
private Task HandleSubmit() => OnSubmit.InvokeAsync(model);
public class InquiryFormModel
{