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);
 | 
						||
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
}
 |