|
@@ -1,5 +1,6 @@
|
|
|
<script setup name="FlowDesign">
|
|
|
-import { onMounted, ref } from 'vue'
|
|
|
+import { onMounted, ref, watch } from 'vue'
|
|
|
+import JsonEditorVue from 'json-editor-vue3'
|
|
|
import ScWorkflow from '@/components/scWorkflow'
|
|
|
import useFlowStore from '@/store/modules/flow'
|
|
|
import useClipboard from 'vue-clipboard3'
|
|
@@ -11,6 +12,7 @@ const { toClipboard } = useClipboard()
|
|
|
|
|
|
const formRef = ref()
|
|
|
const drawer = ref(false)
|
|
|
+const jsonFormat = ref({})
|
|
|
|
|
|
let form = ref({
|
|
|
processConfig: {
|
|
@@ -33,13 +35,24 @@ const updateCompInfo = () => {
|
|
|
}
|
|
|
|
|
|
const copyParseJson = async () => {
|
|
|
- await toClipboard(JSON.stringify(data.value, null, ' '))
|
|
|
+ await toClipboard(JSON.stringify(jsonFormat.value, null, ' '))
|
|
|
}
|
|
|
|
|
|
const copyJson = async () => {
|
|
|
- await toClipboard(JSON.stringify(data.value))
|
|
|
+ await toClipboard(JSON.stringify(jsonFormat.value))
|
|
|
}
|
|
|
|
|
|
+watch(
|
|
|
+ () => form.value.processConfig,
|
|
|
+ value => {
|
|
|
+ jsonFormat.value = form.value.processConfig
|
|
|
+ },
|
|
|
+ {
|
|
|
+ // 初始化立即执行
|
|
|
+ immediate: true
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
const validate = () => {
|
|
|
// 保存表单设计
|
|
|
saveDesign()
|
|
@@ -63,7 +76,7 @@ defineExpose({
|
|
|
|
|
|
<template>
|
|
|
<div>
|
|
|
- <div style="z-index: 999;display: none;" class="fixed top-44 right-20">
|
|
|
+ <div style="z-index: 999" class="fixed top-44 right-48">
|
|
|
<el-button type="primary" @click="() => (drawer = true)"> 查看 JSON </el-button>
|
|
|
</div>
|
|
|
|
|
@@ -72,8 +85,7 @@ defineExpose({
|
|
|
<el-drawer v-model="drawer" size="500px" class="drawer" :append-to-body="true" :modal="false" :with-header="false">
|
|
|
<div style="height: 100vh">
|
|
|
<div style="padding: 1px; background-color: #3883fa">
|
|
|
- <el-button type="primary" plain @click="copyParseJson"> 复制格式化后的 JSON </el-button>
|
|
|
- <el-button type="primary" plain @click="copyJson"> 复制压缩后的 JSON </el-button>
|
|
|
+ <el-button type="primary" plain @click="copyParseJson"> 复制 JSON </el-button>
|
|
|
<el-button type="primary" plain @click="drawer = false"> 关闭弹窗 </el-button>
|
|
|
</div>
|
|
|
<json-editor-vue v-model="form.processConfig" class="editor" language="zh-CN" current-mode="view" />
|