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 = ''
}