Browse Source

采购退库流程办理

master
yxt_djz 3 years ago
parent
commit
6c23829652
  1. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/flow/FlowTaskVo.java
  2. 15
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java
  3. 24
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java
  4. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowDto.java
  5. 13
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowQuery.java
  6. 8
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java
  7. 16
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml
  8. 35
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java
  9. 252
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java
  10. 31
      anrui-scm/anrui-scm-ui/src/api/flow/vehicleReturn.js
  11. 1
      anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/workflow/baseoutsourcingapplication.vue
  12. 1
      anrui-scm/anrui-scm-ui/src/views/supplychain/caigoutuiku/caigoutuikuAdd.vue
  13. 206
      anrui-scm/anrui-scm-ui/src/views/workFlow/caigoutuikuFlow/caigoutuiku.vue
  14. 44
      anrui-scm/anrui-scm-ui/src/views/workFlow/caigoutuikuFlow/caigoutuikuEdit.vue
  15. 47
      anrui-scm/anrui-scm-ui/src/views/workFlow/caigoutuikuFlow/caigoutuikuInfo.vue
  16. 1
      anrui-system-ui/src/views/flow/doneList.vue
  17. 13
      anrui-system-ui/src/views/flow/todoList.vue

3
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/flow/FlowTaskVo.java

