From 6c8b216476733526244a6313ee03bc22f5933ac9 Mon Sep 17 00:00:00 2001 From: cxc Date: Tue, 3 Jan 2023 17:23:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9E=E5=85=AC=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 2 +- src/api/flowable/finished.js | 10 + src/api/flowable/process.js | 141 +++ src/api/flowable/todo.js | 81 ++ src/api/system/user.js | 125 +-- src/components/ProcessViewer/index.vue | 12 +- .../penal/listeners/ElementListeners.vue | 1 - src/plugins/package/penal/listeners/tst.json | 5 - .../package/penal/listeners/utilSelf.js | 14 +- .../penal/properties/ElementProperties.vue | 4 +- .../penal/signal-message/SignalAndMessage.vue | 32 +- src/plugins/package/utils.js | 2 + src/router/index.js | 180 ++-- src/views/office/claim.vue | 184 ++++ src/views/office/copy.vue | 221 +++++ src/views/office/detail.vue | 831 ++++++++++++++++++ src/views/office/finished.vue | 275 ++++++ src/views/office/index.vue | 221 +++++ src/views/office/own.vue | 364 ++++++++ src/views/office/start.vue | 95 ++ src/views/office/todo.vue | 260 ++++++ 21 files changed, 2896 insertions(+), 164 deletions(-) create mode 100644 src/api/flowable/finished.js create mode 100644 src/api/flowable/process.js create mode 100644 src/api/flowable/todo.js delete mode 100644 src/plugins/package/penal/listeners/tst.json create mode 100644 src/views/office/claim.vue create mode 100644 src/views/office/copy.vue create mode 100644 src/views/office/detail.vue create mode 100644 src/views/office/finished.vue create mode 100644 src/views/office/index.vue create mode 100644 src/views/office/own.vue create mode 100644 src/views/office/start.vue create mode 100644 src/views/office/todo.vue diff --git a/.env.production b/.env.production index d857bba..9e6caae 100644 --- a/.env.production +++ b/.env.production @@ -5,7 +5,7 @@ VITE_APP_TITLE = 若依管理系统 VITE_APP_ENV = 'production' # 若依管理系统/生产环境 -VITE_APP_BASE_API = '/prod-api' +VITE_APP_BASE_API = 'http://192.168.110.10:1616' # 是否在打包时开启压缩,支持 gzip 和 brotli VITE_BUILD_COMPRESS = gzip \ No newline at end of file diff --git a/src/api/flowable/finished.js b/src/api/flowable/finished.js new file mode 100644 index 0000000..69a1e8f --- /dev/null +++ b/src/api/flowable/finished.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 撤回任务 +export function revokeProcess(data) { + return request({ + url: '/workflow/task/revokeProcess', + method: 'post', + data: data + }) +} diff --git a/src/api/flowable/process.js b/src/api/flowable/process.js new file mode 100644 index 0000000..09c207b --- /dev/null +++ b/src/api/flowable/process.js @@ -0,0 +1,141 @@ +import request from '@/utils/request' + +// 查询流程列表 +export function listProcess(query) { + return request({ + url: '/workflow/process/list', + method: 'get', + params: query + }) +} + +// 查询流程列表 +export function getProcessForm(query) { + return request({ + url: '/workflow/process/getProcessForm', + method: 'get', + params: query + }) +} + +// 部署流程实例 +export function startProcess(processDefId, data) { + return request({ + url: '/workflow/process/start/' + processDefId, + method: 'post', + data: data + }) +} + +// 获取流程图 +export function getBpmnXml(processDefId) { + return request({ + url: '/workflow/process/bpmnXml/' + processDefId, + method: 'get' + }) +} + +export function detailProcess(query) { + return request({ + url: '/workflow/process/detail', + method: 'get', + params: query + }) +} + +// 我的发起的流程 +export function listOwnProcess(query) { + return request({ + url: '/workflow/process/ownList', + method: 'get', + params: query + }) +} + +// 我待办的流程 +export function listTodoProcess(query) { + return request({ + url: '/workflow/process/todoList', + method: 'get', + params: query + }) +} + +// 我待签的流程 +export function listClaimProcess(query) { + return request({ + url: '/workflow/process/claimList', + method: 'get', + params: query + }) +} + +// 我已办的流程 +export function listFinishedProcess(query) { + return request({ + url: '/workflow/process/finishedList', + method: 'get', + params: query + }) +} + +// 查询流程抄送列表 +export function listCopyProcess(query) { + return request({ + url: '/workflow/process/copyList', + method: 'get', + params: query + }) +} + +// 完成任务 +export function complete(data) { + return request({ + url: '/workflow/task/complete', + method: 'post', + data: data + }) +} + +// 取消申请 +export function stopProcess(data) { + return request({ + url: '/workflow/task/stopProcess', + method: 'post', + data: data + }) +} + +// 驳回任务 +export function rejectTask(data) { + return request({ + url: '/workflow/task/reject', + method: 'post', + data: data + }) +} + +// 可退回任务列表 +export function returnList(data) { + return request({ + url: '/workflow/task/returnList', + method: 'post', + data: data + }) +} + +// 部署流程实例 +export function deployStart(deployId) { + return request({ + url: '/workflow/process/startFlow/' + deployId, + method: 'get', + }) +} + +// 删除流程实例 +export function delProcess(id) { + return request({ + url: '/workflow/instance/delete/?instanceId=' + id, + method: 'delete' + }) +} diff --git a/src/api/flowable/todo.js b/src/api/flowable/todo.js new file mode 100644 index 0000000..fa69811 --- /dev/null +++ b/src/api/flowable/todo.js @@ -0,0 +1,81 @@ +import request from '@/utils/request' + +// 完成任务 +export function complete(data) { + return request({ + url: '/workflow/task/complete', + method: 'post', + data: data + }) +} + +// 委派任务 +export function delegate(data) { + return request({ + url: '/workflow/task/delegate', + method: 'post', + data: data + }) +} + +// 转办任务 +export function transfer(data) { + return request({ + url: '/workflow/task/transfer', + method: 'post', + data: data + }) +} + +// 退回任务 +export function returnTask(data) { + return request({ + url: '/workflow/task/return', + method: 'post', + data: data + }) +} + +// 拒绝任务 +export function rejectTask(data) { + return request({ + url: '/workflow/task/reject', + method: 'post', + data: data + }) +} + +// 签收任务 +export function claimTask(data) { + return request({ + url: '/workflow/task/claim', + method: 'post', + data: data + }) +} + +// 可退回任务列表 +export function returnList(data) { + return request({ + url: '/workflow/task/returnList', + method: 'post', + data: data + }) +} + +// 下一节点 +export function getNextFlowNode(data) { + return request({ + url: '/workflow/task/nextFlowNode', + method: 'post', + data: data + }) +} + +// 部署流程实例 +export function deployStart(deployId) { + return request({ + url: '/workflow/process/startFlow/' + deployId, + method: 'get', + }) +} diff --git a/src/api/system/user.js b/src/api/system/user.js index c5be25f..9ffe9cf 100644 --- a/src/api/system/user.js +++ b/src/api/system/user.js @@ -1,135 +1,142 @@ -import request from '@/utils/request' +import request from "@/utils/request"; import { parseStrEmpty } from "@/utils/ruoyi"; // 查询用户列表 export function listUser(query) { return request({ - url: '/system/user/list', - method: 'get', - params: query - }) + url: "/system/user/list", + method: "get", + params: query, + }); } // 查询用户详细 export function getUser(userId) { return request({ - url: '/system/user/' + parseStrEmpty(userId), - method: 'get' - }) + url: "/system/user/" + parseStrEmpty(userId), + method: "get", + }); +} +// 查询用户列表,用于流程里的用户选择 +export function selectUser(query) { + return request({ + url: "/system/user/selectUser", + method: "get", + params: query, + }); } - // 新增用户 export function addUser(data) { return request({ - url: '/system/user', - method: 'post', - data: data - }) + url: "/system/user", + method: "post", + data: data, + }); } // 修改用户 export function updateUser(data) { return request({ - url: '/system/user', - method: 'put', - data: data - }) + url: "/system/user", + method: "put", + data: data, + }); } // 删除用户 export function delUser(userId) { return request({ - url: '/system/user/' + userId, - method: 'delete' - }) + url: "/system/user/" + userId, + method: "delete", + }); } // 用户密码重置 export function resetUserPwd(userId, password) { const data = { userId, - password - } + password, + }; return request({ - url: '/system/user/resetPwd', - method: 'put', - data: data - }) + url: "/system/user/resetPwd", + method: "put", + data: data, + }); } // 用户状态修改 export function changeUserStatus(userId, status) { const data = { userId, - status - } + status, + }; return request({ - url: '/system/user/changeStatus', - method: 'put', - data: data - }) + url: "/system/user/changeStatus", + method: "put", + data: data, + }); } // 查询用户个人信息 export function getUserProfile() { return request({ - url: '/system/user/profile', - method: 'get' - }) + url: "/system/user/profile", + method: "get", + }); } // 修改用户个人信息 export function updateUserProfile(data) { return request({ - url: '/system/user/profile', - method: 'put', - data: data - }) + url: "/system/user/profile", + method: "put", + data: data, + }); } // 用户密码重置 export function updateUserPwd(oldPassword, newPassword) { const data = { oldPassword, - newPassword - } + newPassword, + }; return request({ - url: '/system/user/profile/updatePwd', - method: 'put', - params: data - }) + url: "/system/user/profile/updatePwd", + method: "put", + params: data, + }); } // 用户头像上传 export function uploadAvatar(data) { return request({ - url: '/system/user/profile/avatar', - method: 'post', - data: data - }) + url: "/system/user/profile/avatar", + method: "post", + data: data, + }); } // 查询授权角色 export function getAuthRole(userId) { return request({ - url: '/system/user/authRole/' + userId, - method: 'get' - }) + url: "/system/user/authRole/" + userId, + method: "get", + }); } // 保存授权角色 export function updateAuthRole(data) { return request({ - url: '/system/user/authRole', - method: 'put', - params: data - }) + url: "/system/user/authRole", + method: "put", + params: data, + }); } // 查询部门下拉树结构 export function deptTreeSelect() { return request({ - url: '/system/dept/treeselect', - method: 'get' - }) + url: "/system/dept/treeselect", + method: "get", + }); } diff --git a/src/components/ProcessViewer/index.vue b/src/components/ProcessViewer/index.vue index c02d26e..392f671 100644 --- a/src/components/ProcessViewer/index.vue +++ b/src/components/ProcessViewer/index.vue @@ -120,12 +120,11 @@ width="100px" align="center" /> - + + + import "@/plugins/package/theme/index.scss"; +import { parseTime } from "@/utils/ruoyi"; import BpmnViewer from "bpmn-js/lib/Viewer"; import MoveCanvasModule from "diagram-js/lib/navigation/movecanvas"; import { nextTick, onBeforeUnmount, toRefs } from "vue"; diff --git a/src/plugins/package/penal/listeners/ElementListeners.vue b/src/plugins/package/penal/listeners/ElementListeners.vue index 3401c26..aea0be3 100644 --- a/src/plugins/package/penal/listeners/ElementListeners.vue +++ b/src/plugins/package/penal/listeners/ElementListeners.vue @@ -337,7 +337,6 @@ function resetListenersList() { bpmnElement.businessObject?.extensionElements?.values?.filter( (ex) => ex.$type === `${prefix}:ExecutionListener` ) ?? []; - debugger; elementListenersList.value = bpmnElementListeners.map((listener) => initListenerType(listener) ); diff --git a/src/plugins/package/penal/listeners/tst.json b/src/plugins/package/penal/listeners/tst.json deleted file mode 100644 index a6c809f..0000000 --- a/src/plugins/package/penal/listeners/tst.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "msg": "操作成功", - "code": 200, - "data": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n" -} diff --git a/src/plugins/package/penal/listeners/utilSelf.js b/src/plugins/package/penal/listeners/utilSelf.js index efd13ec..05fee4a 100644 --- a/src/plugins/package/penal/listeners/utilSelf.js +++ b/src/plugins/package/penal/listeners/utilSelf.js @@ -1,13 +1,13 @@ // 初始化表单数据 export function initListenerForm(listener) { let self = { - ...listener + ...listener, }; if (listener.script) { self = { ...listener, ...listener.script, - scriptType: listener.script.resource ? "externalScript" : "inlineScript" + scriptType: listener.script.resource ? "externalScript" : "inlineScript", }; } if (listener.event === "timeout" && listener.eventDefinitions) { @@ -28,15 +28,17 @@ export function initListenerForm(listener) { } export function initListenerType(listener) { + // debugger; let listenerType; if (listener.class) listenerType = "classListener"; if (listener.expression) listenerType = "expressionListener"; if (listener.delegateExpression) listenerType = "delegateExpressionListener"; if (listener.script) listenerType = "scriptListener"; + return { ...JSON.parse(JSON.stringify(listener)), ...(listener.script ?? {}), - listenerType: listenerType + listenerType: listenerType, }; } @@ -44,7 +46,7 @@ export const listenerType = { classListener: "Java 类", expressionListener: "表达式", delegateExpressionListener: "代理表达式", - scriptListener: "脚本" + scriptListener: "脚本", }; export const eventType = { @@ -53,10 +55,10 @@ export const eventType = { complete: "完成", delete: "删除", update: "更新", - timeout: "超时" + timeout: "超时", }; export const fieldType = { string: "字符串", - expression: "表达式" + expression: "表达式", }; diff --git a/src/plugins/package/penal/properties/ElementProperties.vue b/src/plugins/package/penal/properties/ElementProperties.vue index 4d5a68d..b8e4e56 100644 --- a/src/plugins/package/penal/properties/ElementProperties.vue +++ b/src/plugins/package/penal/properties/ElementProperties.vue @@ -21,7 +21,7 @@ show-overflow-tooltip /> -