精华内容
下载资源
问答
  • Activiti结合VUE实现前后端分离、权限管理、路由动态挂载、流程审批简介技术点后端项目目录前端代码目录预览地址:加QQ索要图片预览:购买须知购买理由疑问解惑 简介 本框架是基于十多年项目开发经验积累,用最佳...

    Activiti、Vue、Element-ui实现前后端分离、权限管理、路由动态挂载、流程审批


    element-ui

    简介

    本框架是基于十多年项目开发经验积累,用最佳实践和流行技术开发现代前后端分离的通用项目模板。适合web应用,微信、手机应用管理端及服务端。使用springboot,activiti,mybatis,vue elementui、nodejs开发的后台管理系统(包含权限管理、工作流等功能),真正前后端分离的微服务架构,经过很多项目实战、淬炼、软件开发公司主流技术的集大成者。

    技术点

    前端采用vue element ui框架,后端spring boot,mybatis开发框架,数据库:mysql,前后端分离。
    流程提供发起、跳转、任务处理,人员角色获取、角色类型获取、会签等功能。
    采用activiti工作流工作流框架,自定义流程设计采用activiti工作流工作流框架,自定义流程设计。
    采用安全框架 JWt、shiro(登录授权)实现组织机构、角色,人员、功能权限、数据权限功能。
    后端多模块项目(基础设施子项目、基础功能子项目、业务功能子项目),结构清晰、各子项目独立扩展、升级。
    后端系统组件化,提供分页、树形、通用查询数据结构,封装系统复杂度,只需要写出简单的业务代码,即能完成一个复杂的功能。
    前端项目多模块(基础组件、通用框架、基础功能,业务功能),结构清晰,子项目独立。
    前后端完美结合,很简单的代码即可以实现分页列表、树形等复杂页面。
    前端提供数字输入、货币输入(输入时自动中文货币提示)、百分比输入、整数输入、字典下拉、日期快捷输入、日期范围输入表单控件。
    前端自定义验证,简单HTML标签即可实现前端验证,提供必输,长度、数字,身份证号码等验证标记。
    前端提供身份证号解析年龄,性别、出生日期、户籍地信息功能。
    前端提供通用表格组件(支持树形,分页、合计、列筛选,排序、全部数据导出)、
    前端提供通用表格编辑组件,支持新增、删除、行编辑、行验证。
    前端提供通用树组件、支持多选、筛选、增加子结点,删除,自定义结点。间;

    后端项目目录

    在这里插入图片描述

    前端代码目录

    在这里插入图片描述

    图片预览:

    在这里插入图片描述

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

    树形表格:
    在这里插入图片描述
    ## 项目图片预览:
    在这里插入图片描述

    购买须知

    QQ:2024973690 (添加QQ,价格面议,咸鱼交易)

    预览地址

    http://49.232.110.29/ (首次加载较慢,密码加扣扣问作者)

    购买理由

    公司买来自己用、市面上买套流程引擎项目,轻则上万。即使买来UI,还得费时费力的让员工开发出基础模块,搭建起完善的框架, 节约的成本你自己算!

    买来学习用(覆盖java主流新技术,前后端分离、互联网、软件公司工业级框架)模仿代码做一遍增删改查,研究下功能模块,学习下编程思路,会进步很快,少走弯路!

    疑问解惑

    购买的东西都包过哪些?
    答复:源码 + 文档。可以做辅助性讲解

    代码有无加密和自己封装的jar?
    答复:没有打jar,没有加密

    系统稳定吗?经过实际项目?
    答复:公司主要做产品研发,此框架抽离于公司产品,自主研发使用流行技术。

    是否集群,负载均衡?
    答复:支持缓存保存在redis,系统,sping-cache等

    支持那些数据库呢?
    答复:现在仅支持Mysql。

    前后台接口交互方式是?支持springcloud吗?
    答复:系统前后台使用json传输,支持springcloud。

    可以开具发票吗?
    答复:个人,无法开具发票。

    代码更新以后免费提供吗?
    答复:提供,会在系统功能升级后,发送到您登记的邮箱。

    系统支持那些浏览器?
    答复:IE10+,chrome,360,百度。

    展开全文
  • 本项目使用:Springboot vue-element-admin shiro activiti前后端分离,流程审批,权限管理框架 技术说明: java版本:jdk1.8 Springboot:2.0.5 activiti:6.0.0 id生成采用雪花算法高效生成,适用于分布式系统 ...

    本项目使用:Springboot vue-element-admin shiro activiti前后端分离,流程审批,权限管理框架

    技术说明:

    1. java版本:jdk1.8
    2. Springboot:2.0.5
    3. activiti:6.0.0
    4. id生成采用雪花算法高效生成,适用于分布式系统
    5. 数据库:mysql-5.7.14
    6. 权限shiro:1.4.0
    7. swagger:1.8.0
    8. 前端:vue-2.6.1
    9. 前端 element-ui:2.7.0
      10.前端框架:vue-element-admin

    功能点、技术点:

    • 前端采用vue-element-admin框架,后端springboot,mybatis开发框架,数据库:mysql,前后端分离
      流程提供发起、跳转、任务处理,人员角色获取、角色类型获取、会签等功能。
    • 前端采用vue-element-admin框架,后端springboot,mybatis开发框架,数据库:mysql,前后端分离
      流程提供发起、跳转、任务处理,人员角色获取、角色类型获取、会签等功能。
    • 采用安全框架 shiro (登录授权)实现组织机构、角色,人员、功能权限、数据权限功能。
      后端支持分布式集成,如需分布式,请提出,我们会用最新的Springcloud微服务框架来进行集成。并可以给您部署ELK日志收集系统。
    • 目前后端采用Restful接口风格,并集成swagger,更好的服务员测试人员的接入。
      我们没有使用数据库id自增,而采用雪花算法,为了更好的服务于微服务系统,雪花算法效率更高。
    • 我们工作流采用activiti6.0为了更好的去更新工作流框架时更方便,6.x是activiti一个大的变化,砍去了pvm类。
    • 流程跟踪时,已执行节点绿色高亮展示,待执行节点红色高亮展示,未执行节点默认方式展示等。

    预览地址:http://activiti.wzbjsz.cn
    购买地址:咸鱼地址
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    展开全文
  • 前端:vue+bpmn-js实现activiti的流程设计器,后端Springboot+Activiti开发工作流前端:vue + bpmn-js项目,实现activiti设计器, 后端: springboot + activitips: 咋都没有人issues里提问呢?鉴于广大程序员们开发...

    前端:vue+bpmn-js实现activiti的流程设计器,后端Springboot+Activiti开发工作流

    前端:vue + bpmn-js项目,实现activiti设计器, 后端: springboot + activiti

    ps: 咋都没有人issues里提问呢?

    鉴于广大程序员们开发设计器苦不堪言以及后端不知道怎么解析自定义属性,于是我就开发了这个基础版本的demo,供广大程序员们学习用,如果有问题请在issue中提问👏👏👏

    项目中有什么问题欢迎指出,也欢迎👏👏👏大家帮我一起完善demo

    看我这么辛苦为你们整理demo,不给个star你们肯定都不好意思😄😄😄

    如果你是后端开发,请从最后面开始往上看😄

    一 前端启动项目🌟

    # install dependencies

    npm install

    # serve with hot reload at localhost:8080

    npm run dev

    二 详细介绍🌟

    关于bpmn-js如何使用建议搭建去github上面搜索,这里贴上官网地址: https://github.com/bpmn-io/bpmn-js

    由于bpmn-js官方是适配camunda的,所以对activiti存在不兼容的地方,为了让bpmn-js能使用activiti,我们需要在BpmnModeler中扩展activiti 主要代码如下:

    import activitiModdleDescriptor from '../js/activiti.json';

    this.bpmnModeler = new BpmnModeler({

    container: canvas,

    //添加属性面板,添加翻译模块

    additionalModules: [

    customTranslateModule,

    customControlsModule

    ],

    //模块拓展,拓展activiti的描述

    moddleExtensions: {

    activiti: activitiModdleDescriptor

    }

    });

    1 关于activiti.json文件怎么配置🌟

    {

    "name": "Activiti", // 标识是activiti

    "uri": "http://activiti.org/bpmn", // 添加activiti的命名空间

    "prefix": "activiti", // 属性前缀

    "xml": {

    "tagAlias": "lowerCase"

    },

    "associations": [],

    "types": [

    {

    "name": "Process", // 标签

    "isAbstract": true,

    "extends": [

    "bpmn:Process" // 继承自

    ],

    "properties": [ // 这个标签的属性

    {

    "name": "candidateStarterGroups", // 属性名

    "isAttr": true, // 是否是属性

    "type": "String" // 属性类型

    },

    {

    "name": "candidateStarterUsers",

    "isAttr": true,

    "type": "String"

    },

    {

    "name": "versionTag",

    "isAttr": true,

    "type": "String"

    },

    {

    "name": "historyTimeToLive",

    "isAttr": true,

    "type": "String"

    },

    {

    "name": "isStartableInTasklist",

    "isAttr": true,

    "type": "Boolean",

    "default": true // 给属性添加默认值,但这个默认值没有写入xml中

    },

    {

    "name":"executionListener", // 监听器属性

    "isAbstract": true, // 抽象

    "type":"Expression" // 类型是表达式

    }

    ]

    },

    // 在这里接着加其他节点

    ],

    "emumerations": [ ]

    }

    例子: 我的项目中需要给用户任务添加自定义的属性 nodeType(节点类型)

    {

    "name": "UserTask",

    "isAbstract": true,

    "extends": [

    "bpmn:UserTask"

    ],

    "properties": [

    {

    "name": "nodeType",

    "isAttr": true,

    "type": "String"

    },

    ]

    }

    2 关于部分扩展和完全自定义🌟

    拿左侧工具栏来说,前端vue-activiti-demo项目:src/edit-modeler/js/customController/CustomPalette.js文件

    问:

    可以看到我自定义了用户任务和调用活动节点,其他的节点我用bpmn-js自带的;

    那如果我不想用bpmn-js自带的怎么办呢?

    解答:

    src/edit-modeler/js/customController/index.js文件

    import CustomContextPad from './CustomContextPad';

    import CustomPalette from './CustomPalette';

    exportdefault {

    __init__: [ 'customContextPad', 'customPalette' ],

    customContextPad: [ 'type', CustomContextPad ],

    customPalette: [ 'type', CustomPalette ]

    };

    这里用的是customPalette,如果要完全自定义则换成paletteProvider;

    同理:完全自定义contextPad用contextPadProvider,完全自定义属性面板用propertiesProvider

    import CustomContextPad from './CustomContextPad';

    import CustomPalette from './CustomPalette';

    exportdefault {

    __init__: [ 'contextPadProvider', 'paletteProvider' ],

    contextPadProvider: [ 'type', CustomContextPad ],

    paletteProvider: [ 'type', CustomPalette ]

    };

    3 关于属性前缀🌟

    问:

    我们都知道,bpmn-js生成的xml文件属性前缀都是camunda,那如何换成我们需要的前缀呢?

    答:

    有两种方法

    一种是扩展json文件,例如我们需要activiti前缀就扩展了activiti.json

    第二种就是直接修改初始化xml文件,我们打开设计器时会importXML一个空节点的xml,我们需要在这个xml中加。

    例如:我需要加一个normal的前缀,生成属性后为:normal:nodeType;我们在xml中加上这句话:xmlns:normal="http://flowable.org/bpmn/normal";以此类推

    xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"

    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"

    xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"

    xmlns:di="http://www.omg.org/spec/DD/20100524/DI"

    xmlns:normal="http://flowable.org/bpmn/normal"

    xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"

    id="sample-diagram" targetNamespace="http://activiti.org/bpmn">

    xml中加上后,设计器生成的属性如何加?

    其实很简单,我们updateProperties时可以加上前缀,例如:

    modeling.updateProperties(element, {

    'normal:nodeType': 'nodeType'

    })

    4 由于属性面板是自定义的,修改了属性面板的属性值,如何同步到xml中;以及我在图形上修改了属性如何同步属性面板🌟

    项目是vue架构,那就充分发挥vue的优势: 监听

    部分代码如下:

    watch: {

    id (newVal, oldVal) {

    const bpmnModeler = this.bpmnModeler();

    const modeling = bpmnModeler.get('modeling');

    modeling.updateProperties(this.element,{'id':newVal});

    },

    name(newVal, oldVal){

    const bpmnModeler = this.bpmnModeler();

    const modeling = bpmnModeler.get('modeling');

    modeling.updateProperties(this.element,{'name':newVal});

    },

    // 监控element值,当发生改变时获取响应的属性

    element: {

    deep: true,

    immediate: true,

    handler(newVal, oldVal) {

    if(newVal) {

    const bpmnModeler = this.bpmnModeler(); // 我这里由于项目原因用的是方法获取bpmnModeler

    this.id = newVal.businessObject.get('id');

    this.name = newVal.businessObject.get('name');

    // 初始化赋值

    const modeling = bpmnModeler.get('modeling');

    modeling.updateProperties(this.element,{'name':this.name});

    modeling.updateProperties(this.element,{'process_namespace':this.process_namespace});

    modeling.updateProperties(this.element,{'process_id':this.id});

    }

    }

    }

    }

    由于element是一个复杂的类型,所以深度监听一定要打开。

    同步xml:用的是modeling.updateProperties方法,也可以使用newVal.businessObject.$attrs['name'] = this.name修改

    修改图形属性同步属性面板:由于深度监听了element,所以修改了图形属性就等于修改了element,所以这里会监听到

    5 如何添加监听器🌟

    可以查看vue-activiti-demo\src\edit-modeler\components\CommonProps.vue这个文件

    6 如何添加自定义的标签🌟

    7 如何添加多实例🌟

    这里提供代码添加的方法,可以直接在图形中点击扳手设置多实例

    const moddle = bpmnModeler.get('moddle');

    loopCharacteristics = moddle.create('bpmn:MultiInstanceLoopCharacteristics');

    loopCharacteristics['collection'] = 'flow_assignee';

    loopCharacteristics['elementVariable'] = 'flow_assignee';

    letcompletionCondition = elementsHelper.createElement('bpmn:FormalExpression', { body: '${mulitiInstance.completeTask(execution,passResult,mulitiActivityId)}' }, loopCharacteristics, bpmnFactory);

    loopCharacteristics['completionCondition'] = completionCondition;

    modeling.updateProperties(element, { loopCharacteristics: loopCharacteristics });

    8 获取全部节点和根节点

    // 获取全部节点,也可以用来获取根节点

    bpmnModeler._definitions.rootElements[0]

    // 根节点

    bpmnModeler.get('canvas').getRootElement()

    9 如何给节点的同级添加节点

    例如:

    给SequenceFlow的同级添加了BoundaryEvent,只要获取根节点下的所有节点然后push进入你添加的节点就行了

    bpmnModeler._definitions.rootElements[0].flowElements.push(boundaryEvent);

    10 默认导入的空xml,给标签的id赋动态值报:没有可展示的流程/协作

    我的默认空xml如下:

    最后生成的xml如下:

    可以看到上图中id是以数字开头的, 就是这里导致的😂😂😂

    只要开头是字母就没事了,例如:

    id = `T-${uuidv4()}`

    此处应有掌声👏👏👏

    11 BpmnViewer流程追踪展示流程图,但是流程图被遮挡🌟

    const currentViewbox = this.bpmnViewer.get('canvas').viewbox()

    const widthWindow = window.outerWidth;

    const heightWindow = window.outerHeight;

    const elementMid = {

    x: widthWindow / 2,

    y: heightWindow / 2

    }

    this.bpmnViewer.get('canvas').viewbox({

    x: elementMid.x - currentViewbox.width / 2,

    y: elementMid.y - currentViewbox.height / 2,

    width: currentViewbox.width,

    height: currentViewbox.height

    })

    const width = document.getElementById('canvas').offsetWidth

    this.bpmnViewer.get('canvas').zoom(width / this.width)

    怼回去🤔️🤔️🤔️

    如果后端传给前端的是json文件,不是xml;请大胆的怼回去🤔️🤔️🤔️

    结语🌟

    如果你有好的解决方案欢迎私我,让我学习学习🤔️

    针对后端开发程序员们,我也真整理了后端springboot + activiti的demo;其中介绍了如何解析自定义的属性、如何扩展解析器📒,地址:

    针对react + bpmn-js 近期即将上线

    加油呀💪💪💪💪

    展开全文
  • 作为没用过工作流的一员,之前看过vue引入activiti工作流的案例,但是组件中存在很多问题,这个是我修改过并且成功调用,大家可以供参考,富含Java代码(Jfinal),后续出spring版本的, 前台版本vue4.0版本, ...
  • vue使用bpmn结合activiti

    千次阅读 2019-12-11 17:09:17
    安装bpmn-js-properties-panel、activiti-bpmn-moddle: 修改package.json: "bpmn-js-properties-panel":"https://github.com/RubyLinT/bpmn-js-properties-panel.git", "activiti-bpmn-mod...

    1.首先安装包:

    npm i bpmn-js

    安装bpmn-js-properties-panel、activiti-bpmn-moddle:

    修改package.json:

    "bpmn-js-properties-panel": "https://github.com/RubyLinT/bpmn-js-properties-panel.git",

     "activiti-bpmn-moddle": "https://github.com/igdianov/activiti-bpmn-moddle.git",

    npm i 

    2.使用实例:

    <template>
      <div class="containers" ref="content">
        <div class="canvas" ref="canvas"></div>
        <div id="js-properties-panel" class="panel"></div>
        <ul class="buttons">
          <li>下载</li>
          <li>
            <a ref="saveDiagram" href="javascript:" title="download BPMN diagram">BPMN diagram</a>
          </li>
          <li>
            <a ref="saveSvg" href="javascript:" title="download as SVG image">SVG image</a>
          </li>
        </ul>
      </div>
    </template>
    
    <script>
    // 引入相关的依赖
    // import BpmnViewer from 'bpmn-js'
    import BpmnModeler from 'bpmn-js/lib/Modeler'
    import propertiesPanelModule from 'bpmn-js-properties-panel'
    import propertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/activiti'
    import activitiModdleDescriptor from 'activiti-bpmn-moddle/resources/activiti'
    
    export default {
      data () {
        return {
          // bpmn建模器
          bpmnModeler: null,
          container: null,
          canvas: null,
          xmlStr: null,
          processName: ''
        }
      },
      methods: {
        createNewDiagram () {
          const bpmnXmlStr = `<?xml version="1.0" encoding="UTF-8"?>
            <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" targetNamespace="http://bpmn.io/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="6.0.4">
              <process id="Process_1" isExecutable="true">
                <startEvent id="StartEvent_1acpsqt" />
              </process>
              <bpmndi:BPMNDiagram id="BpmnDiagram_1">
                <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_1">
                  <bpmndi:BPMNShape id="StartEvent_1acpsqt_di" bpmnElement="StartEvent_1acpsqt">
                    <omgdc:Bounds x="152" y="82" width="36" height="36" />
                  </bpmndi:BPMNShape>
                </bpmndi:BPMNPlane>
              </bpmndi:BPMNDiagram>
            </definitions>`
          // 将字符串转换成图显示出来
          this.bpmnModeler.importXML(bpmnXmlStr, function (err) {
            if (err) {
              console.error(err)
            }
          })
        },
        // 下载为SVG格式,done是个函数,调用的时候传入的
        saveSVG (done) {
          // 把传入的done再传给bpmn原型的saveSVG函数调用
          this.bpmnModeler.saveSVG(done)
        },
        // 下载为SVG格式,done是个函数,调用的时候传入的
        saveDiagram (done) {
          // 把传入的done再传给bpmn原型的saveXML函数调用
          this.bpmnModeler.saveXML({ format: true }, function (err, xml) {
            done(err, xml)
          })
        },
        // 当图发生改变的时候会调用这个函数,这个data就是图的xml
        setEncoded (link, name, data) {
          // 把xml转换为URI,下载要用到的
          const encodedData = encodeURIComponent(data)
          // 获取到图的xml,保存就是把这个xml提交给后台
          this.xmlStr = data
          // 下载图的具体操作,改变a的属性,className令a标签可点击,href令能下载,download是下载的文件的名字
          if (data) {
            link.className = 'active'
            link.href = 'data:application/bpmn20-xml;charset=UTF-8,' + encodedData
            link.download = name
          }
        }
      },
      mounted () {
        // 获取到属性ref为“content”的dom节点
        this.container = this.$refs.content
        // 获取到属性ref为“canvas”的dom节点
        const canvas = this.$refs.canvas
    
        // 建模,官方文档这里讲的很详细
        this.bpmnModeler = new BpmnModeler({
          container: canvas,
          // 添加控制板
          propertiesPanel: {
            parent: '#js-properties-panel'
          },
          additionalModules: [
            // 左边工具栏以及节点
            propertiesProviderModule,
            // 右边的工具栏
            propertiesPanelModule
          ],
          moddleExtensions: {
            activiti: activitiModdleDescriptor
          }
        })
    
        // 下载画图
        let _this = this
        // 获取a标签dom节点
        const downloadLink = this.$refs.saveDiagram
        const downloadSvgLink = this.$refs.saveSvg
        // 给图绑定事件,当图有发生改变就会触发这个事件
        this.bpmnModeler.on('commandStack.changed', function () {
          _this.saveSVG(function (err, svg) {
            _this.setEncoded(downloadSvgLink, 'diagram.svg', err ? null : svg)
          })
    
          _this.saveDiagram(function (err, xml) {
            _this.setEncoded(downloadLink, 'diagram.bpmn', err ? null : xml)
          })
        })
    
        this.createNewDiagram(this.bpmnModeler)
      }
    }
    </script>
    
    <style lang="scss">
      /*左边工具栏以及编辑节点的样式*/
      @import 'bpmn-js/dist/assets/diagram-js.css';
      @import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css';
      @import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css';
      @import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';
      /*右边工具栏样式*/
      @import 'bpmn-js-properties-panel/dist/assets/bpmn-js-properties-panel.css';
      .containers{
        position: absolute;
        background-color: #ffffff;
        width: 100%;
        height: 90%;
      }
      .canvas{
        width: 100%;
        height: 100%;
      }
      .panel{
        position: absolute;
        right: 0;
        top: 0;
        width: 300px;
      }
      .buttons{
        position: absolute;
        left: 20px;
        bottom: 20px;
        &>li{
          display:inline-block;margin: 5px;
          &>a{
            color: #999;
            background: #eee;
            cursor: not-allowed;
            padding: 8px;
            border: 1px solid #ccc;
            &.active{
              color: #333;
              background: #fff;
              cursor: pointer;
            }
          }
        }
      }
    </style>
    

     

    展开全文
  • 后台框架:springboot2.1.2+activiti6.0.0+mybaits+maven+接口前端页面:html +vue.js 形式 jqueryajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署(特别注意,前端用的vue.js, 就是html页面引入vue.js...
  • 特别注意: Springboot 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮)后台框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+接口前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互...
  • 1.代码生成器:[正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个...
  • 前端:vue+bpmn-js实现activiti的流程设计器,后端Springboot+Activiti开发工作流前端:vue + bpmn-js项目,实现activiti设计器, 后端: springboot + activiti鉴于广大程序员们开发设计器苦不堪言以及后端不知道...
  • 前端:vue+bpmn-js实现activiti的流程设计器,后端Springboot+Activiti开发工作流前端:vue + bpmn-js项目,实现activiti设计器, 后端: springboot + activiti鉴于广大程序员们开发设计器苦不堪言以及后端不知道...
  • 基于以前做办公系统的经验,我就选择了activiti流程引擎,不过版本已经更新了好几个了,集成方式也变了。于是我开始找资料,大多都是后端集成的方式,包括前端代码也喜欢放在后端resources中,我感觉这种方式很不...
  • 后台框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+接口 前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 (特别注意,前端用的vue.js, 就是html页面引入vue...
  • 代码介绍 -------------本商品为 :springcloud + Springboot 微服务\分布式 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮)后台框架 :springcloud Greenwich.SR1 + springboot 2.1.4 + activiti6.0.0 + ...
  • 代码介绍 ------------- 本商品为 :springcloud + Springboot 微服务\分布式 ...后台框架 :springcloud Greenwich.SR1 + springboot 2.1.4 + activiti6.0.0 + mybaits + maven + json 接口 前端页面 :html +vue....
  • 后台框架:springboot2.1.2+activiti6.0.0+mybaits+maven+接口前端页面:html +vue.js 形式 jqueryajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署(特别注意,前端用的vue.js, 就是html页面引入vue.js...
  • Java后台生成Activiti流程图后,将图片流传送给vue前端,前端进行显示 1. Java端 A. Feign消费方 a1. 控制层端 @GetMapping(value = "/show_diagram") public void showDiagram(@RequestParam String ...
  • 后台框架:springboot2.1.2+activiti6.0.0+mybaits+maven+接口 前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 (特别注意,前端用的vue.js,就是html页面引入vue.js...
  • 后台框架:springboot2.1.2+activiti6.0.0+mybaits+maven+接口前端页面:html +vue.js 形式 jqueryajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署(特别注意,前端用的vue.js, 就是html页面引入vue.js...
  • 本商品为 :springcloud + Springboot 微服务\分布式 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架 :springcloud Greenwich.SR1 + springboot 2.1.4 + activiti6.0.0 + mybait...
  • 后台框架:springboot2.1.2+activiti6.0.0+mybaits+maven+接口前端页面:html +vue.js 形式 jqueryajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署(特别注意,前端用的vue.js, 就是html页面引入vue.js...
  • 1.代码生成器:[正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个...
  • 案例22.1 对比案例1,增加的内容(后台IDEA)2.2 对比案例1,增加的内容(前台VUE) 1.简介 在案例1的基础上进行完善,案例1,点击打开。 2. 案例2 2.1 对比案例1,增加的内容(后台IDEA) 查看当前流程图,当前任务...
  • 代码介绍 -------------本框架为 :springcloud + Springboot 微服务\分布式 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮)后台框架 :springcloud Greenwich.SR1 + springboot 2.1.4 + activiti6.0.0 + ...
  • 后台框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+接口 前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 (特别注意,前端用的vue.js, 就是html页面引入vue...
  • 案例62.1 对比案例5,增加的内容(后台IDEA)2.2 对比案例5,增加的内容(前台VUE) 1. 说明 在案例5的基础上进行完善,案例5,点击打开 2. 案例6 2.1 对比案例5,增加的内容(后台IDEA) 把自定义用户信息同步到...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 179
精华内容 71
关键字:

activitivue

vue 订阅