From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。

---
 HotelPms.Client.Blazor/Pages/UseDetail/Input.razor | 1183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,183 insertions(+), 0 deletions(-)

diff --git a/HotelPms.Client.Blazor/Pages/UseDetail/Input.razor b/HotelPms.Client.Blazor/Pages/UseDetail/Input.razor
new file mode 100644
index 0000000..41cf408
--- /dev/null
+++ b/HotelPms.Client.Blazor/Pages/UseDetail/Input.razor
@@ -0,0 +1,1183 @@
+@page "/usedetail/input"
+@inject GrpcChannel Channel
+@inject IJSRuntime JSRuntime
+@inject IGlobalLoadingSpinner LoadingSpinner
+@using HotelPms.Client.Blazor.Models
+@using HotelPms.Client.Blazor.Services
+@using HotelPms.Data.Common
+@using HotelPms.Data.Common.Pagination
+@using Google.Protobuf.WellKnownTypes
+@using System.Text.Json
+@using System.Text
+@using ViewModel = HotelPms.Client.Blazor.ViewModel
+@using static HotelPms.Client.Blazor.Util.SystemEnum
+@inject IDialogService DialogService
+@inject NavigationManager NavigationManager
+@implements IDisposable
+@inject ISnackbar Snackbar
+
+<h3>詳細画面</h3>
+<MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-3 mb-3">
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton @ref="btnSave" Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.ReadMore" OnClick="Save">登録</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input" OnClick="Refresh">再表示</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.ReadMore" OnClick="UseSearch">利用検索</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.PostAdd">新規</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">顧客検索</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">伝票入力</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">タイプ別残室</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">団体調整</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">顧客履歴</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">領収書</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">VOID</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">キャンセル</MudButton>
+    </MudItem>
+
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">付箋</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">レジスト</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">コピー</MudButton>
+    </MudItem>
+    <MudItem lg="1" Class="mt-0 pt-0">
+        <MudButton Variant="Variant.Filled" Style="@buttonStyle" StartIcon="@Icons.Filled.Input">見積書</MudButton>
+    </MudItem>
+</MudGrid>
+<MudExpansionPanels MultiExpansion="true">
+    <MudExpansionPanel Text="基本情報" IsInitiallyExpanded="true" Class="mt-0 mb-1">
+        <MudGrid Spacing="2" Justify="Justify.FlexStart" Class="align-center mb-1">
+            <MudItem lg="3">
+                <ResvInfo Data="@Data" @ref="m_GroupResv" Style="@baseInfoStyle" RowSpaceStyle="@rowSpaceStyle" />
+            </MudItem>
+            <MudItem lg="3">
+                <PersonInfo Data="@Data" ParentShowList="CallBackShowList" @ref="m_GroupPerson" Style="@baseInfoStyle" />
+            </MudItem>
+            <MudItem lg="3">
+                <CompanyInfo Data="@Data" ParentShowList="CallBackShowList" @ref="m_GroupCompany" Style="@baseInfoStyle" />
+            </MudItem>
+            <MudItem lg="3">                
+                <OtherInfo Data="@Data" ParentShowList="CallBackShowList" @ref="m_GroupOther" Style="@baseInfoStyle" />
+            </MudItem>
+        </MudGrid>
+    </MudExpansionPanel>
+    <MudExpansionPanel Text="詳細情報" IsInitiallyExpanded="true" Class="mt-0 mb-1">
+        <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-top mt-0 pt-0 mb-0 pb-0">
+            <MudItem lg="3" Class="mt-0 pt-0 mb-0 pb-0">
+                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-top mt-0 pt-0 mb-0 pb-0">
+                    <MudItem lg="12" Class="mt-0 pt-0 mb-3 pb-0">
+                        <MudPaper Class="pa-2">
+                            <MudStack Spacing="1">   
+                                <MudStack Row="true">
+                                    <MudText Typo="Typo.h6">利用日</MudText>
+                                    <MudText Typo="Typo.h6">@Data.UseDate</MudText>
+                                    <MudText Typo="Typo.h6">@CConvert.ToDateString(Data.UseDate, "(ddd)")</MudText>
+                                </MudStack>
+                                <MudStack Row="true" Spacing="0" Justify="Justify.Center" Style="width: 280px;" Class="slip-row-center">
+                                    <MudIconButton Icon="@Icons.Filled.FastRewind" Color="MudBlazor.Color.Primary"></MudIconButton>
+                                    <MudTextField T="int" @bind-Value="@Data.CurrentStay" Mask="@(new PatternMask("000"))" Margin="Margin.Dense" />
+                                    <MudTextField T="string" Text = "/" ReadOnly="true" Margin="Margin.Dense" Style="width: 30px;" />
+                                    <MudTextField T="string" Text="999" ReadOnly="true" Margin="Margin.Dense" Style="width: 80px;" />
+                                    <MudIconButton Icon="@Icons.Filled.FastForward" Color="MudBlazor.Color.Primary"></MudIconButton>
+                                </MudStack>
+                            </MudStack>
+                        </MudPaper>
+                    </MudItem>
+                    <MudItem lg="12" Class="mt-0 pt-0 mb-3 pb-0">
+                        <RoomTypeInput Data="@Data" OnRefresh="@RoomTypeChange"></RoomTypeInput>
+                    </MudItem>
+                    <MudItem lg="12" Class="mt-0 pt-0 mb-0 pb-0">
+                        <MudCard Style="height: 100%" Elevation="4">
+                            <MudCardHeader Class="mb-0 pb-0">
+                                <CardHeaderContent>
+                                    <MudText Typo="Typo.body1">部屋一覧</MudText>
+                                </CardHeaderContent>
+                            </MudCardHeader>
+                            <MudCardContent Class="mt-0 pt-0 mb-0 pb-1">
+                                <MudTable id="gdi-room-list" T="UseRoomRow" Items="@Data.UseRoomList" @ref="mudUseRoomTable" @bind-SelectedItem="Data.SelUseRoomRow" RowClassFunc="@SelectedRowClassFunc" OnRowClick="RowClickEvent" Dense="true" Hover="true" ReadOnly="false" FixedHeader="true" Height="248px" Striped="true" Elevation="0">
+                                    <ColGroup>                                
+                                        <col style="width:70px;" />
+                                        <col />
+                                        <col style="width:50px;" />
+                                        <col style="width:50px;" />
+                                    </ColGroup>
+                                    <HeaderContent>
+                                        <MudTh>部屋</MudTh>
+                                        <MudTh>氏名</MudTh>
+                                        <MudTh>状</MudTh>
+                                        <MudTh>代</MudTh>
+                                    </HeaderContent>
+                                    <RowTemplate>
+                                        <MudTd DataLabel="部屋">@context.RoomID</MudTd>
+                                        <MudTd DataLabel="氏名">@context.Name</MudTd>
+                                        <MudTd DataLabel="状">@context.UseStatus</MudTd>
+                                        @if(context.AllSel) 
+                                        {
+                                            <MudTd DataLabel="代"></MudTd>
+                                        }
+                                        else
+                                        {
+                                            <MudTd DataLabel="代"><MudCheckBox Checked="@context.Representative" Dense="true" T="bool"></MudCheckBox></MudTd>
+                                        } 
+                                    </RowTemplate>
+                                </MudTable>
+                            </MudCardContent>
+                        </MudCard>    
+                    </MudItem>
+                </MudGrid>
+            </MudItem>
+            <MudItem lg="9" Class="mt-0 pt-0 mb-0 pb-0">
+                <MudTabs Class="mt-0 mb-0" Elevation="4" Rounded="true" Color="@Color.Success" PrevIcon="@Icons.Filled.SkipPrevious" NextIcon="@Icons.Filled.SkipNext" SliderColor="@Color.Error" ActivePanelIndexChanged="TabChanged">
+                    <MudTabPanel Text="料金情報">
+                        <SaleInput @ref="saleInput" Data="@Data" OnRefresh="@RefreshSaleInput"></SaleInput>
+                    </MudTabPanel>
+                    <MudTabPanel Text="拡張情報">
+                        <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mb-0 mt-1 pb-0">
+                            <MudItem lg="3">
+                                <MudCard Style="@addInfoStyle" Elevation="4">
+                                    <MudCardHeader Class="mb-0 pb-0">
+                                        <CardHeaderContent>
+                                            <MudText Typo="Typo.body1">予約追加情報</MudText>
+                                        </CardHeaderContent>
+                                    </MudCardHeader>
+                                    <MudCardContent Class="mt-0 pt-0 mb-0 pb-0">
+                                        <MudGrid Spacing="3" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                        </MudGrid>
+                                    </MudCardContent>
+                                </MudCard>
+                            </MudItem>
+                            <MudItem lg="3">
+                                <MudCard Style="@addInfoStyle" Elevation="4">
+                                    <MudCardHeader Class="mb-0 pb-0">
+                                        <CardHeaderContent>
+                                            <MudText Typo="Typo.body1">個人追加情報</MudText>
+                                        </CardHeaderContent>
+                                    </MudCardHeader>
+                                    <MudCardContent Class="mt-0 pt-0 mb-0 pb-0">
+                                        <MudGrid Spacing="3" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="電話番号②" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="区分" Margin="Margin.Dense" MaxLength="50" ReadOnly="true" />
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="郵便番号" MaxLength="50" Margin="Margin.Dense" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="都道府県" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="DM" Margin="Margin.Dense" MaxLength="50" ReadOnly="true" />
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="市区町村" Margin="Margin.Dense" MaxLength="50" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="町域" MaxLength="50" Margin="Margin.Dense" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="番地" Margin="Margin.Dense" MaxLength="50" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="メール" Margin="Margin.Dense" MaxLength="50" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="パスポート" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="性別" Margin="Margin.Dense" MaxLength="50" ReadOnly="true" />
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="6" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudDatePicker Label="誕生日" Margin="Margin.Dense" Editable="true" @bind-Date="useDate" />
+                                                    </MudItem>
+                                                    <MudItem xs="6" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudDatePicker Label="記念日" Margin="Margin.Dense" Editable="true" @bind-Date="useDate" />
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                        </MudGrid>
+                                    </MudCardContent>
+                                </MudCard>
+                            </MudItem>
+                            <MudItem lg="3">
+                                <MudCard Style="@addInfoStyle" Elevation="4">
+                                    <MudCardHeader Class="mb-0 pb-0">
+                                        <CardHeaderContent>
+                                            <MudText Typo="Typo.body1">会社追加情報</MudText>
+                                        </CardHeaderContent>
+                                    </MudCardHeader>
+                                    <MudCardContent Class="mt-0 pt-0 mb-0 pb-0">
+                                        <MudGrid Spacing="3" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="所属" Margin="Margin.Dense" MaxLength="50" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="役職" MaxLength="50" Margin="Margin.Dense" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="郵便番号" MaxLength="50" Margin="Margin.Dense" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="都道府県" Margin="Margin.Dense" MaxLength="50" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="市区町村" Margin="Margin.Dense" MaxLength="50" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="町域" MaxLength="50" Margin="Margin.Dense" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="番地" Margin="Margin.Dense" MaxLength="50" />
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudTextField T="string" Label="法人備考" Lines="4" MaxLength="500" Margin="Margin.Dense" />
+                                            </MudItem>
+                                        </MudGrid>
+                                    </MudCardContent>
+                                </MudCard>
+                            </MudItem>
+                            <MudItem lg="3">
+                                <MudCard Style="@addInfoStyle" Elevation="4">
+                                    <MudCardHeader Class="mb-0 pb-0">
+                                        <CardHeaderContent>
+                                            <MudText Typo="Typo.body1">顧客自由集計</MudText>
+                                        </CardHeaderContent>
+                                    </MudCardHeader>
+                                    <MudCardContent Class="mt-0 pt-0 mb-0 pb-0">
+                                        <MudGrid Spacing="3" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                            <MudItem lg="12" Class="@rowSpaceStyle">
+                                                <MudGrid Spacing="1" Justify="Justify.FlexStart" Class="align-center mt-0 pt-0 mb-0 pb-0">
+                                                    <MudItem xs="4" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudTextField T="string" Label="自由集計" Margin="Margin.Dense" MaxLength="50" />
+                                                    </MudItem>
+                                                    <MudItem xs="8" Class="mt-0 pt-0 mb-0 pb-0">
+                                                        <MudField Margin="Margin.Dense"></MudField>
+                                                    </MudItem>
+                                                </MudGrid>
+                                            </MudItem>
+                                        </MudGrid>
+                                    </MudCardContent>
+                                </MudCard>
+                            </MudItem>
+                        </MudGrid>
+                    </MudTabPanel>
+                </MudTabs>                                                
+            </MudItem>
+        </MudGrid>
+    </MudExpansionPanel>
+    <MudExpansionPanel Text="メモ" IsInitiallyExpanded="true" Class="mt-0 mb-1">
+        <MudDynamicTabs Elevation="4" Rounded="true" ApplyEffectsToContainer="true" PanelClass="px-4 py-6" AddTab="AddTabCallback" CloseTab="@((panel) => CloseTabCallback(panel))" @bind-ActivePanelIndex="_index" AddIconToolTip="Click here to add a new tab" CloseIconToolTip="Close this tab. All data will be lost">
+            @foreach (var item in _tabs)
+            {
+                <MudTabPanel Text="@item.Name" Tag="@item.Id">
+                    <MudTextField @ref="multilineReference"  T="string" Lines="3" Variant="Variant.Outlined" Text="@item.Content" Adornment="Adornment.End" AdornmentIcon="@Icons.Filled.Api" OnAdornmentClick="@(() => multilineReference.SelectAsync())" />
+                </MudTabPanel>
+            }
+        </MudDynamicTabs>        
+    </MudExpansionPanel>
+    <MudExpansionPanel Text="備考" IsInitiallyExpanded="true" Class="mt-0 mb-1">
+        <MudTextField @ref="multilineReference" T="string" Lines="3" Variant="Variant.Outlined" Text="" Adornment="Adornment.End" AdornmentIcon="@Icons.Filled.Api" OnAdornmentClick="@(() => multilineReference.SelectAsync())" />
+    </MudExpansionPanel>
+    <MudExpansionPanel Text="前回情報" IsInitiallyExpanded="true" Class="mt-0 mb-1">
+        Panel Three Content
+    </MudExpansionPanel>
+</MudExpansionPanels>
+
+<style>
+    .selected {
+        background-color: #1E88E5 !important;
+    }
+
+    .selected > td {
+        color: white !important;
+    }
+
+    .selected > td .mud-input {
+        color: white !important;
+    }
+
+    .slip-row > .mud-input-control > .mud-input-control-input-container > div.mud-input.mud-input-text {
+        margin-top: 0px;
+    }
+
+    .slip-row-center > .mud-input-control > .mud-input-control-input-container > div.mud-input.mud-input-text {
+        margin-top: 0px;
+    }
+
+    .slip-row-right > .mud-input-control > .mud-input-control-input-container > div.mud-input.mud-input-text {
+        margin-top: 0px;
+    }
+
+    .slip-row-center > .mud-input-control > .mud-input-control-input-container > div > input {
+        text-align: center;
+    }
+
+    .slip-row-right > input {
+        text-align: right;
+    }
+</style>
+
+@code {
+    #region 定義
+
+    [Inject] public IJsInputCoreService JsInputCore { get; set; }    
+    private Parameter.UseInputArgs m_Para;
+    private ViewModel.UseInput Data;
+
+    private int spacing { get; set; } = 3;
+    private string buttonStyle = $"color:{Colors.Shades.White};background-color:{Colors.Green.Darken2};width: 130px; height: 35px;";
+    private bool renderUI = true;
+    private string rowSpaceStyle = "mt-2 pt-0 mb-0 pb-0";
+    private string baseInfoStyle = "height: 480px";
+    private string addInfoStyle = "height: 600px";
+
+    private ResvInfo m_GroupResv; //基本情報
+    private PersonInfo m_GroupPerson;
+    private CompanyInfo m_GroupCompany;
+    private OtherInfo m_GroupOther;
+
+    private static RenderFragment RenderMessage(string text) =>@<MessageContext Text="@text" />;
+
+    DateTime? useDate;
+    private MudButton btnSave;
+    private MudTextField<string> multilineReference;
+    private SaleInput saleInput;
+
+    #endregion
+
+    #region Class Event
+
+    /// <summary>
+    /// サーバーと通信しないべき
+    /// </summary>
+    protected override void OnInitialized()
+    {
+        Data = new ViewModel.UseInput(JSRuntime);
+        Data.ErrRefresh = new Action(StateHasChanged);  //メイン画面の更新
+        Data.BeforeAutoNextFocus += BeforeAutoNextFocus;
+        Data.BusinessValid += BusinessValid;
+        Data.ShowList += ShowList;
+
+        base.OnInitialized();
+        Restore();
+    }
+
+    /// <summary>
+    /// 一つイベント処理に一回サーバーを通信の原則に基づいて、
+    /// 設定など一回でまとめて取得する
+    /// </summary>
+    /// <returns></returns>
+    protected override async Task OnInitializedAsync()
+    {                        
+        Console.WriteLine($"パラメータ:{NavigationManager.HistoryEntryState}");
+        if (!string.IsNullOrEmpty(NavigationManager.HistoryEntryState)) { m_Para = Parameter.UseInputArgs.FromJson(NavigationManager.HistoryEntryState); }
+        if(m_Para == null) { m_Para = new();  }
+
+        if (m_Para.ID == 0)
+        {
+            //初期化
+            if (!await Data.CreateDefault(new(m_Para.CinDate), 1))
+            {
+                return;
+            }
+        }
+        else
+        {
+            //取得
+            //Use → ViewModel.UseInput  (新規の場合、初期値など)
+            Data.Use = await FakeData.CreateUse();
+            Data.UseDetail = Data.Use.DetailList[0];
+        }
+        Data.UseDate = m_Para.CinDate;
+        Data.SetUseDetailToForm();
+        Data.InitGrid();
+
+        //CreateFakeData();
+    }
+
+
+    protected override bool ShouldRender()
+    {
+        EnvironmentSetting.Debug($"【{DateTime.Now.ToString("HH:mm:ss fff")}】ShouldRender開始:{renderUI}");
+        if (renderUI)
+        {
+            renderUI = false;   //重複ShouldRenderを回避する
+            return true;
+        }
+        else
+        {
+            return false;
+        }
+    }
+
+    protected override async Task OnAfterRenderAsync(bool firstRender)
+    {
+        EnvironmentSetting.Debug($"【{DateTime.Now.ToString("HH:mm:ss fff")}】OnAfterRenderAsync開始:{firstRender}");
+        if (firstRender)
+        {
+            await JsInputCore.Init(Data.ID);
+        }
+
+        renderUI = true;
+        if (_updateIndex == true)
+        {
+            _index = _tabs.Count - 1;
+            StateHasChanged();
+            _updateIndex = false;
+        }
+    }
+
+    public async void Dispose()
+    {
+        try
+        {
+            await JsInputCore.Dispose(Data.ID);
+            Data.Dispose();  //必ず解放する
+        }
+        catch { }
+    }
+
+
+    #endregion
+
+    #region Control Event
+
+    #region 上段ボタン処理
+
+    /// <summary>
+    /// 登録
+    /// </summary>
+    /// <returns></returns>
+    private async Task Save()
+    {
+        await LoadingSpinner.ShowAsync();
+        //m_GroupResv.SetResvNo("R_" + DateTime.Now.ToString("HHmmssfff"));
+
+        //ViewModel.UseInputの全体チェック
+
+        //ViewModel.UseInput→Use(一括でgRPCデータ作成)
+
+        //DB更新へ
+        using DataAccessGrpc.Client.UseAccess useAccess = new(EnvironmentSetting.GrpcChannel);
+        DataResult result = await useAccess.SetDataAsync(Data.Use);
+        await LoadingSpinner.HideAsync();
+    }
+
+    /// <summary>
+    /// 再表示
+    /// </summary>
+    /// <returns></returns>
+    private async Task Refresh()
+    {
+        using DataAccessGrpc.Client.UseAccess useAccess = new(EnvironmentSetting.GrpcChannel);
+        var use = await useAccess.GetDataAsync("52");
+        Console.WriteLine(use.DetailList[0].ResvNo);
+        m_GroupResv.SetResvNo(use.DetailList[0].ResvNo);
+    }
+
+    /// <summary>
+    /// 利用検索
+    /// </summary>
+    private void UseSearch()
+    {
+        Console.WriteLine(Data.GetAutoCode());
+    }
+
+    #endregion 
+
+    #region ViewModel Event
+
+    private async Task<bool> ShowList(ViewModel.ValidField sender, ViewModel.ValidEventArgs e)
+    {
+        return await ShowListAction(sender, e);
+    }
+
+    /// <summary>
+    /// 業務チェックを行う
+    /// </summary>
+    /// <param name="sender"></param>
+    /// <param name="e"></param>
+    /// <returns></returns>
+    private async Task<bool> BusinessValid(ViewModel.ValidField sender, ViewModel.ValidEventArgs e)
+    {
+        try
+        {
+            //e.EnterPush:true→enter, false→mouse
+            if (sender.Name == "ResvNo")
+            {
+                //チェック
+            }
+            else if (sender.Name == "ResvType")
+            {
+                sender.DispText = CConvert.GetEnumDescription<EResvType>(CConvert.ToInt(sender.Text));
+                if(sender.DispText.Length == 0)
+                {
+                    sender.Error = true;
+                    Message.Show(RenderMessage("該当データが存在しません。"));
+                    //sender.ErrorText = "コード存在しません。";
+                    return false;
+                }
+            }
+            else if (sender.Name == "GroupType")
+            {
+                sender.DispText = CConvert.GetEnumDescription<EGroupType>(CConvert.ToInt(sender.Text));
+                if(sender.DispText.Length == 0)
+                {
+                    sender.Error = true;
+                    Message.Show(RenderMessage("該当データが存在しません。"));
+                    //sender.ErrorText = "コード存在しません。";
+                    return false;
+                }
+            }
+            else if (sender.Name == "RoomID")
+            {
+                //Use.RoomID = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "SalesLoginID")
+            {
+                sender.DispText = await MasterCore.GetSaleLoginName(CConvert.ToInt(sender.Text));
+                if(sender.DispText.Length == 0)
+                {
+                    sender.Error = true;
+                    Message.Show(RenderMessage("該当データが存在しません。"));
+                    //sender.ErrorText = "コード存在しません。";
+                    return false;
+                }
+            }
+            else if (sender.Name == "CinDate")
+            {
+                //Use.CinDate = sender.Text;
+            }
+            else if (sender.Name == "CinTime")
+            {
+                //Use.CinTime = sender.Text;
+            }
+            else if (sender.Name == "Stay")
+            {
+                //Use.Stay = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "CoutDate")
+            {
+                //Use.CoutDate = sender.Text;
+            }
+            else if (sender.Name == "CoutTime")
+            {
+                //Use.CoutTime = sender.Text;
+            }
+            else if (sender.Name == "GroupName")
+            {
+                //Use.GroupName = sender.Text;
+            }
+            else if (sender.Name == "MemberNo")
+            {
+                //Use.MemberNo = sender.Text;
+            }
+            else if (sender.Name == "Tel")
+            {
+                //Use.Tel = sender.Text;
+            }
+            else if (sender.Name == "TelKind")
+            {
+                //Use.TelKind = sender.Text;
+            }
+            else if (sender.Name == "Name")
+            {
+                //Use.Name = sender.Text;
+            }
+            else if (sender.Name == "Kana")
+            {
+                //Use.Kana = sender.Text;
+            }
+            else if (sender.Name == "ResvName")
+            {
+                //Use.ResvName = sender.Text;
+            }
+            else if (sender.Name == "ResvKana")
+            {
+                //Use.ResvKana = sender.Text;
+            }
+            else if (sender.Name == "ResvTel")
+            {
+                //Use.ResvTel = sender.Text;
+            }
+            else if (sender.Name == "CorpID")
+            {
+                //Use.CorpID = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "CorpName")
+            {
+                //Use.CorpName = sender.Text;
+            }
+            else if (sender.Name == "CorpKana")
+            {
+                //Use.CorpKana = sender.Text;
+            }
+            else if (sender.Name == "CorpTel")
+            {
+                //Use.CorpTel = sender.Text;
+            }
+            else if (sender.Name == "CorpFax")
+            {
+                //Use.CorpFax = sender.Text;
+            }
+            else if (sender.Name == "ReceiptName")
+            {
+                //Use.ReceiptName = sender.Text;
+            }
+            else if (sender.Name == "AreaID")
+            {
+                //Use.AreaID = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "CharacterType")
+            {
+                //Use.CharacterType = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "CustomerRig")
+            {
+                //Use.CustomerRig = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "AgentID")
+            {
+                //Use.AgentID = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "AgentBranchID")
+            {
+                //Use.AgentBranchID = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "PlanID")
+            {
+                //Use.PlanID = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "RoomAssign")
+            {
+                //Use.RoomAssign = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "ZipCode")
+            {
+                //Use.ZipCode = sender.Text;
+            }
+            else if (sender.Name == "Prefecture")
+            {
+                //Use.Prefecture = sender.Text;
+            }
+            else if (sender.Name == "Address2")
+            {
+                //Use.Address2 = sender.Text;
+            }
+            else if (sender.Name == "Address3")
+            {
+                //Use.Address3 = sender.Text;
+            }
+            else if (sender.Name == "Address4")
+            {
+                //Use.Address4 = sender.Text;
+            }
+            else if (sender.Name == "Mail")
+            {
+                //Use.Mail = sender.Text;
+            }
+            else if (sender.Name == "PassportNo")
+            {
+                //Use.PassportNo = sender.Text;
+            }
+            else if (sender.Name == "Sex")
+            {
+                //Use.Sex = CConvert.ToInt(sender.Text);
+            }
+            else if (sender.Name == "BirthDay")
+            {
+                //Use.BirthDay = sender.Text;
+            }
+            else if (sender.Name == "Anniversary")
+            {
+                //Use.Anniversary = sender.Text;
+            }
+            else if (sender.Name == "CorpZipCode")
+            {
+                //Use.CorpZipCode = sender.Text;
+            }
+            else if (sender.Name == "CorpPrefecture")
+            {
+                //Use.CorpPrefecture = sender.Text;
+            }
+            else if (sender.Name == "CorpAddress2")
+            {
+                //Use.CorpAddress2 = sender.Text;
+            }
+            else if (sender.Name == "CorpAddress3")
+            {
+                //Use.CorpAddress3 = sender.Text;
+            }
+            else if (sender.Name == "CorpAddress4")
+            {
+                //Use.CorpAddress4 = sender.Text;
+            }
+            else if (sender.Name == "CorpMemo")
+            {
+                //Use.CorpMemo = sender.Text;
+            }
+            else if (sender.Name == "Memo")
+            {
+                //Use.Memo = sender.Text;
+            }
+            else if (sender.Name == "Remark")
+            {
+                //Use.Remark = sender.Text;
+            }
+
+            //データ設定
+            if (!e.IsAll) { Data.SetDataField(sender); }
+
+            sender.Error = false;
+            sender.ErrorText = string.Empty;
+            //StateHasChanged();
+            return true;
+        }
+        catch(Exception ex)
+        {
+            EnvironmentSetting.Debug($"BusinessValid:{ex.Message}");
+            if (e.EnterPush)
+            {
+                sender.Error = true;
+                sender.ErrorText = ex.Message;
+            }
+            else
+            {
+                sender.Error = false;
+                sender.ErrorText = string.Empty;
+            }
+            return false;
+        }
+        finally
+        {
+            StateHasChanged(); 
+        }
+    }
+
+    /// <summary>
+    /// フォーカスを移動
+    /// </summary>
+    /// <param name="sender"></param>
+    /// <param name="e"></param>
+    /// <returns></returns>
+    private async Task<bool> BeforeAutoNextFocus(ViewModel.ValidField sender, ViewModel.ValidEventArgs e)
+    {
+        if (sender.Index == Data.Fields.Count - 1 && e.EnterPush)
+        {
+            await btnSave.FocusAsync();   //ここから非同期処理
+            return false;
+        }
+        return true;
+    }
+
+    /// <summary>
+    /// データ一覧取得
+    /// コード、名称
+    /// </summary>
+    /// <param name="type"></param>
+    /// <returns></returns>
+    private async Task<DataTable> GetListData(string type)
+    {
+        if (type == "ResvType") { return CConvert.GetEnumTypeList<EResvType>(); }
+        else if (type == "GroupType") { return CConvert.GetEnumTypeList<EGroupType>(); }
+        else if (type == "SalesLoginID") { return await MasterCore.GetSalesLoginList(); }
+        else { return null; }
+    }
+
+    /// <summary>
+    /// Endキー
+    /// </summary>
+    /// <param name="item"></param>
+    private async Task<bool> ShowListAction(ViewModel.ValidField item, ViewModel.ValidEventArgs e)
+    {
+        if (item.Name == "ResvType" || item.Name == "GroupType" || item.Name == "SalesLoginID")
+        {
+            if (item.Text.Length == 0) { return false; }
+            using DataTable data = await GetListData(item.Name);
+            if (data.Rows.Count == 0) { return false; }
+            var parameters = new DialogParameters { ["Data"] = data };
+            var dialog = DialogService.Show<SelectList>($"{item.Caption}検索", parameters);
+            var ret = await dialog.Result;
+            if (!ret.Cancelled)
+            {
+                var row = ret.Data as DataRow;
+                item.Text = row[0].ToString();
+                item.DispText = row[1].ToString();
+                e.Cancel = false;
+                StateHasChanged();
+            }   
+            else
+            {
+                e.Cancel = true;
+            }
+        }
+        else if (item.Name == "CinDate" || item.Name == "CoutDate")
+        {
+            var parameters = new DialogParameters { ["Title"] = $"{item.Caption}選択", ["Data"] = CConvert.ToDateTime(item.Text) };
+            var dialog = DialogService.Show<SelectDate>(string.Empty, parameters);
+            var ret = await dialog.Result;
+            if (!ret.Cancelled)
+            {
+                EnvironmentSetting.Debug(ret.Data.ToString());
+                item.Text = ret.Data.ToString();
+                StateHasChanged();
+            }
+        }
+        else
+        {
+            //await DialogService.ShowMessageBox(
+            //    "Warning",
+            //    "未実装!",
+            //    yesText: "OK", cancelText: "Cancel");
+        }
+        return true;
+    }
+
+    #endregion
+
+    #endregion
+
+    #region Private Method
+    #endregion
+
+    #region public Method
+    #endregion
+
+    //↓メモ
+    private class TabView
+    {
+        public String Name { get; set; }
+        public String Content { get; set; }
+        public Guid Id { get; set; }
+    }
+
+    private List<TabView> _tabs = new();
+    private int _index = 0;
+    private bool _updateIndex = false;
+
+    private void AddTabCallback()
+    {
+        _tabs.Add(new TabView { Name = "Dynamic Content", Content = "A new tab", Id = Guid.NewGuid() });
+        //the tab becomes available after it is rendered. Hence, we can't set the index here
+        _updateIndex = true;
+    }
+
+    private void CloseTabCallback(MudTabPanel panel)
+    {
+        var tabView = _tabs.FirstOrDefault(x => x.Id == (Guid)panel.Tag);
+        if(tabView != null)
+        {
+            _tabs.Remove(tabView);
+        }
+    }
+
+    private void Restore()
+    {
+        _tabs.Clear();
+        _tabs.Add(new TabView { Content = "First tab content", Name = "Tab A", Id = Guid.NewGuid() });
+        _tabs.Add(new TabView { Content = "Second tab content", Name = "Tab B", Id = Guid.NewGuid() });
+        _tabs.Add(new TabView { Content = "Third tab content", Name = "Tab C", Id = Guid.NewGuid() });
+    }
+    //↑メモ
+
+    private SaleInputRow selectedItem1 = null;
+    private List<string> editEvents = new();
+    private string searchString = "";
+
+    private int selRow = 0;
+    private int selectedRowNumber = -1;
+    private MudTable<UseRoomRow> mudUseRoomTable;
+
+    private void Leave()
+    {
+        //EnvironmentSetting.Debug($"Leave:{e.Type}");
+    }
+
+    private void Enter()
+    {
+        //EnvironmentSetting.Debug($"Enter:{e.Type}");
+    }
+
+    private void KeyDown()
+    {
+        //EnvironmentSetting.Debug($"KeyDown:{e.Key}");
+    }
+
+    private void KeyPress()
+    {
+        //EnvironmentSetting.Debug($"KeyPress:{e.Key}");
+    }
+
+
+
+    /// <summary>
+    /// Select前
+    /// </summary>
+    /// <param name="tableRowClickEventArgs"></param>
+    private void RowClickEvent(TableRowClickEventArgs<UseRoomRow> tableRowClickEventArgs)
+    {
+        EnvironmentSetting.Debug($"RowClickEvent:{tableRowClickEventArgs.Item.RoomID}");
+        //StateHasChanged();
+    }
+
+    private string SelectedRowClassFunc(UseRoomRow element, int rowNumber)
+    {
+        EnvironmentSetting.Debug($"SelectedRowClassFunc:{rowNumber}");
+        //if (selectedRowNumber == rowNumber)
+        //{
+        //    selRow = rowNumber;
+        //    selectedRowNumber = -1;
+        //    return string.Empty;
+        //}
+        //else 
+        if (mudUseRoomTable.SelectedItem != null && mudUseRoomTable.SelectedItem.Equals(element))
+        {
+            selRow = rowNumber;
+            selectedRowNumber = rowNumber;
+            return "selected";
+        }
+        else
+        {
+            return string.Empty;
+        }
+    }
+
+    private void ClearEventLog()
+    {
+        editEvents.Clear();
+    }
+
+    private void AddEditionEvent(string message)
+    {
+        editEvents.Add(message);
+        StateHasChanged();
+    }
+
+    private void BackupItem(object element)
+    {
+        //AddEditionEvent($"RowEditPreview event: made a backup of Element {((SaleInputRow)element).ItemName}");
+    }
+
+    private void ItemHasBeenCommitted(object element)
+    {
+        //AddEditionEvent($"RowEditCommit event: Changes to Element {((SaleInputRow)element).ItemName} committed");
+    }
+
+    private void ResetItemToOriginalValues(object element)
+    {
+        //AddEditionEvent($"RowEditCancel event: Editing of Element {((SaleInputRow)element).ItemName} cancelled");
+    }
+
+    private async void CallBackShowList(ViewModel.ValidField sender)
+    {
+        await ShowListAction(sender, new ViewModel.ValidEventArgs());
+    }
+
+    private void CreateFakeData()
+    {
+        List<SaleInputRow> list = new List<SaleInputRow>();
+        var slip = new SaleInputRow();
+        slip.Cells[(int)SaleInputRow.ColType.RoomType].Text = "SA";
+        slip.Cells[(int)SaleInputRow.ColType.RoomID].Text = "101";
+        slip.Cells[(int)SaleInputRow.ColType.ItemName].Text = "宿泊基本料金";
+        slip.Cells[(int)SaleInputRow.ColType.UnitPrice].Text = "10,000";
+        slip.Cells[(int)SaleInputRow.ColType.PersonCount].Text = "1";
+        slip.Cells[(int)SaleInputRow.ColType.Woman].Text = "1";
+        slip.Cells[(int)SaleInputRow.ColType.DiscountSummary].Text = "0";
+        slip.Cells[(int)SaleInputRow.ColType.TotalSummary].Text = "10,000";
+        slip.Cells[(int)SaleInputRow.ColType.SumDate].Text = CConvert.ToDateString(DateTime.Now);
+        slip.Cells[(int)SaleInputRow.ColType.Page].Text = "1";
+        slip.Cells[(int)SaleInputRow.ColType.SortKey].Text = "1";
+        slip.DataList.Add(new());
+        list.Add(slip);
+
+        //空白行
+        slip = new SaleInputRow();
+        list.Add(slip);
+        Data.SaleList = list;
+    }
+
+    private void RefreshSaleInput()
+    {
+        StateHasChanged(); 
+    }
+
+    private void RoomTypeChange()
+    {
+        saleInput.Refresh("RoomTypeChange");
+    }
+
+    private void TabChanged(int index)
+    {
+        
+    }
+}

--
Gitblit v1.10.0