From a3607d18ec0918979123962c3258fa2622ba5502 Mon Sep 17 00:00:00 2001 From: JINGYJ <1458671527@qq.com> Date: Thu, 7 Aug 2025 17:11:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=89=E6=BA=90=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...节点.png => light-image-node-active.png} | Bin .../{光源.png => light-image-node.png} | Bin .../LogicFlowNodes/src/viewNode.vue | 4 ++ .../src/components/LogicFlowNodes/viewNode.ts | 3 +- src/renderer/src/config/designControl.ts | 6 +++ src/renderer/src/hooks/useLogicFlow.ts | 23 ++++++++++ src/renderer/src/styles/ds-dialog.scss | 2 +- .../views/Design/FlowImagesCapture/index.ts | 3 ++ .../FlowImagesCapture/lightNodeModel.vue | 43 ++++++++++++++++++ .../views/Design/Workflow/logicFlowView.vue | 18 ++++++-- 10 files changed, 96 insertions(+), 6 deletions(-) rename src/renderer/src/assets/images/ImagesCapture/{光源节点.png => light-image-node-active.png} (100%) rename src/renderer/src/assets/images/ImagesCapture/{光源.png => light-image-node.png} (100%) create mode 100644 src/renderer/src/views/Design/FlowImagesCapture/lightNodeModel.vue diff --git a/src/renderer/src/assets/images/ImagesCapture/光源节点.png b/src/renderer/src/assets/images/ImagesCapture/light-image-node-active.png similarity index 100% rename from src/renderer/src/assets/images/ImagesCapture/光源节点.png rename to src/renderer/src/assets/images/ImagesCapture/light-image-node-active.png diff --git a/src/renderer/src/assets/images/ImagesCapture/光源.png b/src/renderer/src/assets/images/ImagesCapture/light-image-node.png similarity index 100% rename from src/renderer/src/assets/images/ImagesCapture/光源.png rename to src/renderer/src/assets/images/ImagesCapture/light-image-node.png diff --git a/src/renderer/src/components/LogicFlowNodes/src/viewNode.vue b/src/renderer/src/components/LogicFlowNodes/src/viewNode.vue index c496912..4644a62 100644 --- a/src/renderer/src/components/LogicFlowNodes/src/viewNode.vue +++ b/src/renderer/src/components/LogicFlowNodes/src/viewNode.vue @@ -22,6 +22,7 @@ import { OPERATION_NODE_TYPE_MAP } from '@/config/designComm' import MultiImageNodeActiveIcon from '@/assets/images/ImagesCapture/multi-image-node-active.png' // 多图采集 import OutputImageNodeActiveIcon from '@/assets/images/ImagesCapture/output-image-node-active.png' // 输出图像 import CashImageNodeActiveIcon from '@/assets/images/ImagesCapture/cash-image-node-active.png' // 缓存图像 +import LightImageNodeActiveIcon from '@/assets/images/ImagesCapture/light-image-node-active.png' // 光源 const props = defineProps({ properties: { type: Object, @@ -63,6 +64,9 @@ const fetchIconType = computed({ case 'cash-image-node': iconType = CashImageNodeActiveIcon break + case 'light-image-node': + iconType = LightImageNodeActiveIcon + break } return iconType } diff --git a/src/renderer/src/components/LogicFlowNodes/viewNode.ts b/src/renderer/src/components/LogicFlowNodes/viewNode.ts index a38f0a6..39bb012 100644 --- a/src/renderer/src/components/LogicFlowNodes/viewNode.ts +++ b/src/renderer/src/components/LogicFlowNodes/viewNode.ts @@ -126,5 +126,6 @@ class OperationNodeModel extends HtmlNodeModel { export default [ { type: 'multi-image-node', model: OperationNodeModel, view: OperationNodeView }, { type: 'output-image-node', model: OperationNodeModel, view: OperationNodeView }, - { type: 'cash-image-node', model: OperationNodeModel, view: OperationNodeView } + { type: 'cash-image-node', model: OperationNodeModel, view: OperationNodeView }, + { type: 'light-image-node', model: OperationNodeModel, view: OperationNodeView } ] diff --git a/src/renderer/src/config/designControl.ts b/src/renderer/src/config/designControl.ts index 6c38da1..e1c2de8 100644 --- a/src/renderer/src/config/designControl.ts +++ b/src/renderer/src/config/designControl.ts @@ -38,6 +38,7 @@ import imageNodeIcon from '@/assets/images/ImagesCapture/image-node.png' // 图 import multiImageNodeIcon from '@/assets/images/ImagesCapture/multi-image-node.png' // 多图采集 import outputImageNodeIcon from '@/assets/images/ImagesCapture/output-image-node.png' // 输出图像 import CashImageNodeIcon from '@/assets/images/ImagesCapture/cash-image-node.png' // 缓存图像 +import lightImageNodeIcon from '@/assets/images/ImagesCapture/light-image-node.png' // 缓存图像 export interface designLFNodeType { type: string icon: string @@ -150,6 +151,11 @@ export const panelControlsConf: ControlsItemType[] = [ type: 'cash-image-node', label: '缓存图像', icon: CashImageNodeIcon + }, + { + type: 'light-image-node', + label: '光源', + icon: lightImageNodeIcon } ] }, diff --git a/src/renderer/src/hooks/useLogicFlow.ts b/src/renderer/src/hooks/useLogicFlow.ts index 779e78a..3750b1d 100644 --- a/src/renderer/src/hooks/useLogicFlow.ts +++ b/src/renderer/src/hooks/useLogicFlow.ts @@ -41,6 +41,14 @@ export const useLogicFlow = () => { y: 488.1111068725586, properties: { width: 132, height: 40 }, text: { x: 329.1111068725586, y: 488.1111068725586, value: '缓存图像' } + }, + { + id: 'adebe8f9-2a69-4f15-91eb-eb3b8a9fe219', + type: 'light-image-node', + x: 329.3333282470703, + y: 614.3333282470703, + properties: { width: 132, height: 40 }, + text: { x: 329.3333282470703, y: 614.3333282470703, value: '光源' } } ], edges: [ @@ -88,6 +96,21 @@ export const useLogicFlow = () => { { x: 329.1111068725586, y: 375.1111068725586 }, { x: 329.1111068725586, y: 468.1111068725586 } ] + }, + { + id: '9942131b-d99c-4a12-ba4c-8554c7e57417', + type: 'polyline', + properties: {}, + sourceNodeId: 'e35754f0-c85a-4d70-8bca-f0b995a2b31e', + targetNodeId: 'adebe8f9-2a69-4f15-91eb-eb3b8a9fe219', + sourceAnchorId: 'e35754f0-c85a-4d70-8bca-f0b995a2b31e_2', + targetAnchorId: 'adebe8f9-2a69-4f15-91eb-eb3b8a9fe219_3', + startPoint: { x: 329.1111068725586, y: 508.1111068725586 }, + endPoint: { x: 329.3333282470703, y: 594.3333282470703 }, + pointsList: [ + { x: 329.1111068725586, y: 508.1111068725586 }, + { x: 329.1111068725586, y: 594.3333282470703 } + ] } ] } diff --git a/src/renderer/src/styles/ds-dialog.scss b/src/renderer/src/styles/ds-dialog.scss index b61e4fd..de09cd0 100644 --- a/src/renderer/src/styles/ds-dialog.scss +++ b/src/renderer/src/styles/ds-dialog.scss @@ -5,6 +5,7 @@ --el-dialog-bg-color: var(--ds-dialog-background-color) !important; // 弹窗背景颜色 padding: 0 !important; overflow: hidden !important; + border-radius: 8px !important; .el-dialog__header { background-color: var(--ds-color-primary); .el-dialog__title { @@ -35,5 +36,4 @@ .el-dialog__header { height: var(--ds-dialog-header-height); } - } diff --git a/src/renderer/src/views/Design/FlowImagesCapture/index.ts b/src/renderer/src/views/Design/FlowImagesCapture/index.ts index cbdf3a3..1836da4 100644 --- a/src/renderer/src/views/Design/FlowImagesCapture/index.ts +++ b/src/renderer/src/views/Design/FlowImagesCapture/index.ts @@ -8,7 +8,10 @@ */ import imageNodeModel from './imageNodeModel.vue' import multiImageNodeModel from './multiImageNodeModel.vue' +import lightImageNodeModel from './lightNodeModel.vue' export const FlowImageNodeModel = imageNodeModel export const FlowMultiImageNodeModel = multiImageNodeModel + +export const FlowLightImageNodeModel = lightImageNodeModel diff --git a/src/renderer/src/views/Design/FlowImagesCapture/lightNodeModel.vue b/src/renderer/src/views/Design/FlowImagesCapture/lightNodeModel.vue new file mode 100644 index 0000000..557bc1b --- /dev/null +++ b/src/renderer/src/views/Design/FlowImagesCapture/lightNodeModel.vue @@ -0,0 +1,43 @@ + + diff --git a/src/renderer/src/views/Design/Workflow/logicFlowView.vue b/src/renderer/src/views/Design/Workflow/logicFlowView.vue index 42ac2aa..8563b6d 100644 --- a/src/renderer/src/views/Design/Workflow/logicFlowView.vue +++ b/src/renderer/src/views/Design/Workflow/logicFlowView.vue @@ -34,6 +34,7 @@
+
@@ -49,7 +50,11 @@ import { OperationNode, ImageNode } from '@/components/LogicFlowNodes' import { useLogicFlow } from '@/hooks/useLogicFlow' import { logicFlowConf, logicFlowThemeConf } from '@/config/designCanvas' import { getNodeOutputCount, getNodeInputCount } from '@/utils/forData/arr' -import { FlowImageNodeModel, FlowMultiImageNodeModel } from '../FlowImagesCapture' +import { + FlowImageNodeModel, + FlowMultiImageNodeModel, + FlowLightImageNodeModel +} from '../FlowImagesCapture' const showLf = ref(false) // 是否显示画布 const showTop = ref(false) // 是否显示顶部工具栏 @@ -63,6 +68,7 @@ const flowDetail = reactive({}) const isOpenFlowImage = ref(false) // 是否打开图片源流程图节点 const isOpenFlowMultiImage = ref(false) // 是否打开多图采集流程图节点 +const isOpenFlowLightImage = ref(false) // 是否打开光源采集流程图节点 // 隐藏属性面板 const changeAttrPanelStatus = (isOpen) => { switch (currNodeData.value?.type) { @@ -72,6 +78,9 @@ const changeAttrPanelStatus = (isOpen) => { case 'multi-image-node': isOpenFlowMultiImage.value = true break + case 'light-image-node': + isOpenFlowLightImage.value = true + break } nextTick(() => { showAttribute.value = isOpen || !showAttribute.value @@ -138,9 +147,10 @@ const initEvents = () => { console.log('node:dbclick-currNodeData', currNodeData.value) changeAttrPanelStatus(true) }) - // lf.value.on('edge:dbclick', ({ data }) => { - // currNodeData.value = data - // }) + lf.value.on('edge:dbclick', ({ data }) => { + // currNodeData.value = data + console.log(data) + }) //来自边的事件中心发出的事件 lf.value.on('edge:app-config', (res) => { currNodeData.value = res