fix
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
O_BLENDMODE: "object.blendMode",
|
O_BLENDMODE: "object.blendMode",
|
||||||
};
|
};
|
||||||
const ACTIONS = {
|
const ACTIONS = {
|
||||||
|
ADD: "add",
|
||||||
SELECT: "select",
|
SELECT: "select",
|
||||||
UPDATE: "update",
|
UPDATE: "update",
|
||||||
DELETE: "delete",
|
DELETE: "delete",
|
||||||
@@ -168,24 +169,25 @@
|
|||||||
};
|
};
|
||||||
const setCanvasData = async () => {
|
const setCanvasData = async () => {
|
||||||
canvas.clear();
|
canvas.clear();
|
||||||
const cwidth = canvas.width;
|
|
||||||
const cheight = canvas.height;
|
|
||||||
|
|
||||||
for (let i = 0; i < props.list.length; i++) {
|
for (let i = 0; i < props.list.length; i++) {
|
||||||
let item = props.list[i];
|
let item = props.list[i];
|
||||||
let pattern = await setFill(item);
|
await addObject(item);
|
||||||
let rect = new fabric.Rect({
|
|
||||||
id: item.id,
|
|
||||||
width: cwidth,
|
|
||||||
height: cheight,
|
|
||||||
fill: pattern,
|
|
||||||
|
|
||||||
...item.object,
|
|
||||||
});
|
|
||||||
canvas.add(rect);
|
|
||||||
}
|
}
|
||||||
canvas.renderAll();
|
canvas.renderAll();
|
||||||
};
|
};
|
||||||
|
const addObject = async (item) => {
|
||||||
|
const cwidth = canvas.width;
|
||||||
|
const cheight = canvas.height;
|
||||||
|
let pattern = await setFill(item);
|
||||||
|
let rect = new fabric.Rect({
|
||||||
|
id: item.id,
|
||||||
|
width: cwidth,
|
||||||
|
height: cheight,
|
||||||
|
fill: pattern,
|
||||||
|
...item.object,
|
||||||
|
});
|
||||||
|
canvas.add(rect);
|
||||||
|
};
|
||||||
const setFill = async (item) => {
|
const setFill = async (item) => {
|
||||||
if (!item) return null;
|
if (!item) return null;
|
||||||
const cwidth = canvas.width;
|
const cwidth = canvas.width;
|
||||||
@@ -280,6 +282,10 @@
|
|||||||
canvas.add(object);
|
canvas.add(object);
|
||||||
}
|
}
|
||||||
canvas.renderAll();
|
canvas.renderAll();
|
||||||
|
} else if (item.action === ACTIONS.DELETE) {
|
||||||
|
canvas.remove(object);
|
||||||
|
} else if (item.action === ACTIONS.ADD) {
|
||||||
|
await addObject(item.data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
canvas.renderAll();
|
canvas.renderAll();
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
>
|
>
|
||||||
→
|
→
|
||||||
</button>
|
</button>
|
||||||
|
<button @click.stop="onDelete(item.id)">删除</button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>偏移X</span>
|
<span>偏移X</span>
|
||||||
@@ -80,6 +81,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<button @click="onAdd">添加</button>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<pingpu
|
<pingpu
|
||||||
:list="list"
|
:list="list"
|
||||||
@@ -94,9 +96,10 @@
|
|||||||
import { ref, onMounted, watch } from "vue";
|
import { ref, onMounted, watch } from "vue";
|
||||||
import pingpu from "./pingpu.vue";
|
import pingpu from "./pingpu.vue";
|
||||||
const ACTIONS = {
|
const ACTIONS = {
|
||||||
SELECT: "select",
|
ADD: "add",
|
||||||
UPDATE: "update",
|
UPDATE: "update",
|
||||||
DELETE: "delete",
|
DELETE: "delete",
|
||||||
|
SELECT: "select",
|
||||||
SORT: "sort",
|
SORT: "sort",
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -211,6 +214,49 @@
|
|||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
const onDelete = (id) => {
|
||||||
|
list.value = list.value.filter((v) => v.id !== id);
|
||||||
|
pingpuRef.value.updataList([
|
||||||
|
{
|
||||||
|
id: id,
|
||||||
|
action: ACTIONS.DELETE,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
const onAdd = () => {
|
||||||
|
const obj = {
|
||||||
|
id: Date.now().toString(),
|
||||||
|
ifSingle: false,
|
||||||
|
level2Type: "Pattern",
|
||||||
|
designType: "Library",
|
||||||
|
path: "/src/assets/images/canvas/yinhua1.jpg",
|
||||||
|
location: [0, 0],
|
||||||
|
scale: [1, 1],
|
||||||
|
angle: 0,
|
||||||
|
name: "Print" + (list.value.length + 1),
|
||||||
|
priority: 1,
|
||||||
|
object: {
|
||||||
|
top: 0,
|
||||||
|
left: 0,
|
||||||
|
scaleX: 1,
|
||||||
|
scaleY: 1,
|
||||||
|
opacity: 1,
|
||||||
|
angle: 0,
|
||||||
|
flipX: false,
|
||||||
|
flipY: false,
|
||||||
|
blendMode: "multiply",
|
||||||
|
gapX: 10,
|
||||||
|
gapY: 20,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
list.value.push(obj);
|
||||||
|
pingpuRef.value.updataList([
|
||||||
|
{
|
||||||
|
action: ACTIONS.ADD,
|
||||||
|
data: obj,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
};
|
||||||
watch(
|
watch(
|
||||||
() => list.value,
|
() => list.value,
|
||||||
() => updateList(),
|
() => updateList(),
|
||||||
|
|||||||
Reference in New Issue
Block a user