.net 快速开发框架开源

DF.OpenAPI开源系统

前后端分离,开箱即用,java经典功能.net也具备

系统介绍

DF.OpenAPI是基于Admin.NET二开的,是一个开源的多租户后台管理系统。采用前后端分离技术(前端使用vue.js,后端使用.net 3~.net6,及.net core3.0,支持docker及各类平台部署,数据库支持多种类型db、及orm框架),在原有基础上做了大量功能扩充。

  • 后端.net框架:集成EF Core、多租户、多种缓存、数据校验、鉴权、单机事件总线、跨进程(分布式)事件总线、动态API、通讯、远程请求、分布式任务调度、gRPC、consul服务治理、性能追踪等众多黑科技。
  • 前端功能:用户、角色(功能、数据权限)、职位、组织机构、菜单、字典、日志、多应用管理、文件管理、分布式定时任务、工作流、报表、在线聊天、代码生成、数据模型管理、ChatGpt外放收费api等功能。
  • 部署方式前后端:支持windows\linux docker

如果项目对您开发有帮助,请在gitee源码中,点击右上角⭐Star⭐关注 ,感谢支持开源!
源码地址:DF.OpenAPI。
目前开源内容除企业功能(报表、流程、聊天)外,其它功能均已开源。如需获取企业功能完整功能源码,请与作者联系。

帮助文档可参考:
Furion帮助文档(收费):Furion
antd vue帮助文档:antd vue
OpenAPI帮助文档:请参考系统内部MD文档 MD管理

项目采用:DDD模型进行二次改造。
前端技术:vue-antd-pro(组件:antd vue1.7.8),vue2.6.1、vuex3.6.2
后端技术:.net6.0框架(微服务架构)

 

ai.gif

 

image.png

 

image.png

 

image.png

 

image.png

 

image.png

 

image.png

 

image.png

 

image.png

 

AI截图.png

在线体验

开发者租户:演示环境【超管】权限暂不开放
管理员:用户名:Admin,密码:123456。目前部分删除功能做了禁用,防止误操作,影响其它人员体验。

地址:http://116.198.234.36:8088/ 流程各节点审批人员账号:

用户名密码
liuyi123456
chener123456
zhangsan123456
wangwu123456
zhaoliu123456
lisi123123456
zhouba123456
sunqi123456
建议流程测试使用chener登录发起,此用户有完整的上下级组织关系。

技术交流QQ:270204536

微信二维码:

 

系统扩充功能(只列出与原系统差异化功能)

平台管理

  • 开发管理
  1. 系统配置 

    image.png

  2. 缓存管理(新增)
    新增缓存管理功能,可对当前运行系统中所有缓存key值进行查看或修改。支持权限控制(默认只有超级管理员可修改,其它用户只可查看)。

    image.png

  • 系统监控
  1. 服务监控
    优化原状态监控频次,从原来的3秒改为10一检测;同时支持页面在有开启或关闭状态时,只有服务页面处理激活状态时,才会向服务器请求检测,降低了非激活页面时无效请求损耗;后端采集数据采用缓存机制,提高效率;另增加了系统其它信息采集维度。

    image.png

  • 任务调度
  1. 任务管理
    1.1 扩充了任务级别类型(支持:后台服务、系统任务、自定义任务)
    原系统只支持用户定时类的自定义任务。
    后台任务:指编码服务实现类中,继承了BackgroundService实现的后台服务(权限:只读)
    系统任务:指编码服务实现类中,基于ISpareTimeWorker实现的系统服务,且编码指定TaskSystemType=TaskSystemType.System。(权限:只读)
    自定义任务:是通过任务调度管理,在管理平台新建的定时任务、或编码服务ISpareTimeWorker基于实现的系统服务,且编码指定TaskSystemType=TaskSystemType.Custom。(权限:编辑、修改、停止、启动)
    1.2 列表支持任务集群运行状态显示

    image.png


    1.3 新增了微服务下任务集群管理(支持集群任务查看、编辑、单个开关、批量开关操作)

    image.png

  • 开发示例
    罗列了百度ECharts各类使用示例、G2Plot统计图库、Peity图表库
  • 代码生成
  1. 数据源表管理
    开发框架在原有code-frist、DB-frist基础上,提供了可视化的建表操作,及联动代码生成操作。
    支持表:增、删、改、关联关系、索引。

    image.png


    支持表字段:增、删、改、主键……

    image.png

  2. 代码生成
    支持直接生成到项目中、或生成代码压缩包下载到本地。
    支持前端操作界面、后端API、业务逻辑、DB实体等一键生成。(支持code-frist\db-frist\数据源表一键生成管理能页面)

    image.png

     

    image.png

     

    image.png

  3. 表单设计器
    增加了二次自开发组件(城市乡区、部门选择器、人员选择器、电子签名)
    *注:相关组件可自行二开或联系开源作者有偿二开

    image.png

