GithubHelp home page GithubHelp logo

yiuman / bpmn-vue-activiti Goto Github PK

View Code? Open in Web Editor NEW
539.0 16.0 162.0 2.42 MB

基于Vue3.x + Vite + bpmn-js + element-plus + tsx 实现的Activiti流程设计器(Activiti process designer based on Vue3.x + Vite + BPMN-JS + Element-Plus + TSX implementation)

Home Page: https://yiuman.github.io/bpmn-vue-activiti/

License: MIT License

JavaScript 1.28% HTML 2.66% TypeScript 90.10% CSS 5.04% Dockerfile 0.31% Shell 0.62%
vue-next vue element-plus bpmn bpmn-js activiti tsx vite vue3 process

bpmn-vue-activiti's Introduction

bpmn-vue-activiti

项目简介

基于Vue3.x + Vite + bpmn-js + element-plus + tsx 实现的Activiti流程设计器

😃我是一个活生生的例子

😙 如果此项目对你有帮助,请记得给我一个小星星⭐

后端activiti7集成,请戳这里

友情链接: 蜜月大佬的vue2版本实现,请戳这里

项目特性

  1. 全新的vue技术栈+tsx
  2. 全数据驱动的模型组件,实现数据逻辑与组件的完全解耦

项目说明

bpmn相关的配置在src/bpmn目录下

  • conifg

    此目录下为bpmn相关节点的属性的数据驱动配置及相关逻辑(即主界面右手边的属性配置界面)

  • I18n

    翻译模块,里面定义了bpmn相关的中文翻译

  • resources

    定义此了activiti的moddle的Json,用于扩展bpmn适配activiti,提供给modeler使用

  • store.ts

    整个上下文的状态管理,里边获取并处理当前活动节点,初始化modeler,刷新节点等相关的主要操作

如果你需要扩展到你的项目中,你只需要在config/modules找到相关节点,并配置定义好你需要扩展的属性及实现相关逻辑即可,可参考现有实现的配置。

组件说明:相关使用到的组件都在src/components目录下

  • bpmn-actions 为主页面下按钮就按钮执行逻辑的组件
  • button-render 用于渲染iconfont按钮的组件
  • dynamic-binder 全数据启动的核心组件,用于对象的模型的组件、数据、取值、设值的解耦,在此项目中用于配置相关节点的属性配置
  • modeler bpmn-modeler
  • panel 流程节点的属性配置面板
  • sublist 基于element-plus ElTable的可编辑表格

项目截图

bpmn-vue-activiti's People

Contributors

auhouhs avatar dependabot[bot] avatar yiuman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bpmn-vue-activiti's Issues

Panel.tsx页面无法正常显示,什么原因???

    return () => (
      <>
        {contextState.businessObject && contextState.activeBindDefine && (
          <>
            <div
              class="bpmn-panel-shrinkage"
              onClick={() => (panelState.shrinkageOff = !panelState.shrinkageOff)}
            >
              {panelState.shrinkageOff ? (
                <i class="el-icon-s-fold" />
              ) : (
                <i class="el-icon-s-unfold" />
              )}
            </div>
            <div class="bpmn-panel" v-show={!panelState.shrinkageOff}>
              <div class="title">{bpmnContext.getActiveElementName()}</div>
              <ElCollapse class="bpmn-panel-collapse" v-model={panelState.elCollapses}>
                {contextState.activeBindDefine.map((groupItem) => {
                  return (
                    <ElCollapseItem name={groupItem.name} v-slots={getSlotObject(groupItem)} />
                  );
                })}
              </ElCollapse>
            </div>
          </>
        )}
      </>
    );

这部分代码
contextState.activeBindDefine永远是NULL,其结果返回也是NULL,导致panel部分不能正常显示。

请问可以整成组件发布到npm上嘛

我自己将代码下载想试着打包成组件,然后我在vite.config.ts里面配置了build.lib打包时候就会报错Invalid value "umd" for option "output.format" - UMD and IIFE output formats are not supported for code-splitting builds.
大佬,能帮忙看下嘛

没有activiti:FormProperty属性

我尝试自己添加

interface FromPropertyElement {
$type: string;
id: string;
type: string;
$attrs: FromPropertyAttrsElement;
}

interface FromPropertyAttrsElement {
name: string;
}

/**

  • 表单属性组配置
    */
    export const FormProperties: GroupProperties = {
    name: '表单属性',
    icon: 'el-icon-document-add',
    properties: {
    'extensionElements.formProperty': {
    component: SubList,
    columns: [
    {
    prop: 'id',
    label: '编码',
    align: 'center',
    },
    {
    prop: 'type',
    label: '类型',
    align: 'center',
    },
    {
    prop: 'name',
    label: '名称',
    align: 'center',
    },
    ],
    rules: {
    id: [{ required: true, message: '属性名不能为空' }],
    type: [{ required: true, message: '属性值不能为空' }],
    name: [{ required: true, message: '属性值不能为空' }],
    },
    getValue: (businessObject: ModdleElement): Array => {
    return businessObject?.extensionElements?.values
    ?.filter((item: FromPropertyElement) => item.$type === 'activiti:FormProperty')
    .map((elem: FromPropertyElement) => {
    return { id: elem.id, type: elem.type, name: elem?.$attrs?.name };
    })
    },
    setValue(businessObject: ModdleElement, key: string, value: []): void {
    const bpmnContext = BpmnStore;
    const moddle = bpmnContext.getModeler().get('moddle');
    const properties = moddle.create(activiti:FormProperty, {
    values: value.map((attr: { id: string; value: unknown }) => {
    return moddle.create(activiti:FormProperty, { name: attr.name, value: attr.value });
    }),
    });
    bpmnContext.updateExtensionElements('activiti:Properties', properties);
    },
    },
    },
    };

getValue 是可以的。
setValue 不知道这么搞

请问有QQ群没。

可以增加流程模拟嘛。。。

找了好几个,要么没流程模拟,要么属性不全,要么流程模拟不能用。。本来想自己加,无奈后端人员搞不定前端😭

安装依赖报错

image

node版本:v16.17.1
npm版本:8.15.0
电脑系统:win10
代码分支:main

请问怎么解决呀

任务监听器里的标签错误

任务监听器里的标签错误,不是activiti:executionListener,应该是activiti:taskListener,任务监听器里的标签怎么改成activiti:taskListener呢?Activiti7使用activiti:taskListener才有效

ServiceTask 服务任务实现方式如何配置properties

期望实现这个效果,image
image

现在想请问下这个属性如何配置
image
目前瞎取了个名字,主要是setValue 给activity:[class|expression] ,有个问题就是导入的bpmn文件不能解析到实现方式下拉框中
期待你的回复 3q

如何配置增加网关

你好, 我看网关的有4个配置, 但是现在只展示了一个互斥网关, 想在界面添加网关要如何配置? 谢谢

运行空白了

控制台 报错

Uncaught TypeError: Cannot read properties of undefined (reading 'modules')

所有表单输入值错误

1、GIT拉下代码后npm i 正常运行。
2、任意控件表单输入内容绑定渲染错误,不能即时渲染,如:
image
节点名称输入第一次1未渲染,输入第二次1渲染之前的内容
image
此处每个数字均输入2次
image
此处表单key输入内容为123456

端口只能是3000吗?

端口只能是3000吗?能改成其它的吗?有没有vue.config.js这种可以配置代理端口的地方呢,或者其它地方能配置?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.