当前位置: 首页 > news >正文

网站使用cookies软件开发网站

网站使用cookies,软件开发网站,wordpress源神,如何做链接淘宝客的网站♥️作者:小宋1021 🤵‍♂️个人主页:小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

♥️作者:小宋1021
🤵‍♂️个人主页:小宋1021主页
♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!


        芋道集成的工作流十分好用,功能十分强大。相信我们在逐渐使用的过程之中就会发现有各种不同的业务需求,单一的提交审批→审核员审核,通过或者拒绝→反馈给用户。这种单一流程不够满足各种业务需求,有些时候我们就需要在审批的时候让审批人填写一些信息然后再审批通过。如下图:

        比如我现在接到一个需求就是宿舍预约审批,在员工提交住宿申请的时候需要宿舍管理员在审批的时候去分配宿舍,这样就需要用到了我们的流程表单功能,下面我来给大家详细介绍一下芋道流程表单如何配置以及使用,劳烦大家给一个小心心,谢谢大家。

        流程表单是在工作流程模块,流程管理菜单里的一个功能。

        点击新增可以新增一个新的流程表单

        左侧就是可以选择的表单控件,可以按照自己的需要去配置审批通过时想要填写的表单,我现在就以一个级联选择器为例子给大家演示一下如何使用。

        我们拖拽一个级联选择器到中间的空白处,就会出现一个选择框,同时右侧也会出现这个级联选择器的配置项。

        下面我来介绍一下几个比较关键的字段:

        1.字段 ID:组件对应的字段名用于与组件的数据进行绑定。字段名需以字母开头,以确保能够正确识别。这个字段是前端传给后端的标志,后端需要通过这个bedId去找到前端传过来的值。

        2.选项数据:选项数据可以选择静态数据和动态数据,静态数据就是在这个页面自己配置好的数据,也就是写死的数据,我们一般不会用到静态数据,而且静态数据偏简单所以我们这里使用动态数据,动态的在后端获取数据。

        选择完动态数据之后点击编辑数据配置动态数据项,我们在请求配置里配置好数据来源的请求地址、请求方法、返回的数据类型,然后我们就可以进行数据处理。

        由于我是选择的级联选择器,所以我后端传过来的是一颗树状结构的数据,需要进行数据处理。

        代码如下:

