Compare commits
	
		
			No commits in common. "289a1491f3a621734a3d478d276dc2970468e825" and "1c91715d36915afa70282a69bf940cff862016f5" have entirely different histories.
		
	
	
		
			289a1491f3
			...
			1c91715d36
		
	
		| 
						 | 
				
			
			@ -9,6 +9,6 @@ namespace MasaBlazorApp3.DataAccess.Dao
 | 
			
		|||
{
 | 
			
		||||
    interface ISettingManuDao
 | 
			
		||||
    {
 | 
			
		||||
        public Task<List<SettingManu>> GetMenuItemsAsync(string culture);
 | 
			
		||||
        public Task<List<SettingManu>> GetMenuItemsAsync();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,6 @@ using System.Collections.Generic;
 | 
			
		|||
using System.Data.Common;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace MasaBlazorApp3.DataAccess.Impl
 | 
			
		||||
| 
						 | 
				
			
			@ -25,9 +24,9 @@ namespace MasaBlazorApp3.DataAccess.Impl
 | 
			
		|||
            _connection = connection;
 | 
			
		||||
            _setting = setting.Value;
 | 
			
		||||
        }
 | 
			
		||||
        public async Task<List<SettingManu>> GetMenuItemsAsync(string culture)
 | 
			
		||||
        public async Task<List<SettingManu>> GetMenuItemsAsync()
 | 
			
		||||
        {
 | 
			
		||||
            var query = _connection.SettingManu.AsQueryable().Where(it=>it.Culture==culture);
 | 
			
		||||
            var query = _connection.SettingManu.AsQueryable();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            return await query
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,6 @@
 | 
			
		|||
		<PackageReference Include="System.IO.Ports" Version="8.0.0" />
 | 
			
		||||
		<PackageReference Include="System.Management" Version="8.0.0" />
 | 
			
		||||
		<PackageReference Include="System.Speech" Version="8.0.0" />
 | 
			
		||||
		<PackageReference Include="Toolbelt.Blazor.I18nText" Version="14.0.1" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
	<ItemGroup>
 | 
			
		||||
| 
						 | 
				
			
			@ -58,6 +57,10 @@
 | 
			
		|||
	  </Content>
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
	<ItemGroup>
 | 
			
		||||
	  <None Remove="i18ntext\MyText.zh.json" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
	<ItemGroup>
 | 
			
		||||
	  <None Remove="i18ntext\MyText.en.json" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@
 | 
			
		|||
    LoadData="@LoadData"
 | 
			
		||||
    IsLoading="@isLoading"
 | 
			
		||||
    Count="@count"
 | 
			
		||||
    EmptyText="@myText.NoDate"
 | 
			
		||||
    EmptyText="无数据"
 | 
			
		||||
    Data="@channels"
 | 
			
		||||
    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
    CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
 | 
			
		||||
| 
						 | 
				
			
			@ -52,34 +52,34 @@
 | 
			
		|||
            <RadzenRow JustifyContent="JustifyContent.End">
 | 
			
		||||
                @if (status < 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton IsBusy="@(status > 0)" BusyText="@myText.DrawOpened" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.OpenDraw" Click="@OpenDrawer" />
 | 
			
		||||
                    <RadzenButton IsBusy="@(status>0)" BusyText="抽屉已打开。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="开抽屉" Click="@OpenDrawer" />
 | 
			
		||||
                }
 | 
			
		||||
                @if (status > 0 && status <= 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                    <RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="取消" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                }
 | 
			
		||||
            </RadzenRow>
 | 
			
		||||
        </HeaderTemplate>
 | 
			
		||||
        <Columns>
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.Drug?.DrugName</RadzenText>
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Caption">@channel.Drug?.DrugSpec</RadzenText>
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo">
 | 
			
		||||
            <RadzenDataGridColumn Title="批次" Property="ManuNo">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.drugManuNo?.ManuNo</RadzenText>
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Caption">@channel.drugManuNo?.EffDate.ToString().Substring(0,10)</RadzenText>
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Inventory" Property="Quantity">
 | 
			
		||||
            <RadzenDataGridColumn Title="库存" Property="Quantity">
 | 
			
		||||
                <Template Context="cs">
 | 
			
		||||
                    <RadzenButton ButtonStyle="ButtonStyle.Info" Variant="Variant.Flat" Shade="Shade.Lighter" class="m-1" Text="@cs.Quantity.ToString()" />
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenGridColumn Title="@myText.State" Property="BiaoDingStatus">
 | 
			
		||||
            <RadzenGridColumn Title="状态" Property="BiaoDingStatus">
 | 
			
		||||
 | 
			
		||||
            </RadzenGridColumn>
 | 
			
		||||
        </Columns>
 | 
			
		||||
| 
						 | 
				
			
			@ -92,8 +92,6 @@
 | 
			
		|||
    @inject NotificationService _message
 | 
			
		||||
    @inject IOptions<DrawerConfig> setting;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    int status = 0;
 | 
			
		||||
    int drawerNo = 0;
 | 
			
		||||
    RadzenDataGrid<ChannelStock> grid;
 | 
			
		||||
| 
						 | 
				
			
			@ -160,7 +158,7 @@
 | 
			
		|||
                        else
 | 
			
		||||
                        {
 | 
			
		||||
                            _message.Notify(
 | 
			
		||||
                            new NotificationMessage { Severity = NotificationSeverity.Error, Summary =myText.Tips, Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
 | 
			
		||||
                            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
 | 
			
		||||
                            );
 | 
			
		||||
                            logger.Info($"抽屉打开失败");
 | 
			
		||||
                            RestData();
 | 
			
		||||
| 
						 | 
				
			
			@ -213,7 +211,7 @@
 | 
			
		|||
            {
 | 
			
		||||
                logger.Info($"标定药品发生错误,{e.Message}");
 | 
			
		||||
                _message.Notify(
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"发生错误,{e.Message}", Duration = 4000 }
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"发生错误,{e.Message}", Duration = 4000 }
 | 
			
		||||
            );
 | 
			
		||||
                if (setting.Value.single != null && setting.Value.single.Contains(this.drawerNo))
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -255,12 +253,4 @@
 | 
			
		|||
            // }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,8 +34,6 @@
 | 
			
		|||
    @inject Radzen.DialogService dialogService;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject PortUtil PortUtil;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    [Parameter] public ChannelStock channelStockInfo { get; set; }
 | 
			
		||||
 | 
			
		||||
    PromiseUtil<object> promiseUtil = new PromiseUtil<object>();
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +47,6 @@
 | 
			
		|||
    int iClearFinish = 1;
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        if(channelStockInfo!=null&&channelStockInfo.Quantity<=0)
 | 
			
		||||
        {
 | 
			
		||||
            //库存为零,直接进行清空操作
 | 
			
		||||
| 
						 | 
				
			
			@ -96,7 +93,7 @@
 | 
			
		|||
                        {
 | 
			
		||||
                            _message.Notify(
 | 
			
		||||
                                                new NotificationMessage
 | 
			
		||||
                                                { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = "清空操作成功", Duration = 3000 }
 | 
			
		||||
                                                    { Severity = NotificationSeverity.Success, Summary = "提示", Detail = "清空操作成功", Duration = 3000 }
 | 
			
		||||
                                            );
 | 
			
		||||
 | 
			
		||||
                            PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
| 
						 | 
				
			
			@ -150,7 +147,7 @@
 | 
			
		|||
                            status = 0; 
 | 
			
		||||
                            _message.Notify(
 | 
			
		||||
                                                new NotificationMessage
 | 
			
		||||
                                                { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = "标定成功", Duration = 3000 }
 | 
			
		||||
                                                    { Severity = NotificationSeverity.Success, Summary = "提示", Detail = "标定成功", Duration = 3000 }
 | 
			
		||||
                                            );
 | 
			
		||||
 | 
			
		||||
                            PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
| 
						 | 
				
			
			@ -176,7 +173,7 @@
 | 
			
		|||
                logger.Error($"标定异常{ex.Message}");
 | 
			
		||||
                _message.Notify(
 | 
			
		||||
                                    new NotificationMessage
 | 
			
		||||
                                    { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = "标定异常", Duration = 3000 }
 | 
			
		||||
                                        { Severity = NotificationSeverity.Error, Summary = "提示", Detail = "标定异常", Duration = 3000 }
 | 
			
		||||
                                );
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -184,7 +181,7 @@
 | 
			
		|||
        {
 | 
			
		||||
            _message.Notify(
 | 
			
		||||
                    new NotificationMessage
 | 
			
		||||
                    { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = "请输入标定数量", Duration = 3000 });
 | 
			
		||||
                        { Severity = NotificationSeverity.Error, Summary = "提示", Detail = "请输入标定数量", Duration = 3000 });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // 取消
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,38 +44,38 @@
 | 
			
		|||
 | 
			
		||||
    <RadzenDataGrid @ref="grid" RowSelect="@OnRowSelect" TItem="ChannelList"
 | 
			
		||||
                    RowRender="@RowRender"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts" @bind-Value=@selectedChannelLists
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single" LoadData="@LoadData" IsLoading="@isLoading" 
 | 
			
		||||
                    Count="@count" AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据"
 | 
			
		||||
                    ExpandMode="DataGridExpandMode.Multiple">
 | 
			
		||||
        <Template Context="cs">
 | 
			
		||||
            <RadzenDataGrid Data="@cs.ChannelStocks" EmptyText="@myText.NoDate">
 | 
			
		||||
            <RadzenDataGrid Data="@cs.ChannelStocks" EmptyText="无数据">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
                    <RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec">
 | 
			
		||||
                    <RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Factory" Property="Drug.Manufactory">
 | 
			
		||||
                    <RadzenDataGridColumn Title="厂家" Property="Drug.Manufactory">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    @*  <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="效期" Property="EffDate">
 | 
			
		||||
                    </RadzenDataGridColumn> *@
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.BaseQuantity" Property="BaseQuantity">
 | 
			
		||||
                    <RadzenDataGridColumn Title="基数" Property="BaseQuantity">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.NeedAddQuantity" Property="NeedQuantity">
 | 
			
		||||
                    <RadzenDataGridColumn Title="需补药数" Property="NeedQuantity">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                </Columns>
 | 
			
		||||
            </RadzenDataGrid>
 | 
			
		||||
        </Template>
 | 
			
		||||
        <Columns>
 | 
			
		||||
            <RadzenDataGridColumn Frozen="true" Width="200px" Title="@myText.BoxNum" Property="DrawerNo">
 | 
			
		||||
            <RadzenDataGridColumn Frozen="true" Width="200px" Title="药箱号" Property="DrawerNo">
 | 
			
		||||
                <Template Context="DrawerNo">
 | 
			
		||||
                    @DrawerNo.DrawerNo @myText.BoxNum
 | 
			
		||||
                    @DrawerNo.DrawerNo 号药箱
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.TotalStock" Property="TotalQuantity"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="总库存" Property="TotalQuantity"></RadzenDataGridColumn>
 | 
			
		||||
        </Columns>
 | 
			
		||||
    </RadzenDataGrid>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -83,8 +83,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IChannelListDao channelStockDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<ChannelList> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -96,7 +94,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
       
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,38 +43,38 @@
 | 
			
		|||
 | 
			
		||||
    <RadzenDataGrid @ref="grid" RowSelect="@OnRowSelect" TItem="ChannelList"
 | 
			
		||||
    RowRender="@RowRender"
 | 
			
		||||
    EmptyText="@myText.NoDate"
 | 
			
		||||
    EmptyText="无数据"
 | 
			
		||||
    Data="@_forecasts" @bind-Value=@selectedChannelLists
 | 
			
		||||
    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                    ExpandMode="DataGridExpandMode.Multiple" LoadData="@LoadData" IsLoading="@isLoading" Count="@count"
 | 
			
		||||
                    AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
 | 
			
		||||
        <Template Context="cs">
 | 
			
		||||
            <RadzenDataGrid Data="@cs.ChannelStocks" EmptyText="@myText.NoDate">
 | 
			
		||||
            <RadzenDataGrid Data="@cs.ChannelStocks" EmptyText="无数据">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
                    <RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec">
 | 
			
		||||
                    <RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Factory" Property="Drug.Manufactory">
 | 
			
		||||
                    <RadzenDataGridColumn Title="厂家" Property="Drug.Manufactory">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                   @*  <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="效期" Property="EffDate">
 | 
			
		||||
                    </RadzenDataGridColumn> *@
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.BaseQuantity" Property="BaseQuantity">
 | 
			
		||||
                    <RadzenDataGridColumn Title="基数" Property="BaseQuantity">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.NeedAddQuantity" Property="NeedQuantity">
 | 
			
		||||
                    <RadzenDataGridColumn Title="需补药数" Property="NeedQuantity">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                </Columns>
 | 
			
		||||
            </RadzenDataGrid>
 | 
			
		||||
        </Template>
 | 
			
		||||
        <Columns>
 | 
			
		||||
            <RadzenDataGridColumn Frozen="true" Width="200px" Title="@myText.BoxNum" Property="DrawerNo">
 | 
			
		||||
            <RadzenDataGridColumn Frozen="true" Width="200px" Title="药箱号" Property="DrawerNo">
 | 
			
		||||
                <Template Context="DrawerNo">
 | 
			
		||||
                    @DrawerNo.DrawerNo @myText.BoxNum
 | 
			
		||||
                    @DrawerNo.DrawerNo 号药箱
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.TotalStock" Property="TotalQuantity"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="总库存" Property="TotalQuantity"></RadzenDataGridColumn>
 | 
			
		||||
        </Columns>
 | 
			
		||||
    </RadzenDataGrid>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -82,8 +82,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IChannelListDao channelStockDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<ChannelList> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +93,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
       
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,39 +12,39 @@
 | 
			
		|||
                        <RadzenRow>
 | 
			
		||||
                            <RadzenColumn Size="8" Class="rz-text-truncate">
 | 
			
		||||
                                <b class="rz-pr-3">@(channel.DrawerNo)</b>
 | 
			
		||||
                                <b>@myText.Box</b>
 | 
			
		||||
                                <b>号手术间</b>
 | 
			
		||||
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="4" Class="rz-text-align-end">
 | 
			
		||||
                                @if (channel.TotalQuantity == 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    <RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@(() => EditChannel(channel))" Text="@myText.BindUnBind" />
 | 
			
		||||
                                    <RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@(() => EditChannel(channel))" Text="绑定/解绑" />
 | 
			
		||||
                                }
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                        <hr style="border: none; background-color: rgba(0,0,0,.2); height: 1px; margin: 1rem 0;" />
 | 
			
		||||
                        <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenStack Gap="0">
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">@myText.SetMenu</RadzenText>
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">套餐</RadzenText>
 | 
			
		||||
                                @if (channel.DrugId == null || channel.TotalQuantity == 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    <RadzenDropDownDataGrid AllowVirtualization="true" Name="planName" TValue="Plan" @bind-Value="channel.PlanInfo" Data="@plans"
 | 
			
		||||
                                                            Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
 | 
			
		||||
                                    
 | 
			
		||||
                                        <Columns>
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="Name" Title="@myText.MenuName" Sortable="false" />
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="Name" Title="套餐名称" Sortable="false" />
 | 
			
		||||
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="Description" Width="120px" Title="@myText.MenuDescrip" Sortable="false" />
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="Description" Width="120px" Title="套餐描述" Sortable="false" />
 | 
			
		||||
                                        </Columns>
 | 
			
		||||
                                    </RadzenDropDownDataGrid>
 | 
			
		||||
                                    <RadzenCustomValidator Component="planName" Validator="@(() => (channel.PlanInfo.Id > 0))" Popup=true Text="@myText.SelectMenu" />
 | 
			
		||||
                                    <RadzenCustomValidator Component="planName" Validator="@(()=>(channel.PlanInfo.Id>0))" Popup=true Text="请先选择套餐再点击绑定按钮" />
 | 
			
		||||
 | 
			
		||||
                                }
 | 
			
		||||
                                else
 | 
			
		||||
                                {
 | 
			
		||||
                                    <RadzenText TextStyle="TextStyle.Body1"><b>@(channel.PlanInfo.Name)</b></RadzenText>
 | 
			
		||||
                                }
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">@myText.TotalStock</RadzenText>
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">总库存</RadzenText>
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Body1"><b>@(channel.TotalQuantity)</b></RadzenText>
 | 
			
		||||
                            </RadzenStack>
 | 
			
		||||
                        </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -60,8 +60,6 @@
 | 
			
		|||
    @inject IDrugInfoDao drugInfoDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataList<ChannelList> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +77,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
 | 
			
		||||
        //drugInfos = await drugInfoDao.GetAllDrug();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,17 +9,17 @@
 | 
			
		|||
<RadzenStack Gap="1rem" Orientation="Orientation.Vertical" Style="height: 100%;">
 | 
			
		||||
    <RadzenStack>
 | 
			
		||||
        <RadzenStack class="rz-p-4 rz-border-radius-1" Style="border: var(--rz-grid-cell-border)" Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.DrugName:</RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">药名:</RadzenText>
 | 
			
		||||
            <RadzenText  Class="rz-text-truncate"><b>@(channelStock.Drug.DrugName)</b></RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Spec:</RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">规格:</RadzenText>
 | 
			
		||||
            <RadzenText TextStyle="TextStyle.Body1" Class="rz-text-truncate"><b>@(channelStock.Drug.DrugSpec)</b></RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Batch:</RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">批次:</RadzenText>
 | 
			
		||||
            <RadzenText TextStyle="TextStyle.Body1" Class="rz-text-truncate"><b>@(channelStock.ManuNo)</b></RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Expiration:</RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">效期:</RadzenText>
 | 
			
		||||
            <RadzenText TextStyle="TextStyle.Body1" Class="rz-text-truncate"><b>@(channelStock.EffDate)</b></RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Inventory:</RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">库存:</RadzenText>
 | 
			
		||||
            <RadzenText TextStyle="TextStyle.Body1" Class="rz-text-truncate"><b>@(channelStock.Quantity)</b></RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.ReplaceDrug:</RadzenText>
 | 
			
		||||
            <RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">交换药箱:</RadzenText>
 | 
			
		||||
            <RadzenDropDown @bind-Value="SelectedDrawerNo" Data="@DrawerNos" Style="display: block;" Change="@(args => SelectedDrawerChange(args))" Name="DropDownChangeEvent">
 | 
			
		||||
              
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@(SelectedDrawerNo)</RadzenText>
 | 
			
		||||
| 
						 | 
				
			
			@ -27,21 +27,21 @@
 | 
			
		|||
            </RadzenDropDown>
 | 
			
		||||
 | 
			
		||||
        </RadzenStack>
 | 
			
		||||
        <RadzenDataGrid @ref="grid" Data="@selectedDrawerData" AllowAlternatingRows="true" LoadData="@LoadData" IsLoading="@isLoading" Count="@count" EmptyText="@myText.NoDate"
 | 
			
		||||
        <RadzenDataGrid @ref="grid" Data="@selectedDrawerData" AllowAlternatingRows="true" LoadData="@LoadData" IsLoading="@isLoading" Count="@count" EmptyText="无数据"
 | 
			
		||||
                        CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))" 
 | 
			
		||||
                            AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
 | 
			
		||||
            <Columns>
 | 
			
		||||
                <RadzenDataGridColumn Property="DrawerNo" Title="@myText.Box">
 | 
			
		||||
                <RadzenDataGridColumn Property="DrawerNo" Title="药箱号">
 | 
			
		||||
                </RadzenDataGridColumn>
 | 
			
		||||
                <RadzenDataGridColumn Property="Drug.DrugName" Title="@myText.DrugName" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Drug.DrugSpec" Title="@myText.Spec" />
 | 
			
		||||
                <RadzenDataGridColumn Property="ChannelStock.ManuNo" Title="@myText.Batch" />
 | 
			
		||||
                <RadzenDataGridColumn Property="ChannelStock.EffDate" Title="@myText.Expiration" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Quantity" Title="@myText.Inventory" />
 | 
			
		||||
                <RadzenDataGridColumn MinWidth="100px" Title="@myText.ExchangeNum" Property="AddQuantity">
 | 
			
		||||
                <RadzenDataGridColumn Property="Drug.DrugName" Title="药品" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Drug.DrugSpec" Title="规格" />
 | 
			
		||||
                <RadzenDataGridColumn Property="ChannelStock.ManuNo" Title="批次" />
 | 
			
		||||
                <RadzenDataGridColumn Property="ChannelStock.EffDate" Title="效期" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Quantity" Title="库存" />
 | 
			
		||||
                 <RadzenDataGridColumn MinWidth="100px" Title="交换数量" Property="AddQuantity">
 | 
			
		||||
                    <EditTemplate Context="cs">
 | 
			
		||||
                            <RadzenNumeric Min="0" Style="display: block" Max=@cs.Quantity Name="Quantity" @bind-Value=@cs.AddQuantity />
 | 
			
		||||
                        <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Text="@myText.InputCorrectNum" Component="Quantity" Popup="true" />
 | 
			
		||||
                            <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Text="请填写正确的交换数量" Component="Quantity" Popup="true" />
 | 
			
		||||
                    </EditTemplate>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            </Columns>
 | 
			
		||||
| 
						 | 
				
			
			@ -50,9 +50,9 @@
 | 
			
		|||
    </RadzenStack>
 | 
			
		||||
    <RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" Gap="0.5rem">
 | 
			
		||||
 | 
			
		||||
        <RadzenButton Click="@Save" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="@myText.SaveSet" Style="width: 120px" />
 | 
			
		||||
        <RadzenButton Click="@Save" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="保存" Style="width: 120px" />
 | 
			
		||||
 | 
			
		||||
        <RadzenButton Click="@Cancel" Variant="Variant.Flat" Text="@myText.Cancel" Style="width: 120px" />
 | 
			
		||||
        <RadzenButton Click="@Cancel" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
 | 
			
		||||
 | 
			
		||||
    </RadzenStack>
 | 
			
		||||
</RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -63,8 +63,6 @@
 | 
			
		|||
    @inject IOptions<SettingConfig> setting;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject PortUtil PortUtil;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    private readonly ILog logger = LogManager.GetLogger(typeof(OrderDetailDialog));
 | 
			
		||||
 | 
			
		||||
    int status;
 | 
			
		||||
| 
						 | 
				
			
			@ -88,9 +86,8 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        DrawerNos = await channelListDao.GetDrawerNum(channelStock);
 | 
			
		||||
        await  base.OnInitializedAsync();
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
    async Task LoadData(LoadDataArgs args)
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -130,18 +127,18 @@
 | 
			
		|||
        {
 | 
			
		||||
            if (selectedDrawerData.Where(cs => cs.AddQuantity != 0).Sum(cs => cs.Quantity) > channelStock.Quantity)
 | 
			
		||||
            {
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = myText.Tips, Detail = $"交换总数量不能大于库存", Duration = 4000 });
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = "提示", Detail = $"交换总数量不能大于库存", Duration = 4000 });
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            var b = await channelListDao.BoxReplaceFinish(channelStock,selectedDrawerData.Where(cl => cl.AddQuantity != 0).ToList());
 | 
			
		||||
            if (!b)
 | 
			
		||||
            {
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"数据保存失败", Duration = 4000 });
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"数据保存失败", Duration = 4000 });
 | 
			
		||||
                logger.Error($"药箱药品替换保存数据库失败,数据{JsonConvert.SerializeObject(selectedDrawerData.Where(cl => cl.AddQuantity != 0).ToList())}");
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = $"交换完成", Duration = 4000 });
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"交换完成", Duration = 4000 });
 | 
			
		||||
                // 关闭弹窗
 | 
			
		||||
                dialogService.Close(true);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -151,7 +148,7 @@
 | 
			
		|||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = myText.Tips, Detail = $"无可交换数据或未输入交换数量", Duration = 4000 });
 | 
			
		||||
            _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = "提示", Detail = $"无可交换数据或未输入交换数量", Duration = 4000 });
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,29 +90,29 @@
 | 
			
		|||
                                            <RadzenColumn Size="12" SizeMD="6" SizeLG="2">
 | 
			
		||||
                                                @if (manuNo == 0)
 | 
			
		||||
                                                {
 | 
			
		||||
                                                    <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.Batch</RadzenText>
 | 
			
		||||
                                                    <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">批次</RadzenText>
 | 
			
		||||
                                                }
 | 
			
		||||
                                                <RadzenText TextStyle="TextStyle.Body2">@(manuInfo.ManuNo)</RadzenText>
 | 
			
		||||
                                            </RadzenColumn>
 | 
			
		||||
                                            <RadzenColumn Size="12" SizeMD="6" SizeLG="2">
 | 
			
		||||
                                                @if (manuNo == 0)
 | 
			
		||||
                                                {
 | 
			
		||||
                                                    <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.Expiration</RadzenText>
 | 
			
		||||
                                                    <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">效期</RadzenText>
 | 
			
		||||
                                                }
 | 
			
		||||
                                                <RadzenText TextStyle="TextStyle.Body2">@(manuInfo.EffDate)</RadzenText>
 | 
			
		||||
                                            </RadzenColumn>
 | 
			
		||||
                                            <RadzenColumn Size="12" SizeMD="6" SizeLG="2">
 | 
			
		||||
                                                @if (manuNo == 0)
 | 
			
		||||
                                                {
 | 
			
		||||
                                                    <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.Inventory</RadzenText>
 | 
			
		||||
                                                    <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">库存</RadzenText>
 | 
			
		||||
                                                }
 | 
			
		||||
                                                <RadzenText TextStyle="TextStyle.Body2">@(manuInfo.Quantity)</RadzenText>
 | 
			
		||||
                                            </RadzenColumn>
 | 
			
		||||
                                            <RadzenColumn Size="12" SizeLG="2" class="rz-p-4">
 | 
			
		||||
                                                <RadzenButton Text="@myText.ReplaceDrug" Style="width: 100%" Click="@(() => replaceClick(manuInfo))" />
 | 
			
		||||
                                                <RadzenButton Text="替换药品" Style="width: 100%" Click="@(() => replaceClick(manuInfo))" />
 | 
			
		||||
                                            </RadzenColumn>
 | 
			
		||||
                                            <RadzenColumn Size="12" SizeLG="2" class="rz-p-4">
 | 
			
		||||
                                                <RadzenButton Text="@myText.RemoveDrug" Style="width: 100%" Click="@(() => removeClick(manuInfo))" />
 | 
			
		||||
                                                <RadzenButton Text="移出药品" Style="width: 100%" Click="@(() => removeClick(manuInfo))" />
 | 
			
		||||
                                            </RadzenColumn>
 | 
			
		||||
                                        </RadzenRow>
 | 
			
		||||
                                    }
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +120,7 @@
 | 
			
		|||
                                    {
 | 
			
		||||
                                        <RadzenRow Gap="0">
 | 
			
		||||
                                            <RadzenColumn Size="12" SizeMD="6" SizeLG="2">
 | 
			
		||||
                                                <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.NotBind</RadzenText>
 | 
			
		||||
                                                <RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">未绑定批次</RadzenText>
 | 
			
		||||
                                            </RadzenColumn>
 | 
			
		||||
                                        </RadzenRow>
 | 
			
		||||
                                    }
 | 
			
		||||
