token
This commit is contained in:
@@ -25,49 +25,95 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>偏移X</span>
|
<span>偏移X</span>
|
||||||
<input type="number" v-model="item.location[0]" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.location[0]"
|
||||||
|
@input="updateList(item, 'location[0]', item.location[0])"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>偏移Y</span>
|
<span>偏移Y</span>
|
||||||
<input type="number" v-model="item.location[1]" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.location[1]"
|
||||||
|
@input="updateList(item, 'location[1]', item.location[1])"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>角度</span>
|
<span>角度</span>
|
||||||
<input type="number" v-model="item.angle" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.angle"
|
||||||
|
@input="updateList(item, 'angle', item.angle)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>缩放</span>
|
<span>缩放</span>
|
||||||
<input type="number" v-model="item.scale[0]" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.scale[0]"
|
||||||
|
@input="updateList(item, 'scale[0]', item.scale[0])"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>水平间距</span>
|
<span>水平间距</span>
|
||||||
<input type="number" v-model="item.object.gapX" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.object.gapX"
|
||||||
|
@input="updateList(item, 'object.gapX', item.object.gapX)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>垂直间距</span>
|
<span>垂直间距</span>
|
||||||
<input type="number" v-model="item.object.gapY" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.object.gapY"
|
||||||
|
@input="updateList(item, 'object.gapY', item.object.gapY)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
<hr />
|
||||||
<hr />
|
<hr />
|
||||||
<div>
|
<div>
|
||||||
<span>缩放X</span>
|
<span>缩放X</span>
|
||||||
<input type="number" v-model="item.object.scaleX" step="0.1" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.object.scaleX"
|
||||||
|
step="0.1"
|
||||||
|
@input="updateList(item, 'object.scaleX', item.object.scaleX)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>缩放Y</span>
|
<span>缩放Y</span>
|
||||||
<input type="number" v-model="item.object.scaleY" step="0.1" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.object.scaleY"
|
||||||
|
step="0.1"
|
||||||
|
@input="updateList(item, 'object.scaleY', item.object.scaleY)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>X</span>
|
<span>X</span>
|
||||||
<input type="number" v-model="item.object.left" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.object.left"
|
||||||
|
@input="updateList(item, 'object.left', item.object.left)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>Y</span>
|
<span>Y</span>
|
||||||
<input type="number" v-model="item.object.top" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.object.top"
|
||||||
|
@input="updateList(item, 'object.top', item.object.top)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>角度</span>
|
<span>角度</span>
|
||||||
<input type="number" v-model="item.object.angle" />
|
<input
|
||||||
|
type="number"
|
||||||
|
v-model="item.object.angle"
|
||||||
|
@input="updateList(item, 'object.angle', item.object.angle)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -78,6 +124,7 @@
|
|||||||
step="0.1"
|
step="0.1"
|
||||||
min="0"
|
min="0"
|
||||||
max="1"
|
max="1"
|
||||||
|
@input="updateList(item, 'object.opacity', item.object.opacity)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -235,51 +282,17 @@
|
|||||||
list.value.push(obj);
|
list.value.push(obj);
|
||||||
pingpuRef.value.updataList([{ action: ACTIONS.ADD, data: obj }]);
|
pingpuRef.value.updataList([{ action: ACTIONS.ADD, data: obj }]);
|
||||||
};
|
};
|
||||||
watch(
|
|
||||||
() => list.value,
|
|
||||||
() => updateList(),
|
|
||||||
{ deep: true }
|
|
||||||
);
|
|
||||||
// 监听列表变化属性变更
|
// 监听列表变化属性变更
|
||||||
const updateList = () => {
|
const updateList = (item, key, value) => {
|
||||||
const changeList = [];
|
if(key === "scale[0]") item.scale[1] = value;
|
||||||
oldList.value.forEach((oldItem) => {
|
pingpuRef.value.updataList([
|
||||||
const newItem = list.value.find((v) => v.token === oldItem.token);
|
{
|
||||||
if (newItem) {
|
token: item.token,
|
||||||
const arr = findDiffProps(oldItem, newItem);
|
action: ACTIONS.UPDATE,
|
||||||
arr.forEach((item) => {
|
key,
|
||||||
changeList.push({
|
value,
|
||||||
...item,
|
},
|
||||||
token: oldItem.token,
|
]);
|
||||||
action: ACTIONS.UPDATE,
|
|
||||||
key: convertDotNotationToBracket(item.key),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
changeList.push({
|
|
||||||
token: oldItem.token,
|
|
||||||
action: ACTIONS.DELETE,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
oldList.value = deepCopy(list.value);
|
|
||||||
if (changeList.length) {
|
|
||||||
pingpuRef.value.updataList(changeList);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
// 递归查找不同的属性
|
|
||||||
const findDiffProps = (obj1, obj2, diffProps = [], path = "") => {
|
|
||||||
for (const key in obj1) {
|
|
||||||
if (typeof obj1[key] === "object") {
|
|
||||||
findDiffProps(obj1[key], obj2[key], diffProps, `${path}${key}.`);
|
|
||||||
} else if (obj1[key] !== obj2[key]) {
|
|
||||||
diffProps.push({
|
|
||||||
key: `${path}${key}`,
|
|
||||||
value: obj2[key],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return diffProps;
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -263,7 +263,7 @@
|
|||||||
case KEYS.FILL_GAPX:
|
case KEYS.FILL_GAPX:
|
||||||
case KEYS.FILL_GAPY:
|
case KEYS.FILL_GAPY:
|
||||||
let pattern = await setFill(
|
let pattern = await setFill(
|
||||||
props.list.find((v) => v.id === item.id)
|
props.list.find((v) => v.token === item.token)
|
||||||
);
|
);
|
||||||
object.set("fill", pattern);
|
object.set("fill", pattern);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user