From e1ee1f11766f8afddd700f2abdd1a954726b9b5c Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Tue, 18 Nov 2025 16:24:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20[bpm][antd]=20review=20todo=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/modules/custom-print-template.vue | 25 +++++++------------ .../bpm/model/form/modules/extra-setting.vue | 22 ++++++++-------- .../detail/modules/process-print.vue | 1 - 3 files changed, 19 insertions(+), 29 deletions(-) diff --git a/apps/web-antd/src/views/bpm/model/form/modules/custom-print-template.vue b/apps/web-antd/src/views/bpm/model/form/modules/custom-print-template.vue index ca18c1216..7133eb252 100644 --- a/apps/web-antd/src/views/bpm/model/form/modules/custom-print-template.vue +++ b/apps/web-antd/src/views/bpm/model/form/modules/custom-print-template.vue @@ -6,7 +6,7 @@ import { computed, onBeforeUnmount, ref, shallowRef } from 'vue'; import { useVbenModal } from '@vben/common-ui'; import Editor from '@tinymce/tinymce-vue'; -import { Alert, Button } from 'ant-design-vue'; +import { Alert } from 'ant-design-vue'; import { setupTinyPlugins } from './tinymce-plugin'; @@ -19,11 +19,14 @@ const props = withDefaults( }, ); +const emits = defineEmits<{ + (e: 'confirm', value: string): void; +}>(); + /** TinyMCE 自托管:https://www.jianshu.com/p/59a9c3802443 */ const tinymceScriptSrc = `${import.meta.env.VITE_BASE}tinymce/tinymce.min.js`; const [Modal, modalApi] = useVbenModal({ - footer: false, async onOpenChange(isOpen: boolean) { if (!isOpen) { return; @@ -40,15 +43,12 @@ const [Modal, modalApi] = useVbenModal({ modalApi.unlock(); } }, + onConfirm() { + emits('confirm', valueHtml.value); + modalApi.close(); + }, }); -const handleConfirm = () => { - /** 通过 setData 传递确认的数据,在父组件的 onConfirm 中获取 */ - modalApi.setData({ confirmedTemplate: valueHtml.value as string }); - modalApi.onConfirm(); - modalApi.close(); -}; - const mentionList = computed(() => { const base: MentionItem[] = [ { id: 'startUser', name: '发起人' }, @@ -99,7 +99,6 @@ onBeforeUnmount(() => { diff --git a/apps/web-antd/src/views/bpm/model/form/modules/extra-setting.vue b/apps/web-antd/src/views/bpm/model/form/modules/extra-setting.vue index af725817d..b2d7c2eb0 100644 --- a/apps/web-antd/src/views/bpm/model/form/modules/extra-setting.vue +++ b/apps/web-antd/src/views/bpm/model/form/modules/extra-setting.vue @@ -266,23 +266,14 @@ async function validate() { const [PrintTemplateModal, printTemplateModalApi] = useVbenModal({ connectedComponent: PrintTemplate, destroyOnClose: true, - onConfirm() { - // 会在内部模态框中设置数据,这里获取数据, 内部模态框中不能有 onConfirm 方法 - const { confirmedTemplate } = printTemplateModalApi.getData<{ - confirmedTemplate: string; - }>(); - if (confirmedTemplate !== undefined) { - modelData.value.printTemplateSetting.template = confirmedTemplate; - } - }, }); /** 弹出自定义打印模板弹窗 */ -const openPrintTemplateModal = () => { +function openPrintTemplateModal() { printTemplateModalApi .setData({ template: modelData.value.printTemplateSetting.template }) .open(); -}; +} /** 默认的打印模板, 目前自定义模板没有引入自定义样式。 看后续是否需要 */ const defaultTemplate = `

@流程名称

@@ -341,6 +332,10 @@ function handlePrintTemplateEnableChange(checked: any) { } } +function confirmPrintTemplate(template: string) { + modelData.value.printTemplateSetting.template = template; +} + defineExpose({ initData, validate }); diff --git a/apps/web-antd/src/views/bpm/processInstance/detail/modules/process-print.vue b/apps/web-antd/src/views/bpm/processInstance/detail/modules/process-print.vue index 504db968a..fc9efff06 100644 --- a/apps/web-antd/src/views/bpm/processInstance/detail/modules/process-print.vue +++ b/apps/web-antd/src/views/bpm/processInstance/detail/modules/process-print.vue @@ -233,7 +233,6 @@ function getPrintTemplateHTML() { 发起时间 - {{ formatDate(printData.processInstance.startTime) }}