|
|
@@ -140,6 +140,10 @@ export default {
|
|
|
},
|
|
|
//删除图层
|
|
|
delLayers(item){
|
|
|
+ if(item?.locked){
|
|
|
+ this.$message && this.$message.warning && this.$message.warning('图层已锁定,无法删除')
|
|
|
+ return
|
|
|
+ }
|
|
|
this.islayerSelect = true;
|
|
|
this.fcanvas.remove(item)
|
|
|
this.undoAfterSelectLayers();
|
|
|
@@ -147,6 +151,7 @@ export default {
|
|
|
},
|
|
|
//选中图层
|
|
|
select(item){
|
|
|
+ if(item?.locked) return;
|
|
|
if(this.showStraw) return;
|
|
|
this.fcanvas.discardActiveObject()
|
|
|
this.islayerSelect = true;
|
|
|
@@ -184,6 +189,21 @@ export default {
|
|
|
this.fcanvas.requestRenderAll()
|
|
|
this.getLayers(false)
|
|
|
},
|
|
|
+ // 锁定/解锁:锁定后不可选中、不可删除
|
|
|
+ toggleLock(item){
|
|
|
+ if(!item) return
|
|
|
+ const locked = !item.locked
|
|
|
+ item.set({
|
|
|
+ locked,
|
|
|
+ selectable: !locked,
|
|
|
+ evented: !locked,
|
|
|
+ hasControls: !locked,
|
|
|
+ hasBorders: !locked,
|
|
|
+ })
|
|
|
+ this.fcanvas.discardActiveObject()
|
|
|
+ this.fcanvas.requestRenderAll()
|
|
|
+ this.getLayers(false)
|
|
|
+ },
|
|
|
toggleLayerMenu(item){
|
|
|
if(!item) return
|
|
|
this.openLayerMenuId = this.openLayerMenuId === item.id ? null : item.id
|