Compare commits
2 Commits
1c91715d36
...
289a1491f3
Author | SHA1 | Date | |
---|---|---|---|
|
289a1491f3 |
|
|
|
f4c09d52a1 |
|
|
@ -9,6 +9,6 @@ namespace MasaBlazorApp3.DataAccess.Dao
|
|||
{
|
||||
interface ISettingManuDao
|
||||
{
|
||||
public Task<List<SettingManu>> GetMenuItemsAsync();
|
||||
public Task<List<SettingManu>> GetMenuItemsAsync(string culture);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ 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
|
||||
|
@ -24,9 +25,9 @@ namespace MasaBlazorApp3.DataAccess.Impl
|
|||
_connection = connection;
|
||||
_setting = setting.Value;
|
||||
}
|
||||
public async Task<List<SettingManu>> GetMenuItemsAsync()
|
||||
public async Task<List<SettingManu>> GetMenuItemsAsync(string culture)
|
||||
{
|
||||
var query = _connection.SettingManu.AsQueryable();
|
||||
var query = _connection.SettingManu.AsQueryable().Where(it=>it.Culture==culture);
|
||||
|
||||
|
||||
return await query
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
<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>
|
||||
|
@ -57,10 +58,6 @@
|
|||
</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="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="抽屉已打开。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="开抽屉" Click="@OpenDrawer" />
|
||||
<RadzenButton IsBusy="@(status > 0)" BusyText="@myText.DrawOpened" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.OpenDraw" Click="@OpenDrawer" />
|
||||
}
|
||||
@if (status > 0 && status <= 3)
|
||||
{
|
||||
<RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="取消" Click="@Cancel" Style="width: 120px" />
|
||||
<RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
|
||||
}
|
||||
</RadzenRow>
|
||||
</HeaderTemplate>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" 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="批次" Property="ManuNo">
|
||||
<RadzenDataGridColumn Title="@myText.Batch" 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="库存" Property="Quantity">
|
||||
<RadzenDataGridColumn Title="@myText.Inventory" 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="状态" Property="BiaoDingStatus">
|
||||
<RadzenGridColumn Title="@myText.State" Property="BiaoDingStatus">
|
||||
|
||||
</RadzenGridColumn>
|
||||
</Columns>
|
||||
|
@ -92,6 +92,8 @@
|
|||
@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;
|
||||
|
@ -158,7 +160,7 @@
|
|||
else
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary =myText.Tips, Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
|
||||
);
|
||||
logger.Info($"抽屉打开失败");
|
||||
RestData();
|
||||
|
@ -211,7 +213,7 @@
|
|||
{
|
||||
logger.Info($"标定药品发生错误,{e.Message}");
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"发生错误,{e.Message}", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"发生错误,{e.Message}", Duration = 4000 }
|
||||
);
|
||||
if (setting.Value.single != null && setting.Value.single.Contains(this.drawerNo))
|
||||
{
|
||||
|
@ -253,4 +255,12 @@
|
|||
// }
|
||||
}
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
|
||||
base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
@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>();
|
||||
|
@ -47,6 +49,7 @@
|
|||
int iClearFinish = 1;
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
if(channelStockInfo!=null&&channelStockInfo.Quantity<=0)
|
||||
{
|
||||
//库存为零,直接进行清空操作
|
||||
|
@ -93,7 +96,7 @@
|
|||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage
|
||||
{ Severity = NotificationSeverity.Success, Summary = "提示", Detail = "清空操作成功", Duration = 3000 }
|
||||
{ Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = "清空操作成功", Duration = 3000 }
|
||||
);
|
||||
|
||||
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
|
@ -147,7 +150,7 @@
|
|||
status = 0;
|
||||
_message.Notify(
|
||||
new NotificationMessage
|
||||
{ Severity = NotificationSeverity.Success, Summary = "提示", Detail = "标定成功", Duration = 3000 }
|
||||
{ Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = "标定成功", Duration = 3000 }
|
||||
);
|
||||
|
||||
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
|
@ -173,7 +176,7 @@
|
|||
logger.Error($"标定异常{ex.Message}");
|
||||
_message.Notify(
|
||||
new NotificationMessage
|
||||
{ Severity = NotificationSeverity.Error, Summary = "提示", Detail = "标定异常", Duration = 3000 }
|
||||
{ Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = "标定异常", Duration = 3000 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +184,7 @@
|
|||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage
|
||||
{ Severity = NotificationSeverity.Error, Summary = "提示", Detail = "请输入标定数量", Duration = 3000 });
|
||||
{ Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = "请输入标定数量", Duration = 3000 });
|
||||
}
|
||||
}
|
||||
// 取消
|
||||
|
|
|
@ -44,38 +44,38 @@
|
|||
|
||||
<RadzenDataGrid @ref="grid" RowSelect="@OnRowSelect" TItem="ChannelList"
|
||||
RowRender="@RowRender"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="无数据">
|
||||
<RadzenDataGrid Data="@cs.ChannelStocks" EmptyText="@myText.NoDate">
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec">
|
||||
<RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec">
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="厂家" Property="Drug.Manufactory">
|
||||
<RadzenDataGridColumn Title="@myText.Factory" Property="Drug.Manufactory">
|
||||
</RadzenDataGridColumn>
|
||||
@* <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="效期" Property="EffDate">
|
||||
</RadzenDataGridColumn> *@
|
||||
<RadzenDataGridColumn Title="基数" Property="BaseQuantity">
|
||||
<RadzenDataGridColumn Title="@myText.BaseQuantity" Property="BaseQuantity">
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="需补药数" Property="NeedQuantity">
|
||||
<RadzenDataGridColumn Title="@myText.NeedAddQuantity" Property="NeedQuantity">
|
||||
</RadzenDataGridColumn>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</Template>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Frozen="true" Width="200px" Title="药箱号" Property="DrawerNo">
|
||||
<RadzenDataGridColumn Frozen="true" Width="200px" Title="@myText.BoxNum" Property="DrawerNo">
|
||||
<Template Context="DrawerNo">
|
||||
@DrawerNo.DrawerNo 号药箱
|
||||
@DrawerNo.DrawerNo @myText.BoxNum
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="总库存" Property="TotalQuantity"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.TotalStock" Property="TotalQuantity"></RadzenDataGridColumn>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</div>
|
||||
|
@ -83,6 +83,8 @@
|
|||
@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;
|
||||
|
@ -94,6 +96,7 @@
|
|||
|
||||
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="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="无数据">
|
||||
<RadzenDataGrid Data="@cs.ChannelStocks" EmptyText="@myText.NoDate">
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" Property="Drug.DrugName">
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec">
|
||||
<RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec">
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="厂家" Property="Drug.Manufactory">
|
||||
<RadzenDataGridColumn Title="@myText.Factory" Property="Drug.Manufactory">
|
||||
</RadzenDataGridColumn>
|
||||
@* <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="效期" Property="EffDate">
|
||||
</RadzenDataGridColumn> *@
|
||||
<RadzenDataGridColumn Title="基数" Property="BaseQuantity">
|
||||
<RadzenDataGridColumn Title="@myText.BaseQuantity" Property="BaseQuantity">
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="需补药数" Property="NeedQuantity">
|
||||
<RadzenDataGridColumn Title="@myText.NeedAddQuantity" Property="NeedQuantity">
|
||||
</RadzenDataGridColumn>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</Template>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Frozen="true" Width="200px" Title="药箱号" Property="DrawerNo">
|
||||
<RadzenDataGridColumn Frozen="true" Width="200px" Title="@myText.BoxNum" Property="DrawerNo">
|
||||
<Template Context="DrawerNo">
|
||||
@DrawerNo.DrawerNo 号药箱
|
||||
@DrawerNo.DrawerNo @myText.BoxNum
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="总库存" Property="TotalQuantity"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.TotalStock" Property="TotalQuantity"></RadzenDataGridColumn>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</div>
|
||||
|
@ -82,6 +82,8 @@
|
|||
@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;
|
||||
|
@ -93,6 +95,7 @@
|
|||
|
||||
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>号手术间</b>
|
||||
<b>@myText.Box</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="绑定/解绑" />
|
||||
<RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@(() => EditChannel(channel))" Text="@myText.BindUnBind" />
|
||||
}
|
||||
</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">套餐</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">@myText.SetMenu</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="套餐名称" Sortable="false" />
|
||||
<RadzenDropDownDataGridColumn Property="Name" Title="@myText.MenuName" Sortable="false" />
|
||||
|
||||
<RadzenDropDownDataGridColumn Property="Description" Width="120px" Title="套餐描述" Sortable="false" />
|
||||
<RadzenDropDownDataGridColumn Property="Description" Width="120px" Title="@myText.MenuDescrip" Sortable="false" />
|
||||
</Columns>
|
||||
</RadzenDropDownDataGrid>
|
||||
<RadzenCustomValidator Component="planName" Validator="@(()=>(channel.PlanInfo.Id>0))" Popup=true Text="请先选择套餐再点击绑定按钮" />
|
||||
<RadzenCustomValidator Component="planName" Validator="@(() => (channel.PlanInfo.Id > 0))" Popup=true Text="@myText.SelectMenu" />
|
||||
|
||||
}
|
||||
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">总库存</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">@myText.TotalStock</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Body1"><b>@(channel.TotalQuantity)</b></RadzenText>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
|
@ -60,6 +60,8 @@
|
|||
@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;
|
||||
|
@ -77,6 +79,7 @@
|
|||
|
||||
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);">药名:</RadzenText>
|
||||
<RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.DrugName:</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);">规格:</RadzenText>
|
||||
<RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Spec:</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);">批次:</RadzenText>
|
||||
<RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Batch:</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);">效期:</RadzenText>
|
||||
<RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Expiration:</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);">库存:</RadzenText>
|
||||
<RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.Inventory:</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);">交换药箱:</RadzenText>
|
||||
<RadzenText Class="rz-mt-2 rz-my-0" Style="color: var(--rz-text-tertiary-color);">@myText.ReplaceDrug:</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="无数据"
|
||||
<RadzenDataGrid @ref="grid" Data="@selectedDrawerData" AllowAlternatingRows="true" LoadData="@LoadData" IsLoading="@isLoading" Count="@count" EmptyText="@myText.NoDate"
|
||||
CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args))"
|
||||
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Property="DrawerNo" Title="药箱号">
|
||||
<RadzenDataGridColumn Property="DrawerNo" Title="@myText.Box">
|
||||
</RadzenDataGridColumn>
|
||||
<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">
|
||||
<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">
|
||||
<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="请填写正确的交换数量" Component="Quantity" Popup="true" />
|
||||
<RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Text="@myText.InputCorrectNum" 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="保存" Style="width: 120px" />
|
||||
<RadzenButton Click="@Save" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="@myText.SaveSet" Style="width: 120px" />
|
||||
|
||||
<RadzenButton Click="@Cancel" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
|
||||
<RadzenButton Click="@Cancel" Variant="Variant.Flat" Text="@myText.Cancel" Style="width: 120px" />
|
||||
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
|
@ -63,6 +63,8 @@
|
|||
@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;
|
||||
|
@ -86,8 +88,9 @@
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
DrawerNos = await channelListDao.GetDrawerNum(channelStock);
|
||||
base.OnInitializedAsync();
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
async Task LoadData(LoadDataArgs args)
|
||||
{
|
||||
|
@ -127,18 +130,18 @@
|
|||
{
|
||||
if (selectedDrawerData.Where(cs => cs.AddQuantity != 0).Sum(cs => cs.Quantity) > channelStock.Quantity)
|
||||
{
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = "提示", Detail = $"交换总数量不能大于库存", Duration = 4000 });
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = myText.Tips, 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 = "提示", Detail = $"数据保存失败", Duration = 4000 });
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"数据保存失败", Duration = 4000 });
|
||||
logger.Error($"药箱药品替换保存数据库失败,数据{JsonConvert.SerializeObject(selectedDrawerData.Where(cl => cl.AddQuantity != 0).ToList())}");
|
||||
}
|
||||
else
|
||||
{
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"交换完成", Duration = 4000 });
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = $"交换完成", Duration = 4000 });
|
||||
// 关闭弹窗
|
||||
dialogService.Close(true);
|
||||
|
||||
|
@ -148,7 +151,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = "提示", Detail = $"无可交换数据或未输入交换数量", Duration = 4000 });
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Warning, Summary = myText.Tips, 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">批次</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.Batch</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">效期</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.Expiration</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">库存</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.Inventory</RadzenText>
|
||||
}
|
||||
<RadzenText TextStyle="TextStyle.Body2">@(manuInfo.Quantity)</RadzenText>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="12" SizeLG="2" class="rz-p-4">
|
||||
<RadzenButton Text="替换药品" Style="width: 100%" Click="@(() => replaceClick(manuInfo))" />
|
||||
<RadzenButton Text="@myText.ReplaceDrug" Style="width: 100%" Click="@(() => replaceClick(manuInfo))" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="12" SizeLG="2" class="rz-p-4">
|
||||
<RadzenButton Text="移出药品" Style="width: 100%" Click="@(() => removeClick(manuInfo))" />
|
||||
<RadzenButton Text="@myText.RemoveDrug" 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">未绑定批次</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">@myText.NotBind</RadzenText>
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
}
|
||||
|
@ -140,6 +140,8 @@
|
|||
@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;
|
||||
|
@ -159,6 +161,11 @@
|
|||
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);
|
||||
|
@ -209,7 +216,7 @@
|
|||
{
|
||||
//库存为0无法操作
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"库存为0无法替换", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"库存为0无法替换", Duration = 4000 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -232,7 +239,7 @@
|
|||
{
|
||||
//库存为0无法操作
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"库存为0,没有要移出的药品", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"库存为0,没有要移出的药品", Duration = 4000 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,30 +17,30 @@
|
|||
@if (userI == 1)
|
||||
{
|
||||
<RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
|
||||
请交班操作人 @FromOperator?.NickName
|
||||
<p>登录验证</p>
|
||||
@myText.HandoverOperator1 @FromOperator?.NickName
|
||||
<p>@myText.LoginCheck</p>
|
||||
</RadzenText>
|
||||
}
|
||||
else if (userI == 2)
|
||||
{
|
||||
<RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
|
||||
请交班复核人 @FromRviewer?.NickName
|
||||
<p>登录验证</p>
|
||||
@myText.HandoverChecker1 @FromRviewer?.NickName
|
||||
<p>@myText.LoginCheck</p>
|
||||
</RadzenText>
|
||||
}
|
||||
else
|
||||
@if (userI == 3)
|
||||
{
|
||||
<RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
|
||||
请接班操作人 @ToOperator?.NickName
|
||||
<p>登录验证</p>
|
||||
@myText.HandoverOperator2 @ToOperator?.NickName
|
||||
<p>@myText.LoginCheck</p>
|
||||
</RadzenText>
|
||||
}
|
||||
else if (userI == 4)
|
||||
{
|
||||
<RadzenText TextStyle="TextStyle.H5" class="rz-color-white">
|
||||
请接班复核人 @ToReviewer?.NickName
|
||||
<p>登录验证</p>
|
||||
@myText.HandoverChecker2 @ToReviewer?.NickName
|
||||
<p>@myText.LoginCheck</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">账号</label>
|
||||
<label class="rz-label" for="username">@myText.Account</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="请填写用户名" />
|
||||
<RadzenRequiredValidator Component="Username" Text="@myText.loginTips1" />
|
||||
</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="请填写密码" />
|
||||
<RadzenRequiredValidator Component="Password" Text="@myText.loginTips2" />
|
||||
</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="登录" />
|
||||
<RadzenButton Style="border-color:#255dd4;width:110px" Variant="Variant.Outlined" Text="取消" Click="@Exit" />
|
||||
<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" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -90,6 +90,8 @@
|
|||
@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();
|
||||
|
||||
|
||||
|
||||
|
@ -110,8 +112,9 @@
|
|||
|
||||
private Pojo.User loginModel = new();
|
||||
|
||||
protected override Task OnInitializedAsync()
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
FingerprintUtil.axCZKEM1.OnAttTransactionEx += axCZKEM1_OnAttTransactionEx;
|
||||
|
||||
loginMode = setting.Value.loginMode;
|
||||
|
@ -127,7 +130,7 @@
|
|||
{
|
||||
FromRviewer = userDao.GetByUsername(hkcChange.FromRviewer);
|
||||
}
|
||||
return base.OnInitializedAsync();
|
||||
await 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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="开始时间" Component="Start" />
|
||||
<RadzenLabel Text="@myText.StartDate" 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="结束时间" Component="End" />
|
||||
<RadzenLabel Text="@myText.EndDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -40,36 +40,36 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="日期" Property="optDate">
|
||||
<RadzenDataGridColumn Title="@myText.Date" Property="optDate">
|
||||
<Template Context="mr">
|
||||
@mr.optDate.ToString("yyyy-MM-dd")
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="交班发药人" Property="FromOperator"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="交班审核人" Property="FromRviewer"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="接班发药人" Property="ToOperator"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="接班审核人" Property="ToReviewer"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="接班日期" Property="ToDate">
|
||||
<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">
|
||||
|
||||
<Template Context="mr">
|
||||
@mr.ToDate.ToString("yyyy-MM-dd")
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="当班状态" Property="State">
|
||||
<RadzenDataGridColumn Title="@myText.HandoverState" Property="State">
|
||||
<Template Context="state">
|
||||
@if(state.State=="0")
|
||||
{
|
||||
<RadzenText>值班中</RadzenText>
|
||||
<RadzenText>@myText.OnDuty</RadzenText>
|
||||
}
|
||||
else
|
||||
{
|
||||
<RadzenText>已交班</RadzenText>
|
||||
<RadzenText>@myText.NotDuty</RadzenText>
|
||||
}
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
|
@ -84,6 +84,10 @@
|
|||
@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;
|
||||
|
@ -120,4 +124,9 @@
|
|||
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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="处方号" Component="OrderNo" />
|
||||
<RadzenLabel Text="@myText.OrderNo" 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="处方时间" Component="OrderDate" />
|
||||
<RadzenLabel Text="@myText.OrderDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" IsBusy="isLoading" Icon="check_circle" Text="确认" Style="margin:0.5rem" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="Confirm" ButtonType="ButtonType.Button" IsBusy="isLoading" Icon="check_circle" Text="@myText.Confirm" 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="无数据"
|
||||
Data="@orderInfos" ColumnWidth="200px" IsLoading="@isLoading" Count="@count" EmptyText="@myText.NoDate"
|
||||
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="姓名" 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">
|
||||
<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">
|
||||
<Template Context="DetailList">
|
||||
@for (int i = 0; i < DetailList.DetailList.Count; i++)
|
||||
{
|
||||
|
@ -72,7 +72,7 @@
|
|||
}
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Property="Detail.SetManuNo" Title="药品批次" Sortable="false" Filterable="false" Width="8rem">
|
||||
<RadzenDataGridColumn Property="Detail.SetManuNo" Title="@myText.Batch" 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="数量" Sortable="false" Filterable="false" Width="2rem">
|
||||
<RadzenDataGridColumn Property="Detail.Quantity" Title="@myText.Quantity" Sortable="false" Filterable="false" Width="2rem">
|
||||
<Template Context="DetailList">
|
||||
@for (int i = 0; i < DetailList.DetailList.Count; i++)
|
||||
{
|
||||
|
@ -98,6 +98,8 @@
|
|||
@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;
|
||||
|
@ -146,6 +148,11 @@
|
|||
|
||||
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="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="加药中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="加药" Click="@OpenDrawer" />
|
||||
<RadzenButton IsBusy="@(status > 0)" BusyText="@myText.Adding" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Add" Click="@OpenDrawer" />
|
||||
}
|
||||
@if (status == 3)
|
||||
{
|
||||
<RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="完成" Click="@AddFinish" />
|
||||
<RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Complete" Click="@AddFinish" />
|
||||
}
|
||||
@if (status > 0 && status <= 3)
|
||||
{
|
||||
<RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="取消" Click="@Cancel" Style="width: 120px" />
|
||||
<RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
|
||||
}
|
||||
</RadzenRow>
|
||||
</HeaderTemplate>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" 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="批次" Property="ManuNo">
|
||||
<RadzenDataGridColumn Title="@myText.Batch" 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="请选择批次" Component="ManuNo" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.SelectBatch" Component="ManuNo" Popup="true" />
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -130,12 +130,12 @@
|
|||
}
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="库存" Property="Quantity">
|
||||
<RadzenDataGridColumn Title="@myText.Inventory" 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="加药数量" Property="AddQuantity">
|
||||
<RadzenDataGridColumn MinWidth="100px" Title="@myText.AddQuantity" 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="请填写正确的添加数量" Component="Quantity" Popup="true" />
|
||||
<RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="0" Text="@myText.InputCorrectNum" Component="Quantity" Popup="true" />
|
||||
}
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
|
@ -158,6 +158,8 @@
|
|||
@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;
|
||||
|
@ -517,4 +519,9 @@
|
|||
{
|
||||
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="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="取药中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="取药" Click="@OpenDrawer" />
|
||||
<RadzenButton IsBusy="@(status > 0)" BusyText="@myText.Taking" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Take" Click="@OpenDrawer" />
|
||||
}
|
||||
@if (status == 3)
|
||||
{
|
||||
<RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="完成" Click="@TakeFinish" />
|
||||
<RadzenButton Visible="@CompleteIsEnable" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Complete" Click="@TakeFinish" />
|
||||
}
|
||||
@if (status > 0 && status <= 3)
|
||||
{
|
||||
<RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="取消" Click="@Cancel" Style="width: 120px" />
|
||||
<RadzenButton Visible="@CancleIsEnable" Variant="Variant.Flat" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
|
||||
}
|
||||
</RadzenRow>
|
||||
</HeaderTemplate>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" 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="批次" Property="ManuNo">
|
||||
<RadzenDataGridColumn Title="@myText.Batch" 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="库存" Property="Quantity">
|
||||
<RadzenDataGridColumn Title="@myText.Inventory" 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="取药数量" Property="TakeQuantity">
|
||||
<RadzenDataGridColumn MinWidth="120px" Title="@myText.TakeQuantity" Property="TakeQuantity">
|
||||
<EditTemplate Context="channel">
|
||||
@if (channel.BoardType.ToString().Contains("2") || channel.BoardType.ToString().Contains("3"))
|
||||
{
|
||||
|
@ -103,6 +103,8 @@
|
|||
@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;
|
||||
|
@ -120,7 +122,11 @@
|
|||
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;
|
||||
|
@ -173,7 +179,7 @@
|
|||
else
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
|
||||
);
|
||||
logger.Info($"抽屉打开失败");
|
||||
RestData();
|
||||
|
@ -271,7 +277,7 @@
|
|||
{
|
||||
logger.Info($"抽屉取药发生错误,{e.Message}");
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"发生错误,{e.Message}", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"发生错误,{e.Message}", Duration = 4000 }
|
||||
);
|
||||
if (setting.Value.single.Contains(this.drawerNo))
|
||||
{
|
||||
|
@ -397,7 +403,7 @@
|
|||
var b = await channelListDao.DrawerOperationFinish(channels.Where(cl => cl.TakeQuantity != 0).ToList(), 2);
|
||||
if (!b)
|
||||
{
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"数据保存失败", Duration = 4000 });
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, 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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="药品编码" Component="DrugId" />
|
||||
<RadzenLabel Text="@myText.DrugCode" 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="药品名称" Component="DrugName" />
|
||||
<RadzenLabel Text="@myText.DrugName" 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="查询" />
|
||||
<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="新增药品" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -46,38 +46,38 @@
|
|||
@bind-Value="@SelectedDrugs"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="编码" Property="DrugId">
|
||||
<RadzenDataGridColumn Frozen="true" Title="@myText.DrugCode" Property="DrugId">
|
||||
<EditTemplate Context="drugInfo">
|
||||
<RadzenTextBox Name="DrugId" @bind-Value="drugInfo.DrugId" Style="width:100%; display: block;" />
|
||||
<RadzenRequiredValidator Text="请填写编码" Component="DrugId" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.InputCode" Component="DrugId" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="200px" Title="药品名称" Property="DrugName">
|
||||
<RadzenDataGridColumn Width="200px" Title="@myText.DrugName" Property="DrugName">
|
||||
<EditTemplate Context="drugInfo">
|
||||
<RadzenTextBox Name="DrugName" @bind-Value="drugInfo.DrugName" Style="width:100%;display:block;" />
|
||||
<RadzenRequiredValidator Text="请填写药品名称" Component="DrugName" Popup="true"/>
|
||||
<RadzenRequiredValidator Text="@myText.InputDrugName" Component="DrugName" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="规格" Property="DrugSpec">
|
||||
<RadzenDataGridColumn Title="@myText.Spec" Property="DrugSpec">
|
||||
<EditTemplate Context="drugInfo">
|
||||
<RadzenTextBox Name="DrugSpec" @bind-Value="drugInfo.DrugSpec" Style="width:100%;display:block;" />
|
||||
<RadzenRequiredValidator Text="请填写规格" Component="DrugSpec" Popup="true"/>
|
||||
<RadzenRequiredValidator Text="@myText.InputDrugSpec" Component="DrugSpec" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="200px" Title="厂家" Property="Manufactory">
|
||||
<RadzenDataGridColumn Width="200px" Title="@myText.Factory" Property="Manufactory">
|
||||
<EditTemplate Context="drugInfo">
|
||||
<RadzenTextBox Name="Manufactory" @bind-Value="drugInfo.Manufactory" Style="width:100%;display:block;" />
|
||||
<RadzenRequiredValidator Text="请填写厂家" Component="Manufactory" Popup="true"/>
|
||||
<RadzenRequiredValidator Text="@myText.InputDrugFactory" Component="Manufactory" Popup="true"/>
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
|
||||
<RadzenDataGridColumn Context="drugInfo" Title="操作" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right">
|
||||
<RadzenDataGridColumn Context="drugInfo" Title="@myText.Operate" 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,6 +160,8 @@
|
|||
@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;
|
||||
|
||||
|
@ -335,5 +337,10 @@
|
|||
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="开" Value="0" />
|
||||
<RadzenRadioButtonListItem Text="关" Value="1" />
|
||||
<RadzenRadioButtonListItem Text="@myText.Open" Value="0" />
|
||||
<RadzenRadioButtonListItem Text="@myText.Close" 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="开" Value="0"/>
|
||||
<RadzenRadioButtonListItem Text="关" Value="1"/>
|
||||
<RadzenRadioButtonListItem Text="@myText.Open" Value="0"/>
|
||||
<RadzenRadioButtonListItem Text="@myText.Close" Value="1"/>
|
||||
</Items>
|
||||
</RadzenRadioButtonList>
|
||||
</RadzenStack>
|
||||
|
@ -46,18 +46,22 @@
|
|||
@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 void OnInitialized()
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
fridgeStateValue = setting.Value.fridgeState;
|
||||
alertStateValue = setting.Value.alertState;
|
||||
temperatureRange = setting.Value.temperatureRange;
|
||||
base.OnInitialized();
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
//保存
|
||||
async Task SaveMethod()
|
||||
|
|
|
@ -45,6 +45,12 @@
|
|||
</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)
|
||||
{
|
||||
|
@ -53,12 +59,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">操作人:@globalStateService.Operator.NickName</RadzenText>
|
||||
<RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H5" TextAlign="TextAlign.Center">@myText.Operator :@globalStateService.Operator.NickName</RadzenText>
|
||||
</Template>
|
||||
<ChildContent>
|
||||
<RadzenProfileMenuItem Text="录入指纹" Value="11" Icon="fingerprint"></RadzenProfileMenuItem>
|
||||
<RadzenProfileMenuItem Text="录入签名" Value="21" Icon="line_weight"></RadzenProfileMenuItem>
|
||||
<RadzenProfileMenuItem Text="修改密码" Value="31" Icon="password"></RadzenProfileMenuItem>
|
||||
<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>
|
||||
</ChildContent>
|
||||
</RadzenProfileMenu>
|
||||
}
|
||||
|
@ -68,12 +74,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">复核人:@globalStateService.Reviewer.NickName</RadzenText>
|
||||
<RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H5" TextAlign="TextAlign.Center">@myText.Checker:@globalStateService.Reviewer.NickName</RadzenText>
|
||||
</Template>
|
||||
<ChildContent>
|
||||
<RadzenProfileMenuItem Text="录入指纹" Value="12" Icon="fingerprint"></RadzenProfileMenuItem>
|
||||
<RadzenProfileMenuItem Text="录入签名" Value="22" Icon="line_weight"></RadzenProfileMenuItem>
|
||||
<RadzenProfileMenuItem Text="修改密码" Value="32" Icon="password"></RadzenProfileMenuItem>
|
||||
<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>
|
||||
</ChildContent>
|
||||
</RadzenProfileMenu>
|
||||
}
|
||||
|
@ -81,7 +87,7 @@
|
|||
<RadzenColumn Size="3">
|
||||
<div @onclick="@(() => { changeShifts(); })">
|
||||
<RadzenIcon Icon="compare_arrows" Style="font-size:3rem;cursor: pointer;" class="rz-ripple" IconColor="white" />
|
||||
<div>交接班</div>
|
||||
<div>@myText.Handover</div>
|
||||
</div>
|
||||
<div style="clear:both"></div>
|
||||
</RadzenColumn>
|
||||
|
@ -95,7 +101,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">出库</RadzenText>
|
||||
<RadzenText Style="" class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.Outbound</RadzenText>
|
||||
@if (globalStateService.Operator != null)
|
||||
{
|
||||
@if (!globalStateService.Operator.role.permissionIds.Any(id => id - 10 < 10))
|
||||
|
@ -108,7 +114,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">入库</RadzenText>
|
||||
<RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.FillStorage</RadzenText>
|
||||
@if (globalStateService.Operator != null)
|
||||
{
|
||||
@if (!globalStateService.Operator.role.permissionIds.Any(id => id - 20 > 0 && id - 20 < 10))
|
||||
|
@ -120,7 +126,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">药箱管理</RadzenText>
|
||||
<RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.BoxManage</RadzenText>
|
||||
@if (globalStateService.Operator != null)
|
||||
{
|
||||
@if (!globalStateService.Operator.role.permissionIds.Any(id => id - 60 > 0 && id - 60 < 10))
|
||||
|
@ -135,7 +141,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">归还</RadzenText>
|
||||
<RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.Return</RadzenText>
|
||||
@if (globalStateService.Operator != null)
|
||||
{
|
||||
@if (!globalStateService.Operator.role.permissionIds.Any(id => id - 30 > 0 && id - 30 < 10))
|
||||
|
@ -148,7 +154,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">库存管理</RadzenText>
|
||||
<RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.StockManage</RadzenText>
|
||||
@if (globalStateService.Operator != null)
|
||||
{
|
||||
@if (!globalStateService.Operator.role.permissionIds.Any(id => id - 40 > 0 && id - 40 < 10))
|
||||
|
@ -160,7 +166,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">系统管理</RadzenText>
|
||||
<RadzenText class="rz-color-white" TextStyle="TextStyle.H2" TextAlign="TextAlign.Center">@myText.SystemManage</RadzenText>
|
||||
@if (globalStateService.Operator != null)
|
||||
{
|
||||
@if (!globalStateService.Operator.role.permissionIds.Any(id => id - 50 > 0 && id - 50 < 10))
|
||||
|
@ -186,21 +192,25 @@
|
|||
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;
|
||||
|
||||
protected override void OnInitialized()
|
||||
public static I18nText.local myText = new I18nText.local();
|
||||
IEnumerable<string> languageNames;
|
||||
private string culture;
|
||||
private string SelectedCulture
|
||||
{
|
||||
// timer = new Timer(state =>
|
||||
// {
|
||||
// var now = DateTime.Now;
|
||||
|
||||
|
||||
// InvokeAsync(StateHasChanged);
|
||||
// }, null, 0, 1000);
|
||||
get => culture;
|
||||
set { }
|
||||
}
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
languageNames = new List<string> { "简体中文", "English" };
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
if (setting.Value.autoOutLog > 0)
|
||||
{
|
||||
// 是否需要自动退出
|
||||
|
@ -245,9 +255,67 @@
|
|||
}
|
||||
});
|
||||
}
|
||||
base.OnInitialized();
|
||||
culture = I18nText.GetCurrentLanguageAsync().Result == "en-US" ? "English" : "简体中文";
|
||||
|
||||
base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
// 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();
|
||||
|
@ -403,4 +471,20 @@
|
|||
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">加载程序必要连接中,请稍等。。。</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6">@myText.Loading</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6">@msg</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6">@errMsg</RadzenText>
|
||||
</RadzenStack>
|
||||
|
@ -22,6 +22,8 @@
|
|||
@inject GlobalStateService globalStateService;
|
||||
@inject IOptions<PortConfig> portSetting;
|
||||
|
||||
@inject Toolbelt.Blazor.I18nText.I18nText I18nText;
|
||||
private I18nText.local myText = new I18nText.local();
|
||||
|
||||
string msg;
|
||||
string errMsg;
|
||||
|
@ -31,7 +33,7 @@
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
|
@ -42,69 +44,69 @@
|
|||
if (firstRender)
|
||||
{
|
||||
await Task.Delay(15);
|
||||
msg = "开始连接指纹模块";
|
||||
msg = myText.ConnectFinger;
|
||||
InvokeAsync(StateHasChanged);
|
||||
try
|
||||
{
|
||||
bool flag=await FingerprintUtil.ConnectionMain();
|
||||
if (flag)
|
||||
{
|
||||
msg = "指纹模块连接成功";
|
||||
msg = myText.FingerConnected;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = "指纹模块连接失败";
|
||||
msg = myText.FingerFailed;
|
||||
}
|
||||
InvokeAsync(StateHasChanged);
|
||||
} catch (Exception e)
|
||||
{
|
||||
msg = "指纹模块连接失败";
|
||||
errMsg += "【指纹模块连接失败】";
|
||||
msg = myText.FingerFailed;
|
||||
errMsg += "【" + myText .FingerFailed+ "】";
|
||||
InvokeAsync(StateHasChanged);
|
||||
}
|
||||
await Task.Delay(500);
|
||||
msg = "开始连接抽屉串口";
|
||||
msg = myText.ConnectDrawer;
|
||||
InvokeAsync(StateHasChanged);
|
||||
try
|
||||
{
|
||||
PortUtil.drawerSerial.Open();
|
||||
logger.Info($"抽屉串口打开结果【{PortUtil.drawerSerial.IsOpen}】");
|
||||
msg = "抽屉串口连接成功";
|
||||
msg = myText.DrawerConnected;
|
||||
InvokeAsync(StateHasChanged);
|
||||
} catch (Exception e)
|
||||
{
|
||||
msg = "抽屉串口连接失败";
|
||||
errMsg += "【抽屉串口连接失败】";
|
||||
msg = myText.DrawerFailed;
|
||||
errMsg += "【"+myText.DrawerFailed+"】";
|
||||
InvokeAsync(StateHasChanged);
|
||||
}
|
||||
await Task.Delay(500);
|
||||
msg = "开始连接CanBus模块";
|
||||
msg = myText.ConnectCan;
|
||||
InvokeAsync(StateHasChanged);
|
||||
try
|
||||
{
|
||||
PortUtil.canBusSerial.Open();
|
||||
logger.Info($"CanBus模块打开结果【{PortUtil.canBusSerial.IsOpen}】");
|
||||
msg = "CanBus模块连接成功";
|
||||
msg = myText.CanConnected;
|
||||
InvokeAsync(StateHasChanged);
|
||||
} catch (Exception e)
|
||||
{
|
||||
msg = "CanBus模块连接失败";
|
||||
errMsg += "【CanBus模块连接失败】";
|
||||
msg = myText.CanFailed;
|
||||
errMsg += "【"+myText.CanFailed+"】";
|
||||
InvokeAsync(StateHasChanged);
|
||||
}
|
||||
await Task.Delay(500);
|
||||
msg = "开始连接条码扫描模块";
|
||||
msg = myText.ConnectScanCode;
|
||||
InvokeAsync(StateHasChanged);
|
||||
try
|
||||
{
|
||||
PortUtil.scanCodeSerial.Open();
|
||||
logger.Info($"条码扫描模块打开结果【{PortUtil.scanCodeSerial.IsOpen}】");
|
||||
msg = "条码扫描模块连接成功";
|
||||
msg = myText.ScanCodeConnected;
|
||||
InvokeAsync(StateHasChanged);
|
||||
} catch (Exception e)
|
||||
{
|
||||
msg = "条码扫描模块连接失败";
|
||||
errMsg += "【条码扫描模块连接失败】";
|
||||
msg = myText.ScanCodeFailed;
|
||||
errMsg += "【" + myText.ScanCodeFailed + "】";
|
||||
InvokeAsync(StateHasChanged);
|
||||
}
|
||||
if (portSetting.Value.fridgePortExist)
|
||||
|
@ -113,13 +115,13 @@
|
|||
{
|
||||
PortUtil.fridgeSerial.Open();
|
||||
logger.Info($"冰箱串口打开结果【{PortUtil.fridgeSerial.IsOpen}】");
|
||||
msg = "冰箱串口连接成功";
|
||||
msg = myText.FridgeConnected;
|
||||
InvokeAsync(StateHasChanged);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
msg = "冰箱串口打开失败";
|
||||
errMsg += "【冰箱串口打开失败】";
|
||||
msg = myText.FridgeFailed;
|
||||
errMsg += "【"+ myText.FridgeFailed+"】";
|
||||
InvokeAsync(StateHasChanged);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
<div class="col-12 mb-4">
|
||||
|
||||
<form onsubmit="@(() => grid.Reload())">
|
||||
<RadzenFieldset Text="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="单据号" Component="InvoiceNo" />
|
||||
<RadzenLabel Text="@myText.InvoiceNo" 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="请领日期" Component="InvoiceDate" />
|
||||
<RadzenLabel Text="@myText.ApplyDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -42,16 +42,16 @@
|
|||
RowSelect="@((InOutInvoice oi) => { InvoiceSelected(oi); })"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="单据号" Property="InvoiceNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="170px" Title="时间" Property="InvoiceDate"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="请领药房" Property="InPharmacyId"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="出库药房" Property="OutPharmacyId"></RadzenDataGridColumn>
|
||||
<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>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</div>
|
||||
|
@ -61,13 +61,19 @@
|
|||
@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);
|
||||
|
@ -97,7 +103,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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="单据号" Component="InvoiceNo" />
|
||||
<RadzenLabel Text="@myText.InvoiceNo" 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="请领日期" Component="InvoiceDate" />
|
||||
<RadzenLabel Text="@myText.ApplyDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -42,16 +42,16 @@
|
|||
RowSelect="@((InOutInvoice oi) => { InvoiceSelected(oi); })"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="单据号" Property="InvoiceNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="170px" Title="时间" Property="InvoiceDate"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="请领药房" Property="InPharmacyId"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="出库药房" Property="OutPharmacyId"></RadzenDataGridColumn>
|
||||
<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>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</div>
|
||||
|
@ -61,6 +61,8 @@
|
|||
@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;
|
||||
|
@ -68,6 +70,11 @@
|
|||
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);
|
||||
|
@ -97,7 +104,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">操作人:@globalStateService.Operator?.NickName</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.H6" class="rz-color-white">复核人:@globalStateService.Reviewer?.NickName</RadzenText>
|
||||
<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>
|
||||
}
|
||||
</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">账号</label>
|
||||
<label class="rz-label" for="username">@myText.Account</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="请填写用户名" />
|
||||
<RadzenRequiredValidator Component="Username" Text=@myText.loginTips1 />
|
||||
</div>
|
||||
</div>
|
||||
<div class="rz-form-row">
|
||||
<label class="rz-label" for="password">密码</label>
|
||||
<label class="rz-label" for="password">@myText.Password</label>
|
||||
<div class="rz-form-input-wrapper">
|
||||
<RadzenPassword id="password" Name="Password" @bind-Value="@loginModel.Password" Style="width:100%" />
|
||||
<RadzenRequiredValidator Component="Password" Text="请填写密码" />
|
||||
<RadzenRequiredValidator Component="Password" Text=@myText.loginTips2 />
|
||||
</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="登录" />
|
||||
<RadzenButton Style="border-color:#255dd4;width:110px" Variant="Variant.Outlined" Text="取消" Click="@Exit" />
|
||||
<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" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -69,6 +69,8 @@
|
|||
@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));
|
||||
|
||||
|
@ -81,14 +83,15 @@
|
|||
|
||||
private Pojo.User loginModel = new();
|
||||
|
||||
protected override Task OnInitializedAsync()
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
FingerprintUtil.axCZKEM1.OnAttTransactionEx += axCZKEM1_OnAttTransactionEx;
|
||||
|
||||
loginMode = setting.Value.loginMode;
|
||||
opFirst = setting.Value.opFirst;
|
||||
|
||||
return base.OnInitializedAsync();
|
||||
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="单人登录" Value="1" />
|
||||
<RadzenRadioButtonListItem Text="双人登录" Value="2" />
|
||||
<RadzenRadioButtonListItem Text="@myText.SingleLogin" Value="1" />
|
||||
<RadzenRadioButtonListItem Text="@myText.MultiLogin" Value="2" />
|
||||
</Items>
|
||||
</RadzenRadioButtonList>
|
||||
</RadzenStack>
|
||||
|
@ -40,17 +40,20 @@
|
|||
@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 void OnInitialized()
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
loginValue = setting.Value.loginMode;
|
||||
base.OnInitialized();
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
base.OnInitializedAsync();
|
||||
}
|
||||
//保存
|
||||
async Task SaveMethod()
|
||||
|
@ -67,7 +70,7 @@
|
|||
var options = new JsonSerializerOptions { WriteIndented = true };
|
||||
File.WriteAllText(filePath, jsonNode.ToString(Newtonsoft.Json.Formatting.Indented));
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"保存成功", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.LoginMode, Duration = 4000 }
|
||||
);
|
||||
logger.Info($"修改用户登录设置");
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="开始时间" Component="Start" />
|
||||
<RadzenLabel Text="@myText.StartDate" 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="结束时间" Component="End" />
|
||||
<RadzenLabel Text="@myText.EndDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenButton Icon="download" Text="库存导出" Variant="Variant.Outlined" Click="StockExport" />
|
||||
<RadzenButton Icon="download" Text="专用账册导出" Variant="Variant.Outlined" Click="AccountBookExport" />
|
||||
<RadzenButton Icon="download" Text="@myText.StoreExport" Variant="Variant.Outlined" Click="StockExport" />
|
||||
<RadzenButton Icon="download" Text="@myText.AccountExport" Variant="Variant.Outlined" Click="AccountBookExport" />
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
|
@ -50,24 +50,24 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="操作人" 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">
|
||||
<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">
|
||||
<Template Context="mr">
|
||||
@mr.EffDate?.ToString("yyyy-MM-dd")
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn title="库位" Property="Location"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn title="@myText.StorageLocation" Property="Location"></RadzenDataGridColumn>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</div>
|
||||
|
@ -79,6 +79,8 @@
|
|||
@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;
|
||||
|
@ -96,6 +98,11 @@
|
|||
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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="处方号" Component="OrderNo" />
|
||||
<RadzenLabel Text="@myText.OrderNo" 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="处方时间" Component="OrderDate" />
|
||||
<RadzenLabel Text="@myText.OrderDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -42,20 +42,20 @@
|
|||
RowSelect="@((OrderInfo oi) => { OrderSelected(oi); })"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="处方号" 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>
|
||||
<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>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</div>
|
||||
|
@ -65,6 +65,8 @@
|
|||
@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;
|
||||
|
@ -111,6 +113,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
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="查询">
|
||||
<RadzenFieldset Text=@myText.Search>
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="处方号" Component="OrderNo" />
|
||||
<RadzenLabel Text=@myText.OrderNo 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="处方时间" Component="OrderDate" />
|
||||
<RadzenLabel Text=@myText.OrderDate 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -42,20 +42,20 @@
|
|||
RowSelect="@((OrderInfo oi) => { OrderSelected(oi); })"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="处方号" 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>
|
||||
<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>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</div>
|
||||
|
@ -65,6 +65,7 @@
|
|||
@code {
|
||||
@inject IOrderInfoDao orderInfoDao;
|
||||
@inject DialogService dialogService;
|
||||
@inject Toolbelt.Blazor.I18nText.I18nText I18nText;
|
||||
RadzenDataGrid<OrderInfo> grid;
|
||||
bool isLoading;
|
||||
int count;
|
||||
|
@ -72,6 +73,13 @@
|
|||
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);
|
||||
|
@ -101,7 +109,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="刷新" ButtonStyle="ButtonStyle.Warning" />
|
||||
<RadzenButton Size="ButtonSize.Large" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertPlanRow" Text="新增套餐" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -25,26 +25,26 @@
|
|||
@bind-Value="@SelectedPlan"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="套餐名称" Property="Name">
|
||||
<RadzenDataGridColumn Frozen="true" Title="@myText.MenuName" Property="Name">
|
||||
<EditTemplate Context="planInfo">
|
||||
<RadzenTextBox Name="Name" @bind-Value="planInfo.Name" Style="width:100%; display: block;" />
|
||||
<RadzenRequiredValidator Text="请填写套餐名称" Component="Name" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.InputMenuName" Component="Name" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="200px" Title="套餐描述" Property="Description">
|
||||
<RadzenDataGridColumn Width="200px" Title="@myText.MenuDescrip" Property="Description">
|
||||
<EditTemplate Context="planInfo">
|
||||
<RadzenTextBox Name="Description" @bind-Value="planInfo.Description" Style="width:100%;display:block;" />
|
||||
<RadzenRequiredValidator Text="请填写套餐描述" Component="Description" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.InputMenuDesc" Component="Description" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
|
||||
<RadzenDataGridColumn Context="planInfo" Title="操作" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" Width="8rem">
|
||||
<RadzenDataGridColumn Context="planInfo" Title="@myText.Operate" 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="无数据"
|
||||
<RadzenDataGrid @ref="PlanDetailsGrid" EmptyText="@myText.NoDate"
|
||||
Data="@(SelectedPlan?.FirstOrDefault()?._PlanDetails)"
|
||||
RowUpdate="@((PlanDetails pd) => { OnUpdateRow(pd); })"
|
||||
RowCreate="@((PlanDetails pd) => { OnCreateRow(pd); })"
|
||||
|
@ -76,12 +76,12 @@
|
|||
</RadzenRow>
|
||||
</HeaderTemplate> *@
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Title="序号" Property="index" Width="5rem">
|
||||
<RadzenDataGridColumn Title="@myText.Number" Property="index" Width="5rem">
|
||||
<Template Context="data">
|
||||
@(SelectedPlan.FirstOrDefault()?._PlanDetails.IndexOf(data) + 1)
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="药品" Property="_DrugInfo.DrugName" Width="25rem">
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" 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="药品编码" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="名称" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugSpec" Title="规格" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugId" Title="@myText.DrugCode" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="@myText.DrugName" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugSpec" Title="@myText.Spec" />
|
||||
</Columns>
|
||||
</RadzenDropDownDataGrid>
|
||||
<RadzenCustomValidator Component="drugName" Validator="@(() => (planDetails._DrugInfo.DrugId != null))" Text="请选择药品" Popup=true />
|
||||
<RadzenCustomValidator Component="drugName" Validator="@(() => ValidatroDrug(planDetails))" Text="套餐中已包含该药品" Popup=true />
|
||||
<RadzenCustomValidator Component="drugName" Validator="@(() => (planDetails._DrugInfo.DrugId != null))" Text="@myText.SelectDrug" Popup=true />
|
||||
<RadzenCustomValidator Component="drugName" Validator="@(() => ValidatroDrug(planDetails))" Text="@myText.MenuHasDrug" Popup=true />
|
||||
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="基数" Property="BaseQuantity" Width="5rem">
|
||||
<RadzenDataGridColumn Title="@myText.BaseQuantity" 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="操作" Filterable="false" Sortable="false" TextAlign="TextAlign.Left" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" Width="8rem">
|
||||
<RadzenDataGridColumn Title="@myText.Operate" 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="新增药品" />
|
||||
<RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertRow" Text="@myText.AddDrug" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -137,7 +137,9 @@
|
|||
@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;
|
||||
|
@ -148,6 +150,12 @@
|
|||
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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="开始时间" Component="Start" />
|
||||
<RadzenLabel Text="@myText.StartDate" 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="结束时间" Component="End" />
|
||||
<RadzenLabel Text="@myText.EndDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -46,7 +46,7 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
Data="@_forecasts"
|
||||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
AllowRowSelectOnRowClick="true"
|
||||
|
@ -58,9 +58,9 @@
|
|||
</RadzenRow>
|
||||
</HeaderTemplate>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Frozen="true" Title="操作人" Property="OperatorUser.NickName"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="170px" Title="操作时间" Property="OperationTime"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="200px" Title="药品名称" Property="Drug.DrugName">
|
||||
<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">
|
||||
<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="借出数量" Property="Quantity"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="已还药品" Property="ReturnQuantity1"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="已还空瓶" Property="ReturnQuantity2"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="本次归还" Property="CurrentReturnQuantity">
|
||||
<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">
|
||||
<EditTemplate Context="mr">
|
||||
<RadzenNumeric Min="0" Style="display: block" Max="@(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2)" Name="Quantity" @bind-Value=@mr.CurrentReturnQuantity />
|
||||
</EditTemplate>
|
||||
|
@ -89,6 +89,8 @@
|
|||
@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;
|
||||
|
@ -97,7 +99,11 @@
|
|||
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="无数据" AllowAlternatingRows="false">
|
||||
EmptyText="@myText.NoDate" AllowAlternatingRows="false">
|
||||
|
||||
<Template Context="di">
|
||||
<RadzenDataGrid Data="@di.ChannelStocks" EmptyText="无数据" @ref="di.Grid"
|
||||
<RadzenDataGrid Data="@di.ChannelStocks" EmptyText="@myText.NoDate" @ref="di.Grid"
|
||||
CellClick="@((DataGridCellMouseEventArgs<ChannelStock> args) => OnCellClick(args, di.Grid))">
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Title="库位" Property="DrawerNo">
|
||||
<RadzenDataGridColumn Title="@myText.StorageLocation" Property="DrawerNo">
|
||||
<Template Context="s">
|
||||
@s.DrawerNo - @s.ColNo
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="库存" Property="Quantity"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.Inventory" Property="Quantity"></RadzenDataGridColumn>
|
||||
@* <RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="效期" Property="EffDate"></RadzenDataGridColumn> *@
|
||||
<RadzenDataGridColumn Title="入库数量" Property="ReturnQuantity">
|
||||
<RadzenDataGridColumn Title="@myText.Quantity" 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="请填写正确的添加数量" Component="Quantity" />
|
||||
<RadzenCustomValidator Validator="@(() => di.ChannelStocks.Sum(cs2 => cs2.ReturnQuantity) == di.Quantity)" Component="Quantity" Text="入库总量应等于请领数量" Style="position: absolute;z-index: 9999;" />
|
||||
<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;" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
</Columns>
|
||||
</RadzenDataGrid>
|
||||
</Template>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Property="Drug.DrugName" Title="药品" />
|
||||
<RadzenDataGridColumn Property="Drug.DrugSpec" Title="规格" />
|
||||
<RadzenDataGridColumn Property="ManuNo" Title="批次">
|
||||
<RadzenDataGridColumn Property="Drug.DrugName" Title="@myText.DrugName" />
|
||||
<RadzenDataGridColumn Property="Drug.DrugSpec" Title="@myText.Spec" />
|
||||
<RadzenDataGridColumn Property="ManuNo" Title="@myText.Batch">
|
||||
<Template Context="ov">
|
||||
@ov.data.First().ManuNo
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Property="EffDate" Title="效期">
|
||||
<RadzenDataGridColumn Property="EffDate" Title="@myText.Expiration">
|
||||
<Template Context="ov">
|
||||
@ov.data.First().EffDate
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Property="Quantity" Title="请领数量" />
|
||||
<RadzenDataGridColumn Property="StockQuantity" Title="总库存" />
|
||||
<RadzenDataGridColumn Property="Quantity" Title="@myText.Quantity" />
|
||||
<RadzenDataGridColumn Property="StockQuantity" Title="@myText.TotalStock" />
|
||||
</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="加药中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="加药" Style="width: 120px" />
|
||||
<RadzenButton Click="@StartAdd" Disabled="!CanTakeDrug" IsBusy="status > 0" BusyText="@myText.Adding" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="@myText.Add" Style="width: 120px" />
|
||||
}
|
||||
@if (status == 2)
|
||||
{
|
||||
<RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="完成" Style="width: 120px" />
|
||||
<RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="@myText.Complete" Style="width: 120px" />
|
||||
}
|
||||
@if (status < 2)
|
||||
{
|
||||
<RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
|
||||
<RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="@myText.Cancel" Style="width: 120px" />
|
||||
}
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
|
@ -79,6 +79,9 @@
|
|||
@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;
|
||||
|
||||
|
@ -96,7 +99,7 @@
|
|||
if(data.Any(it => it.Quantity != it.ChannelStocks.Sum(cs => cs.ReturnQuantity)))
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请填写正确的入库数量!", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = myText.InputCorrectInNum, Duration = 4000 }
|
||||
);
|
||||
|
||||
} else
|
||||
|
@ -125,7 +128,7 @@
|
|||
if (channels.Count == 0)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请填写正确的入库数量!", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = myText.InputCorrectInNum, Duration = 4000 }
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -165,16 +168,16 @@
|
|||
if (b)
|
||||
{
|
||||
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
PortUtil.SpeakAsync($"{drawerNo}号抽屉已经打开,请,加药");
|
||||
PortUtil.SpeakAsync($"{drawerNo}{myText.PleaseAdd}");
|
||||
options._data = 1;
|
||||
next();
|
||||
}
|
||||
else
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"抽屉【{drawerNo}】打开失败,请检测硬件", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"【{drawerNo}】{myText.DrawerOpenFailed}", Duration = 4000 }
|
||||
);
|
||||
logger.Info($"抽屉打开失败");
|
||||
logger.Info(myText.DrawerOpenFailed);
|
||||
PortUtil.AllLightOff();
|
||||
RestData();
|
||||
stop();
|
||||
|
@ -196,7 +199,7 @@
|
|||
if (index == drawerNos.Count - 1)
|
||||
{
|
||||
PortUtil.speechSynthesizer.SpeakAsyncCancelAll();
|
||||
PortUtil.SpeakAsync($"加药完成,请,点击完成按钮进行确认");
|
||||
PortUtil.SpeakAsync(myText.AddSuccessful);
|
||||
this.status = 2;
|
||||
stop();
|
||||
}
|
||||
|
@ -235,7 +238,7 @@
|
|||
RestData();
|
||||
logger.Info($"调拨加药发生错误,{e.Message}");
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"发生错误,{e.Message}", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"发生错误,{e.Message}", Duration = 4000 }
|
||||
);
|
||||
if (setting.Value.single.Contains(drawerNo))
|
||||
{
|
||||
|
@ -258,7 +261,7 @@
|
|||
var b = await machineRecordDao.ReturnDrugFinish(data);
|
||||
if (!b)
|
||||
{
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"数据保存失败", Duration = 4000 });
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = myText.DataSaveFailed, Duration = 4000 });
|
||||
logger.Error($"抽屉加药保存数据库失败,数据{JsonConvert.SerializeObject(data)}");
|
||||
// 关闭弹窗
|
||||
dialogService.Close(false);
|
||||
|
@ -276,6 +279,7 @@
|
|||
|
||||
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="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
Data="@_forecasts"
|
||||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
AllowRowSelectOnRowClick="true"
|
||||
|
@ -56,16 +56,16 @@
|
|||
</RadzenRow>
|
||||
</HeaderTemplate> *@
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Frozen="true" Title="库位" Property="Location"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="200px" Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Frozen="true" Title="@myText.StorageLocation" Property="Location"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="200px" Title="@myText.DrugName" 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="厂家" Property="Drug.Manufactory"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="库存" Property="Quantity"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="可归还数量" Property="CanReturnQuantity"></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="CurrentReturnQuantity">
|
||||
<EditTemplate Context="mr">
|
||||
<RadzenNumeric Min="0" Style="display: block" Max="@(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2)" Name="Quantity" @bind-Value=@mr.CurrentReturnQuantity />
|
||||
|
@ -81,6 +81,8 @@
|
|||
@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;
|
||||
|
@ -109,7 +111,7 @@
|
|||
if (string.IsNullOrEmpty(args.Data.DrugId))
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Style = "position: absolute; inset-inline-start: -1000px;", Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"该库位无药品,请先绑药!", Duration = 4000 }
|
||||
new NotificationMessage { Style = "position: absolute; inset-inline-start: -1000px;", Severity = NotificationSeverity.Error, Summary = myText.Tips, Detail = $"该库位无药品,请先绑药!", Duration = 4000 }
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -117,7 +119,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 }
|
||||
);
|
||||
|
@ -126,4 +128,9 @@
|
|||
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="药品信息">
|
||||
<RadzenFieldset Text="@myText.DrugInfo">
|
||||
<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">
|
||||
药品:@drugName
|
||||
@myText.DrugName:@drugName
|
||||
</RadzenStack>
|
||||
<RadzenStack class="rz-p-1 rz-text-align-center" Style="width:500px">
|
||||
规格:@drugSpec
|
||||
@myText.Spec:@drugSpec
|
||||
</RadzenStack>
|
||||
<RadzenStack class="rz-p-1 rz-text-align-center" Style="width:500px">
|
||||
厂家:@drugManufactory
|
||||
@myText.Factory:@drugManufactory
|
||||
</RadzenStack>
|
||||
<RadzenStack class="rz-p-1 rz-text-align-center" Style="width:500px">
|
||||
可还空瓶数:@emptyQuantity
|
||||
@myText.CanReturnQuantity:@emptyQuantity
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
|
@ -27,7 +27,7 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="操作人" Property="OperatorUser.NickName"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Width="170px" Title="操作时间" Property="OperationTime"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="批次" Property="ManuNo">
|
||||
<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">
|
||||
<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="数量" Property="Quantity"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="已还药品" Property="ReturnQuantity1"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="已还空瓶" Property="ReturnQuantity2"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="本次归还" Property="CurrentReturnQuantity">
|
||||
<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">
|
||||
<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="还空瓶中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="归还" Style="width: 120px" />
|
||||
<RadzenButton Click="@StartAdd" IsBusy="status > 0" BusyText="@myText.Returning" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Text="@myText.Return" Style="width: 120px" />
|
||||
}
|
||||
@if (status == 2)
|
||||
{
|
||||
<RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="完成" Style="width: 120px" />
|
||||
<RadzenButton Click="@AddFinish" ButtonStyle="ButtonStyle.Success" Variant="Variant.Flat" Text="@myText.Complete" Style="width: 120px" />
|
||||
}
|
||||
@if (status < 2)
|
||||
{
|
||||
<RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="取消" Style="width: 120px" />
|
||||
<RadzenButton Click="@((args) => CancelOpera())" Variant="Variant.Flat" Text="@myText.Cancel" Style="width: 120px" />
|
||||
}
|
||||
</RadzenStack>
|
||||
@code
|
||||
|
@ -84,6 +84,8 @@
|
|||
@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; }
|
||||
|
@ -305,4 +307,9 @@
|
|||
//重置状态
|
||||
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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="开始时间" Component="Start" />
|
||||
<RadzenLabel Text="@myText.StartDate" 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="结束时间" Component="End" />
|
||||
<RadzenLabel Text="@myText.EndDate" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
|
@ -41,19 +41,19 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="操作人" 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">
|
||||
<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">
|
||||
<Template Context="mr">
|
||||
@mr.EffDate?.ToString("yyyy-MM-dd")
|
||||
</Template>
|
||||
|
@ -67,6 +67,8 @@
|
|||
@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;
|
||||
|
@ -94,7 +96,11 @@
|
|||
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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="角色名称" Component="RoleName" />
|
||||
<RadzenLabel Text="@myText.RoleName" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
<RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@(() => InsertRow())" Disabled="@(rolesToInsert.Count() > 0)" Text="新增" />
|
||||
<RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@(() => InsertRow())" Disabled="@(rolesToInsert.Count() > 0)" Text="@myText.Add" />
|
||||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
</form>
|
||||
|
@ -35,7 +35,7 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="角色名称" Property="RoleName">
|
||||
<RadzenDataGridColumn Width="120px" Title="@myText.RoleName" 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="请填写角色名称" Component="RoleName" Popup="true" />
|
||||
<RadzenRequiredValidator Style="position: absolute;z-index: 9999;" Text="@myText.InputRoleName" Component="RoleName" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="权限" Property="permissions">
|
||||
<RadzenDataGridColumn Title="@myText.Role" 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="请选择权限" Component="Permissions" Popup="true" />
|
||||
<RadzenRequiredValidator Style="position: absolute;z-index: 9999;" Text="@myText.SelectRole" Component="Permissions" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
|
||||
|
@ -97,6 +97,8 @@
|
|||
@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;
|
||||
|
@ -110,6 +112,7 @@
|
|||
|
||||
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>();
|
||||
|
@ -197,8 +200,8 @@
|
|||
{
|
||||
//弹出确认提示框
|
||||
var b = await dialogService.OpenAsync<ConfirmDialog>(
|
||||
$"删除确认",
|
||||
new Dictionary<string, object>() { { "confirmInfo", "确认要删除角色:" + role.RoleName+"吗?" } },
|
||||
myText.ConfirmDelete,
|
||||
new Dictionary<string, object>() { { "confirmInfo", $"{myText.ConfirmDeleteRole}:" + 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="手写处方">
|
||||
<RadzenFieldset Text="@myText.WriteOrder">
|
||||
<RadzenRow Gap="1rem">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="处方号" Component="OrderNo" />
|
||||
<RadzenLabel Text="@myText.OrderNo" Component="OrderNo" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="8">
|
||||
<RadzenTextBox @bind-Value="orderInfo.OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
|
||||
<RadzenRequiredValidator Text="请输入处方号" Component="OrderNo" />
|
||||
<RadzenRequiredValidator Text="@myText.InputOrderTips" Component="OrderNo" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="处方时间" Component="OrderDate" />
|
||||
<RadzenLabel Text="@myText.OrderDate" 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="请输入处方时间" Component="OrderDate" />
|
||||
<RadzenRequiredValidator Text="@myText.InputOrderDate" Component="OrderDate" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="患者姓名" Component="PatientName" />
|
||||
<RadzenLabel Text="@myText.PatientName" Component="PatientName" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="8">
|
||||
<RadzenTextBox @bind-Value="orderInfo.PatientName" Style="width: 100%;" Name="PatientName"></RadzenTextBox>
|
||||
<RadzenRequiredValidator Text="请输入患者姓名" Component="PatientName" />
|
||||
<RadzenRequiredValidator Text="@myText.InputPatientName" Component="PatientName" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="2">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="性别" Component="Sex" />
|
||||
<RadzenLabel Text="@myText.Sex" Component="Sex" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="8">
|
||||
<RadzenTextBox @bind-Value="orderInfo.Sex" Style="width: 100%;" Name="Sex"></RadzenTextBox>
|
||||
<RadzenRequiredValidator Text="请输入患者性别" Component="Sex" />
|
||||
<RadzenRequiredValidator Text="@myText.InputPatientSex" Component="Sex" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="2">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="年龄" Component="Age" />
|
||||
<RadzenLabel Text="@myText.Age" Component="Age" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="8">
|
||||
<RadzenTextBox @bind-Value="orderInfo.Age" Style="width: 100%;" Name="Age"></RadzenTextBox>
|
||||
<RadzenRequiredValidator Text="请输入患者年龄" Component="Age" />
|
||||
<RadzenRequiredValidator Text="@myText.InputPatientAge" Component="Age" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="处方医生" Component="DoctorName" />
|
||||
<RadzenLabel Text="@myText.OrderDoctor" Component="DoctorName" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="8">
|
||||
<RadzenTextBox @bind-Value="orderInfo.DoctorName" Style="width: 100%;" Name="DoctorName"></RadzenTextBox>
|
||||
<RadzenRequiredValidator Text="请输入处方医生" Component="DoctorName" />
|
||||
<RadzenRequiredValidator Text="@myText.Doctor" Component="DoctorName" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="科室" Component="DeptName" />
|
||||
<RadzenLabel Text="@myText.DeptName" Component="DeptName" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="8">
|
||||
<RadzenTextBox @bind-Value="orderInfo.DeptName" Style="width: 100%;" Name="DeptName"></RadzenTextBox>
|
||||
<RadzenRequiredValidator Text="请输入科室" Component="DeptName" />
|
||||
<RadzenRequiredValidator Text="@myText.InputDept" Component="DeptName" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="6">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="2">
|
||||
<RadzenLabel Text="诊断" Component="Disease" />
|
||||
<RadzenLabel Text="@myText.Diagnose" Component="Disease" />
|
||||
</RadzenColumn>
|
||||
<RadzenColumn Size="10">
|
||||
<RadzenTextBox @bind-Value="orderInfo.Disease" Style="width: 100%;" Name="Disease"></RadzenTextBox>
|
||||
<RadzenRequiredValidator Text="请输入诊断" Component="Disease" />
|
||||
<RadzenRequiredValidator Text="@myText.InputDisease" 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="确定" />
|
||||
<RadzenButton Size="ButtonSize.Large" Icon="add_circle_outline" ButtonStyle="ButtonStyle.Success" Click="@InsertRow" Disabled="@(detailsToInsert.Count() > 0)" Text="添加" />
|
||||
<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" />
|
||||
</RadzenStack>
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
|
@ -109,33 +109,32 @@
|
|||
<div class="col-12 mb-4">
|
||||
|
||||
<RadzenDataGrid @ref="grid"
|
||||
EmptyText="请添加手写处方详情"
|
||||
EmptyText="@myText.AddNewOrder"
|
||||
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="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" 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="药品编码" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="名称" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugSpec" Title="规格" />
|
||||
<RadzenDropDownDataGridColumn Property="StockQuantity" Title="库存" Frozen="true" FrozenPosition="FrozenColumnPosition.Right" />
|
||||
<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" />
|
||||
</Columns>
|
||||
</RadzenDropDownDataGrid>
|
||||
<RadzenCustomValidator Style="position: absolute;z-index: 9999;" Component="Drug" Validator="@(() => !String.IsNullOrEmpty(od.Drug.DrugId ))" Text="请选择药品" />
|
||||
<RadzenCustomValidator Component="Drug" Validator="@(() => ValidateDrug(od.Drug))" Text="已经选择的药品不能再次选择" />
|
||||
<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" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="规格" Property="Drug.DrugSpec"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="数量" Property="Quantity">
|
||||
<RadzenDataGridColumn Title="@myText.Spec" Property="Drug.DrugSpec"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.Quantity" 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="请填写正确的取出数量" Component="Quantity" />
|
||||
<RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="1" Max="@od.Drug.StockQuantity" Text="@myText.InputTips" Component="Quantity" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Context="detail" Filterable="false" Sortable="false" TextAlign="TextAlign.Right" Frozen="true" FrozenPosition="FrozenColumnPosition.Right">
|
||||
|
@ -165,6 +164,8 @@
|
|||
@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();
|
||||
|
||||
|
@ -180,7 +181,7 @@
|
|||
};
|
||||
|
||||
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
detailsToInsert.Clear();
|
||||
|
@ -251,21 +252,21 @@
|
|||
if (orderDetails.Count == 0)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请添加用药详情", Duration = 3000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = myText.Tips, 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 = "提示", Detail = $"取药完成", Duration = 3000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = $"取药完成", Duration = 3000 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -282,6 +283,8 @@
|
|||
|
||||
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>物理隔板</b>
|
||||
<b>@myText.DrawerType1</b>
|
||||
break;
|
||||
case 2:
|
||||
<b>单支计数</b>
|
||||
<b>@myText.DrawerType2</b>
|
||||
break;
|
||||
case 3:
|
||||
<b>管控药盒</b>
|
||||
<b>@myText.DrawerType7</b>
|
||||
break;
|
||||
case 4:
|
||||
<b>储物箱</b>
|
||||
<b>@myText.DrawerType8</b>
|
||||
break;
|
||||
case 5:
|
||||
<b>智能显示</b>
|
||||
<b>@myText.DrawerType4</b>
|
||||
break;
|
||||
case 6:
|
||||
<b>称重计数</b>
|
||||
<b>@myText.DrawerType9</b>
|
||||
break;
|
||||
case 63:
|
||||
<b>称重计数药盒</b>
|
||||
<b>@myText.DrawerType10</b>
|
||||
break;
|
||||
case 653:
|
||||
<b>称重计数药盒智能显示</b>
|
||||
<b>@myText.DrawerType3</b>
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -92,7 +92,7 @@
|
|||
switch (channel.BoardType)
|
||||
{
|
||||
case 1:
|
||||
<b>内置回收</b>
|
||||
<b>@myText.DrawerType5</b>
|
||||
break;
|
||||
case 2:
|
||||
<b>内置计数回收</b>
|
||||
|
@ -122,7 +122,7 @@
|
|||
switch (channel.BoardType)
|
||||
{
|
||||
case 1:
|
||||
<b>外置回收</b>
|
||||
<b>@myText.DrawerType6</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="绑定/解绑" />
|
||||
<RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@(() => EditChannel(channel))" Text="@myText.BindUnBind" />
|
||||
}
|
||||
</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">药品</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">@myText.DrugName</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="药品编码" Sortable="false" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="名称" Sortable="false" />
|
||||
<RadzenDropDownDataGridColumn Property="DrugSpec" Title="规格" Sortable="false" />
|
||||
<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" />
|
||||
</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">批次</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">@myText.Batch</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="批次" Sortable="false" />
|
||||
<RadzenDropDownDataGridColumn Property="EffDate" Title="效期" Sortable="false">
|
||||
<RadzenDropDownDataGridColumn Property="ManuNo" Title="@myText.Batch" Sortable="false" />
|
||||
<RadzenDropDownDataGridColumn Property="EffDate" Title="@myText.Expiration" 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">库存</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">@myText.Inventory</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Body1"><b>@(channel.Quantity)</b></RadzenText>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
|
@ -193,6 +193,8 @@
|
|||
@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;
|
||||
|
@ -209,6 +211,7 @@
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
await base.OnInitializedAsync();
|
||||
|
||||
//drugInfos = await drugInfoDao.GetAllDrug();
|
||||
|
@ -247,7 +250,7 @@
|
|||
if(b)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"解除绑定成功", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.BindSuccess, Duration = 4000 }
|
||||
);
|
||||
await reloadGrid();
|
||||
}
|
||||
|
@ -260,7 +263,7 @@
|
|||
if (b)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"绑定成功", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.BindSuccess, Duration = 4000 }
|
||||
);
|
||||
await reloadGrid();
|
||||
}
|
||||
|
@ -274,7 +277,7 @@
|
|||
if (b)
|
||||
{
|
||||
_message.Notify(
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"绑定成功", Duration = 4000 }
|
||||
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = myText.BindSuccess, Duration = 4000 }
|
||||
);
|
||||
await reloadGrid();
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
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="盘点中。。。" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="盘点" Click="@OpenDrawer" />
|
||||
<RadzenButton IsBusy="@(status > 0)" BusyText="@myText.Checking" ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Check" Click="@OpenDrawer" />
|
||||
}
|
||||
@if (status == 3)
|
||||
{
|
||||
<RadzenButton ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="完成" Click="@CheckFinish" />
|
||||
<RadzenButton ButtonStyle="ButtonStyle.Warning" Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Complete" Click="@CheckFinish" />
|
||||
}
|
||||
@if (status > 0 && status <= 3)
|
||||
{
|
||||
<RadzenButton Variant="Variant.Flat" Shade="Shade.Light" Text="取消" Click="@Cancel" Style="width: 120px" />
|
||||
<RadzenButton Variant="Variant.Flat" Shade="Shade.Light" Text="@myText.Cancel" Click="@Cancel" Style="width: 120px" />
|
||||
}
|
||||
</RadzenRow>
|
||||
</HeaderTemplate>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="药品名称" Property="Drug.DrugName">
|
||||
<RadzenDataGridColumn Width="70px" Title="@myText.StorageLocation" Property="ColNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.DrugName" 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="批次" Property="ManuNo">
|
||||
<RadzenDataGridColumn Title="@myText.Batch" 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="请选择批次" Component="ManuNo" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.SelectBatch" Component="ManuNo" Popup="true" />
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -88,12 +88,12 @@
|
|||
}
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="库存" Property="Quantity">
|
||||
<RadzenDataGridColumn Title="@myText.Inventory" 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="盘点数量" Property="CheckQuantity">
|
||||
<RadzenDataGridColumn MinWidth="120px" Title="@myText.CheckQuantity" 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="请填写正确的取出数量" Component="CheckQuantity" />
|
||||
<RadzenNumericRangeValidator Style="position: absolute;z-index: 9999;" Min="1" Max="100" Text="@myText.InputTips" Component="CheckQuantity" />
|
||||
</RadzenNumeric>
|
||||
}
|
||||
</EditTemplate>
|
||||
|
@ -117,6 +117,8 @@
|
|||
@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;
|
||||
|
@ -127,6 +129,11 @@
|
|||
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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="开始时间" Component="Start" />
|
||||
<RadzenLabel Text="@myText.StartDate" 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="结束时间" Component="End" />
|
||||
<RadzenLabel Text="@myText.EndDate" 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="药品名称/拼音码/编码" Component="drug" />
|
||||
<RadzenLabel Text="@myText.DrugSearch" 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="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
<RadzenRow JustifyContent="JustifyContent.End" AlignItems="AlignItems.Center">
|
||||
<RadzenButton Icon="download" Text="库存导出" Variant="Variant.Outlined" Click="StockExport" />
|
||||
<RadzenButton Icon="download" Text="专用账册导出" Variant="Variant.Outlined" Click="AccountBookExport" />
|
||||
<RadzenButton Icon="download" Text="@myText.StoreExport" Variant="Variant.Outlined" Click="StockExport" />
|
||||
<RadzenButton Icon="download" Text="@myText.AccountExport" Variant="Variant.Outlined" Click="AccountBookExport" />
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
|
@ -89,7 +89,7 @@
|
|||
<RadzenDataGrid @ref="grid"
|
||||
IsLoading="@isLoading"
|
||||
RowRender="@RowRender"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.NoDate"
|
||||
Data="@_forecasts"
|
||||
AllowColumnResize="true" AllowAlternatingRows="false"
|
||||
SelectionMode="DataGridSelectionMode.Single"
|
||||
|
@ -101,17 +101,17 @@
|
|||
</RadzenRow>
|
||||
</HeaderTemplate> *@
|
||||
<Template Context="di">
|
||||
<RadzenDataGrid Data="@di.Stocks" EmptyText="无数据">
|
||||
<RadzenDataGrid Data="@di.Stocks" EmptyText="@myText.NoDate">
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Title="库位" Property="DrawerNo">
|
||||
<RadzenDataGridColumn Title="@myText.StorageLocation" Property="DrawerNo">
|
||||
<Template Context="s">
|
||||
@s.DrawerNo - @s.ColNo
|
||||
</Template>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="数量" Property="Quantity">
|
||||
<RadzenDataGridColumn Title="@myText.Quantity" Property="Quantity">
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="效期" Property="EffDate">
|
||||
<RadzenDataGridColumn Title="@myText.Batch" Property="ManuNo"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.Expiration" Property="EffDate">
|
||||
<Template Context="s">
|
||||
@{
|
||||
DateTime dateTime;
|
||||
|
@ -120,7 +120,7 @@
|
|||
{
|
||||
@s.EffDate
|
||||
|
||||
<p class="shaky-text">近效期药品!</p>
|
||||
<p class="shaky-text">@myText.AlertExpir£¡</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -133,15 +133,15 @@
|
|||
</RadzenDataGrid>
|
||||
</Template>
|
||||
<Columns>
|
||||
<RadzenDataGridColumn Frozen="true" Width="200px" Title="药品名称" Property="DrugName"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="规格" Property="DrugSpec"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="总库存" Property="StockQuantity">
|
||||
<RadzenDataGridColumn Frozen="true" Width="200px" Title="@myText.DrugName" Property="DrugName"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.Spec" Property="DrugSpec"></RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="@myText.TotalStock" Property="StockQuantity">
|
||||
<Template Context="s">
|
||||
@if (s.StockQuantity < 10)
|
||||
{
|
||||
@s.StockQuantity
|
||||
|
||||
<p class="shaky-text">库存预警!</p>
|
||||
<p class="shaky-text">@myText.AlertStock£¡</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -158,6 +158,8 @@
|
|||
@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;
|
||||
|
@ -171,6 +173,7 @@
|
|||
|
||||
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="查询">
|
||||
<RadzenFieldset Text="@myText.Search">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
|
||||
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
||||
<RadzenRow AlignItems="AlignItems.Center">
|
||||
<RadzenColumn Size="4">
|
||||
<RadzenLabel Text="用户名" Component="nickname" />
|
||||
<RadzenLabel Text="@myText.Account" 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="查询" />
|
||||
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="重置" ButtonStyle="ButtonStyle.Warning" />
|
||||
<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" />
|
||||
</RadzenColumn>
|
||||
</RadzenRow>
|
||||
</RadzenStack>
|
||||
<RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertRow" Disabled="@(usersToInsert.Count() > 0)" Text="新增" />
|
||||
<RadzenButton Size="ButtonSize.Medium" ButtonStyle="ButtonStyle.Success" Icon="add_circle_outline" Click="@InsertRow" Disabled="@(usersToInsert.Count() > 0)" Text="@myText.Add" />
|
||||
</RadzenStack>
|
||||
</RadzenFieldset>
|
||||
</form>
|
||||
|
@ -38,7 +38,7 @@
|
|||
LoadData="@LoadData"
|
||||
IsLoading="@isLoading"
|
||||
Count="@count"
|
||||
EmptyText="无数据"
|
||||
EmptyText="@myText.Date"
|
||||
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="用户名" Property="NickName">
|
||||
<RadzenDataGridColumn Title="@myText.UserName" Property="NickName">
|
||||
<EditTemplate Context="user">
|
||||
<RadzenTextBox Name="NickName" @bind-Value="user.NickName" Style="width:100%; display: block;" />
|
||||
<RadzenRequiredValidator Text="请填写用户名" Component="NickName" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.loginTips1" Component="NickName" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="账号" Property="Username">
|
||||
<RadzenDataGridColumn Title="@myText.Account" Property="Username">
|
||||
<EditTemplate Context="user">
|
||||
<RadzenTextBox Name="Username" @bind-Value="user.Username" Style="width:100%; display: block;" />
|
||||
<RadzenRequiredValidator Text="请填写账号" Component="Username" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.InputAccount" Component="Username" Popup="true" />
|
||||
</EditTemplate>
|
||||
</RadzenDataGridColumn>
|
||||
<RadzenDataGridColumn Title="权限" Property="role.RoleName">
|
||||
<RadzenDataGridColumn Title="@myText.Role" 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="请选择角色" Component="RoleId" Popup="true" />
|
||||
<RadzenRequiredValidator Text="@myText.InputRole" Component="RoleId" Popup="true" />
|
||||
</EditTemplate>
|
||||
|
||||
</RadzenDataGridColumn>
|
||||
|
@ -110,7 +110,9 @@
|
|||
@inject IUserDao userDao;
|
||||
@inject IRoleDao roleDao;
|
||||
@inject DialogService dialogService;
|
||||
@inject NotificationService _message
|
||||
@inject NotificationService _message;
|
||||
@inject Toolbelt.Blazor.I18nText.I18nText I18nText;
|
||||
private I18nText.local myText = new I18nText.local();
|
||||
RadzenDataGrid<Pojo.User> grid;
|
||||
bool isLoading;
|
||||
int count;
|
||||
|
@ -129,6 +131,7 @@
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
await base.OnInitializedAsync();
|
||||
roles = await roleDao.GetAllRoles();
|
||||
}
|
||||
|
@ -142,7 +145,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 }
|
||||
);
|
||||
|
@ -234,7 +237,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)
|
||||
|
@ -267,7 +270,7 @@
|
|||
// 数据库重置密码
|
||||
userDao.ResetPassword(user.Id);
|
||||
//提示密码已重置,下次登录请使用重置后的密码
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"密码已重置,下次登录请使用重置后的密码", Duration = 4000 });
|
||||
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Success, Summary = myText.Tips, Detail = $"密码已重置,下次登录请使用重置后的密码", Duration = 4000 });
|
||||
}
|
||||
await grid.Reload();
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
using Mysqlx.Crud;
|
||||
using MasaBlazorApp3.Pages;
|
||||
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 = "出库",
|
||||
PremissionName =Home.myText.Outbound,// "出库",
|
||||
PremissionPath = "take"
|
||||
};
|
||||
|
||||
q.AddChild(new Premission()
|
||||
{
|
||||
Id = 11,
|
||||
PremissionName = "处方取药",
|
||||
PremissionName = Home.myText.OrderTake,// "处方取药",
|
||||
PremissionPath = "/take/order"
|
||||
});
|
||||
q.AddChild(new Premission()
|
||||
{
|
||||
Id = 12,
|
||||
PremissionName = "调拨取药",
|
||||
PremissionName = Home.myText.InvoiceTake,// "调拨取药",
|
||||
PremissionPath = "/take/invoice"
|
||||
});
|
||||
q.AddChild(new Premission()
|
||||
{
|
||||
Id = 13,
|
||||
PremissionName = "抽屉取药",
|
||||
PremissionName = Home.myText.DrawerTake,// "抽屉取药",
|
||||
PremissionPath = "/take/drawer"
|
||||
});
|
||||
q.AddChild(new Premission()
|
||||
{
|
||||
Id = 14,
|
||||
PremissionName = "自选取药",
|
||||
PremissionName =Home.myText.SelfTake,// "自选取药",
|
||||
PremissionPath = "/take/self"
|
||||
});
|
||||
q.AddChild(new Premission()
|
||||
{
|
||||
Id = 15,
|
||||
PremissionName = "取药记录",
|
||||
PremissionName = Home.myText.TakeRecord,// "取药记录",
|
||||
PremissionPath = "/take/record/2"
|
||||
});
|
||||
|
||||
Premission j = new Premission
|
||||
{
|
||||
Id = 2,
|
||||
PremissionName = "入库",
|
||||
PremissionName = Home.myText.FillStorage,// "入库",
|
||||
PremissionPath = "add"
|
||||
};
|
||||
j.AddChild(new Premission()
|
||||
{
|
||||
Id = 21,
|
||||
PremissionName = "调拨入库",
|
||||
PremissionName = Home.myText.InvoiceAdd,//"调拨入库",
|
||||
PremissionPath = "/add/invoice"
|
||||
});
|
||||
//j.AddChild(new Premission()
|
||||
|
@ -86,13 +86,13 @@ namespace MasaBlazorApp3.Pojo
|
|||
j.AddChild(new Premission()
|
||||
{
|
||||
Id = 23,
|
||||
PremissionName = "抽屉入库",
|
||||
PremissionName = Home.myText.DrawerAdd,//"抽屉入库",
|
||||
PremissionPath = "/add/drawer"
|
||||
});
|
||||
j.AddChild(new Premission()
|
||||
{
|
||||
Id = 24,
|
||||
PremissionName = "入库记录",
|
||||
PremissionName = Home.myText.AddRecord,//"入库记录",
|
||||
PremissionPath = "/add/record/1"
|
||||
});
|
||||
Premission h = new Premission
|
||||
|
@ -105,120 +105,120 @@ namespace MasaBlazorApp3.Pojo
|
|||
h.AddChild(new Premission()
|
||||
{
|
||||
Id = 31,
|
||||
PremissionName = "归还药品(处方)",
|
||||
PremissionName = Home.myText.ReturnDrugByOrder,//"归还药品(处方)",
|
||||
PremissionPath = "/return/order"
|
||||
});
|
||||
h.AddChild(new Premission()
|
||||
{
|
||||
Id = 32,
|
||||
PremissionName = "归还药品(记录)",
|
||||
PremissionName = Home.myText.ReturnRecord,//"归还药品(记录)",
|
||||
PremissionPath = "/return/byRecord"
|
||||
});
|
||||
h.AddChild(new Premission()
|
||||
{
|
||||
Id = 33,
|
||||
PremissionName = "归还空瓶",
|
||||
PremissionName = Home.myText.ReturnEmpty,//"归还空瓶",
|
||||
PremissionPath = "/return/empty"
|
||||
});
|
||||
h.AddChild(new Premission()
|
||||
{
|
||||
Id = 34,
|
||||
PremissionName = "归还记录(药品)",
|
||||
PremissionName = Home.myText.ReturnRecordDrug,//"归还记录(药品)",
|
||||
PremissionPath = "/return/record1/31"
|
||||
});
|
||||
h.AddChild(new Premission()
|
||||
{
|
||||
Id = 35,
|
||||
PremissionName = "归还记录(空瓶)",
|
||||
PremissionName = Home.myText.ReturnRecordEmpty,// "归还记录(空瓶)",
|
||||
PremissionPath = "/return/record2/32"
|
||||
});
|
||||
|
||||
Premission k = new Premission
|
||||
{
|
||||
Id = 4,
|
||||
PremissionName = "库存管理",
|
||||
PremissionName = Home.myText.StockManage,//"库存管理",
|
||||
PremissionPath = "stock"
|
||||
};
|
||||
k.AddChild(new Premission()
|
||||
{
|
||||
Id = 41,
|
||||
PremissionName = "库存列表",
|
||||
PremissionName = Home.myText.StockList,//"库存列表",
|
||||
PremissionPath = "/stock/list"
|
||||
});
|
||||
k.AddChild(new Premission()
|
||||
{
|
||||
Id = 42,
|
||||
PremissionName = "库位绑定",
|
||||
PremissionName = Home.myText.StockBind,//"库位绑定",
|
||||
PremissionPath = "/stock/binding"
|
||||
});
|
||||
k.AddChild(new Premission()
|
||||
{
|
||||
Id = 43,
|
||||
PremissionName = "库存盘点",
|
||||
PremissionName = Home.myText.StorageCheck,//"库存盘点",
|
||||
//PremissionName = "盘点交接",
|
||||
PremissionPath = "/stock/check"
|
||||
});
|
||||
k.AddChild(new Premission()
|
||||
{
|
||||
Id = 44,
|
||||
PremissionName = "盘点记录",
|
||||
PremissionName =Home.myText.CheckRecord,// "盘点记录",
|
||||
//PremissionPath = "/stock/checkRecord"
|
||||
PremissionPath = "/stock/record/4"
|
||||
});
|
||||
k.AddChild(new Premission()
|
||||
{
|
||||
Id = 45,
|
||||
PremissionName = "药品信息",
|
||||
PremissionName = Home.myText.DrugInfo,//"药品信息",
|
||||
PremissionPath = "/stock/drug"
|
||||
});
|
||||
k.AddChild(new Premission()
|
||||
{
|
||||
Id = 46,
|
||||
PremissionName = "药品标定",
|
||||
PremissionName = Home.myText.DrugSetting,//"药品标定",
|
||||
PremissionPath = "/stock/biaoDing"
|
||||
});
|
||||
k.AddChild(new Premission()
|
||||
{
|
||||
Id = 47,
|
||||
PremissionName = "交接班列表",
|
||||
PremissionName = Home.myText.HandoverList,//"交接班列表",
|
||||
PremissionPath = "/stock/Change"
|
||||
});
|
||||
Premission x = new Premission
|
||||
{
|
||||
Id = 5,
|
||||
PremissionName = "系统管理",
|
||||
PremissionName = Home.myText.SystemManage,//"系统管理",
|
||||
PremissionPath = "manage"
|
||||
};
|
||||
x.AddChild(new Premission()
|
||||
{
|
||||
Id = 51,
|
||||
PremissionName = "用户管理",
|
||||
PremissionName = Home.myText.UserManage,//"用户管理",
|
||||
PremissionPath = "/manage/user"
|
||||
});
|
||||
x.AddChild(new Premission()
|
||||
{
|
||||
Id = 52,
|
||||
PremissionName = "权限管理",
|
||||
PremissionName = Home.myText.RoleManage,//"权限管理",
|
||||
PremissionPath = "/manage/role"
|
||||
});
|
||||
Premission set = new Premission()
|
||||
{
|
||||
Id = 53,
|
||||
PremissionName = "系统设置",
|
||||
PremissionName = Home.myText.SystemSet,//"系统设置",
|
||||
PremissionPath = "/manage/setting"
|
||||
//PremissionPath = "/Box/Plan"
|
||||
};
|
||||
set.AddChild(new Premission()
|
||||
{
|
||||
Id = 531,
|
||||
PremissionName = "登录设置",
|
||||
PremissionName = Home.myText.LoginSet,//"登录设置",
|
||||
PremissionPath = "/manage/setting/login"
|
||||
|
||||
});
|
||||
set.AddChild(new Premission()
|
||||
{
|
||||
Id = 532,
|
||||
PremissionName = "冰箱设置",
|
||||
PremissionName = Home.myText.FridgeSet,//"冰箱设置",
|
||||
PremissionPath = "/manage/setting/Fridge"
|
||||
|
||||
});
|
||||
|
@ -263,45 +263,45 @@ namespace MasaBlazorApp3.Pojo
|
|||
Premission b = new Premission
|
||||
{
|
||||
Id = 6,
|
||||
PremissionName = "药箱管理",
|
||||
PremissionName = Home.myText.BoxManage,//"药箱管理",
|
||||
PremissionPath = "Box"
|
||||
};
|
||||
b.AddChild(new Premission()
|
||||
{
|
||||
Id = 61,
|
||||
PremissionName = "套餐管理",
|
||||
PremissionName = Home.myText.MenuManage,//"套餐管理",
|
||||
PremissionPath = "/Box/Plan"
|
||||
});
|
||||
b.AddChild(new Premission()
|
||||
{
|
||||
Id = 62,
|
||||
PremissionName = "绑定药箱",
|
||||
PremissionName = Home.myText.BindBox,//"绑定药箱",
|
||||
PremissionPath = "/Box/BoxBindings"
|
||||
});
|
||||
b.AddChild(new Premission()
|
||||
{
|
||||
Id = 63,
|
||||
PremissionName = "药箱核对",
|
||||
PremissionName = Home.myText.BoxCheck,//"药箱核对",
|
||||
//PremissionName = "盘点交接",
|
||||
PremissionPath = "/Box/Check"
|
||||
});
|
||||
b.AddChild(new Premission()
|
||||
{
|
||||
Id = 66,
|
||||
PremissionName = "药箱加药",
|
||||
Id = 64,
|
||||
PremissionName = Home.myText.BoxAdd,//"药箱加药",
|
||||
//PremissionPath = "/stock/checkRecord"
|
||||
PremissionPath = "/Box/BoxAdd"
|
||||
});
|
||||
b.AddChild(new Premission()
|
||||
{
|
||||
Id = 65,
|
||||
PremissionName = "药箱入库",
|
||||
PremissionName =Home.myText.BoxAddBox,// "药箱入库",
|
||||
PremissionPath = "/Box/BoxAddBox"
|
||||
});
|
||||
b.AddChild(new Premission()
|
||||
{
|
||||
Id = 66,
|
||||
PremissionName = "药箱库存",
|
||||
PremissionName =Home.myText.BoxStock,// "药箱库存",
|
||||
PremissionPath = "/Box/BoxStock"
|
||||
});
|
||||
list.Add(q);
|
||||
|
|
|
@ -15,6 +15,8 @@ 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,6 +13,7 @@ using LinqToDB.AspNet.Logging;
|
|||
using Radzen;
|
||||
using MasaBlazorApp3.Pojo.Config;
|
||||
using MasaBlazorApp3.Port;
|
||||
using Toolbelt.Blazor.Extensions.DependencyInjection;
|
||||
|
||||
internal class Program
|
||||
{
|
||||
|
@ -48,9 +49,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,13 +77,17 @@
|
|||
|
||||
@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()
|
||||
{
|
||||
menuItems = await settingManuDao.GetMenuItemsAsync();
|
||||
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
||||
string culture = I18nText.GetCurrentLanguageAsync().Result == "en-US" ? "en" : "zh-CN"; ;
|
||||
menuItems = await settingManuDao.GetMenuItemsAsync(culture);
|
||||
}
|
||||
// async void jump2Page(string path)
|
||||
// {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"setting": {
|
||||
"machineId": "DM1",
|
||||
"storage": 1,
|
||||
"loginMode": 1,
|
||||
"loginMode": 2,
|
||||
"opFirst": true,
|
||||
//自动退出登录时间,单位秒(0不自动退出)
|
||||
"autoOutLog": 0,
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"login": "LOGIN",
|
||||
"exit": "EXIT"
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"login": "登录",
|
||||
"exit": "退出"
|
||||
}
|
|
@ -0,0 +1,257 @@
|
|||
{
|
||||
"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"
|
||||
}
|
|
@ -0,0 +1,279 @@
|
|||
{
|
||||
|
||||
"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