function parse(res, rule, api) {let arrObj = [];function transformData(data) {return data.map(item => ({label: item.placeName,value: item.id,children: item.children ? transformData(item.children) : null}));}if (res.code === 0) arrObj = transformData(res.data);console.log(arrObj, 'aawrawr');return arrObj;
}

        这个方法是把后端传过来的树状结构进行处理,比如我后端的场所名字是placeName,但是这里就必须转换成label,把id转换成value,需要和这里的字段对应,名字就是label,值是value,子节点是children,而且这串代码还把children里面的数据也转换成label和value的形式。如下图:

        最后再配置一下这个选择框的名字,其余的配置项都可以根据您的需求添加,那些都是锦上添花的功能,配置完以上这些就可以成功拿到数据了,其余的功能并不影响。如果还有问题欢迎大家来一起交流。

        最后我们点击预览看看能否拿到数据:

        非常成功,成功拿到数据,下面我们来看一下后端该如何接受这个字段。

 /*** NOT_START(-1, "未开始"),* RUNNING(1, "审批中"),* APPROVE(2, "审批通过"),* REJECT(3, "审批不通过"),* CANCEL(4, "已取消"),* <p>* RETURN(5, "已退回"),* <p>* <p>* 使用场景:* 1. 任务被向后【加签】时,它在审批通过后,会变成 APPROVING 这个状态,然后等到【加签】出来的任务都被审批后,才会变成 APPROVE 审批通过* <p>* APPROVING(7,"审批通过中"),* <p>* 使用场景:* 1. 任务被向前【加签】时,它会变成 WAIT 状态,需要等待【加签】出来的任务被审批后,它才能继续变为 RUNNING 继续审批* 2. 任务被向后【加签】时,【加签】出来的任务处于 WAIT 状态,它们需要等待该任务被审批后,它们才能继续变为 RUNNING 继续审批* WAIT(0,"待审批");** @param event 事件*/@Overrideprotected void onEvent(BpmProcessInstanceStatusEvent event) {DormAllocationDO oldDormAllocation = dormAllocationMapper.selectById(Long.parseLong(event.getBusinessKey()));if (CollUtil.isNotEmpty(event.getProcessVariables())) { // 合并前端传递的流程变量,以前端为准
//            //获取宿舍idif(event.getProcessVariables().containsKey("bedId")){List<Long> bedList = (List<Long>) event.getProcessVariables().get("bedId");int size = bedList.size();if (size >= 2) {// 2. 取倒数两位String bedId   = String.valueOf(bedList.get(size - 1));   // 床Long roomId  = Long.valueOf(String.valueOf(bedList.get(size - 2)));   // 房// 3. 分别保存oldDormAllocation.setBedNum(Integer.parseInt(bedId));oldDormAllocation.setDormId(roomId);}}}switch (event.getStatus()) {case -1://未开始break;case 0://待审批break;case 1://审批中break;case 2://审批通过oldDormAllocation.setStatusK1("2");//人脸信息传给设备setUserFace(oldDormAllocation.getUserId(),oldDormAllocation.getDormId());//抄送BpmTaskCopyReqVO bpmTaskCopyReqVO = new BpmTaskCopyReqVO();bpmTaskCopyReqVO.setId(oldDormAllocation.getProcessInstanceId());//查询所有岗位为宿舍管理员--7的用户idList<Long> dormAdministrators = adminUserMapper.ListUserIdByPost("7");bpmTaskCopyReqVO.setCopyUserIds(dormAdministrators);bpmTaskCopyReqVO.setReason("");bpmTaskService.copyTask(getLoginUserId(),bpmTaskCopyReqVO);break;case 3://审批不通过oldDormAllocation.setStatusK1("3");break;case 4://已取消oldDormAllocation.setStatusK1("4");break;case 5://已退回break;case 7://审批通过中break;}dormAllocationMapper.updateById(oldDormAllocation);}

        这是我的审批通过的全部方法,我们只需要看这一段即可,其余的都是参考:

if (CollUtil.isNotEmpty(event.getProcessVariables())) { // 合并前端传递的流程变量,以前端为准
//            //获取宿舍idif(event.getProcessVariables().containsKey("bedId")){List<Long> bedList = (List<Long>) event.getProcessVariables().get("bedId");int size = bedList.size();if (size >= 2) {// 2. 取倒数两位String bedId   = String.valueOf(bedList.get(size - 1));   // 床Long roomId  = Long.valueOf(String.valueOf(bedList.get(size - 2)));   // 房// 3. 分别保存oldDormAllocation.setBedNum(Integer.parseInt(bedId));oldDormAllocation.setDormId(roomId);}}}

        这里的bedId就是我们刚刚配置好的字段唯一id,这段代码会找这个bedId是否有值,如果有值的话就转化成一个Long类型的数组,因为是级联选择器所以传过来的包含所有的路径id,我们只需要倒数第一位(床位号),倒数第二位(宿舍号)即可,把这两条数据放入到实体类里即可,这样在审批时需要填写表单的功能就做完了。

        这个功能十分好用,工作流也是十几年的沉淀了,研究审批流、工作流是我们每一个初学者的必经之路,如果大家有什么问题欢迎加我我们一起交流,感谢您的支持。

http://www.dtcms.com/a/539649.html

相关文章:

  • 自己做的网址危险网站如何免费网络营销推广
  • 企业网站建设学习网站新闻百度收录
  • 自己做副业可以抢哪个网站平面设计网页设计专员
  • 北京移动网站建设重庆装修设计
  • 专业网站建设技术加强网站人才建设
  • 一家只做特卖的网站导购网站怎么做有特色
  • php网站开发实例教程源码游戏评测网站怎么做
  • 社交信息共享网站开发外包网站域名优势
  • 青海省住房和城乡建设部网站win7一键优化工具
  • 网站建设有哪些家企业如何做好网站运营
  • 建设银行手机版官方网站下载wordpress 豆瓣电台
  • 阿里网站制作需要多少钱昌平做网站的公司
  • 百度不收录哪些网站吗企业标志logo
  • 免费行情软件app网站大全下载免费长春哪有做网站公司
  • 安徽省建设厅网站打不开网站托管费
  • 沈阳建网站简捷的网站
  • wordpress快站怎么样WORDPRESS 土木坛子
  • 做网站的几个步骤企业所得税优惠政策最新2023规定公告
  • 怎么做网站滑动图片部分百度地图导航2021最新版
  • 专业网站设计制作费用云南省建设厅网站职称评审
  • wap网站开发流程要做网站
  • 网站企业业务员怎么做康保网站制作
  • 深圳国外网站设计进入网上商城
  • 深圳定制开发网站不用下载qq在线qq登录聊天
  • 双语网站后台怎么做网站建设预付款
  • 企业建站模板价格广州海珠做网站
  • 服装行业网站建设比较好沧州网站建设 熊掌号
  • 浙江立鹏建设有限公司网站aso排名优化
  • 在建工程查询网站360广告联盟怎么做网站
  • 网站建设教程资源市场推广方式有哪几种