feat: 重构工作流对话框,合并添加和编辑功能,新增流程操作对话框

This commit is contained in:
jxxghp
2025-02-26 19:07:00 +08:00
parent 1b43446b5c
commit 6d5d4354d9
4 changed files with 87 additions and 20 deletions

View File

@@ -2,7 +2,8 @@
import { Workflow } from '@/api/types'
import { useToast } from 'vue-toast-notification'
import { useConfirm } from 'vuetify-use-dialog'
import WorkflowEditDialog from '@/components/dialog/WorkflowEditDialog.vue'
import WorkflowAddEditDialog from '@/components/dialog/WorkflowAddEditDialog.vue'
import WorkflowActionsDialog from '@/components/dialog/WorkflowActionsDialog.vue'
import api from '@/api'
// 定义输入参数
@@ -22,9 +23,12 @@ const $toast = useToast()
// 确认框
const createConfirm = useConfirm()
// 流程编辑对话框
// 编辑对话框
const editDialog = ref(false)
// 流程对话框
const flowDialog = ref(false)
// 加载中
const loading = ref(false)
@@ -33,6 +37,11 @@ function handleEdit(item: Workflow) {
editDialog.value = true
}
// 编辑流程
function handleFlow(item: Workflow) {
flowDialog.value = true
}
// 计算已完成的动作数
function resolveDoneActions(item: Workflow) {
return item.current_action?.split(',').length || 0
@@ -41,6 +50,7 @@ function resolveDoneActions(item: Workflow) {
// 编辑完成
function editDone() {
editDialog.value = false
flowDialog.value = false
emit('refresh')
}
@@ -134,7 +144,7 @@ const resolveProgress = (item: Workflow) => {
</script>
<template>
<div>
<VCard class="mx-auto" @click="handleEdit(workflow)">
<VCard class="mx-auto" @click="handleFlow(workflow)">
<VCardItem class="py-3" :class="`bg-${resolveStatusVariant(workflow?.state).color}`">
<template #prepend>
<IconBtn v-if="workflow?.state === 'P'">
@@ -150,13 +160,19 @@ const resolveProgress = (item: Workflow) => {
<VCardSubtitle>{{ workflow?.description }}</VCardSubtitle>
<template #append>
<IconBtn>
<VIcon icon="mdi-edit" @click.stop="handleEdit(workflow)" />
<VIcon icon="mdi-vector-polyline-edit" @click.stop="handleFlow(workflow)" />
</IconBtn>
<IconBtn>
<VIcon icon="mdi-dots-vertical" />
<VMenu activator="parent" close-on-content-click>
<VList>
<VListItem variant="plain" base-color="primary" @click="handleRun(workflow)">
<VListItem variant="plain" base-color="primary" @click="handleEdit(workflow)">
<template #prepend>
<VIcon icon="mdi-note-edit" />
</template>
<VListItemTitle>编辑任务</VListItemTitle>
</VListItem>
<VListItem variant="plain" base-color="info" @click="handleRun(workflow)">
<template #prepend>
<VIcon icon="mdi-run" />
</template>
@@ -222,8 +238,16 @@ const resolveProgress = (item: Workflow) => {
</div>
</VCardText>
</VCard>
<!-- 流程对话框 -->
<WorkflowActionsDialog
v-if="flowDialog"
v-model="flowDialog"
@close="flowDialog = false"
@save="editDone"
:workflow="workflow"
/>
<!-- 编辑对话框 -->
<WorkflowEditDialog
<WorkflowAddEditDialog
v-if="editDialog"
v-model="editDialog"
@close="editDialog = false"