vue 流程图

10 篇文章 0 订阅
订阅专栏
文章介绍了如何基于Element-UI进行流程图的扩展和修改,包括安装依赖、运行和打包步骤。详细阐述了流程图的节点结构,如开始、审核、条件等节点的属性和配置,以及配置文件的设置。此外,还讲解了自定义节点的实现,并提供了注意事项和示例代码。
摘要由CSDN通过智能技术生成

流程图(element-ui)

git地址
根据原开源项目拓展修改的项目

安装依赖

cnpm i

运行

npm run serve

打包

npm run build

节点基础结构组成

  			nodeName: "开始",  	// 节点名称
            error: true,      	// 是否有误
            type: this.type,  	// 节点类型
            nodeId: getUUID(),	// 节点id
            setting: {},  		// 节点配置 不同类型内容不同
            conditionNodes:[],  // 仅类型为条件分支的时候有
            childNode,			// 子节点
            fatherID,			// 父节点id
            level				// 层级

不同节点下setting的属性

开始节点
字段名称类型解释
allowCommitstring允许提交情况 All 全员 Assign 指定 None 均不可提交
assignModeint指定模式 0指定部门 1指定成员
departmentarray指定部门数据数组
memberarray指定成员数据数组
carbonCopySettingarray抄送人数据数组 有抄送人的都通用
抄送人数据数组项
字段名称类型解释
typeint0 直属上级 1 部门负责人 2 指定成员
levelint1 一级部门主管 2 二级部门主管
memberarray指定成员数据 object {user_id:成员id name 成员名称}
审核节点
字段名称类型解释
auditTypeint审批类型 0 人工审批 1 自动通过 2 自动拒绝
approverTypeint审批人类型 0直属上级 1 部门负责人 2 指定成员
approverLevelint审批类型为部门负责人时 部门等级
approverMemberarray指定审批成员数据 object {user_id:成员id name 成员名称}
multipleModeint多人审批的模式 0 会签 1 或签 2 依次审批
sameModeint提交人与审批人为同一人时 0 由提交人对自己审批 1 自动跳过 2 转交给直属上级审批
carbonCopySettingarray抄送人数据数组 有抄送人的都通用
条件节点

结构

            nodeName,
            error: !priorityLevel ? false : true,
            nodeId: getUUID(),
            type: this.type,
            priorityLevel,	// 优先级 几乎不用处理 按原顺序就好了 0 一定是为else的情况
            setting: {
                conditionList=[[{
		            operator: "属于",
		            key: "submitter",
		            value: []
        		}]],	// 条件数组
            },
            childNode,
            fatherID,
            level

二维数组 第一层是条件组 第二层数组才是条件 索引0以后的全部视为或关系

字段名称类型解释
operatorstring操作符
keystring比对的字段
valuearray比对的值

配置

配置文件 config.js
	// 常用类型 全局化 防止swtich语句不知道是谁用的
	export const NodeType = {
	    开始: 0,
	    审核人: 1,
	    抄送人: 2,
	    条件: 3,
	    条件分支: 4,
	    办理人: 5,
	    结束: 6,
	    分支跳出: 7,  // 跳出这次if else 回到主分支继续走
	    toString: function (type) {
	        for (let kv in this) {
	            if (kv == "toString") continue
	            if (this[kv] == type) return kv
	        }
	        return "未知类型"
	    },
	}
	
	export const levelOptions = [
	    {
	        value: 1,
	        label: "一级部门主管",
	    },
	    {
	        value: 2,
	        label: "二级部门主管",
	    },
	]
	
	export const operatorList = ["属于", "不属于"]
	export const dataFields = [{ name: "提交人", key: "submitter" }]
	
	// 配置
	const FlowConfig = {
	
	    // 创建节点后立即弹窗
	    createPopupImmediately: false,
	    // 各个类型标题的颜色
	    headerColor: {
	        [NodeType.开始]: "#8cafff",
	        [NodeType.审核人]: "rgb(230, 162, 60)",
	        [NodeType.抄送人]: "rgb(72, 128, 255)",
	        [NodeType.办理人]: "",
	        // 条件分支 没有颜色 可以无视
	        [NodeType.条件分支]: "",
	        [NodeType.结束]: "#8cafff",
	    },
	    // 生成添加按钮 popover 的显示
	    addNodesOptions: [
	        {
	            type: NodeType.审核人,
	            label: "审批人",
	            icon: "./img/审批人.png",
	            class: "approver",
	        },
	        {
	            type: NodeType.抄送人,
	            label: "抄送人",
	            icon: "./img/抄送人.png",
	            class: "notifier",
	        },
	        // {
	        //     type: NodeType.办理人,
	        //     label: "办理人",
	        //     icon: "./img/办理人.png",
	        //     class: "notifier",
	        // },
	        {
	            type: NodeType.条件分支,
	            label: "条件分支",
	            icon: "./img/条件.png",
	            class: "condition",
	        }
	    ],
	    // 允许条件嵌套数量
	    conditionNestCount: 2,
	    levelOptions,
	    operatorList,
	    dataFields
	}

