Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vue-gojs
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
吴斌
vue-gojs
Commits
a095925c
Commit
a095925c
authored
Oct 19, 2023
by
吴斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update:更好的预览支持。拖入节点的默认大小为原始大小。
parent
51f1dfe8
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
25 deletions
+26
-25
App.vue
src/App.vue
+4
-4
source-category-collapse.vue
src/components/source/source-category-collapse.vue
+1
-1
NodeTemplateKit.ts
src/kit/NodeTemplateKit.ts
+21
-20
No files found.
src/App.vue
View file @
a095925c
...
...
@@ -207,7 +207,7 @@ function importData(){
function
saveData
(){
// console.log('nodeCount', nodeCount.count)
console
.
log
(
selectedNode
.
value
?.
data
)
console
.
log
(
selectedNode
.
value
)
}
function
changeData
(){
...
...
@@ -281,9 +281,9 @@ function initDiagram(){
myDiagram
.
linkTemplateMap
.
add
(
'Flow'
,
FlowLink
)
//多种类型的节点
myDiagram
.
nodeTemplateMap
.
add
(
'svg'
,
makeDiagramNodeTemplate
(
'svg'
,
100
))
myDiagram
.
nodeTemplateMap
.
add
(
'geometry'
,
makeDiagramNodeTemplate
(
'geometry'
,
100
))
myDiagram
.
nodeTemplateMap
.
add
(
'shape'
,
makeDiagramNodeTemplate
(
'shape'
,
100
))
myDiagram
.
nodeTemplateMap
.
add
(
'svg'
,
makeDiagramNodeTemplate
(
'svg'
))
myDiagram
.
nodeTemplateMap
.
add
(
'geometry'
,
makeDiagramNodeTemplate
(
'geometry'
))
myDiagram
.
nodeTemplateMap
.
add
(
'shape'
,
makeDiagramNodeTemplate
(
'shape'
))
}
function
listenDiagram
(){
...
...
src/components/source/source-category-collapse.vue
View file @
a095925c
...
...
@@ -34,7 +34,7 @@ function init(){
{
cellSize
:
new
go
.
Size
(
45
,
45
),
spacing
:
new
go
.
Size
(
5
,
5
)},
{
wrappingColumn
:
4
},
),
nodeTemplate
:
makeSourcePanelNodeTemplate
(
props
.
category
.
type
,
30
)
nodeTemplate
:
makeSourcePanelNodeTemplate
(
props
.
category
.
type
,
go
.
GraphObject
.
Uniform
,
30
)
})
...
...
src/kit/NodeTemplateKit.ts
View file @
a095925c
...
...
@@ -4,47 +4,50 @@ import go from "gojs";
// 源节点图片或形状大小
// 源节点的模板--type: svg
export
function
makeSVGNode
(
size
:
number
)
{
/*
* size: 节点大小 例如: 40 undefined 表示使用原始大小
*/
export
function
makeSVGNode
(
stretch
:
typeof
go
.
GraphObject
.
Fill
=
go
.
GraphObject
.
Fill
,
size
?:
number
)
{
return
GO
(
go
.
Picture
,
{
name
:
"view"
,
width
:
size
,
height
:
size
,
imageStretch
:
go
.
GraphObject
.
Fill
},
{
name
:
"view"
,
width
:
size
,
height
:
size
,
imageStretch
:
stretch
},
new
go
.
Binding
(
"source"
,
"img"
),
new
go
.
Binding
(
'desiredSize'
,
"size"
,
go
.
Size
.
parse
),
new
go
.
Binding
(
'desiredSize'
,
"size"
,
go
.
Size
.
parse
)
.
makeTwoWay
(
go
.
Size
.
stringify
)
,
)
}
// 源节点的模板--type: geometry
export
function
makeGeometryNode
(
s
ize
:
number
)
{
export
function
makeGeometryNode
(
s
tretch
:
typeof
go
.
GraphObject
.
Fill
=
go
.
GraphObject
.
Fill
,
size
?:
number
)
{
return
GO
(
go
.
Shape
,
{
name
:
"view"
,
width
:
size
,
height
:
size
,
geometryStretch
:
go
.
GraphObject
.
Fill
},
{
name
:
"view"
,
width
:
size
,
height
:
size
,
geometryStretch
:
stretch
},
new
go
.
Binding
(
"geometryString"
,
"geometry"
),
new
go
.
Binding
(
"fill"
,
"fill"
),
new
go
.
Binding
(
"stroke"
,
"stroke"
),
new
go
.
Binding
(
'desiredSize'
,
"size"
,
go
.
Size
.
parse
),
new
go
.
Binding
(
'desiredSize'
,
"size"
,
go
.
Size
.
parse
)
.
makeTwoWay
(
go
.
Size
.
stringify
)
,
)
}
// 源节点的模板--type: shape
export
function
makeShapeNode
(
s
ize
:
number
){
export
function
makeShapeNode
(
s
tretch
:
typeof
go
.
GraphObject
.
Fill
=
go
.
GraphObject
.
Fill
,
size
?
:
number
){
return
GO
(
go
.
Shape
,
{
name
:
"view"
,
width
:
size
,
height
:
size
,
geometryStretch
:
go
.
GraphObject
.
Fill
},
{
name
:
"view"
,
width
:
size
,
height
:
size
,
geometryStretch
:
stretch
},
new
go
.
Binding
(
"figure"
,
"shape"
),
new
go
.
Binding
(
"fill"
,
"fill"
),
new
go
.
Binding
(
"stroke"
,
"stroke"
),
new
go
.
Binding
(
'desiredSize'
,
"size"
,
go
.
Size
.
parse
),
new
go
.
Binding
(
'desiredSize'
,
"size"
,
go
.
Size
.
parse
)
.
makeTwoWay
(
go
.
Size
.
stringify
)
,
)
}
/*
* 不同类型返回不同的节点模板
*/
export
function
makeNodeTemplate
(
type
:
string
,
s
ize
:
number
){
export
function
makeNodeTemplate
(
type
:
string
,
s
tretch
=
go
.
GraphObject
.
Fill
,
size
?
:
number
){
switch
(
type
)
{
case
'svg'
:
return
makeSVGNode
(
size
)
return
makeSVGNode
(
s
tretch
,
s
ize
)
case
'geometry'
:
return
makeGeometryNode
(
size
)
return
makeGeometryNode
(
s
tretch
,
s
ize
)
case
'shape'
:
return
makeShapeNode
(
size
)
return
makeShapeNode
(
s
tretch
,
s
ize
)
default
:
return
GO
(
go
.
Shape
)
}
...
...
@@ -53,7 +56,7 @@ export function makeNodeTemplate(type:string, size:number){
/*
* 创建节点模板,相比于 makeNodeTemplate 外面套了一层公共部分,方便整体修改
*/
export
function
makeDiagramNodeTemplate
(
type
:
string
,
s
ize
:
number
){
export
function
makeDiagramNodeTemplate
(
type
:
string
,
s
tretch
=
go
.
GraphObject
.
Fill
,
size
?
:
number
){
return
GO
(
go
.
Node
,
"Spot"
,
{
selectable
:
true
,
selectionAdornmentTemplate
:
nodeSelectionAdornment
},
{
resizable
:
true
,
resizeAdornmentTemplate
:
nodeResizeAdornment
,
resizeObjectName
:
"view"
},
...
...
@@ -61,14 +64,12 @@ export function makeDiagramNodeTemplate(type:string, size:number){
{
itemTemplate
:
nodePortTemplate
},
new
go
.
Binding
(
'location'
,
"loc"
,
go
.
Point
.
parse
).
makeTwoWay
(
go
.
Point
.
stringify
),
new
go
.
Binding
(
'angle'
).
makeTwoWay
(),
new
go
.
Binding
(
'desiredSize'
,
"size"
,
go
.
Size
.
parse
).
makeTwoWay
(
go
.
Size
.
stringify
),
new
go
.
Binding
(
"itemArray"
,
"portArray"
),
makeNodeTemplate
(
type
,
s
ize
),
makeNodeTemplate
(
type
,
s
tretch
,
size
)
)
}
export
function
makeSourcePanelNodeTemplate
(
nodeType
:
string
,
size
:
number
){
let
previewSize
=
size
*
3
export
function
makeSourcePanelNodeTemplate
(
nodeType
:
string
,
stretch
=
go
.
GraphObject
.
Fill
,
size
:
number
){
return
GO
(
go
.
Node
,
"Auto"
,
{
selectionAdornmentTemplate
:
GO
(
go
.
Adornment
)},
{
width
:
40
,
height
:
40
},
...
...
@@ -83,11 +84,11 @@ export function makeSourcePanelNodeTemplate(nodeType:string, size:number){
GO
(
go
.
Shape
,
"RoundedRectangle"
,
{
width
:
40
,
height
:
40
,
stroke
:
null
,
fill
:
null
,
name
:
"SHAPE"
},
),
makeNodeTemplate
(
nodeType
,
size
),
makeNodeTemplate
(
nodeType
,
s
tretch
,
s
ize
),
{
toolTip
:
GO
(
'ToolTip'
,
{
width
:
100
},
GO
(
go
.
Panel
,
"Vertical"
,
makeNodeTemplate
(
nodeType
,
previewSize
),
makeNodeTemplate
(
nodeType
,
go
.
GraphObject
.
Uniform
,
size
*
3
),
GO
(
go
.
Shape
,
{
figure
:
"LineH"
,
width
:
100
,
height
:
10
}),
GO
(
go
.
TextBlock
,
{
margin
:
5
},
new
go
.
Binding
(
"text"
,
"name"
))
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment