本章介绍系统安装与激活及其自定义功能。
概述
- 框架内置简单的系统安装功能。
- 录入企业编码、名称、系统名称、产品密钥、管理员密码信息完成安装。
- 可自定义高级安装功能,如安装数据库等您产品所需的安装信息。
- 框架默认无需注册产品密钥,若产品需要安装产品密钥进行激活,可进行自定义。
- 若产品密钥到期,所有模块页面自动显示授权激活组件。
自定义安装
若需自定义系统安装功能,则完成如下步骤即可。
1. 构建安装模块
//自定义安装页面类
class MyInstall : Form
{
private InstallInfo? info;
private readonly List<MenuItem> items = new()
{
new MenuItem{Icon="fa fa-home",Name="步骤一"},
new MenuItem{Icon="fa fa-home",Name="步骤二"},
new MenuItem{Icon="fa fa-home",Name="步骤三"}
};
//安装成功后回调
[Parameter] public Action<CheckInfo>? OnInstall { get; set; }
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
//使用内置Steps组件构造分步表单
builder.Component<Steps>()
.Set(c => c.Items, items)
.Set(c => c.OnChanged, OnChanged)
.Set(c => c.OnFinished, OnFinished)
.Set(c => c.Body, BuildStep)
.Build();
}
//建造步骤内容
private void BuildStep(RenderTreeBuilder builder, MenuItem item)
{
builder.Span(item.Name);
}
//每一步保存
private void OnChanged(MenuItem item)
{
//在此异步请求各步骤的后端逻辑
UI.Tips($"保存{item.Name}");
}
//最后一步完成
private void OnFinished()
{
//调用内置保存安装信息方法
SubmitAsync(data => Platform.System.SaveInstallAsync(info), result =>
{
if (result.IsValid)
OnInstall?.Invoke(result.DataAs<CheckInfo>());
});
}
}
2. 重写Index的BuildInstall
public class Index : Known.Razor.Pages.Index
{
protected override void BuildInstall(RenderTreeBuilder builder)
{
//Build自定义Install
builder.Component<MyInstall>().Set(c => c.OnInstall, OnInstall).Build();
}
}
自定义产品ID
- 产品ID默认识别主机的MAC地址。
- 若需自定义ID格式及识别方式,在后端初始化方法中注册自定义方法即可。
public class AppCore
{
public static void Initialize()
{
//注册自定义产品ID
PlatformHelper.ProductId = MyCheck.GetProductId;
...
}
}
自定义产品密钥
- 框架默认不验证产品ID和密钥。
- 若产品需要安装密钥才能使用,在后端初始化方法中注册验证方法即可。
public class AppCore
{
public static void Initialize()
{
//注册安装页面自动刷新产品密钥
PlatformHelper.UpdateKey = MyCheck.UpdateKey;
//注册产品密钥验证
PlatformHelper.CheckSystem = MyCheck.CheckSystem;
//注册用户数限制
PlatformHelper.CheckUser = MyCheck.CheckUser;
...
}
}
效果图
Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。
Gitee: https://gitee.com/known/Known
Github:https://github.com/known/Known
基于C#和Blazor实现的快速开发框架,前后端分离,开箱即用。
跨平台,单页应用,混合桌面应用,Web和桌面共享一处代码。
包含模块、字典、组织、角色、用户、日志、消息、工作流、定时任务等功能。
代码简洁、易扩展,让开发更简单、更快捷!
如果对您有帮助,点击⭐Star⭐关注 ,感谢支持开源!