自定义节点

// utils/type下添加js文件 创建对应文件后并指定名称 
import { NodeType } from "../config"
import { BaseType, getUUID } from "../factory"
import { carbonTextHandle, carbonValidate } from "../tools"

/**
 * @description: 开始类型
 * @param {*}
 * @return {*}
 */
export default class StartType extends BaseType {

	// 无需手动导入components到nodeWrap下与Editor下
    filename = "normal"  // 指定在 ./components/node下的文件名称 无需样式更改默认不改动
    form = "startForm"	 // 指定在 ./components/form下的文件名称 自定义表单
    type = NodeType.开始  // 指定类型

	// 返回结构
    getStruct(fatherID, childNode, level) {
        return {
            nodeName: "开始",
            error: true,
            type: this.type,
            nodeId: getUUID(),
            setting: {
                allowCommit: "All",  // All 全员 Assign 指定 None 均不可提交
                assignMode: 0,      // 0 指定部门 1 指定成员
                department: [],     // 指定部门
                member: [],         // 指定成员
                carbonCopySetting: [
                    // {
                    //     type: 1, // 直属上级
                    //     level: 1, // 如果为部门负责人 选择层级
                    //     member: [],
                    // },
                ],   // 抄送人配置
            },
            childNode,
            fatherID,
            level
        }
    }
    
    // 保存后的文字处理
    handleText(nodeConfig) {
        let text = []
        let nodeSetting = nodeConfig.setting
        switch (nodeSetting.allowCommit) {
            case "All":
                text.push("提交人:全员可提交")
                break;
            case "Assign":
                let value = nodeSetting.assignMode ? `提交人:${nodeSetting.member.map((x) => x.name).toString()}` : `提交部门:${nodeSetting.department.map((x) => x.thirdDepartment).toString()}`
                text.push(value)
                break
            case "None":
                return ["提交人:均不可提交"]
        }
        carbonTextHandle(nodeSetting.carbonCopySetting, text)
        return text.length > 0 && text || ["暂无配置"]
    }

    // 保存前的校验 会返回true false 外部赋值error
    beforeSave(nodeConfig) {
        let nodeSetting = nodeConfig.setting
        if (nodeSetting.allowCommit == "Assign") {
            let noSelect = nodeSetting.assignMode ? nodeSetting.member.length < 1 : nodeSetting.department.length < 1
            if (noSelect) {
                return false
            }
        }
        // 存在抄送人 但是没有选择成员的情况
        return carbonValidate(nodeSetting.carbonCopySetting)
    }

}
注意事项

1.创建新的node节点与form的表单的vue文件 请手动混入对应文件夹下的mixin.js
2.form表单混入后提供字段 approverConfig 节点数据 setting 配置数据 可读写
3.node节点混入后提供nodeConfig 当前节点数据 可读写

提供获取数据方法

…编写中

