Преглед изворни кода

feat: 审批详情表单 + 发起审批表单 100%

luoyali пре 1 година
родитељ
комит
a05cf8022b
2 измењених фајлова са 71 додато и 72 уклоњено
  1. 39 36
      src/views/approve/components/approvedContent.vue
  2. 32 36
      src/views/approve/launch/ItemDrawer.vue

+ 39 - 36
src/views/approve/components/approvedContent.vue

@@ -38,10 +38,7 @@
 					<div class="scroll-wrap">
 						<!-- 表单 -->
 						<div v-loading="validateForm.loading" class="form-wrap">
-							<!--
-              <FormCreate v-show="validateForm.rule.length" v-model:api="validateForm.api" :option="validateForm.option" :rule="validateForm.rule" />
-              -->
-							<er-form-preview ref="EReditorRef" :is-show-complete-button="false" />
+							<er-form-preview ref="EReditorRef" v-show="validateForm.rule.length" :is-show-complete-button="false" />
 							<LeNoData v-if="!validateForm.rule.length" message="表单无数据" />
 						</div>
 
@@ -237,12 +234,7 @@ const taskId = computed(() => {
 	return currentTaskRow.value.taskId || ''
 })
 
-const FormCreate = viewForm.$form()
 const validateForm = ref({
-	api: {},
-	option: {
-		submitBtn: false
-	},
 	rule: [],
 	loading: false
 })
@@ -265,21 +257,32 @@ const openComment = async (visibleType, item) => {
 			// 点击同意
 			let bool = true
 			if (item === 'agree') {
-				const api = validateForm.value.api
-				bool = await api.validate((valid, fail) => {
+				const form = EReditorRef.value.form
+				bool = await form.validate(valid => {
 					if (valid) {
-						// 表单验证通过
-						const values = api.formData()
-						const processForm = JSON.parse(cur_processForm_str)
-						processForm.forEach(v => {
-							// 填写的数据存储(local_: 本地数据处理标识)
-							v.local_value = values[v.field]
-						})
-						console.warn(processForm, 'processForm')
-						// 流程表单JSON内容 & local_value 保存
+						// 表单验证通过 进行保存
+						const formData = EReditorRef.value.getData()
+						let processForm = JSON.parse(cur_processForm_str)
+						processForm = { ...processForm, formData }
 						currentFormData.value = { processForm: JSON.stringify(processForm) }
+						console.log('验证通过')
 					}
 				})
+				// const api = validateForm.value.api
+				// bool = await api.validate((valid, fail) => {
+				// 	if (valid) {
+				// 		// 表单验证通过
+				// 		const values = api.formData()
+				// 		const processForm = JSON.parse(cur_processForm_str)
+				// 		processForm.forEach(v => {
+				// 			// 填写的数据存储(local_: 本地数据处理标识)
+				// 			v.local_value = values[v.field]
+				// 		})
+				// 		console.warn(processForm, 'processForm')
+				// 		// 流程表单JSON内容 & local_value 保存
+				// 		currentFormData.value = { processForm: JSON.stringify(processForm) }
+				// 	}
+				// })
 			}
 			if (!bool) return
 			currentType.value = item
@@ -342,28 +345,28 @@ const getTaskDetail = () => {
 						showValue
 					}
 				})*/
-				const cur_processForm_str = JSON.parse(data.formContent)
-				const { formStructure, formData } = cur_processForm_str
+				cur_processForm_str = data.formContent
+				const { formStructure, formData } = JSON.parse(cur_processForm_str)
 				EReditorRef.value.setData(formStructure, formData)
 				validateForm.value.rule = formStructure.fields
 				console.log(formStructure)
 				// todo 还要在这里判断哪些表单室显示 隐藏 禁用 启用
 				return
 				// 以下代码作废 todo delete
-				if (Array.isArray(forms)) {
-					validateForm.value.rule = forms
-					const api = validateForm.value.api
-					api.setValue(
-						forms.reduce((obj, item) => {
-							obj[item.field] = item.local_value
-							return obj
-						}, {})
-					)
-					api.nextTick(() => {
-						// 是否有编辑权限 操作
-						api.disabled(false /*true*/)
-					})
-				}
+				// if (Array.isArray(forms)) {
+				// 	validateForm.value.rule = forms
+				// 	const api = validateForm.value.api
+				// 	api.setValue(
+				// 		forms.reduce((obj, item) => {
+				// 			obj[item.field] = item.local_value
+				// 			return obj
+				// 		}, {})
+				// 	)
+				// 	api.nextTick(() => {
+				// 		// 是否有编辑权限 操作
+				// 		api.disabled(false /*true*/)
+				// 	})
+				// }
 				// 以下代码作废 todo delete
 			} catch (e) {
 				console.error('解析 descItems 数据出现问题', e)

+ 32 - 36
src/views/approve/launch/ItemDrawer.vue

@@ -133,44 +133,40 @@ const validateForm = ref({
 })
 
 const onSubmit = async () => {
-	// todo 这里还需要做表单校验
-	const formData = EReditorRef.value.getData()
-	// console.log(formData)
-	const api = validateForm.value.api
-	// await api.validate()
-	// const values = api.formData()
-	// console.warn(values, 'values')
 	const processId = props.record.processId
-	validateForm.value.loading = true
-	let processForm = JSON.parse(cur_processForm_str)
-	processForm = { ...processForm, formData }
-	// processForm.forEach(v => {
-	// 	// 填写的数据存储(local_: 本地数据处理标识)
-	// 	v.local_value = values[v.field]
-	// })
-	console.log(processForm, '===========')
-	const _assigneeMap = assigneeMap.value
-	const assigneeMap_ = Object.keys(_assigneeMap).reduce((obj, key) => {
-		const _o = _assigneeMap[key]
-		obj[key] = {
-			assigneeList: _o.assignees,
-			type: _o.type
+	const form = EReditorRef.value.form
+	form.validate(valid => {
+		if (valid) {
+			// 表单验证通过 进行保存
+			validateForm.value.loading = true
+			const formData = EReditorRef.value.getData()
+			let processForm = JSON.parse(cur_processForm_str)
+			processForm = { ...processForm, formData }
+			console.log(processForm, '===========')
+			const _assigneeMap = assigneeMap.value
+			const assigneeMap_ = Object.keys(_assigneeMap).reduce((obj, key) => {
+				const _o = _assigneeMap[key]
+				obj[key] = {
+					assigneeList: _o.assignees,
+					type: _o.type
+				}
+				return obj
+			}, {})
+			model
+				.processLaunchApi({
+					processId, // 流程ID
+					processForm: JSON.stringify(processForm), // 流程表单JSON内容 & local_value 保存
+					assigneeMap: assigneeMap_
+				})
+				.then(res => {
+					ElMessage.success('提交成功')
+					updateModelValue(false)
+				})
+				.finally(() => {
+					validateForm.value.loading = false
+				})
 		}
-		return obj
-	}, {})
-	model
-		.processLaunchApi({
-			processId, // 流程ID
-			processForm: JSON.stringify(processForm), // 流程表单JSON内容 & local_value 保存
-			assigneeMap: assigneeMap_
-		})
-		.then(res => {
-			ElMessage.success('提交成功')
-			updateModelValue(false)
-		})
-		.finally(() => {
-			validateForm.value.loading = false
-		})
+	})
 }
 
 // 当前form 表单数据字符串