| 
						 | 
				
			
			@ -140,8 +140,6 @@
 | 
			
		|||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
    private IEnumerable<PlanDetails>? _forecasts;
 | 
			
		||||
    bool allowRowSelectOnRowClick = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -161,11 +159,6 @@
 | 
			
		|||
        this.drawerNo = drawerNo;
 | 
			
		||||
        grid.Reload();
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
    // void OnCurrentDateChanged(DateTime args)
 | 
			
		||||
    // {
 | 
			
		||||
    //     OrderDate = new DateTime(args.Year, args.Month, args.Day);
 | 
			
		||||
| 
						 | 
				
			
			@ -216,7 +209,7 @@
 | 
			
		|||
        {
 | 
			
		||||
            //库存为0无法操作
 | 
			
		||||
            _message.Notify(
 | 
			
		||||
            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"库存为0无法替换", Duration = 4000 }
 | 
			
		||||
            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"库存为0无法替换", Duration = 4000 }
 | 
			
		||||
        );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -239,7 +232,7 @@
 | 
			
		|||
        {
 | 
			
		||||
            //库存为0无法操作
 | 
			
		||||
            _message.Notify(
 | 
			
		||||
            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"库存为0,没有要移出的药品", Duration = 4000 }
 | 
			
		||||
            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"库存为0,没有要移出的药品", Duration = 4000 }
 | 
			
		||||
        );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,30 +17,30 @@
 | 
			
		|||
            @if (userI == 1)
 | 
			
		||||
            {
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
 | 
			
		||||
                    @myText.HandoverOperator1 @FromOperator?.NickName
 | 
			
		||||
                    <p>@myText.LoginCheck</p>
 | 
			
		||||
                    请交班操作人 @FromOperator?.NickName
 | 
			
		||||
                    <p>登录验证</p>
 | 
			
		||||
                </RadzenText>
 | 
			
		||||
            }
 | 
			
		||||
            else if (userI == 2)
 | 
			
		||||
            {
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
 | 
			
		||||
                    @myText.HandoverChecker1  @FromRviewer?.NickName
 | 
			
		||||
                    <p>@myText.LoginCheck</p>
 | 
			
		||||
                    请交班复核人 @FromRviewer?.NickName
 | 
			
		||||
                    <p>登录验证</p>
 | 
			
		||||
                </RadzenText>
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            @if (userI == 3)
 | 
			
		||||
            {
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
 | 
			
		||||
                    @myText.HandoverOperator2 @ToOperator?.NickName
 | 
			
		||||
                    <p>@myText.LoginCheck</p>
 | 
			
		||||
                    请接班操作人 @ToOperator?.NickName
 | 
			
		||||
                    <p>登录验证</p>
 | 
			
		||||
                </RadzenText>
 | 
			
		||||
            }
 | 
			
		||||
            else if (userI == 4)
 | 
			
		||||
            {
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
 | 
			
		||||
                    @myText.HandoverChecker2 @ToReviewer?.NickName
 | 
			
		||||
                    <p>@myText.LoginCheck</p>
 | 
			
		||||
                    请接班复核人 @ToReviewer?.NickName
 | 
			
		||||
                    <p>登录验证</p>
 | 
			
		||||
                </RadzenText>
 | 
			
		||||
            }
 | 
			
		||||
        </RadzenCard>
 | 
			
		||||
| 
						 | 
				
			
			@ -48,29 +48,29 @@
 | 
			
		|||
    <RadzenColumn Size="12" SizeMD="7">
 | 
			
		||||
        <RadzenCard Class="rz-shadow-0 rz-border-radius-0 rz-p-12" Style="width:100%;height:100%">
 | 
			
		||||
            <RadzenText TextStyle="TextStyle.H5" TagName="TagName.H2" class="rz-mb-6">
 | 
			
		||||
                @myText.Login
 | 
			
		||||
                登录
 | 
			
		||||
            </RadzenText>
 | 
			
		||||
            <RadzenTemplateForm Data="@loginModel" Submit="@((Pojo.User args) => { Submit(args); })" Style="width:100%;height:100%">
 | 
			
		||||
                <div class="rz-form-row">
 | 
			
		||||
                    <label class="rz-label" for="username">@myText.Account</label>
 | 
			
		||||
                    <label class="rz-label" for="username">账号</label>
 | 
			
		||||
                    <div class="rz-form-input-wrapper">
 | 
			
		||||
                        <!--@onfocusin="@(() => Util.VirtualKeyboardHelper.ShowVirtualKeyboard())"-->
 | 
			
		||||
                        <RadzenTextBox id="username" Name="Username" @bind-Value="@loginModel.Username" Style="width:100%" />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Username" Text="@myText.loginTips1" />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Username" Text="请填写用户名" />
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="rz-form-row">
 | 
			
		||||
                    <label class="rz-label" for="password">密码</label>
 | 
			
		||||
                    <div class="rz-form-input-wrapper">
 | 
			
		||||
                        <RadzenPassword id="password" Name="Password" @bind-Value="@loginModel.Password" Style="width:100%" />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Password" Text="@myText.loginTips2" />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Password" Text="请填写密码" />
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="rz-form-row">
 | 
			
		||||
                    <label class="rz-label"></label>
 | 
			
		||||
                    <div class="rz-form-input-wrapper rz-login-buttons">
 | 
			
		||||
                        <RadzenButton Style="background:#255dd4;color:white;width:110px" ButtonType="ButtonType.Submit" Text="@myText.Login" />
 | 
			
		||||
                        <RadzenButton Style="border-color:#255dd4;width:110px" Variant="Variant.Outlined" Text="@myText.Cancel" Click="@Exit" />
 | 
			
		||||
                        <RadzenButton Style="background:#255dd4;color:white;width:110px" ButtonType="ButtonType.Submit" Text="登录" />
 | 
			
		||||
                        <RadzenButton Style="border-color:#255dd4;width:110px" Variant="Variant.Outlined" Text="取消" Click="@Exit" />
 | 
			
		||||
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -90,8 +90,6 @@
 | 
			
		|||
    @inject GlobalStateService globalStateService;
 | 
			
		||||
    @inject IUserDao userDao;
 | 
			
		||||
    @inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -112,9 +110,8 @@
 | 
			
		|||
 | 
			
		||||
    private Pojo.User loginModel = new();
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    protected override Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        FingerprintUtil.axCZKEM1.OnAttTransactionEx += axCZKEM1_OnAttTransactionEx;
 | 
			
		||||
 | 
			
		||||
        loginMode = setting.Value.loginMode;
 | 
			
		||||
| 
						 | 
				
			
			@ -130,7 +127,7 @@
 | 
			
		|||
        {
 | 
			
		||||
            FromRviewer = userDao.GetByUsername(hkcChange.FromRviewer);
 | 
			
		||||
        }
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
        return base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private async Task SetUser(Pojo.User user)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,11 +5,11 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.StartDate" Component="Start" />
 | 
			
		||||
                                <RadzenLabel Text="开始时间" Component="Start" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="start" Style="width: 100%;" Name="Start" />
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.EndDate" Component="End" />
 | 
			
		||||
                                <RadzenLabel Text="结束时间" Component="End" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="end" Style="width: 100%;" Name="End" />
 | 
			
		||||
| 
						 | 
				
			
			@ -26,8 +26,8 @@
 | 
			
		|||
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -40,36 +40,36 @@
 | 
			
		|||
                            LoadData="@LoadData"
 | 
			
		||||
                            IsLoading="@isLoading"
 | 
			
		||||
                            Count="@count"
 | 
			
		||||
                            EmptyText="@myText.NoDate"
 | 
			
		||||
                            EmptyText="无数据"
 | 
			
		||||
                            Data="@_forecasts"
 | 
			
		||||
                            AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                            SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                            AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Date" Property="optDate">
 | 
			
		||||
                    <RadzenDataGridColumn Title="日期" Property="optDate">
 | 
			
		||||
                        <Template Context="mr">
 | 
			
		||||
                            @mr.optDate.ToString("yyyy-MM-dd")
 | 
			
		||||
                        </Template>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.HandoverOperator1" Property="FromOperator"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.HandoverChecker1" Property="FromRviewer"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.HandoverOperator2" Property="ToOperator"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.HandoverChecker2" Property="ToReviewer"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.HandoverDate" Property="ToDate">
 | 
			
		||||
                    <RadzenDataGridColumn Title="交班发药人" Property="FromOperator"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="交班审核人" Property="FromRviewer"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="接班发药人" Property="ToOperator"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="接班审核人" Property="ToReviewer"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="接班日期" Property="ToDate">
 | 
			
		||||
 | 
			
		||||
                        <Template Context="mr">
 | 
			
		||||
                            @mr.ToDate.ToString("yyyy-MM-dd")
 | 
			
		||||
                        </Template>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.HandoverState" Property="State">
 | 
			
		||||
                    <RadzenDataGridColumn Title="当班状态" Property="State">
 | 
			
		||||
                        <Template Context="state">
 | 
			
		||||
                            @if(state.State=="0")
 | 
			
		||||
                            {
 | 
			
		||||
                                <RadzenText>@myText.OnDuty</RadzenText>
 | 
			
		||||
                                <RadzenText>值班中</RadzenText>
 | 
			
		||||
                            }
 | 
			
		||||
                            else
 | 
			
		||||
                            {
 | 
			
		||||
                                <RadzenText>@myText.NotDuty</RadzenText>
 | 
			
		||||
                                <RadzenText>已交班</RadzenText>
 | 
			
		||||
                            }
 | 
			
		||||
                        </Template>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
| 
						 | 
				
			
			@ -84,10 +84,6 @@
 | 
			
		|||
    @inject DialogService dialogService;
 | 
			
		||||
 | 
			
		||||
    @inject NavigationManager navigate;
 | 
			
		||||
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
    RadzenDataGrid<HkcChangeShifts> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -124,9 +120,4 @@
 | 
			
		|||
        end = DateTime.MinValue;
 | 
			
		||||
        await grid.Reload();
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -13,11 +13,11 @@
 | 
			
		|||
    </div>
 | 
			
		||||
    <div class="col-9 mb-4">
 | 
			
		||||
        <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
            <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
            <RadzenFieldset Text="查询">
 | 
			
		||||
                <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                    <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                        <RadzenColumn Size="4">
 | 
			
		||||
                            <RadzenLabel Text="@myText.OrderNo" Component="OrderNo" />
 | 
			
		||||
                            <RadzenLabel Text="处方号" Component="OrderNo" />
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="8">
 | 
			
		||||
                            <RadzenTextBox @bind-Value="OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -25,7 +25,7 @@
 | 
			
		|||
                    </RadzenRow>
 | 
			
		||||
                    <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                        <RadzenColumn Size="4">
 | 
			
		||||
                            <RadzenLabel Text="@myText.OrderDate" Component="OrderDate" />
 | 
			
		||||
                            <RadzenLabel Text="处方时间" Component="OrderDate" />
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="8">
 | 
			
		||||
                            <RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" @bind-Value="OrderDate" Style="width: 100%;" Name="OrderDate" />
 | 
			
		||||
| 
						 | 
				
			
			@ -34,18 +34,18 @@
 | 
			
		|||
 | 
			
		||||
                    <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                        <RadzenColumn Size="12">
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                    </RadzenRow>
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
            </RadzenFieldset>
 | 
			
		||||
            <RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" IsBusy="isLoading" Icon="check_circle" Text="@myText.Confirm" Style="margin:0.5rem" />
 | 
			
		||||
            <RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" IsBusy="isLoading" Icon="check_circle" Text="确认" Style="margin:0.5rem" />
 | 
			
		||||
 | 
			
		||||
        </form>
 | 
			
		||||
        <RadzenDataGrid @ref="grid" AllowRowSelectOnRowClick="@allowRowSelectOnRowClick" AllowFiltering="true" LoadData="@LoadData"
 | 
			
		||||
                        FilterPopupRenderMode="PopupRenderMode.OnDemand" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
 | 
			
		||||
                        Data="@orderInfos" ColumnWidth="200px" IsLoading="@isLoading" Count="@count" EmptyText="@myText.NoDate"
 | 
			
		||||
                        Data="@orderInfos" ColumnWidth="200px" IsLoading="@isLoading" Count="@count" EmptyText="无数据"
 | 
			
		||||
                        SelectionMode="DataGridSelectionMode.Multiple" @bind-Value=@selectedOrderInfos
 | 
			
		||||
                        AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
 | 
			
		||||
            <Columns>
 | 
			
		||||
| 
						 | 
				
			
			@ -60,10 +60,10 @@
 | 
			
		|||
                                        TValue="bool" Change="@(args => { if (!allowRowSelectOnRowClick) { grid.SelectRow(data); } })" />
 | 
			
		||||
                    </Template>
 | 
			
		||||
                </RadzenDataGridColumn>
 | 
			
		||||
                <RadzenDataGridColumn Property="PatientName" Title="@myText.Name" Sortable="false" Filterable="false" Width="4rem" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Sex" Title="@myText.Sex" Sortable="false" Filterable="false" Width="2rem" />
 | 
			
		||||
                <RadzenDataGridColumn Property="OrderNo" Title="@myText.OrderNo" Sortable="false" Filterable="false" Width="8rem" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Detail.Drug.DrugName" Title="@myText.DrugName" FormatString="{0:d}" Sortable="false" Filterable="false" Width="8rem">
 | 
			
		||||
                <RadzenDataGridColumn Property="PatientName" Title="姓名" Sortable="false" Filterable="false" Width="4rem" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Sex" Title="性别" Sortable="false" Filterable="false" Width="2rem" />
 | 
			
		||||
                <RadzenDataGridColumn Property="OrderNo" Title="单号" Sortable="false" Filterable="false" Width="8rem" />
 | 
			
		||||
                <RadzenDataGridColumn Property="Detail.Drug.DrugName" Title="药品名称" FormatString="{0:d}" Sortable="false" Filterable="false" Width="8rem">
 | 
			
		||||
                    <Template Context="DetailList">
 | 
			
		||||
                        @for (int i = 0; i < DetailList.DetailList.Count; i++)
 | 
			
		||||
                        {
 | 
			
		||||
| 
						 | 
				
			
			@ -72,7 +72,7 @@
 | 
			
		|||
                        }
 | 
			
		||||
                    </Template>
 | 
			
		||||
                </RadzenDataGridColumn>
 | 
			
		||||
                <RadzenDataGridColumn Property="Detail.SetManuNo" Title="@myText.Batch" Sortable="false" Filterable="false" Width="8rem">
 | 
			
		||||
                <RadzenDataGridColumn Property="Detail.SetManuNo" Title="药品批次" Sortable="false" Filterable="false" Width="8rem">
 | 
			
		||||
                    <Template Context="DetailList">
 | 
			
		||||
                        @for (int i = 0; i < DetailList.DetailList.Count; i++)
 | 
			
		||||
                        {
 | 
			
		||||
| 
						 | 
				
			
			@ -81,7 +81,7 @@
 | 
			
		|||
                        }
 | 
			
		||||
                    </Template>
 | 
			
		||||
                </RadzenDataGridColumn>
 | 
			
		||||
                <RadzenDataGridColumn Property="Detail.Quantity" Title="@myText.Quantity" Sortable="false" Filterable="false" Width="2rem">
 | 
			
		||||
                <RadzenDataGridColumn Property="Detail.Quantity" Title="数量" Sortable="false" Filterable="false" Width="2rem">
 | 
			
		||||
                    <Template Context="DetailList">
 | 
			
		||||
                        @for (int i = 0; i < DetailList.DetailList.Count; i++)
 | 
			
		||||
                        {
 | 
			
		||||
| 
						 | 
				
			
			@ -98,8 +98,6 @@
 | 
			
		|||
    @inject IOrderInfoDao orderInfoDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
    bool allowRowSelectOnRowClick = true;
 | 
			
		||||
    IEnumerable<OrderInfo> orderInfos;
 | 
			
		||||
| 
						 | 
				
			
			@ -148,11 +146,6 @@
 | 
			
		|||
 | 
			
		||||
        DrawerNos = await orderInfoDao.GetDrawerNum(setting.Value.boxMachineId);
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
    // protected override async Task OnInitializedAsync()
 | 
			
		||||
    // {
 | 
			
		||||
    //     await base.OnInitializedAsync();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,7 @@
 | 
			
		|||
    LoadData="@LoadData"
 | 
			
		||||
    IsLoading="@isLoading"
 | 
			
		||||
    Count="@count"
 | 
			
		||||
    EmptyText="@myText.NoDate"
 | 
			
		||||
    EmptyText="无数据"
 | 
			
		||||
    Data="@channels"
 | 
			
		||||
    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
    CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
 | 
			
		||||
| 
						 | 
				
			
			@ -49,27 +49,27 @@
 | 
			
		|||
            <RadzenRow JustifyContent="JustifyContent.End">
 | 
			
		||||
                @if (status < 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton IsBusy="@(status > 0)" BusyText="@myText.Adding" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Add" Click="@OpenDrawer" />
 | 
			
		||||
                    <RadzenButton IsBusy="@(status>0)" BusyText="加药中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="加药" Click="@OpenDrawer" />
 | 
			
		||||
                }
 | 
			
		||||
                @if (status == 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Complete" Click="@AddFinish" />
 | 
			
		||||
                    <RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="完成" Click="@AddFinish" />
 | 
			
		||||
                }
 | 
			
		||||
                @if (status > 0 && status <= 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                    <RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="取消" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                }
 | 
			
		||||
            </RadzenRow>
 | 
			
		||||
        </HeaderTemplate>
 | 
			
		||||
        <Columns>
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.Drug?.DrugName</RadzenText>
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Caption">@channel.Drug?.DrugSpec</RadzenText>
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo">
 | 
			
		||||
            <RadzenDataGridColumn Title="批次" Property="ManuNo">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.drugManuNo?.ManuNo</RadzenText>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +120,7 @@
 | 
			
		|||
                                </RadzenStack>
 | 
			
		||||
                            </ValueTemplate>
 | 
			
		||||
                        </RadzenDropDown>
 | 
			
		||||
                        <RadzenRequiredValidator Text="@myText.SelectBatch" Component="ManuNo" Popup="true" />
 | 
			
		||||
                        <RadzenRequiredValidator Text="请选择批次" Component="ManuNo" Popup="true" />
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -130,12 +130,12 @@
 | 
			
		|||
                    }
 | 
			
		||||
                </EditTemplate>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Inventory" Property="Quantity">
 | 
			
		||||
            <RadzenDataGridColumn Title="库存" Property="Quantity">
 | 
			
		||||
                <Template Context="cs">
 | 
			
		||||
                    <RadzenButton ButtonStyle="ButtonStyle.Info" Variant="Variant.Flat" Shade="Shade.Lighter" class="m-1" Text="@cs.Quantity.ToString()" />
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn MinWidth="100px" Title="@myText.AddQuantity" Property="AddQuantity">
 | 
			
		||||
            <RadzenDataGridColumn MinWidth="100px" Title="加药数量" Property="AddQuantity">
 | 
			
		||||
                <EditTemplate Context="cs">
 | 
			
		||||
                    @if (cs.BoardType.ToString().Contains("2") || cs.BoardType.ToString().Contains("3"))
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -144,7 +144,7 @@
 | 
			
		|||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        <RadzenNumeric Min="0" Style="display: block" Name="Quantity" @bind-Value=@cs.AddQuantity />
 | 
			
		||||
                        <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Text="@myText.InputCorrectNum" Component="Quantity" Popup="true" />
 | 
			
		||||
                        <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Text="请填写正确的添加数量" Component="Quantity" Popup="true" />
 | 
			
		||||
                    }
 | 
			
		||||
                </EditTemplate>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
| 
						 | 
				
			
			@ -158,8 +158,6 @@
 | 
			
		|||
    @inject PortUtil PortUtil;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject IOptions<DrawerConfig> setting;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    int status = 0;
 | 
			
		||||
    int drawerNo = 1;
 | 
			
		||||
    RadzenDataGrid<ChannelStock> grid;
 | 
			
		||||
| 
						 | 
				
			
			@ -519,9 +517,4 @@
 | 
			
		|||
    {
 | 
			
		||||
        registration?.Dispose();
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,7 @@
 | 
			
		|||
                    LoadData="@LoadData"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@channels"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
 | 
			
		||||
| 
						 | 
				
			
			@ -49,38 +49,38 @@
 | 
			
		|||
            <RadzenRow JustifyContent="JustifyContent.End">
 | 
			
		||||
                @if (status < 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton IsBusy="@(status > 0)" BusyText="@myText.Taking" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Take" Click="@OpenDrawer" />
 | 
			
		||||
                    <RadzenButton IsBusy="@(status>0)" BusyText="取药中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="取药" Click="@OpenDrawer" />
 | 
			
		||||
                }
 | 
			
		||||
                @if (status == 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Complete" Click="@TakeFinish" />
 | 
			
		||||
                    <RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="完成" Click="@TakeFinish" />
 | 
			
		||||
                }
 | 
			
		||||
                @if (status > 0 && status <= 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                    <RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="取消" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                }
 | 
			
		||||
            </RadzenRow>
 | 
			
		||||
        </HeaderTemplate>
 | 
			
		||||
        <Columns>
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.Drug.DrugName</RadzenText>
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Caption">@channel.Drug.DrugSpec</RadzenText>
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo">
 | 
			
		||||
            <RadzenDataGridColumn Title="批次" Property="ManuNo">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.ManuNo</RadzenText>
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Caption">@channel.EffDate</RadzenText>
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Inventory" Property="Quantity">
 | 
			
		||||
            <RadzenDataGridColumn Title="库存" Property="Quantity">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenButton ButtonStyle="ButtonStyle.Info" Size="ButtonSize.Medium" Variant="Variant.Flat" Shade="Shade.Lighter" class="m-1" Text="@channel.Quantity.ToString()" />
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn MinWidth="120px" Title="@myText.TakeQuantity" Property="TakeQuantity">
 | 
			
		||||
            <RadzenDataGridColumn MinWidth="120px" Title="取药数量" Property="TakeQuantity">
 | 
			
		||||
                <EditTemplate Context="channel">
 | 
			
		||||
                    @if (channel.BoardType.ToString().Contains("2") || channel.BoardType.ToString().Contains("3"))
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -103,8 +103,6 @@
 | 
			
		|||
    @inject PortUtil PortUtil;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject IOptions<DrawerConfig> setting;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    int status = 0;
 | 
			
		||||
    int drawerNo = 1;
 | 
			
		||||
    RadzenDataGrid<ChannelStock> grid;
 | 
			
		||||
| 
						 | 
				
			
			@ -122,11 +120,7 @@
 | 
			
		|||
    bool CancleIsEnable = true;
 | 
			
		||||
 | 
			
		||||
    private readonly ILog logger = LogManager.GetLogger(typeof(DrawerTake));
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async Task LoadData(LoadDataArgs args)
 | 
			
		||||
    {
 | 
			
		||||
        isLoading = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -179,7 +173,7 @@
 | 
			
		|||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        _message.Notify(
 | 
			
		||||
                            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
 | 
			
		||||
                            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
 | 
			
		||||
                        );
 | 
			
		||||
                        logger.Info($"抽屉打开失败");
 | 
			
		||||
                        RestData();
 | 
			
		||||
| 
						 | 
				
			
			@ -277,7 +271,7 @@
 | 
			
		|||
            {
 | 
			
		||||
                logger.Info($"抽屉取药发生错误,{e.Message}");
 | 
			
		||||
                _message.Notify(
 | 
			
		||||
                    new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"发生错误,{e.Message}", Duration = 4000 }
 | 
			
		||||
                    new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"发生错误,{e.Message}", Duration = 4000 }
 | 
			
		||||
                );
 | 
			
		||||
                if (setting.Value.single.Contains(this.drawerNo))
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -403,7 +397,7 @@
 | 
			
		|||
            var b = await channelListDao.DrawerOperationFinish(channels.Where(cl => cl.TakeQuantity != 0).ToList(), 2);
 | 
			
		||||
            if (!b)
 | 
			
		||||
            {
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"数据保存失败", Duration = 4000 });
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"数据保存失败", Duration = 4000 });
 | 
			
		||||
                logger.Error($"抽屉取药保存数据库失败,数据{JsonConvert.SerializeObject(channels)}");
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,11 +10,11 @@
 | 
			
		|||
        <div class="col-12  mb-4">
 | 
			
		||||
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.DrugCode" Component="DrugId" />
 | 
			
		||||
                                <RadzenLabel Text="药品编码" Component="DrugId" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenTextBox @bind-Value="DrugId" Style="width: 100%;" Name="DrugId"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.DrugName" Component="DrugName" />
 | 
			
		||||
                                <RadzenLabel Text="药品名称" Component="DrugName" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenTextBox @bind-Value="DrugName" Style="width: 100%;" Name="DrugName"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -31,9 +31,9 @@
 | 
			
		|||
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertDrugRow" Text="@myText.AddDrug" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertDrugRow" Text="新增药品" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -46,38 +46,38 @@
 | 
			
		|||
            @bind-Value="@SelectedDrugs"
 | 
			
		||||
            IsLoading="@isLoading"
 | 
			
		||||
            Count="@count"
 | 
			
		||||
            EmptyText="@myText.NoDate"
 | 
			
		||||
            EmptyText="无数据"
 | 
			
		||||
            Data="@_forecasts"
 | 
			
		||||
            AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
            SelectionMode="DataGridSelectionMode.Single" RowUpdate="@((DrugInfo di)=>{OnDrugUpdateRow(di);})" RowCreate="@((DrugInfo di)=>{OnDrugCreateRow(di);})"
 | 
			
		||||
            AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ColumnWidth="100px" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} ¹²{2}ÌõÊý¾Ý">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="@myText.DrugCode" Property="DrugId">
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="编码" Property="DrugId">
 | 
			
		||||
                        <EditTemplate Context="drugInfo">
 | 
			
		||||
                            <RadzenTextBox Name="DrugId" @bind-Value="drugInfo.DrugId" Style="width:100%; display: block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputCode" Component="DrugId" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写编码" Component="DrugId" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="200px" Title="@myText.DrugName" Property="DrugName">
 | 
			
		||||
                    <RadzenDataGridColumn Width="200px" Title="药品名称" Property="DrugName">
 | 
			
		||||
                        <EditTemplate Context="drugInfo">
 | 
			
		||||
                            <RadzenTextBox Name="DrugName" @bind-Value="drugInfo.DrugName" Style="width:100%;display:block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputDrugName" Component="DrugName" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写药品名称" Component="DrugName" Popup="true"/>
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Spec" Property="DrugSpec">
 | 
			
		||||
                    <RadzenDataGridColumn Title="规格" Property="DrugSpec">
 | 
			
		||||
                        <EditTemplate Context="drugInfo">
 | 
			
		||||
                            <RadzenTextBox Name="DrugSpec" @bind-Value="drugInfo.DrugSpec" Style="width:100%;display:block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputDrugSpec" Component="DrugSpec" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写规格" Component="DrugSpec" Popup="true"/>
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="200px" Title="@myText.Factory" Property="Manufactory">
 | 
			
		||||
                    <RadzenDataGridColumn  Width="200px"  Title="厂家" Property="Manufactory">
 | 
			
		||||
                        <EditTemplate Context="drugInfo">
 | 
			
		||||
                            <RadzenTextBox Name="Manufactory" @bind-Value="drugInfo.Manufactory" Style="width:100%;display:block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputDrugFactory" Component="Manufactory" Popup="true"/>
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写厂家" Component="Manufactory" Popup="true"/>
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
 | 
			
		||||
                    <RadzenDataGridColumn Context="drugInfo" Title="@myText.Operate" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right">
 | 
			
		||||
                    <RadzenDataGridColumn Context="drugInfo" Title="操作" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right">
 | 
			
		||||
                        <Template Context="drugInfo">
 | 
			
		||||
                            <RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" Click="@(args => EditDrugRow(drugInfo))" @onclick:stopPropagation="true">
 | 
			
		||||
                            </RadzenButton>
 | 
			
		||||
