54 lines
1.7 KiB
Vue
54 lines
1.7 KiB
Vue
<template>
|
|
<div class="preview-box">
|
|
<div class="btn-box">
|
|
<a-button type="primary" :icon="h(SaveOutlined)" @click="onSave" class="ml-2">保存流程 </a-button>
|
|
</div>
|
|
<process-designer :key="designerOpen" style="border:1px solid rgba(0, 0, 0, 0.1);" ref="modelDesigner"
|
|
v-loading="designerData.loading" :bpmnXml="designerData.bpmnXml" :designerForm="designerData.form" :schemeCode="schemeCode"
|
|
@save="onSaveDesigner" />
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { h, ref, provide, reactive, onMounted, defineProps, computed, defineEmits } from 'vue';
|
|
import ProcessDesigner from '@/components/ProcessDesigner/index.vue';
|
|
import { SaveOutlined, ZoomOutOutlined, ZoomInOutlined, RotateLeftOutlined, RotateRightOutlined, ClearOutlined } from '@ant-design/icons-vue';
|
|
import { postAdd ,update} from '@/api/sys/WFSchemeInfo'
|
|
import { useRoute } from 'vue-router'
|
|
const route = useRoute()
|
|
const schemeCode = route.query.code
|
|
const designerOpen = ref(false)
|
|
const designerData = reactive({
|
|
loading: false,
|
|
bpmnXml: '',
|
|
modelId: null,
|
|
form: {
|
|
processName: null,
|
|
processKey: null
|
|
}
|
|
})
|
|
const modelDesigner = ref < any > ()
|
|
async function onSave() {
|
|
let validateData = await modelDesigner.value.validateFlow()
|
|
if (validateData) {
|
|
let formData = await modelDesigner.value.getFlow()
|
|
formData.scheme.type = 1
|
|
if(!schemeCode){
|
|
let data = await postAdd(formData)
|
|
}else{
|
|
let data = await update(formData)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style scoped>
|
|
.preview-box {
|
|
.btn-box {
|
|
padding: 10px;
|
|
justify-content: flex-end;
|
|
display: flex;
|
|
|
|
}
|
|
}
|
|
</style> |