最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Bpmn-js自定义文件说明

    正文概述 掘金(MiYueFE)   2020-12-31   481

    前言

    在使用 bpmn-js 绘制流程图时,可能会存在需要开发者自己定义属性或者元素的情况,为了保证符合官方定义,对官方文档进行了汉化说明。以下说明基于个人理解,可能与真实作用有出入,希望大家指出不正确或者意义不明的地方,我好加以改正,谢谢!

    说明文件配置属性

    definitionJson = {
      "name": "self",
      "uri": "https://self",
      "prefix": "se", // 前缀
      "xml": {
        "tagAlias": "lowerCase" // xml 标签转为小写驼峰
      },
      "types": [ // 自定义标签类型数组
        {
          // name: 自定义标签名,在xml中显示为 se:attrOne 
          "name": "AttrOne",
          
          // isAbstract: 规定在实例文档中是否可以使用复杂类型。
          // 如果该值为 true,则元素不能直接使用该复杂类型,而是必须使用从该复杂类型派生的复杂类型。
          "isAbstract": true,
          
          /**
           * extends: Some meta-models require it to plug-in new properties that to certain existing model elements. 
           *          This can be acomplished using the extends field
           * 一些元模型要求它为某些现有模型元素插入新属性。可以使用扩展字段来完成
           * 比如 camunda 中的 camunda:FormalExpression extends => bpmn:FormalExpression,
           * 并且在camunda:FormalExpression 中声明的属性 Properties: { name: "resource", type: "String", isAttr: true }
           * 则创建的连线条件 moddle.create("bpmn:FormalExpression") 可以设置新定义属性 resource
           * 打印结果如下: businessObject: {
           *     $type: "bpmn:SequenceFlow"
           *     conditionExpression: { 
           *         $type: "bpmn:FormalExpression"
           *         language: "123123"
           *         resource: "123123123"
           *     }
           * }
           */
          "extends": [], // 扩展选中的类型属性,每次创建数组内的元素实例时都会自动插入新的属性AttrOne
          
          /**
           * superClass: Types can inherit from one or more super types by specifying the superClass property.
           * 指定向上继承所有超类的属性。
           * 例如 camunda:FormalExpression extends 
           * 	=> bpmn:FormalExpression superClass
           *	=> bpmn:Expression superClass
           *	=> bpmn:BaseElement
           * 按照类型结构层级顺序,依次将属性添加到该类型上
           * 如果继承其他自定义配置文件的属性(比如 b.json [ prefix: "b", types: [{ name: "TextB" }] ])
           * 则当前文件的superClass必须写完整的带前缀的名称 superClass: [ "b:TextB" ]
           * 如果要将该类型作为标签插入到xml中,继承的superClass超类中必须包含 BaseElement 或者 Element 类型
           */
          "superClass": [
            "Element"
          ],
          
          // 自定义标签属性
          "properties": [
            {
              // name: 属性名
              "name": "name",
              
              // type: 属性值类型,可以为任意基础类型或者其他自定义类型。
              // 比如属性值需要设置为另一个自定义类型 AttrTwo时,则 "type": "AttrTwo"
              "type": "String",
              
              // isAttr: 作为标签属性,体现为<se:attrOne name="xxx"></se:attrOne>
              "isAttr": true
              
              // isBody: 属性值插入到标签内部,体现为<se:attrOne>xxx</se:attrOne>; 
              // 另外 isBody 为 true 时,name 只能设置为 value
              // "isBody": false
              
              // isMany: 属性值是否用数组保存,注意与其他配置的互斥:type不能为String、Number等简单类型,isAttr不能为true等等
              // "isMany": true
              
              // default: 默认值
              // "default": "xxx"
              
              // redefines: 重新定义从超类型继承的属性、重写名称、类型和限定符
              // "redefines": String
              
              // isReference: 是否通过其 id 属性引用另一个对象作为属性值,通常在任务节点/网关等设置默认路径时使用
              // "isReference": false
              
              // "xml": {
              //	  serialize: 添加关于如何序列化的额外注释。支持的值:xsi -- 类型序列化为数据类型,而不是元素
              //      "serialize": "xsi:type"
              //  }
            },
            {
              "name": "value",
              "type": "Number",
              "isAttr": "true",
              "default": 2
            }
          ]
        },
        {
          "name": "AttrTwo",
          "superClass": [
            "Element"
          ],
          "meta": {
            "allowedIn": [ "*" ] // 允许进入哪些元素标签内
          },
          "properties": [
            {
              "name": "value",
              "type": "String",
              "isBody": true // 作为内容填充,体现为<se:attrOne>xxx</se:attrOne>
            }
          ]
        }
      ],
      // The enumerations and associations properties are reserved for future use.
      // 枚举和关联属性保留供将来使用。
      enumerations: [],
      associations: []
    }
    

    起源地下载网 » Bpmn-js自定义文件说明

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元