| 
						 | 
				
			
			@ -160,8 +160,6 @@
 | 
			
		|||
    @inject IDrugInfoDao drugInfoDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject IDrugManuNoDao drugManuNoDao;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<DrugInfo> grid;
 | 
			
		||||
    RadzenDataGrid<DrugManuNo> ManusGrid;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -337,10 +335,5 @@
 | 
			
		|||
        manuNoToInsert.Remove(dm);
 | 
			
		||||
        ManusGrid.Reload();
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
    <div class="top-row px-4">
 | 
			
		||||
        <RadzenButton Icon="account_circle" Style="margin-left: auto;" Click="@SaveMethod">
 | 
			
		||||
            <ChildContent>
 | 
			
		||||
                @myText.SaveSet
 | 
			
		||||
                保存设置
 | 
			
		||||
            </ChildContent>
 | 
			
		||||
        </RadzenButton>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -16,24 +16,24 @@
 | 
			
		|||
        <RadzenCard class="rz-my-6">
 | 
			
		||||
            <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Start" Wrap="FlexWrap.Wrap">
 | 
			
		||||
                <RadzenStack Orientation="Orientation.Vertical" Gap="4px">
 | 
			
		||||
                    @myText.TemperRange
 | 
			
		||||
                    冰箱温度区间
 | 
			
		||||
                    <RadzenTextBox Placeholder="2-8" Value="@temperatureRange" Change="@(args=>temperatureRange=args)"></RadzenTextBox>
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
                <RadzenStack Orientation="Orientation.Vertical" Gap="4px">
 | 
			
		||||
                    @myText.FridgeState
 | 
			
		||||
                    冰箱状态
 | 
			
		||||
                    <RadzenRadioButtonList Value=@fridgeStateValue TValue="int" Change=@(args => fridgeStateValue = args)>
 | 
			
		||||
                        <Items>
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="@myText.Open" Value="0" />
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="@myText.Close" Value="1" />
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="开" Value="0" />
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="关" Value="1" />
 | 
			
		||||
                        </Items>
 | 
			
		||||
                    </RadzenRadioButtonList>
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
                <RadzenStack Orientation="Orientation.Vertical" Gap="4px">
 | 
			
		||||
                    @myText.AlertState
 | 
			
		||||
                    报警状态
 | 
			
		||||
                    <RadzenRadioButtonList Value="@alertStateValue" TValue="int" Change="@(args=>alertStateValue=args)">
 | 
			
		||||
                        <Items>
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="@myText.Open"  Value="0"/>
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="@myText.Close" Value="1"/>
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="开" Value="0"/>
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="关" Value="1"/>
 | 
			
		||||
                        </Items>
 | 
			
		||||
                    </RadzenRadioButtonList>
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -46,22 +46,18 @@
 | 
			
		|||
@inject Microsoft.Extensions.Options.IOptions<Pojo.Config.fridgeConfig> setting;
 | 
			
		||||
@inject PortUtil port;
 | 
			
		||||
@inject NotificationService _message
 | 
			
		||||
@inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
 | 
			
		||||
@code {
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    private readonly ILog logger = LogManager.GetLogger(typeof(LoginDialog));
 | 
			
		||||
    int fridgeStateValue = 1;
 | 
			
		||||
    int alertStateValue = 1;
 | 
			
		||||
    string temperatureRange = "2-8";
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    protected override void OnInitialized()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        fridgeStateValue = setting.Value.fridgeState;
 | 
			
		||||
        alertStateValue = setting.Value.alertState;
 | 
			
		||||
        temperatureRange = setting.Value.temperatureRange;
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
        base.OnInitialized();
 | 
			
		||||
    }
 | 
			
		||||
    //保存
 | 
			
		||||
    async Task SaveMethod()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,12 +45,6 @@
 | 
			
		|||
        </RadzenColumn>
 | 
			
		||||
        <RadzenColumn Size="8">
 | 
			
		||||
            <RadzenRow Style="height: 100%;width:100%" Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.End" AlignItems="AlignItems.Center">
 | 
			
		||||
                <RadzenColumn Size="3">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Center" Gap="0.5rem" class="rz-p-sm-12">
 | 
			
		||||
                        <RadzenIcon Icon="language" Style="font-size:3rem;cursor: pointer;margin-left:-60px" class="rz-ripple" IconColor="white" />
 | 
			
		||||
                        <RadzenDropDown TValue="string" Value=@SelectedCulture Data=@languageNames Change="@(args => LanguageClick(args))" Style="width: 100%; max-width: 400px;" Name="DropDownChangeEvent" />
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
                </RadzenColumn>
 | 
			
		||||
                <RadzenColumn Size="2">
 | 
			
		||||
                    @if (globalStateService.Operator != null)
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -59,12 +53,12 @@
 | 
			
		|||
 | 
			
		||||
                        <RadzenProfileMenu prefix="" Click="MenuClick" Style="background-color:transparent;z-index:99">
 | 
			
		||||
                            <Template>
 | 
			
		||||
                                <RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H5" TextAlign="TextAlign.Center">@myText.Operator :@globalStateService.Operator.NickName</RadzenText>
 | 
			
		||||
                                <RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H5" TextAlign="TextAlign.Center">操作人:@globalStateService.Operator.NickName</RadzenText>
 | 
			
		||||
                            </Template>
 | 
			
		||||
                            <ChildContent>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="@myText.EnterFingerprint" Value="11" Icon="fingerprint"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="@myText.EnterSign"        Value="21" Icon="line_weight"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="@myText.UpdatePassword"   Value="31" Icon="password"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="录入指纹" Value="11" Icon="fingerprint"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="录入签名" Value="21" Icon="line_weight"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="修改密码" Value="31" Icon="password"></RadzenProfileMenuItem>
 | 
			
		||||
                            </ChildContent>
 | 
			
		||||
                        </RadzenProfileMenu>
 | 
			
		||||
                    }
 | 
			
		||||
| 
						 | 
				
			
			@ -74,12 +68,12 @@
 | 
			
		|||
                        //<RadzenText onclick="@(() => { EditPassword(2); })" Style="" class="rz-color-white" TextStyle="TextStyle.H5" TextAlign="TextAlign.Center">复核人:@globalStateService.Reviewer.NickName</RadzenText>
 | 
			
		||||
                        <RadzenProfileMenu prefix="" Click="MenuClick" Style="background-color:transparent">
 | 
			
		||||
                            <Template>
 | 
			
		||||
                                <RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H5" TextAlign="TextAlign.Center">@myText.Checker:@globalStateService.Reviewer.NickName</RadzenText>
 | 
			
		||||
                                <RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H5" TextAlign="TextAlign.Center">复核人:@globalStateService.Reviewer.NickName</RadzenText>
 | 
			
		||||
                            </Template>
 | 
			
		||||
                            <ChildContent>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="@myText.EnterFingerprint" Value="12" Icon="fingerprint"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="@myText.EnterSign"        Value="22" Icon="line_weight"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="@myText.UpdatePassword"   Value="32" Icon="password"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="录入指纹" Value="12" Icon="fingerprint"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="录入签名" Value="22" Icon="line_weight"></RadzenProfileMenuItem>
 | 
			
		||||
                                <RadzenProfileMenuItem Text="修改密码" Value="32" Icon="password"></RadzenProfileMenuItem>
 | 
			
		||||
                            </ChildContent>
 | 
			
		||||
                        </RadzenProfileMenu>
 | 
			
		||||
                    }
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +81,7 @@
 | 
			
		|||
                <RadzenColumn Size="3">
 | 
			
		||||
                    <div @onclick="@(() => { changeShifts(); })">
 | 
			
		||||
                        <RadzenIcon Icon="compare_arrows" Style="font-size:3rem;cursor: pointer;" class="rz-ripple" IconColor="white" />
 | 
			
		||||
                        <div>@myText.Handover</div>
 | 
			
		||||
                        <div>交接班</div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div style="clear:both"></div>
 | 
			
		||||
                </RadzenColumn>
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +95,7 @@
 | 
			
		|||
 | 
			
		||||
        <RadzenStack Style="height: 100%;width:41%" Gap="20">
 | 
			
		||||
            <RadzenStack class="home-menu rz-background-color-info-lighter rz-ripple" JustifyContent="JustifyContent.Center" Style="height: 50%" @onclick="@(() => jump2Page(1))">
 | 
			
		||||
                <RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.Outbound</RadzenText>
 | 
			
		||||
                <RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">出库</RadzenText>
 | 
			
		||||
                @if (globalStateService.Operator != null)
 | 
			
		||||
                {
 | 
			
		||||
                    @if (!globalStateService.Operator.role.permissionIds.Any(id => id - 10 < 10))
 | 
			
		||||
| 
						 | 
				
			
			@ -114,7 +108,7 @@
 | 
			
		|||
            </RadzenStack>
 | 
			
		||||
            <RadzenStack Orientation="Orientation.Horizontal" Style="height: 50%;width:100%">
 | 
			
		||||
                <RadzenStack class="home-menu rz-background-color-success-light rz-text-white rz-ripple" JustifyContent="JustifyContent.Center" @onclick="@(() => jump2Page(2))" Style="height: 100%;width:50%">
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.FillStorage</RadzenText>
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">入库</RadzenText>
 | 
			
		||||
                    @if (globalStateService.Operator != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        @if (!globalStateService.Operator.role.permissionIds.Any(id => id - 20 > 0 && id - 20 < 10))
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +120,7 @@
 | 
			
		|||
                    }
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
                <RadzenStack class="home-menu rz-background-color-danger-lighter rz-text-white rz-ripple" JustifyContent="JustifyContent.Center" @onclick="@(() => jump2Page(6))" Style="height: 100%;width:50%">
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.BoxManage</RadzenText>
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">药箱管理</RadzenText>
 | 
			
		||||
                    @if (globalStateService.Operator != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        @if (!globalStateService.Operator.role.permissionIds.Any(id => id - 60 > 0 && id - 60 < 10))
 | 
			
		||||
| 
						 | 
				
			
			@ -141,7 +135,7 @@
 | 
			
		|||
        </RadzenStack>
 | 
			
		||||
        <RadzenStack Style="height: 100%;width:59%" Gap="20">
 | 
			
		||||
            <RadzenStack class="home-menu rz-background-color-series-2 rz-text-white rz-ripple" JustifyContent="JustifyContent.Center" @onclick="@(() => jump2Page(3))" Style="height: 43%;width:100%">
 | 
			
		||||
                <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.Return</RadzenText>
 | 
			
		||||
                <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">归还</RadzenText>
 | 
			
		||||
                @if (globalStateService.Operator != null)
 | 
			
		||||
                {
 | 
			
		||||
                    @if (!globalStateService.Operator.role.permissionIds.Any(id => id - 30 > 0 && id - 30 < 10))
 | 
			
		||||
| 
						 | 
				
			
			@ -154,7 +148,7 @@
 | 
			
		|||
            </RadzenStack>
 | 
			
		||||
            <RadzenStack Orientation="Orientation.Horizontal" Style="height: 57%;width:100%">
 | 
			
		||||
                <RadzenStack class="home-menu rz-background-color-primary rz-text-white rz-ripple" JustifyContent="JustifyContent.Center" @onclick="@(() => jump2Page(4))" Style="height: 100%;width:50%">
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.StockManage</RadzenText>
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">库存管理</RadzenText>
 | 
			
		||||
                    @if (globalStateService.Operator != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        @if (!globalStateService.Operator.role.permissionIds.Any(id => id - 40 > 0 && id - 40 < 10))
 | 
			
		||||
| 
						 | 
				
			
			@ -166,7 +160,7 @@
 | 
			
		|||
                    }
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
                <RadzenStack class="home-menu rz-background-color-success-lighter rz-text-white rz-ripple" JustifyContent="JustifyContent.Center" @onclick="@(() => jump2Page(5))" Style="height: 100%;width:50%">
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.SystemManage</RadzenText>
 | 
			
		||||
                    <RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">系统管理</RadzenText>
 | 
			
		||||
                    @if (globalStateService.Operator != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        @if (!globalStateService.Operator.role.permissionIds.Any(id => id - 50 > 0 && id - 50 < 10))
 | 
			
		||||
| 
						 | 
				
			
			@ -192,25 +186,21 @@
 | 
			
		|||
    private List<Premission> userPremissions { get; set; } = new();
 | 
			
		||||
    @inject GlobalStateService globalStateService;
 | 
			
		||||
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
 | 
			
		||||
    Timer timer;
 | 
			
		||||
    @inject PortUtil _portUtil;
 | 
			
		||||
    private readonly ILog logger = LogManager.GetLogger(typeof(Home));
 | 
			
		||||
    @inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
 | 
			
		||||
    bool currentPage = true;
 | 
			
		||||
    public static I18nText.local myText = new I18nText.local();
 | 
			
		||||
    IEnumerable<string> languageNames;
 | 
			
		||||
    private string culture;
 | 
			
		||||
    private string SelectedCulture
 | 
			
		||||
 | 
			
		||||
    protected override void OnInitialized()
 | 
			
		||||
    {
 | 
			
		||||
        get => culture;
 | 
			
		||||
        set { }
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        languageNames = new List<string> { "简体中文", "English" };
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        // timer = new Timer(state =>
 | 
			
		||||
        // {
 | 
			
		||||
        //     var now = DateTime.Now;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //     InvokeAsync(StateHasChanged);
 | 
			
		||||
        // }, null, 0, 1000);
 | 
			
		||||
        if (setting.Value.autoOutLog > 0)
 | 
			
		||||
        {
 | 
			
		||||
            // 是否需要自动退出
 | 
			
		||||
| 
						 | 
				
			
			@ -255,67 +245,9 @@
 | 
			
		|||
               }
 | 
			
		||||
           });
 | 
			
		||||
        }
 | 
			
		||||
        culture = I18nText.GetCurrentLanguageAsync().Result == "en-US" ? "English" : "简体中文";
 | 
			
		||||
        
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
        base.OnInitialized();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // protected override void OnInitialized()
 | 
			
		||||
    // {
 | 
			
		||||
    //     // timer = new Timer(state =>
 | 
			
		||||
    //     // {
 | 
			
		||||
    //     //     var now = DateTime.Now;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //     //     InvokeAsync(StateHasChanged);
 | 
			
		||||
    //     // }, null, 0, 1000);
 | 
			
		||||
    //     if (setting.Value.autoOutLog > 0)
 | 
			
		||||
    //     {
 | 
			
		||||
    //         // 是否需要自动退出
 | 
			
		||||
    //         var promiseUtil = new PromiseUtil<object>();
 | 
			
		||||
    //         promiseUtil.taskAsyncLoop(500, null, async (data, next, stop) =>
 | 
			
		||||
    //        {
 | 
			
		||||
    //            if (globalStateService.Operator == null || !currentPage)
 | 
			
		||||
    //            {
 | 
			
		||||
    //                logger.Info($"Home页自动退出循环停止{globalStateService.Operator == null},{!currentPage}");
 | 
			
		||||
    //                stop();
 | 
			
		||||
    //            }
 | 
			
		||||
    //            else
 | 
			
		||||
    //            {
 | 
			
		||||
    //                try
 | 
			
		||||
    //                {
 | 
			
		||||
    //                    //没有在操作抽屉
 | 
			
		||||
    //                    if (!_portUtil.Operate)
 | 
			
		||||
    //                    {
 | 
			
		||||
    //                        // 无人操作鼠标键盘
 | 
			
		||||
    //                        if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > setting.Value.autoOutLog && CheckComputerFreeState.GetLastInputTime() > setting.Value.autoOutLog)
 | 
			
		||||
    //                        {
 | 
			
		||||
    //                            logger.Info($"设备{setting.Value.autoOutLog}内无人操作,用户【{globalStateService.Operator?.NickName}】自动退出登录,_portUtil.Operate:{_portUtil.Operate},totalSecond:{(DateTime.Now - _portUtil.dateTime).TotalSeconds},lastInputTime:{CheckComputerFreeState.GetLastInputTime()},autoOutLog:{setting.Value.autoOutLog}");
 | 
			
		||||
    //                            globalStateService.Operator = null;
 | 
			
		||||
    //                            globalStateService.Reviewer = null;
 | 
			
		||||
    //                            stop();
 | 
			
		||||
    //                        }
 | 
			
		||||
    //                        else
 | 
			
		||||
    //                        {
 | 
			
		||||
    //                            next();
 | 
			
		||||
    //                        }
 | 
			
		||||
    //                    }
 | 
			
		||||
    //                    else
 | 
			
		||||
    //                    {
 | 
			
		||||
    //                        next();
 | 
			
		||||
    //                    }
 | 
			
		||||
    //                }
 | 
			
		||||
    //                catch (Exception ex)
 | 
			
		||||
    //                {
 | 
			
		||||
    //                    logger.Info($"检查是否自动退出循环异常:{ex.Message}");
 | 
			
		||||
    //                    next();
 | 
			
		||||
    //                }
 | 
			
		||||
    //            }
 | 
			
		||||
    //        });
 | 
			
		||||
    //     }
 | 
			
		||||
    //     base.OnInitialized();
 | 
			
		||||
    // }
 | 
			
		||||
 | 
			
		||||
    public void Dispose()
 | 
			
		||||
    {
 | 
			
		||||
        timer?.Dispose();
 | 
			
		||||
| 
						 | 
				
			
			@ -471,20 +403,4 @@
 | 
			
		|||
        new DialogOptions() { Width = "55vw", Resizable = false, Draggable = false, ShowClose = false, ShowTitle = false });
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async void LanguageClick(object item)
 | 
			
		||||
    {
 | 
			
		||||
        string culture = string.Empty;// new System.Globalization.CultureInfo(item.Value);
 | 
			
		||||
        switch (item.ToString())
 | 
			
		||||
        {
 | 
			
		||||
            case "简体中文":
 | 
			
		||||
                culture = "zh-CN";
 | 
			
		||||
                break;
 | 
			
		||||
            case "English":
 | 
			
		||||
                culture = "en-US";
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        await I18nText.SetCurrentLanguageAsync(culture);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@
 | 
			
		|||
 | 
			
		||||
<RadzenStack AlignItems="AlignItems.Center" Gap="2rem" class="rz-p-12">
 | 
			
		||||
    <RadzenImage Path="images/community.svg" Style="width: 200px;" AlternateText="community" />
 | 
			
		||||
    <RadzenText TextStyle="TextStyle.H6">@myText.Loading</RadzenText>
 | 
			
		||||
    <RadzenText TextStyle="TextStyle.H6">加载程序必要连接中,请稍等。。。</RadzenText>
 | 
			
		||||
    <RadzenText TextStyle="TextStyle.H6">@msg</RadzenText>
 | 
			
		||||
    <RadzenText TextStyle="TextStyle.H6">@errMsg</RadzenText>
 | 
			
		||||
</RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -22,8 +22,6 @@
 | 
			
		|||
    @inject GlobalStateService globalStateService;
 | 
			
		||||
    @inject IOptions<PortConfig> portSetting;
 | 
			
		||||
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
    string msg;
 | 
			
		||||
    string errMsg;
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +31,7 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -44,69 +42,69 @@
 | 
			
		|||
        if (firstRender)
 | 
			
		||||
        {
 | 
			
		||||
            await Task.Delay(15);
 | 
			
		||||
            msg = myText.ConnectFinger;
 | 
			
		||||
            msg = "开始连接指纹模块";
 | 
			
		||||
            InvokeAsync(StateHasChanged);
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                bool flag=await FingerprintUtil.ConnectionMain();
 | 
			
		||||
                if (flag)
 | 
			
		||||
                {
 | 
			
		||||
                    msg = myText.FingerConnected;
 | 
			
		||||
                    msg = "指纹模块连接成功";
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    msg = myText.FingerFailed;
 | 
			
		||||
                    msg = "指纹模块连接失败";
 | 
			
		||||
                }
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            } catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                msg = myText.FingerFailed;
 | 
			
		||||
                errMsg += "【" + myText .FingerFailed+ "】";
 | 
			
		||||
                msg = "指纹模块连接失败";
 | 
			
		||||
                errMsg += "【指纹模块连接失败】";
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            }
 | 
			
		||||
            await Task.Delay(500);
 | 
			
		||||
            msg = myText.ConnectDrawer;
 | 
			
		||||
            msg = "开始连接抽屉串口";
 | 
			
		||||
            InvokeAsync(StateHasChanged);
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                PortUtil.drawerSerial.Open();
 | 
			
		||||
                logger.Info($"抽屉串口打开结果【{PortUtil.drawerSerial.IsOpen}】");
 | 
			
		||||
                msg = myText.DrawerConnected;
 | 
			
		||||
                msg = "抽屉串口连接成功";
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            } catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                msg = myText.DrawerFailed;
 | 
			
		||||
                errMsg += "【"+myText.DrawerFailed+"】";
 | 
			
		||||
                msg = "抽屉串口连接失败";
 | 
			
		||||
                errMsg += "【抽屉串口连接失败】";
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            }
 | 
			
		||||
            await Task.Delay(500);
 | 
			
		||||
            msg = myText.ConnectCan;
 | 
			
		||||
            msg = "开始连接CanBus模块";
 | 
			
		||||
            InvokeAsync(StateHasChanged);
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                PortUtil.canBusSerial.Open();
 | 
			
		||||
                logger.Info($"CanBus模块打开结果【{PortUtil.canBusSerial.IsOpen}】");
 | 
			
		||||
                msg = myText.CanConnected;
 | 
			
		||||
                msg = "CanBus模块连接成功";
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            } catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                msg = myText.CanFailed;
 | 
			
		||||
                errMsg += "【"+myText.CanFailed+"】";
 | 
			
		||||
                msg = "CanBus模块连接失败";
 | 
			
		||||
                errMsg += "【CanBus模块连接失败】";
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            }
 | 
			
		||||
            await Task.Delay(500);
 | 
			
		||||
            msg = myText.ConnectScanCode;
 | 
			
		||||
            msg = "开始连接条码扫描模块";
 | 
			
		||||
            InvokeAsync(StateHasChanged);
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                PortUtil.scanCodeSerial.Open();
 | 
			
		||||
                logger.Info($"条码扫描模块打开结果【{PortUtil.scanCodeSerial.IsOpen}】");
 | 
			
		||||
                msg = myText.ScanCodeConnected;
 | 
			
		||||
                msg = "条码扫描模块连接成功";
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            } catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                msg = myText.ScanCodeFailed;
 | 
			
		||||
                errMsg += "【" + myText.ScanCodeFailed + "】";
 | 
			
		||||
                msg = "条码扫描模块连接失败";
 | 
			
		||||
                errMsg += "【条码扫描模块连接失败】";
 | 
			
		||||
                InvokeAsync(StateHasChanged);
 | 
			
		||||
            }
 | 
			
		||||
            if (portSetting.Value.fridgePortExist)
 | 
			
		||||