@ -18,7 +18,8 @@ import java.util.Map;
@ApiModel("工作流任务相关--请求参数")
@Data
public class FlowTaskVo {
@ApiModelProperty("businessSid ")
private String businessSid;
@ApiModelProperty("任务Id")
private String taskId;

15
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java

@ -40,4 +40,19 @@ public class ScmVehicleReturnDto implements Dto {
private String money;
@ApiModelProperty(value = "车辆列表")
private List<ScmVehicleReturnDetailsDto> detailsList = new ArrayList<>();
@ApiModelProperty("流程定义的id")
private String procDefId;
@ApiModelProperty("环节定义的sid")
private String taskDefKey;
@ApiModelProperty("流程实例的sid")
private String instanceId;
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("业务sid")
private String businessSid;
@ApiModelProperty("comment")
private String comment;
}

24
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java

@ -1,9 +1,11 @@
package com.yxt.anrui.scm.api.scmvehiclereturn;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
@ -44,24 +46,32 @@ public interface ScmVehicleReturnFeign {
@ResponseBody
ResultBean submitVehicleReturn(@RequestBody ScmVehicleReturnDto scmVehicleReturnDto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
@ResponseBody
public ResultBean complete(@RequestBody ScmVehicleReturnFlowQuery scmVehicleReturnFlowQuery);
@ApiOperation(value = "驳回任务")
@PostMapping("/reject")
@ResponseBody
ResultBean reject(@RequestBody ScmVehicleReturnFlowDto dto);
@ApiOperation(value = "终止任务")
@PostMapping("/breakProcess")
@ResponseBody
ResultBean breakProcess(@RequestBody ScmVehicleReturnFlowDto dto);
ResultBean breakProcess(@RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "撤回任务")
@PostMapping("/revokeProcess")
@ResponseBody
ResultBean revokeProcess(@RequestBody ScmVehicleReturnFlowDto dto);
ResultBean revokeProcess( @ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "获取上一个环节")
@PostMapping("/getPreviousNodesForReject")
@ResponseBody
ResultBean getPreviousNodesForReject(@ApiParam(value = "变量集合,json对象") @RequestBody ScmVehicleReturnFlowDto dto);
@ApiOperation("提交")
@PostMapping("/getNextNodesForSubmit")
@ResponseBody
ResultBean getNextNodesForSubmit(@RequestBody ScmVehicleReturnDto scmVehicleReturnDto);
@ApiOperation(value = "驳回任务")
@PostMapping("/reject")
@ResponseBody
ResultBean taskReject(@RequestBody FlowTaskVo flowTaskVo);
}

3
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowDto.java

@ -49,5 +49,6 @@ public class ScmVehicleReturnFlowDto implements Serializable {
@ApiModelProperty("审批组")
private List<String> candidateGroups = new ArrayList<>();
@ApiModelProperty("taskDefKey")
private String taskDefKey;
}

13
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowQuery.java

@ -4,6 +4,8 @@ import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/4/12 22:18
@ -23,6 +25,15 @@ public class ScmVehicleReturnFlowQuery implements Query {
private String userSid;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "taskDefKey")
private String taskDefKey;
/**
* 当前用户部门的全路径
*/
private String orgSidPath;
/**
* 业务参数按需传递
*/
private Map<String, Object> formVariables;
}

8
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java

@ -6,9 +6,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturn;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDetailsVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDto;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Map;
/**
* @Author dimengzhe
@ -31,4 +35,8 @@ public interface ScmVehicleReturnMapper extends BaseMapper<ScmVehicleReturn> {
ScmVehicleReturnDetailsVo details(String sid);
@Select("select * from scm_vehicle_return where sid=#{sid} ")
ScmVehicleReturnDto getBySid(@Param("sid")String sid);
int updateFlowFiled(Map<String, Object> map);
}

16
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml

@ -27,4 +27,20 @@
from scm_vehicle_return
where sid = #{sid}
</select>
<update id="updateFlowFiled">
UPDATE scm_vehicle_return
SET nodeState=#{nodeState}, taskDefKey=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, instanceId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
</mapper>

35
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java

@ -1,12 +1,18 @@
package com.yxt.anrui.scm.biz.scmvehiclereturn;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
/**
@ -50,22 +56,35 @@ public class ScmVehicleReturnRest implements ScmVehicleReturnFeign {
}
@Override
public ResultBean complete(ScmVehicleReturnFlowQuery scmVehicleReturnFlowQuery) {
return scmVehicleReturnService.complete(scmVehicleReturnFlowQuery);
public ResultBean getNextNodesForSubmit(ScmVehicleReturnDto scmVehicleReturnDto) {
return scmVehicleReturnService.getNextNodesForSubmit(scmVehicleReturnDto);
}
@Override
public ResultBean reject(ScmVehicleReturnFlowDto dto) {
return scmVehicleReturnService.reject(dto);
public ResultBean taskReject(FlowTaskVo flowTaskVo) {
return scmVehicleReturnService.taskReject(flowTaskVo);
}
@Override
public ResultBean breakProcess(ScmVehicleReturnFlowDto dto) {
return scmVehicleReturnService.breakProcess(dto);
public ResultBean complete(ScmVehicleReturnFlowQuery bvd) {
BusinessVariables bv=new BusinessVariables();
BeanUtil.copyProperties(bvd,bv);
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId());
bv.setFormVariables(BeanUtil.beanToMap(bvd));
return scmVehicleReturnService.complete(bv);
}
@Override
public ResultBean breakProcess(FlowTaskVo flowTaskVo) {
return scmVehicleReturnService.breakProcess(flowTaskVo);
}
@Override
public ResultBean revokeProcess( FlowTaskVo flowTaskVo) {
return scmVehicleReturnService.revokeProcess(flowTaskVo);
}
@Override
public ResultBean revokeProcess(ScmVehicleReturnFlowDto dto) {
return scmVehicleReturnService.revokeProcess(dto);
public ResultBean getPreviousNodesForReject(ScmVehicleReturnFlowDto dto) {
return scmVehicleReturnService.getPreviousNodesForReject(dto);
}
}

252
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

@ -5,9 +5,12 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.SubmitBaseOutSourcingApplicationDto;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleUpdateQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTask;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
@ -18,8 +21,10 @@ import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.*;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo;
@ -101,9 +106,9 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
return rb.setMsg("该申请不存在");
}
//验证数据是否可更改
if (checkCouldChange(sid)) {
/* if (checkCouldChange(sid)) {
return rb.setMsg("该条信息不可更改");
}
}*/
if (scmVehicleReturnDto.getDetailsList().size() == 0) {
return rb.setMsg("请选择需要退库的车辆");
}
@ -183,12 +188,69 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
}
public ResultBean submitVehicleReturn(ScmVehicleReturnDto scmVehicleReturnDto) {
ResultBean<SysUserInfoVo> sysUserInfoVoResultBean = sysUserFeign.selectUserInfoByUserSid(scmVehicleReturnDto.getUserSid());
//取组织架构的全路径sid
SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(sysUserInfoVoResultBean.getData().getStaffSid()).getData();
String orgSidPath = sysStaffOrg.getOrgSidPath();
Map<String, Object> variables = BeanUtil.beanToMap(scmVehicleReturnDto);
ResultBean rb = ResultBean.fireFail();
String orgSid = checkUserOrg(scmVehicleReturnDto.getUserSid());
if (scmVehicleReturnDto.getDetailsList().size() == 0) {
return rb.setMsg("请选择需要退库的车辆");
}
ResultBean resultBean = saveOrUpdateVehicleReturn(scmVehicleReturnDto);
String busSid = scmVehicleReturnDto.getBusinessSid();
if (org.apache.commons.lang3.StringUtils.isBlank(busSid)) {
ResultBean resultBean = saveOrUpdateVehicleReturn(scmVehicleReturnDto);
// ResultBean resultBean = saveOrUpdateDto(dto);//insert
String businessSid = resultBean.getData().toString();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(scmVehicleReturnDto, bv);
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(scmVehicleReturnDto.getUserSid());
variables.put("businessSid", businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId());
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
return resultBean1;
}
Map<String,Object> mm= submitBusinessData(scmVehicleReturnDto, busSid);
int r=(int)mm.get("r");
ScmVehicleReturnDto booad = (ScmVehicleReturnDto) mm.get("bean");
if (r == 0) {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
ResultBean resultBean = saveOrUpdateVehicleReturn(scmVehicleReturnDto);//update
String businessSid = resultBean.getData().toString();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(scmVehicleReturnDto, bv);
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(scmVehicleReturnDto.getUserSid());
variables.put("businessSid", businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId());
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
if (r == 1) {
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
return resultBean1;
} else if (r == 2) {
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(org.apache.commons.lang3.StringUtils.isNotBlank(scmVehicleReturnDto.getComment()) ? scmVehicleReturnDto.getComment() : "重新提交");
bv.setInstanceId(booad.getInstanceId());
return complete(bv);
}
return ResultBean.fireFail();/*
if (resultBean.getSuccess()) {
String businessSid = resultBean.getData().toString();
//判断车辆的状态是否包含采购退库的状态,如果是的话,返回审核失败
@ -202,7 +264,6 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
}
}
}
Map<String, Object> variables = new HashMap<>();
variables.put("businessSid", businessSid);
if (Integer.parseInt(scmVehicleReturnDto.getMoney()) > 0) {
variables.put("isLoan", true);
@ -210,16 +271,18 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
variables.put("isLoan", false);
}
variables.put("orgSid", orgSid);//部门sid
ResultBean businessResultBean =null;// flowableFeign.businessStart(ProcDefEnum.SCMVEHICLERETURN.getProDefId(), scmVehicleReturnDto.getUserSid(), variables);
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(scmVehicleReturnDto, bv);
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(scmVehicleReturnDto.getUserSid());
variables.put("businessSid", businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId());
ResultBean<UpdateFlowFieldVo> businessResultBean =flowableFeign.startProcess(bv);//flowableFeign.businessStart(bv);
if (businessResultBean.getSuccess() && businessResultBean.getData() != null) {
Map<String, String> map = (Map<String, String>) businessResultBean.getData();
//更新退库业务表中的流程状态
modifyFlowState(businessSid,
ProcDefEnum.SCMVEHICLERETURN.getProDefId(),//procDefId
map.get("nodeState"),//state
map.get("procInsId"),//procInstSid
map.get("taskDefKey")//nodeSid
);
UpdateFlowFieldVo uff = businessResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
} else {
return rb.setMsg(businessResultBean.getMsg());
}
@ -227,9 +290,25 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
return rb.setMsg(resultBean.getMsg());
}
return resultBean;
return resultBean;*/
}
private synchronized Map<String,Object> submitBusinessData(ScmVehicleReturnDto dto,
String businessSid ) {
Map<String,Object> map=new HashMap<>();
int r = 0;
ScmVehicleReturnDto booad = baseMapper.getBySid(businessSid);
String businessTaskid = booad.getTaskId();
if (org.apache.commons.lang3.StringUtils.isBlank(businessTaskid) && org.apache.commons.lang3.StringUtils.isBlank(dto.getTaskId())) {
// 新提交 taskid都是空的
r = 1;
} else if (org.apache.commons.lang3.StringUtils.isNotBlank(businessTaskid) && businessTaskid.equals(dto.getTaskId())) {//只有数据一致的时候才能进行下一步
r = 2;
}
map.put("r",r);
map.put("bean",booad);
return map;
}
/**
* 查询用户是否设置了部门
* *
@ -247,58 +326,42 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
return orgSid;
}
private void modifyFlowState(String businessSid, String proDefId, String nodeState,
String procInsId,
String taskDefKey) {
baseMapper.modifyFlowState(businessSid,
proDefId,//procDefId
nodeState,//state
procInsId,//procInstSid
taskDefKey);
}
/**
* 办理流程
*
* @param scmVehicleReturnFlowQuery 查询条件
* @return
*/
public ResultBean complete(ScmVehicleReturnFlowQuery scmVehicleReturnFlowQuery) {
public ResultBean complete( BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
//查询对象转换为map集合
Map<String, Object> variables = Convert.toMap(String.class, Object.class, scmVehicleReturnFlowQuery);
BusinessVariables bv = BusinessVariables.builder().build();
bv.setFormVariables(variables);
boolean isTrue = isTrue(scmVehicleReturnFlowQuery.getBusinessSid());
boolean isTrue = isTrue(bv.getBusinessSid());
if (isTrue) {
return rb.setMsg("该申请中包含车辆状态已是采购退库状态的车辆");
}
ResultBean<FlowTask> resultBean = flowTaskFeign.businessComplete(bv);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = "";
String taskDefKey = "";
Map<String, Object> map = new HashMap<>();
map.put("businessSid", variables.get("businessSid").toString());
if (resultBean.getData() != null) {
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(resultBean.getData().getProcInsId());
if (listResultBean.getSuccess() && listResultBean.getData().size() != 0) {
nodeState = listResultBean.getData().get(0).getName_();
taskDefKey = listResultBean.getData().get(0).getTask_def_key_();
} else {
nodeState = ProcessStateEnum.FINISHED.getStateName();
taskDefKey = "Event_end";
map.put("flowState", SysFormLinkFlowStateEnum.FINISH.getCode());
updateByVinNo(scmVehicleReturnFlowQuery.getBusinessSid());
bv.getFormVariables().put("isLoan",true);
ScmVehicleReturnDto booad = baseMapper.getBySid(bv.getBusinessSid());
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(bv.getTaskId())) { //只有数据一致的时候才能进行下一步
ResultBean<UpdateFlowFieldVo> rb1 = flowableFeign.handleProsess(bv);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb1.getData());
updateFlowFiled(stringObjectMap);
return rb1;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
sysFormLinkFeign.updateFiled(map);
return rb.success();
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public Boolean isTrue(String businessSid) {
@ -363,8 +426,21 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
return new ResultBean().success();
}
public ResultBean breakProcess(ScmVehicleReturnFlowDto dto) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
public ResultBean breakProcess(com.yxt.anrui.scm.api.flow.FlowTaskVo flowTaskVo) {
FlowTaskVo fl = new FlowTaskVo();
ScmVehicleReturnDto booad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(flowTaskVo.getBusinessSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(fl);
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
/* FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean resultBean = flowTaskFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
@ -376,10 +452,25 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
map.put("taskDefKey", "Event_end");
map.put("flowState", SysFormLinkFlowStateEnum.BREAK.getCode());
sysFormLinkFeign.updateFiled(map);
return resultBean.success();
return resultBean.success();*/
}
public ResultBean revokeProcess(ScmVehicleReturnFlowDto dto) {
public ResultBean revokeProcess(com.yxt.anrui.scm.api.flow.FlowTaskVo flowTaskVo) {
ScmVehicleReturnDto booad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
String businessTaskid = booad.getTaskId();
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(flowTaskVo.getBusinessSid());
fl.setUserSid(flowTaskVo.getUserSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(fl);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(stringObjectMap);
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
/*
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(flowTaskVo);
@ -400,7 +491,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
map.put("taskDefKey", taskDefKey);
}
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
return new ResultBean().success();*/
}
public ResultBean<ScmVehicleReturnDetailsVo> details(String sid) {
@ -428,4 +519,49 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
delBySids(sidsList);
return rb.success().setMsg("删除成功");
}
public ResultBean getNextNodesForSubmit(ScmVehicleReturnDto scmVehicleReturnDto) {
BusinessVariables bv = new BusinessVariables();
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId());
bv.setTaskDefKey(scmVehicleReturnDto.getTaskDefKey());
bv.setFormVariables(BeanUtil.beanToMap(scmVehicleReturnDto));
bv.getFormVariables().put("isLoan",true);
ResultBean processCirculationNodesByMap = flowTaskFeign.getNextNodesForSubmit(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean getPreviousNodesForReject(ScmVehicleReturnFlowDto dto) {
BusinessVariables bv = new BusinessVariables();
bv.setTaskDefKey(dto.getTaskDefKey());
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId());
bv.setFormVariables(BeanUtil.beanToMap(dto));
ResultBean processCirculationNodesByMap = flowTaskFeign.getPreviousNodesForReject(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean taskReject(com.yxt.anrui.scm.api.flow.FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
ScmVehicleReturnDto booad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
ScmVehicleReturnDto boad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl);
UpdateFlowFieldVo data = resultBean.getData();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData());
stringObjectMap.put("taskDefKey", data.getTaskDefKey());
stringObjectMap.put("procInstSid", boad.getInstanceId());
stringObjectMap.put("procDefId", boad.getProcDefId());
stringObjectMap.put("nodeState", data.getNodeState());
updateFlowFiled(stringObjectMap);
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
}

31
anrui-scm/anrui-scm-ui/src/api/flow/vehicleReturn.js

@ -1,10 +1,32 @@
import request from '@/utils/request'
///scm/v1/scmvehiclereturn/listPage'
export default {
getPreviousNodesForReject: function(formobj) {
return request({
url: '/scm/v1/scmvehiclereturn/getPreviousNodesForReject',
method: 'post',
data: formobj,
headers: {
'Content-Type': 'application/json'
}
})
},
getNextNodesForSubmit: function(data) {
return request({
url: '/scm/v1/scmvehiclereturn/getNextNodesForSubmit',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
// 同意任务
agreeTask: function(params) {
return request({
url: '/portal/v1/flow/complete',
url: '/scm/v1/scmvehiclereturn/complete',
method: 'post',
data: params,
headers: {
@ -15,7 +37,7 @@ export default {
// 驳回任务
rejectTask: function(params) {
return request({
url: '/portal/v1/flow/reject/' + params.businessSid,
url: '/scm/v1/scmvehiclereturn/reject',
method: 'post',
data: params,
headers: {
@ -26,7 +48,7 @@ export default {
// 终止任务
breakTask: function(params) {
return request({
url: '/portal/v1/flow/breakProcess/' + params.businessSid,
url: '/scm/v1/scmvehiclereturn/breakProcess',
method: 'post',
data: params,
headers: {
@ -37,7 +59,7 @@ export default {
// 撤回任务
revokeTask: function(params) {
return request({
url: '/portal/v1/flow/revokeProcess/' + params.userSid + '/' + params.businessSid,
url: '/scm/v1/scmvehiclereturn/revokeProcess',
method: 'post',
data: params,
headers: {
@ -45,5 +67,4 @@ export default {
}
})
}
}

1
anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/workflow/baseoutsourcingapplication.vue

@ -285,7 +285,6 @@ export default {
this.nextNode=arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
});
},

1
anrui-scm/anrui-scm-ui/src/views/supplychain/caigoutuiku/caigoutuikuAdd.vue

@ -288,7 +288,6 @@
},
handleSubmit() {
const _this = this
console.log('111222333',this.formobj)
this.$refs['form_obj'].validate(valid => {
if (valid) {
this.submitdisabled = true

206
anrui-scm/anrui-scm-ui/src/views/workFlow/caigoutuikuFlow/caigoutuiku.vue

@ -85,6 +85,49 @@
</div>
<!--End 添加修改部分-->
</div>
<!-- 选择待办人 的弹出框-->
<el-dialog title="选择待办人" :visible.sync="nodeDialogVisible" width="80%">
<el-form label-position="right" class="formadd" >
<el-row>
<el-col :span="4" class="tleftb">当前环节</el-col>
<el-col :span="20" class="trightb">
<el-form-item prop="purchasingUnitName"><span>{{ formobj.taskName }}->{{ nextNode.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">意见</el-col>
<el-col :span="20" class="trightb">
<el-input size="small" v-model="formobj.comment" placeholder="审批意见" class="addinputw" clearable ></el-input>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="agree"> </el-button>
<el-button type="info " size="mini" @click="closeNodeDialog"> </el-button>
</div>
</el-form>
</el-dialog>
<!-- 选择待办人 的弹出框-->
<el-dialog title="选择待办人" :visible.sync="nodeDialogVisibleForReject" width="80%">
<el-form label-position="right" class="formadd" >
<el-row>
<el-col :span="4" class="tleftb">当前环节</el-col>
<el-col :span="20" class="trightb">
<el-form-item prop="purchasingUnitName"><span>{{ formobj.taskName }}->{{ nextNode.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">意见</el-col>
<el-col :span="20" class="trightb">
<el-input size="small" v-model="formobj.comment" placeholder="审批意见" class="addinputw" clearable ></el-input>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="reject"> </el-button>
<el-button type="info " size="mini" @click="closeNodeDialog"> </el-button>
</div>
</el-form>
</el-dialog>
</div>
</template>
@ -96,19 +139,30 @@
name: 'caigoutuiku',
data() {
return {
nodeDialogVisibleForReject:false,
nodeDialogVisible:false,
isXuanche: false,
viewTitle: '',
dialogStatus: '',
index: 0,
list: [],
//
nextNode:{},
//
formobj: {
orgSidPath: window.sessionStorage.getItem('orgSidPath'),
userSid: window.sessionStorage.getItem('userSid'),
sid: '', // sid
applicationCode: '',
name: window.sessionStorage.getItem('name'),
createTime: '',
userSid: window.sessionStorage.getItem('userSid'), // sid
detailsList: []
detailsList: [],
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
taskDefKey:'',
taskName:''
},
agreeList: { //
businessSid: '',
@ -131,39 +185,58 @@
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
obj:{},
rules: {},
disabled: false
}
},
created() {
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
this.obj=obj;
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
this.showInfo(obj.businessSid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.agreeList.businessSid = sid
this.agreeList.businessSid = obj.businessSid
this.agreeList.instanceId = obj.instanceId
this.agreeList.taskId = obj.taskId
this.agreeList.taskDefKey = obj.taskDefKey
this.agreeList.taskName = obj.taskName
//
this.regectList.businessSid = sid
this.regectList.businessSid = obj.businessSid
this.regectList.instanceId = obj.instanceId
this.regectList.taskId = obj.taskId
//
this.stopList.businessSid = sid
this.stopList.businessSid = obj.businessSid
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 600 + 'px'
}
}, '*')
},
methods: {
reject(){
if(this.formobj.comment==''){
alert('请填写审批意见!');
}
this.handleReject();
},
//
closeNodeDialog(){
this.nodeDialogVisible = false
this.nodeDialogVisibleForReject=false
},
// ===
handleReturn() {
this.formobj.sid = ''
@ -177,7 +250,7 @@
})
this.dialogStatus = 'edit'
this.viewTitle = '【编辑】车辆采购退库申请'
req.detailsInfo(sid).then(resp => {
req.detailsInfo({'sid':sid}).then(resp => {
const data = resp.data
this.formobj = data
}).catch(e => {
@ -192,20 +265,52 @@
//
openAgree() {
this.$confirm('是否确认执行同意操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.handleAgree()
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消同意'
//id
this.formobj.businessSid = this.obj.businessSid
this.formobj.instanceId = this.obj.instanceId
this.formobj.taskId = this.obj.taskId
this.formobj.taskDefKey = this.obj.taskDefKey
this.formobj.taskName = this.obj.taskName
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.orgSidPath = window.sessionStorage.getItem('orgSidPath')
request.getNextNodesForSubmit(this.formobj).then(resp=>{
if (resp.success) {
var arr= resp.data;
this.nextNode=arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
});
},
//
agree() {
if(this.formobj.comment==''){
alert('请填写审批意见!');
return;
}
//
//sid
//
request.agreeTask(this.formobj).then((response) => {
if (response.code === '200') {
this.nodeDialogVisible=false;
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
})
}
})
},
/** 同意任务 */
handleAgree() {
@ -231,7 +336,7 @@
},
//
openReject() {
this.$confirm('是否确认执行驳回操作', '提示', {
/* this.$confirm('', '', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@ -244,11 +349,31 @@
type: 'info',
message: '已取消驳回'
})
})
})*/
this.formobj.businessSid = this.obj.businessSid
this.formobj.instanceId = this.obj.instanceId
this.formobj.taskId = this.obj.taskId
this.formobj.taskDefKey = this.obj.taskDefKey
this.formobj.taskName = this.obj.taskName
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.orgSidPath = window.sessionStorage.getItem('orgSidPath')
request.getPreviousNodesForReject(this.formobj).then(resp=>{
if (resp.success) {
var arr= resp.data;
//
var startTask=arr[0].startTask;
if(startTask){
alert('当前环节不能驳回!');
return;
}
this.nextNode=arr[0]
this.nodeDialogVisibleForReject = true
}
});
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.comment
this.regectList.comment = this.formobj.comment
request.rejectTask(this.regectList).then((response) => {
if (response.code === '200') {
this.$notify({
@ -258,6 +383,13 @@
duration: 2000
})
// this.refreshIt()
this.nodeDialogVisible=false;
window.parent.postMessage({
cmd: 'returnHeight',
params: {
code: 1
}
}, '*')
} else {
this.$notify({
title: '提示',
@ -290,12 +422,18 @@
this.stopList.comment = this.comment
request.breakTask(this.stopList).then((response) => {
if (response.code === '200') {
this.$notify({
/*this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
})*/
window.parent.postMessage({
cmd: 'returnHeight',
params: {
code: 1
}
}, '*')
// this.refreshIt()
} else {
this.$notify({

44
anrui-scm/anrui-scm-ui/src/views/workFlow/caigoutuikuFlow/caigoutuikuEdit.vue

@ -14,7 +14,7 @@
@click="saveEdit()"
>保存
</el-button>
<el-button type="primary" size="small" :disabled="disabled" @click="handleSubmit()">提交
<el-button type="primary" size="small" @click="handleSubmit()">提交
</el-button>
<el-button type="danger" @click="openStop"> </el-button>
</div>
@ -133,6 +133,7 @@
dialogStatus: '',
index: 0,
list: [],
obj: {},
//
formobj: {
sid: '', // sid
@ -140,7 +141,13 @@
name: '',
createTime: '',
userSid: '', // sid
detailsList: []
detailsList: [],
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
taskDefKey:'',
taskName:''
},
stopList: { //
businessSid: '',
@ -155,24 +162,27 @@
}
},
created() {
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
this.obj=obj;
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showEdit(sid)
this.showEdit(obj.businessSid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.stopList.businessSid = sid
this.stopList.businessSid = obj.businessSid
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 600 + 'px'
}
}, '*')
},
methods: {
init() {
@ -217,6 +227,7 @@
}).then(resp => {
const data = resp.data
this.formobj = data
this.formobj.sid=this.obj.businessSid
this.list = data.voList
// --- tempjsontemp---
this.formobj = JSON.parse(JSON.stringify(this.formobj).replace(/voList/g, 'detailsList')
@ -289,6 +300,11 @@
})
},
handleSubmit() {
this.submitdisabled = true
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.orgSid = this.$store.getters.orgSid
this.formobj.businessSid = this.obj.businessSid
this.formobj.taskId = this.obj.taskId
const _this = this
this.$refs['form_obj'].validate(valid => {
if (valid) {

47
anrui-scm/anrui-scm-ui/src/views/workFlow/caigoutuikuFlow/caigoutuikuInfo.vue

@ -6,7 +6,7 @@
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div v-show="isBtnShow">
<div >
<el-button type="danger" @click="openRevoke"> </el-button>
</div>
<!--end 添加修改按钮-->
@ -115,32 +115,37 @@
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
obj:{},
rules: {},
disabled: false
}
},
created() {
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
this.obj=obj;
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
this.showInfo(obj.businessSid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
if (obj.taskName == '已完结' || '已终止') {
this.isBtnShow = false
}
//
this.revokeList.businessSid = sid
this.revokeList.businessSid = obj.businessSid
this.revokeList.instanceId = obj.instanceId
this.revokeList.taskId = obj.taskId
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 600 + 'px'
}
}, '*')
},
methods: {
// ===
@ -185,15 +190,27 @@
},
/** 撤回任务 */
handleRevoke() {
console.log('1111122222', this.revokeList)
this.revokeList.businessSid = this.obj.businessSid
this.revokeList.instanceId = this.obj.instanceId
this.revokeList.taskId = this.obj.taskId
this.revokeList.taskDefKey = this.obj.taskDefKey
this.revokeList.taskName = this.obj.taskName
this.revokeList.userSid = window.sessionStorage.getItem('userSid')
this.revokeList.orgSidPath = window.sessionStorage.getItem('orgSidPath')
request.revokeTask(this.revokeList).then((response) => {
if (response.code === '200') {
this.$notify({
/*this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
})*/
window.parent.postMessage({
cmd: 'returnHeight',
params: {
code: 1,
}
}, '*')
} else {
this.$notify({
title: '提示',

1
anrui-system-ui/src/views/flow/doneList.vue

@ -261,6 +261,7 @@
this.selectUrl_list.taskDefKey = row.taskDefKey
this.selectUrl_list.type = 2 //
const parameter_list = {
businessSid: row.processVariables.businessSid,
instanceId: row.procInsId,
taskId: row.taskId,
taskDefKey: row.taskDefKey,

13
anrui-system-ui/src/views/flow/todoList.vue

@ -108,8 +108,12 @@
<el-dialog title="审批记录" :visible.sync="editDialog" width="80%" >
<!--流程流转记录-->
<el-card v-if="flowRecordList">
<el-col :span="24" :offset="4">
<div class="block">
<el-col :span="24" >
<div >
<div style="width:50%;float:left; border:1px solid #000;">
<span class="el-icon-picture-outline">流程图</span>
<flow :xmlData="xmlData" :taskData="taskList"></flow>
</div>
<div style="width:50%;;float:left; border:1px solid #000;" >
<el-timeline>
<el-timeline-item
@ -141,10 +145,6 @@
</el-timeline-item>
</el-timeline>
</div>
<div style="width:50%;float:left; border:1px solid #000;">
<span class="el-icon-picture-outline">流程图</span>
<flow :xmlData="xmlData" :taskData="taskList"></flow>
</div>
</div>
</el-col>
</el-card>
@ -272,6 +272,7 @@ export default {
iframe.height = this.dialogHeight;//iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
},
async handleMessage (event) {
console.log(event);
var code= event.data.params.code;
if(code==1){
this.init()

Loading…
Cancel
Save