Browse Source

fix: 审批人候选人/角色/成员/表单 默认没有数据问题

lanceJiang 5 months ago
parent
commit
8a386c73e4
1 changed files with 12 additions and 3 deletions
  1. 12 3
      src/components/scWorkflow/nodes/approver.vue

+ 12 - 3
src/components/scWorkflow/nodes/approver.vue

@@ -68,7 +68,7 @@
 												<span>审批人员类型</span>
 											</div>
 											<div class="main-content">
-												<el-radio-group :modelValue="form.setType" @change="setTypeChange" class="main-content-radio">
+												<el-radio-group :model-value="form.setType" class="main-content-radio" @change="setTypeChange">
 													<el-radio v-for="v of setTypeOptions" :key="v.value" :label="v.value">{{ v.label }}</el-radio>
 												</el-radio-group>
 											</div>
@@ -99,7 +99,7 @@
 
 							<template v-if="form.setType === 4">
 								<el-form-item label="发起人自选">
-									<el-radio-group :modelValue="form.selectMode" @change="selectModeChange">
+									<el-radio-group :model-value="form.selectMode" @change="selectModeChange">
 										<el-radio v-for="v of selectModeOptions" :key="v.value" :label="v.value">{{ v.label }}</el-radio>
 									</el-radio-group>
 								</el-form-item>
@@ -434,7 +434,7 @@ export default {
 			// 1:用户 2:角色 (3:部门)
 			this.form.nodeCandidate.type = [1, 2].includes(mode) ? 1 : 2
 			const isSameMode = [1, 2].includes(mode) && [1, 2].includes(oldMode)
-			if (!isSameMode) {
+			if (!isSameMode || !this.form.nodeCandidate.assignees) {
 				// selectMode 变化 对 assignees 重置
 				this.form.nodeCandidate.assignees = []
 			}
@@ -443,6 +443,7 @@ export default {
 			// console.error(type, 'type, oldType', oldType)
 			const oldType = this.form.setType
 			this.form.setType = setType
+			// 原数据
 			if ([1, 3].includes(oldType)) {
 				// 上次setType 为  1:选择成员 or 3:角色 对 nodeAssigneeList 重置
 				this.form.nodeAssigneeList = []
@@ -453,6 +454,14 @@ export default {
 				// 发起人自己 对 actionUrl 重置
 				this.form.actionUrl = []
 			}
+			// 新数据
+			if ([1, 3].includes(setType)) {
+				if (!this.form.nodeAssigneeList) this.form.nodeAssigneeList = []
+			} else if (setType === 4) {
+				if (!this.form.nodeCandidate) this.selectModeChange(this.form.selectMode)
+			} else if (setType === 5) {
+				if (!this.form.actionUrl) this.form.actionUrl = []
+			}
 		},
 		toText(nodeConfig) {
 			const type = nodeConfig.setType