V2.0.9

Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行。本次版本主要是修复一些BUG和表格页面功能增强。

概述

  • 基于C#Blazor的快速开发框架,开箱即用,跨平台。
  • 模块化,单页应用,混合桌面应用,Web和桌面共享一处代码。
  • UI默认支持AntDesign,可扩展其他UI组件库。
  • 包含模块、字典、组织、角色、用户、日志、消息、工作流、定时任务等功能。
  • 低代码、简洁、易扩展,让开发更简单、更快捷!

特性

  • 快速开发:基于Blazor,在线表单设计,自动生成代码
  • 通用权限:内置通用权限模块,只需专注业务功能
  • 国际化:提供完备的国际化多语言解决方案
  • 抽象UI:抽象UI层,易扩展,支持Ant Design
  • 最佳实践:低代码,一人多角色,沟通高效,成本最低
  • C#语言:全量使用C#进行全栈开发

如果对您有帮助,点击Star关注 ,感谢支持开源!

更新日期

  • 2024-08-22

更新内容

  • 修复DataReader转字典报错问题
  • AntBlazor升级至V0.20.2
  • 修复实体类表单确定继续主键重复问题
  • 修复打开新增表单克隆默认实体只读属性报错问题
  • 优化无代码表单界面无法验证和输入字符减少问题
  • 添加支持WebApi项目
  • 表格排序和默认排序方式设置
  • 表格页面添加默认分页大小设置
  • 表格查询条件支持默认值
  • 分页查询支持数据统计
  • 数据字典类别支持修改和删除
  • 修复SqlSugar日期查询条件问题
  • 优化多语言设置

详细内容

1. 内置功能增强

  • 数据字典类别支持修改和删除

2. 表格功能增强

  • 表格排序和默认排序方式设置
  • 表格页面添加默认分页大小设置

  • 表格查询条件支持默认值
//在OnPageInitAsync方法中设置DefaultQuery对象,对象属性为实体类属性
//注意:一定要在await base.OnPageInitAsync();之前设置
protected override async Task OnPageInitAsync()
{
var date = DateTime.Now.ToString("yyyy-MM-dd");
DefaultQuery = new { CreateTime = $"{date}~{date}" }; await base.OnPageInitAsync();
Service = await CreateServiceAsync<ISystemService>(); Table.OnQuery = Service.QueryLogsAsync;
Table.Column(c => c.Type).Template((b, r) => b.Tag(r.Type));
}

  • 分页查询支持数据统计,统计支持SQL函数和SQL表达式
//前端,在OnPageInitAsync中设置TopStatis模板,查询数据时根据后端返回结果自动刷新
protected override async Task OnPageInitAsync()
{
await base.OnPageInitAsync();
Service = await CreateServiceAsync<IApplyService>(); Table.FormType = typeof(ApplyForm);
Table.OnQuery = Service.QueryApplysAsync;
Table.TopStatis = this.BuildTree<PagingResult<TbApply>>((b, r) =>
{
var sb = new System.Text.StringBuilder();
sb.Append("<div style=\"padding-left:10px;color:#108ee9;\">");
sb.Append($"总数:<span style=\"font-weight:bold\">{r?.TotalCount}</span>,");
sb.Append($"撤回:<span style=\"font-weight:bold\">{r?.Statis?.GetValue<int>("RevokeCount")}</span>,");
sb.Append($"待审核:<span style=\"font-weight:bold\">{r?.Statis?.GetValue<int>("VerifingCount")}</span>,");
sb.Append($"审核通过:<span style=\"font-weight:bold\">{r?.Statis?.GetValue<int>("PassCount")}</span>,");
sb.Append($"审核退回:<span style=\"font-weight:bold\">{r?.Statis?.GetValue<int>("FailCount")}</span>");
sb.Append("</div>");
b.Markup(sb.ToString());
});
Table.Column(c => c.BizStatus).Template((b, r) => b.Tag(r.BizStatus));
} //后端,设置查询条件StatisColumns统计栏位属性,支持Function和Expression
internal static Task<PagingResult<TbApply>> QueryApplysAsync(Database db, PagingCriteria criteria)
{
var sql = @"select a.*,b.BizStatus,b.CurrStep,b.CurrBy,b.ApplyBy,b.ApplyTime,b.VerifyBy,b.VerifyTime,b.VerifyNote
from TbApply a,SysFlow b
where a.Id=b.BizId and a.CompNo=@CompNo";
criteria.StatisColumns = [
new StatisColumnInfo { Id = nameof(TbApply.Id), Function = "count" },
new StatisColumnInfo { Id = "RevokeCount", Expression = $"sum(case when BizStatus='{FlowStatus.Revoked}' then 1 else 0 end)" },
new StatisColumnInfo { Id = "VerifingCount", Expression = $"sum(case when BizStatus='{FlowStatus.Verifing}' then 1 else 0 end)" },
new StatisColumnInfo { Id = "PassCount", Expression = $"sum(case when BizStatus='{FlowStatus.VerifyPass}' then 1 else 0 end)" },
new StatisColumnInfo { Id = "FailCount", Expression = $"sum(case when BizStatus='{FlowStatus.VerifyFail}' then 1 else 0 end)" }
];
return db.QueryPageAsync<TbApply>(sql, criteria);
}

