diff --git a/web-admin/src/views/oa-approval/drafts/index.vue b/web-admin/src/views/oa-approval/drafts/index.vue index be3a86f2..a66f5c2c 100644 --- a/web-admin/src/views/oa-approval/drafts/index.vue +++ b/web-admin/src/views/oa-approval/drafts/index.vue @@ -59,11 +59,7 @@
已选 {{ selectedRows.length }} 项
- + 批量删除 @@ -159,6 +155,12 @@ + + @@ -166,7 +168,7 @@ import { onActivated, onMounted, reactive, ref } from 'vue' import { useRouter } from 'vue-router' import { Delete, Edit, Promotion, RefreshLeft, Search } from '@element-plus/icons-vue' - import { ElMessageBox } from 'element-plus' + import { ElMessage, ElMessageBox } from 'element-plus' import { fetchBatchDeleteOaInstanceDrafts, fetchDeleteOaInstanceDraft, @@ -174,6 +176,7 @@ fetchOaInstanceDraftList, fetchSubmitOaInstanceDraft } from '@/api/oaApproval' + import OaStartFormDialog from '@/components/oa-approval/OaStartFormDialog.vue' import { refreshOaMenuBadges } from '@/utils/oa-menu-badge' defineOptions({ name: 'OaApprovalDrafts' }) @@ -187,6 +190,7 @@ const pageSize = ref(20) const total = ref(0) const submittingId = ref('') + const draftDialogRef = ref | null>(null) const searchForm = reactive({ keyword: '', @@ -243,12 +247,26 @@ handleSearch() } - function openEdit(row: any) { + async function openEdit(row: any) { if (!row?.id) return - router.push({ - path: '/system-manage/oa-approval/start', - query: { draftId: row.id } - }) + try { + await draftDialogRef.value?.openForDraft(row.id) + } catch { + ElMessage.error('无法打开草稿') + } + } + + function onDraftDialogSaved() { + void loadList() + void refreshOaMenuBadges() + } + + function onDraftDialogSubmitted(data: any) { + void loadList() + void refreshOaMenuBadges() + if (data?.id) { + router.push({ path: `/system-manage/oa-approval/instances/${data.id}` }) + } } async function handleSubmit(row: any) { @@ -271,7 +289,8 @@ router.push({ path: `/system-manage/oa-approval/instances/${data.id}` }) } } catch { - openEdit(row) + // 快捷提交失败:打开同一弹窗回显,不跳发起页 + await openEdit(row) } finally { submittingId.value = '' }