From 8312183a80154d77717fcc340673ca3ad94a29c8 Mon Sep 17 00:00:00 2001 From: mh Date: Thu, 25 Apr 2024 18:10:05 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=89=8D=E7=AB=AF=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=99=BB=E5=BD=95=EF=BC=9B=202=E3=80=81=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=B1=95=E7=A4=BA=EF=BC=9B=203=E3=80=81=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=85=B3=E8=81=94=E5=B7=A5=E5=8D=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/WfProcessController.java | 8 +- .../flowable/core/domain/ProcessQuery.java | 5 + .../workflow/domain/UserDeployRelation.java | 47 ++ .../domain/bo/UserDeployRelationBo.java | 55 ++ .../domain/vo/UserDeployRelationVo.java | 55 ++ .../mapper/UserDeployRelationMapper.java | 15 + .../service/IUserDeployRelationService.java | 48 ++ .../workflow/service/IWfProcessService.java | 3 +- .../impl/UserDeployRelationServiceImpl.java | 110 +++ .../service/impl/WfProcessServiceImpl.java | 40 +- ruoyi-ui/.env.development | 2 +- ruoyi-ui/.env.production | 4 +- ruoyi-ui/package.json | 2 +- ruoyi-ui/public/favicon.ico | Bin 11722 -> 30131 bytes ruoyi-ui/src/api/workflow/process.js | 4 +- ruoyi-ui/src/assets/logo/logo.png | Bin 11722 -> 30131 bytes .../src/layout/components/Sidebar/Logo.vue | 2 +- ruoyi-ui/src/router/index.js | 35 + ruoyi-ui/src/views/login.vue | 18 +- ruoyi-ui/src/views/register.vue | 2 +- ruoyi-ui/src/views/workflow/work/detail.vue | 124 ++-- .../views/workflow/work/detail_cellphone.vue | 656 ++++++++++++++++++ ruoyi-ui/src/views/workflow/work/index.vue | 64 +- ruoyi-ui/src/views/workflow/work/own.vue | 126 +--- .../src/views/workflow/work/own_cellphone.vue | 231 ++++++ .../views/workflow/work/start_cellphone.vue | 91 +++ ruoyi-ui/vue.config.js | 8 +- 27 files changed, 1520 insertions(+), 235 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/workflow/domain/UserDeployRelation.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/workflow/domain/bo/UserDeployRelationBo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/UserDeployRelationVo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/UserDeployRelationMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/workflow/service/IUserDeployRelationService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/UserDeployRelationServiceImpl.java create mode 100644 ruoyi-ui/src/views/workflow/work/detail_cellphone.vue create mode 100644 ruoyi-ui/src/views/workflow/work/own_cellphone.vue create mode 100644 ruoyi-ui/src/views/workflow/work/start_cellphone.vue diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java index 04f48ad..7f7b9e4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java @@ -199,9 +199,11 @@ public class WfProcessController extends BaseController { * @param variables 变量集合,json对象 */ @SaCheckPermission("workflow:process:start") - @PostMapping("/start/{processDefId}") - public R start(@PathVariable(value = "processDefId") String processDefId, @RequestBody Map variables) { - processService.startProcessByDefId(processDefId, variables); + @PostMapping("/start/{processDefId}/{cellphone}") + public R start(@PathVariable(value = "processDefId") String processDefId, + @PathVariable(value = "cellphone") String cellphone, + @RequestBody Map variables) { + processService.startProcessByDefId(processDefId, cellphone, variables); return R.ok("流程启动成功"); } diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/core/domain/ProcessQuery.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/core/domain/ProcessQuery.java index fea7619..cfbf8d3 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/core/domain/ProcessQuery.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/core/domain/ProcessQuery.java @@ -34,6 +34,11 @@ public class ProcessQuery { */ private String state; + /** + * 手机号码 + */ + private String cellphone; + /** * 请求参数 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/UserDeployRelation.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/UserDeployRelation.java new file mode 100644 index 0000000..2aacc79 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/UserDeployRelation.java @@ -0,0 +1,47 @@ +package com.ruoyi.workflow.domain; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 用户流程关联对象 user_deploy_relation + * + * @author ruoyi + * @date 2024-04-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("user_deploy_relation") +public class UserDeployRelation extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * id + */ + private String id; + /** + * 手机号码 + */ + private String cellphone; + /** + * 流程id + */ + private String deployId; + /** + * 流程编号 + */ + private String procInsId; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/bo/UserDeployRelationBo.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/bo/UserDeployRelationBo.java new file mode 100644 index 0000000..1f44c62 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/bo/UserDeployRelationBo.java @@ -0,0 +1,55 @@ +package com.ruoyi.workflow.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 用户流程关联业务对象 user_deploy_relation + * + * @author ruoyi + * @date 2024-04-25 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class UserDeployRelationBo extends BaseEntity { + + /** + * id + */ + @NotBlank(message = "id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String id; + + /** + * 手机号码 + */ + @NotBlank(message = "手机号码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String cellphone; + + /** + * 流程id + */ + @NotBlank(message = "流程id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String deployId; + + /** + * 流程编号 + */ + @NotBlank(message = "流程编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String procInsId; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/UserDeployRelationVo.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/UserDeployRelationVo.java new file mode 100644 index 0000000..f94a449 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/UserDeployRelationVo.java @@ -0,0 +1,55 @@ +package com.ruoyi.workflow.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 用户流程关联视图对象 user_deploy_relation + * + * @author ruoyi + * @date 2024-04-25 + */ +@Data +@ExcelIgnoreUnannotated +public class UserDeployRelationVo { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private String id; + + /** + * 手机号码 + */ + @ExcelProperty(value = "手机号码") + private String cellphone; + + /** + * 流程id + */ + @ExcelProperty(value = "流程id") + private String deployId; + + /** + * 流程编号 + */ + @ExcelProperty(value = "流程编号") + private String procInsId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/UserDeployRelationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/UserDeployRelationMapper.java new file mode 100644 index 0000000..9fbe1cf --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/mapper/UserDeployRelationMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.workflow.mapper; + +import com.ruoyi.common.core.mapper.BaseMapperPlus; +import com.ruoyi.workflow.domain.UserDeployRelation; +import com.ruoyi.workflow.domain.vo.UserDeployRelationVo; + +/** + * 用户流程关联Mapper接口 + * + * @author ruoyi + * @date 2024-04-25 + */ +public interface UserDeployRelationMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IUserDeployRelationService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IUserDeployRelationService.java new file mode 100644 index 0000000..9235eb5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IUserDeployRelationService.java @@ -0,0 +1,48 @@ +package com.ruoyi.workflow.service; + +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.workflow.domain.bo.UserDeployRelationBo; +import com.ruoyi.workflow.domain.vo.UserDeployRelationVo; + +import java.util.Collection; +import java.util.List; + +/** + * 用户流程关联Service接口 + * + * @author ruoyi + * @date 2024-04-25 + */ +public interface IUserDeployRelationService { + + /** + * 查询用户流程关联 + */ + UserDeployRelationVo queryById(String id); + + /** + * 查询用户流程关联列表 + */ + TableDataInfo queryPageList(UserDeployRelationBo bo, PageQuery pageQuery); + + /** + * 查询用户流程关联列表 + */ + List queryList(UserDeployRelationBo bo); + + /** + * 新增用户流程关联 + */ + Boolean insertByBo(UserDeployRelationBo bo); + + /** + * 修改用户流程关联 + */ + Boolean updateByBo(UserDeployRelationBo bo); + + /** + * 校验并批量删除用户流程关联信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java index 1befc0b..3c255bc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java @@ -83,9 +83,10 @@ public interface IWfProcessService { /** * 启动流程实例 * @param procDefId 流程定义ID + * @param cellphone 发起流程手机号码 * @param variables 扩展参数 */ - void startProcessByDefId(String procDefId, Map variables); + void startProcessByDefId(String procDefId, String cellphone, Map variables); /** * 通过DefinitionKey启动流程 diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/UserDeployRelationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/UserDeployRelationServiceImpl.java new file mode 100644 index 0000000..800bad2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/UserDeployRelationServiceImpl.java @@ -0,0 +1,110 @@ +package com.ruoyi.workflow.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.workflow.domain.UserDeployRelation; +import com.ruoyi.workflow.domain.bo.UserDeployRelationBo; +import com.ruoyi.workflow.domain.vo.UserDeployRelationVo; +import com.ruoyi.workflow.mapper.UserDeployRelationMapper; +import com.ruoyi.workflow.service.IUserDeployRelationService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 用户流程关联Service业务层处理 + * + * @author ruoyi + * @date 2024-04-25 + */ +@RequiredArgsConstructor +@Service +public class UserDeployRelationServiceImpl implements IUserDeployRelationService { + + private final UserDeployRelationMapper baseMapper; + + /** + * 查询用户流程关联 + */ + @Override + public UserDeployRelationVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询用户流程关联列表 + */ + @Override + public TableDataInfo queryPageList(UserDeployRelationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询用户流程关联列表 + */ + @Override + public List queryList(UserDeployRelationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(UserDeployRelationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getCellphone()), UserDeployRelation::getCellphone, bo.getCellphone()); + lqw.eq(StringUtils.isNotBlank(bo.getDeployId()), UserDeployRelation::getDeployId, bo.getDeployId()); + return lqw; + } + + /** + * 新增用户流程关联 + */ + @Override + public Boolean insertByBo(UserDeployRelationBo bo) { + UserDeployRelation add = BeanUtil.toBean(bo, UserDeployRelation.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改用户流程关联 + */ + @Override + public Boolean updateByBo(UserDeployRelationBo bo) { + UserDeployRelation update = BeanUtil.toBean(bo, UserDeployRelation.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(UserDeployRelation entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除用户流程关联 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java index 52dade8..81cfe84 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java @@ -32,8 +32,10 @@ import com.ruoyi.flowable.utils.TaskUtils; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.workflow.domain.WfDeployForm; +import com.ruoyi.workflow.domain.bo.UserDeployRelationBo; import com.ruoyi.workflow.domain.vo.*; import com.ruoyi.workflow.mapper.WfDeployFormMapper; +import com.ruoyi.workflow.service.IUserDeployRelationService; import com.ruoyi.workflow.service.IWfProcessService; import com.ruoyi.workflow.service.IWfTaskService; import lombok.RequiredArgsConstructor; @@ -75,6 +77,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce private final ISysRoleService roleService; private final ISysDeptService deptService; private final WfDeployFormMapper deployFormMapper; + private final IUserDeployRelationService userDeployRelationService; /** * 流程定义列表 @@ -163,9 +166,25 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce // 构建搜索条件 ProcessUtils.buildProcessSearch(historicProcessInstanceQuery, processQuery); int offset = pageQuery.getPageSize() * (pageQuery.getPageNum() - 1); - List historicProcessInstances = historicProcessInstanceQuery - .listPage(offset, pageQuery.getPageSize()); - page.setTotal(historicProcessInstanceQuery.count()); + List historicProcessInstances = historicProcessInstanceQuery.list(); + if (!StringUtils.isEmpty(processQuery.getCellphone())) { + UserDeployRelationBo userDeployRelationBo = new UserDeployRelationBo(); + userDeployRelationBo.setCellphone(processQuery.getCellphone()); + List userDeployRelationVos = userDeployRelationService.queryList(userDeployRelationBo); + historicProcessInstances = historicProcessInstances.stream() + .filter(taskVo -> userDeployRelationVos.stream() + .anyMatch(userDeployRelationVo -> + (taskVo.getDeploymentId().equals(userDeployRelationVo.getDeployId())) + && taskVo.getId().equals(userDeployRelationVo.getProcInsId()))) + .collect(Collectors.toList()); + } + int pageTotal = historicProcessInstances.size(); + if (pageTotal == 0) { + return TableDataInfo.build(); + } + + historicProcessInstances = historicProcessInstances.subList(offset, pageTotal taskVoList = new ArrayList<>(); for (HistoricProcessInstance hisIns : historicProcessInstances) { WfTaskVo taskVo = new WfTaskVo(); @@ -582,11 +601,11 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce */ @Override @Transactional(rollbackFor = Exception.class) - public void startProcessByDefId(String procDefId, Map variables) { + public void startProcessByDefId(String procDefId, String cellphone, Map variables) { try { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionId(procDefId).singleResult(); - startProcess(processDefinition, variables); + startProcess(processDefinition, variables, cellphone); } catch (Exception e) { e.printStackTrace(); throw new ServiceException("流程启动错误"); @@ -604,7 +623,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce try { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionKey(procDefKey).latestVersion().singleResult(); - startProcess(processDefinition, variables); + startProcess(processDefinition, variables, ""); } catch (Exception e) { e.printStackTrace(); throw new ServiceException("流程启动错误"); @@ -680,7 +699,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce /** * 启动流程实例 */ - private void startProcess(ProcessDefinition procDef, Map variables) { + private void startProcess(ProcessDefinition procDef, Map variables, String cellphone) { if (ObjectUtil.isNotNull(procDef) && procDef.isSuspended()) { throw new ServiceException("流程已被挂起,请先激活流程"); } @@ -694,6 +713,13 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDef.getId(), variables); // 第一个用户任务为发起人,则自动完成任务 wfTaskService.startFirstTask(processInstance, variables); + // 流程编号跟手机绑定 + String deploymentId = procDef.getDeploymentId(); + UserDeployRelationBo userDeployRelationBo = new UserDeployRelationBo(); + userDeployRelationBo.setDeployId(deploymentId); + userDeployRelationBo.setProcInsId(processInstance.getProcessInstanceId()); + userDeployRelationBo.setCellphone(cellphone); + userDeployRelationService.insertByBo(userDeployRelationBo); } diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development index 57a1e1d..3547885 100644 --- a/ruoyi-ui/.env.development +++ b/ruoyi-ui/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VUE_APP_TITLE = 铭慧通-工单后台管理系统 +VUE_APP_TITLE = 广州城市学院报修管理系统 # 开发环境配置 ENV = 'development' diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production index 800bed0..967488f 100644 --- a/ruoyi-ui/.env.production +++ b/ruoyi-ui/.env.production @@ -1,11 +1,11 @@ # 页面标题 -VUE_APP_TITLE = 铭慧通-工单后台管理系统 +VUE_APP_TITLE = 广州城市学院报修管理系统 # 生产环境配置 ENV = 'production' # 若依管理系统/生产环境 -VUE_APP_BASE_API = 'http://bx.mhito.net:8090' +VUE_APP_BASE_API = 'https://bxserver.mhito.net:8090' # 应用访问路径 例如使用前缀 /admin/ VUE_APP_CONTEXT_PATH = '/' diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index e4dd562..baf8e6a 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -1,7 +1,7 @@ { "name": "flowable-plus", "version": "0.8.3", - "description": "铭慧通-工单后台管理系统", + "description": "广州城市学院报修管理系统", "author": "mh", "license": "MIT", "scripts": { diff --git a/ruoyi-ui/public/favicon.ico b/ruoyi-ui/public/favicon.ico index 050428e739b3d26e6161393ff194b96e2f93087f..382b2fa989036f24da0204e7fa424d720a6a590a 100644 GIT binary patch literal 30131 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 literal 11722 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 diff --git a/ruoyi-ui/src/api/workflow/process.js b/ruoyi-ui/src/api/workflow/process.js index a6a8862..9576bea 100644 --- a/ruoyi-ui/src/api/workflow/process.js +++ b/ruoyi-ui/src/api/workflow/process.js @@ -19,9 +19,9 @@ export function getProcessForm(query) { } // 部署流程实例 -export function startProcess(processDefId, data) { +export function startProcess(processDefId, cellphone, data) { return request({ - url: '/workflow/process/start/' + processDefId, + url: '/workflow/process/start/' + processDefId + '/' + cellphone, method: 'post', data: data }) diff --git a/ruoyi-ui/src/assets/logo/logo.png b/ruoyi-ui/src/assets/logo/logo.png index 050428e739b3d26e6161393ff194b96e2f93087f..382b2fa989036f24da0204e7fa424d720a6a590a 100644 GIT binary patch literal 30131 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 literal 11722 zcmeHNe~cVe9e>;1ncY1~O9A1KlRND7c4wwV1dEsuF0mGWRK!LlZAq}2Sf%z4eV zNN!Jq6_B>V-R{g@wV+^{>KO=DDIx8}#1sqFcoo#%_HN6Gxl{w!Lg8rdcKv+c?3;Nr zJG(c#cl@DoFLU2{Z{GWUKcDaS`+m&ZWh{cfl`9$kcd%ctVC)LUSQ;0q*k)W*PoIAn zj9qq-eenwXE0@dvvzOpFuhP=4Qu?$TV%c8Owa%BZto^IcbzKHi-G?+ zY`jBtHZSiOg{^7TOs@y8n)62}P6M57im9Kj@|%S@&Lo>&yMB!I%A}L9%WYWSvJb)D zbD|FSRen>=)aPr(YgSIXue~y8jX~W3a5+SFaqqz-u!NC*KGX;6a2w&p+T4q{oaZ(u z7k&AF_50Q!UUfO`Y)eAlc$Hn#*u%cSqTn(Wnh%dhbxv~K^i1-LlGASzSfiHqS;{w? zm$yIqzR55qL|Y;2al%~vDCv@O3%37=^)(4!zQ=y%=Dowcf{*-)G5sp!>o%t9cw+zX zHrFF_GPSz}K9aPTvfJ3496O}n(gx+WbYF`TaBKh<&pHY|Z?No&CDczHSgt|$4C+RK z>nYs#s5xyd_i;Ym#gMaNFNbGO)#4P-=|?$UIj?eBo@_{;2;qUAQoJhOdP(v5Adu6; zor};P{&oF|v3wzxOMTR_v!6w=4ysPM&JFbZtO|F91J;Hg`k$fw%K_?$*FLwcgw4`N z(B7E`gE&Fw19o4xUp#Ld4zLrd3c9kSPxg_(7PC^fihE$@b2#$jUu8ICSgnp-G`_MbZb4he+P$K8=7dX69FR@Kb0ha>R z!w%oWqdbi@;w`x?@Vu?$x^6<7J8;eL_ENs$`KW;9=j7&s6eH6(B-%G4k+<7qeBvJ1 z|3vzLvA2Q|dvfpG<|`L?d&~GeZ;!Dho`cg2v$`&)=YCFz(J5L-Vb5tFHMLJs+h#wt zIK^|uH%TXQ>jsXE&*`pRfmcY58||amABj5Pb#THrPm(?lr(GR*Z@}I|YKOk#jqHg@ zr~e~3$$B}yzN^K1L?mV!N6^mWOBc7z6VESj-S)UTMbE**vN z?w|hoAM1@XpM>EOHPh>Wk&k%~CZ7AQPd(41Jg-wfPB|(tz|QT|R*n-dXH(ZXoDehe z9p$GymTK*(gl-{ePQqSu7`}9Jp$@*r+F+iG<h%#^Uh&6D$s7F+C)zvkd7u33`kG}r5(Q1x`$1?8_>Ms;zj>oIh=3?1#H+)xzDM+Ur$xJe;Muj zJo`d{qgg3q6gq%^zuz{-SJga$c1Hv!wXf5l{(gOaJ^r$@M*Dmrurwoi%q4v&|AF;) zvPItLR-# zwkhu6Pn(m>-!h(XI3f2ahe($^?;$^Rp(9AfD|0IEC+$@P#zrOV{eoHP6^hyQfm&Py z4)A~6w(E`;)b%=?`t^n2!uMOA{L34k5jtu~;CM}7m;E8?!bStqS>JtJ>D2X|M z#tr&9a|7nx^K6%PmFVy1MD@V&yd5jIA1|B6)4+cK@z{>*Sztej>or_s$hq6%@xnpG z?L;Cmwo&L;^V(z3$LCYhfpIf~ce2T7wsWm$(})C@$Dz-YLpWc2TGkQ739(vD_HAD7 zJOy1d(caZx1P6?z!mG%)Z?&|HZbcrVu0Z^9jE%KI9#xd$2W2}fm+px5>$kA`FTdDR z-$-H4(oS%iAx;v$*BQk+FBh|O1!cUZ%S zOJO1wE8^Yl#TLdgp}*IY@zlJx_XKBUK0NMu{mcG7wK&mwtmcEyxm9!dndr8)Yrw@K zec*z%<o@vPmI92lqfuV#PG5QGakunIQcB>m#zW69LP zhbcjQL|q6@yeahUz`Ws}{d(es7}8lM{hk576}p>}d)h9=ncxeApL6hXdM3=?JuD}} z2h8h{2X4H4yzDp{=fQ6TKK_2t`*t8tykp?|*}Ks16+aI<4~!D_a$f?UP;+S`oH!n< zb1Cp1ck{u!Hx%_Y7Czp_kpG8)cb}3ovgrFDa(Ng0^O%~)J{0F!;KBVQ_Z9c(_dI)~ zi+VxEhr-XA{?GHnlD^5vgHQoJ4>876@GK1Lg?_ zH}Vm9oN?{cOXDJ_j{78!-z??yzeLStw+j=^$T@Km29f7<)(!2S}hzj4X;1Nt*+E`49j z>bfP&JSNo6CIy%O%m2FH%pzn{c$Y8XjDqA4Yv&T*HIkgB!wbksWIzvO5waUH1KAD< z!QxY_RFP=T645C(1-UR{%SDirmn>k5P+PpQ#1^ydtk^?6wzDB2%cTXZ<7PHgkr^&q zSuYvBp5zdh5ikUfcI3i diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue index 38900e2..3aa60fa 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue +++ b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue @@ -40,7 +40,7 @@ export default { }, data() { return { - title: '铭慧通-工单系统', + title: '广州城市学院报修管理系统', logo: logoImg } } diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index 41b1b7b..77cca42 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -30,6 +30,24 @@ import Layout from '@/layout' // 公共路由 export const constantRoutes = [ + // 手机端发起报修 + { + path: '/bx/start/:deployId([\\w|\\-]+)', + component: () => import('@/views/workflow/work/start_cellphone'), + hidden: true + }, + // 手机端查询报修列表 + { + path: '/bx/list', + component: () => import('@/views/workflow/work/own_cellphone'), + hidden: true + }, + // 手机端查询报修详情 + { + path: '/bx/detail/:procInsId([\\w|\\-]+)', + component: () => import('@/views/workflow/work/detail_cellphone'), + hidden: true + }, { path: '/redirect', component: Layout, @@ -195,6 +213,23 @@ export const dynamicRoutes = [ } ] }, + { + path: '/workflow/process/bx', + children: [ + { + path: 'start/:deployId([\\w|\\-]+)', + component: () => import('@/views/workflow/work/start_cellphone'), + }, + { + path: 'list', + component: () => import('@/views/workflow/work/own_cellphone'), + }, + { + path: 'detail/:procInsId([\\w|\\-]+)', + component: () => import('@/views/workflow/work/detail_cellphone'), + } + ] + }, ] // 防止连续点击多次路由报错 diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index 045f93f..b699eb4 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -1,7 +1,7 @@ @@ -135,7 +106,7 @@ export default { title: '', open: false, index: undefined, - xmlData:"", + xmlData: "", } } }, @@ -179,6 +150,7 @@ export default { this.processView.open = true; }, handleStart(row) { + debugger this.$router.push({ path: '/workflow/process/start/' + row.deploymentId, query: { @@ -199,6 +171,4 @@ export default { } - + diff --git a/ruoyi-ui/src/views/workflow/work/own.vue b/ruoyi-ui/src/views/workflow/work/own.vue index d48e519..4cee727 100644 --- a/ruoyi-ui/src/views/workflow/work/own.vue +++ b/ruoyi-ui/src/views/workflow/work/own.vue @@ -2,44 +2,24 @@

@@ -159,7 +101,7 @@ export default { // 总条数 total: 0, categoryOptions: [], - processTotal:0, + processTotal: 0, // 我发起的流程列表数据 ownProcessList: [], // 弹出层标题 @@ -167,7 +109,7 @@ export default { // 是否显示弹出层 open: false, src: "", - definitionList:[], + definitionList: [], // 日期范围 dateRange: [], // 查询参数 @@ -256,11 +198,11 @@ export default { console.log(row); }, /** 取消流程申请 */ - handleStop(row){ + handleStop(row) { const params = { procInsId: row.procInsId } - stopProcess(params).then( res => { + stopProcess(params).then(res => { this.$modal.msgSuccess(res.msg); this.getList(); }); @@ -281,7 +223,7 @@ export default { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning" - }).then(function() { + }).then(function () { return delProcess(ids); }).then(() => { this.getList(); diff --git a/ruoyi-ui/src/views/workflow/work/own_cellphone.vue b/ruoyi-ui/src/views/workflow/work/own_cellphone.vue new file mode 100644 index 0000000..0c5df1b --- /dev/null +++ b/ruoyi-ui/src/views/workflow/work/own_cellphone.vue @@ -0,0 +1,231 @@ + + + diff --git a/ruoyi-ui/src/views/workflow/work/start_cellphone.vue b/ruoyi-ui/src/views/workflow/work/start_cellphone.vue new file mode 100644 index 0000000..1d3e2df --- /dev/null +++ b/ruoyi-ui/src/views/workflow/work/start_cellphone.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index 299acde..843ef48 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -7,7 +7,7 @@ function resolve(dir) { const CompressionPlugin = require('compression-webpack-plugin') -const name = process.env.VUE_APP_TITLE || '铭慧通-工单后台管理系统' // 网页标题 +const name = process.env.VUE_APP_TITLE || '广州城市学院报修管理系统' // 网页标题 const port = process.env.port || process.env.npm_config_port || 80 // 端口 @@ -34,11 +34,11 @@ module.exports = { open: false, proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy - '/dev-api': { - target: 'http://bx.mhito.net:8090', + [process.env.VUE_APP_BASE_API]: { + target: `http://localhost:8080`, changeOrigin: true, pathRewrite: { - '^/dev-api': '' + ['^' + process.env.VUE_APP_BASE_API]: '' } } },