Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
eeda821b
authored
Dec 27, 2024
by
GoldenZqqq
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 区分兼容bpmn设计器与simple设计器不同传参与不同处理方式
parent
3ba5cb46
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
67 additions
and
58 deletions
+67
-58
src/views/bpm/model/form/ProcessDesign.vue
+39
-42
src/views/bpm/model/form/index.vue
+28
-16
No files found.
src/views/bpm/model/form/ProcessDesign.vue
View file @
eeda821b
...
...
@@ -49,6 +49,33 @@ const modelData = computed({
set
:
(
val
)
=>
emit
(
'update:modelValue'
,
val
)
})
/** 获取当前流程数据 */
const
getProcessData
=
async
()
=>
{
try
{
if
(
modelData
.
value
.
type
===
BpmModelType
.
BPMN
)
{
// BPMN设计器
if
(
bpmnEditorRef
.
value
)
{
const
{
xml
}
=
await
bpmnEditorRef
.
value
.
saveXML
()
if
(
xml
)
{
return
xml
}
}
}
else
{
// Simple设计器
if
(
simpleEditorRef
.
value
)
{
const
flowData
=
await
simpleEditorRef
.
value
.
getCurrentFlowData
()
if
(
flowData
)
{
return
flowData
// 直接返回流程数据对象,不需要转换为字符串
}
}
}
return
undefined
}
catch
(
error
)
{
console
.
error
(
'获取流程数据失败:'
,
error
)
return
undefined
}
}
/** 表单校验 */
const
validate
=
async
()
=>
{
try
{
...
...
@@ -59,10 +86,9 @@ const validate = async () => {
throw
new
Error
(
'流程设计器未初始化'
)
}
// 获取最新的XML数据
const
bpmnXml
=
await
getXmlString
()
console
.
warn
(
bpmnXml
,
'bpmnXml'
)
if
(
!
bpmnXml
)
{
// 获取最新的流程数据
const
processData
=
await
getProcessData
()
if
(
!
processData
)
{
throw
new
Error
(
'请设计流程'
)
}
...
...
@@ -72,52 +98,23 @@ const validate = async () => {
}
}
/**
获取当前XML字符串
*/
const
getXmlString
=
async
(
)
=>
{
try
{
/**
处理设计器保存成功
*/
const
handleDesignSuccess
=
(
data
?:
any
)
=>
{
if
(
data
)
{
if
(
modelData
.
value
.
type
===
BpmModelType
.
BPMN
)
{
// BPMN设计器
if
(
bpmnEditorRef
.
value
)
{
const
{
xml
}
=
await
bpmnEditorRef
.
value
.
saveXML
()
if
(
xml
)
{
// 更新本地数据
modelData
.
value
=
{
...
modelData
.
value
,
bpmnXml
:
xml
}
}
return
xml
bpmnXml
:
data
,
simpleModel
:
null
}
}
else
{
// Simple设计器
if
(
simpleEditorRef
.
value
)
{
const
flowData
=
await
simpleEditorRef
.
value
.
getCurrentFlowData
()
if
(
flowData
)
{
const
jsonData
=
JSON
.
stringify
(
flowData
)
// 更新本地数据
modelData
.
value
=
{
...
modelData
.
value
,
bpmnXml
:
jsonData
}
return
jsonData
bpmnXml
:
null
,
simpleModel
:
data
}
}
}
return
undefined
}
catch
(
error
)
{
console
.
error
(
'获取流程数据失败:'
,
error
)
return
undefined
}
}
/** 处理设计器保存成功 */
const
handleDesignSuccess
=
(
bpmnXml
?:
string
)
=>
{
if
(
bpmnXml
)
{
modelData
.
value
=
{
...
modelData
.
value
,
bpmnXml
}
emit
(
'success'
,
bpmnXml
)
emit
(
'success'
,
data
)
}
}
...
...
@@ -128,6 +125,6 @@ const showDesigner = computed(() => {
defineExpose
({
validate
,
get
XmlString
get
ProcessData
})
</
script
>
src/views/bpm/model/form/index.vue
View file @
eeda821b
...
...
@@ -194,8 +194,8 @@ const validateAllSteps = async () => {
// 流程设计校验
await
processDesignRef
.
value
?.
validate
()
const
bpmnXml
=
processDesignRef
.
value
?.
getXmlString
()
if
(
!
bpmnXml
)
{
const
processData
=
await
processDesignRef
.
value
?.
getProcessData
()
if
(
!
processData
)
{
currentStep
.
value
=
2
throw
new
Error
(
'请设计流程'
)
}
...
...
@@ -213,20 +213,26 @@ const handleSave = async () => {
await
validateAllSteps
()
// 获取最新的流程设计数据
const
bpmnXml
=
await
processDesignRef
.
value
?.
getXmlString
()
if
(
!
bpmnXml
)
{
const
processData
=
await
processDesignRef
.
value
?.
getProcessData
()
if
(
!
processData
)
{
throw
new
Error
(
'获取流程数据失败'
)
}
// 更新表单数据
formData
.
value
=
{
...
formData
.
value
,
bpmnXml
:
bpmnXml
const
modelData
=
{
...
formData
.
value
}
if
(
formData
.
value
.
type
===
BpmModelType
.
BPMN
)
{
modelData
.
bpmnXml
=
processData
modelData
.
simpleModel
=
null
}
else
{
modelData
.
bpmnXml
=
null
modelData
.
simpleModel
=
processData
// 直接使用流程数据对象
}
if
(
formData
.
value
.
id
)
{
// 修改场景
await
ModelApi
.
updateModel
(
formData
.
value
)
await
ModelApi
.
updateModel
(
modelData
)
message
.
success
(
'修改成功'
)
// 询问是否发布流程
try
{
...
...
@@ -238,7 +244,7 @@ const handleSave = async () => {
}
}
else
{
// 新增场景
const
result
=
await
ModelApi
.
createModel
(
formData
.
value
)
const
result
=
await
ModelApi
.
createModel
(
modelData
)
formData
.
value
.
id
=
result
message
.
success
(
'新增成功'
)
try
{
...
...
@@ -277,22 +283,28 @@ const handleDeploy = async () => {
await
validateAllSteps
()
// 获取最新的流程设计数据
const
bpmnXml
=
await
processDesignRef
.
value
?.
getXmlString
()
if
(
!
bpmnXml
)
{
const
processData
=
await
processDesignRef
.
value
?.
getProcessData
()
if
(
!
processData
)
{
throw
new
Error
(
'获取流程数据失败'
)
}
// 更新表单数据
formData
.
value
=
{
...
formData
.
value
,
bpmnXml
:
bpmnXml
const
modelData
=
{
...
formData
.
value
}
if
(
formData
.
value
.
type
===
BpmModelType
.
BPMN
)
{
modelData
.
bpmnXml
=
processData
modelData
.
simpleModel
=
null
}
else
{
modelData
.
bpmnXml
=
null
modelData
.
simpleModel
=
processData
// 直接使用流程数据对象
}
// 先保存所有数据
if
(
formData
.
value
.
id
)
{
await
ModelApi
.
updateModel
(
formData
.
value
)
await
ModelApi
.
updateModel
(
modelData
)
}
else
{
const
result
=
await
ModelApi
.
createModel
(
formData
.
value
)
const
result
=
await
ModelApi
.
createModel
(
modelData
)
formData
.
value
.
id
=
result
.
id
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment