From 5d7d32bada42edc25e1182a81358fe819422603b Mon Sep 17 00:00:00 2001
From: zhujiyan <17812234322@163.com>
Date: Thu, 27 Jun 2024 15:48:43 +0800
Subject: [PATCH] =?UTF-8?q?form=E5=9B=9E=E6=98=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/utils/formCreate.ts | 69 ++++++++++---------
.../detail/ProcessInstanceTaskList.vue | 10 ++-
2 files changed, 42 insertions(+), 37 deletions(-)
diff --git a/src/utils/formCreate.ts b/src/utils/formCreate.ts
index 850df8cb..eb652d6f 100644
--- a/src/utils/formCreate.ts
+++ b/src/utils/formCreate.ts
@@ -4,54 +4,55 @@
// 编码表单 Conf
export const encodeConf = (designerRef: object) => {
- // @ts-ignore
- return JSON.stringify(designerRef.value.getOption())
+ // @ts-ignore
+ return JSON.stringify(designerRef.value.getOption())
}
// 编码表单 Fields
export const encodeFields = (designerRef: object) => {
- // @ts-ignore
- const rule = designerRef.value.getRule()
- const fields: string[] = []
- rule.forEach((item) => {
- fields.push(JSON.stringify(item))
- })
- return fields
+ // @ts-ignore
+ const rule = designerRef.value.getRule()
+ const fields: string[] = []
+ rule.forEach(item => {
+ fields.push(JSON.stringify(item))
+ })
+ return fields
}
// 解码表单 Fields
export const decodeFields = (fields: string[]) => {
- const rule: object[] = []
- fields.forEach((item) => {
- rule.push(JSON.parse(item))
- })
- return rule
+ const rule: object[] = []
+ fields.forEach(item => {
+ rule.push(JSON.parse(item))
+ })
+ return rule
}
// 设置表单的 Conf 和 Fields,适用 FcDesigner 场景
export const setConfAndFields = (designerRef: object, conf: string, fields: string) => {
- // @ts-ignore
- designerRef.value.setOption(JSON.parse(conf))
- // @ts-ignore
- designerRef.value.setRule(decodeFields(fields))
+ // @ts-ignore
+ designerRef.value.setOption(JSON.parse(conf))
+ // @ts-ignore
+ designerRef.value.setRule(decodeFields(fields))
}
// 设置表单的 Conf 和 Fields,适用 form-create 场景
-export const setConfAndFields2 = (
- detailPreview: object,
- conf: string,
- fields: string[],
- value?: object
-) => {
- if (isRef(detailPreview)) {
- detailPreview = detailPreview.value
- }
- // @ts-ignore
- detailPreview.option = JSON.parse(conf)
- // @ts-ignore
- detailPreview.rule = decodeFields(fields)
- if (value) {
+export const setConfAndFields2 = (detailPreview: object, conf: string, fields: string[], value?: object) => {
+ if (isRef(detailPreview)) {
+ detailPreview = detailPreview.value
+ }
// @ts-ignore
- detailPreview.value = value
- }
+ detailPreview.option = JSON.parse(conf)
+ // @ts-ignore
+ detailPreview.rule = decodeFields(fields)
+ if (value) {
+ // @ts-ignore
+ detailPreview.value = value
+ }
+}
+
+// 清除表单的 Conf 和 Fields,适用 form-create 场景
+export const resetConfAndFields = (detailPreview: object) => {
+ // @ts-ignore
+ detailPreview.value = {}
}
diff --git a/src/views/system/bpm/processInstance/detail/ProcessInstanceTaskList.vue b/src/views/system/bpm/processInstance/detail/ProcessInstanceTaskList.vue
index a3ec23f5..57bbf4f2 100644
--- a/src/views/system/bpm/processInstance/detail/ProcessInstanceTaskList.vue
+++ b/src/views/system/bpm/processInstance/detail/ProcessInstanceTaskList.vue
@@ -89,7 +89,7 @@
-
+
@@ -100,7 +100,7 @@ import { propTypes } from '@/utils/propTypes'
import { isEmpty } from '@/utils/is'
import TaskSignList from './dialog/TaskSignList.vue'
import type { ApiAttrs } from '@form-create/element-ui/types/config'
-import { setConfAndFields2 } from '@/utils/formCreate'
+import { setConfAndFields2 ,resetConfAndFields} from '@/utils/formCreate'
defineOptions({ name: 'BpmProcessInstanceTaskList' })
@@ -204,7 +204,7 @@ const taskForm = ref({
value: {}
}) // 流程任务的表单详情
const taskFormVisible = ref(false)
-const handleFormDetail = async row => {
+const handleFormDetail = async (row:any) => {
// 设置表单
setConfAndFields2(taskForm, row.formConf, row.formFields, row.formVariables)
// 弹窗打开
@@ -215,6 +215,10 @@ const handleFormDetail = async row => {
fApi.value?.fapi?.resetBtn.show(false)
fApi.value?.fapi?.disabled(true)
}
+//关闭表单
+const closeForm=()=>{
+ resetConfAndFields(taskForm)
+}
/** 刷新数据 */
const emit = defineEmits(['refresh']) // 定义 success 事件,用于操作成功后的回调