From 1a975d544562ceae4ffd1bcaff33f8859bcac49a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=A6=8D?= <1455167345@qq.com> Date: Wed, 20 Mar 2024 16:58:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=8F=91=E8=B5=B7=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AF=B9=E6=8E=A5=EF=BC=8C=E6=B5=81=E7=A8=8B=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/sys/WFProcess.ts | 74 ++- src/api/sys/WFTask.ts | 40 ++ src/api/sys/model/WFProcessModel.ts | 17 +- src/api/sys/model/WFTaskModel.ts | 10 + src/utils/http/axios/index.ts | 10 +- src/views/demo/workflow/create/preview.vue | 17 +- .../demo/workflow/scheme/HistoryDrawer.vue | 3 +- .../demo/workflow/scheme/SchemeDrawer.vue | 22 +- src/views/demo/workflow/scheme/SchemeTree.vue | 10 +- src/views/demo/workflow/scheme/index.vue | 3 +- .../demo/workflow/task/completedTask.vue | 120 ++++ src/views/demo/workflow/task/data.ts | 165 +++++ src/views/demo/workflow/task/delegateTask.vue | 116 ++++ src/views/demo/workflow/task/i.js | 0 src/views/demo/workflow/task/index.vue | 58 +- src/views/demo/workflow/task/myDraft.vue | 108 ++++ src/views/demo/workflow/task/myTask.vue | 164 +++++ .../demo/workflow/task/process/audit.vue | 575 ++++++++++++++++++ src/views/demo/workflow/task/process/look.vue | 153 +++++ .../task/process/selectAuditUsers.vue | 39 ++ .../task/process/selectRejectNode.vue | 48 ++ .../demo/workflow/task/process/selectSign.vue | 160 +++++ src/views/demo/workflow/task/readTask.vue | 116 ++++ .../demo/workflow/task/uncompletedTask.vue | 108 ++++ src/views/demo/workflow/task/wf.js | 4 + 25 files changed, 2112 insertions(+), 28 deletions(-) create mode 100644 src/api/sys/WFTask.ts create mode 100644 src/api/sys/model/WFTaskModel.ts create mode 100644 src/views/demo/workflow/task/completedTask.vue create mode 100644 src/views/demo/workflow/task/data.ts create mode 100644 src/views/demo/workflow/task/delegateTask.vue create mode 100644 src/views/demo/workflow/task/i.js create mode 100644 src/views/demo/workflow/task/myDraft.vue create mode 100644 src/views/demo/workflow/task/myTask.vue create mode 100644 src/views/demo/workflow/task/process/audit.vue create mode 100644 src/views/demo/workflow/task/process/look.vue create mode 100644 src/views/demo/workflow/task/process/selectAuditUsers.vue create mode 100644 src/views/demo/workflow/task/process/selectRejectNode.vue create mode 100644 src/views/demo/workflow/task/process/selectSign.vue create mode 100644 src/views/demo/workflow/task/readTask.vue create mode 100644 src/views/demo/workflow/task/uncompletedTask.vue create mode 100644 src/views/demo/workflow/task/wf.js diff --git a/src/api/sys/WFProcess.ts b/src/api/sys/WFProcess.ts index 82dc14b..91cd0ed 100644 --- a/src/api/sys/WFProcess.ts +++ b/src/api/sys/WFProcess.ts @@ -1,12 +1,26 @@ // WFProcess 流程模版基本信息 import { defHttp } from '@/utils/http/axios'; -import {CreateParams} from './model/WFProcessModel' +import {CreateParams,DeleteDraftParams,RevokeAuditParams} from './model/WFProcessModel' +import {MyUncompletedParams} from './model/WFTaskModel' enum Api { // 创建流程 Create = '/api/WFProcess/Create', - SaveDraft='/api/WFProcess/SaveDraft' + // 保存草稿 + SaveDraft='/api/WFProcess/SaveDraft', + // 我的流程 + LoadMyPage='/api/WFProcess/LoadMyPage', + // 我的草稿 + LoadMyDraftPage='/api/WFProcess/LoadMyDraftPage', + // 删除草稿 + DeleteDraft='/api/WFProcess/DeleteDraft', + // 催办 + Urge='/api/WFProcess/Urge', + // 撤销 + Revoke='/api/WFProcess/Revoke', + // 审核撤销 + RevokeAudit='/api/WFProcess/RevokeAudit', } @@ -31,4 +45,60 @@ export function create( params?:CreateParams) { params, }, ); +} +/** + * @description: getLoadMyPage + */ + export function getLoadMyPage(params?: MyUncompletedParams) { + return defHttp.get({ url: Api.LoadMyPage, params }); +} +/** + * @description: getLoadMyDraftPage + */ + export function getLoadMyDraftPage(params?: MyUncompletedParams) { + return defHttp.get({ url: Api.LoadMyDraftPage, params }); +} +/** + * @description: 删除草稿 + */ + export function deleteDraft( params:DeleteDraftParams) { + return defHttp.post( + { + url: Api.DeleteDraft+"?id="+params.id, + params, + }, + ); +} +/** + * @description: 催办 + */ + export function urge( params:DeleteDraftParams) { + return defHttp.post( + { + url: Api.Urge+"?id="+params.id, + params, + }, + ); +} +/** + * @description: 撤销 + */ + export function revoke( params:DeleteDraftParams) { + return defHttp.post( + { + url: Api.Revoke+"?id="+params.id, + params, + }, + ); +} +/** + * @description: 审核撤销 + */ + export function revokeAudit(params:RevokeAuditParams) { + return defHttp.post( + { + url: Api.RevokeAudit+"?id="+params.id+"&taskId="+params.taskId, + params, + }, + ); } \ No newline at end of file diff --git a/src/api/sys/WFTask.ts b/src/api/sys/WFTask.ts new file mode 100644 index 0000000..3b79511 --- /dev/null +++ b/src/api/sys/WFTask.ts @@ -0,0 +1,40 @@ + +// WFTask +import { defHttp } from '@/utils/http/axios'; +import {MyUncompletedParams} from './model/WFTaskModel' + + enum Api { + // 我的待办 + LoadMyUncompletedPage = '/api/WFTask/LoadMyUncompletedPage', + // 我的已办 + LoadMyCompletedPage='/api/WFTask/LoadMyCompletedPage', + // 我的传阅 + LoadMyReadPage='/api/WFTask/LoadMyReadPage', + // 我的委托 + LoadMyDelegatePage='/api/WFTask/LoadMyDelegatePage', +} + +/** + * @description: getLoadMyUncompletedPage + */ + export function getLoadMyUncompletedPage(params?: MyUncompletedParams) { + return defHttp.get({ url: Api.LoadMyUncompletedPage, params }); +} +/** + * @description: getLoadMyCompletedPage + */ + export function getLoadMyCompletedPage(params?: MyUncompletedParams) { + return defHttp.get({ url: Api.LoadMyCompletedPage, params }); +} +/** + * @description: getLoadMyReadPage + */ + export function getLoadMyReadPage(params?: MyUncompletedParams) { + return defHttp.get({ url: Api.LoadMyReadPage, params }); +} +/** + * @description: getLoadMyDelegatePage + */ + export function getLoadMyDelegatePage(params?: MyUncompletedParams) { + return defHttp.get({ url: Api.LoadMyDelegatePage, params }); +} \ No newline at end of file diff --git a/src/api/sys/model/WFProcessModel.ts b/src/api/sys/model/WFProcessModel.ts index 144629d..15c8a2a 100644 --- a/src/api/sys/model/WFProcessModel.ts +++ b/src/api/sys/model/WFProcessModel.ts @@ -5,7 +5,7 @@ processId: string, schemeCode: string, title: string, - userId: string, + userId?: string, toUserId: string, nextUsers: { additionalProp1: string, @@ -18,4 +18,17 @@ stampImg: string, stampPassWord: string, nextId: string -} \ No newline at end of file +} +/** + * @description: 删除草稿参数 + */ + export interface DeleteDraftParams { + id: string, +} +/** + * @description: 审核撤销参数 + */ + export interface RevokeAuditParams { + id: string, + taskId:string, +} diff --git a/src/api/sys/model/WFTaskModel.ts b/src/api/sys/model/WFTaskModel.ts new file mode 100644 index 0000000..f7891c7 --- /dev/null +++ b/src/api/sys/model/WFTaskModel.ts @@ -0,0 +1,10 @@ +/** + * @description: 我的待办查询参数 + */ + export interface MyUncompletedParams { + keyWord: string; + page: number; + limit: number; + startDate: string; + endDate: string; +} \ No newline at end of file diff --git a/src/utils/http/axios/index.ts b/src/utils/http/axios/index.ts index a757c59..1e4f5f3 100644 --- a/src/utils/http/axios/index.ts +++ b/src/utils/http/axios/index.ts @@ -44,8 +44,8 @@ const transform: AxiosTransform = { return res.data; } // 错误的时候返回 - const { data } = res; + if (!data) { // return '[HTTP] Request has no return value'; throw new Error(t('sys.api.apiRequestFailed')); @@ -160,7 +160,7 @@ const transform: AxiosTransform = { (config as Recordable).headers.Authorization = options.authenticationScheme ? `${options.authenticationScheme} ${token}` : token; - config.headers['X-Token'] = token; + config.headers['X-Token'] = token; } return config; }, @@ -235,10 +235,10 @@ function createAxios(opt?: Partial) { // 基础接口地址 // baseURL: globSetting.apiUrl, - headers: { + headers: { 'Content-Type': ContentTypeEnum.JSON, - 'T-Token':getToken() - }, + 'T-Token': getToken() + }, // 如果是form-data格式 // headers: { 'Content-Type': ContentTypeEnum.FORM_URLENCODED }, // 数据处理方式 diff --git a/src/views/demo/workflow/create/preview.vue b/src/views/demo/workflow/create/preview.vue index 65c998c..d17d897 100644 --- a/src/views/demo/workflow/create/preview.vue +++ b/src/views/demo/workflow/create/preview.vue @@ -39,17 +39,19 @@ import { SendOutlined, SaveOutlined, CloseCircleOutlined, ZoomInOutlined, RotateLeftOutlined, RotateRightOutlined, ClearOutlined } from '@ant-design/icons-vue'; import { getDetail } from '@/api/sys/WFSchemeInfo' - import { create ,saveDraft} from '@/api/sys/WFProcess' + import { create, saveDraft } from '@/api/sys/WFProcess' import { getLoadMyUserList } from '@/api/sys/WFDelegate' import { useRoute } from 'vue-router' import { useMultipleTabStore } from '@/store/modules/multipleTab'; import { useRouter } from 'vue-router'; import { useUserStore } from '@/store/modules/user'; import { buildGUID } from '@/utils/uuid'; + import { useMessage } from '/@/hooks/web/useMessage'; + const { createConfirm, createMessage } = useMessage(); const userStore = useUserStore(); - console.log() const userInfo = userStore.getUserInfo + console.log(userInfo) const prefixCls = 'preview-box' const tabStore = useMultipleTabStore(); const router = useRouter(); @@ -95,7 +97,7 @@ async function getDetailInfo() { let data = await getDetail({ code: code }) flowContent.value = data.scheme.flowContent - formData.userId = userInfo.account + formData.userId = userInfo.id let content = JSON.parse(data.scheme.content) let wfData = content.wfData const currentNode = wfData.find(t => t.type == "bpmn:StartEvent") @@ -118,16 +120,19 @@ userId: formData.userId, title: formData.title, processId: buildGUID() - } if (!designerData.isDraft) { await saveDraft(querys) querys.schemeCode = '' designerData.isDraft = true } - console.log(querys) const data = await create(querys) - closePreview() + if (data) { + closePreview() + return createMessage.info('创建成功'); + } else { + return createMessage.error('创建失败'); + } } function closePreview() { diff --git a/src/views/demo/workflow/scheme/HistoryDrawer.vue b/src/views/demo/workflow/scheme/HistoryDrawer.vue index 443550e..5a4ee0d 100644 --- a/src/views/demo/workflow/scheme/HistoryDrawer.vue +++ b/src/views/demo/workflow/scheme/HistoryDrawer.vue @@ -6,8 +6,7 @@