67 lines
1.9 KiB
Plaintext
67 lines
1.9 KiB
Plaintext
|
@page "/signature/{user}"
|
|||
|
@layout EmptyLayout
|
|||
|
<RadzenStack AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Center">
|
|||
|
@if (user.Sign != null)
|
|||
|
{
|
|||
|
<RadzenImage Path="@($"data:image/png;base64,{Convert.ToBase64String(user.Sign)}")" Style="width:160px;height:80px;" />
|
|||
|
}
|
|||
|
<div class="border">
|
|||
|
<canvas />
|
|||
|
</div>
|
|||
|
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Center">
|
|||
|
<RadzenButton Text="清除" Click="@(() => handleClear())" />
|
|||
|
<RadzenButton Text="撤销" Click="@(() => handleUndo())" />
|
|||
|
<RadzenButton Text="保存" Click="@(() => handlePreview())" />
|
|||
|
</RadzenStack>
|
|||
|
</RadzenStack>
|
|||
|
|
|||
|
|
|||
|
<div>
|
|||
|
</div>
|
|||
|
|
|||
|
@code {
|
|||
|
@inject IJSRuntime JsRuntime;
|
|||
|
@inject NotificationService _message;
|
|||
|
@inject IUserDao userDao;
|
|||
|
private IJSObjectReference module;
|
|||
|
@inject DialogService dialogService;
|
|||
|
[Parameter] public Pojo.User user { get; set; }
|
|||
|
|
|||
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|||
|
{
|
|||
|
if (firstRender)
|
|||
|
{
|
|||
|
// 导入。路径是相对wwwroot写的,其他位置参考顶部链接
|
|||
|
module = await JsRuntime.InvokeAsync<IJSObjectReference>("import", "./signatureInit.js");
|
|||
|
await module.InvokeVoidAsync("createSignatrue");
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
async Task handleClear()
|
|||
|
{
|
|||
|
await module.InvokeVoidAsync("clear");
|
|||
|
}
|
|||
|
async Task handleUndo()
|
|||
|
{
|
|||
|
await module.InvokeVoidAsync("undo");
|
|||
|
}
|
|||
|
async Task handlePreview()
|
|||
|
{
|
|||
|
bool flag = await module.InvokeAsync<bool>("isEmpty");
|
|||
|
if (flag)
|
|||
|
{
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
string base64 = await module.InvokeAsync<string>("getPNG");
|
|||
|
|
|||
|
await userDao.UpdateSign(user.Id, base64.Split(",")[1]);
|
|||
|
|
|||
|
dialogService.Close(true);
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|