mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
feat-wip(projects): 办理功能弹窗适配
This commit is contained in:
@ -84,7 +84,7 @@ defineExpose({
|
|||||||
<NButton v-if="showSubmit || showApproval" @click="handleClose">{{ $t('common.cancel') }}</NButton>
|
<NButton v-if="showSubmit || showApproval" @click="handleClose">{{ $t('common.cancel') }}</NButton>
|
||||||
<NButton v-if="showSubmit" type="warning" @click="handleSaveDraft">暂存</NButton>
|
<NButton v-if="showSubmit" type="warning" @click="handleSaveDraft">暂存</NButton>
|
||||||
<NButton v-if="showSubmit" type="primary" @click="handleSubmit">{{ $t('common.confirm') }}</NButton>
|
<NButton v-if="showSubmit" type="primary" @click="handleSubmit">{{ $t('common.confirm') }}</NButton>
|
||||||
<NButton v-if="showApproval" type="warning" @click="handleApproval">办理</NButton>
|
<NButton v-if="showApproval" type="primary" @click="handleApproval">办理</NButton>
|
||||||
</NSpace>
|
</NSpace>
|
||||||
</div>
|
</div>
|
||||||
</slot>
|
</slot>
|
||||||
|
@ -21,13 +21,15 @@ interface Props {
|
|||||||
operateType: CommonType.WorkflowTableOperateType;
|
operateType: CommonType.WorkflowTableOperateType;
|
||||||
/** 业务ID */
|
/** 业务ID */
|
||||||
businessId?: CommonType.IdType;
|
businessId?: CommonType.IdType;
|
||||||
|
taskId?: CommonType.IdType;
|
||||||
/** the edit row data */
|
/** the edit row data */
|
||||||
rowData?: Api.Workflow.Leave | null;
|
rowData?: Api.Workflow.Leave | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
rowData: null,
|
rowData: null,
|
||||||
businessId: undefined
|
businessId: undefined,
|
||||||
|
taskId: undefined
|
||||||
});
|
});
|
||||||
|
|
||||||
interface Emits {
|
interface Emits {
|
||||||
@ -59,6 +61,8 @@ const readonly = computed(() => {
|
|||||||
return props.operateType === 'detail' || props.operateType === 'approval';
|
return props.operateType === 'detail' || props.operateType === 'approval';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const taskId = ref<CommonType.IdType>(props.taskId!);
|
||||||
|
|
||||||
const respLeave = ref<Api.Workflow.Leave>();
|
const respLeave = ref<Api.Workflow.Leave>();
|
||||||
const startWorkflowResult = ref<Api.Workflow.StartWorkflowResult>();
|
const startWorkflowResult = ref<Api.Workflow.StartWorkflowResult>();
|
||||||
|
|
||||||
@ -209,6 +213,7 @@ async function handleSubmit() {
|
|||||||
const { error, data } = await fetchStartWorkflow(startWorkflowModel);
|
const { error, data } = await fetchStartWorkflow(startWorkflowModel);
|
||||||
if (error) return;
|
if (error) return;
|
||||||
startWorkflowResult.value = data;
|
startWorkflowResult.value = data;
|
||||||
|
taskId.value = data.taskId!;
|
||||||
setTaskApplyVisible();
|
setTaskApplyVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,7 +303,7 @@ watch(visible, initializeData, { immediate: true });
|
|||||||
</FlowDrawer>
|
</FlowDrawer>
|
||||||
<FlowTaskApprovalModal
|
<FlowTaskApprovalModal
|
||||||
v-model:visible="taskApplyVisible"
|
v-model:visible="taskApplyVisible"
|
||||||
:task-id="startWorkflowResult?.taskId!"
|
:task-id="taskId"
|
||||||
:task-variables="taskVariables"
|
:task-variables="taskVariables"
|
||||||
@finished="handleTaskFinished"
|
@finished="handleTaskFinished"
|
||||||
/>
|
/>
|
||||||
|
@ -159,9 +159,11 @@ function handleResetSearch() {
|
|||||||
}
|
}
|
||||||
const modules = import.meta.glob('@/components/custom/workflow/**/*.vue');
|
const modules = import.meta.glob('@/components/custom/workflow/**/*.vue');
|
||||||
const businessId = ref<CommonType.IdType>();
|
const businessId = ref<CommonType.IdType>();
|
||||||
|
const taskId = ref<CommonType.IdType>();
|
||||||
|
|
||||||
async function handleApproval(row: Api.Workflow.Task) {
|
async function handleApproval(row: Api.Workflow.Task) {
|
||||||
businessId.value = row.businessId;
|
businessId.value = row.businessId;
|
||||||
|
taskId.value = row.id;
|
||||||
const formPath = row.formPath;
|
const formPath = row.formPath;
|
||||||
if (formPath) {
|
if (formPath) {
|
||||||
dynamicComponent.value = await loadDynamicComponent(modules, formPath);
|
dynamicComponent.value = await loadDynamicComponent(modules, formPath);
|
||||||
@ -205,7 +207,7 @@ async function handleApproval(row: Api.Workflow.Task) {
|
|||||||
</template>
|
</template>
|
||||||
<div class="h-full flex-col-stretch gap-12px overflow-hidden lt-sm:overflow-auto">
|
<div class="h-full flex-col-stretch gap-12px overflow-hidden lt-sm:overflow-auto">
|
||||||
<TaskWaitingSearch v-model:model="searchParams" @reset="handleResetSearch" @search="getDataByPage" />
|
<TaskWaitingSearch v-model:model="searchParams" @reset="handleResetSearch" @search="getDataByPage" />
|
||||||
<NCard title="我发起的" :bordered="false" size="small" class="card-wrapper sm:flex-1-hidden">
|
<NCard title="我的待办" :bordered="false" size="small" class="card-wrapper sm:flex-1-hidden">
|
||||||
<template #header-extra>
|
<template #header-extra>
|
||||||
<TableHeaderOperation
|
<TableHeaderOperation
|
||||||
v-model:columns="columnChecks"
|
v-model:columns="columnChecks"
|
||||||
@ -235,6 +237,7 @@ async function handleApproval(row: Api.Workflow.Task) {
|
|||||||
:visible="viewVisible"
|
:visible="viewVisible"
|
||||||
operate-type="approval"
|
operate-type="approval"
|
||||||
:business-id="businessId"
|
:business-id="businessId"
|
||||||
|
:task-id="taskId"
|
||||||
@submitted="getData"
|
@submitted="getData"
|
||||||
/>
|
/>
|
||||||
</NCard>
|
</NCard>
|
||||||
|
Reference in New Issue
Block a user