当前位置: 首页 > Web前端 > vue.js

从设计到开发,实现一个人人都可以简单使用及管理的工作流系统

时间:2023-03-31 23:44:42 vue.js

从设计到开发,实现每个人都可以轻松使用和管理的工作流系统求和规则以适当的模型呈现在计算机中,并对其进行计算。工作流在IT领域不算是“新人”。工作流思想是在1960年代提出的;70年代人们开始尝试,但由于当时的诸多限制,工作流一直未能成功实现;在1980年代才出现了第一批成功的工作流系统;1990年代,工作流技术达到第一个发展高峰;自1990年代以来,工作流有多个版本,但主要思想保持不变。为了让我们的工作更有效率。通过工作流我们可以节省很多不必要的时间,预先设置好的handlers可以让我们不用反复询问别人谁负责这个节点;通过任务来实现最终的操作可以让我们减少很多的人力成本,当然我们想要实现一个完整的、简单的、通用的、易于管理的工作流系统并不容易。接下来给大家推荐一个更通用、易于使用和管理的工作流系统。Demo:工作流系统(渡轮)项目问答社区:问答社区本工作流系统使用的技术栈:GolangGinGormVueElement数据结构设计对于一个完整的工作流系统,我们需要流程、模板、组、用户、任务等等,而这些东西是可以灵活定制的,因为如果不能灵活定制的话,平时使用起来很不方便,所以一个好的工作流系统,一定要做到灵活性。我们直接展示数据结构的设计图。接下来详细介绍每张表,这里只做中文介绍,至于数据库的表名,可以自己定义:表介绍用户管理这是一个全面的用户管理,包括(用户管理,用户组管理、部门管理、权限管理)流程分类只是为了区分各职能的流程流程管理流程信息,对节点、交接、分类等数据进行管理和维护。模板保存了我们自定义设置的模板,方便创建或处理流程时渲染表单工单每个流程应用任务每个节点的结果以及流程结束后需要执行的任务,可选任务执行历史记录每个任务执行的历史并保存执行结果流程分类类型分类结构{base.Model名称字符串`gorm:"column:name;type:varchar(128)"json:"name"form:"name"`//类别名称Creatorint`gorm:"column:creator;type:int(11)"json:"creator"form:"creator"`//creator}func(Classify)TableName()string{return"process_classify"}ProcesstypeInfostruct{base.ModelNamestring`gorm:"column:name;type:varchar(128)"json:"name"form:"name"`//P进程名称结构json.RawMessage`gorm:"column:structure;type:json"json:"structure"form:"structure"`//流程结构Classifyint`gorm:"column:classify;type:int(11)"json:"classify"form:"classify"`//分类IDTplsjson.RawMessage`gorm:"col嗯:tpls;type:json"json:"tpls"form:"tpls"`//模板任务json.RawMessage`gorm:"column:task;type:json"json:"task"form:"task"`//任务ID,数组,可以执行多个任务,可以作为一个通知任务,每个节点都会执行Creatorint`gorm:"column:creator;type:int(11)"json:"creator"form:"creator"`//Creator}func(Info)TableName()string{return"process_info"}templatetypeInfostruct{base.ModelNamestring`gorm:"列:姓名;type:varchar(128)"json:"name"form:"name"binding:"required"`//模板名称FormStructurejson.RawMessage`gorm:"column:form_structure;type:json"json:"form_structure"form:"form_structure"binding:"required"`//formStructureCreatorint`gorm:"column:creator;type:int(11)"json:"creator"form:"creator"`//CreatorRemarksstring`gorm:"column:remarks;类型:longtext"json:"备注"形式:"备注"`//备注}func(Info)TableName()string{return"tpl_info"}workordertypeInfostruct{base.ModelTitlestring`gorm:"column:title;type:varchar(128)"json:"title"form:"title"`//工单标题Processint`gorm:"column:process;type:int(11)"json:"process"form:"process"`//ProcessIDClassifyint`gorm:"column:classify;type:int(11)"json:"classify"form:"classify"`//类别IDIsEndint`gorm:"column:is_end;type:int(11);default:0"json:"is_end"form:"is_end"`//是否结束,0未结束,1结束Statejson.RawMessage`gorm:"column:state;type:json"json:"state"form:"state"`//状态信息RelatedPersonjson.RawMessage`gorm:"column:related_person;type:json"json:"related_person"form:"related_person"`//工单的所有处理者Creatorint`gorm:"column:creator;type:int(11)"json:"creator"form:"creator"`//creator}func(Info)TableName()string{return"work_order_info"}工单绑定模板类型TplDatastruct{base.ModelWorkOrderint`gorm:“列:work_order;type:int(11)"json:"work_order"form:"work_order"`//工单IDFormStructurejson.RawMessage`gorm:"column:form_structure;type:json"json:"form_structure"form:"form_structure"`//表单结构FormDatajson.RawMessage`gorm:"column:form_data;type:json"json:"form_data"form:"form_data"`//表单数据}func(TplData)TableName()string{return"work_order_tpl_data"}工单流通历史typeCirculationHistorystruct{base.ModelTitlestring`gorm:“列:标题;type:varchar(128)"json:"title"form:"title"`//工作订单标题WorkOrderint`gorm:"column:work_order;type:int(11)"json:"work_order"form:"work_order"`//工单IDStatestring`gorm:"column:s泰特;type:varchar(128)"json:"state"form:"state"`//工单状态Sourcestring`gorm:"column:source;type:varchar(128)"json:"source"form:"source"`//源节点IDTargetstring`gorm:"column:target;type:varchar(128)"json:"target"form:"target"`//目标节点IDCirculationstring`gorm:"column:circulation;type:varchar(128)"json:"circulation"form:"circulation"`//FlowIDProcessorstring`gorm:"column:processor;type:varchar(45)"json:"processor"form:"processor"`//处理器ProcessorIdint`gorm:"column:processor_id;type:int(11)"json:"processor_id"form:"processor_id"`//处理器IDCostDurationstring`gorm:"column:cost_duration;type:varchar(128)"json:"cost_duration"form:"cost_duration"`//处理时间Remarksstring`gorm:"column:remarks;type:longtext"json:"remarks"form:"remarks"`//Remarks}func(CirculationHistory)TableName()string{return"work_order_circulation_history"}任务类型Infostruct{base.ModelNamestring`gorm:"column:name;type:varchar(256)"json:"name"form:"name"`//任务名称TaskTypestring`gorm:"column:task_type;type:varchar(45)"json:"task_type"form:"task_type"`//任务类型Contentstring`gorm:"column:content;type:longtext"json:"content"form:"content"`//任务内容Creatorint`gorm:"column:creator;type:int(11)"json:"creator"form:"creator"`//创建者Remarksstring`gorm:"column:remarks;type:longtext"json:"remarks"form:"remarks"`//备注}func(Info)TableName()string{return"task_info"}任事执行历史typeHistorystruct{base.ModelTaskint`gorm:"column:task;type:int(11)"json:"task"form:"task"`//任务IDNamestring`gorm:"column:name;type:varchar(256)"json:"名称”形式:“名称”`//任务名称TaskTypeint`gorm:"column:task_type;type:int(11)"json:"task_type"form:"task_type"`//任务类型,python,shellExecutionTimestring`gorm:"column:execution_time;type:varchar(128)"json:"execution_time"form:"execution_time"`//执行时间结果字符串`gorm:"column:result;type:longtext"json:"result"form:"result"`//任务return}func(History)TableName()string{return"task_history"}管理和使用介绍流程管理很简单,创建一个流程,拖拽,链接对应的节点,在右边填写对应的数据即可节点和转账,可以通过这个流程完美的创建一个流程数据,我们可以申请流程。表单设计能够自定义表单对于工作流系统来说非常重要。正因为如此,管理用户输入的数据是什么是非常方便的。同时也非常方便控制用户的输入。同时,对于工作流管理,大大节省了表单维护的时间。这次我们主要介绍了数据结构的设计和代码的演示。同时也说明工作流开发中数据比较复杂,但是对用户体验非常好的两个功能,一个是流程管理,一个是表单设计。