运营管理

支持多租户管理

系统管理

  • 组织架构
  1. 机构管理
    增加机类型:一级……四级,用于API付费,根据不同级别设定不同分销价格。
  2. 职位管理
    增加:是否管理,用于流程审批时,指定审批人(部门负责人)时使用。
  • 权限管理
  1. 用户管理
    管理员类型:增加后台API作业用户(后台服务调用接口时,专供服务权限验证的用户)。此功能只有超级管理员可见。其它用户新建用户时默认为普通用户
    增加:直属上级,用于流程审批时,指定审批人(上级)时使用
    增加:审批者开关,用于流程审批时,指定审批人(部门审批人)时使用
  2. 角色管理
    增加:角色类型(集团、加盟商、门店),默认为集团。此功能只有超级管理员可见
  • 通知公告
  1. 公告管理
    支持:超文本内容发送、站点超连接页面指定数据跳转、外部超连接,支持指定成员发送
  2. 已收公告
    支持:超文本内容、站点超连接页面指定数据跳转、外部超连接

    image.png

  • 文件管理
  1. 系统文件
    支持文件下载、图片预览。

企业功能(新增)

此应用模块下,提供了强大的流程审批、报表管理模块。

  • 流程管理
  1. 我的事务
    1.1 审批首页
    用于总览查看流程任务、及全新任务发起

    image.png


    开始发起操作,表单内容填写

    image.png


    设置审批人员

    image.png


    点击保存(保存到草稿箱)。点击提交则发起申请
    1.2 待我处理
    此处功能为,所有待我审批的任务,需要逐一进行审批。

    image.png


    可对发起人的任务表单进行修改。
    审批功能有:同意、拒绝、转交、抄送、退回、加签、跟踪。评论
    审批意见填写:支持审批意见、文件、图片、电子签名

    image.png


    另一个流程在发起后,所有参与的审批人员均可查看流程:表单、审批人、流程图、流转记录、流转进度。
    表单:

    image.png


    审批人员清单

    image.png


    流程图

    image.png


    流转记录

    image.png


    流转进度

    image.png


    1.3 已处理的
    此功能为,所有已经我管理的任务,可进行查看。另如果在刚审批后,后续审批人还未开始时,系统是支持撤回的,撤回修改后可重新审批。

    image.png


    1.4 抄送我的
    此功能为,所有抄送我的审批任务,可供查看
    1.5 我跟踪的
    当审批人员在审批时,开启了跟踪,则跟踪任务会在此功能列表中显示,任务的每个审批进度,跟踪人员均能收到进度通知消息。
    1.6 我发起的
    此处为用户发起的任务列表,可查看任务流转进度。
    发起后可支持的操作:
    撤回:
    当用户发刚发起后,未经其它人员审批时,这时是可以进行撤回,重新修改后发起的。
    催办:
    当任务比较紧急时,用户可发起催办。催办后的任务会标记为加急,同时审批人员回收到催办通知。
    作废:
    用户可随时作废发起的任务。

    image.png


    1.7 我的草稿
    所有发起的审批,在未提交之前均回存入草稿。这时可修改、提交、删除。

    image.png

  2. 流程管理
    1.1 流程实例
    实例管理人员,会有此功能。可对自己负责的流程实例进行管理。可进行批量操作:
    退回:
    退回后实例将被退返到发起人的草稿箱,并通知流程发起人重新提交流程
    挂起、激活:
    用于将任务暂停、和恢复操作
    作废:
    将申请人的任务进行作废
    1.2 分组管理
    此功能管理人员使用,可为任务模板进行分组。
    1.3 模板管理
    核心功能,用于新建、修改、删除流程模板

    image.png


    可对流程模板进行管理

    image.png

     

    image.png


    模板编辑,分为四步:基础信息、表单设计、流程设计、更多配置
    基础信息:

    image.png


    表单设计:

    image.png


    流程设计:

    image.png


    节点设置-审批设置:

    image.png


    节点设置-表单权限:

    image.png


    节点设置-高级设置:

    image.png

     

    image.png


    节点设置-通知设置

    image.png


    可根据需要自定义通知消息模板
    更多配置(打印)

    image.png

  • 报表管理
  1. 数据源管理
    提供报表,所需数据库的数据源维护。

    image.png

     

    image.png


    系统支持多种数据库,目前支持主流关系数据库,非关库(nosql)可与作者沟通有偿提供,或自行二开
  2. 数据集管理
    报表所有的数据集管理。

    image.png


    数据集内容维护:

    image.png


    目前数据集支持sql、API请求、JSON数据集、其它类型可自行二开,或与作者沟通有偿提供。
  3. 模板管理
    报表支持文本模板(word形式)、表格模板(excel形式)
    文本模板

    image.png

     

    image.png


    文本预览

    image.png


    文本打印

    image.png


    可导出word文档。
    表格模板

    image.png


    表格预览

    image.png


    表格打印(如果打印选区超出A4纸大小:超高、超宽,系统会自动分页打印)

    image.png


    支持导出excel文件。
  • 智能大屏
    提供多种大屏模板示例,作者收集了70+大屏示例,如有需要可和作者沟通。
  • MD管理
    支持markdown文档,增、删、改、预览。(管理员可操作)
    普通用户只可查看文档。此处理文档主要是针对系统使用、开发的帮助文档。

