Skip to content

Commit 7587ace

Browse files
committed
Vue3 重构:流程实例的详情(流程任务列表)
1 parent 4388d65 commit 7587ace

File tree

1 file changed

+87
-81
lines changed
  • src/views/bpm/processInstance/detail

1 file changed

+87
-81
lines changed

src/views/bpm/processInstance/detail/index.vue

Lines changed: 87 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@
9797
</ContentWrap>
9898
</template>
9999
<script setup lang="ts">
100+
import { useUserStore } from '@/store/modules/user'
100101
import { setConfAndFields2 } from '@/utils/formCreate'
101102
import type { ApiAttrs } from '@form-create/element-ui/types/config'
102-
import { useUserStore } from '@/store/modules/user'
103103
import * as DefinitionApi from '@/api/bpm/definition'
104104
import * as ProcessInstanceApi from '@/api/bpm/processInstance'
105105
import * as TaskApi from '@/api/bpm/task'
@@ -177,95 +177,101 @@ const handleBack = async (task) => {
177177
console.log(task)
178178
}
179179
180-
// ========== 初始化 ==========
181-
onMounted(() => {
182-
getDetail()
183-
})
184-
180+
/** 获得详情 */
185181
const getDetail = () => {
186182
// 1. 获得流程实例相关
187-
processInstanceLoading.value = true
188-
ProcessInstanceApi.getProcessInstanceApi(id)
189-
.then((data) => {
190-
if (!data) {
191-
message.error('查询不到流程信息!')
192-
return
193-
}
194-
processInstance.value = data
183+
getProcessInstance()
184+
// 2. 获得流程任务列表(审批记录)
185+
getTaskList()
186+
}
195187
196-
// 设置表单信息
197-
const processDefinition = data.processDefinition
198-
if (processDefinition.formType === 10) {
199-
setConfAndFields2(
200-
detailForm,
201-
processDefinition.formConf,
202-
processDefinition.formFields,
203-
data.formVariables
204-
)
205-
nextTick().then(() => {
206-
fApi.value?.fapi?.btn.show(false)
207-
fApi.value?.fapi?.resetBtn.show(false)
208-
fApi.value?.fapi?.disabled(true)
209-
})
210-
}
188+
/** 加载流程实例 */
189+
const getProcessInstance = async () => {
190+
try {
191+
processInstanceLoading.value = true
192+
const data = await ProcessInstanceApi.getProcessInstanceApi(id)
193+
if (!data) {
194+
message.error('查询不到流程信息!')
195+
return
196+
}
197+
processInstance.value = data
211198
212-
// 加载流程图
213-
DefinitionApi.getProcessDefinitionBpmnXML(processDefinition.id).then((data) => {
214-
bpmnXML.value = data
199+
// 设置表单信息
200+
const processDefinition = data.processDefinition
201+
if (processDefinition.formType === 10) {
202+
setConfAndFields2(
203+
detailForm,
204+
processDefinition.formConf,
205+
processDefinition.formFields,
206+
data.formVariables
207+
)
208+
nextTick().then(() => {
209+
fApi.value?.fapi?.btn.show(false)
210+
fApi.value?.fapi?.resetBtn.show(false)
211+
fApi.value?.fapi?.disabled(true)
215212
})
213+
}
214+
215+
// 加载流程图
216+
bpmnXML.value = await DefinitionApi.getProcessDefinitionBpmnXML(processDefinition.id)
217+
} finally {
218+
processInstanceLoading.value = false
219+
}
220+
}
221+
222+
/** 加载任务列表 */
223+
const getTaskList = async () => {
224+
try {
225+
// 获得未取消的任务
226+
tasksLoad.value = true
227+
const data = await TaskApi.getTaskListByProcessInstanceId(id)
228+
tasks.value = []
229+
// 1.1 移除已取消的审批
230+
data.forEach((task) => {
231+
if (task.result !== 4) {
232+
tasks.value.push(task)
233+
}
216234
})
217-
.finally(() => {
218-
processInstanceLoading.value = false
235+
// 1.2 排序,将未完成的排在前面,已完成的排在后面;
236+
tasks.value.sort((a, b) => {
237+
// 有已完成的情况,按照完成时间倒序
238+
if (a.endTime && b.endTime) {
239+
return b.endTime - a.endTime
240+
} else if (a.endTime) {
241+
return 1
242+
} else if (b.endTime) {
243+
return -1
244+
// 都是未完成,按照创建时间倒序
245+
} else {
246+
return b.createTime - a.createTime
247+
}
219248
})
220249
221-
// 2. 获得流程任务列表(审批记录)
222-
tasksLoad.value = true
223-
runningTasks.value = []
224-
auditForms.value = []
225-
TaskApi.getTaskListByProcessInstanceId(id)
226-
.then((data) => {
227-
// 审批记录
228-
tasks.value = []
229-
// 移除已取消的审批
230-
data.forEach((task) => {
231-
if (task.result !== 4) {
232-
tasks.value.push(task)
233-
}
234-
})
235-
// 排序,将未完成的排在前面,已完成的排在后面;
236-
tasks.value.sort((a, b) => {
237-
// 有已完成的情况,按照完成时间倒序
238-
if (a.endTime && b.endTime) {
239-
return b.endTime - a.endTime
240-
} else if (a.endTime) {
241-
return 1
242-
} else if (b.endTime) {
243-
return -1
244-
// 都是未完成,按照创建时间倒序
245-
} else {
246-
return b.createTime - a.createTime
247-
}
248-
})
249-
250-
// 需要审核的记录
251-
tasks.value.forEach((task) => {
252-
// 1.1 只有待处理才需要
253-
if (task.result !== 1) {
254-
return
255-
}
256-
// 1.2 自己不是处理人
257-
if (!task.assigneeUser || task.assigneeUser.id !== userId) {
258-
return
259-
}
260-
// 2. 添加到处理任务
261-
runningTasks.value.push({ ...task })
262-
auditForms.value.push({
263-
reason: ''
264-
})
250+
// 获得需要自己审批的任务
251+
runningTasks.value = []
252+
auditForms.value = []
253+
tasks.value.forEach((task) => {
254+
// 2.1 只有待处理才需要
255+
if (task.result !== 1) {
256+
return
257+
}
258+
// 2.2 自己不是处理人
259+
if (!task.assigneeUser || task.assigneeUser.id !== userId) {
260+
return
261+
}
262+
// 2.3 添加到处理任务
263+
runningTasks.value.push({ ...task })
264+
auditForms.value.push({
265+
reason: ''
265266
})
266267
})
267-
.finally(() => {
268-
tasksLoad.value = false
269-
})
268+
} finally {
269+
tasksLoad.value = false
270+
}
270271
}
272+
273+
/** 初始化 */
274+
onMounted(() => {
275+
getDetail()
276+
})
271277
</script>

0 commit comments

Comments
 (0)