steedos / steedos-platform

华炎魔方低代码平台,超强前后端在线编程能力。 | Steedos is an open-source alternative to Salesforce Low-Code Platform. 🤖 🎨 🚀
https://www.steedos.com
GNU Affero General Public License v3.0
1.4k stars 391 forks source link

[Feature]: 使用react flow来实现审批王流程图查看界面 #5197

Closed yinlianghui closed 1 year ago

yinlianghui commented 1 year ago

Summary 摘要

image

{data:instances(filters:["_id", "=", "Mo3CDsxu9PsjSddM5"]){
  _id,flow,traces,
    flow__expand{
      name,
      current,
      historys
    },
  _display:_ui{flow}
}}

第一步:上面的GraphQL基本上拿到了画流程图需要的instance及flow数据,但是出于性能考虑需要改为单独在自定义接口中实现上面的GraphQL数据查询功能。 接口中用ObjectQL来查询数据,不要用原来的db.xx.find这种meteor语法了,可参考写法:

const instance = require('@steedos/objectql').getObject('instances').aggregate({}, [
    {
        '$match': {
            '_id': 'cFLmxT54j2WMQ8C6v'
        }
    }, {
        '$project': {
            'flow_version': 1,
            'flow': 1,
            'lastTrace': {
                '$last': '$traces'
            }
        }
    }
])

第二步:微页面中有一个service,调用上面第一步做好的接口,拿到当前申请单需要的基础数据,然后使用react flow画出流血节点。

Why should this be worked on? 此需求的应用场景?

流程图及流程设计器重构。

tujiajun commented 1 year ago

https://github.com/wbkd/react-flow/issues/2665 若节点之间有来回互动,可能会导致流程图显示效果杂乱,若要优化流程图,可参考该issue,但最完美的解决方案是创建一个自定义节点