diff --git a/src/assets/icons/clipAdd.svg b/src/assets/icons/clipAdd.svg
new file mode 100644
index 0000000..d7b4773
--- /dev/null
+++ b/src/assets/icons/clipAdd.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/clipMinus.svg b/src/assets/icons/clipMinus.svg
new file mode 100644
index 0000000..dec342c
--- /dev/null
+++ b/src/assets/icons/clipMinus.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/dc/create.svg b/src/assets/icons/dc/create.svg
new file mode 100644
index 0000000..a3aa896
--- /dev/null
+++ b/src/assets/icons/dc/create.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/dc/reset.svg b/src/assets/icons/dc/reset.svg
new file mode 100644
index 0000000..eae205a
--- /dev/null
+++ b/src/assets/icons/dc/reset.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/components/Assistant/assistant.vue b/src/components/Assistant/assistant.vue
index 64a8193..502b225 100644
--- a/src/components/Assistant/assistant.vue
+++ b/src/components/Assistant/assistant.vue
@@ -86,7 +86,7 @@
width: 46.69rem;
height: 56.6rem;
flex-shrink: 0;
- // background-color: #fff;
+ background-color: #fff;
box-shadow: 0px 19.44px 27.22px 0px #0000000d;
border: 1px solid;
border-image-source: linear-gradient(
diff --git a/src/components/Canvas/DepthCanvas/components/ai-selectbox-panel.vue b/src/components/Canvas/DepthCanvas/components/ai-selectbox-panel.vue
index eb8d3e9..879e978 100644
--- a/src/components/Canvas/DepthCanvas/components/ai-selectbox-panel.vue
+++ b/src/components/Canvas/DepthCanvas/components/ai-selectbox-panel.vue
@@ -10,8 +10,14 @@
{{ item.label }}
-
-
+
+
@@ -114,5 +120,22 @@
background: rgba(235, 235, 235, 0.9);
}
}
+ > button {
+ cursor: pointer;
+ border: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 2.5rem;
+ background-color: rgba(13, 13, 13, 1);
+ color: #fff;
+ font-size: 1.2rem;
+ border-radius: 0.4rem;
+ padding: 0 0.8rem;
+ gap: 0.8rem;
+ &:active {
+ opacity: 0.8;
+ }
+ }
}
diff --git a/src/components/Canvas/DepthCanvas/components/tools/depth-input.vue b/src/components/Canvas/DepthCanvas/components/tools/depth-input.vue
index 53cc57f..6cbb258 100644
--- a/src/components/Canvas/DepthCanvas/components/tools/depth-input.vue
+++ b/src/components/Canvas/DepthCanvas/components/tools/depth-input.vue
@@ -5,7 +5,9 @@
{{ before }}
+
-
-
+
+
+
+
{{ after }}
diff --git a/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts b/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts
index 7ac7371..a08ce87 100644
--- a/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts
+++ b/src/components/Canvas/DepthCanvas/manager/AISelectboxToolManager.ts
@@ -221,12 +221,13 @@ export class AISelectboxToolManager {
if (!this.demoObject) return
const fobject = this.demoObject
this.clearDemoObject()
- const canvas = getObjectAlphaToCanvas(fobject, null, 0, { r: 255, g: 0, b: 0, a: 255 });
+ const tcanvas = await this.createStaticCanvas(fobject)
+ const canvas = getObjectAlphaToCanvas(tcanvas, null, 0, { r: 255, g: 0, b: 0, a: 255 });
+ const arr = traceImageContour(canvas);
const scaleY = fobject.scaleY
const scaleX = fobject.scaleX
const top = fobject.top
const left = fobject.left
- const arr = traceImageContour(canvas);
let minX = fobject.width;
let minY = fobject.height;
const str = arr.map((v) => {
diff --git a/src/components/Canvas/DepthCanvas/manager/LayerManager.ts b/src/components/Canvas/DepthCanvas/manager/LayerManager.ts
index 2955341..d3471a2 100644
--- a/src/components/Canvas/DepthCanvas/manager/LayerManager.ts
+++ b/src/components/Canvas/DepthCanvas/manager/LayerManager.ts
@@ -136,10 +136,11 @@ export class LayerManager {
copyLayerById(id) {
const object = this.canvasManager.getObjectById(id)
if (!object) return console.warn('复制图层失败,对象不存在ID:', id)
+ this.canvasManager.discardActiveObject()
cloneObjects([object]).then(objects => {
const newObject = objects[0]
const info = JSON.parse(JSON.stringify(newObject.info))
- info.id = createId("image")
+ info.id = createId("copylayer")
// info.name = info.name
newObject.set({
top: newObject.top + 15,
diff --git a/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js b/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js
index c94c2a2..bdd0d42 100644
--- a/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js
+++ b/src/components/Canvas/DepthCanvas/manager/events/CanvasEventManager.js
@@ -753,6 +753,23 @@ export class CanvasEventManager {
this.canvas.on("object:removed", (e) => {
// updateLayers(e);
});
+ this.canvas.on("erasing:start", (e) => {
+ // console.log("erasing:start", e);
+ });
+ this.canvas.on("erasing:end", async (e) => {
+ // console.log("erasing:end", e);
+ const targets = e.targets;
+ var isRecord = false;
+ for (let i = 0; i < targets.length; i++) {
+ const target = targets[i];
+ const id = target?.info?.id;
+ if (id) {
+ isRecord = true;
+ await this.layerManager.updateLayerThumbnailsById(id)
+ }
+ }
+ if (isRecord) this.stateManager.recordState();
+ });
}
setupDoubleClickEvents() {
// 双击处理
diff --git a/src/components/Canvas/FlowCanvas/components/tools/my-select.vue b/src/components/Canvas/FlowCanvas/components/tools/my-select.vue
index ff9d156..66493af 100644
--- a/src/components/Canvas/FlowCanvas/components/tools/my-select.vue
+++ b/src/components/Canvas/FlowCanvas/components/tools/my-select.vue
@@ -1,7 +1,12 @@
-
+
+
+
+ {{ v.label }}
+
+
diff --git a/src/components/Canvas/FlowCanvas/components/tools/my-textTools.vue b/src/components/Canvas/FlowCanvas/components/tools/my-textTools.vue
index f95ee47..5c92f70 100644
--- a/src/components/Canvas/FlowCanvas/components/tools/my-textTools.vue
+++ b/src/components/Canvas/FlowCanvas/components/tools/my-textTools.vue
@@ -3,7 +3,11 @@
diff --git a/src/components/Canvas/FlowCanvas/flow-canvas.vue b/src/components/Canvas/FlowCanvas/flow-canvas.vue
index e8bc2d2..3b11ab2 100644
--- a/src/components/Canvas/FlowCanvas/flow-canvas.vue
+++ b/src/components/Canvas/FlowCanvas/flow-canvas.vue
@@ -62,6 +62,7 @@
+
+
+
diff --git a/src/lang/en.ts b/src/lang/en.ts
index 05ffb1e..291813d 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -204,45 +204,52 @@ export default {
download: 'Download'
},
DepthCanvas: {
- layer: 'Layer',
- editDetails: 'Edit Details',
- export: 'Export',
- save: 'Save',
- workbench: 'Workbench',
- position: 'Position',
- size: 'Size',
- appearance: 'Appearance',
- opacity: 'Opacity',
- cornerRadius: 'Cor Radius',
- strokeWidth: 'Stroke Width',
- color: 'Color',
- image: 'Image',
- settings: 'Settings',
- rotation: 'Rotation',
- scale: 'Scale',
- gapX: 'Gap X',
- gapY: 'Gap Y',
- offset: 'Offset',
- emptyLayer: 'Empty Layer',
- aiGroupLayer: 'AI Group Layer',
- textLayer: 'Text Layer',
- rectLayer: 'Rect Layer',
- lineLayer: 'Line Layer',
- ellipseLayer: 'Ellipse Layer',
- triangleLayer: 'Triangle Layer',
- starLayer: 'Star Layer',
- arrowLayer: 'Arrow Layer',
- imageLayer: 'Image Layer',
- mergeLayer: 'Merge Layer',
- rectangle: 'Rectangle',
- line: 'Line',
- arrow: 'Arrow',
- ellipse: 'Ellipse',
- triangle: 'Triangle',
- star: 'Star',
- add: 'Add',
- remove: 'Remove',
- brush: 'Brush',
- erase: 'Erase'
+ layer: "Layer",
+ editDetails: "Edit Details",
+ export: "Export",
+ save: "Save",
+ workbench: "Workbench",
+ position: "Position",
+ size: "Size",
+ appearance: "Appearance",
+ opacity: "Opacity",
+ cornerRadius: "Cor Radius",
+ strokeWidth: "Stroke Width",
+ color: "Color",
+ image: "Image",
+ settings: "Settings",
+ rotation: "Rotation",
+ scale: "Scale",
+ gapX: "Gap X",
+ gapY: "Gap Y",
+ offset: "Offset",
+ emptyLayer: "Empty Layer",
+ aiGroupLayer: "AI Group Layer",
+ textLayer: "Text Layer",
+ rectLayer: "Rect Layer",
+ lineLayer: "Line Layer",
+ ellipseLayer: "Ellipse Layer",
+ triangleLayer: "Triangle Layer",
+ starLayer: "Star Layer",
+ arrowLayer: "Arrow Layer",
+ imageLayer: "Image Layer",
+ mergeLayer: "Merge Layer",
+ rectangle: "Rectangle",
+ line: "Line",
+ arrow: "Arrow",
+ ellipse: "Ellipse",
+ triangle: "Triangle",
+ star: "Star",
+ add: "Add",
+ remove: "Remove",
+ brush: "Brush",
+ erase: "Erase",
+ create: "Create",
+ reset: "Reset"
+ },
+ clipDialog: {
+ title: 'Upload your profile photo',
+ cancel: 'Cancel',
+ confirm: 'Save'
}
}
diff --git a/src/lang/zh-cn.ts b/src/lang/zh-cn.ts
index 9d5ba0d..397ef81 100644
--- a/src/lang/zh-cn.ts
+++ b/src/lang/zh-cn.ts
@@ -200,45 +200,52 @@ export default {
download: '下载'
},
DepthCanvas: {
- layer: '图层',
- editDetails: '编辑详情',
- export: '导出',
- save: '保存',
- workbench: '工作台',
- position: '位置',
- size: '大小',
- appearance: '外观',
- opacity: '透明度',
- cornerRadius: '圆角半径',
- strokeWidth: '边框宽度',
- color: '颜色',
- image: '图片',
- settings: '设置',
- rotation: '旋转角度',
- scale: '缩放',
- gapX: '水平间距',
- gapY: '垂直间距',
- offset: '偏移量',
- emptyLayer: '空图层',
- aiGroupLayer: '智能选区组',
- textLayer: '文本图层',
- rectLayer: '矩形图层',
- lineLayer: '直线图层',
- ellipseLayer: '椭圆图层',
- triangleLayer: '三角形图层',
- starLayer: '五角星图层',
- arrowLayer: '箭头图层',
- imageLayer: '图片图层',
- mergeLayer: '合并图层',
- rectangle: '矩形',
- line: '直线',
- arrow: '箭头',
- ellipse: '椭圆',
- triangle: '三角形',
- star: '五角星',
- add: '添加',
- remove: '删除',
- brush: '画笔',
- erase: '擦除'
+ layer: "图层",
+ editDetails: "编辑详情",
+ export: "导出",
+ save: "保存",
+ workbench: "工作台",
+ position: "位置",
+ size: "大小",
+ appearance: "外观",
+ opacity: "透明度",
+ cornerRadius: "圆角半径",
+ strokeWidth: "边框宽度",
+ color: "颜色",
+ image: "图片",
+ settings: "设置",
+ rotation: "旋转角度",
+ scale: "缩放",
+ gapX: "水平间距",
+ gapY: "垂直间距",
+ offset: "偏移量",
+ emptyLayer: "空图层",
+ aiGroupLayer: "智能选区组",
+ textLayer: "文本图层",
+ rectLayer: "矩形图层",
+ lineLayer: "直线图层",
+ ellipseLayer: "椭圆图层",
+ triangleLayer: "三角形图层",
+ starLayer: "五角星图层",
+ arrowLayer: "箭头图层",
+ imageLayer: "图片图层",
+ mergeLayer: "合并图层",
+ rectangle: "矩形",
+ line: "直线",
+ arrow: "箭头",
+ ellipse: "椭圆",
+ triangle: "三角形",
+ star: "五角星",
+ add: "添加",
+ remove: "删除",
+ brush: "画笔",
+ erase: "擦除",
+ create: "创建",
+ reset: "重置"
+ },
+ clipDialog: {
+ title: '上传您的个人资料照片',
+ cancel: '取消',
+ confirm: '保存'
}
}
diff --git a/src/views/home/setting/General.vue b/src/views/home/setting/General.vue
index a6e754a..6d872db 100644
--- a/src/views/home/setting/General.vue
+++ b/src/views/home/setting/General.vue
@@ -31,6 +31,7 @@
{{ $t('Home.logoutDevice') }}
+