ChatAPI(新增)

此应用模块用于付费chatGPT-Api调用服务。针对使用的不同GPT模型、调用次数、请求返回数据长短计费。(目前系统只提供了管理、展示部分的功能,核心计费及OpenAI接口没有接入生产,OpenAI暂不生效)。
后端源码会开放计费API项目的调用,但OpenAi对接接口暂不提供开源。

系统常规设置

支持用户对界面个性化设置,并将设置信息保存到云端。用户在不同设备上均可以自己的界面设置进行办公。
 

image.png


设置功能如下:

image.png

  • 界面自定义配色:

    image.png

  • 菜单keepAlives模式:
    如果开启后,则页面会本地缓存,每次切换功能时不刷新页面数据,可提高访问速度。
    如果关闭后,则关闭页面缓存,每次切换功能页均会发新数据。关闭后多页签模式的顶部菜单会显示刷新页面菜单。

    image.png

顶层菜单栏按钮

帮助(新增):支持跳转到作者源码开源地址。
全屏:系统全屏开关。
通知:支持通知、公告,最新6条信息展示,支持一键标记已读。

image.png

消息发送:支持即时(在线、离线)聊天消息收发-(功能内部IM)

image.png


当在未打开聊天面板时,收到消息会以系统提示的方式弹出,点击可打开面板。
 

image.png


打开后的面板,支持文字、表情、图片发送。支持全员群发消息

image.png

消息发送,增加AI助手

AI截图1.png

支持系统内部不同应用下页面跳转,及数据过滤:

站内点转示例链接:
#/welcome?route=entFlowHome&appCode=enterprise&command=shareDetail&id=543672182898757
route:功能路由
appCode:应用code
command、id:自定义参数,可在跳转的页面根据参数,实现数据过滤逻辑

.net 框架新增功能

架构采用DDD模型

Image_proc.jpg

后端源码目录结构

image.png

API授权验证

原项目前后端分离、API请求采用JWT+TOKEN进行认证,但未做API权限管理及验证(这样攻击者只要知道要攻击的功能页面API,则可以使用小权限用户TOKEN来调用其无权限的功能API,例如:删除所有用户等恶性操作)。
扩充了API权限验证后,未设置权限的用户通过token调用API是无权访问的。

微服务功能

