当前位置: 首页 > news >正文

Go开发后端和Vue3开发前端的前后端分离框架中自己手戳一个OA流程审批、工作流引擎给新时代一个漂亮便捷的工作流引擎

前言

在软件项目开发中,我们都会接触到流程审批的需要业务,我们以往用的最多就是如下图这种流程编辑引擎插件:

以上截图中的流程工具是不是大家常见的呀!感觉很丑拿不出手呀!在当前行业内卷及竞争激烈情况下,我们不仅仅只考虑降本增效,更需要大家企业提高软件产出质量,只有你的产品比同行做个更好、体验感更舒服才能发展更长远。很多软件开发公司只关心软件快速交付,没在软件质量上投入,导致软件交付甲方客户不满意,无法维持长期合作,客户无法积累这是企业一个重大损失。

基于以上原因于是乎我们GoFly技术团队投入一个月时间,在GoFly框架上手戳一个漂亮、交互好、简单、易用的工作流组件,使得流程开发和使用变得简单。让我们开发项目提高一个档次,好的界面和使用体验是你项目交付甲方最重要因素,没有第一眼认可,你开发功能再好甲方第一印象绝对无法改变,你觉得他还会认真把你开发软件仔细看完吗?所以我们GoFly技术团队一直强调好的软件开发团队不仅只重视软件功能,更要把交互见面做好,抓住使用者的眼球,让使用你开发的软件变得一种享受,这样甲方软件才好推广。

技术选型

我们前端使用vite构架的vue3+pinia+ts框架,UI使用字节跳动的ArcoDesign,确保前端交互性能及界面扩展性美观性。后端使用Go语言开发,框架基于Gin优异web框架集成的可自动路由及生成代码框架,前后端优秀设计可做到快速开发项目功效。数据库推荐使用Mysql,如果项目需要也可是pgsql数据库。

流程审批插件设计

流程设计器分为 4 类节点:审批节点、抄送节点、办理节点、分支节点;

  • 审批节点:配置节点的审批人,支持多级审批、会签、或签,流程流转过程中也支持加签、减签;
  • 抄送节点:该节点可以将审批抄送给指定的人;
  • 办理节点:需要指定人办理某些线下业务时,可以使用该节点;
  • 分支节点:支持复杂的分支条件,可根据定义的表单组件来动态匹配条件项。

条件项支持表单必填项的文本匹配、单选多选项匹配、数字金额算术匹配、发起人来源匹配等

  • ​常规设置:支持固定人员、上级、部门负责人、角色等审批类型;
  • 高级设置:多人审批时,支持会签、或签、依次审批。

编辑审批流程演示

好的,到此流程审批插件设计及使用步骤流程都讲解清楚了,如果你项目开发需要再进一步学习了解,我们在“GoFly全栈开发社区”等你

相关文章:

Go开发后端和Vue3开发前端的前后端分离框架中自己手戳一个OA流程审批、工作流引擎给新时代一个漂亮便捷的工作流引擎

前言 在软件项目开发中,我们都会接触到流程审批的需要业务,我们以往用的最多就是如下图这种流程编辑引擎插件: 以上截图中的流程工具是不是大家常见的呀!感觉很丑拿不出手呀!在当前行业内卷及竞争激烈情况下&#xff…...

深入理解 toDto 与 toEntity:结合 Eladmin 框架的最佳实践

在现代软件开发中,尤其是后端开发中,数据传输对象(DTO)和实体对象的转换是一个常见且重要的操作。理解和正确实现这种转换不仅能提高代码的可维护性,还能提升应用的性能和安全性。本文将深入探讨 toDto 和 toEntity 方…...

基于区块链的供应链应用开发

区块链的供应链溯源应用开发 一 、环境准备 (1)更新镜像源 apt update(2)安装(openssl、jdk、git) apt -y install openssl default-jdk git(3)配置JAVA_HOME环境变量 echo “export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/” >> /etc/profilesource /etc…...

获取GORM执行时的sql字符串

