|
|
@@ -217,19 +217,27 @@
|
|
|
const toObject = () => {
|
|
|
const stage = stageRef.value.getStage();
|
|
|
const fenceGroups = stage?.find('.' + GROUP_NAME);
|
|
|
- const gropuPoints = fenceGroups?.map((item) => {
|
|
|
- const groupX = item.x();
|
|
|
- const groupY = item.y();
|
|
|
+ const gropuPoints = fenceGroups
|
|
|
+ ?.map((item) => {
|
|
|
+ const groupX = item.x();
|
|
|
+ const groupY = item.y();
|
|
|
|
|
|
- const line = (item as Konva.Group).findOne((x: any) => x.className === 'Line') as Konva.Line;
|
|
|
- const points = line?.points();
|
|
|
- const newPoints: number[][] = [];
|
|
|
- /** 存到后端的时候,只给点的坐标信息,不会给group的位置信息,所以要将点的坐标加上group的位移,才是之后点的最终坐标 */
|
|
|
- for (let i = 0; i < points.length; i += 2) {
|
|
|
- newPoints.push([Math.floor(points[i] + groupX), Math.floor(points[i + 1] + groupY)]);
|
|
|
- }
|
|
|
- return newPoints;
|
|
|
- });
|
|
|
+ const line = (item as Konva.Group).findOne(
|
|
|
+ (x: any) => x.className === 'Line',
|
|
|
+ ) as Konva.Line;
|
|
|
+ const points = line?.points();
|
|
|
+ /** 有些line对象存在,但是没有点坐标,所以要判断过滤一下 */
|
|
|
+ if (points && points.length > 0) {
|
|
|
+ const newPoints: number[][] = [];
|
|
|
+ /** 存到后端的时候,只给点的坐标信息,不会给group的位置信息,所以要将点的坐标加上group的位移,才是之后点的最终坐标 */
|
|
|
+ for (let i = 0; i < points.length; i += 2) {
|
|
|
+ newPoints.push([Math.floor(points[i] + groupX), Math.floor(points[i + 1] + groupY)]);
|
|
|
+ }
|
|
|
+ return newPoints;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ })
|
|
|
+ .filter(Boolean);
|
|
|
return gropuPoints;
|
|
|
};
|
|
|
|