例如:跨平台事件总线、跨服务跟踪等。
架构核心思想:高内聚、低耦合、高性能、高可用,以业务角度(分析上下文界限,建模。业务分域->域建模->存储建模->存储实现)

  1. 支持consul微服务注册及发现,支持实时检测可用节点,负载算法:平均、随机、加权
  2. 支持多种配置方式:(数据库配置、环境变量、本地配置、云配置中心:apollo配置)
  3. 扩展分布式消息总线,支持分布式事务,保障微服务CAP原则(通过 EventId & CreatedTime 组合约束 保证不重复消费事件、通过消息队列中间件保障数据可靠性)。中件间封装Rabbitmq、kafka、zookeeper(分布式链路 cqrs、命令总线、EDA、事件驱动、事件溯源、消息队列)。
    最后达到一点事件发布,随机分散多个定阅节点中只有一个有权响应(可有效防止事件消息重复处理)
  4. 封装执行程序性能分析器、及跨服务性能跟踪(MiniProfiler、Prometheus)
  5. 断路器由consul计算熔断(自动健康检测)

外放付费API

可快速创建自己的付费API,支持认证、授权、计费、及后端统计分析

多种通信协议

支持http/https/GRPC/WebSocket,支持GRPC根据服务自动生成protos文件生成

支持DB代码:codefrist、dbfrist、和UI操作生成

项目、代码命名规范

【工程命名规范】
公司名缩写.项目名称:大驼峰命名

【模块命名规范】
公司名称缩写.项目名称.DDD所属层.功能类型.业务模块
所属层(Presentation、Application、Domain、Infrastructure、Plugins、Tools、Test)
功能类型(非必要项。WebApi、GrpcApi、WebApp、ClientServices……)

【文件夹命名规范】
大驼峰命名

【类名】:大驼峰命名、基类:Base+大驼峰
【接口】:I+大驼峰命名
【常量】:全部大写,每个单词之间用_连接
【枚举】:大驼峰命名
【私有变量、参数名】:小驼峰命名
【属性】:大驼峰命名
【函数】:大驼峰命名
【类内部只读变量】:_+小驼峰

未来计划功能

  1. 整理合并.net Furion开源最新版框架,使框架支持到8.0+
  2. 整理加入大屏设计器,基于datav.
  3. 前端增加桌面系统WPF\WINFORM平台。

特别鸣谢

Furion:Furion: 让 .NET 开发更简单,更通用,更流行。
Ant Design of Vue:https://1x.antdv.com/docs/vue/introduce-cn
k-form-design:k-form-design: 基于vue Ant-Design 的表单设计器,快速开发
Zack.EFCore.Batch:https://github.com/yangzhongke/Zack.EFCore.Batch
smart-flow-design:smart-flow-design: 仿钉钉 飞书 雀书 流程审批 设计 前端 http://47.109.22.115:10090/
luckysheet:https://github.com/dream-num/Luckysheet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/865728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SyntaxError: invalid character in identifier 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

鸿翼全链智能知识管理,打造大模型时代的企业知识管理新范式

在知识经济的浪潮中,知识已成为企业构筑竞争优势的基石。随着大模型转向应用落地,其强大的语义理解、推理、逻辑、记忆等能力,推动企业知识管理迈向一个“智能涌现”的新时代。 鸿翼大模型KM知识管理系统,植根于非结构化数据治理全…

Mac安装nvm,node

新的Mac安装nvm,最简单的是先安装nvm,再安装node,官网示例代码也是这么整的,如果已经安装了node,不要慌 多几步终端操作可以“没有如果”。分两种情况:1,还没安装node,直接装nvm&…

【C++】初步认识C++

1. 初识C1.1 C概念相关1.2 C发展史及其重要性1.2.1 发展史1.2.2 重要性 2. C关键字3. 命名空间4. 输入和输出 个人主页:C_GUIQU 归属专栏:【C学习】 1. 初识C 1.1 C概念相关 C语言是结构化和模块化的语言,适合处理较小规模的程序。 【来源】…

ctfshow-web入门-命令执行(web118详解)Linux 内置变量与Bash切片

输入数字和小写字母,回显 evil input 查看源码,发现这里会将提交的参数 code 传给 system 函数 使用 burpsuite 抓包进行单个字符的模糊测试 fuzz: 发现过滤掉了数字和小写字母以及一些符号,下面框起来的部分是可用的 结合题目提…

【C++】开源:命令行解析库CLI11配置与使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍命令行解析库CLI11配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#x…

ETCD概述--使用/特性/架构/原理

ETCD概述 ETCD是一个高度一致的分布式键值存储, 它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据(高可用, 强一致性)​全局的配置服务中心. 本文将介绍其特性、相关操作和常见的应用场景. 如果想了解更多, 请查阅我的技术博客: https://dingyuqi.com 特性 …