| 
						 | 
				
			
			@ -115,13 +113,13 @@
 | 
			
		|||
                {
 | 
			
		||||
                    PortUtil.fridgeSerial.Open();
 | 
			
		||||
                    logger.Info($"冰箱串口打开结果【{PortUtil.fridgeSerial.IsOpen}】");
 | 
			
		||||
                    msg = myText.FridgeConnected;
 | 
			
		||||
                    msg = "冰箱串口连接成功";
 | 
			
		||||
                    InvokeAsync(StateHasChanged);
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception)
 | 
			
		||||
                {
 | 
			
		||||
                    msg = myText.FridgeFailed;
 | 
			
		||||
                    errMsg += "【"+ myText.FridgeFailed+"】";
 | 
			
		||||
                    msg = "冰箱串口打开失败";
 | 
			
		||||
                    errMsg += "【冰箱串口打开失败】";
 | 
			
		||||
                    InvokeAsync(StateHasChanged);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,11 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
            
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.InvoiceNo" Component="InvoiceNo" />
 | 
			
		||||
                                <RadzenLabel Text="单据号" Component="InvoiceNo" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenTextBox @bind-Value="InvoiceNo" Style="width: 100%;" Name="InvoiceNo"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.ApplyDate" Component="InvoiceDate" />
 | 
			
		||||
                                <RadzenLabel Text="请领日期" Component="InvoiceDate" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" @bind-Value="InvoiceDate" Style="width: 100%;" Name="InvoiceDate" />
 | 
			
		||||
| 
						 | 
				
			
			@ -27,8 +27,8 @@
 | 
			
		|||
                    
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search"  Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search"  Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -42,16 +42,16 @@
 | 
			
		|||
                    RowSelect="@((InOutInvoice oi) => { InvoiceSelected(oi); })"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                    AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} ¹²{2}ÌõÊý¾Ý">
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="@myText.InvoiceNo" Property="InvoiceNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="170px" Title="@myText.Date" Property="InvoiceDate"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.ApplyPharmacy" Property="InPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.SendPharamacy" Property="OutPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="单据号" Property="InvoiceNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="时间" Property="InvoiceDate"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="请领药房" Property="InPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="出库药房" Property="OutPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                    </Columns>
 | 
			
		||||
                </RadzenDataGrid>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -61,19 +61,13 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IInOutInvoiceDao inOutInvoiceDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<InOutInvoice> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
    private IEnumerable<InOutInvoice>? _forecasts;
 | 
			
		||||
    string InvoiceNo;
 | 
			
		||||
    DateTime InvoiceDate = DateTime.MinValue;
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void OnCurrentDateChanged(DateTime args)
 | 
			
		||||
    {
 | 
			
		||||
        InvoiceDate = new DateTime(args.Year, args.Month, args.Day);
 | 
			
		||||
| 
						 | 
				
			
			@ -103,7 +97,7 @@
 | 
			
		|||
    {
 | 
			
		||||
 | 
			
		||||
        var b = await dialogService.OpenAsync<InvoiceAddDialog>(
 | 
			
		||||
                myText.InvoiceInDetail,
 | 
			
		||||
                $"调拨入库详情",
 | 
			
		||||
              new Dictionary<string, object>() { { "invoice", oi } },
 | 
			
		||||
              new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
 | 
			
		||||
        );
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,11 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
            
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.InvoiceNo" Component="InvoiceNo" />
 | 
			
		||||
                                <RadzenLabel Text="单据号" Component="InvoiceNo" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenTextBox @bind-Value="InvoiceNo" Style="width: 100%;" Name="InvoiceNo"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.ApplyDate" Component="InvoiceDate" />
 | 
			
		||||
                                <RadzenLabel Text="请领日期" Component="InvoiceDate" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" @bind-Value="InvoiceDate" Style="width: 100%;" Name="InvoiceDate" />
 | 
			
		||||
| 
						 | 
				
			
			@ -27,8 +27,8 @@
 | 
			
		|||
                    
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search"  Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search"  Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -42,16 +42,16 @@
 | 
			
		|||
                    RowSelect="@((InOutInvoice oi) => { InvoiceSelected(oi); })"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                            EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                    AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} ¹²{2}ÌõÊý¾Ý">
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="@myText.InvoiceNo" Property="InvoiceNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="170px" Title="@myText.Date" Property="InvoiceDate"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.ApplyPharmacy" Property="InPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.SendPharamacy" Property="OutPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="单据号" Property="InvoiceNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="时间" Property="InvoiceDate"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="请领药房" Property="InPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="出库药房" Property="OutPharmacyId"></RadzenDataGridColumn>
 | 
			
		||||
                    </Columns>
 | 
			
		||||
                </RadzenDataGrid>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -61,8 +61,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IInOutInvoiceDao inOutInvoiceDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<InOutInvoice> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -70,11 +68,6 @@
 | 
			
		|||
    string InvoiceNo;
 | 
			
		||||
    DateTime InvoiceDate = DateTime.MinValue;
 | 
			
		||||
 | 
			
		||||
     protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this); 
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
    void OnCurrentDateChanged(DateTime args)
 | 
			
		||||
    {
 | 
			
		||||
        InvoiceDate = new DateTime(args.Year, args.Month, args.Day);
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +97,7 @@
 | 
			
		|||
    {
 | 
			
		||||
 | 
			
		||||
        var b = await dialogService.OpenAsync<InvoiceOutDialog>(
 | 
			
		||||
               myText.InvoiceDetail,
 | 
			
		||||
                $"调拨出库详情",
 | 
			
		||||
              new Dictionary<string, object>() { { "invoice", oi } },
 | 
			
		||||
              new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
 | 
			
		||||
        );
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,37 +17,37 @@
 | 
			
		|||
        <RadzenCard class="rz-shadow-0 rz-border-radius-0 rz-text-align-center rz-p-12 align-items-center justify-content-center" Style="height: 100%; background: var(--rz-primary-light) no-repeat 100% 70% fixed url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwNCIgaGVpZ2h0PSIxNDU4IiB2aWV3Qm94PSIwIDAgMTIwNCAxNDU4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjcyMi4xMjgiIGN5PSI4MzkuMDIiIHI9IjQ4MS40MTkiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41IiBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzQ5M18xMDEzNCkiPgo8Y2lyY2xlIGN4PSI0NzAuMzMzIiBjeT0iNTcwLjMzMyIgcj0iNDcwLjMzMyIgZmlsbD0idXJsKCNwYWludDFfcmFkaWFsXzQ5M18xMDEzNCkiLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIyX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjY5MS41MTEiIGN5PSI1MjIuMjk3IiByPSIzMzEuNTAzIiBmaWxsPSJ1cmwoI3BhaW50Ml9yYWRpYWxfNDkzXzEwMTM0KSIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl80OTNfMTAxMzQpIj4KPGNpcmNsZSBjeD0iNjA4LjI0NCIgY3k9IjEwNzkuOTciIHI9IjMzMS41MDMiIHRyYW5zZm9ybT0icm90YXRlKC04MS4yMjQ0IDYwOC4yNDQgMTA3OS45NykiIGZpbGw9InVybCgjcGFpbnQzX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZl80OTNfMTAxMzQiIHg9IjE0MC43MDkiIHk9IjI1Ny42MDEiIHdpZHRoPSIxMTYyLjg0IiBoZWlnaHQ9IjExNjIuODQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjFfZl80OTNfMTAxMzQiIHg9Ii0xMDAiIHk9IjAiIHdpZHRoPSIxMTQwLjY3IiBoZWlnaHQ9IjExNDAuNjciIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjJfZl80OTNfMTAxMzQiIHg9IjI2MC4wMDgiIHk9IjkwLjc5MzkiIHdpZHRoPSI4NjMuMDA2IiBoZWlnaHQ9Ijg2My4wMDYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjNfZl80OTNfMTAxMzQiIHg9IjE3Ni42OTQiIHk9IjY0OC40MjMiIHdpZHRoPSI4NjMuMSIgaGVpZ2h0PSI4NjMuMSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI1MCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzQ5M18xMDEzNCIvPgo8L2ZpbHRlcj4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3MjIuMTI4IDgzOS4wMikgcm90YXRlKDkwKSBzY2FsZSg0ODEuNDE5KSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjFBNkMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkYxQTZDIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDFfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg0NzAuMzMzIDU3MC4zMzMpIHJvdGF0ZSg5MCkgc2NhbGUoNDcwLjMzMykiPgo8c3RvcCBzdG9wLWNvbG9yPSIjM0FBQ0ZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNBOTVGRiIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQyX3JhZGlhbF80OTNfMTAxMzQiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjkxLjUxMSA1MjIuMjk3KSByb3RhdGUoOTApIHNjYWxlKDMzMS41MDMpIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzQ4M0FGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0ODNBRkYiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50M19yYWRpYWxfNDkzXzEwMTM0IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDYwOC4yNDQgMTA3OS45Nykgcm90YXRlKDkwKSBzY2FsZSgzMzEuNTAzKSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkM4M0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZDODNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K')">
 | 
			
		||||
            @if (loginMode == 2)
 | 
			
		||||
            {
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H6" class="rz-color-white">@myText.Operator:@globalStateService.Operator?.NickName</RadzenText>
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H6" class="rz-color-white">@myText.Checker:@globalStateService.Reviewer?.NickName</RadzenText>
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H6" class="rz-color-white">操作人:@globalStateService.Operator?.NickName</RadzenText>
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.H6" class="rz-color-white">复核人:@globalStateService.Reviewer?.NickName</RadzenText>
 | 
			
		||||
            }
 | 
			
		||||
        </RadzenCard>
 | 
			
		||||
    </RadzenColumn>
 | 
			
		||||
    <RadzenColumn Size="12" SizeMD="7">
 | 
			
		||||
        <RadzenCard Class="rz-shadow-0 rz-border-radius-0 rz-p-12" Style="width:100%;height:100%">
 | 
			
		||||
            <RadzenText TextStyle="TextStyle.H5" TagName="TagName.H2" class="rz-mb-6">
 | 
			
		||||
                @myText.Login
 | 
			
		||||
                登录
 | 
			
		||||
            </RadzenText>
 | 
			
		||||
            <RadzenTemplateForm Data="@loginModel" Submit="@((Pojo.User args) => { Submit(args); })" Style="width:100%;height:100%">
 | 
			
		||||
                <div class="rz-form-row">
 | 
			
		||||
                    <label class="rz-label" for="username">@myText.Account</label>
 | 
			
		||||
                    <label class="rz-label" for="username">账号</label>
 | 
			
		||||
                    <div class="rz-form-input-wrapper">
 | 
			
		||||
                        <!--@onfocusin="@(() => Util.VirtualKeyboardHelper.ShowVirtualKeyboard())"-->
 | 
			
		||||
                        <RadzenTextBox id="username" Name="Username" @bind-Value="@loginModel.Username"  Style="width:100%" />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Username" Text=@myText.loginTips1 />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Username" Text="请填写用户名" />
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="rz-form-row">
 | 
			
		||||
                    <label class="rz-label" for="password">@myText.Password</label>
 | 
			
		||||
                    <label class="rz-label" for="password">密码</label>
 | 
			
		||||
                    <div class="rz-form-input-wrapper">
 | 
			
		||||
                        <RadzenPassword id="password" Name="Password" @bind-Value="@loginModel.Password" Style="width:100%" />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Password" Text=@myText.loginTips2 />
 | 
			
		||||
                        <RadzenRequiredValidator Component="Password" Text="请填写密码" />
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="rz-form-row">
 | 
			
		||||
                    <label class="rz-label"></label>
 | 
			
		||||
                    <div class="rz-form-input-wrapper rz-login-buttons">
 | 
			
		||||
                        <RadzenButton Style="background:#255dd4;color:white;width:110px" ButtonType="ButtonType.Submit" Text=@myText.Login />
 | 
			
		||||
                        <RadzenButton Style="border-color:#255dd4;width:110px" Variant="Variant.Outlined" Text=@myText.Cancel Click="@Exit" />
 | 
			
		||||
                        <RadzenButton Style="background:#255dd4;color:white;width:110px" ButtonType="ButtonType.Submit" Text="登录" />
 | 
			
		||||
                        <RadzenButton Style="border-color:#255dd4;width:110px" Variant="Variant.Outlined" Text="取消" Click="@Exit" />
 | 
			
		||||
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -69,8 +69,6 @@
 | 
			
		|||
    @inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
    private readonly ILog logger = LogManager.GetLogger(typeof(LoginDialog));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -83,15 +81,14 @@
 | 
			
		|||
 | 
			
		||||
    private Pojo.User loginModel = new();
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    protected override Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        FingerprintUtil.axCZKEM1.OnAttTransactionEx += axCZKEM1_OnAttTransactionEx;
 | 
			
		||||
 | 
			
		||||
        loginMode = setting.Value.loginMode;
 | 
			
		||||
        opFirst = setting.Value.opFirst;
 | 
			
		||||
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
        return base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void SetUser(Pojo.User user)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
    <div class="top-row px-4">
 | 
			
		||||
        <RadzenButton Icon="account_circle" Style="margin-left: auto;" Click="@SaveMethod">
 | 
			
		||||
            <ChildContent>
 | 
			
		||||
                @myText.SaveSet
 | 
			
		||||
                保存设置
 | 
			
		||||
            </ChildContent>
 | 
			
		||||
        </RadzenButton>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -15,11 +15,11 @@
 | 
			
		|||
        <RadzenCard class="rz-my-6">
 | 
			
		||||
            <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Start" Wrap="FlexWrap.Wrap">
 | 
			
		||||
                <RadzenStack Orientation="Orientation.Vertical" Gap="4px">
 | 
			
		||||
                    @myText.LoginMode
 | 
			
		||||
                    登录模式
 | 
			
		||||
                    <RadzenRadioButtonList Value=@loginValue TValue="int" Change=@(args => loginValue = args)>
 | 
			
		||||
                        <Items>
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="@myText.SingleLogin" Value="1" />
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="@myText.MultiLogin" Value="2" />
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="单人登录" Value="1" />
 | 
			
		||||
                            <RadzenRadioButtonListItem Text="双人登录" Value="2" />
 | 
			
		||||
                        </Items>
 | 
			
		||||
                    </RadzenRadioButtonList>
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -40,20 +40,17 @@
 | 
			
		|||
@inject Microsoft.Extensions.Options.IOptions<Pojo.Config.setting> setting;
 | 
			
		||||
@inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
 | 
			
		||||
@inject NotificationService _message
 | 
			
		||||
@inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@code {
 | 
			
		||||
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    private readonly ILog logger = LogManager.GetLogger(typeof(LoginDialog));
 | 
			
		||||
    int loginValue = 1;
 | 
			
		||||
    // int preValue = 1;
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    protected override void OnInitialized()
 | 
			
		||||
    {
 | 
			
		||||
        loginValue = setting.Value.loginMode;
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
        base.OnInitialized();
 | 
			
		||||
    }
 | 
			
		||||
    //保存
 | 
			
		||||
    async Task SaveMethod()
 | 
			
		||||
| 
						 | 
				
			
			@ -70,7 +67,7 @@
 | 
			
		|||
        var options = new JsonSerializerOptions { WriteIndented = true };
 | 
			
		||||
        File.WriteAllText(filePath, jsonNode.ToString(Newtonsoft.Json.Formatting.Indented));
 | 
			
		||||
        _message.Notify(
 | 
			
		||||
              new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.LoginMode, Duration = 4000 }
 | 
			
		||||
              new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"保存成功", Duration = 4000 }
 | 
			
		||||
          );
 | 
			
		||||
        logger.Info($"修改用户登录设置");
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@
 | 
			
		|||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.StartDate" Component="Start" />
 | 
			
		||||
                                <RadzenLabel Text="开始时间" Component="Start" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="start" Style="width: 100%;" Name="Start" />
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.EndDate" Component="End" />
 | 
			
		||||
                                <RadzenLabel Text="结束时间" Component="End" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="end" Style="width: 100%;" Name="End" />
 | 
			
		||||
| 
						 | 
				
			
			@ -32,13 +32,13 @@
 | 
			
		|||
                    
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenButton Icon="download" Text="@myText.StoreExport" Variant="Variant.Outlined" Click="StockExport" />
 | 
			
		||||
                            <RadzenButton Icon="download" Text="@myText.AccountExport" Variant="Variant.Outlined" Click="AccountBookExport" />
 | 
			
		||||
                            <RadzenButton Icon="download" Text="库存导出" Variant="Variant.Outlined" Click="StockExport" />
 | 
			
		||||
                            <RadzenButton Icon="download" Text="专用账册导出" Variant="Variant.Outlined" Click="AccountBookExport" />
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
                </RadzenFieldset>
 | 
			
		||||
| 
						 | 
				
			
			@ -50,24 +50,24 @@
 | 
			
		|||
                    LoadData="@LoadData"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                    AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} ¹²{2}ÌõÊý¾Ý">
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="@myText.Operator" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="170px" Title="@myText.OperateDate" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="200px" Title="@myText.DrugName" Property="Drug.DrugName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Quantity" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Expiration" Property="EffDate">
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="操作人" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="操作时间" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="200px" Title="药品名称" Property="Drug.DrugName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="数量" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="效期" Property="EffDate">
 | 
			
		||||
                            <Template Context="mr">
 | 
			
		||||
                                @mr.EffDate?.ToString("yyyy-MM-dd")
 | 
			
		||||
                            </Template>
 | 
			
		||||
                        </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn title="@myText.StorageLocation" Property="Location"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn title="库位" Property="Location"></RadzenDataGridColumn>
 | 
			
		||||
                    </Columns>
 | 
			
		||||
                </RadzenDataGrid>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -79,8 +79,6 @@
 | 
			
		|||
    @inject DialogService dialogService;
 | 
			
		||||
 | 
			
		||||
    @inject NavigationManager navigate;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<MachineRecord> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -98,11 +96,6 @@
 | 
			
		|||
            reloadGrid();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
    async Task LoadData(LoadDataArgs args)
 | 
			
		||||
    {
 | 
			
		||||
        isLoading = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,11 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.OrderNo" Component="OrderNo" />
 | 
			
		||||
                                <RadzenLabel Text="处方号" Component="OrderNo" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenTextBox @bind-Value="OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.OrderDate" Component="OrderDate" />
 | 
			
		||||
                                <RadzenLabel Text="处方时间" Component="OrderDate" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" @bind-Value="OrderDate" Style="width: 100%;" Name="OrderDate" />
 | 
			
		||||
| 
						 | 
				
			
			@ -27,8 +27,8 @@
 | 
			
		|||
                    
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search"  Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search"  Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -42,20 +42,20 @@
 | 
			
		|||
                    RowSelect="@((OrderInfo oi) => { OrderSelected(oi); })"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                    AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} ¹²{2}ÌõÊý¾Ý">
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="@myText.OrderNo" Property="OrderNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="170px" Title="@myText.OrderDate" Property="OrderDate"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Doctor" Property="DoctorName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Name" Property="PatientName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Sex" Property="Sex"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Age" Property="Age"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.DeptName" Property="DeptName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Diagnose" Property="Disease"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="处方号" Property="OrderNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="开方时间" Property="OrderDate"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="医生" Property="DoctorName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="姓名" Property="PatientName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="性别" Property="Sex"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="年龄" Property="Age"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="科室" Property="DeptName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="诊断" Property="Disease"></RadzenDataGridColumn>
 | 
			
		||||
                    </Columns>
 | 
			
		||||
                </RadzenDataGrid>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -65,8 +65,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IOrderInfoDao orderInfoDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<OrderInfo> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -113,11 +111,6 @@
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,11 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text=@myText.Search>
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text=@myText.OrderNo Component="OrderNo" />
 | 
			
		||||
                                <RadzenLabel Text="处方号" Component="OrderNo" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenTextBox @bind-Value="OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text=@myText.OrderDate Component="OrderDate" />
 | 
			
		||||
                                <RadzenLabel Text="处方时间" Component="OrderDate" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" @bind-Value="OrderDate" Style="width: 100%;" Name="OrderDate" />
 | 
			
		||||
