ruoyi-nbcio-plus基于vue3的flowable修正加签与跳转的前端问题

本文主要是介绍ruoyi-nbcio-plus基于vue3的flowable修正加签与跳转的前端问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/

更多nbcio-boot功能请看演示系统 

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://218.75.87.38:9888

1、后端增加一个接口

 /*** 查询用户列表,用于用户选择场景*/@SaCheckLogin@GetMapping("/selectUser")public TableDataInfo<SysUserVo> selectUser(SysUserBo user, PageQuery pageQuery) {return userService.selectPageUserList(user, pageQuery);}

2、WfIdentityMapper.xml最后增加一个d,否则多租户情况下会报错

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nbcio.workflow.mapper.WfIdentityMapper"><select id="selectPageUserList" resultType="java.util.Map">select user_id as userId, user_name as userName, nick_name as nickName, phonenumber as phonenumberfrom sys_user<where><if test="deptId != null">and dept_id = #{deptId}</if></where></select><select id="selectDeptList" resultType="java.util.Map">select dept_id as deptId, parent_id as parentId, dept_name as deptName, order_num as orderNumfrom sys_dept d</select>
</mapper>

3、跳转前端对话框代码修改如下

<!--跳转流程--><el-dialog :z-index="100" :title="jumpTitle" @cancel="jumpOpen = false"v-model="jumpOpen" :width="'40%'" append-to-body><template #header><span>跳转节点</span></template><el-form ref="jumpForm" :model="jumpForm" label-width="160px"><el-form-item label="跳转节点" prop="jumpType" :rules="[{ required: true, message: '请选择跳转节点', trigger: 'blur' }]"><a-tablesize="middle":columns="jumpNodeColumns":loading="jumpNodeLoading":pagination="false":dataSource="jumpNodeData":rowKey="(record) => record.id":rowSelection="rowSelection"/></el-form-item></el-form><template #footer><span class="dialog-footer"><a-button type="primary" @click="jumpOpen = false">取 消</a-button><a-button type="primary" @click="jumpComplete(true)">确 定</a-button></span></template></el-dialog>

实际上就是变量重新命名了,其它也没什么变selectedJumpRows,同时//selectedRowKeys: selectedRowKeys,这个部分注释掉

const jumpComplete = () => {if ( selectedJumpRows.value.length < 1 ) {proxy?.$modal.msgWarning('请选择跳转节点')return}// 流程信息jumpForm.taskId = route.query && route.query.taskId as string;;jumpForm.procInsId = route.params && route.params.procInsId as string;;//对formdesigner后续加签审批的时候需要用到jumpForm.comment = taskForm.comment;//目标选择的节点信息jumpForm.targetActId = selectedJumpRows.value[0].id;jumpForm.targetActName = selectedJumpRows.value[0].name;console.log("jumpForm=",jumpForm);jumpTask(jumpForm).then(res => {console.log(" jumpTask",res);if (res.code == 200) {proxy?.$modal.msgSuccess('跳转成功')jumpOpen.value = false;goBack();} else {proxy?.$modal.msgError('跳转失败:' + res.msg)}});

4、加签前端对话框

<!--加签流程--><el-dialog :z-index="100" title="addSignTitle" @cancel="addSignOpen = false"v-model="addSignOpen" :width="'40%'" append-to-body><template #header><span>{{ addSignTitle }}</span></template><el-form ref="addSignForm" :model="addSignForm" label-width="160px"><el-form-item label="加签类型" prop="addSignType" :rules="[{ required: true, message: '请选择加签类型', trigger: 'blur' }]"><el-radio-group v-model="addSignType" @change="changeAddSignType"><el-radio :value = "0" >前加签</el-radio><el-radio :value = "1" >后加签</el-radio><el-radio :value = "2" >多实例加签</el-radio></el-radio-group></el-form-item><el-form-item label="用户选择" prop="copyUserIds" :rules="[{ required: true, message: '请选择用户', trigger: 'blur' }]"><el-tag:key="index"v-for="(item, index) in addSignUser"closable:disable-transitions="false"@close="handleClose('next', item)">{{ item.nickName }}</el-tag><el-button class="button-new-tag" type="primary" icon="el-icon-plus" size="small" circle @click="onSelectAddSignUsers" /></el-form-item></el-form><template #footer><span class="dialog-footer"><el-button type="primary" @click="addSignOpen = false">取 消</el-button><el-button type="primary" @click="addSignComplete(true)">确 定</el-button></span></template></el-dialog>

主要问题也是  const addSignType = ref(0) //加签类型 不单独出来好像vue3操作有问题(vue2版本是放在addSignForm里),其它逻辑也没多大变化

/** 加签 */const handleAddSign = () => {taskFormRef.value.validate(valid => {if (valid) {addSignType.value = 0;addSignTitle.value = "前加签流程";addSignOpen.value = true;console.log("handleAddSign addSignForm",addSignForm)}});}const changeAddSignType = (val) => {addSignType.value = val;if(addSignType.value === 0) {addSignTitle.value = "前加签流程";}if(addSignType.value === 1) {addSignTitle.value = "后加签流程";}if(addSignType.value === 2) {addSignTitle.value = "多实例加签流程";}}/** 加签任务 */const addSignComplete = () => {addSignForm.value.addSignUsers = taskForm.addSignUsers;addSignForm.value.addSignType = addSignType.valueif (!addSignForm.value.addSignUsers ) {proxy?.$modal.msgError("请选择用户");return;}// 流程信息addSignForm.value.taskId = route.query && route.query.taskId as string;;addSignForm.value.procInsId = route.params && route.params.procInsId as string;;//对VForm3后续加签审批的时候需要用到addSignForm.value.comment = taskForm.comment;console.log("addSignForm=",addSignForm);if(addSignForm.value.addSignType === 2) {multiInstanceAddSignTask(addSignForm).then(response => {proxy?.$modal.msgSuccess(response.msg);addSignOpen.value = false;goBack();});}else {addSignTask(addSignForm.value).then(response => {proxy?.$modal.msgSuccess(response.msg);addSignOpen.value = false;goBack();});}}

5、效果图如下:

这篇关于ruoyi-nbcio-plus基于vue3的flowable修正加签与跳转的前端问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944048

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字