Răsfoiți Sursa

feat: 创建流程,表单设计ID必须唯一

luoyali 1 an în urmă
părinte
comite
c8ba8c5035
1 a modificat fișierele cu 12 adăugiri și 9 ștergeri
  1. 12 9
      src/views/flow/create/index.vue

+ 12 - 9
src/views/flow/create/index.vue

@@ -95,7 +95,8 @@ const submitHandler = async () => {
 	// 表单设计
 	// 流程设计
 	// 扩展设置
-	changeTab()
+	const leavePageFlag = changeTab()
+	if (leavePageFlag) return // 说明表单设计的值有重复的
 	const params = {
 		categoryId: categoryId.value,
 		processIcon: processIcon.value,
@@ -119,23 +120,25 @@ const submitHandler = async () => {
 
 // 切换选项卡之前,做相应的保存操作
 const changeTab = () => {
+	let leavePageFlag = false
 	if (activeName.value === '表单设计') {
+		// 这里针对表单设计单独处理,如果不符合条件,则不允许切换
 		dyncComponent.value.exportJsonEv()
+		leavePageFlag = dyncComponent.value.validateOnlyEv() // FormDesign.vue中的方法
+		if (leavePageFlag) {
+			return ElMessage.error(`表单设计中字段ID不能重复,请确认唯一值`)
+		}
 	} else if (activeName.value === '流程设计') {
 		dyncComponent.value.saveDesign()
 	}
+	return leavePageFlag
 }
 
 const activeComponent = item => {
-	changeTab()
-	// 这里针对表单设计单独处理,如果不符合条件,则不允许切换
-	if (activeName.value === '表单设计') {
-		const leavePageFlag = dyncComponent.value.validateOnlyEv() // FormDesign.vue中的方法
-		if (leavePageFlag) {
-			return ElMessage.error(`请确认当前表单中的字段Id值是唯一的`)
-		}
+	const leavePageFlag = changeTab()
+	if (!leavePageFlag) {
+		activeName.value = item.label
 	}
-	activeName.value = item.label
 }
 
 const currentComponent = computed(() => {