Commit e6142b53088f9b7de60c1b6e1a72ffb4dca82c60

Authored by YunaiV
1 parent 54377751

实现 OA 请假的取消申请

Showing 18 changed files with 74 additions and 196 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/BpmOALeaveController.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa;
2 2  
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeavePageReqVO;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeaveRespVO;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.OALeaveConvert;
7   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO;
  4 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeavePageReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveRespVO;
  6 +import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.BpmOALeaveConvert;
  7 +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO;
8 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
9 9 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ... @@ -43,27 +43,19 @@ public class BpmOALeaveController {
43 43 return success(leaveService.createLeave(getLoginUserId(), createReqVO));
44 44 }
45 45  
46   - @DeleteMapping("/cancel")
47   - @ApiOperation("取消请假申请")
48   - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
49   - public CommonResult<Boolean> cancelLeave(@RequestParam("id") Long id) {
50   - leaveService.cancelLeave(id);
51   - return success(true);
52   - }
53   -
54 46 @GetMapping("/get")
55 47 @ApiOperation("获得请假申请")
56 48 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
57   - public CommonResult<OALeaveRespVO> getLeave(@RequestParam("id") Long id) {
58   - OALeaveDO leave = leaveService.getLeave(id);
59   - return success(OALeaveConvert.INSTANCE.convert(leave));
  49 + public CommonResult<BpmOALeaveRespVO> getLeave(@RequestParam("id") Long id) {
  50 + BpmOALeaveDO leave = leaveService.getLeave(id);
  51 + return success(BpmOALeaveConvert.INSTANCE.convert(leave));
60 52 }
61 53  
62 54 @GetMapping("/page")
63 55 @ApiOperation("获得请假申请分页")
64   - public CommonResult<PageResult<OALeaveRespVO>> getLeavePage(@Valid OALeavePageReqVO pageVO) {
65   - PageResult<OALeaveDO> pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO);
66   - return success(OALeaveConvert.INSTANCE.convertPage(pageResult));
  56 + public CommonResult<PageResult<BpmOALeaveRespVO>> getLeavePage(@Valid BpmOALeavePageReqVO pageVO) {
  57 + PageResult<BpmOALeaveDO> pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO);
  58 + return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
67 59 }
68 60  
69 61 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/OALeavePageReqVO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeavePageReqVO.java
... ... @@ -12,7 +12,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
12 12 @Data
13 13 @EqualsAndHashCode(callSuper = true)
14 14 @ToString(callSuper = true)
15   -public class OALeavePageReqVO extends PageParam {
  15 +public class BpmOALeavePageReqVO extends PageParam {
16 16  
17 17 @ApiModelProperty(value = "状态", example = "1", notes = "参见 bpm_process_instance_result 枚举")
18 18 private Integer result;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/OALeaveRespVO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeaveRespVO.java
... ... @@ -13,7 +13,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
13 13 @Data
14 14 @EqualsAndHashCode(callSuper = true)
15 15 @ToString(callSuper = true)
16   -public class OALeaveRespVO extends BpmOALeaveBaseVO {
  16 +public class BpmOALeaveRespVO extends BpmOALeaveBaseVO {
17 17  
18 18 @ApiModelProperty(value = "请假表单主键", required = true, example = "1024")
19 19 private Long id;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/oa/OALeaveConvert.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/oa/BpmOALeaveConvert.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.convert.oa;
2 2  
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeaveRespVO;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO;
  4 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveRespVO;
  5 +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 7 import org.mapstruct.Mapper;
8 8 import org.mapstruct.factory.Mappers;
... ... @@ -15,16 +15,16 @@ import java.util.List;
15 15 * @author 芋艿
16 16 */
17 17 @Mapper
18   -public interface OALeaveConvert {
  18 +public interface BpmOALeaveConvert {
19 19  
20   - OALeaveConvert INSTANCE = Mappers.getMapper(OALeaveConvert.class);
  20 + BpmOALeaveConvert INSTANCE = Mappers.getMapper(BpmOALeaveConvert.class);
21 21  
22   - OALeaveDO convert(BpmOALeaveCreateReqVO bean);
  22 + BpmOALeaveDO convert(BpmOALeaveCreateReqVO bean);
23 23  
24   - OALeaveRespVO convert(OALeaveDO bean);
  24 + BpmOALeaveRespVO convert(BpmOALeaveDO bean);
25 25  
26   - List<OALeaveRespVO> convertList(List<OALeaveDO> list);
  26 + List<BpmOALeaveRespVO> convertList(List<BpmOALeaveDO> list);
27 27  
28   - PageResult<OALeaveRespVO> convertPage(PageResult<OALeaveDO> page);
  28 + PageResult<BpmOALeaveRespVO> convertPage(PageResult<BpmOALeaveDO> page);
29 29  
30 30 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/leave/OALeaveDO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/leave/BpmOALeaveDO.java
... ... @@ -22,7 +22,7 @@ import org.activiti.engine.runtime.ProcessInstance;
22 22 @Builder
23 23 @NoArgsConstructor
24 24 @AllArgsConstructor
25   -public class OALeaveDO extends BaseDO {
  25 +public class BpmOALeaveDO extends BaseDO {
26 26  
27 27 /**
28 28 * 请假表单主键
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/leave/package-info.java deleted
1   -/**
2   - * TODO 芋艿:实现请假流程,接入工作流
3   - */
4   -package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/oa/BpmOALeaveMapper.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeavePageReqVO;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO;
  3 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeavePageReqVO;
  4 +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
7 7 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
... ... @@ -14,16 +14,16 @@ import org.apache.ibatis.annotations.Mapper;
14 14 * @author 芋道源码
15 15 */
16 16 @Mapper
17   -public interface BpmOALeaveMapper extends BaseMapperX<OALeaveDO> {
  17 +public interface BpmOALeaveMapper extends BaseMapperX<BpmOALeaveDO> {
18 18  
19   - default PageResult<OALeaveDO> selectPage(Long userId, OALeavePageReqVO reqVO) {
20   - return selectPage(reqVO, new LambdaQueryWrapperX<OALeaveDO>()
21   - .eqIfPresent(OALeaveDO::getUserId, userId)
22   - .eqIfPresent(OALeaveDO::getResult, reqVO.getResult())
23   - .eqIfPresent(OALeaveDO::getType, reqVO.getType())
24   - .likeIfPresent(OALeaveDO::getReason, reqVO.getReason())
25   - .betweenIfPresent(OALeaveDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
26   - .orderByDesc(OALeaveDO::getId));
  19 + default PageResult<BpmOALeaveDO> selectPage(Long userId, BpmOALeavePageReqVO reqVO) {
  20 + return selectPage(reqVO, new LambdaQueryWrapperX<BpmOALeaveDO>()
  21 + .eqIfPresent(BpmOALeaveDO::getUserId, userId)
  22 + .eqIfPresent(BpmOALeaveDO::getResult, reqVO.getResult())
  23 + .eqIfPresent(BpmOALeaveDO::getType, reqVO.getType())
  24 + .likeIfPresent(BpmOALeaveDO::getReason, reqVO.getReason())
  25 + .betweenIfPresent(BpmOALeaveDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
  26 + .orderByDesc(BpmOALeaveDO::getId));
27 27 }
28 28  
29 29 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/BpmOALeaveService.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa;
2 2  
3 3  
4 4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO;
  5 +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 7  
8 8 import javax.validation.Valid;
... ... @@ -33,19 +33,12 @@ public interface BpmOALeaveService {
33 33 void updateLeaveResult(Long id, Integer result);
34 34  
35 35 /**
36   - * 删除请假申请
37   - *
38   - * @param id 编号
39   - */
40   - void cancelLeave(Long id);
41   -
42   - /**
43 36 * 获得请假申请
44 37 *
45 38 * @param id 编号
46 39 * @return 请假申请
47 40 */
48   - OALeaveDO getLeave(Long id);
  41 + BpmOALeaveDO getLeave(Long id);
49 42  
50 43 /**
51 44 * 获得请假申请分页
... ... @@ -54,6 +47,6 @@ public interface BpmOALeaveService {
54 47 * @param pageReqVO 分页查询
55 48 * @return 请假申请分页
56 49 */
57   - PageResult<OALeaveDO> getLeavePage(Long userId, OALeavePageReqVO pageReqVO);
  50 + PageResult<BpmOALeaveDO> getLeavePage(Long userId, BpmOALeavePageReqVO pageReqVO);
58 51  
59 52 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/OALeaveServiceImpl.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/BpmOALeaveServiceImpl.java
... ... @@ -2,14 +2,13 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl;
2 2  
3 3 import cn.hutool.core.date.DateUtil;
4 4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.OALeaveConvert;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO;
  5 +import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.BpmOALeaveConvert;
  6 +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO;
7 7 import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa.BpmOALeaveMapper;
8 8 import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum;
9 9 import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
10 10 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
11 11 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO;
12   -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
13 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 13 import org.springframework.stereotype.Service;
15 14 import org.springframework.transaction.annotation.Transactional;
... ... @@ -29,7 +28,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
29 28 */
30 29 @Service
31 30 @Validated
32   -public class OALeaveServiceImpl implements BpmOALeaveService {
  31 +public class BpmOALeaveServiceImpl implements BpmOALeaveService {
33 32  
34 33 /**
35 34 * OA 请假对应的流程定义 KEY
... ... @@ -47,7 +46,7 @@ public class OALeaveServiceImpl implements BpmOALeaveService {
47 46 public Long createLeave(Long userId, BpmOALeaveCreateReqVO createReqVO) {
48 47 // 插入 OA 请假单
49 48 long day = DateUtil.betweenDay(createReqVO.getStartTime(), createReqVO.getEndTime(), false);
50   - OALeaveDO leave = OALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day)
  49 + BpmOALeaveDO leave = BpmOALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day)
51 50 .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult());
52 51 leaveMapper.insert(leave);
53 52  
... ... @@ -59,22 +58,13 @@ public class OALeaveServiceImpl implements BpmOALeaveService {
59 58 .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(leave.getId())));
60 59  
61 60 // 将工作流的编号,更新到 OA 请假单中
62   - leaveMapper.updateById(new OALeaveDO().setId(leave.getId()).setProcessInstanceId(processInstanceId));
  61 + leaveMapper.updateById(new BpmOALeaveDO().setId(leave.getId()).setProcessInstanceId(processInstanceId));
63 62 return leave.getId();
64 63 }
65 64  
66 65 @Override
67 66 public void updateLeaveResult(Long id, Integer result) {
68   - leaveMapper.updateById(new OALeaveDO().setId(id).setResult(result));
69   - }
70   -
71   - @Override
72   - public void cancelLeave(Long id) {
73   - // TODO 需要重新实现
74   - // 校验存在
75   - this.validateLeaveExists(id);
76   - // 删除
77   - leaveMapper.deleteById(id);
  67 + leaveMapper.updateById(new BpmOALeaveDO().setId(id).setResult(result));
78 68 }
79 69  
80 70 private void validateLeaveExists(Long id) {
... ... @@ -84,12 +74,12 @@ public class OALeaveServiceImpl implements BpmOALeaveService {
84 74 }
85 75  
86 76 @Override
87   - public OALeaveDO getLeave(Long id) {
  77 + public BpmOALeaveDO getLeave(Long id) {
88 78 return leaveMapper.selectById(id);
89 79 }
90 80  
91 81 @Override
92   - public PageResult<OALeaveDO> getLeavePage(Long userId, OALeavePageReqVO pageReqVO) {
  82 + public PageResult<BpmOALeaveDO> getLeavePage(Long userId, BpmOALeavePageReqVO pageReqVO) {
93 83 return leaveMapper.selectPage(userId, pageReqVO);
94 84 }
95 85  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/listener/BpmOALeaveResultListener.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.listener;
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent;
4 4 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEventListener;
5 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl.OALeaveServiceImpl;
  6 +import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl.BpmOALeaveServiceImpl;
7 7 import org.springframework.stereotype.Component;
8 8  
9 9 import javax.annotation.Resource;
... ... @@ -21,7 +21,7 @@ public class BpmOALeaveResultListener extends BpmProcessInstanceResultEventListe
21 21  
22 22 @Override
23 23 protected String getProcessDefinitionKey() {
24   - return OALeaveServiceImpl.PROCESS_KEY;
  24 + return BpmOALeaveServiceImpl.PROCESS_KEY;
25 25 }
26 26  
27 27 @Override
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmProcessInstanceServiceImpl.java
... ... @@ -255,7 +255,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
255 255 }
256 256  
257 257 // 需要主动查询,因为 instance 只有 id 属性
258   - ProcessInstance processInstance = getProcessInstance(instance.getId());
  258 + // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance
  259 + HistoricProcessInstance processInstance = getHistoricProcessInstance(instance.getId());
259 260 // 更新拓展表
260 261 BpmProcessInstanceExtDO instanceExtDO = BpmProcessInstanceConvert.INSTANCE.convert(instance)
261 262 .setEndTime(new Date()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置
... ...
yudao-admin-ui/src/api/oa/leave.js renamed to yudao-admin-ui/src/api/bpm/leave.js
... ... @@ -9,14 +9,6 @@ export function createLeave(data) {
9 9 })
10 10 }
11 11  
12   -// 删除请假申请
13   -export function deleteLeave(id) {
14   - return request({
15   - url: '/oa/leave/delete?id=' + id,
16   - method: 'delete'
17   - })
18   -}
19   -
20 12 // 获得请假申请
21 13 export function getLeave(id) {
22 14 return request({
... ...
yudao-admin-ui/src/api/oa/flow.js deleted
1   -import request from '@/utils/request'
2   -
3   -
4   -export function getStartForm(processKey) {
5   - return request({
6   - url: '/workflow/process/definition/getStartForm?processKey='+processKey,
7   - method: 'get'
8   - })
9   -}
yudao-admin-ui/src/api/oa/todo.js deleted
1   -import request from '@/utils/request'
2   -
3   -// 创建请假申请
4   -export function createLeave(data) {
5   - return request({
6   - url: '/oa/leave/create',
7   - method: 'post',
8   - data: data
9   - })
10   -}
11   -
12   -// 更新请假申请
13   -export function updateLeave(data) {
14   - return request({
15   - url: '/oa/leave/update',
16   - method: 'put',
17   - data: data
18   - })
19   -}
20   -
21   -// 删除请假申请
22   -export function deleteLeave(id) {
23   - return request({
24   - url: '/oa/leave/delete?id=' + id,
25   - method: 'delete'
26   - })
27   -}
28   -
29   -// 获得请假申请
30   -export function getLeave(id) {
31   - return request({
32   - url: '/oa/leave/get?id=' + id,
33   - method: 'get'
34   - })
35   -}
36   -
37   -// 获得待办任务分页
38   -export function getTodoTaskPage(query) {
39   - return request({
40   - url: '/workflow/task/todo/page',
41   - method: 'get',
42   - params: query
43   - })
44   -}
45   -
46   -// 签收任务
47   -export function claimTask(id) {
48   - return request({
49   - url: '/workflow/task/claim?id=' + id,
50   - method: 'get'
51   - })
52   -}
53   -
54   -export function completeTask(data) {
55   - return request({
56   - url: '/workflow/task/complete',
57   - method: 'post',
58   - data: data
59   - })
60   -}
61   -
62   -export function taskSteps(data) {
63   - return request({
64   - url: '/workflow/task/task-steps',
65   - method: 'post',
66   - data: data
67   - })
68   -}
69   -
70   -export function getTaskFormKey(data) {
71   - return request({
72   - url: '/workflow/task/formKey',
73   - method: 'post',
74   - data: data
75   - })
76   -}
77   -
78   -export function processHistorySteps(id) {
79   - return request({
80   - url: '/workflow/task/process/history-steps?id='+id,
81   - method: 'get'
82   - })
83   -}
84   -
85   -
86   -export function getHighlightImg(id) {
87   - return request({
88   - url: '/workflow/task/process/highlight-img?processInstanceId='+id,
89   - method: 'get'
90   - })
91   -}
yudao-admin-ui/src/views/bpm/oa/leave/create.vue
... ... @@ -26,8 +26,9 @@
26 26 </template>
27 27  
28 28 <script>
29   -import { createLeave} from "@/api/oa/leave"
  29 +import { createLeave} from "@/api/bpm/leave"
30 30 import { getDictDatas, DICT_TYPE } from '@/utils/dict'
  31 +
31 32 export default {
32 33 name: "LeaveCreate",
33 34 components: {
... ...
yudao-admin-ui/src/views/bpm/oa/leave/detail.vue
... ... @@ -11,7 +11,7 @@
11 11 </template>
12 12  
13 13 <script>
14   -import { getLeave} from "@/api/oa/leave"
  14 +import { getLeave} from "@/api/bpm/leave"
15 15 import {getDictDatas, DICT_TYPE, getDictDataLabel} from '@/utils/dict'
16 16 export default {
17 17 name: "LeaveDetail",
... ...
yudao-admin-ui/src/views/bpm/oa/leave/index.vue
... ... @@ -56,8 +56,10 @@
56 56 <span>{{ parseTime(scope.row.createTime) }}</span>
57 57 </template>
58 58 </el-table-column>
59   - <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  59 + <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
60 60 <template slot-scope="scope">
  61 + <el-button size="mini" type="text" icon="el-icon-delete" @click="handleCancel(scope.row)"
  62 + v-if="scope.row.result === 1">取消请假</el-button>
61 63 <el-button size="mini" type="text" icon="el-icon-view" @click="handleDetail(scope.row)">详情</el-button>
62 64 <el-button size="mini" type="text" icon="el-icon-edit" @click="handleProcessDetail(scope.row)">审批进度</el-button>
63 65 </template>
... ... @@ -71,8 +73,9 @@
71 73 </template>
72 74  
73 75 <script>
74   -import { createLeave, getLeaveApplyMembers, getLeave, getLeavePage} from "@/api/oa/leave"
  76 +import { getLeavePage } from "@/api/bpm/leave"
75 77 import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict'
  78 +import {cancelProcessInstance} from "@/api/bpm/processInstance";
76 79  
77 80 export default {
78 81 name: "Leave",
... ... @@ -88,20 +91,14 @@ export default {
88 91 total: 0,
89 92 // 请假申请列表
90 93 list: [],
91   - // 弹出层标题
92   - title: "",
93   - // 是否显示弹出层
94   - open: false,
95 94 //审批进度弹出层
96 95 dateRangeCreateTime: [],
97 96 // 查询参数
98 97 queryParams: {
99 98 pageNo: 1,
100 99 pageSize: 10,
101   - processInstanceId: null,
102   - status: null,
103   - userId: null,
104   - leaveType: null,
  100 + result: null,
  101 + type: null,
105 102 reason: null,
106 103 },
107 104  
... ... @@ -149,6 +146,22 @@ export default {
149 146 handleProcessDetail(row) {
150 147 this.$router.push({ path: "/bpm/process-instance/detail", query: { id: row.processInstanceId}});
151 148 },
  149 + /** 取消请假 */
  150 + handleCancel(row) {
  151 + const id = row.processInstanceId;
  152 + this.$prompt('请输入取消原因?', "取消流程", {
  153 + type: 'warning',
  154 + confirmButtonText: "确定",
  155 + cancelButtonText: "取消",
  156 + inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格
  157 + inputErrorMessage: "取消原因不能为空",
  158 + }).then(({ value }) => {
  159 + return cancelProcessInstance(id, value);
  160 + }).then(() => {
  161 + this.getList();
  162 + this.msgSuccess("取消成功");
  163 + })
  164 + },
152 165 resultFormat(row, column) {
153 166 return getDictDataLabel(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT, row.result)
154 167 },
... ...
yudao-admin-ui/src/views/bpm/processInstance/index.vue
... ... @@ -192,7 +192,7 @@ export default {
192 192 /** 取消按钮操作 */
193 193 handleCancel(row) {
194 194 const id = row.id;
195   - this.$prompt('请输出取消原因?', "取消流程", {
  195 + this.$prompt('请输入取消原因?', "取消流程", {
196 196 type: 'warning',
197 197 confirmButtonText: "确定",
198 198 cancelButtonText: "取消",
... ...