UNPKG

yyuap-bpm

Version:
274 lines (216 loc) 9.95 kB
0.6.6 系列 多语版本 主数据专用 ## Bpm流程组件 [![npm version](https://img.shields.io/npm/v/yyuap-bpm.svg)](https://www.npmjs.com/package/yyuap-bpm) [![NPM downloads](http://img.shields.io/npm/dt/yyuap-bpm.svg?style=flat)](https://npmjs.org/package/yyuap-bpm) ### 1. 简介 > 基于 [tinper-bee](http://bee.tinper.org/) 组件库对iUap原有UUI流程业务组件进行封装成React应用组件 > 查看更多应用组件前往 [https://github.com/tinper-acs](https://github.com/tinper-acs) 总共包含8种组件,分别是: 序号 | 组件名称 | 备注 ---|---|--- 1|BpmFlowChart|流程图 2|BpmTable|流程历史表格 3|BpmTaskApproval|流程审批面板 4|BpmButtonSubmit|流程提交按钮 5|BpmButtonRecall|流程收回按钮 6|BpmWrap|包含流程图和流程历史表格 7|BpmTaskApprovalWrap|流程整合审批面板 8|BpmTestCheckTable|测试任务中心表格组件 实际使用中不需要使用全部组件,按照自己的业务开发需求选择对应的应用组件即可 ### 2. 安装 - 前端工程内置 [tinper-bee](http://bee.tinper.org/) 组件库以及平台参照组件 [yyuap-ref](https://www.npmjs.com/package/yyuap-ref) - 通过npm下载使用 `npm install yyuap-bpm -S` ### 3. 使用 如果使用流程图相关组件那么导入: ```js import { BpmButtonSubmit,BpmButtonRecall,BpmTaskApprovalWrap,BpmFlowChart,BpmTable } from 'yyuap-bpm'; ``` 然后在render使用的时候传入相应组件需要的参数即可: ```js //提交流程按钮使用 <BpmButtonSubmit className="ml5" checkedArray={[{"id":"02a128d65c47405494f8f2baf087117e"}]} funccode="react" nodekey="003" refCode="newuser" url={`/sany_order/submit`} urlAssignSubmit={`/sany_order/assignSubmit`} filterRefUrl="/wbalone/common/filterRef" onSuccess={() => console.log('success')} onError={(err) => console.log(err)} onStart={() => console.log('start loading')} onEnd={() => console.log('end loading')} > <Button size='sm' shape="border"> <Icon type='uf-arrow-c-o-up' />提交 </Button> </BpmButtonSubmit> //收回流程按钮使用 <BpmButtonRecall className="ml5" checkedArray={[{"id":"02a128d65c47405494f8f2baf087117e"}]} url={`/sany_order/recall`} onSuccess={() => console.log('success')} onError={(err) => console.log(err)} onStart={() => console.log('start loading')} onEnd={() => console.log('end loading')} > <Button size='sm' shape="border"> <Icon type='uf-arrow-c-o-down' />收回 </Button> </BpmButtonRecall> //流程审批面板使用 <BpmTaskApprovalWrap id={rowData.id} onBpmFlowClick={() => console.log('这里是流程图按钮的事件,用于跳转到流程图组件页面') } appType={"1"} onSuccess={() => console.log('success')} onError={(err) => console.log(err)} onStart={() => console.log('start loading')} onEnd={() => console.log('end loading')} /> //流程图组件 <BpmFlowChart processDefinitionId={"eiap350694:3:e2e70948-9559-11e8-b376-02420cbf1b08"} processInstanceId={"1352ad87-955e-11e8-b376-02420cbf1b08"} /> //流程图历史表格组件 <BpmTable processDefinitionId={"eiap350694:3:e2e70948-9559-11e8-b376-02420cbf1b08"} processInstanceId={"1352ad87-955e-11e8-b376-02420cbf1b08"} /> ``` ### 4. API ##### BpmFlowChart(流程图) 序号 | 参数 | 类型 | 说明 ---|---|---|--- 1|url|string|请求流程图的接口默认走平台eiap-plus服务 2|processDefinitionId|string|流程图服务必备参数 3|processInstanceId|string|流程图服务必备参数 4|width|string|流程图宽度 5|height|string|流程图高度 ##### BpmTable(流程历史表格) 序号 | 参数 | 类型 | 说明 ---|---|---|--- 1|processDefinitionId|string|流程图服务必备参数 2|processInstanceId|string|流程图服务必备参数 ##### BpmTaskApproval(审批面板) 序号 | 参数 | 类型 | 说明 ---|---|---|--- 1|id|string|审批的任务ID 2|refCode|string|参照组件需要的refCode 3|appType|string|审批面板类型1=待审批、2=弃审 4|onStart|function|调用异步服务回调,一般用于请求Loading处理 5|onSuccess|function|调用后端服务成功后的回调 6|onError|function|调用后端服务错误后的回调 7|onEnd|function|结束的回调Loading ##### BpmButtonSubmit(流程提交) 序号 | 参数 | 类型 | 说明 ---|---|---|--- 1|checkedArray|array|传入的选中状态数组(流程单据前面的选择框数据) 2|funccode|string|功能节点编码 3|nodekey|string|nodekey 4|refCode|string|参照组件需要的refCode 5|url|string|提交流程所需要的地址,必须传入 6|urlAssignSubmit|string|流程指派最后提交的接口 7|filterRefUrl|string|参照组件需要的URL 8|onSuccess|function|提交流程业务成功后回调 9|onError|function|提交流程业务失败后回调{type:1,msg:"错误消息"}type=1代表逻辑错误,type=2代表服务器错误 10|className|string|传入class 11|onStart|function|调用异步服务回调,一般用于请求Loading处理 12|onEnd|function|结束的回调Loading 13|size|string|指派弹出modal的尺寸`sm`,`lg`,`xlg` 14|scrollY|number|指派演出modal内的表格滚动高度 15|isOne|bool|是否为一条单据提交默认是多条提交 ##### BpmButtonRecall(流程收回) 序号 | 参数 | 类型 | 说明 ---|---|---|--- 1|checkedArray|array|传入的选中状态数组(流程单据前面的选择框数据) 2|url|string|提交流程所需要的地址,必须传入 3|onSuccess|function|提交流程业务成功后回调 4|onError|function|提交流程业务失败后回调{type:1,msg:"错误消息"}type=1代表逻辑错误,type=2代表服务器错误 5|className|string|传入class 6|onStart|function|调用异步服务回调,一般用于请求Loading处理 7|onEnd|function|结束的回调Loading ##### BpmWrap(流程图+历史表格) > 基于BpmFlowChart和BpmTable组合使用的流程查看组件 当传入id(TaskID)、processDefinitionId、processInstanceId的时候不请求getbillid接口 当只传入id(单据ID)的时候,组件会从getbillid处请求所需要的参数 序号 | 参数 | 类型 | 说明 ---|---|---|--- 1|id|string|传入的ID(注:只传ID的话,就是单据ID组件会去请求getbillid接口拿到流程需要的参数,如果传递3个参数的话ID就是TaskID,processDefinitionId,processInstanceId) 2|processDefinitionId|string|processDefinitionId 3|processInstanceId|string|processInstanceId ##### BpmTaskApprovalWrap(审批面板整合) 序号 | 参数 | 类型 | 说明 ---|---|---|--- 1|id|string|传入的ID(注:只传ID的话,就是单据ID组件会去请求getbillid接口拿到流程需要的参数,如果传递3个参数的话ID就是TaskID,processDefinitionId,processInstanceId) 2|refCode|string|参照组件需要的refCode 3|processDefinitionId|string|processDefinitionId 4|processInstanceId|string|processInstanceId 5|onBpmFlowClick|function|流程图按钮单击事件,一般用来给流程图页面跳转路由和参数使用 6|appType|string|审批面板类型1=待审批、2=弃审、3=无显示 7|onStart|function|调用异步服务回调,一般用于请求Loading处理 8|onSuccess|function|调用后端服务成功后的回调 9|onError|function|调用后端服务错误后的回调 10|onEnd|function|结束的回调Loading ##### BpmTestCheckTable(测试用不要使用在项目里) > 用来开发的时候测试任务中心表格,禁止用于生产阶段切记!!! ### 5. 指南 1. 审批面板内的流程图按钮事件如何编写? 首先使用审批面板组件 ```js //导入流程审批面板整合组件 import { BpmTaskApprovalWrap } from 'yyuap-bpm'; ``` 导入组件后,使用我们的组件,传入对应的props,这里主要讲解流程图按钮的后续事件如何做`onBpmFlowClick` ```js <BpmTaskApprovalWrap id={rowData.id} onBpmFlowClick={() => { this.onClickToBPM(rowData) }}//拿到我们的行数据,主要用id appType={appType} onStart={this.onBpmStart} onEnd={this.onBpmEnd} onSuccess={this.onBpmSuccess} onError={this.onBpmError} /> ``` 这里面的`onBpmFlowClick`就是我们需要传入的事件,也就是点击流程图按钮,触发页面跳转带着相应的参数传给我们的流程图页面去使用 编写按钮内的事件 ```js // 跳转到流程图 onClickToBPM = (rowData) => { actions.routing.push({ pathname: 'example-chart',//跳转到我们写好的路由流程图那里 /#/templates/example-chart?id=46652dd9900a4f0ca6372eb42a890c83 search: `?id=${rowData.id}`//构建我们需要的单据ID传入即可,组件内部会请求对应的参数 }) } ``` 上面就设置好我们流程图按钮带着单据id跳转到流程图路由页面了,接下来去编写最终的流程图页面,一般来说脚手架工程里面已经写好了 ```js //导入我们需要的流程图整合组件,包含流程图和历史审批面板表格 import { BpmWrap } from 'yyuap-bpm'; //以及我们需要使用的参数解析组件 import queryString from 'query-string'; ``` 然后在我们的render里就可以写组件的使用 **注意这里,如果用户传入id那么processDefinitionId和processInstanceId就无需设置,它会发送请求查询该参数** **如果三个参数都传递了,那么就不会发送请求,直接调用最终后台接口显示流程图和历史数据表格** ```js render() { let { id, processDefinitionId, processInstanceId } = queryString.parse(this.props.location.search); return ( <div> <BpmWrap id={id} processDefinitionId={processDefinitionId} processInstanceId={processInstanceId} /> </div> ); } ```  ### 6. Change Log [Change Log](https://github.com/tinper-acs/yyuap-bpm/releases)