效果图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于vue的简单流程图开发
weixin_33770878的博客
10-18 5072
严重拖延症,一方面这项目模块纯属个人娱乐。另一方面,流程图这块涉及的东西还是蛮多的,这次也只是介绍一些简单的部分。拖了这么久,现在终于要开始硬着头皮写一篇基于vue+svg的流程图"伪教程"文章了。初次献丑,还请轻喷。 模块简介 项目地址 图片预览 出于学习vue而非兼容的目的,本项目仅考虑现代浏览器( 谷歌 ),部分兼容问题还请见谅。 本模块的开发源于对流程图的简单需求( 纯UI实现,暂不存在业...
vue jsPlumb流程图
01-03
基于vue框架开发的jsPlumb流程图项目,可拖拽生成节点,修改节点内容和图标。 插件版本: "element-ui": "^2.11.1", "jsplumb": "^2.11.2", "vue": "^2.5.2"
vue3流程图组件vue flow使用
热门推荐
huanglgln的专栏
08-16 4万+
vue3流程图组件、vue flow、typescript
流程图-Vue组件库:基于Vue的优雅流程图解决方案
最新发布
gitblog_00965的博客
08-21 567
流程图-Vue组件库:基于Vue的优雅流程图解决方案 项目地址:https://gitcode.com/gh_mirrors/fl/flowchart-vue 项目介绍 Flowchart-Vue 是一个专为Vue框架设计的高效、灵活的流程图绘制组件。此项目灵感来源于简化开发者在Vue应用中集成流程图的需求,提供了丰富的API和直观的配置选项,使得创建和管理复杂或简单的流程图变得轻而易举。它利用了...
vue 流程图,拖拽创建 可以画箭头连接元素
01-09
vue 流程图,拖拽创建 可以画箭头连接元素
(AntV X6)vue2项目流程图实现
nyf_unknow的博客
12-25 3706
7.完整流程,初始配置。
vue-flow绘制流程图
m0_50666077的博客
07-16 4778
vue-flow绘制流程图
vue中实现流程图
weixin_48447589的博客
07-07 1万+
当然这是我的练习,方便大家观看,如果有什么问题可以私信我。之后就是对 其中的方法进行调用即可,废话不多说,直接上代码。第一步:需要一个flow.js作为依据,可自取。之后再你的组件中将这个文件引入,
vue+element工作流程图
05-12
仿钉钉工作流的流程图树,可无限添加审批人和条件,可根据条件自动计算进入那一条流程。vue+element纯前端代码手写,可以结合自定义表单组合任意工作流。
vue实现简易流程图
qq_37604998的博客
06-09 2万+
这是最终实现的效果 总体的思路是,定义一个变量,通过循环该变量来渲染流程图。然后将该流程图文件封装成一个组件,父组件只需要按照要求格式定义好变量结构和值,然后传值给子组件。 父组件传值变量结构如图: 如图2,process为要定义的变量,该变量为对象类型,每一个值为对应图1的一行,一行多个值的话,需要在list增加多个数据。 process变量结构含义: process: [ { num: // 代表当前区块数量,及一行要展示小方块的数量 list: [ { // 定义区块内容
Vue源码流程图(函数名与源码对应)
furfur-jiang的博客
05-12 2161
概览 ├─src # 项目源代码 │ ├─complier # 与模板编译相关的代码 │ ├─core # 通用的、与运行平台无关的运行时代码 │ │ ├─observe # 实现变化侦测的代码 │ │ ├─vdom # 实现virtual dom的代码 │ │ ├─instance # Vue.js实例的构造函数和原型方法 │ │ ├─
vue脚手架搭建流程图
12-01
总结vue脚手架搭建的流程,以及本人在搭建过程中遇到的bug
流程图-vue流程图vue版本
02-06
流程图 项目flowchart的vue版本 展示效果: 构建设置 # install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production with minification npm run build # build for production and view the bundle analyzer report npm run build --report 有关工作原理的详细说明,请查看的和。
vue-super-flow:基于Vue流程图组件。vue流程图
04-13
vue-super-flow A flowchart editor component base on Vue. Vue flowchart. Vue 流程图。 Installation npm install vue-super-flow yarn add vue-super-flow import SuperFlow from 'vue-super-flow' import 'vue-super-flow/lib/index.css' Vue.use(SuperFlow) Attributes 属性 类型 默认值 描述 draggable Boolean true 是否开启节点拖拽 linkAddable Boolean true 是否开启快捷创建 link linkEditable Boolean true link 是否可编辑 hasMarkLine Boolean true 是否
流程图-vue-Vue.js流程图流程图设计器组件。-Vue.js开发
05-27
流程图Vue.js流程图流程图设计器组件。 英文| 用法纱线添加流程图-vue 添加Del编辑
基于Vue流程图组件。vue流程图.zip
04-03
描述中的"vue流程图.zip"可能是一个压缩包,其中包含了实现Vue流程图组件的源代码、示例项目、文档等资源。通过解压这个文件,开发者可以获得一个名为"vue-super-flow_master.zip"的子文件,这很可能是某个具体Vue...
vue使用flowable绘制流程图.docx
12-11
Vue项目中使用Flowable来绘制流程图,可以借助`workflow-bpmn-modeler`这个库,它基于Vue和bpmn.io,为Flowable提供了可视化工作流设计器。 首先,创建一个Vue 2.x项目。确保选择的Vue版本是兼容的,因为`...
GOJS+VUE实现流程图效果
10-17
在本文中,我们将深入探讨如何使用GOJS与Vue.js结合实现流程图效果。GOJS是一个强大的JavaScript库,专用于创建富交互式图表,包括流程图、网络图等。Vue.js则是一个流行的前端框架,用于构建用户界面。通过将这两者...
vue使用antv-x6 绘制流程图DAG图(二)
贵林之恋的博客
01-30 1993
【代码】vue使用antv-x6 绘制流程图DAG图(二)
vue 流程图 插件
08-19
Vue中,有一些流程图插件可以帮助你实现流程图的展示和编辑。以下是一些常用的Vue流程图插件: 1. vue-flowchart:一个基于Vue流程图插件,提供了可拖拽的节点和连线功能。 2. vue-drawflow:一个强大的可视化流程图编辑器,支持节点和连线的自定义,提供了多种事件和钩子函数。 3. vue-js-plumb:基于jsPlumb的Vue组件,提供了强大的流程图绘制和交互功能。 4. vue-workflow:一个轻量级的流程图组件库,支持节点和连线的创建、编辑和删除等操作。 5. vue-flowchart-editor:一个基于Vue流程图编辑器,供了多种节点类型和连线样式可选择。 这些插件都有详细的文档和示例代码,你可以根据自己的需求选择合适的插件来实现Vue流程图。请注意,这些插件可能有不同的用法和特性,建议在使用前仔细阅读它们的文档和示例代码。
写文章

热门文章

  • vue 流程图 5898
  • Unity与nodejs进行实时连接 1686
  • vue 部署更新提醒功能 1660
  • Vue编写一个自己的树形组件 1031
  • 如何从零实现一个todo list(4) 916

分类专栏

  • html 1篇
  • 数据库 3篇
  • node.js 5篇
  • vue 10篇
  • unity与nodejs实时通信 1篇

最新评论

  • vue 流程图

    深职第一突破口喜羊羊: 这有个demo https://github.com/codecnmc/simple-server 你可以看看 里面有实际应用的代码

  • vue 流程图

    深职第一突破口喜羊羊: 表情包刚旅游回来 才看到 https://github.com/codecnmc/yt-workflow 这个是我抽出来的 你看看能不能用

  • vue 流程图

    Czx-: 作者用的node和npm是多少版本,我npm i 一直有问题

  • vue 流程图

    深职第一突破口喜羊羊: cnpm 淘宝源出问题了 我换了个源依赖就装上了 看我github最新的提交

  • vue 流程图

    Cover:胖虎: 这个现在运行不起来吧

最新文章

  • 使用原生html编写五子棋小游戏
  • 简易可视化服务器
  • 自定义流程图
2024年9篇
2023年7篇
2021年1篇
2020年1篇

目录

目录

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司如何做好网站关键词优化优化网站的必要性北京网站优化排名平台咨询吉安湖南网站优化推广南充网站制作优化泰安徐州网站建站优化邯郸网站排名优化大师随州市网站关键词优化排名效果好的网站优化有哪些网站优化排名seo优化网站的优化交错云速捷优化网站哪些好海口网站内部优化国外免费优化网站武汉整站优化网站网站首页优化价格是多少钱sem网站优化案例网站优化seo培训价格高不高安庆市网站seo优化排名免费网站优化工具网站排名优化认可云速捷声望青浦区企业网站优化价格百度网站推广排名优化内黄鹤壁网站推广优化甘肃网站优化推广哪家好仙居网站优化公司山东济宁seo优化网站从化企业网站推广优化报价网站建设优化认可s火18星优化网站排名多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化