| 
						 | 
				
			
			@ -27,8 +27,8 @@
 | 
			
		|||
                    
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search"  Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -42,20 +42,20 @@
 | 
			
		|||
                    RowSelect="@((OrderInfo oi) => { OrderSelected(oi); })"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                            EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                    AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} ¹²{2}ÌõÊý¾Ý">
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="@myText.OrderNo" Property="OrderNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="170px" Title="@myText.OrderDate" Property="OrderDate"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Doctor" Property="DoctorName"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Name" Property="PatientName"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Sex" Property="Sex"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Age" Property="Age"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.DeptName" Property="DeptName"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Diagnose" Property="Disease"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="处方号" Property="OrderNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="开方时间" Property="OrderDate"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="医生" Property="DoctorName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="姓名" Property="PatientName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="性别" Property="Sex"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="年龄" Property="Age"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="科室" Property="DeptName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="诊断" Property="Disease"></RadzenDataGridColumn>
 | 
			
		||||
                    </Columns>
 | 
			
		||||
                </RadzenDataGrid>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IOrderInfoDao orderInfoDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    RadzenDataGrid<OrderInfo> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -73,13 +72,6 @@
 | 
			
		|||
    string OrderNo;
 | 
			
		||||
    DateTime OrderDate;
 | 
			
		||||
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    void OnCurrentDateChanged(DateTime args)
 | 
			
		||||
    {
 | 
			
		||||
        OrderDate = new DateTime(args.Year, args.Month, args.Day);
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +101,7 @@
 | 
			
		|||
    {
 | 
			
		||||
        
 | 
			
		||||
        var b = await dialogService.OpenAsync<OrderDetailDialog>(
 | 
			
		||||
                myText.OrderDetail,
 | 
			
		||||
                $"处方详情",
 | 
			
		||||
              new Dictionary<string, object>() { { "order", oi } },
 | 
			
		||||
              new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
 | 
			
		||||
        );
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,8 +12,8 @@
 | 
			
		|||
                <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                    <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                        <RadzenColumn Size="12" Style="margin-top:12px">
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Refresh" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Large" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertPlanRow" Text="@myText.AddMenu" />
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="刷新" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            <RadzenButton Size="ButtonSize.Large" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertPlanRow" Text="新增套餐" />
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                    </RadzenRow>
 | 
			
		||||
                </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -25,26 +25,26 @@
 | 
			
		|||
                            @bind-Value="@SelectedPlan"
 | 
			
		||||
                            IsLoading="@isLoading"
 | 
			
		||||
                            Count="@count"
 | 
			
		||||
                            EmptyText="@myText.NoDate"
 | 
			
		||||
                            EmptyText="无数据"
 | 
			
		||||
                            Data="@_forecasts"
 | 
			
		||||
                            AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                            SelectionMode="DataGridSelectionMode.Single" RowUpdate="@((Plan di) => { OnUpdatePlanRow(di); })" RowCreate="@((Plan di) => { OnCreatePlanRow(di); })"
 | 
			
		||||
                            AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ColumnWidth="100px" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="@myText.MenuName" Property="Name">
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="套餐名称" Property="Name">
 | 
			
		||||
                        <EditTemplate Context="planInfo">
 | 
			
		||||
                            <RadzenTextBox Name="Name" @bind-Value="planInfo.Name" Style="width:100%; display: block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputMenuName" Component="Name" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写套餐名称" Component="Name" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="200px" Title="@myText.MenuDescrip" Property="Description">
 | 
			
		||||
                    <RadzenDataGridColumn Width="200px" Title="套餐描述" Property="Description">
 | 
			
		||||
                        <EditTemplate Context="planInfo">
 | 
			
		||||
                            <RadzenTextBox Name="Description" @bind-Value="planInfo.Description" Style="width:100%;display:block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputMenuDesc" Component="Description" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写套餐描述" Component="Description" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
 | 
			
		||||
                    <RadzenDataGridColumn Context="planInfo" Title="@myText.Operate" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" Width="8rem">
 | 
			
		||||
                    <RadzenDataGridColumn Context="planInfo" Title="操作" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" Width="8rem">
 | 
			
		||||
                        <Template Context="planInfo">
 | 
			
		||||
                            <RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" Click="@(args => EditPlanRow(planInfo))" @onclick:stopPropagation="true">
 | 
			
		||||
                            </RadzenButton>
 | 
			
		||||
| 
						 | 
				
			
			@ -64,7 +64,7 @@
 | 
			
		|||
            </RadzenDataGrid>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="col-6  mb-4">
 | 
			
		||||
            <RadzenDataGrid @ref="PlanDetailsGrid" EmptyText="@myText.NoDate"
 | 
			
		||||
            <RadzenDataGrid @ref="PlanDetailsGrid" EmptyText="无数据"
 | 
			
		||||
                            Data="@(SelectedPlan?.FirstOrDefault()?._PlanDetails)"
 | 
			
		||||
                            RowUpdate="@((PlanDetails pd) => { OnUpdateRow(pd); })"
 | 
			
		||||
                            RowCreate="@((PlanDetails pd) => { OnCreateRow(pd); })"
 | 
			
		||||
| 
						 | 
				
			
			@ -76,12 +76,12 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                    </HeaderTemplate> *@
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Number" Property="index" Width="5rem">
 | 
			
		||||
                    <RadzenDataGridColumn Title="序号" Property="index" Width="5rem">
 | 
			
		||||
                        <Template Context="data">
 | 
			
		||||
                            @(SelectedPlan.FirstOrDefault()?._PlanDetails.IndexOf(data) + 1)
 | 
			
		||||
                        </Template>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.DrugName" Property="_DrugInfo.DrugName" Width="25rem">
 | 
			
		||||
                    <RadzenDataGridColumn Title="药品" Property="_DrugInfo.DrugName" Width="25rem">
 | 
			
		||||
                        <Template Context="data">
 | 
			
		||||
                            <RadzenText TextStyle="TextStyle.Body1"><b>@(data._DrugInfo?.DrugName)</b></RadzenText>
 | 
			
		||||
                            <RadzenText TextStyle="TextStyle.Body1"><b>@(data._DrugInfo?.DrugSpec)</b></RadzenText>
 | 
			
		||||
| 
						 | 
				
			
			@ -91,23 +91,23 @@
 | 
			
		|||
                            <RadzenDropDownDataGrid AllowVirtualization="true" Name="drugName" TValue="DrugInfo" @bind-Value="planDetails._DrugInfo" Data="@drugInfos"
 | 
			
		||||
                                                    Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="DrugName">
 | 
			
		||||
                                <Columns>
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugId" Title="@myText.DrugCode" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="@myText.DrugName" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugSpec" Title="@myText.Spec" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugId" Title="药品编码" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="名称" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugSpec" Title="规格" />
 | 
			
		||||
                                </Columns>
 | 
			
		||||
                            </RadzenDropDownDataGrid>
 | 
			
		||||
                            <RadzenCustomValidator Component="drugName" Validator="@(() => (planDetails._DrugInfo.DrugId != null))" Text="@myText.SelectDrug" Popup=true />
 | 
			
		||||
                            <RadzenCustomValidator Component="drugName" Validator="@(() => ValidatroDrug(planDetails))" Text="@myText.MenuHasDrug" Popup=true />
 | 
			
		||||
                            <RadzenCustomValidator Component="drugName" Validator="@(() => (planDetails._DrugInfo.DrugId != null))" Text="请选择药品" Popup=true />
 | 
			
		||||
                            <RadzenCustomValidator Component="drugName" Validator="@(() => ValidatroDrug(planDetails))" Text="套餐中已包含该药品" Popup=true />
 | 
			
		||||
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.BaseQuantity" Property="BaseQuantity" Width="5rem">
 | 
			
		||||
                    <RadzenDataGridColumn Title="基数" Property="BaseQuantity" Width="5rem">
 | 
			
		||||
                        <EditTemplate Context="planDetails">
 | 
			
		||||
                            <RadzenNumeric Name="BaseQuantity" @bind-Value="planDetails.BaseQuantity" Style="width:100%; display: block;" />
 | 
			
		||||
                            <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Text="请填写正确的添加数量" Component="BaseQuantity" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Operate" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" Width="8rem">
 | 
			
		||||
                    <RadzenDataGridColumn Title="操作" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" Width="8rem">
 | 
			
		||||
                        <Template Context="planDetails">
 | 
			
		||||
                            <RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" Click="@(args => EditRow(planDetails))" @onclick:stopPropagation="true">
 | 
			
		||||
                            </RadzenButton>
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +126,7 @@
 | 
			
		|||
                </Columns>
 | 
			
		||||
            </RadzenDataGrid>
 | 
			
		||||
            <div style="margin-top:5px">
 | 
			
		||||
                <RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertRow" Text="@myText.AddDrug" />
 | 
			
		||||
                <RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertRow" Text="新增药品" />
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -137,9 +137,7 @@
 | 
			
		|||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject GlobalStateService globalStateService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<Plan> grid;
 | 
			
		||||
    RadzenDataGrid<PlanDetails> PlanDetailsGrid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
| 
						 | 
				
			
			@ -150,12 +148,6 @@
 | 
			
		|||
    List<DrugInfo> drugInfos;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // int preValue = 1;
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async Task LoadData(LoadDataArgs args)
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,11 +11,11 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
            
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.StartDate" Component="Start" />
 | 
			
		||||
                                <RadzenLabel Text="开始时间" Component="Start" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="start" Style="width: 100%;" Name="Start" />
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.EndDate" Component="End" />
 | 
			
		||||
                                <RadzenLabel Text="结束时间" Component="End" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="end" Style="width: 100%;" Name="End" />
 | 
			
		||||
| 
						 | 
				
			
			@ -32,8 +32,8 @@
 | 
			
		|||
                    
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -46,7 +46,7 @@
 | 
			
		|||
                    LoadData="@LoadData"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    AllowRowSelectOnRowClick="true"
 | 
			
		||||
| 
						 | 
				
			
			@ -58,9 +58,9 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                    </HeaderTemplate>
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="@myText.Operator" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="@myText.OperateDate" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="200px" Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="操作人" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="操作时间" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="200px" Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                            <Template Context="mr">
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@mr.Drug?.DrugName</RadzenText>
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Caption">@mr.Drug?.DrugSpec</RadzenText>
 | 
			
		||||
| 
						 | 
				
			
			@ -72,10 +72,10 @@
 | 
			
		|||
                                <RadzenText TextStyle="TextStyle.Caption"> @mr.EffDate?.ToString("yyyy-MM-dd")</RadzenText>
 | 
			
		||||
                            </Template>
 | 
			
		||||
                        </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Borrow" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.ReturnQuantity" Property="ReturnQuantity1"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.ReturnEmpty" Property="ReturnQuantity2"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.CurrentReturn" Property="CurrentReturnQuantity">
 | 
			
		||||
                        <RadzenDataGridColumn Title="借出数量" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="已还药品" Property="ReturnQuantity1"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="已还空瓶" Property="ReturnQuantity2"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="本次归还" Property="CurrentReturnQuantity">
 | 
			
		||||
                            <EditTemplate Context="mr">
 | 
			
		||||
                                <RadzenNumeric Min="0" Style="display: block" Max="@(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2)" Name="Quantity" @bind-Value=@mr.CurrentReturnQuantity />
 | 
			
		||||
                            </EditTemplate>
 | 
			
		||||
| 
						 | 
				
			
			@ -89,8 +89,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IMachineRecordDao machineRecordDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<MachineRecord> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -99,11 +97,7 @@
 | 
			
		|||
    DateTime start;
 | 
			
		||||
    DateTime end;
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async Task LoadData(LoadDataArgs args)
 | 
			
		||||
    {
 | 
			
		||||
        isLoading = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,45 +12,45 @@
 | 
			
		|||
        
 | 
			
		||||
            <RadzenDataGrid @ref="grid" Data="@data" ExpandMode="DataGridExpandMode.Multiple"
 | 
			
		||||
                            RowRender="@RowRender"
 | 
			
		||||
                            EmptyText="@myText.NoDate" AllowAlternatingRows="false">
 | 
			
		||||
                            EmptyText="无数据" AllowAlternatingRows="false">
 | 
			
		||||
 | 
			
		||||
                <Template Context="di">
 | 
			
		||||
                <RadzenDataGrid Data="@di.ChannelStocks" EmptyText="@myText.NoDate" @ref="di.Grid"
 | 
			
		||||
                    <RadzenDataGrid Data="@di.ChannelStocks" EmptyText="无数据" @ref="di.Grid"
 | 
			
		||||
                                CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args, di.Grid))">
 | 
			
		||||
                        <Columns>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.StorageLocation" Property="DrawerNo">
 | 
			
		||||
                            <RadzenDataGridColumn Title="库位" Property="DrawerNo">
 | 
			
		||||
                                <Template Context="s">
 | 
			
		||||
                                    @s.DrawerNo - @s.ColNo
 | 
			
		||||
                                </Template>
 | 
			
		||||
                            </RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Inventory" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                            <RadzenDataGridColumn Title="库存" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                            @* <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                            <RadzenDataGridColumn Title="效期" Property="EffDate"></RadzenDataGridColumn> *@
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Quantity" Property="ReturnQuantity">
 | 
			
		||||
                            <RadzenDataGridColumn Title="入库数量" Property="ReturnQuantity">
 | 
			
		||||
                                <EditTemplate Context="cs">
 | 
			
		||||
                                    <RadzenNumeric Disabled="status > 0" Style="display: block" Min="0" Max="@di.Quantity" Name="Quantity" @bind-Value=@cs.ReturnQuantity />
 | 
			
		||||
                                <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Max="@di.Quantity" Text="@myText.InputNum" Component="Quantity" />
 | 
			
		||||
                                <RadzenCustomValidator Validator="@(() => di.ChannelStocks.Sum(cs2 => cs2.ReturnQuantity) == di.Quantity)" Component="Quantity" Text="@myText.InputNumError" Style="position: absolute;z-index: 9999;" />
 | 
			
		||||
                                    <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Max="@di.Quantity" Text="请填写正确的添加数量" Component="Quantity" />
 | 
			
		||||
                                <RadzenCustomValidator Validator="@(() => di.ChannelStocks.Sum(cs2 => cs2.ReturnQuantity) == di.Quantity)" Component="Quantity" Text="入库总量应等于请领数量" Style="position: absolute;z-index: 9999;" />
 | 
			
		||||
                                </EditTemplate>
 | 
			
		||||
                            </RadzenDataGridColumn>
 | 
			
		||||
                        </Columns>
 | 
			
		||||
                    </RadzenDataGrid>
 | 
			
		||||
                </Template>
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Property="Drug.DrugName" Title="@myText.DrugName" />
 | 
			
		||||
                    <RadzenDataGridColumn Property="Drug.DrugSpec" Title="@myText.Spec" />
 | 
			
		||||
                    <RadzenDataGridColumn Property="ManuNo" Title="@myText.Batch">
 | 
			
		||||
                    <RadzenDataGridColumn Property="Drug.DrugName" Title="药品" />
 | 
			
		||||
                    <RadzenDataGridColumn Property="Drug.DrugSpec" Title="规格" />
 | 
			
		||||
                    <RadzenDataGridColumn Property="ManuNo" Title="批次">
 | 
			
		||||
                        <Template Context="ov">
 | 
			
		||||
                            @ov.data.First().ManuNo
 | 
			
		||||
                        </Template>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Property="EffDate" Title="@myText.Expiration">
 | 
			
		||||
                    <RadzenDataGridColumn Property="EffDate" Title="效期">
 | 
			
		||||
                        <Template Context="ov">
 | 
			
		||||
                            @ov.data.First().EffDate
 | 
			
		||||
                        </Template>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Property="Quantity" Title="@myText.Quantity" />
 | 
			
		||||
                <RadzenDataGridColumn Property="StockQuantity" Title="@myText.TotalStock" />
 | 
			
		||||
                    <RadzenDataGridColumn Property="Quantity" Title="请领数量" />
 | 
			
		||||
                    <RadzenDataGridColumn Property="StockQuantity" Title="总库存" />
 | 
			
		||||
                </Columns>
 | 
			
		||||
            </RadzenDataGrid>
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			@ -60,15 +60,15 @@
 | 
			
		|||
    <RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" Gap="0.5rem">
 | 
			
		||||
        @if (status < 2)
 | 
			
		||||
        {
 | 
			
		||||
            <RadzenButton Click="@StartAdd" Disabled="!CanTakeDrug" IsBusy="status > 0" BusyText="@myText.Adding" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="@myText.Add" Style="width: 120px" />
 | 
			
		||||
            <RadzenButton Click="@StartAdd" Disabled="!CanTakeDrug" IsBusy="status > 0" BusyText="加药中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="加药" Style="width: 120px" />
 | 
			
		||||
        }
 | 
			
		||||
        @if (status == 2)
 | 
			
		||||
        {
 | 
			
		||||
            <RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="@myText.Complete" Style="width: 120px" />
 | 
			
		||||
            <RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="完成" Style="width: 120px" />
 | 
			
		||||
        }
 | 
			
		||||
        @if (status < 2)
 | 
			
		||||
        {
 | 
			
		||||
            <RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="@myText.Cancel" Style="width: 120px" />
 | 
			
		||||
            <RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
 | 
			
		||||
        }
 | 
			
		||||
    </RadzenStack>
 | 
			
		||||
</RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -79,9 +79,6 @@
 | 
			
		|||
    @inject IOptions<DrawerConfig> setting;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject PortUtil PortUtil;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
    RadzenDataGrid<OperationVo<List<MachineRecord>>> grid;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -99,7 +96,7 @@
 | 
			
		|||
        if(data.Any(it => it.Quantity != it.ChannelStocks.Sum(cs => cs.ReturnQuantity)))
 | 
			
		||||
        {
 | 
			
		||||
            _message.Notify(
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = myText.InputCorrectInNum, Duration = 4000 }
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请填写正确的入库数量!", Duration = 4000 }
 | 
			
		||||
            );
 | 
			
		||||
            
 | 
			
		||||
        } else
 | 
			
		||||
| 
						 | 
				
			
			@ -128,7 +125,7 @@
 | 
			
		|||
        if (channels.Count == 0)
 | 
			
		||||
        {
 | 
			
		||||
            _message.Notify(
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = myText.InputCorrectInNum, Duration = 4000 }
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请填写正确的入库数量!", Duration = 4000 }
 | 
			
		||||
            );
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -168,16 +165,16 @@
 | 
			
		|||
                        if (b)
 | 
			
		||||
                        {
 | 
			
		||||
                            PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                            PortUtil.SpeakAsync($"{drawerNo}{myText.PleaseAdd}");
 | 
			
		||||
                            PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药");
 | 
			
		||||
                            options._data = 1;
 | 
			
		||||
                            next();
 | 
			
		||||
                        }
 | 
			
		||||
                        else
 | 
			
		||||
                        {
 | 
			
		||||
                            _message.Notify(
 | 
			
		||||
                                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"【{drawerNo}】{myText.DrawerOpenFailed}", Duration = 4000 }
 | 
			
		||||
                                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
 | 
			
		||||
                            );
 | 
			
		||||
                            logger.Info(myText.DrawerOpenFailed);
 | 
			
		||||
                            logger.Info($"抽屉打开失败");
 | 
			
		||||
                            PortUtil.AllLightOff();
 | 
			
		||||
                            RestData();
 | 
			
		||||
                            stop();
 | 
			
		||||
| 
						 | 
				
			
			@ -199,7 +196,7 @@
 | 
			
		|||
                            if (index == drawerNos.Count - 1)
 | 
			
		||||
                            {
 | 
			
		||||
                                PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                                PortUtil.SpeakAsync(myText.AddSuccessful);
 | 
			
		||||
                                PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认");
 | 
			
		||||
                                this.status = 2;
 | 
			
		||||
                                stop();
 | 
			
		||||
                            }
 | 
			
		||||
| 
						 | 
				
			
			@ -238,7 +235,7 @@
 | 
			
		|||
                RestData();
 | 
			
		||||
                logger.Info($"调拨加药发生错误,{e.Message}");
 | 
			
		||||
                _message.Notify(
 | 
			
		||||
                    new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"发生错误,{e.Message}", Duration = 4000 }
 | 
			
		||||
                    new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"发生错误,{e.Message}", Duration = 4000 }
 | 
			
		||||
                );
 | 
			
		||||
                if (setting.Value.single.Contains(drawerNo))
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -261,7 +258,7 @@
 | 
			
		|||
        var b = await machineRecordDao.ReturnDrugFinish(data);
 | 
			
		||||
        if (!b)
 | 
			
		||||
        {
 | 
			
		||||
            _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = myText.DataSaveFailed, Duration = 4000 });
 | 
			
		||||
            _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"数据保存失败", Duration = 4000 });
 | 
			
		||||
            logger.Error($"抽屉加药保存数据库失败,数据{JsonConvert.SerializeObject(data)}");
 | 
			
		||||
            // 关闭弹窗
 | 
			
		||||
            dialogService.Close(false);
 | 
			
		||||
| 
						 | 
				
			
			@ -279,7 +276,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        data = await machineRecordDao.getReturnDrugInfoByRecords(records);
 | 
			
		||||
        // 如果有库位列表未空则说明不能取药,需要增加库位
 | 
			
		||||
        if (data.Any(it => it.ChannelStocks.Count == 0))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,7 @@
 | 
			
		|||
            <RadzenDataGrid @ref="grid"
 | 
			
		||||
            LoadData="@LoadData"
 | 
			
		||||
            IsLoading="@isLoading"
 | 
			
		||||
            EmptyText="@myText.NoDate"
 | 
			
		||||
            EmptyText="无数据"
 | 
			
		||||
            Data="@_forecasts"
 | 
			
		||||
            AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
            AllowRowSelectOnRowClick="true"
 | 
			
		||||
| 
						 | 
				
			
			@ -56,16 +56,16 @@
 | 
			
		|||
                    </RadzenRow>
 | 
			
		||||
                </HeaderTemplate> *@
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="@myText.StorageLocation" Property="Location"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="200px" Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
                    <RadzenDataGridColumn Frozen="true" Title="库位" Property="Location"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="200px" Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                        @* <Template Context="mr">
 | 
			
		||||
                            <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@mr.Drug?.DrugName</RadzenText>
 | 
			
		||||
                            <RadzenText TextStyle="TextStyle.Caption">@mr.Drug?.DrugSpec</RadzenText>
 | 
			
		||||
                        </Template> *@
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Factory" Property="Drug.Manufactory"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Inventory" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.CanReturnQuantity" Property="CanReturnQuantity"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="厂家" Property="Drug.Manufactory"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="库存" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="可归还数量" Property="CanReturnQuantity"></RadzenDataGridColumn>
 | 
			
		||||
                    @*<RadzenDataGridColumn Title="本次归还" Property="CurrentReturnQuantity">
 | 
			
		||||
                        <EditTemplate Context="mr">
 | 
			
		||||
                             <RadzenNumeric Min="0" Style="display: block" Max="@(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2)" Name="Quantity" @bind-Value=@mr.CurrentReturnQuantity /> 
 | 
			
		||||
| 
						 | 
				
			
			@ -81,8 +81,6 @@
 | 
			
		|||
    @inject IMachineRecordDao machineRecordDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<ChannelStock> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +109,7 @@
 | 
			
		|||
        if (string.IsNullOrEmpty(args.Data.DrugId))
 | 
			
		||||
        {
 | 
			
		||||
            _message.Notify(
 | 
			
		||||
                new NotificationMessage { Style = "position: absolute; inset-inline-start: -1000px;", Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"该库位无药品,请先绑药!", Duration = 4000 }
 | 
			
		||||
                new NotificationMessage { Style = "position: absolute; inset-inline-start: -1000px;", Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"该库位无药品,请先绑药!", Duration = 4000 }
 | 
			
		||||
            );
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +117,7 @@
 | 
			
		|||
        var list = args.Data;// _forecasts.Where(mr => mr.DrawerNo > 0).ToList();
 | 
			
		||||
 | 
			
		||||
        var b = await dialogService.OpenAsync<RecordReturnEmptyDialog>(
 | 
			
		||||
                myText.ReturnEmpty,
 | 
			
		||||
                $"归还空瓶",
 | 
			
		||||
              new Dictionary<string, object>() { { "records", list } },
 | 
			
		||||
              new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
 | 
			
		||||
        );
 | 
			
		||||
| 
						 | 
				
			
			@ -128,9 +126,4 @@
 | 
			
		|||
            await reloadGrid();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,19 +6,19 @@
 | 
			
		|||
@using Newtonsoft.Json;
 | 
			
		||||
@using log4net;
 | 
			
		||||
 | 
			
		||||
<RadzenFieldset Text="@myText.DrugInfo">
 | 
			
		||||
<RadzenFieldset Text="药品信息">
 | 
			
		||||
    <RadzenStack Orientation="Orientation.Horizontal" Gap="10px" JustifyContent="JustifyContent.Center" AlignItems="AlignItems.Center" Wrap="FlexWrap.NoWrap" Style="height: 80px;padding:20px;">
 | 
			
		||||
        <RadzenStack class="rz-p-1  rz-text-align-center" Style="width:500px">
 | 
			
		||||
            @myText.DrugName:@drugName
 | 
			
		||||
            药品:@drugName
 | 
			
		||||
        </RadzenStack>
 | 
			
		||||
        <RadzenStack class="rz-p-1 rz-text-align-center" Style="width:500px">
 | 
			
		||||
            @myText.Spec:@drugSpec
 | 
			
		||||
            规格:@drugSpec
 | 
			
		||||
        </RadzenStack>
 | 
			
		||||
        <RadzenStack class="rz-p-1 rz-text-align-center" Style="width:500px">
 | 
			
		||||
            @myText.Factory:@drugManufactory
 | 
			
		||||
            厂家:@drugManufactory
 | 
			
		||||
        </RadzenStack>
 | 
			
		||||
        <RadzenStack class="rz-p-1   rz-text-align-center" Style="width:500px">
 | 
			
		||||
            @myText.CanReturnQuantity:@emptyQuantity
 | 
			
		||||
            可还空瓶数:@emptyQuantity
 | 
			
		||||
        </RadzenStack>
 | 
			
		||||
    </RadzenStack>
 | 
			
		||||
</RadzenFieldset>
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +27,7 @@
 | 
			
		|||
                LoadData="@LoadData"
 | 
			
		||||
                IsLoading="@isLoading"
 | 
			
		||||
                Count="@count"
 | 
			
		||||
                EmptyText="@myText.NoDate"
 | 
			
		||||
                EmptyText="无数据"
 | 
			
		||||
                Data="@_returnEmptys"
 | 
			
		||||
                AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                AllowRowSelectOnRowClick="true"
 | 
			
		||||
| 
						 | 
				
			
			@ -36,25 +36,25 @@
 | 
			
		|||
    <Columns>
 | 
			
		||||
        <RadzenDataGridColumn Width="60px" Sortable="false" Filterable="false">
 | 
			
		||||
            <HeaderTemplate>
 | 
			
		||||
                @myText.Select
 | 
			
		||||
                选择
 | 
			
		||||
            </HeaderTemplate>
 | 
			
		||||
            <Template Context="LoadData">
 | 
			
		||||
                <RadzenCheckBox TriState="false" Value="@LoadData.IsSelected" InputAttributes="@(new Dictionary<string,object>(){ { "aria-label", "Select item" }})"
 | 
			
		||||
                                TValue="bool" />
 | 
			
		||||
            </Template>
 | 
			
		||||
        </RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Frozen="true" Title="@myText.Operator" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Width="170px" Title="@myText.OperateDate" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo">
 | 
			
		||||
        <RadzenDataGridColumn Frozen="true" Title="操作人" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Width="170px" Title="操作时间" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="批次" Property="ManuNo">
 | 
			
		||||
            <Template Context="mr">
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@mr.ManuNo</RadzenText>
 | 
			
		||||
                <RadzenText TextStyle="TextStyle.Caption"> @mr.EffDate?.ToString("yyyy-MM-dd")</RadzenText>
 | 
			
		||||
            </Template>
 | 
			
		||||
        </RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="@myText.Quantity" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="@myText.ReturnQuantity" Property="ReturnQuantity1"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="@myText.ReturnEmpty" Property="ReturnQuantity2"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="@myText.CurrentReturn" Property="CurrentReturnQuantity">
 | 
			
		||||
        <RadzenDataGridColumn Title="数量" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="已还药品" Property="ReturnQuantity1"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="已还空瓶" Property="ReturnQuantity2"></RadzenDataGridColumn>
 | 
			
		||||
        <RadzenDataGridColumn Title="本次归还" Property="CurrentReturnQuantity">
 | 
			
		||||
            <EditTemplate Context="mr">
 | 
			
		||||
                <RadzenNumeric Min="0" Style="display: block" Max="@(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2)" Name="Quantity" @bind-Value=@mr.CurrentReturnQuantity />
 | 
			
		||||
            </EditTemplate>
 | 
			
		||||
| 
						 | 
				
			
			@ -65,15 +65,15 @@
 | 
			
		|||
<RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" Gap="0.5rem" Style="margin-top:15px;">
 | 
			
		||||
    @if (status < 2)
 | 
			
		||||
    {
 | 
			
		||||
        <RadzenButton Click="@StartAdd" IsBusy="status > 0" BusyText="@myText.Returning" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="@myText.Return" Style="width: 120px" />
 | 
			
		||||
        <RadzenButton Click="@StartAdd" IsBusy="status > 0" BusyText="还空瓶中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="归还" Style="width: 120px" />
 | 
			
		||||
    }
 | 
			
		||||
    @if (status == 2)
 | 
			
		||||
    {
 | 
			
		||||
        <RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="@myText.Complete" Style="width: 120px" />
 | 
			
		||||
        <RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="完成" Style="width: 120px" />
 | 
			
		||||
    }
 | 
			
		||||
    @if (status < 2)
 | 
			
		||||
    {
 | 
			
		||||
        <RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="@myText.Cancel" Style="width: 120px" />
 | 
			
		||||
        <RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
 | 
			
		||||
    }
 | 
			
		||||
</RadzenStack>
 | 
			
		||||
@code
 | 
			
		||||
| 
						 | 
				
			
			@ -84,8 +84,6 @@
 | 
			
		|||
    @inject IOptions<DrawerConfig> setting;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject PortUtil PortUtil;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
 | 
			
		||||
    [Parameter]
 | 
			
		||||
    public ChannelStock records { get; set; }
 | 
			
		||||
| 
						 | 
				
			
			@ -307,9 +305,4 @@
 | 
			
		|||
        //重置状态
 | 
			
		||||
        this.RestData();
 | 
			
		||||
    }
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,11 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
            
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.StartDate" Component="Start" />
 | 
			
		||||
                                <RadzenLabel Text="开始时间" Component="Start" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="start" Style="width: 100%;" Name="Start" />
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,7 @@
 | 
			
		|||
                        </RadzenRow>
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="4">
 | 
			
		||||
                                <RadzenLabel Text="@myText.EndDate" Component="End" />
 | 
			
		||||
                                <RadzenLabel Text="结束时间" Component="End" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                            <RadzenColumn Size="8">
 | 
			
		||||
                                <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="end" Style="width: 100%;" Name="End" />
 | 
			
		||||
| 
						 | 
				
			
			@ -27,8 +27,8 @@
 | 
			
		|||
                    
 | 
			
		||||
                        <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenColumn Size="12">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -41,19 +41,19 @@
 | 
			
		|||
                    LoadData="@LoadData"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    Count="@count"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
                    AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} ¹²{2}ÌõÊý¾Ý">
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="@myText.Operator" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="@myText.OperateDate" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="200px" Title="@myText.DrugName" Property="Drug.DrugName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Quantity" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="@myText.Expiration" Property="EffDate">
 | 
			
		||||
                        <RadzenDataGridColumn Frozen="true" Title="操作人" Property="OperatorUser.NickName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="170px" Title="操作时间" Property="OperationTime"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Width="200px" Title="药品名称" Property="Drug.DrugName"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="数量" Property="Quantity"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                        <RadzenDataGridColumn Title="效期" Property="EffDate">
 | 
			
		||||
                            <Template Context="mr">
 | 
			
		||||
                                @mr.EffDate?.ToString("yyyy-MM-dd")
 | 
			
		||||
                            </Template>
 | 
			
		||||
| 
						 | 
				
			
			@ -67,8 +67,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IMachineRecordDao machineRecordDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<MachineRecord> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -96,11 +94,7 @@
 | 
			
		|||
        await grid.Reload();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,12 +6,12 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
 | 
			
		||||
                        <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.RoleName" Component="RoleName" />
 | 
			
		||||
                                    <RadzenLabel Text="角色名称" Component="RoleName" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="RoleName" Style="width: 100%;" Name="RoleName"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -20,12 +20,12 @@
 | 
			
		|||
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="12">
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenStack>
 | 
			
		||||
                        <RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@(() => InsertRow())" Disabled="@(rolesToInsert.Count() > 0)" Text="@myText.Add" />
 | 
			
		||||
                        <RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@(() => InsertRow())" Disabled="@(rolesToInsert.Count() > 0)" Text="新增" />
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
                </RadzenFieldset>
 | 
			
		||||
            </form>
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +35,7 @@
 | 
			
		|||
            LoadData="@LoadData"
 | 
			
		||||
            IsLoading="@isLoading"
 | 
			
		||||
            Count="@count"
 | 
			
		||||
            EmptyText="@myText.NoDate"
 | 
			
		||||
            EmptyText="无数据"
 | 
			
		||||
            Data="@roleList"
 | 
			
		||||
            AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
            RowUpdate="@((Pojo.Role r) => { OnUpdateRow(r); })" RowCreate="@((Pojo.Role r) => { OnCreateRow(r); })"
 | 
			
		||||
| 
						 | 
				
			
			@ -43,13 +43,13 @@
 | 
			
		|||
            AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Width="50px" Title="ID" Property="Id"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Width="120px" Title="@myText.RoleName" Property="RoleName">
 | 
			
		||||
                    <RadzenDataGridColumn Width="120px" Title="角色名称" Property="RoleName">
 | 
			
		||||
                        <EditTemplate Context="role">
 | 
			
		||||
                            <RadzenTextBox Name="RoleName" @bind-Value="role.RoleName" Style="width:100%; display: block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Style="position: absolute;z-index: 9999;" Text="@myText.InputRoleName" Component="RoleName" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Style="position: absolute;z-index: 9999;" Text="请填写角色名称" Component="RoleName" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Role" Property="permissions">
 | 
			
		||||
                    <RadzenDataGridColumn Title="权限" Property="permissions">
 | 
			
		||||
                        <Template Context="role">
 | 
			
		||||
                            @string.Join(", ", allPremissions.Where(g => role.permissionIds?.Contains(g.Id) == true).Select(g => $"{g.PremissionName}"))
 | 
			
		||||
                        </Template>
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +66,7 @@
 | 
			
		|||
                                    @string.Join(", ", allPremissions.Where(g => role.permissionIds?.Contains(g.Id) == true).Take(dd.MaxSelectedLabels).Select(g => $"{g.PremissionName}"))
 | 
			
		||||
                                </ValueTemplate>
 | 
			
		||||
                            </RadzenDropDown>
 | 
			
		||||
                            <RadzenRequiredValidator Style="position: absolute;z-index: 9999;" Text="@myText.SelectRole" Component="Permissions" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Style="position: absolute;z-index: 9999;" Text="请选择权限" Component="Permissions" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -97,8 +97,6 @@
 | 
			
		|||