3. WebApi项目

  • 添加支持WebApi项目,在项目Program中AddKnown和AddKnownCore
builder.Services.AddKnown(info =>
{
info.Id = "API";
info.Type = AppType.WebApi;//App类型设为WebApi
});
builder.Services.AddKnownCore(info =>
{
//数据库连接
info.Connections = [new Known.ConnectionInfo
{
Name = "Default",
DatabaseType = DatabaseType.SQLite,
ProviderType = typeof(Microsoft.Data.Sqlite.SqliteFactory),
ConnectionString = builder.Configuration.GetSection("ConnString").Get<string>()
}];
});

Blazor开发框架Known-V2.0.9的更多相关文章

  1. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github

    4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...

  2. WXPP QuickFramework V2.0

    微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github   用了一个多星期的时间,把微信快速开发框架进行了改进,之前1.0版本针对的是普通订阅号,V2. ...

  3. Blazor WebAssembly 3.2.0 正式起飞,blazor 适合你吗?

    最近blazor更新很快,今天在官方博客上发布了Blazor WebAssembly 3.2.0 RC:https://devblogs.microsoft.com/aspnet/blazor-web ...

  4. GO 前后端分离开源后台管理系统 Gfast v2.0.4 版发布

    更新内容:1.适配插件商城,开发环境从后台直接安装插件功能:2.代码生成细节修复及功能完善(支持生成上传文件.图片及富文本编辑器功能):3.增加swagger接口文档生成:4.更新goframe版本至 ...

  5. [Android]Android端ORM框架——RapidORM(v2.0)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...

  6. JuCheap V2.0响应式后台管理系统模板正式发布beta版本

    JuCheap V1.* 查看地址: http://blog.csdn.net/allenwdj/article/details/49155339 经过半年的努力,JuCheap后台通用响应式管理后台 ...

  7. python gettitle v2.0

    #!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...

  8. ".NET Compact Framework v2.0 could not be found."

    参考: http://blog.csdn.net/godcyx/article/details/7348431 问题原因: That's a known issue where VS can't di ...

  9. 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)

    前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...

  10. 怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

     因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我个人认为,好记性不如多做笔记多反思总结. 1.    前提条件 开发环境已正确配置 工程已解决JUnit依赖关系(pom ...

随机推荐

  1. STM32 CubeMX 学习:004-PWM

    背景 上一讲,我们介绍了 STM32 CubeMX 学习:定时器 ,并示范了如何使用定时器来定时.这一讲我们来试试PWM(Pulse Width Modulation, 脉冲宽度调制),这是利用微处理 ...

  2. Unity中正面视图的相机最大距离定位

    问题背景: Unity中在场景中有这样的需求,就是俯视整个场景或者平视整个场景.这种情况下场景中物体长宽比不一定和相机视口长宽比一致,要保证所有的物体都在视口内,并且距离不能太远,,所以处理起来需要点 ...

  3. 如何让 3D 数字孪生场景闪闪发光

    今日图扑软件功能分享:我们将探讨 HT 系统如何通过分组管理灯光.裁切体和流光,以提高场景光影效果的精准度和整体可控性. HT 中的灯光.裁切体.流光是会影响它所在区域一定范围内的其他节点的表现,如 ...

  4. [oeasy]教您玩转linux0001 - 先跑起来 🥊

    Python 什么是 Python? Python 很好用 适合初学者 而且在各个领域都很强大   ​   添加图片注释,不超过 140 字(可选)   后来居上 下图可以点开   ​   添加图片注 ...

  5. oeasy教您玩转vim - 62 - # 缓冲buffer

    ​ 编辑过程 回忆上次 我们这次了解了编辑过程 默认有一个替换文件swap 修改的内容会保存到一个swap文件 如果swp已经存在 会有个swo文件 以此类推 替换文件可以进行对源文件的修复 没保存到 ...

  6. 二分查找 | C++

    以此题为例:P2249 [深基13.例1]查找 二分查找 对于一个单调不降的序列 \(S\),传统查找的复杂度是 \(O(|S|)\),即 \(O(n)\). 有时候序列 \(S\) 中的元素特别多, ...

  7. SpringBoot实战:Spring Boot接入Security权限认证服务

    引言 Spring Security 是一个功能强大且高度可定制的身份验证和访问控制的框架,提供了完善的认证机制和方法级的授权功能,是一个非常优秀的权限管理框架.其核心是一组过滤器链,不同的功能经由不 ...

  8. 「图论」Bron-kerbosch算法

    7.21晚上加赛 T2.七负我,做这题找到了性质发现需要求最大团,不会,爆搜,打假了,赛后改,对了,但时间复杂度大爆炸,看下发题解,有这么一句话:于是学习了一下. Bron-kerbosch算法-求图 ...

  9. Scratch作品-巴黎2024奥运会

    ​ <Scratch作品-巴黎2024奥运会>是一款以巴黎2024年奥运会为主题的互动作品,专为儿童和青少年设计.通过Scratch编程语言,这个作品生动地再现了奥运会的精彩瞬间,结合了动 ...

  10. pip升级导致报错:pip消失

    pip升级导致报错:pip消失 在安装Jupyter Notebook的时候需要用首先更新pip,如下: 使用以下命令更新pip和安装Jupyter pip3 install --upgrade pi ...