diff --git a/apps/web-antd/src/api/workflow/instance/index.ts b/apps/web-antd/src/api/workflow/instance/index.ts index 748742e7..7d0d8d55 100644 --- a/apps/web-antd/src/api/workflow/instance/index.ts +++ b/apps/web-antd/src/api/workflow/instance/index.ts @@ -1,6 +1,7 @@ +import type { TaskInfo } from '../task/model'; import type { FlowInfoResponse } from './model'; -import type { ID, IDS, PageQuery } from '#/api/common'; +import type { ID, IDS, PageQuery, PageResult } from '#/api/common'; import { requestClient } from '#/api/request'; @@ -67,10 +68,13 @@ export function workflowInstanceActive(instanceId: ID, active: boolean) { /** * 获取当前登录人发起的流程实例 * @param params - * @returns + * @returns PageResult */ export function pageByCurrent(params?: PageQuery) { - return requestClient.get('/workflow/instance/current', { params }); + return requestClient.get>( + '/workflow/instance/pageByCurrent', + { params }, + ); } /** diff --git a/apps/web-antd/src/views/workflow/components/approval-panel.vue b/apps/web-antd/src/views/workflow/components/approval-panel.vue index 16c22855..ac65de00 100644 --- a/apps/web-antd/src/views/workflow/components/approval-panel.vue +++ b/apps/web-antd/src/views/workflow/components/approval-panel.vue @@ -2,12 +2,19 @@ import type { FlowInfoResponse } from '#/api/workflow/instance/model'; import type { TaskInfo } from '#/api/workflow/task/model'; -import { onUnmounted, ref, watch } from 'vue'; +import { computed, onUnmounted, ref, watch } from 'vue'; import { Fallback, VbenAvatar } from '@vben/common-ui'; import { DictEnum } from '@vben/constants'; -import { Card, Divider, Space, TabPane, Tabs } from 'ant-design-vue'; +import { + Card, + Divider, + Popconfirm, + Space, + TabPane, + Tabs, +} from 'ant-design-vue'; import { flowInfo } from '#/api/workflow/instance'; import { renderDict } from '#/utils/render'; @@ -19,7 +26,27 @@ defineOptions({ inheritAttrs: false, }); -const props = defineProps<{ task?: TaskInfo }>(); +// eslint-disable-next-line no-use-before-define +const props = defineProps<{ task?: TaskInfo; type: ApprovalType }>(); + +/** + * myself 我发起的 + * readonly 只读 只用于查看 + */ +type ApprovalType = 'myself' | 'readonly'; +const showFooter = computed(() => { + if (props.type === 'readonly') { + return false; + } + // 我发起的 && [已完成, 已作废] 不显示 + if ( + props.type === 'myself' && + ['finish', 'invalid'].includes(props.task?.flowStatus ?? '') + ) { + return false; + } + return true; +}); const currentFlowInfo = ref(); /** @@ -43,6 +70,10 @@ async function handleLoadInfo(task: TaskInfo | undefined) { watch(() => props.task, handleLoadInfo); onUnmounted(() => (currentFlowInfo.value = undefined)); + +async function handleCancel() { + // await cancelProcessApply() +}