|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<el-button @click="saveHandler" type="primary" size="small"
|
|
|
- >保存
|
|
|
+ >保存
|
|
|
<!-- <div class="button-list_column">
|
|
|
<el-button type="primary" size="small" @click="getProcessAsBpmn"
|
|
|
>导出为 Bpmn</el-button
|
|
@@ -16,11 +16,11 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {downloadFile, setEncoded} from "@utils/files";
|
|
|
-import {mapGetters} from "vuex";
|
|
|
-import {addProcess, updateProcess} from "@/api/bpmprocess/process";
|
|
|
+import { downloadFile, setEncoded } from "@utils/files";
|
|
|
+import { mapGetters } from "vuex";
|
|
|
+import { addProcess, updateProcess } from "@/api/bpmprocess/process";
|
|
|
import xml from "highlight.js/lib/languages/xml";
|
|
|
-
|
|
|
+import { getProcessEngine } from "@packages/bpmn-utils/BpmnDesignerUtils";
|
|
|
export default {
|
|
|
name: "BpmnSave",
|
|
|
computed: {
|
|
@@ -28,8 +28,8 @@ export default {
|
|
|
},
|
|
|
inject: {
|
|
|
formData: {
|
|
|
- from: 'formData'
|
|
|
- }
|
|
|
+ from: "formData",
|
|
|
+ },
|
|
|
},
|
|
|
methods: {
|
|
|
async getProcess(type, name = "diagram") {
|
|
@@ -39,7 +39,7 @@ export default {
|
|
|
const modeler = this.getModeler;
|
|
|
// 按需要类型创建文件并下载
|
|
|
if (type === "xml" || type === "bpmn") {
|
|
|
- const {err, xml} = await modeler.saveXML();
|
|
|
+ const { err, xml } = await modeler.saveXML();
|
|
|
// 读取异常时抛出异常
|
|
|
if (err) {
|
|
|
console.error(`[Process Designer Warn ]: ${err.message || err}`);
|
|
@@ -49,7 +49,7 @@ export default {
|
|
|
// downloadFile(href, filename);
|
|
|
return xml;
|
|
|
} else {
|
|
|
- const {err, svg} = await modeler.saveSVG();
|
|
|
+ const { err, svg } = await modeler.saveSVG();
|
|
|
// 读取异常时抛出异常
|
|
|
if (err) {
|
|
|
console.error(err);
|
|
@@ -78,7 +78,7 @@ export default {
|
|
|
try {
|
|
|
if (!this.getModeler)
|
|
|
return this.$message.error("流程图引擎初始化失败");
|
|
|
- const {xml} = await this.getModeler.saveXML({
|
|
|
+ const { xml } = await this.getModeler.saveXML({
|
|
|
format: true,
|
|
|
preamble: true,
|
|
|
});
|
|
@@ -90,12 +90,22 @@ export default {
|
|
|
},
|
|
|
async saveHandler() {
|
|
|
let _this = this;
|
|
|
- let formData = _this.formData() || {}; // 当前流程表单详细数据
|
|
|
+ let formData = _this.formData() || {}; // 当前流程表单详细数据
|
|
|
let processJsonObj = await this.getProcessJson(); // xml标签转换json
|
|
|
+ console.log(processJsonObj);
|
|
|
formData.processJson = JSON.stringify(processJsonObj);
|
|
|
- let {rootElements} = processJsonObj.rootElement;
|
|
|
- formData.processKey = rootElements[0].id;// 流程编号
|
|
|
- formData.processName = rootElements[0].name;// 流程名称
|
|
|
+ let { rootElements, warnings } = processJsonObj.rootElement;
|
|
|
+ formData.processKey = rootElements[0].id; // 流程编号
|
|
|
+ formData.processName = rootElements[0].name; // 流程名称
|
|
|
+ if (warnings && Object.keys(warnings).length) {
|
|
|
+ let prefix = getProcessEngine();
|
|
|
+ warnings[`${prefix}:note`] &&
|
|
|
+ (formData.note = warnings[`${prefix}:note`]);
|
|
|
+ warnings[`${prefix}:startEventType`] &&
|
|
|
+ (formData.note = warnings[`${prefix}:startEventType`]);
|
|
|
+ warnings[`${prefix}:bpmType`] &&
|
|
|
+ (formData.note = warnings[`${prefix}:bpmType`]);
|
|
|
+ }
|
|
|
formData.processType = "0"; //流程类型
|
|
|
// 获取xml标签内容标签内容
|
|
|
let xmlPro = await this.getProcess("xml");
|
|
@@ -108,7 +118,7 @@ export default {
|
|
|
const subformData = new FormData();
|
|
|
// 循环赋值
|
|
|
for (let key in formData) {
|
|
|
- subformData.append(key, formData[key] == null ? '' : formData[key]);
|
|
|
+ subformData.append(key, formData[key] == null ? "" : formData[key]);
|
|
|
}
|
|
|
if (formData?.processId) {
|
|
|
updateProcess(subformData).then((res) => {
|
|
@@ -127,7 +137,6 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
},
|
|
|
},
|
|
|
};
|