@code {
 | 
			
		||||
    @inject IRoleDao roleDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<Pojo.Role> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -112,7 +110,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
        List<Premission> t = new Premission().getAdminPremission();
 | 
			
		||||
        IEnumerable<Premission> t2 = Enumerable.Empty<Premission>();
 | 
			
		||||
| 
						 | 
				
			
			@ -200,8 +197,8 @@
 | 
			
		|||
        {
 | 
			
		||||
            //弹出确认提示框
 | 
			
		||||
            var b = await dialogService.OpenAsync<ConfirmDialog>(
 | 
			
		||||
               myText.ConfirmDelete,
 | 
			
		||||
             new Dictionary<string, object>() { { "confirmInfo", $"{myText.ConfirmDeleteRole}:" + role.RoleName + "?" } },
 | 
			
		||||
               $"删除确认",
 | 
			
		||||
             new Dictionary<string, object>() { { "confirmInfo", "确认要删除角色:" + role.RoleName+"吗?" } },
 | 
			
		||||
             new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false });
 | 
			
		||||
            if (b)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,102 +4,102 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
            <RadzenTemplateForm Data="@orderInfo" Submit="@(((OrderInfo args) => { Submit(args); }))">
 | 
			
		||||
                <RadzenFieldset Text="@myText.WriteOrder">
 | 
			
		||||
                <RadzenFieldset Text="手写处方">
 | 
			
		||||
                    <RadzenRow Gap="1rem">
 | 
			
		||||
                        <RadzenColumn Size="4">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.OrderNo" Component="OrderNo" />
 | 
			
		||||
                                    <RadzenLabel Text="处方号" Component="OrderNo" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="orderInfo.OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.InputOrderTips" Component="OrderNo" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入处方号" Component="OrderNo" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="4">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.OrderDate" Component="OrderDate" />
 | 
			
		||||
                                    <RadzenLabel Text="处方时间" Component="OrderDate" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" CurrentDateChanged="@OnCurrentDateChanged"
 | 
			
		||||
                                    ShowTime="true" ShowSeconds="true"
 | 
			
		||||
                                    @bind-Value="orderInfo.OrderDate" Style="width: 100%;" Name="OrderDate" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.InputOrderDate" Component="OrderDate" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入处方时间" Component="OrderDate" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="4">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.PatientName" Component="PatientName" />
 | 
			
		||||
                                    <RadzenLabel Text="患者姓名" Component="PatientName" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="orderInfo.PatientName" Style="width: 100%;" Name="PatientName"></RadzenTextBox>
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.InputPatientName" Component="PatientName" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入患者姓名" Component="PatientName" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="2">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.Sex" Component="Sex" />
 | 
			
		||||
                                    <RadzenLabel Text="性别" Component="Sex" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="orderInfo.Sex" Style="width: 100%;" Name="Sex"></RadzenTextBox>
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.InputPatientSex" Component="Sex" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入患者性别" Component="Sex" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="2">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.Age" Component="Age" />
 | 
			
		||||
                                    <RadzenLabel Text="年龄" Component="Age" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="orderInfo.Age" Style="width: 100%;" Name="Age"></RadzenTextBox>
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.InputPatientAge" Component="Age" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入患者年龄" Component="Age" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="4">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.OrderDoctor" Component="DoctorName" />
 | 
			
		||||
                                    <RadzenLabel Text="处方医生" Component="DoctorName" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="orderInfo.DoctorName" Style="width: 100%;" Name="DoctorName"></RadzenTextBox>
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.Doctor" Component="DoctorName" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入处方医生" Component="DoctorName" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="4">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.DeptName" Component="DeptName" />
 | 
			
		||||
                                    <RadzenLabel Text="科室" Component="DeptName" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="orderInfo.DeptName" Style="width: 100%;" Name="DeptName"></RadzenTextBox>
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.InputDept" Component="DeptName" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入科室" Component="DeptName" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="6">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="2">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.Diagnose" Component="Disease" />
 | 
			
		||||
                                    <RadzenLabel Text="诊断" Component="Disease" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="10">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="orderInfo.Disease" Style="width: 100%;" Name="Disease"></RadzenTextBox>
 | 
			
		||||
                                    <RadzenRequiredValidator Text="@myText.InputDisease" Component="Disease" />
 | 
			
		||||
                                    <RadzenRequiredValidator Text="请输入诊断" Component="Disease" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                        <RadzenColumn Size="6">
 | 
			
		||||
                            <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.SpaceBetween">
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" Disabled="@(detailsToInsert.Count() > 0 || detailsToUpdate.Count() > 0)" Text="@myText.Confirm" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Icon="add_circle_outline" ButtonStyle="ButtonStyle.Success" Click="@InsertRow" Disabled="@(detailsToInsert.Count() > 0)" Text="@myText.Add" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" Disabled="@(detailsToInsert.Count() > 0 || detailsToUpdate.Count() > 0)" Text="确定" />
 | 
			
		||||
                                <RadzenButton Size="ButtonSize.Large" Icon="add_circle_outline" ButtonStyle="ButtonStyle.Success" Click="@InsertRow" Disabled="@(detailsToInsert.Count() > 0)" Text="添加" />
 | 
			
		||||
                            </RadzenStack>
 | 
			
		||||
                        </RadzenColumn>
 | 
			
		||||
                    </RadzenRow>
 | 
			
		||||
| 
						 | 
				
			
			@ -109,32 +109,33 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
            <RadzenDataGrid @ref="grid"
 | 
			
		||||
                            EmptyText="@myText.AddNewOrder"
 | 
			
		||||
            EmptyText="请添加手写处方详情"
 | 
			
		||||
            Data="@orderDetails"
 | 
			
		||||
            EditMode="DataGridEditMode.Single"
 | 
			
		||||
            RowUpdate="@((OrderDetail od) => { OnUpdateRow(od); })" RowCreate="@((OrderDetail od) => { OnCreateRow(od); })"
 | 
			
		||||
            AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
            SelectionMode="DataGridSelectionMode.Single">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
                    <RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                        <EditTemplate Context="od">
 | 
			
		||||
                            @* <RadzenDropDown Name="Drug" TValue="DrugInfo" @bind-Value="od.Drug" Data="@drugInfos" Style="width:100%; display: block;"  /> *@
 | 
			
		||||
                            <RadzenDropDownDataGrid AllowVirtualization="true" Name="Drug" TValue="DrugInfo" @bind-Value="od.Drug" Data="@drugInfos" Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true">
 | 
			
		||||
                                <Columns>
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugId" Title="@myText.DrugCode" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="@myText.DrugName" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugSpec" Title="@myText.Spec" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="StockQuantity" Title="@myText.Inventory" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugId" Title="药品编码" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="名称" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="DrugSpec" Title="规格" />
 | 
			
		||||
                                    <RadzenDropDownDataGridColumn Property="StockQuantity" Title="库存" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" />
 | 
			
		||||
                                </Columns>
 | 
			
		||||
                            </RadzenDropDownDataGrid>
 | 
			
		||||
                            <RadzenCustomValidator Style="position: absolute;z-index: 9999;" Component="Drug" Validator="@(() => !String.IsNullOrEmpty(od.Drug.DrugId))" Text="@myText.SelectDrug" />
 | 
			
		||||
                            <RadzenCustomValidator Component="Drug" Validator="@(() => ValidateDrug(od.Drug))" Text="@myText.HasSelect" />
 | 
			
		||||
                            <RadzenCustomValidator Style="position: absolute;z-index: 9999;" Component="Drug" Validator="@(() => !String.IsNullOrEmpty(od.Drug.DrugId ))" Text="请选择药品" />
 | 
			
		||||
                            <RadzenCustomValidator Component="Drug" Validator="@(() => ValidateDrug(od.Drug))" Text="已经选择的药品不能再次选择" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Quantity" Property="Quantity">
 | 
			
		||||
                    <RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="数量" Property="Quantity">
 | 
			
		||||
                        <EditTemplate Context="od">
 | 
			
		||||
                            <RadzenNumeric Style="width:100%; display: block;" Name="Quantity" @bind-Value=@od.Quantity />
 | 
			
		||||
                            <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="1" Max="@od.Drug.StockQuantity" Text="@myText.InputTips" Component="Quantity" />
 | 
			
		||||
                            <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="1" Max="@od.Drug.StockQuantity" Text="请填写正确的取出数量" Component="Quantity" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Context="detail" Filterable="false" Sortable="false" TextAlign="TextAlign.Right" Frozen="true" FrozenPosition="FrozenColumnPosition.Right">
 | 
			
		||||
| 
						 | 
				
			
			@ -164,8 +165,6 @@
 | 
			
		|||
    @inject IDrugInfoDao drugInfoDao;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<OrderDetail> grid;
 | 
			
		||||
    List<OrderDetail> orderDetails = new();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -181,7 +180,7 @@
 | 
			
		|||
        };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
    void Reset()
 | 
			
		||||
    {
 | 
			
		||||
        detailsToInsert.Clear();
 | 
			
		||||
| 
						 | 
				
			
			@ -252,21 +251,21 @@
 | 
			
		|||
        if (orderDetails.Count == 0)
 | 
			
		||||
        {
 | 
			
		||||
            _message.Notify(
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"请添加用药详情", Duration = 3000 }
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请添加用药详情", Duration = 3000 }
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            //弹出待取药品所在库位、库存信息
 | 
			
		||||
            var b = await dialogService.OpenAsync<SelfTakeDialog>(
 | 
			
		||||
                myText.TakeDetail,
 | 
			
		||||
                $"取药详情",
 | 
			
		||||
              new Dictionary<string, object>() { { "order", orderInfo }, { "orderDetails", orderDetails } },
 | 
			
		||||
              new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
 | 
			
		||||
            );
 | 
			
		||||
            if (b)
 | 
			
		||||
            {
 | 
			
		||||
                _message.Notify(
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = $"取药完成", Duration = 3000 }
 | 
			
		||||
                new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"取药完成", Duration = 3000 }
 | 
			
		||||
            );
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -283,8 +282,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        drugInfos = await drugInfoDao.GetAllDrugAndStock();
 | 
			
		||||
 | 
			
		||||
        base.OnInitializedAsync();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,28 +62,28 @@
 | 
			
		|||
                                    switch(channel.BoardType)
 | 
			
		||||
                                    {
 | 
			
		||||
                                        case 1:
 | 
			
		||||
                                            <b>@myText.DrawerType1</b>
 | 
			
		||||
                                            <b>物理隔板</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 2:
 | 
			
		||||
                                            <b>@myText.DrawerType2</b>
 | 
			
		||||
                                            <b>单支计数</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 3:
 | 
			
		||||
                                            <b>@myText.DrawerType7</b>
 | 
			
		||||
                                            <b>管控药盒</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 4:
 | 
			
		||||
                                            <b>@myText.DrawerType8</b>
 | 
			
		||||
                                            <b>储物箱</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 5:
 | 
			
		||||
                                            <b>@myText.DrawerType4</b>
 | 
			
		||||
                                            <b>智能显示</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 6:
 | 
			
		||||
                                            <b>@myText.DrawerType9</b>
 | 
			
		||||
                                            <b>称重计数</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 63:
 | 
			
		||||
                                            <b>@myText.DrawerType10</b>
 | 
			
		||||
                                            <b>称重计数药盒</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 653:
 | 
			
		||||
                                            <b>@myText.DrawerType3</b>
 | 
			
		||||
                                            <b>称重计数药盒智能显示</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
| 
						 | 
				
			
			@ -92,7 +92,7 @@
 | 
			
		|||
                                    switch (channel.BoardType)
 | 
			
		||||
                                    {
 | 
			
		||||
                                        case 1:
 | 
			
		||||
                                            <b>@myText.DrawerType5</b>
 | 
			
		||||
                                            <b>内置回收</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                        case 2:
 | 
			
		||||
                                            <b>内置计数回收</b>
 | 
			
		||||
| 
						 | 
				
			
			@ -122,7 +122,7 @@
 | 
			
		|||
                                    switch (channel.BoardType)
 | 
			
		||||
                                    {
 | 
			
		||||
                                        case 1:
 | 
			
		||||
                                            <b>@myText.DrawerType6</b>
 | 
			
		||||
                                            <b>外置回收</b>
 | 
			
		||||
                                            break;
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
| 
						 | 
				
			
			@ -131,22 +131,22 @@
 | 
			
		|||
                            <RadzenColumn Size="4" Class="rz-text-align-end">
 | 
			
		||||
                                @if(channel.Quantity == 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    <RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@(() => EditChannel(channel))" Text="@myText.BindUnBind" />
 | 
			
		||||
                                    <RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@(() => EditChannel(channel))" Text="绑定/解绑" />
 | 
			
		||||
                                }
 | 
			
		||||
                            </RadzenColumn>
 | 
			
		||||
                        </RadzenRow>
 | 
			
		||||
                        <hr style="border: none; background-color: rgba(0,0,0,.2); height: 1px; margin: 1rem 0;" />
 | 
			
		||||
                        <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center">
 | 
			
		||||
                            <RadzenStack Gap="0">
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">@myText.DrugName</RadzenText>
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">药品</RadzenText>
 | 
			
		||||
                                @if (channel.DrugId == null || channel.Quantity == 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    <RadzenDropDownDataGrid Change="@((args) => { channel.drugManuNo = null; })" AllowVirtualization="true" Name="@("Drug_" + channel.Id)" TValue="DrugInfo" @bind-Value="channel.Drug" Data="@drugInfos"
 | 
			
		||||
                                    Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="DrugName">
 | 
			
		||||
                                        <Columns>
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="DrugId" Title="@myText.DrugCode" Sortable="false" />
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="@myText.DrugName" Sortable="false" />
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="DrugSpec" Title="@myText.Spec" Sortable="false" />
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="DrugId" Title="药品编码" Sortable="false" />
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="名称" Sortable="false" />
 | 
			
		||||
                                            <RadzenDropDownDataGridColumn Property="DrugSpec" Title="规格" Sortable="false" />
 | 
			
		||||
                                        </Columns>
 | 
			
		||||
                                    </RadzenDropDownDataGrid>
 | 
			
		||||
                                } else
 | 
			
		||||
| 
						 | 
				
			
			@ -156,13 +156,13 @@
 | 
			
		|||
                                }
 | 
			
		||||
                                @if(channel.DrawerType == 1)
 | 
			
		||||
                                {
 | 
			
		||||
                                    <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">@myText.Batch</RadzenText>
 | 
			
		||||
                                    <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">批次</RadzenText>
 | 
			
		||||
                                    @if (channel.DrugId == null || channel.Quantity == 0)
 | 
			
		||||
                                    {
 | 
			
		||||
                                        <RadzenDropDownDataGrid @bind-Value=@channel.drugManuNo Data=@channel.Drug?.Manus Disabled="@(channel.Drug == null)" TValue="DrugManuNo" Name="@("Drugmanu_" + channel.Id)" TextProperty="ManuNo">
 | 
			
		||||
                                            <Columns>
 | 
			
		||||
                                                <RadzenDropDownDataGridColumn Property="ManuNo" Title="@myText.Batch" Sortable="false" />
 | 
			
		||||
                                                <RadzenDropDownDataGridColumn Property="EffDate" Title="@myText.Expiration" Sortable="false">
 | 
			
		||||
                                                <RadzenDropDownDataGridColumn Property="ManuNo" Title="批次" Sortable="false" />
 | 
			
		||||
                                                <RadzenDropDownDataGridColumn Property="EffDate" Title="效期" Sortable="false">
 | 
			
		||||
                                                    <Template Context="data">
 | 
			
		||||
                                                        @data.EffDate.ToString("yyyy-MM-dd")
 | 
			
		||||
                                                    </Template>
 | 
			
		||||
| 
						 | 
				
			
			@ -177,7 +177,7 @@
 | 
			
		|||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">@myText.Inventory</RadzenText>
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">库存</RadzenText>
 | 
			
		||||
                                <RadzenText TextStyle="TextStyle.Body1"><b>@(channel.Quantity)</b></RadzenText>
 | 
			
		||||
                            </RadzenStack>
 | 
			
		||||
                        </RadzenStack>
 | 
			
		||||
| 
						 | 
				
			
			@ -193,8 +193,6 @@
 | 
			
		|||
    @inject IDrugInfoDao drugInfoDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataList<ChannelStock> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -211,7 +209,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
 | 
			
		||||
        //drugInfos = await drugInfoDao.GetAllDrug();
 | 
			
		||||
| 
						 | 
				
			
			@ -250,7 +247,7 @@
 | 
			
		|||
                if(b)
 | 
			
		||||
                {
 | 
			
		||||
                    _message.Notify(
 | 
			
		||||
                        new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.BindSuccess, Duration = 4000 }
 | 
			
		||||
                        new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"解除绑定成功", Duration = 4000 }
 | 
			
		||||
                    );
 | 
			
		||||
                    await reloadGrid();
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -263,7 +260,7 @@
 | 
			
		|||
                if (b)
 | 
			
		||||
                {
 | 
			
		||||
                    _message.Notify(
 | 
			
		||||
                        new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.BindSuccess, Duration = 4000 }
 | 
			
		||||
                        new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"绑定成功", Duration = 4000 }
 | 
			
		||||
                    );
 | 
			
		||||
                    await reloadGrid();
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -277,7 +274,7 @@
 | 
			
		|||
                if (b)
 | 
			
		||||
                {
 | 
			
		||||
                    _message.Notify(
 | 
			
		||||
                        new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.BindSuccess, Duration = 4000 }
 | 
			
		||||
                        new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"绑定成功", Duration = 4000 }
 | 
			
		||||
                    );
 | 
			
		||||
                    await reloadGrid();
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,7 @@
 | 
			
		|||
    LoadData="@LoadData"
 | 
			
		||||
    IsLoading="@isLoading"
 | 
			
		||||
    Count="@count"
 | 
			
		||||
    EmptyText="@myText.NoDate"
 | 
			
		||||
    EmptyText="无数据"
 | 
			
		||||
    Data="@channels"
 | 
			
		||||
    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
    CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
 | 
			
		||||
| 
						 | 
				
			
			@ -37,27 +37,27 @@
 | 
			
		|||
            <RadzenRow JustifyContent="JustifyContent.End">
 | 
			
		||||
                @if (status < 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton IsBusy="@(status > 0)" BusyText="@myText.Checking" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Check" Click="@OpenDrawer" />
 | 
			
		||||
                    <RadzenButton IsBusy="@(status>0)" BusyText="盘点中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="盘点" Click="@OpenDrawer" />
 | 
			
		||||
                }
 | 
			
		||||
                @if (status == 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Complete" Click="@CheckFinish" />
 | 
			
		||||
                    <RadzenButton ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="完成" Click="@CheckFinish" />
 | 
			
		||||
                }
 | 
			
		||||
                @if (status > 0 && status <= 3)
 | 
			
		||||
                {
 | 
			
		||||
                    <RadzenButton Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                    <RadzenButton Variant="Variant.Flat" Shade="Shade.Light" Text="取消" Click="@Cancel" Style="width: 120px" />
 | 
			
		||||
                }
 | 
			
		||||
            </RadzenRow>
 | 
			
		||||
        </HeaderTemplate>
 | 
			
		||||
        <Columns>
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
 | 
			
		||||
            <RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.Drug?.DrugName</RadzenText>
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Caption">@channel.Drug?.DrugSpec</RadzenText>
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo">
 | 
			
		||||
            <RadzenDataGridColumn Title="批次" Property="ManuNo">
 | 
			
		||||
                <Template Context="channel">
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.drugManuNo?.ManuNo</RadzenText>
 | 
			
		||||
                    <RadzenText TextStyle="TextStyle.Caption">@channel.drugManuNo?.EffDate</RadzenText>
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +78,7 @@
 | 
			
		|||
                                </RadzenStack>
 | 
			
		||||
                            </ValueTemplate>
 | 
			
		||||
                        </RadzenDropDown>
 | 
			
		||||
                        <RadzenRequiredValidator Text="@myText.SelectBatch" Component="ManuNo" Popup="true" />
 | 
			
		||||
                        <RadzenRequiredValidator Text="请选择批次" Component="ManuNo" Popup="true" />
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -88,12 +88,12 @@
 | 
			
		|||
                    }
 | 
			
		||||
                </EditTemplate>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Inventory" Property="Quantity">
 | 
			
		||||
            <RadzenDataGridColumn Title="库存" Property="Quantity">
 | 
			
		||||
                <Template Context="cs">
 | 
			
		||||
                    <RadzenButton ButtonStyle="ButtonStyle.Info" Variant="Variant.Flat" Shade="Shade.Lighter" class="m-1" Text="@cs.Quantity.ToString()" />
 | 
			
		||||
                </Template>
 | 
			
		||||
            </RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn MinWidth="120px" Title="@myText.CheckQuantity" Property="CheckQuantity">
 | 
			
		||||
            <RadzenDataGridColumn MinWidth="120px" Title="盘点数量" Property="CheckQuantity">
 | 
			
		||||
                <EditTemplate Context="cs">
 | 
			
		||||
                    @if (cs.BoardType.ToString().Contains("2") || cs.BoardType.ToString().Contains("3"))
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +102,7 @@
 | 
			
		|||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        <RadzenNumeric Style="display: block" Name="CheckQuantity" @bind-Value=@cs.CheckQuantity>
 | 
			
		||||
                            <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="1" Max="100" Text="@myText.InputTips" Component="CheckQuantity" />
 | 
			
		||||
                            <RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="1" Max="100" Text="请填写正确的取出数量" Component="CheckQuantity" />
 | 
			
		||||
                        </RadzenNumeric>
 | 
			
		||||
                    }
 | 
			
		||||
                </EditTemplate>
 | 
			
		||||
| 
						 | 
				
			
			@ -117,8 +117,6 @@
 | 
			
		|||
    @inject PortUtil PortUtil;
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    @inject IOptions<DrawerConfig> setting;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    int status = 0;
 | 
			
		||||
    int drawerNo = 1;
 | 
			
		||||
    RadzenDataGrid<ChannelStock> grid;
 | 
			
		||||
| 
						 | 
				
			
			@ -129,11 +127,6 @@
 | 
			
		|||
    int[] BeforeQuantity = new int[9];
 | 
			
		||||
    int[] AfterQuantity = new int[9];
 | 
			
		||||
    private readonly ILog logger = LogManager.GetLogger(typeof(DrawerAdd));
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async Task LoadData(LoadDataArgs args)
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,11 +42,11 @@
 | 
			
		|||
<div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
    <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
        <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
        <RadzenFieldset Text="查询">
 | 
			
		||||
            <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                    <RadzenColumn Size="4">
 | 
			
		||||
                        <RadzenLabel Text="@myText.StartDate" Component="Start" />
 | 
			
		||||
                        <RadzenLabel Text="开始时间" Component="Start" />
 | 
			
		||||
                    </RadzenColumn>
 | 
			
		||||
                    <RadzenColumn Size="8">
 | 
			
		||||
                        <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="start" Style="width: 100%;" Name="Start" />
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +54,7 @@
 | 
			
		|||
                </RadzenRow>
 | 
			
		||||
                <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                    <RadzenColumn Size="4">
 | 
			
		||||
                        <RadzenLabel Text="@myText.EndDate" Component="End" />
 | 
			
		||||
                        <RadzenLabel Text="结束时间" Component="End" />
 | 
			
		||||
                    </RadzenColumn>
 | 
			
		||||
                    <RadzenColumn Size="8">
 | 
			
		||||
                        <RadzenDatePicker DateFormat="yyyy-MM-dd HH:mm:ss" ShowTime="true" @bind-Value="end" Style="width: 100%;" Name="End" />
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +62,7 @@
 | 
			
		|||
                </RadzenRow>
 | 
			
		||||
                <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                    <RadzenColumn Size="6">
 | 
			
		||||
                        <RadzenLabel Text="@myText.DrugSearch" Component="drug" />
 | 
			
		||||
                        <RadzenLabel Text="药品名称/拼音码/编码" Component="drug" />
 | 
			
		||||
                    </RadzenColumn>
 | 
			
		||||
                    <RadzenColumn Size="6">
 | 
			
		||||
                        <RadzenAutoComplete Name="drug" Multiline="true" @bind-Value=@drugName Data=@drugInfo TextProperty="@nameof(DrugInfo.DrugNameSpecManufactory)"
 | 
			
		||||
| 
						 | 
				
			
			@ -73,12 +73,12 @@
 | 
			
		|||
                <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                    <RadzenColumn Size="12">
 | 
			
		||||
                        @* <RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="²éѯ" /> *@
 | 
			
		||||
                        <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                        <RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                    </RadzenColumn>
 | 
			
		||||
                </RadzenRow>
 | 
			
		||||
                <RadzenRow JustifyContent="JustifyContent.End" AlignItems="AlignItems.Center">
 | 
			
		||||
                    <RadzenButton Icon="download" Text="@myText.StoreExport" Variant="Variant.Outlined" Click="StockExport" />
 | 
			
		||||
                    <RadzenButton Icon="download" Text="@myText.AccountExport" Variant="Variant.Outlined" Click="AccountBookExport" />
 | 
			
		||||
                    <RadzenButton Icon="download" Text="库存导出" Variant="Variant.Outlined" Click="StockExport" />
 | 
			
		||||
                    <RadzenButton Icon="download" Text="专用账册导出" Variant="Variant.Outlined" Click="AccountBookExport" />
 | 
			
		||||
                </RadzenRow>
 | 
			
		||||
            </RadzenStack>
 | 
			
		||||
        </RadzenFieldset>
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +89,7 @@
 | 
			
		|||
    <RadzenDataGrid @ref="grid"
 | 
			
		||||
                    IsLoading="@isLoading"
 | 
			
		||||
                    RowRender="@RowRender"
 | 
			
		||||
                    EmptyText="@myText.NoDate"
 | 
			
		||||
                    EmptyText="无数据"
 | 
			
		||||
                    Data="@_forecasts"
 | 
			
		||||
                    AllowColumnResize="true" AllowAlternatingRows="false"
 | 
			
		||||
                    SelectionMode="DataGridSelectionMode.Single"
 | 
			
		||||
| 
						 | 
				
			
			@ -101,17 +101,17 @@
 | 
			
		|||
            </RadzenRow>
 | 
			
		||||
        </HeaderTemplate> *@
 | 
			
		||||
        <Template Context="di">
 | 
			
		||||
            <RadzenDataGrid Data="@di.Stocks" EmptyText="@myText.NoDate">
 | 
			
		||||
            <RadzenDataGrid Data="@di.Stocks" EmptyText="无数据">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.StorageLocation" Property="DrawerNo">
 | 
			
		||||
                    <RadzenDataGridColumn Title="库位" Property="DrawerNo">
 | 
			
		||||
                        <Template Context="s">
 | 
			
		||||
                            @s.DrawerNo - @s.ColNo
 | 
			
		||||
                        </Template>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Quantity" Property="Quantity">
 | 
			
		||||
                    <RadzenDataGridColumn Title="数量" Property="Quantity">
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Expiration" Property="EffDate">
 | 
			
		||||
                    <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="效期" Property="EffDate">
 | 
			
		||||
                        <Template Context="s">
 | 
			
		||||
                            @{
 | 
			
		||||
                                DateTime dateTime;
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +120,7 @@
 | 
			
		|||
                                {
 | 
			
		||||
                                    @s.EffDate
 | 
			
		||||
 | 
			
		||||
                                    <p class="shaky-text">@myText.AlertExpir£¡</p>
 | 
			
		||||
                                    <p class="shaky-text">近效期药品!</p>
 | 
			
		||||
                                }
 | 
			
		||||
                                else
 | 
			
		||||
                                {
 | 
			
		||||
| 
						 | 
				
			
			@ -133,15 +133,15 @@
 | 
			
		|||
            </RadzenDataGrid>
 | 
			
		||||
        </Template>
 | 
			
		||||
        <Columns>
 | 
			
		||||
            <RadzenDataGridColumn Frozen="true" Width="200px" Title="@myText.DrugName" Property="DrugName"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.Spec" Property="DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="@myText.TotalStock" Property="StockQuantity">
 | 
			
		||||
            <RadzenDataGridColumn Frozen="true" Width="200px" Title="药品名称" Property="DrugName"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="规格" Property="DrugSpec"></RadzenDataGridColumn>
 | 
			
		||||
            <RadzenDataGridColumn Title="总库存" Property="StockQuantity">
 | 
			
		||||
                <Template Context="s">
 | 
			
		||||
                    @if (s.StockQuantity < 10)
 | 
			
		||||
                    {
 | 
			
		||||
                        @s.StockQuantity
 | 
			
		||||
 | 
			
		||||
                        <p class="shaky-text">@myText.AlertStock£¡</p>
 | 
			
		||||
                        <p class="shaky-text">库存预警!</p>
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			@ -158,8 +158,6 @@
 | 
			
		|||
    @inject IDrugInfoDao drugInfoDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject IReportDataDao reportDataDao;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenDataGrid<DrugInfo> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -173,7 +171,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
        isLoading = true;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,12 +7,12 @@
 | 
			
		|||
        <div class="col-12 mb-4">
 | 
			
		||||
 | 
			
		||||
            <form onsubmit="@(() => grid.Reload())">
 | 
			
		||||
                <RadzenFieldset Text="@myText.Search">
 | 
			
		||||
                <RadzenFieldset Text="查询">
 | 
			
		||||
                    <RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
 | 
			
		||||
                        <RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="4">
 | 
			
		||||
                                    <RadzenLabel Text="@myText.Account" Component="nickname" />
 | 
			
		||||
                                    <RadzenLabel Text="用户名" Component="nickname" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                                <RadzenColumn Size="8">
 | 
			
		||||
                                    <RadzenTextBox @bind-Value="nickname" Style="width: 100%;" Name="nickname"></RadzenTextBox>
 | 
			
		||||
| 
						 | 
				
			
			@ -22,12 +22,12 @@
 | 
			
		|||
 | 
			
		||||
                            <RadzenRow AlignItems="AlignItems.Center">
 | 
			
		||||
                                <RadzenColumn Size="12">
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="查询" />
 | 
			
		||||
                                    <RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
 | 
			
		||||
                                </RadzenColumn>
 | 
			
		||||
                            </RadzenRow>
 | 
			
		||||
                        </RadzenStack>
 | 
			
		||||
                        <RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertRow" Disabled="@(usersToInsert.Count() > 0)" Text="@myText.Add" />
 | 
			
		||||
                        <RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertRow" Disabled="@(usersToInsert.Count() > 0)" Text="新增" />
 | 
			
		||||
                    </RadzenStack>
 | 
			
		||||
                </RadzenFieldset>
 | 
			
		||||
            </form>
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
            LoadData="@LoadData"
 | 
			
		||||
            IsLoading="@isLoading"
 | 
			
		||||
            Count="@count"
 | 
			
		||||
            EmptyText="@myText.Date"
 | 
			
		||||
            EmptyText="无数据"
 | 
			
		||||
            Data="@userList"
 | 
			
		||||
            Page="@Reset"
 | 
			
		||||
            EditMode="DataGridEditMode.Single"
 | 
			
		||||
| 
						 | 
				
			
			@ -48,23 +48,23 @@
 | 
			
		|||
            AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
 | 
			
		||||
                <Columns>
 | 
			
		||||
                    <RadzenDataGridColumn Title="ID" Property="Id"></RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.UserName" Property="NickName">
 | 
			
		||||
                    <RadzenDataGridColumn Title="用户名" Property="NickName">
 | 
			
		||||
                        <EditTemplate Context="user">
 | 
			
		||||
                            <RadzenTextBox Name="NickName" @bind-Value="user.NickName" Style="width:100%; display: block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.loginTips1" Component="NickName" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写用户名" Component="NickName" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Account" Property="Username">
 | 
			
		||||
                    <RadzenDataGridColumn Title="账号" Property="Username">
 | 
			
		||||
                        <EditTemplate Context="user">
 | 
			
		||||
                            <RadzenTextBox Name="Username" @bind-Value="user.Username" Style="width:100%; display: block;" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputAccount" Component="Username" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请填写账号" Component="Username" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
                    <RadzenDataGridColumn Title="@myText.Role" Property="role.RoleName">
 | 
			
		||||
                    <RadzenDataGridColumn Title="权限" Property="role.RoleName">
 | 
			
		||||
                        <EditTemplate Context="user">
 | 
			
		||||
                            <RadzenDropDown Name="RoleId" @bind-Value="user.RoleId" Data="@roles" TextProperty="RoleName" ValueProperty="Id" Style="width:100%; display: block;"
 | 
			
		||||
                            InputAttributes="@(new Dictionary<string,object>(){ { "aria-label", "Select customer" }})" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="@myText.InputRole" Component="RoleId" Popup="true" />
 | 
			
		||||
                            <RadzenRequiredValidator Text="请选择角色" Component="RoleId" Popup="true" />
 | 
			
		||||
                        </EditTemplate>
 | 
			
		||||
 | 
			
		||||
                    </RadzenDataGridColumn>
 | 
			
		||||
| 
						 | 
				
			
			@ -110,9 +110,7 @@
 | 
			
		|||
    @inject IUserDao userDao;
 | 
			
		||||
    @inject IRoleDao roleDao;
 | 
			
		||||
    @inject DialogService dialogService;
 | 
			
		||||
    @inject NotificationService _message;
 | 
			
		||||
    @inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    @inject NotificationService _message
 | 
			
		||||
    RadzenDataGrid<Pojo.User> grid;
 | 
			
		||||
    bool isLoading;
 | 
			
		||||
    int count;
 | 
			
		||||
| 
						 | 
				
			
			@ -131,7 +129,6 @@
 | 
			
		|||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        await base.OnInitializedAsync();
 | 
			
		||||
        roles = await roleDao.GetAllRoles();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +142,7 @@
 | 
			
		|||
    async Task Reg2ZWJ(Pojo.User user)
 | 
			
		||||
    {
 | 
			
		||||
        await dialogService.OpenAsync<FingerRegDialog>(
 | 
			
		||||
                myText.EnterFingerprint,
 | 
			
		||||
                $"录入指纹",
 | 
			
		||||
              new Dictionary<string, object>() { { "userId", user.Id } },
 | 
			
		||||
              new DialogOptions() { Width = "55vw", Resizable = true, Draggable = true, ShowClose = false }
 | 
			
		||||
        );
 | 
			
		||||
| 
						 | 
				
			
			@ -237,7 +234,7 @@
 | 
			
		|||
        {
 | 
			
		||||
            //弹出确认提示框
 | 
			
		||||
            var b = await dialogService.OpenAsync<ConfirmDialog>(
 | 
			
		||||
               myText.ConfirmDelete,
 | 
			
		||||
               $"删除确认",
 | 
			
		||||
             new Dictionary<string, object>() { { "confirmInfo", "确认要删除用户:"+user.Username+"吗?" } },
 | 
			
		||||
             new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false });
 | 
			
		||||
            if (b)
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +267,7 @@
 | 
			
		|||
                // 数据库重置密码
 | 
			
		||||
                userDao.ResetPassword(user.Id);
 | 
			
		||||
                //提示密码已重置,下次登录请使用重置后的密码
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = $"密码已重置,下次登录请使用重置后的密码", Duration = 4000 });
 | 
			
		||||
                _message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"密码已重置,下次登录请使用重置后的密码", Duration = 4000 });
 | 
			
		||||
            }
 | 
			
		||||
            await grid.Reload();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,11 @@
 | 
			
		|||
using MasaBlazorApp3.Pages;
 | 
			
		||||
using Mysqlx.Crud;
 | 
			
		||||
using Mysqlx.Crud;
 | 
			
		||||
 | 
			
		||||
namespace MasaBlazorApp3.Pojo
 | 
			
		||||
{
 | 
			
		||||
    [Serializable]
 | 
			
		||||
    public class Premission
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public Premission Parent { get; set; } = null;
 | 
			
		||||
 | 
			
		||||
        public void AddChild(Premission item)
 | 
			
		||||
| 
						 | 
				
			
			@ -30,51 +30,51 @@ namespace MasaBlazorApp3.Pojo
 | 
			
		|||
            Premission q = new Premission
 | 
			
		||||
            {
 | 
			
		||||
                Id = 1,
 | 
			
		||||
                PremissionName =Home.myText.Outbound,// "出库",
 | 
			
		||||
                PremissionName = "出库",
 | 
			
		||||
                PremissionPath = "take"
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            q.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 11,
 | 
			
		||||
                PremissionName = Home.myText.OrderTake,// "处方取药",
 | 
			
		||||
                PremissionName = "处方取药",
 | 
			
		||||
                PremissionPath = "/take/order"
 | 
			
		||||
            });
 | 
			
		||||
            q.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 12,
 | 
			
		||||
                PremissionName = Home.myText.InvoiceTake,// "调拨取药",
 | 
			
		||||
                PremissionName = "调拨取药",
 | 
			
		||||
                PremissionPath = "/take/invoice"
 | 
			
		||||
            });
 | 
			
		||||
            q.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 13,
 | 
			
		||||
                PremissionName =  Home.myText.DrawerTake,// "抽屉取药",
 | 
			
		||||
                PremissionName = "抽屉取药",
 | 
			
		||||
                PremissionPath = "/take/drawer"
 | 
			
		||||
            });
 | 
			
		||||
            q.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 14,
 | 
			
		||||
                PremissionName =Home.myText.SelfTake,//  "自选取药",
 | 
			
		||||
                PremissionName = "自选取药",
 | 
			
		||||
                PremissionPath = "/take/self"
 | 
			
		||||
            });
 | 
			
		||||
            q.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 15,
 | 
			
		||||
                PremissionName = Home.myText.TakeRecord,// "取药记录",
 | 
			
		||||
                PremissionName = "取药记录",
 | 
			
		||||
                PremissionPath = "/take/record/2"
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            Premission j = new Premission
 | 
			
		||||
            {
 | 
			
		||||
                Id = 2,
 | 
			
		||||
                PremissionName = Home.myText.FillStorage,// "入库",
 | 
			
		||||
                PremissionName = "入库",
 | 
			
		||||
                PremissionPath = "add"
 | 
			
		||||
            };
 | 
			
		||||
            j.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 21,
 | 
			
		||||
                PremissionName =  Home.myText.InvoiceAdd,//"调拨入库",
 | 
			
		||||
                PremissionName = "调拨入库",
 | 
			
		||||
                PremissionPath = "/add/invoice"
 | 
			
		||||
            });
 | 
			
		||||
            //j.AddChild(new Premission()
 | 
			
		||||
| 
						 | 
				
			
			@ -86,13 +86,13 @@ namespace MasaBlazorApp3.Pojo
 | 
			
		|||
            j.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 23,
 | 
			
		||||
                PremissionName =  Home.myText.DrawerAdd,//"抽屉入库",
 | 
			
		||||
                PremissionName = "抽屉入库",
 | 
			
		||||
                PremissionPath = "/add/drawer"
 | 
			
		||||
            });
 | 
			
		||||
            j.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 24,
 | 
			
		||||
                PremissionName = Home.myText.AddRecord,//"入库记录",
 | 
			
		||||
                PremissionName = "入库记录",
 | 
			
		||||
                PremissionPath = "/add/record/1"
 | 
			
		||||
            });
 | 
			
		||||
            Premission h = new Premission
 | 
			
		||||
| 
						 | 
				
			
			@ -105,120 +105,120 @@ namespace MasaBlazorApp3.Pojo
 | 
			
		|||
            h.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 31,
 | 
			
		||||
                PremissionName = Home.myText.ReturnDrugByOrder,//"归还药品(处方)",
 | 
			
		||||
                PremissionName = "归还药品(处方)",
 | 
			
		||||
                PremissionPath = "/return/order"
 | 
			
		||||
            });
 | 
			
		||||
            h.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 32,
 | 
			
		||||
                PremissionName = Home.myText.ReturnRecord,//"归还药品(记录)",
 | 
			
		||||
                PremissionName = "归还药品(记录)",
 | 
			
		||||
                PremissionPath = "/return/byRecord"
 | 
			
		||||
            });
 | 
			
		||||
            h.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 33,
 | 
			
		||||
                PremissionName =  Home.myText.ReturnEmpty,//"归还空瓶",
 | 
			
		||||
                PremissionName = "归还空瓶",
 | 
			
		||||
                PremissionPath = "/return/empty"
 | 
			
		||||
            });
 | 
			
		||||
            h.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 34,
 | 
			
		||||
                PremissionName =  Home.myText.ReturnRecordDrug,//"归还记录(药品)",
 | 
			
		||||
                PremissionName = "归还记录(药品)",
 | 
			
		||||
                PremissionPath = "/return/record1/31"
 | 
			
		||||
            });
 | 
			
		||||
            h.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 35,
 | 
			
		||||
                PremissionName = Home.myText.ReturnRecordEmpty,// "归还记录(空瓶)",
 | 
			
		||||
                PremissionName = "归还记录(空瓶)",
 | 
			
		||||
                PremissionPath = "/return/record2/32"
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            Premission k = new Premission
 | 
			
		||||
            {
 | 
			
		||||
                Id = 4,
 | 
			
		||||
                PremissionName = Home.myText.StockManage,//"库存管理",
 | 
			
		||||
                PremissionName = "库存管理",
 | 
			
		||||
                PremissionPath = "stock"
 | 
			
		||||
            };
 | 
			
		||||
            k.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 41,
 | 
			
		||||
                PremissionName = Home.myText.StockList,//"库存列表",
 | 
			
		||||
                PremissionName = "库存列表",
 | 
			
		||||
                PremissionPath = "/stock/list"
 | 
			
		||||
            });
 | 
			
		||||
            k.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 42,
 | 
			
		||||
                PremissionName =  Home.myText.StockBind,//"库位绑定",
 | 
			
		||||
                PremissionName = "库位绑定",
 | 
			
		||||
                PremissionPath = "/stock/binding"
 | 
			
		||||
            });
 | 
			
		||||
            k.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 43,
 | 
			
		||||
                PremissionName = Home.myText.StorageCheck,//"库存盘点",
 | 
			
		||||
                PremissionName = "库存盘点",
 | 
			
		||||
                //PremissionName = "盘点交接",
 | 
			
		||||
                PremissionPath = "/stock/check"
 | 
			
		||||
            });
 | 
			
		||||
            k.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 44,
 | 
			
		||||
                PremissionName =Home.myText.CheckRecord,// "盘点记录",
 | 
			
		||||
                PremissionName = "盘点记录",
 | 
			
		||||
                //PremissionPath = "/stock/checkRecord"
 | 
			
		||||
                PremissionPath = "/stock/record/4"
 | 
			
		||||
            });
 | 
			
		||||
            k.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 45,
 | 
			
		||||
                PremissionName = Home.myText.DrugInfo,//"药品信息",
 | 
			
		||||
                PremissionName = "药品信息",
 | 
			
		||||
                PremissionPath = "/stock/drug"
 | 
			
		||||
            });
 | 
			
		||||
            k.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 46,
 | 
			
		||||
                PremissionName = Home.myText.DrugSetting,//"药品标定",
 | 
			
		||||
                PremissionName = "药品标定",
 | 
			
		||||
                PremissionPath = "/stock/biaoDing"
 | 
			
		||||
            });
 | 
			
		||||
            k.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 47,
 | 
			
		||||
                PremissionName = Home.myText.HandoverList,//"交接班列表",
 | 
			
		||||
                PremissionName = "交接班列表",
 | 
			
		||||
                PremissionPath = "/stock/Change"
 | 
			
		||||
            });
 | 
			
		||||
            Premission x = new Premission
 | 
			
		||||
            {
 | 
			
		||||
                Id = 5,
 | 
			
		||||
                PremissionName = Home.myText.SystemManage,//"系统管理",
 | 
			
		||||
                PremissionName = "系统管理",
 | 
			
		||||
                PremissionPath = "manage"
 | 
			
		||||
            };
 | 
			
		||||
            x.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 51,
 | 
			
		||||
                PremissionName = Home.myText.UserManage,//"用户管理",
 | 
			
		||||
                PremissionName = "用户管理",
 | 
			
		||||
                PremissionPath = "/manage/user"
 | 
			
		||||
            });
 | 
			
		||||
            x.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 52,
 | 
			
		||||
                PremissionName = Home.myText.RoleManage,//"权限管理",
 | 
			
		||||
                PremissionName = "权限管理",
 | 
			
		||||
                PremissionPath = "/manage/role"
 | 
			
		||||
            });
 | 
			
		||||
            Premission set = new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 53,
 | 
			
		||||
                PremissionName = Home.myText.SystemSet,//"系统设置",
 | 
			
		||||
                PremissionName = "系统设置",
 | 
			
		||||
                PremissionPath = "/manage/setting"
 | 
			
		||||
                //PremissionPath = "/Box/Plan"
 | 
			
		||||
            };
 | 
			
		||||
            set.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 531,
 | 
			
		||||
                PremissionName = Home.myText.LoginSet,//"登录设置",
 | 
			
		||||
                PremissionName = "登录设置",
 | 
			
		||||
                PremissionPath = "/manage/setting/login"
 | 
			
		||||
 | 
			
		||||
            });
 | 
			
		||||
            set.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 532,
 | 
			
		||||
                PremissionName = Home.myText.FridgeSet,//"冰箱设置",
 | 
			
		||||
                PremissionName = "冰箱设置",
 | 
			
		||||
                PremissionPath = "/manage/setting/Fridge"
 | 
			
		||||
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			@ -263,45 +263,45 @@ namespace MasaBlazorApp3.Pojo
 | 
			
		|||
            Premission b = new Premission
 | 
			
		||||
            {
 | 
			
		||||
                Id = 6,
 | 
			
		||||
                PremissionName = Home.myText.BoxManage,//"药箱管理",
 | 
			
		||||
                PremissionName = "药箱管理",
 | 
			
		||||
                PremissionPath = "Box"
 | 
			
		||||
            };
 | 
			
		||||
            b.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 61,
 | 
			
		||||
                PremissionName = Home.myText.MenuManage,//"套餐管理",
 | 
			
		||||
                PremissionName = "套餐管理",
 | 
			
		||||
                PremissionPath = "/Box/Plan"
 | 
			
		||||
            });
 | 
			
		||||
            b.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 62,
 | 
			
		||||
                PremissionName = Home.myText.BindBox,//"绑定药箱",
 | 
			
		||||
                PremissionName = "绑定药箱",
 | 
			
		||||
                PremissionPath = "/Box/BoxBindings"
 | 
			
		||||
            });
 | 
			
		||||
            b.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 63,
 | 
			
		||||
                PremissionName = Home.myText.BoxCheck,//"药箱核对",
 | 
			
		||||
                PremissionName = "药箱核对",
 | 
			
		||||
                //PremissionName = "盘点交接",
 | 
			
		||||
                PremissionPath = "/Box/Check"
 | 
			
		||||
            });
 | 
			
		||||
            b.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 64,
 | 
			
		||||
                PremissionName = Home.myText.BoxAdd,//"药箱加药",
 | 
			
		||||
                Id = 66,
 | 
			
		||||
                PremissionName = "药箱加药",
 | 
			
		||||
                //PremissionPath = "/stock/checkRecord"
 | 
			
		||||
                PremissionPath = "/Box/BoxAdd"
 | 
			
		||||
            });
 | 
			
		||||
            b.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 65,
 | 
			
		||||
                PremissionName =Home.myText.BoxAddBox,// "药箱入库",
 | 
			
		||||
                PremissionName = "药箱入库",
 | 
			
		||||
                PremissionPath = "/Box/BoxAddBox"
 | 
			
		||||
            });
 | 
			
		||||
            b.AddChild(new Premission()
 | 
			
		||||
            {
 | 
			
		||||
                Id = 66,
 | 
			
		||||
                PremissionName =Home.myText.BoxStock,// "药箱库存",
 | 
			
		||||
                PremissionName = "药箱库存",
 | 
			
		||||
                PremissionPath = "/Box/BoxStock"
 | 
			
		||||
            });
 | 
			
		||||
            list.Add(q);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,8 +15,6 @@ namespace MasaBlazorApp3.Pojo
 | 
			
		|||
        public string Icon { get; set; }
 | 
			
		||||
        [Column("Path")]
 | 
			
		||||
        public string Path { get; set; }
 | 
			
		||||
        [Column("Culture")]
 | 
			
		||||
        public string Culture { get; set; }
 | 
			
		||||
        [Column(IsColumn = false)]
 | 
			
		||||
        public List<SettingManu> Children { get; set; } = new();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,6 @@ using LinqToDB.AspNet.Logging;
 | 
			
		|||
using Radzen;
 | 
			
		||||
using MasaBlazorApp3.Pojo.Config;
 | 
			
		||||
using MasaBlazorApp3.Port;
 | 
			
		||||
using Toolbelt.Blazor.Extensions.DependencyInjection;
 | 
			
		||||
 | 
			
		||||