新章节:全设备通用调度算法-通讯重构

新章节:全设备通用调度算法-通讯重构 文章目录 新章节:全设备通用调度算法-通讯重构前言一、重构了TCP和UDP通讯二、优化了OPC和OPCUA三、升级了监控客户端四、升级了通讯的图形化其他升级 前言 现在真的很懒也很少写代码了,写代码和更新进度…

webSocket网页通信---使用js模拟多页面实时通信

webSocket是什么 WebSocket是一种先进的网络技术,它提供了一种在单个TCP连接上进行全双工通信的能力。传统的基于HTTP的通信是单向的,即客户端发起请求,服务器响应请求,然后连接关闭。但是,WebSocket允许服务器和客户端…

欧盟,又出了新规-通用充电器新规通用充電器的 RED 修正案如何办理?

欧盟,又出了新规-通用充电器新规通用充電器的 RED 修正案如何办理? 欧盟新规委员会发布《通用充电器指令》指南通用充電器的 RED 修正案办理流程: 2024年5月7日,欧盟委员会发布《通用充电器指令》指南,修订了《无线…

Linux之进程控制(下)

目录 进程替换的概念 进程替换的函数 execl​编辑 execlp execle execv execvp execve 上期,我们学习了进程创建,进程终止和进程等待,今天我们要学习的是进程控制中相对重要的板块------进程替换。 进程替换的概念 在进程创建时&…

【 香橙派 AIpro评测】大语言模型实战教程:香橙派 AIpro部署LLMS大模型实站(保姆级教学)

引言 OrangePi AIpro 这块板子作为业界首款基于昇腾深度研发的AI开发板,一经发布本博主就火速去关注了,其配备的 8/20TOPS澎湃算力是目前开发板市场中所具备的最大算力,可谓是让我非常眼馋啊!这么好的板子那必须拿来用用&#xff…

LeetCode热题100刷题6:160. 相交链表、206. 反转链表、234. 回文链表、141. 环形链表、142. 环形链表 II

160. 相交链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode…

QDockWidget类详解

一.QDockWidget类概述 1.QDockWidget类 QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。 QDockWidget类提供了dock widget的概念,dock widget也就是我们熟悉的工具面板或者是工具窗口。Do…

nginx转发的问题

我在项目配置的时候遇到一个问题: 配置了域名转发,且配置了https nginx配置如下: server {listen 443 ssl;server_name yourdomain.com;ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;loca…

10.SQL注入-http header利用案例

SQL注入-http header利用案例 首先通过登录http头界面,如图所示:登录的信息会被记录到数据库中去,同时使用bp进行抓包分析 将抓包的数据发送repeater里面进行调试 通过useragent进行注入 将useragent对应的数据信息删除掉,输入单引号测试被后台执行报错sql语法…

【Python机器学习】模型评估与改进——带交叉验证的网格搜索

虽然将数据划分为训练集、验证集、测试集的方法是可行的,也相对常用,但这种方法对数据的划分相当敏感,为了得到对泛化性能的更好估计,我们可以使用交叉验证来评估每种参数组合的性能,而不是仅将数据单次划分为训练集与…

为什么要在成像应用中使用图像采集卡?

达到最大产量是工业和工厂自动化的关键标准之一。提高传感器分辨率和帧速率有助于实现这一目标,但也使带宽达到极限,并提出了新的传输问题。当前高带宽接口(如10GigE、相机直接与PC连接和嵌入式系统)的实现促使成像应用的许多用户询问如何以最佳配置最优…

vue3进阶,渲染函数使用

目录 渲染函数使用场景 h() 渲染函数 渲染函数基础写法 渲染函数的组件传参,事件传递 渲染函数的插槽使用 结语 渲染函数使用场景 在写这篇文章之前,我会先简单说一下渲染函数,并且我会在第一个渲染函数的介绍中,标名渲染函数…

[Go 微服务] Kratos 验证码业务

文章目录 1.环境准备2.验证码服务2.1 kratos 初始化验证码服务项目2.2 使用 Protobuf 定义验证码生成接口2.3 业务逻辑代码实现 1.环境准备 protoc和protoc-gen-go插件安装和kratos工具安装 protoc下载 下载二进制文件:https://github.com/protocolbuffers/protobu…