|
@@ -10,7 +10,8 @@
|
|
|
<div v-if="validateForm.loading" v-loading="true" class="local_loading"></div>
|
|
|
<div class="info-wrap">
|
|
|
<el-divider content-position="left">{{ record.processName }}表单</el-divider>
|
|
|
- <FormCreate v-model:api="validateForm.api" class="form-wrap" :option="validateForm.option" :rule="validateForm.rule" />
|
|
|
+ <FormCreate v-if="false" v-model:api="validateForm.api" class="form-wrap" :option="validateForm.option" :rule="validateForm.rule" />
|
|
|
+ <er-form-preview ref="EReditorRef" :is-show-complete-button="false" />
|
|
|
<el-divider content-position="left">审批流程</el-divider>
|
|
|
<el-timeline class="timeline-wrap">
|
|
|
<el-timeline-item v-for="(v, index) in processTimelineList" :key="index">
|
|
@@ -67,11 +68,14 @@
|
|
|
<script setup lang="ts">
|
|
|
import model from '@/api/flow/process'
|
|
|
import viewForm from '@/utils/form'
|
|
|
+import { erFormPreview } from 'everright-formeditor'
|
|
|
+import 'Everright-formEditor/dist/style.css'
|
|
|
import { ref, shallowRef, computed, reactive, watchEffect } from 'vue'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
import UseSelect from '@/components/scWorkflow/select.vue'
|
|
|
import FlowNodeAvatar from '@/components/Flow/FlowNodeAvatar.vue'
|
|
|
import { approveTypeOptions_config, selectModeOptions_config, setTypeOptions_config } from '@/components/scWorkflow/nodes/config'
|
|
|
+const EReditorRef = ref()
|
|
|
type Props = {
|
|
|
modelValue: boolean
|
|
|
record: { processId: string; processName: string; [key: string]: any }
|
|
@@ -137,43 +141,44 @@ const validateForm = ref({
|
|
|
})
|
|
|
|
|
|
const onSubmit = async () => {
|
|
|
- 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
|
|
|
- const processForm: any[] = JSON.parse(cur_processForm_str)
|
|
|
- processForm.forEach(v => {
|
|
|
- // 填写的数据存储(local_: 本地数据处理标识)
|
|
|
- v.local_value = values[v.field]
|
|
|
- })
|
|
|
- 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 表单数据字符串
|
|
|
-let cur_processForm_str = '[]'
|
|
|
+let cur_processForm_str = '{}'
|
|
|
const processChecked = reactive<{ [key: string]: any }>({
|
|
|
/*'local_条件分支_期限': '短期'*/
|
|
|
})
|
|
@@ -313,13 +318,15 @@ Promise.all([
|
|
|
const modelContent = JSON.parse(res.modelContent)
|
|
|
local_workflow = modelContent.nodeConfig ?? modelContent.childNode
|
|
|
} catch (e) {}*/
|
|
|
- cur_processForm_str = res.processForm || '[]'
|
|
|
+ cur_processForm_str = res.processForm || '{}'
|
|
|
// const x = JSON.parse(cur_processForm_str)
|
|
|
// x[0].validate = [{ required: true, message: '请输入商品简介', trigger: 'blur' }]
|
|
|
|
|
|
// processForm 动态表单
|
|
|
// validateForm.value.rule = [...JSON.parse(cur_processForm_str) /*, { ...workflowItem, value: local_workflow }*/ /*, { type: 'input', field: 'test_3' }*/]
|
|
|
- validateForm.value.rule = JSON.parse(cur_processForm_str)
|
|
|
+ const { formStructure } = JSON.parse(cur_processForm_str)
|
|
|
+ EReditorRef.value.setData(formStructure)
|
|
|
+ // validateForm.value.rule = JSON.parse(cur_processForm_str)
|
|
|
})
|
|
|
]).finally(() => {
|
|
|
validateForm.value.loading = false
|