Skip to content

Commit 6833ad1

Browse files
committed
fix(snapshot): 修复相对路径图片导出问题
1 parent 48b1a36 commit 6833ad1

File tree

5 files changed

+299
-158
lines changed

5 files changed

+299
-158
lines changed
Loading

examples/feature-examples/src/pages/extensions/snapshot/data.ts

+10
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@ export default {
3838
y: 100,
3939
text: '菱形',
4040
},
41+
{
42+
id: 'test_image_1',
43+
type: 'test-image',
44+
x: 300,
45+
y: 200,
46+
properties: {
47+
width: 82,
48+
height: 96,
49+
},
50+
},
4151
],
4252
edges: [
4353
{

examples/feature-examples/src/pages/extensions/snapshot/imageNode.ts

+36-1
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,43 @@ class ImageNode extends RectNode {
2828
}
2929
}
3030

31-
export default {
31+
class TestImageModel extends RectNodeModel {
32+
initNodeData(data: any) {
33+
super.initNodeData(data)
34+
this.width = 100
35+
this.height = 75
36+
}
37+
}
38+
39+
class TestImageNode extends RectNode {
40+
getImageHref() {
41+
return '/images/test.jpeg'
42+
}
43+
getShape() {
44+
const { x, y, width, height } = this.props.model
45+
const href = this.getImageHref()
46+
const attrs = {
47+
x: x - (1 / 2) * width,
48+
y: y - (1 / 2) * height,
49+
width,
50+
height,
51+
href,
52+
preserveAspectRatio: 'none meet',
53+
}
54+
return h('g', {}, [h('image', { ...attrs })])
55+
}
56+
}
57+
58+
const defaultImageNode = {
3259
type: 'image',
3360
view: ImageNode,
3461
model: ImageModel,
3562
}
63+
64+
export const testImage = {
65+
type: 'test-image',
66+
view: TestImageNode,
67+
model: TestImageModel,
68+
}
69+
70+
export default defaultImageNode

examples/feature-examples/src/pages/extensions/snapshot/index.tsx

+8-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import {
1515
InputNumber,
1616
Switch,
1717
} from 'antd'
18-
import ImageNode from './imageNode'
1918
import CustomHtml from '@/components/nodes/custom-html/Html'
19+
import ImageNode, { testImage } from './imageNode'
2020
import data from './data'
2121
import { circle as circleSvgUrl, rect as rectSvgUrl } from './svg'
2222

@@ -89,6 +89,7 @@ export default function SnapshotExample() {
8989
})
9090
lf.register(CustomHtml)
9191
lf.register(ImageNode)
92+
lf.register(testImage)
9293

9394
lf.setPatternItems([
9495
{
@@ -103,6 +104,12 @@ export default function SnapshotExample() {
103104
text: 'circle',
104105
icon: rectSvgUrl,
105106
},
107+
{
108+
type: 'test-image',
109+
label: 'Test Image',
110+
text: 'Test Image',
111+
icon: rectSvgUrl,
112+
},
106113
])
107114

108115
lf.on('custom:button-click', (model: any) => {

0 commit comments

Comments
 (0)