|
@@ -20,7 +20,7 @@
|
|
|
|
|
|
<!-- vue自定义 -->
|
|
<!-- vue自定义 -->
|
|
<template v-if="record.formTemplate.type === 1">
|
|
<template v-if="record.formTemplate.type === 1">
|
|
- <component :is="dyVueComponent"></component>
|
|
|
|
|
|
+ <component :is="dyVueComponent" ref="dyVueComponentRef"></component>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<el-divider content-position="left">审批流程</el-divider>
|
|
<el-divider content-position="left">审批流程</el-divider>
|
|
@@ -73,48 +73,69 @@ const uploadFileApi = ref(`${VITE_APP_BASE_API}/v1/oss/upload`)
|
|
const EReditorRef = ref()
|
|
const EReditorRef = ref()
|
|
const modelContentConfig = ref<ModelContentConfig | any>({})
|
|
const modelContentConfig = ref<ModelContentConfig | any>({})
|
|
const dyVueComponent = ref(undefined)
|
|
const dyVueComponent = ref(undefined)
|
|
|
|
+const dyVueComponentRef = ref()
|
|
const flowTrendRef = ref()
|
|
const flowTrendRef = ref()
|
|
|
|
|
|
const onSubmit = async () => {
|
|
const onSubmit = async () => {
|
|
const processId = props.record.processId
|
|
const processId = props.record.processId
|
|
- const form = EReditorRef.value.getSelfFormRef()
|
|
|
|
- form.validate((valid: any) => {
|
|
|
|
- if (valid) {
|
|
|
|
|
|
+ const { type } = props.record.formTemplate
|
|
|
|
+ let params = {}
|
|
|
|
+ // 这里要从子节点获取流程图信息 进行保存
|
|
|
|
+ const _assigneeMap = flowTrendRef.value.getAssigneeMap()
|
|
|
|
+ const assigneeMap_ = Object.keys(_assigneeMap).reduce((obj, nodeKey: string) => {
|
|
|
|
+ const _o = _assigneeMap[nodeKey]
|
|
|
|
+ obj[nodeKey] = {
|
|
|
|
+ assigneeList: _o.assignees,
|
|
|
|
+ type: _o.type
|
|
|
|
+ }
|
|
|
|
+ return obj
|
|
|
|
+ }, {} as { [nodeKey: string]: any })
|
|
|
|
+ if (!type) {
|
|
|
|
+ // type: 0 表单设计 1 vue自定义表单
|
|
|
|
+ const form = EReditorRef.value.getSelfFormRef()
|
|
|
|
+ form.validate((valid: any) => {
|
|
|
|
+ if (!valid) return false
|
|
// 表单验证通过 进行保存
|
|
// 表单验证通过 进行保存
|
|
validateForm.value.loading = true
|
|
validateForm.value.loading = true
|
|
const formData = EReditorRef.value.getData()
|
|
const formData = EReditorRef.value.getData()
|
|
let processForm = JSON.parse(cur_processForm_str)
|
|
let processForm = JSON.parse(cur_processForm_str)
|
|
processForm = { ...processForm, formData }
|
|
processForm = { ...processForm, formData }
|
|
- // 这里要从子节点获取流程图信息 进行保存
|
|
|
|
- const _assigneeMap = flowTrendRef.value.getAssigneeMap()
|
|
|
|
- const assigneeMap_ = Object.keys(_assigneeMap).reduce((obj, nodeKey: string) => {
|
|
|
|
- const _o = _assigneeMap[nodeKey]
|
|
|
|
- obj[nodeKey] = {
|
|
|
|
- assigneeList: _o.assignees,
|
|
|
|
- type: _o.type
|
|
|
|
- }
|
|
|
|
- return obj
|
|
|
|
- }, {} as { [nodeKey: string]: any })
|
|
|
|
- const params = {
|
|
|
|
|
|
+ params = {
|
|
id: props.record.rowId,
|
|
id: props.record.rowId,
|
|
- test: 'formTemplate',
|
|
|
|
|
|
+ test: '',
|
|
processStart: {
|
|
processStart: {
|
|
processId, // 流程ID
|
|
processId, // 流程ID
|
|
processForm: JSON.stringify(processForm), // 流程表单JSON内容 & local_value 保存
|
|
processForm: JSON.stringify(processForm), // 流程表单JSON内容 & local_value 保存
|
|
assigneeMap: assigneeMap_
|
|
assigneeMap: assigneeMap_
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- purchaseOrder
|
|
|
|
- .postlaunchApi(params)
|
|
|
|
- .then(res => {
|
|
|
|
- ElMessage.success('提交成功')
|
|
|
|
- updateModelValue(false)
|
|
|
|
- })
|
|
|
|
- .finally(() => {
|
|
|
|
- validateForm.value.loading = false
|
|
|
|
- })
|
|
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ const formData = dyVueComponentRef.value.getData()
|
|
|
|
+ const testData = {
|
|
|
|
+ formStructure: '表单主体vue地址',
|
|
|
|
+ formData: formData
|
|
|
|
+ }
|
|
|
|
+ params = {
|
|
|
|
+ id: props.record.rowId,
|
|
|
|
+ test: JSON.stringify(testData),
|
|
|
|
+ processStart: {
|
|
|
|
+ processId, // 流程ID
|
|
|
|
+ processForm: '', // 流程表单JSON内容 & local_value 保存
|
|
|
|
+ assigneeMap: assigneeMap_
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ purchaseOrder
|
|
|
|
+ .postlaunchApi(params)
|
|
|
|
+ .then(res => {
|
|
|
|
+ ElMessage.success('提交成功')
|
|
|
|
+ updateModelValue(false)
|
|
|
|
+ })
|
|
|
|
+ .finally(() => {
|
|
|
|
+ validateForm.value.loading = false
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
|
|
// 获取当前表单中的详情
|
|
// 获取当前表单中的详情
|
|
@@ -127,8 +148,8 @@ const getDetailInfo = () => {
|
|
const { content, type } = props.record.formTemplate
|
|
const { content, type } = props.record.formTemplate
|
|
if (!type) {
|
|
if (!type) {
|
|
// type: 0 表单设计 1 vue自定义表单
|
|
// type: 0 表单设计 1 vue自定义表单
|
|
- cur_processForm_str = content || '{}' // processForm 这个是后台返回来的
|
|
|
|
- const formStructure = JSON.parse(cur_processForm_str)
|
|
|
|
|
|
+ cur_processForm_str = `{"formStructure":${content}}` || '{}' // processForm 这个是后台返回来的
|
|
|
|
+ const { formStructure } = JSON.parse(cur_processForm_str)
|
|
EReditorRef.value.setData(formStructure)
|
|
EReditorRef.value.setData(formStructure)
|
|
} else {
|
|
} else {
|
|
dyVueComponent.value = markRaw(defineAsyncComponent(() => import('./test1.vue')))
|
|
dyVueComponent.value = markRaw(defineAsyncComponent(() => import('./test1.vue')))
|