diff --git a/src/views/tools/flow/index.vue b/src/views/tools/flow/index.vue
index f45fd6f..caa4dad 100644
--- a/src/views/tools/flow/index.vue
+++ b/src/views/tools/flow/index.vue
@@ -2,7 +2,7 @@
-
+
@@ -16,6 +16,7 @@ import "@logicflow/core/lib/style/index.css"
import "@logicflow/extension/lib/style/index.css"
import leftPanel from "./left.vue"
import menuPanel from "./menu.vue"
+import rightPanel from "./right.vue"
import {StartNodeModel, StartNodeView, START_NODE_TYPES} from "./model/StartNode"
import {EventNodeModel, EventNodeView, EVENT_NODE_TYPES} from "./model/EventNode"
import {GatewayNodeModel, GatewayNodeView, GATEWAY_NODE_TYPES} from "./model/GatewayNode"
@@ -180,27 +181,27 @@ function updateNodeProps() {
// 快捷键设置
const handleKeydown = (event) => {
- if (event.key === "Delete" || event.key === "Backspace") {
- if (Object.keys(activeNode.value).length !== 0) {
- ElMessageBox.confirm(
- activeNode.value.type === 'line' ? t('flow.deleteLine') : t('flow.deleteNode'),
- t('system.warning'),
- {
- confirmButtonText: t('system.ok'),
- cancelButtonText: t('system.cancel'),
- type: 'warning',
- }
- ).then(() => {
- if (activeNode.value.type === 'line') {
- lf.value.deleteEdge(activeNode.value.id);
- } else {
- lf.value.deleteNode(activeNode.value.id);
- }
- }).catch(() => {
- })
- }
- return
- }
+ // if (event.key === "Delete" || event.key === "Backspace") {
+ // if (Object.keys(activeNode.value).length !== 0) {
+ // ElMessageBox.confirm(
+ // activeNode.value.type === 'line' ? t('flow.deleteLine') : t('flow.deleteNode'),
+ // t('system.warning'),
+ // {
+ // confirmButtonText: t('system.ok'),
+ // cancelButtonText: t('system.cancel'),
+ // type: 'warning',
+ // }
+ // ).then(() => {
+ // if (activeNode.value.type === 'line') {
+ // lf.value.deleteEdge(activeNode.value.id);
+ // } else {
+ // lf.value.deleteNode(activeNode.value.id);
+ // }
+ // }).catch(() => {
+ // })
+ // }
+ // return
+ // }
const directionKeys = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];
if (directionKeys.includes(event.key)) {
@@ -257,13 +258,6 @@ const handleKeydown = (event) => {
height: calc(100% - 3px);
}
- .right-panel {
- width: 320px;
- background: #fff;
- border-left: 1px solid var(--el-border-color-light);
- padding: 10px;
- }
-
:deep(.lf-mini-map) {
background: #FFF;
border: 1px solid #eee;
diff --git a/src/views/tools/flow/right.vue b/src/views/tools/flow/right.vue
new file mode 100644
index 0000000..1c5f5c2
--- /dev/null
+++ b/src/views/tools/flow/right.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/tools/form/center.vue b/src/views/tools/form/center.vue
index af1659c..83195d8 100644
--- a/src/views/tools/form/center.vue
+++ b/src/views/tools/form/center.vue
@@ -80,7 +80,6 @@ async function copyCode() {
fields: props.data.fields,
config: props.data.config
})
- console.log(res.data['form.vue'])
navigator.clipboard.writeText(res.data['form.vue'])
proxy.$message.success("复制成功")
}
@@ -90,7 +89,17 @@ async function downFile() {
fields: props.data.fields,
config: props.data.config
})
- console.log(res)
+ await saveFile(res.data['form.vue'])
+}
+
+async function saveFile(content, filename = 'form.vue') {
+ const blob = new Blob([content], {type: 'text/plain;charset=utf-8'})
+ const url = URL.createObjectURL(blob)
+ const link = document.createElement('a')
+ link.href = url
+ link.download = filename
+ link.click()
+ URL.revokeObjectURL(url)
}
diff --git a/src/views/tools/form/index.vue b/src/views/tools/form/index.vue
index 57423ee..7e3c7d8 100644
--- a/src/views/tools/form/index.vue
+++ b/src/views/tools/form/index.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/src/views/tools/form/left.vue b/src/views/tools/form/left.vue
index 314613f..1dd474a 100644
--- a/src/views/tools/form/left.vue
+++ b/src/views/tools/form/left.vue
@@ -80,7 +80,8 @@ import FormBuild from "./formBuild"
import {inputComps, choiceComps, layoutComps} from "./config"
const props = defineProps({
- data: {type: FormBuild, default: {}}
+ data: {type: FormBuild, default: {}},
+ field: {type: Object, default: {}}
})
const group = {name: 'base', pull: 'clone', put: false}
@@ -95,7 +96,7 @@ function cloneField(e) {
function handleClick(e) {
let field = cloneField(e)
props.data.fields.push(field)
- props.data.setActiveField(field)
+ props.field.element = field
}
@@ -103,6 +104,7 @@ function handleClick(e) {
.panel {
width: 260px;
padding: 10px;
+ user-select: none;
.title {
margin-bottom: 10px;
diff --git a/src/views/tools/form/right.vue b/src/views/tools/form/right.vue
index 22111d8..50e558a 100644
--- a/src/views/tools/form/right.vue
+++ b/src/views/tools/form/right.vue
@@ -74,12 +74,13 @@
-
+
正则校验
-
+
-
+
@@ -149,6 +150,7 @@ let form = computed(() => {
.panel {
width: 350px;
padding: 10px;
+ user-select: none;
border-left: 1px solid var(--el-border-color-light);
}