修改部分按钮重复点击

This commit is contained in:
GGJ
2024-10-16 17:54:55 +08:00
parent 89535b6059
commit e470554b7c
18 changed files with 492 additions and 1082 deletions

View File

@@ -11,34 +11,22 @@
</template>
<!-- 情况一流程表单 -->
<el-col v-if="processInstance?.processDefinition?.formType === 10" :offset="6" :span="16">
<form-create
v-model="detailForm.value"
v-model:api="fApi"
:option="detailForm.option"
:rule="detailForm.rule"
/>
<form-create v-model="detailForm.value" v-model:api="fApi" :option="detailForm.option"
:rule="detailForm.rule" />
</el-col>
<!-- 情况二业务表单 -->
<div v-if="processInstance?.processDefinition?.formType === 20">
<BusinessFormComponent :id="processInstance.businessKey" :applyTitle="processInstance.name" />
</div>
</el-card>
<el-card
v-for="(item, index) in runningTasks"
:key="index"
v-loading="processInstanceLoading"
class="box-card"
>
<el-card v-for="(item, index) in runningTasks" :key="index" v-loading="processInstanceLoading"
class="box-card">
<template #header>
<span class="el-icon-picture-outline">当前任务{{ item.name }}</span>
</template>
<el-col :offset="6" :span="16">
<el-form
:ref="'form' + index"
:model="auditForms[index]"
:rules="auditRule"
label-width="100px"
>
<el-form :ref="'form' + index" :model="auditForms[index]" :rules="auditRule"
label-width="100px">
<el-form-item v-if="processInstance && processInstance.name" label="流程名">
{{ processInstance.name }}
</el-form-item>
@@ -55,20 +43,12 @@
{{ runningTasks[index]?.formName }}
</span>
</template>
<form-create
v-model="approveForms[index].value"
v-model:api="approveFormFApis[index]"
:option="approveForms[index].option"
:rule="approveForms[index].rule"
/>
<form-create v-model="approveForms[index].value" v-model:api="approveFormFApis[index]"
:option="approveForms[index].option" :rule="approveForms[index].rule" />
</el-card>
<el-form-item label="审批建议" prop="reason" style="margin-top: 15px">
<el-input
v-model="auditForms[index].reason"
placeholder="请输入审批建议"
type="textarea"
/>
<el-input v-model="auditForms[index].reason" placeholder="请输入审批建议" type="textarea" />
</el-form-item>
<!-- <el-form-item label='抄送人' prop='copyUserIds'>-->
<!-- <el-select v-model='auditForms[index].copyUserIds' multiple placeholder='请选择抄送人'>-->
@@ -82,8 +62,10 @@
<!-- </el-form-item>-->
</el-form>
<div style="margin-bottom: 20px; margin-left: 10%; font-size: 14px">
<el-button type="success" :icon="Select" @click="handleAudit(item, true)">通过</el-button>
<el-button type="danger" :icon="Close" @click="handleAudit(item, false)">通过</el-button>
<el-button type="success" :icon="Select" @click="handleAudit(item, true)"
:loading="loading">通过</el-button>
<el-button type="danger" :icon="Close" @click="handleAudit(item, false)"
:loading="loading">不通过</el-button>
<!-- <el-button type='primary' @click='openTaskUpdateAssigneeForm(item.id)'>-->
<!-- <Icon icon='ep:edit' />-->
<!-- 转办-->
@@ -100,7 +82,7 @@
</div>
</el-col>
</el-card>
</el-tab-pane>
<el-tab-pane label="申请信息" name="申请信息" v-if="runningTasks.length == 0">
<!-- 申请信息 -->
@@ -110,12 +92,8 @@
</template>
<!-- 情况一流程表单 -->
<el-col v-if="processInstance?.processDefinition?.formType === 10" :offset="6" :span="16">
<form-create
v-model="detailForm.value"
v-model:api="fApi"
:option="detailForm.option"
:rule="detailForm.rule"
/>
<form-create v-model="detailForm.value" v-model:api="fApi" :option="detailForm.option"
:rule="detailForm.rule" />
</el-col>
<!-- 情况二业务表单 -->
<div v-if="processInstance?.processDefinition?.formType === 20">
@@ -125,22 +103,12 @@
</el-tab-pane>
<el-tab-pane label="审批记录" name="审批记录">
<!-- 审批记录 -->
<ProcessInstanceTaskList
:loading="tasksLoad"
:process-instance="processInstance"
:tasks="tasks"
@refresh="getTaskList"
/>
<ProcessInstanceTaskList :loading="tasksLoad" :process-instance="processInstance" :tasks="tasks"
@refresh="getTaskList" />
</el-tab-pane>
<el-tab-pane label="流程图" name="流程图">
<ProcessInstanceBpmnViewer
ref="mapRef"
:id="`${id}`"
:bpmn-xml="bpmnXml"
:loading="processInstanceLoading"
:process-instance="processInstance"
:tasks="tasks"
/>
<ProcessInstanceBpmnViewer ref="mapRef" :id="`${id}`" :bpmn-xml="bpmnXml"
:loading="processInstanceLoading" :process-instance="processInstance" :tasks="tasks" />
</el-tab-pane>
</el-tabs>
<ContentWrap>
@@ -192,6 +160,7 @@ const processInstanceLoading = ref(false) // 流程实例的加载中
const processInstance = ref({}) // 流程实例
const bpmnXml = ref('') // BPMN XML
const tasksLoad = ref(true) // 任务的加载中
const loading = ref(false) // 任务的加载中
const tasks = ref<any[]>([]) // 任务列表
// ========== 审批信息 ==========
const runningTasks = ref<any[]>([]) // 运行中的任务
@@ -226,6 +195,7 @@ watch(
/** 处理审批通过和不通过的操作 */
const handleAudit = async (task, pass) => {
loading.value = true
// 1.1 获得对应表单
const index = runningTasks.value.indexOf(task)
const auditFormRef = proxy.$refs['form' + index][0]
@@ -262,7 +232,10 @@ const handleAudit = async (task, pass) => {
ElMessage.success('审批不通过成功')
}
// 2.2 加载最新数据
getDetail()
await getDetail()
await setTimeout(() => {
loading.value = false
}, 0);
}
/** 转派审批人 */
@@ -479,6 +452,7 @@ onMounted(async () => {
height: calc(100vh - 200px) !important;
overflow: auto !important;
}
::v-deep .el-col-offset-6 {
margin-left: 15% !important;
}