internal class Program
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -49,9 +48,9 @@ internal class Program
 | 
			
		|||
        appBuilder.Services.Configure<PortConfig>(config.GetSection("port"));
 | 
			
		||||
        appBuilder.Services.Configure<DrawerConfig>(config.GetSection("drawer"));
 | 
			
		||||
        appBuilder.Services.Configure<fridgeConfig>(config.GetSection("fridge"));
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
        // i18n
 | 
			
		||||
        appBuilder.Services.AddI18nText();
 | 
			
		||||
        //appBuilder.Services.AddI18nText();
 | 
			
		||||
        // 数据库
 | 
			
		||||
        appBuilder.Services.AddLinqToDBContext<AppDataConnection>((provider, options) =>
 | 
			
		||||
                options.UseMySql(config.GetValue<String>("connectionStrings"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -77,17 +77,13 @@
 | 
			
		|||
 | 
			
		||||
@inject NavigationManager Navigation
 | 
			
		||||
@inject ISettingManuDao settingManuDao;
 | 
			
		||||
@inject Toolbelt.Blazor.I18nText.I18nText I18nText;
 | 
			
		||||
@code {
 | 
			
		||||
    private I18nText.local myText = new I18nText.local();
 | 
			
		||||
    RadzenPanelMenu panelMenu;
 | 
			
		||||
    List<SettingManu> menuItems = new();
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
 | 
			
		||||
        string culture = I18nText.GetCurrentLanguageAsync().Result == "en-US" ? "en" : "zh-CN"; ;
 | 
			
		||||
        menuItems = await settingManuDao.GetMenuItemsAsync(culture);
 | 
			
		||||
        menuItems = await settingManuDao.GetMenuItemsAsync();
 | 
			
		||||
    }
 | 
			
		||||
    // async void jump2Page(string path)
 | 
			
		||||
    // {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@
 | 
			
		|||
  "setting": {
 | 
			
		||||
    "machineId": "DM1",
 | 
			
		||||
    "storage": 1,
 | 
			
		||||
    "loginMode": 2,
 | 
			
		||||
    "loginMode": 1,
 | 
			
		||||
    "opFirst": true,
 | 
			
		||||
    //自动退出登录时间,单位秒(0不自动退出)
 | 
			
		||||
    "autoOutLog": 0,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
{
 | 
			
		||||
  "login": "LOGIN",
 | 
			
		||||
  "exit": "EXIT"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
{
 | 
			
		||||
  "login": "登录",
 | 
			
		||||
  "exit": "退出"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,257 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  "language": "language",
 | 
			
		||||
  "Welcome": "Welcome",
 | 
			
		||||
  "Handover": "Handover",
 | 
			
		||||
  "EnterFingerprint": "Enter Fingerprint",
 | 
			
		||||
  "EnterSign": "Enter Sign",
 | 
			
		||||
  "UpdatePassword": "Update Password",
 | 
			
		||||
  "Checker": "Checker",
 | 
			
		||||
 | 
			
		||||
  "Outbound": "Outbound",
 | 
			
		||||
  "Return": "Return",
 | 
			
		||||
  "FillStorage": "Fill Storage",
 | 
			
		||||
  "BoxManage": "Box Manage",
 | 
			
		||||
  "StockManage": "Stock Manage",
 | 
			
		||||
  "SystemManage": "System Manage",
 | 
			
		||||
 | 
			
		||||
  "OrderTake": "Order Take",
 | 
			
		||||
  "InvoiceTake": "Invoice Take",
 | 
			
		||||
  "DrawerTake": "Drawer Take",
 | 
			
		||||
  "SelfTake": "Self Take",
 | 
			
		||||
  "TakeRecord": "Take Record",
 | 
			
		||||
 | 
			
		||||
  "ReturnDrugByOrder": "Return Drug By Order",
 | 
			
		||||
  "ReturnRecord": "Return Record",
 | 
			
		||||
  "HasReturnEmpty": "Return Empty",
 | 
			
		||||
  "ReturnRecordDrug": "Return Record Drug",
 | 
			
		||||
  "ReturnRecordEmpty": "Return Record Empty",
 | 
			
		||||
 | 
			
		||||
  "InvoiceAdd": "Invoice Add",
 | 
			
		||||
  "DrawerAdd": "Drawer Add",
 | 
			
		||||
  "AddRecord": "Add Record",
 | 
			
		||||
 | 
			
		||||
  "MenuManage": "Menu Manage",
 | 
			
		||||
  "BindBox": "Bind Box",
 | 
			
		||||
  "BoxCheck": "Box Check",
 | 
			
		||||
  "BoxTake": "Box Take",
 | 
			
		||||
  "BoxAdd": "Box Add",
 | 
			
		||||
  "BoxStock": "Box Stock",
 | 
			
		||||
  "BoxAddBox": "Box Add Box",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "StockList": "Stock List",
 | 
			
		||||
  "StockBind": "Stock Bind",
 | 
			
		||||
  "StorageCheck": "Storage Check",
 | 
			
		||||
  "CheckRecord": "Check Record",
 | 
			
		||||
  "DrugInfo": "Drug Info",
 | 
			
		||||
  "DrugSetting": "Drug Setting",
 | 
			
		||||
  "HandoverList": "Handover List",
 | 
			
		||||
 | 
			
		||||
  "UserManage": "User Manage",
 | 
			
		||||
  "RoleManage": "Role Manage",
 | 
			
		||||
  "SystemSet": "System Set",
 | 
			
		||||
 | 
			
		||||
  "Login": "Login",
 | 
			
		||||
  "Account": "Account",
 | 
			
		||||
  "Password": "Password",
 | 
			
		||||
  "Cancel": "Cancel",
 | 
			
		||||
  "loginTips1": "Please Input Account",
 | 
			
		||||
  "loginTips2": "Please Input Password",
 | 
			
		||||
 | 
			
		||||
  "Search": "Search",
 | 
			
		||||
  "Restore": "Restore",
 | 
			
		||||
  "OrderNo": "OrderNo",
 | 
			
		||||
  "OrderDate": "Order Date",
 | 
			
		||||
  "Doctor": "Doctor",
 | 
			
		||||
  "Name": "Name",
 | 
			
		||||
  "Sex": "Sex",
 | 
			
		||||
  "Age": "Age",
 | 
			
		||||
  "DeptName": "DeptName",
 | 
			
		||||
  "Diagnose": "Diagnose",
 | 
			
		||||
 | 
			
		||||
  "InvoiceNo": "Invoice No",
 | 
			
		||||
  "ApplyDate": "Apply Date",
 | 
			
		||||
  "Date": "Date",
 | 
			
		||||
  "ApplyPharmacy": "Apply Pharmacy",
 | 
			
		||||
  "SendPharamacy": "Send Pharamacy",
 | 
			
		||||
 | 
			
		||||
  "StorageLocation": "Storage Location",
 | 
			
		||||
  "DrugName": "Drug Name",
 | 
			
		||||
  "Batch": "Batch",
 | 
			
		||||
  "Inventory": "Inventory",
 | 
			
		||||
  "TakeQuantity": "Take Quantity",
 | 
			
		||||
  "Take": "Take",
 | 
			
		||||
 | 
			
		||||
  "WriteOrder": "Write Order",
 | 
			
		||||
  "PatientName": "Patient Name",
 | 
			
		||||
  "OrderDoctor": "Order Doctor",
 | 
			
		||||
  "Spec": "Spec",
 | 
			
		||||
  "Quantity": "Quantity",
 | 
			
		||||
  "Add": "Add",
 | 
			
		||||
  "AddNewOrder": "Add New Order",
 | 
			
		||||
 | 
			
		||||
  "StartDate": "Start Date",
 | 
			
		||||
  "EndDate": "End Date",
 | 
			
		||||
  "StoreExport": "Store Export",
 | 
			
		||||
  "AccountExport": "Account Export",
 | 
			
		||||
  "Operator": "Operator",
 | 
			
		||||
  "OperateDate": "Operate Date",
 | 
			
		||||
  "Expiration": "Expiration",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Borrow": "Borrow Quantity",
 | 
			
		||||
  "ReturnQuantity": "Return Quantity",
 | 
			
		||||
  "ReturnEmpty": "Return Empty",
 | 
			
		||||
  "CurrentReturn": "Current Return",
 | 
			
		||||
 | 
			
		||||
  "Factory": "Factory",
 | 
			
		||||
  "CanReturnQuantity": "Can Return Quantity",
 | 
			
		||||
 | 
			
		||||
  "AddQuantity": "Add Quantity",
 | 
			
		||||
 | 
			
		||||
  "Refresh": "Refresh",
 | 
			
		||||
  "SetMenu": "Menu",
 | 
			
		||||
  "MenuName": "Menu Name",
 | 
			
		||||
  "MenuDescrip": "Menu Descrip",
 | 
			
		||||
  "Operate": "Operate",
 | 
			
		||||
  "Number": "Number",
 | 
			
		||||
  "BaseQuantity": "Base Quantity",
 | 
			
		||||
 | 
			
		||||
  "No": "No.",
 | 
			
		||||
  "BindUnBind": "Bind/UnBind",
 | 
			
		||||
  "TotalStock": "Total Stock",
 | 
			
		||||
 | 
			
		||||
  "Confirm": "Confirm",
 | 
			
		||||
 | 
			
		||||
  "BoxNum": "Box Number",
 | 
			
		||||
 | 
			
		||||
  "ReplaceDrug": "Replace Drug",
 | 
			
		||||
  "RemoveDrug": "Remove Drug",
 | 
			
		||||
 | 
			
		||||
  "DrugSearch": "Drug Name PinYin Drug Code",
 | 
			
		||||
 | 
			
		||||
  "DrawerType1": "Drawer",
 | 
			
		||||
  "DrawerType2": "Single",
 | 
			
		||||
  "DrawerType3": "Weight Smart",
 | 
			
		||||
  "DrawerType4": "Smart",
 | 
			
		||||
  "DrawerType5": "Inner Return Box",
 | 
			
		||||
  "DrawerType6": "Out Return Box",
 | 
			
		||||
  "DrawerType7": "Box",
 | 
			
		||||
  "DrawerType8": "Storage Box",
 | 
			
		||||
  "DrawerType9": "Weight",
 | 
			
		||||
  "DrawerType10": "Weight Box",
 | 
			
		||||
 | 
			
		||||
  "Check": "Check",
 | 
			
		||||
  "CheckQuantity": "Check Quantity",
 | 
			
		||||
 | 
			
		||||
  "AddDrug": "Add Drug",
 | 
			
		||||
  "AddBatch": "Add Batch",
 | 
			
		||||
 | 
			
		||||
  "DateTime": "DateTime",
 | 
			
		||||
  "HandoverOperator1": "Handover Operator",
 | 
			
		||||
  "HandoverChecker1": "Handover Checker",
 | 
			
		||||
  "HandoverOperator2": "Handover to Checker",
 | 
			
		||||
  "HandoverChecker2": "Handover to Checker",
 | 
			
		||||
  "HandoverDate": "Handover Date",
 | 
			
		||||
  "HandoverState": "Handover State",
 | 
			
		||||
  "OnDuty": "On Duty",
 | 
			
		||||
  "NotDuty": "Not Duty",
 | 
			
		||||
 | 
			
		||||
  "ID": "ID",
 | 
			
		||||
  "Role": "Role",
 | 
			
		||||
 | 
			
		||||
  "RoleName": "Role Name",
 | 
			
		||||
 | 
			
		||||
  "LoginSet": "Login Set",
 | 
			
		||||
  "LoginMode": "Login Mode",
 | 
			
		||||
  "SingleLogin": "Single Login",
 | 
			
		||||
  "MultiLogin": "Multi Login",
 | 
			
		||||
  "SaveSet": "Save Set",
 | 
			
		||||
  "FridgeSet": "Fridge Set",
 | 
			
		||||
  "TemperRange": "Temper Range",
 | 
			
		||||
  "FridgeState": "Fridge State",
 | 
			
		||||
  "AlertState": "Alert State",
 | 
			
		||||
  "Open": "Open",
 | 
			
		||||
  "Close": "Close",
 | 
			
		||||
  "NoDate": "Not Date",
 | 
			
		||||
  "OrderDetail": "Order Detail",
 | 
			
		||||
  "InvoiceDetail": "Invoice Detail",
 | 
			
		||||
  "Taking": "Taking。。。",
 | 
			
		||||
  "Complete": "Complete",
 | 
			
		||||
  "Tips": "Tips",
 | 
			
		||||
  "TakeDetail": "Take Detail",
 | 
			
		||||
  "InputOrderTips": "Please Input Order Number",
 | 
			
		||||
  "InputOrderDate": "Please Input Order Date",
 | 
			
		||||
  "InputPatientName": "Please Input Patient Name",
 | 
			
		||||
  "InputPatientSex": "Please Input Patient Sex",
 | 
			
		||||
  "InputPatientAge": "Please Input Patient Age",
 | 
			
		||||
  "InputDoctor": "Please Input Doctor",
 | 
			
		||||
  "InputDept": "Please Input Department",
 | 
			
		||||
  "InputDisease": "Please Input Diagnose",
 | 
			
		||||
  "DrugCode": "Drug Code",
 | 
			
		||||
  "SelectDrug": "Please Input Drug",
 | 
			
		||||
  "HasSelect": "Do not Select",
 | 
			
		||||
  "InputTips": "Please Input Correct Take Quantity",
 | 
			
		||||
  "Select": "Select",
 | 
			
		||||
  "Returning": "Returning。。。",
 | 
			
		||||
  "DrawOpened": "The draw has been opened。。。",
 | 
			
		||||
  "OpenDraw": "Open Drawer",
 | 
			
		||||
  "State": "State",
 | 
			
		||||
  "NeedAddQuantity": "Need Add Quantity",
 | 
			
		||||
  "Box": "Box",
 | 
			
		||||
  "SelectMenu": "Please Select Menu First",
 | 
			
		||||
  "ExchangeNum": "Exchange Num",
 | 
			
		||||
  "Save": "Save",
 | 
			
		||||
  "InputCorrectNum": "Please Input Correct Quantity",
 | 
			
		||||
  "NotBind": "Not Bind",
 | 
			
		||||
  "LoginCheck": "Login Check",
 | 
			
		||||
  "Adding": "Adding。。。",
 | 
			
		||||
  "SelectBatch": "Pleace Select Batch",
 | 
			
		||||
  "InputNum": "Please Input Correct Quantity",
 | 
			
		||||
  "InputCode": "Please Input Drug Code",
 | 
			
		||||
  "InputDrugName": "Please Input Drug Name",
 | 
			
		||||
  "InputDrugSpec": "Please Input Drug Spec",
 | 
			
		||||
  "InputDrugFactory": "Please Input Drug Factory",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Loading": "Loading Connect Waiting...",
 | 
			
		||||
  "ConnectFinger": "Start Connect Finger",
 | 
			
		||||
  "FingerConnected": "Finger Connected",
 | 
			
		||||
  "FingerFailed": "Finger Connect Failed",
 | 
			
		||||
  "ConnectDrawer": "Start Connect Drawer",
 | 
			
		||||
  "DrawerConnected": "Drawer Connected",
 | 
			
		||||
  "DrawerFailed": "Drawer Connect Failed",
 | 
			
		||||
  "ConnectCan": "Start Connect CanBus",
 | 
			
		||||
  "CanConnected": "CanBus Connected",
 | 
			
		||||
  "CanFailed": "CanBus Failed",
 | 
			
		||||
  "ConnectScanCode": "Start Connect ScanCode",
 | 
			
		||||
  "ScanCodeConnected": "ScanCode Connected",
 | 
			
		||||
  "ScanCodeFailed": "ScanCode Failed",
 | 
			
		||||
  "ConnectFridge": "Connect Fridge Result",
 | 
			
		||||
  "FridgeConnected": "Fridge Connected",
 | 
			
		||||
  "FridgeFailed": "Fridge Failed",
 | 
			
		||||
  "InvoiceInDetail": "InvoiceIn Detail",
 | 
			
		||||
  "SaveSuccess": "Save Success",
 | 
			
		||||
  "AddMenu": "Add Menu",
 | 
			
		||||
  "InputMenuName": "Please Input Menu Name",
 | 
			
		||||
  "InputMenuDesc": "Please Input Menu Name Descript",
 | 
			
		||||
  "MenuHasDrug": "Menu Have Current Drug",
 | 
			
		||||
  "InputNumError": "The total amount of storage should be equal to the quantity requested",
 | 
			
		||||
  "DataSaveFailed": "Data Save Failed",
 | 
			
		||||
  "InputCorrectInNum": "Please Input correct Quantity",
 | 
			
		||||
  "DrawerOpenFailed": "Drawe Open Failed",
 | 
			
		||||
  "AddSuccessful": "Add Drug Finished,Please,Click Confirm",
 | 
			
		||||
  "PleaseAdd": "Number Drawer Opened,Please,Add Drug",
 | 
			
		||||
  "InputRoleName": "Please Input Role Name",
 | 
			
		||||
  "SelectRole": "Please Select Role",
 | 
			
		||||
  "ConfirmDelete": "Delete Confirm",
 | 
			
		||||
  "ConfirmDeleteRole": "Confirm Delete Role",
 | 
			
		||||
  "BindSuccess": "Bind Finish",
 | 
			
		||||
  "Checking": "Checking...",
 | 
			
		||||
  "AlertExpir": "Drugs Nearing Expiration",
 | 
			
		||||
  "AlertStock": "Inventory Alert",
 | 
			
		||||
  "UserName": "User Name",
 | 
			
		||||
  "InputAccount": "Please Input Account",
 | 
			
		||||
  "InputRole": "Please Select Role"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,279 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
 | 
			
		||||
  "language": "语言",
 | 
			
		||||
  "Welcome": "欢迎",
 | 
			
		||||
  "Handover": "交接班",
 | 
			
		||||
  "EnterFingerprint": "录入指纹",
 | 
			
		||||
  "EnterSign": "录入签名",
 | 
			
		||||
  "UpdatePassword": "修改密码",
 | 
			
		||||
  "Checker": "复核人",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Outbound": "出库",
 | 
			
		||||
  "Return": "归还",
 | 
			
		||||
  "FillStorage": "入库",
 | 
			
		||||
  "BoxManage": "药箱管理",
 | 
			
		||||
  "StockManage": "库存管理",
 | 
			
		||||
  "SystemManage": "系统管理",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "OrderTake": "处方取药",
 | 
			
		||||
  "InvoiceTake": "调拨取药",
 | 
			
		||||
  "DrawerTake": "抽屉取药",
 | 
			
		||||
  "SelfTake": "自选取药",
 | 
			
		||||
  "TakeRecord": "取药记录",
 | 
			
		||||
 | 
			
		||||
  "ReturnDrugByOrder": "归还药品(处方)",
 | 
			
		||||
  "ReturnRecord": "归还药品(记录)",
 | 
			
		||||
  "ReturnEmpty": "归还空瓶",
 | 
			
		||||
  "ReturnRecordDrug": "归还记录(药品)",
 | 
			
		||||
  "ReturnRecordEmpty": "归还记录(空瓶)",
 | 
			
		||||
 | 
			
		||||
  "InvoiceAdd": "调拨入库",
 | 
			
		||||
  "DrawerAdd": "抽屉入库",
 | 
			
		||||
  "AddRecord": "入库记录",
 | 
			
		||||
 | 
			
		||||
  "MenuManage": "套餐管理",
 | 
			
		||||
  "BindBox": "绑定药箱",
 | 
			
		||||
  "BoxCheck": "药箱核对",
 | 
			
		||||
  "BoxTake": "药箱取药",
 | 
			
		||||
  "BoxAdd": "药箱加药",
 | 
			
		||||
  "BoxAddBox": "药箱入库",
 | 
			
		||||
  "BoxStock": "药箱库存",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "StockList": "库存列表",
 | 
			
		||||
  "StockBind": "库位绑定",
 | 
			
		||||
  "StorageCheck": "库存盘点",
 | 
			
		||||
  "CheckRecord": "盘点记录",
 | 
			
		||||
  "DrugInfo": "药品信息",
 | 
			
		||||
  "DrugSetting": "药品标定",
 | 
			
		||||
  "HandoverList": "交接班列表",
 | 
			
		||||
 | 
			
		||||
  "UserManage": "用户管理",
 | 
			
		||||
  "RoleManage": "权限管理",
 | 
			
		||||
  "SystemSet": "系统设置",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Login": "登录",
 | 
			
		||||
  "Account": "账号",
 | 
			
		||||
  "Password": "密码",
 | 
			
		||||
  "Cancel": "取消",
 | 
			
		||||
  "loginTips1": "请填写用户名",
 | 
			
		||||
  "loginTips2": "请填写密码",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Search": "查询",
 | 
			
		||||
  "Restore": "重置",
 | 
			
		||||
  "OrderNo": "处方号",
 | 
			
		||||
  "OrderDate": "处方时间",
 | 
			
		||||
  "Doctor": "医生",
 | 
			
		||||
  "Name": "姓名",
 | 
			
		||||
  "Sex": "性别",
 | 
			
		||||
  "Age": "年龄",
 | 
			
		||||
  "DeptName": "科室",
 | 
			
		||||
  "Diagnose": "诊断",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "InvoiceNo": "单据号",
 | 
			
		||||
  "ApplyDate": "请领时间",
 | 
			
		||||
  "Date": "时间",
 | 
			
		||||
  "ApplyPharmacy": "请领药房",
 | 
			
		||||
  "SendPharamacy": "出库药房",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "StorageLocation": "库位",
 | 
			
		||||
  "DrugName": "药品名称",
 | 
			
		||||
  "Batch": "批次",
 | 
			
		||||
  "Inventory": "库存",
 | 
			
		||||
  "TakeQuantity": "取药数量",
 | 
			
		||||
  "Take": "取药",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "WriteOrder": "手写处方",
 | 
			
		||||
  "PatientName": "患者姓名",
 | 
			
		||||
  "OrderDoctor": "处方医生",
 | 
			
		||||
  "Spec": "规格",
 | 
			
		||||
  "Quantity": "数量",
 | 
			
		||||
  "Add": "添加",
 | 
			
		||||
  "AddNewOrder": "请添加手写处方详情",
 | 
			
		||||
 | 
			
		||||
  "StartDate": "开始时间",
 | 
			
		||||
  "EndDate": "结束时间",
 | 
			
		||||
  "StoreExport": "库存导出",
 | 
			
		||||
  "AccountExport": "专用账册导出",
 | 
			
		||||
  "Operator": "操作人",
 | 
			
		||||
  "OperateDate": "操作时间",
 | 
			
		||||
  "Expiration": "效期",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Borrow": "借出数量",
 | 
			
		||||
  "ReturnQuantity": "已还药品",
 | 
			
		||||
  "HasReturnEmpty": "已还空瓶",
 | 
			
		||||
  "CurrentReturn": "本次归还",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Factory": "厂家",
 | 
			
		||||
  "CanReturnQuantity": "可归还数量",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "AddQuantity": "加药数量",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Refresh": "刷新",
 | 
			
		||||
  "SetMenu": "套餐",
 | 
			
		||||
  "MenuName": "套餐名称",
 | 
			
		||||
  "MenuDescrip": "套餐描述",
 | 
			
		||||
  "Operate": "操作",
 | 
			
		||||
  "Number": "序号",
 | 
			
		||||
  "BaseQuantity": "基数",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "No": "No.",
 | 
			
		||||
  "BindUnBind": "绑定/解绑",
 | 
			
		||||
  "TotalStock": "总库存",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Confirm": "确认",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "BoxNum": "药箱号",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "ReplaceDrug": "替换药品",
 | 
			
		||||
  "RemoveDrug": "移出药品",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "DrugSearch": "药品名称/拼音码/编码",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "DrawerType1": "物理隔板",
 | 
			
		||||
  "DrawerType2": "单支计数",
 | 
			
		||||
  "DrawerType3": "称重计数药盒智能显示",
 | 
			
		||||
  "DrawerType4": "智能显示",
 | 
			
		||||
  "DrawerType5": "内置回收",
 | 
			
		||||
  "DrawerType6": "外置回收",
 | 
			
		||||
  "DrawerType7": "管控药盒",
 | 
			
		||||
  "DrawerType8": "储物箱",
 | 
			
		||||
  "DrawerType9": "称重计数",
 | 
			
		||||
  "DrawerType10": "称重计数药盒",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "Check": "盘点",
 | 
			
		||||
  "CheckQuantity": "盘点数量",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "AddDrug": "新增药品",
 | 
			
		||||
  "AddBatch": "新增批次",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "DateTime": "日期",
 | 
			
		||||
  "HandoverOperator1": "交班发药人",
 | 
			
		||||
  "HandoverChecker1": "交班审核人",
 | 
			
		||||
  "HandoverOperator2": "接班发药人",
 | 
			
		||||
  "HandoverChecker2": "接班审核人",
 | 
			
		||||
  "HandoverDate": "接班日期",
 | 
			
		||||
  "HandoverState": "当班状态",
 | 
			
		||||
  "OnDuty": "值班中",
 | 
			
		||||
  "NotDuty": "已交班",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "ID": "ID",
 | 
			
		||||
  "Role": "权限",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "RoleName": "角色名称",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "LoginSet": "登录设置",
 | 
			
		||||
  "LoginMode": "登录模式",
 | 
			
		||||
  "SingleLogin": "单人登录",
 | 
			
		||||
  "MultiLogin": "双人登录",
 | 
			
		||||
  "SaveSet": "保存设置",
 | 
			
		||||
  "FridgeSet": "冰箱设置",
 | 
			
		||||
  "TemperRange": "冰箱温度区间",
 | 
			
		||||
  "FridgeState": "冰箱状态",
 | 
			
		||||
  "AlertState": "报警状态",
 | 
			
		||||
  "Open": "开",
 | 
			
		||||
  "Close": "关",
 | 
			
		||||
  "NoDate": "无数据",
 | 
			
		||||
  "OrderDetail": "处方详情",
 | 
			
		||||
  "InvoiceDetail": "调拨出库详情",
 | 
			
		||||
  "Taking": "取药中。。。",
 | 
			
		||||
  "Complete": "完成",
 | 
			
		||||
  "Tips": "提示",
 | 
			
		||||
  "TakeDetail": "取药详情",
 | 
			
		||||
  "InputOrderTips": "请输入处方号",
 | 
			
		||||
  "InputOrderDate": "请输入处方时间",
 | 
			
		||||
  "InputPatientName": "请输入患者姓名",
 | 
			
		||||
  "InputPatientSex": "请输入患者性别",
 | 
			
		||||
  "InputPatientAge": "请输入患者年龄",
 | 
			
		||||
  "InputDoctor": "请输入处方医生",
 | 
			
		||||
  "InputDept": "请输入科室",
 | 
			
		||||
  "InputDisease": "请输入诊断",
 | 
			
		||||
  "DrugCode": "药品编码",
 | 
			
		||||
  "SelectDrug": "请选择药品",
 | 
			
		||||
  "HasSelect": "已经选择的药品不能再次选择",
 | 
			
		||||
  "InputTips": "请填写正确的取出数量",
 | 
			
		||||
  "Select": "选择",
 | 
			
		||||
  "Returning": "还空瓶中。。。",
 | 
			
		||||
  "DrawOpened": "抽屉已打开。。。",
 | 
			
		||||
  "OpenDraw": "开抽屉",
 | 
			
		||||
  "State": "状态",
 | 
			
		||||
  "NeedAddQuantity": "需补药数",
 | 
			
		||||
  "Box": "号药箱",
 | 
			
		||||
  "SelectMenu": "请先选择套餐再点击绑定按钮",
 | 
			
		||||
  "ExchangeNum": "交换数量",
 | 
			
		||||
  "Save": "保存",
 | 
			
		||||
  "InputCorrectNum": "请填写正确的交换数量",
 | 
			
		||||
  "NotBind": "未绑定批次",
 | 
			
		||||
  "LoginCheck": "登录验证",
 | 
			
		||||
  "Adding": "加药中。。。",
 | 
			
		||||
  "SelectBatch": "请选择批次",
 | 
			
		||||
  "InputNum": "请填写正确的添加数量",
 | 
			
		||||
  "InputCode": "请填写编码",
 | 
			
		||||
  "InputDrugName": "请填写药品名称",
 | 
			
		||||
  "InputDrugSpec": "请填写规格",
 | 
			
		||||
  "InputDrugFactory": "请填写厂家",
 | 
			
		||||
 | 
			
		||||
  "Loading": "加载程序必要连接中,请稍等。。。",
 | 
			
		||||
  "ConnectFinger": "开始连接指纹模块",
 | 
			
		||||
  "FingerConnected": "指纹模块连接成功",
 | 
			
		||||
  "FingerFailed": "指纹模块连接失败",
 | 
			
		||||
  "ConnectDrawer": "开始连接抽屉串口",
 | 
			
		||||
  "DrawerConnected": "抽屉串口连接成功",
 | 
			
		||||
  "DrawerFailed": "抽屉串口连接失败",
 | 
			
		||||
  "ConnectCan": "开始连接CanBus模块",
 | 
			
		||||
  "CanConnected": "模块连接成功",
 | 
			
		||||
  "CanFailed": "CanBus模块连接失败",
 | 
			
		||||
  "ConnectScanCode": "开始连接条码扫描模块",
 | 
			
		||||
  "ScanCodeConnected": "条码扫描模块连接成功",
 | 
			
		||||
  "ScanCodeFailed": "条码扫描模块连接失败",
 | 
			
		||||
  "ConnectFridge": "冰箱串口打开结果",
 | 
			
		||||
  "FridgeConnected": "冰箱串口连接成功",
 | 
			
		||||
  "FridgeFailed": "冰箱串口打开失败",
 | 
			
		||||
  "InvoiceInDetail": "调拨入库详情",
 | 
			
		||||
  "SaveSuccess": "保存成功",
 | 
			
		||||
  "AddMenu": "新增套餐",
 | 
			
		||||
  "InputMenuName": "请填写套餐名称",
 | 
			
		||||
  "InputMenuDesc": "请填写套餐描述",
 | 
			
		||||
  "MenuHasDrug": "套餐中已包含该药品",
 | 
			
		||||
  "InputNumError": "入库总量应等于请领数量",
 | 
			
		||||
  "DataSaveFailed": "数据保存失败",
 | 
			
		||||
  "InputCorrectInNum": "请填写正确的入库数量",
 | 
			
		||||
  "DrawerOpenFailed": "抽屉打开失败",
 | 
			
		||||
  "AddSuccessful": "加药完成,请,点击完成按钮进行确认",
 | 
			
		||||
  "PleaseAdd": "号抽屉已经打开,请,加药",
 | 
			
		||||
  "InputRoleName": "请填写角色名称",
 | 
			
		||||
  "SelectRole": "请选择权限",
 | 
			
		||||
  "ConfirmDelete": "删除确认",
 | 
			
		||||
  "ConfirmDeleteRole": "确认要删除角色",
 | 
			
		||||
  "BindSuccess": "绑定成功",
 | 
			
		||||
  "Checking": "盘点中。。。",
 | 
			
		||||
  "AlertExpir": "近效期药品",
 | 
			
		||||
  "AlertStock": "库存预警",
 | 
			
		||||
  "UserName": "用户名",
 | 
			
		||||
  "InputAccount": "请填写账号",
 | 
			
		||||
  "InputRole": "请选择角色"
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue