Initial commit
This commit is contained in:
@@ -33,7 +33,7 @@ export interface ElementParameter {
|
||||
templateType: NullableString,
|
||||
}
|
||||
|
||||
export interface ElementPosition {
|
||||
export interface GraphPosition {
|
||||
x: number;
|
||||
y: number;
|
||||
}
|
||||
@@ -48,18 +48,18 @@ export interface ElementVariable {
|
||||
|
||||
export interface BaseElement {
|
||||
id: number;
|
||||
key: string;
|
||||
name: string;
|
||||
type: string;
|
||||
key: NullableString;
|
||||
name: NullableString;
|
||||
type: NullableString;
|
||||
width: number;
|
||||
height: number;
|
||||
position: ElementPosition;
|
||||
position: GraphPosition;
|
||||
category: NullableString;
|
||||
element?: DraggableElement;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface TaskNodeRect {
|
||||
export interface GraphTaskRect {
|
||||
width?: number;
|
||||
height?: number;
|
||||
x?: number;
|
||||
|
||||
@@ -155,6 +155,7 @@ export const useGraphCanvas = (readonly: boolean = false): UseGraphCanvas => {
|
||||
|
||||
if (!existingEdge) {
|
||||
sourceEdges.push({
|
||||
id: sourceData.id,
|
||||
key: edge.id,
|
||||
source: sourceNode.id,
|
||||
sourceName: sourceData.name,
|
||||
|
||||
@@ -17,56 +17,15 @@
|
||||
<!-- 节点内容区域 -->
|
||||
<div class="w-full">
|
||||
<div class="ks-designer-node-content">
|
||||
<div
|
||||
v-for="(item, index) in element?.children || []"
|
||||
:key="item.id || index"
|
||||
class="ks-designer-node-row"
|
||||
>
|
||||
<div
|
||||
:data-port="`in-${item.id || index}`"
|
||||
:title="`入桩: ${item.name}`"
|
||||
class="port port-in"
|
||||
magnet="passive"
|
||||
></div>
|
||||
|
||||
<!-- child名称 -->
|
||||
<div class="ks-designer-node-name">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
|
||||
<!-- 右侧出桩:只能作为连线源 -->
|
||||
<div
|
||||
:data-port="`out-${item.id || index}`"
|
||||
:title="`出桩: ${item.name}`"
|
||||
class="port port-out"
|
||||
magnet="active"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<div v-if="!(element?.children && element?.children?.length > 0)" class="ks-designer-node-row">
|
||||
<div class="ks-designer-node-row">
|
||||
<div class="port port-in" data-port="in-0" magnet="passive"></div>
|
||||
<div class="ks-designer-node-name" v-if="element?.category !== 'component'">
|
||||
{{ element?.name ?? '-' }}
|
||||
</div>
|
||||
<div class="ks-designer-node-name" v-else>
|
||||
<p>隐藏纬度: {{ element?.parameters?.hiddenLatitude ?? '-' }}</p>
|
||||
<p>激活函数: {{ element?.parameters?.activationFunction ?? '-' }}</p>
|
||||
</div>
|
||||
<div class="port port-out" data-port="out-0" magnet="active"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="w-full" v-else>-->
|
||||
<!-- <div class="ks-designer-node-content">-->
|
||||
<!-- <div class="port port-in" data-port="in-0" magnet="passive"></div>-->
|
||||
<!-- <div class="ks-designer-node-name">-->
|
||||
<!-- <p>隐藏纬度: {{ element?.parameters?.hiddenLatitude ?? '-' }}</p>-->
|
||||
<!-- <p>激活函数: {{ element?.parameters?.activationFunction ?? '-' }}</p>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="port port-out" data-port="out-0" magnet="active"></div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</a-card>
|
||||
|
||||
<template #overlay>
|
||||
|
||||
@@ -31,21 +31,15 @@
|
||||
<a-textarea size="small" v-model:value="currentElement.outputs" />
|
||||
</a-form-item>
|
||||
|
||||
<a-divider v-if="currentElement.settings && currentElement.settings.length > 0"/>
|
||||
<a-divider v-if="currentElement.settings && currentElement.parameters.length > 0"/>
|
||||
|
||||
<a-form-item :label="setting.description" v-for="setting in currentElement.settings">
|
||||
<a-input-number size="small" style="width:100%;" v-if="setting.data_type === 'double'" v-model:value="setting.default_value" :placeholder="setting.description" />
|
||||
<a-input v-else size="small" v-model:value="setting.default_value" :placeholder="setting.description" />
|
||||
<a-form-item :label="setting.description" v-for="setting in currentElement.parameters">
|
||||
<a-input-number size="small" style="width:100%;" v-if="setting.dataType === 'double'" v-model:value="setting.defaultValue" :placeholder="setting.description" />
|
||||
<a-input v-else size="small" v-model:value="setting.defaultValue" :placeholder="setting.description" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-tab-pane>
|
||||
|
||||
<!-- <a-tab-pane key="2" tab="外观">-->
|
||||
|
||||
<!-- </a-tab-pane>-->
|
||||
<!-- <a-tab-pane key="3" tab="系统">-->
|
||||
|
||||
<!-- </a-tab-pane>-->
|
||||
</a-tabs>
|
||||
|
||||
<a-tabs v-model:activeKey="activeBottomTabsKey" class="ks-model-builder-tabs parameters-tabs">
|
||||
|
||||
@@ -8,22 +8,22 @@
|
||||
*/
|
||||
|
||||
import type { NodeTemplate } from '../types';
|
||||
import type { GraphTaskElement, TaskNodeRect } from '../builder/element';
|
||||
import type { GraphTaskElement, GraphTaskRect } from '../builder/element';
|
||||
import { generateKey } from '@/utils/strings';
|
||||
|
||||
export const createGraphTaskElementFromTemplate = (
|
||||
template: NodeTemplate,
|
||||
rect?: TaskNodeRect,
|
||||
rect?: GraphTaskRect,
|
||||
): GraphTaskElement => {
|
||||
let realRect = { width: 200, height: 100, x: 0, y: 0, ...rect || {} }
|
||||
console.info('rect',rect)
|
||||
return {
|
||||
id: 0,
|
||||
key: generateKey(template.type),
|
||||
status: null,
|
||||
type: 'task',
|
||||
template: template.id,
|
||||
type: template.type,
|
||||
name: template.name,
|
||||
category: template.type,
|
||||
description: template.description,
|
||||
position: {
|
||||
x: realRect.x ?? 0,
|
||||
@@ -31,10 +31,9 @@ export const createGraphTaskElementFromTemplate = (
|
||||
},
|
||||
width: realRect.width,
|
||||
height: realRect.height,
|
||||
// settings: JSON.parse(JSON.stringify(template.parameter_defs ?? [])),
|
||||
inputs: null,
|
||||
outputs: null,
|
||||
parameters: {},
|
||||
parameters: [],
|
||||
variables: [
|
||||
{
|
||||
key: generateKey('var_'),
|
||||
|
||||
Reference in New Issue
Block a user