示例: import "log" func GetDetail(tx *gorm.DB,id int)(data any,err error){var query tx.Session(&gorm.Session{DryRun: true})err query.Where("id ?", id).First(&res).Errorif err!nil{zap.L().Error("get detail er…...

Linux系统使用Docker安装RStudio服务并实现任意浏览器远程访问

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…...

【原创】springboot+mysql法律咨询网设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...

Vue 应用实例的关键方法与配置案例二

目录 createApp createSSRApp app.mount app.unmount app.component app.directive Vue3.X自定义全局指令 Vue2.X自定义全局指令 app.use app.mixin 非 VIP 用户能够免费下载博文资源 createApp 详见上一章节:Vue 应用实例的关键方法与配置案例一-CSDN博客 createSS…...

Java面试题--JVM大厂篇之破解 JVM 性能瓶颈:实战优化策略大全

目录 引言: 正文: 1. 常见的JVM性能问题 频繁的GC导致应用暂停 内存泄漏导致的内存不足 线程争用导致的CPU利用率过高 类加载问题导致的启动时间过长 2. 优化策略大全 2.1 代码层面的优化 2.1.1 避免不必要的对象创建 2.1.2 优化数据结构的选择 2.1.3 使用并发工具…...

Apache Curator 创建节点时,如果节点存储就会抛出异常吗?

在Apache Curator中,创建节点时,如果该节点已经存在,并且你的代码没有正确处理这种情况,那么会抛出NodeExistsException异常。这是ZooKeeper客户端库(包括Curator)的常见行为,因为它需要确保Zoo…...

【食物链】

题目 代码 #include<bits/stdc.h> using namespace std; const int N 5e410; int n, k; int p[N], d[N]; int find(int x) {if(p[x] ! x){int root find(p[x]);d[x] d[p[x]];p[x] root;}return p[x]; } int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…...

【RN】实现markdown文本简单解析

需求 支持文本插入&#xff0c;比如 xxx {product_name} xxx &#xff0c;如果提供了product_name变量的值为feedback&#xff0c;则可以渲染出 xxx feedback xxx。支持链接解析&#xff0c;比如 [baidu](https://www.baidu.com/)&#xff0c;可以直接渲染成超链接的形式。支持…...

webpack plugin

webpack plugin webpack完成的复杂炫酷的功能依赖于插件机制&#xff0c;webpack的插件机制依赖于核心的库&#xff0c; tapable tapable是一个类似于nodejs的eventEmitter的库&#xff0c; 主要是控制钩子函数的发布喝定于&#xff0c;当时&#xff0c;tapable提供您的hook机…...

【busybox记录】【shell指令】date

目录 内容来源&#xff1a; 【GUN】【date】指令介绍 【busybox】【date】指令介绍 【linux】【date】指令介绍 使用示例&#xff1a; 打印前天的日期: 打印三个月零一天后的日期: 打印当年圣诞节的年数: 打印当前的全月名称和月的日期: 要打印一个没有前导零的日期&…...

同态加密和SEAL库的介绍(八)性能

本篇会对比三种加密方案&#xff0c;同时每种方案配置三种参数。即九种情况下的各个操作的性能差异&#xff0c;为大家选择合适的方案和合适的参数提供参考。表格中所有时长的单位均为微妙&#xff0c;即 。 当然数据量比较大&#xff0c;为了方便大家查找&#xff0c…...

华为OD-D卷数的分解

给定一个正整数n&#xff0c;如果能够分解为m(m > 1)个连续正整数之和&#xff0c;请输出所有分解中&#xff0c;m最小的分解。 如果给定整数无法分解为连续正整数&#xff0c;则输出字符串"N"。 输入描述: 输入数据为一整数&#xff0c;范围为&#xff08;1, 2^3…...

rk3588 low_delay_net_display注意事项

low_delay_net_display例子默认只支持YUV420和RGB888,如果需要支持YUV422&#xff0c;请添加下面部分&#xff1a; rk3588_nvr/build/app/low_delay_net_display$ git diff v4l2HdmiRX.cpp diff --git a/app/low_delay_net_display/v4l2HdmiRX.cpp b/app/low_delay_net_displa…...

Spring Boot 快速入门样例【后端 3】

Spring Boot 入门&#xff1a;从零到一构建你的第一个应用 Spring Boot 作为一个流行的Java框架&#xff0c;以其“习惯优于配置”的理念极大地简化了Spring应用的开发和部署过程。本文将带你一步步创建一个简单的Spring Boot应用&#xff0c;从环境准备到项目创建&#xff0c;…...

Linux云计算 |【第二阶段】NETWORK-DAY2

主要内容&#xff1a; VLAN技术、TRUNK模式、链路聚合、路由器 一、VLAN技术应用 广播域指接受同样广播消息的节点的集合&#xff0c;如在该集合中的任何一个节点传输一个广播帧&#xff0c;则所有其它能收到这个帧的节点都被认为是该广播帧的一部分&#xff1b; 交换机的所有…...

Java面试题(基础篇)③

目录 一&#xff0c; 与 equals 的区别&#xff1f; 二&#xff0c;接口和抽象类的区别&#xff1f; 三&#xff0c;请说出几个常见的异常&#xff1f; 四&#xff0c;请问你对Java 反射有了解吗&#xff1f; 五&#xff0c;浅拷贝和深拷贝区别&#xff1f; 一&#xff0c…...

Qt动态调用 - QMetaObject::invokeMethod

QMetaObject::invokeMethod 动态调用是 Qt 的元对象系统的一项强大功能&#xff0c;它允许在运行时通过名称调用槽函数、信号和普通成员函数。 这种能力对于构建灵活和可扩展的应用程序非常有用&#xff0c;比如插件系统或脚本接口。 动态调用方法 Qt 提供了 QMetaObject::i…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...