diff --git a/src/views/flow/index.vue b/src/views/flow/index.vue
index 5825ca8..441b33d 100644
--- a/src/views/flow/index.vue
+++ b/src/views/flow/index.vue
@@ -39,7 +39,12 @@
{{ groupSelectionPending ? "取消分组" : "分组" }}
-
+
试运行
@@ -831,6 +836,7 @@ const versionLoading = ref(false);
const versionList = ref([]);
const versionPreviewMode = ref(false);
const previewingVersionNo = ref(null);
+const trialPreparing = ref(false);
let draftBeforeVersionPreview = null;
let oldFlowDataBeforeVersionPreview = null;
let disableFormBeforeVersionPreview = false;
@@ -846,6 +852,8 @@ const flowInfoData = ref({
* 试运行
*/
const testRun = async () => {
+ if (trialPreparing.value || draftSaving.value) return;
+
// 1、验证画布内所有的表单通过验证
const { nodes, edges } = lf.getGraphData();
@@ -882,7 +890,14 @@ const testRun = async () => {
return;
}
- isOpen.value = true;
+ trialPreparing.value = true;
+ try {
+ const saved = await saveDraft({ successMessage: "已自动保存当前草稿" });
+ if (!saved) return;
+ isOpen.value = true;
+ } finally {
+ trialPreparing.value = false;
+ }
};
// 流程暂停
@@ -1459,7 +1474,7 @@ const getSavableFlowData = () => {
return sanitizeFlowResourceDefinition(validation.graph);
};
-const saveDraft = async () => {
+const saveDraft = async ({ successMessage = "草稿已保存" } = {}) => {
if (!flowInfoData.value.itemId) return false;
draftSaving.value = true;
try {
@@ -1474,7 +1489,7 @@ const saveDraft = async () => {
draftDirty.value = false;
oldFlowData = JSON.parse(JSON.stringify(lf.getGraphData()));
if (flowState.value === "updateData") flowState.value = "draftSaved";
- ElMessage.success("草稿已保存");
+ ElMessage.success(successMessage);
return true;
} catch (error) {
ElMessage.error(error?.message || "保存草稿失败");