104 lines
3.0 KiB
Vue
104 lines
3.0 KiB
Vue
<template>
|
|
<div class="preview-box">
|
|
<div class="btn-box">
|
|
<a-button type="primary" :icon="h(SaveOutlined)" @click="onSave(2)" class="ml-2"
|
|
>暂存
|
|
</a-button>
|
|
<a-button type="primary" :icon="h(SaveOutlined)" @click="onSave(1)" class="ml-2"
|
|
>保存
|
|
</a-button>
|
|
<a-button
|
|
type="primary"
|
|
:icon="h(CloseCircleOutlined)"
|
|
@click="closePreview"
|
|
class="ml-2"
|
|
danger
|
|
>关闭
|
|
</a-button>
|
|
</div>
|
|
<process-designer
|
|
:key="designerOpen"
|
|
style="border: 1px solid rgba(0, 0, 0, 0.1)"
|
|
ref="modelDesigner"
|
|
v-loading="designerData.loading"
|
|
:schemeCode="schemeCode"
|
|
@save="onSaveDesigner"
|
|
/>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { h, ref, reactive } from 'vue';
|
|
import ProcessDesigner from '@/components/ProcessDesigner/index.vue';
|
|
import {
|
|
SaveOutlined,
|
|
CloseCircleOutlined,
|
|
ZoomInOutlined,
|
|
RotateLeftOutlined,
|
|
RotateRightOutlined,
|
|
ClearOutlined,
|
|
} from '@ant-design/icons-vue';
|
|
import { postAdd, update } from '@/api/sys/WFSchemeInfo';
|
|
import { useRoute } from 'vue-router';
|
|
import { useMultipleTabStore } from '@/store/modules/multipleTab';
|
|
import { useRouter } from 'vue-router';
|
|
import { flowStore } from '@/store/modules/flow';
|
|
import { lr_AESEncrypt } from '@/components/ProcessDesigner/package/utils';
|
|
import { useMessage } from '@/hooks/web/useMessage';
|
|
const { createMessage } = useMessage();
|
|
const flowWfDataStore = flowStore();
|
|
const tabStore = useMultipleTabStore();
|
|
const router = useRouter();
|
|
|
|
const route = useRoute();
|
|
const schemeCode = route.query.code;
|
|
const designerOpen = ref(false);
|
|
const designerData = reactive({
|
|
loading: false,
|
|
});
|
|
const modelDesigner = ref<any>();
|
|
async function onSave(type) {
|
|
let validateData = await modelDesigner.value.validateFlow();
|
|
if (validateData) {
|
|
let formData = await modelDesigner.value.getFlow();
|
|
console.log(formData);
|
|
// 1正式 2草稿
|
|
formData.scheme.type = Number(type);
|
|
if (!schemeCode) {
|
|
let data = await postAdd(formData);
|
|
if (data) {
|
|
closePreview();
|
|
return createMessage.success('新增成功');
|
|
} else {
|
|
return createMessage.error('新增失败');
|
|
}
|
|
} else {
|
|
let data = await update(formData);
|
|
if (data) {
|
|
closePreview();
|
|
return createMessage.success('编辑成功');
|
|
} else {
|
|
return createMessage.error('编辑失败');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function closePreview() {
|
|
if (!schemeCode) {
|
|
tabStore.closeTabByKey('/dashboard/scheme_preview/add', router);
|
|
} else {
|
|
// /dashboard/scheme_preview/add?code=测试1
|
|
tabStore.closeTabByKey('/dashboard/scheme_preview/add?code=' + schemeCode, router);
|
|
}
|
|
}
|
|
</script>
|
|
<style scoped>
|
|
.preview-box {
|
|
.btn-box {
|
|
padding: 10px;
|
|
justify-content: flex-end;
|
|
display: flex;
|
|
}
|
|
}
|
|
</style>
|