From 6a63fe334540704830cf82036b666a63b06bc1a3 Mon Sep 17 00:00:00 2001 From: bianyaqi Date: Fri, 19 May 2023 18:05:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E7=BC=96=E8=BE=91=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 7 +- src/assets/scss/reset.scss | 2 +- .../360View/commonForm/deveopmentFIle.vue | 2 +- .../360View/commonForm/eyesVision.vue | 18 +- .../360View/commonForm/optometryForm.vue | 172 ++++++++--- .../360View/commonForm/threeVision.vue | 2 - src/components/360View/img-editor.vue | 12 +- .../imgEditorFabric/img-editor/bgBar.vue | 39 ++- .../imgEditorFabric/img-editor/layer.vue | 18 +- .../imgEditorFabric/img-editor/save.vue | 2 + .../imgEditorFabric/img-editor/setSize.vue | 43 ++- .../imgEditorFabric/img-editor/tools.vue | 5 + .../imgEditorFabric/img-editor/zoom.vue | 20 +- .../views/modules/imgEditorFabric/index.vue | 280 ++++++++++-------- .../reservation/subList/index.vue | 3 +- 15 files changed, 395 insertions(+), 230 deletions(-) diff --git a/package.json b/package.json index 3b7c333..3066b12 100644 --- a/package.json +++ b/package.json @@ -32,21 +32,22 @@ "element-resize-detector": "^1.2.3", "element-ui": "^2.13.2", "fabric": "^5.3.0", + "fabric-with-erasing": "^1.0.1", "file-saver": "^2.0.5", + "fontfaceobserver": "^2.1.0", "hammerjs": "^2.0.8", + "hotkeys-js": "^3.8.8", "jquery": "^3.6.0", "js-audio-recorder": "^1.0.7", "js-base64": "^3.6.1", "js-cookie": "^2.2.1", "jszip-utils": "^0.1.0", "less": "^4.0.0", - "fontfaceobserver": "^2.1.0", "less-loader": "^5.0.0", "lodash": "^4.17.19", + "lodash-es": "^4.17.21", "moment": "^2.29.1", "node-sass": "^6.0.1", - "hotkeys-js": "^3.8.8", - "lodash-es": "^4.17.21", "pdfjs-dist": "^2.6.347", "pizzip": "^3.1.1", "qs": "^6.9.4", diff --git a/src/assets/scss/reset.scss b/src/assets/scss/reset.scss index c80b23c..bb6a74a 100644 --- a/src/assets/scss/reset.scss +++ b/src/assets/scss/reset.scss @@ -177,7 +177,7 @@ legend { input, textarea { - -webkit-appearance: none; + //-webkit-appearance: none; border: none; outline: none; background: none; diff --git a/src/components/360View/commonForm/deveopmentFIle.vue b/src/components/360View/commonForm/deveopmentFIle.vue index 4a80977..103840e 100644 --- a/src/components/360View/commonForm/deveopmentFIle.vue +++ b/src/components/360View/commonForm/deveopmentFIle.vue @@ -678,7 +678,7 @@ export default { } } - - diff --git a/src/components/360View/commonForm/threeVision.vue b/src/components/360View/commonForm/threeVision.vue index c45449d..95e4006 100644 --- a/src/components/360View/commonForm/threeVision.vue +++ b/src/components/360View/commonForm/threeVision.vue @@ -1637,8 +1637,6 @@ export default { font-weight: 400; } } - - diff --git a/src/page-subspecialty/views/modules/imgEditorFabric/img-editor/tools.vue b/src/page-subspecialty/views/modules/imgEditorFabric/img-editor/tools.vue index 0ad23cb..ac3e9cc 100644 --- a/src/page-subspecialty/views/modules/imgEditorFabric/img-editor/tools.vue +++ b/src/page-subspecialty/views/modules/imgEditorFabric/img-editor/tools.vue @@ -197,6 +197,10 @@ export default { diff --git a/src/page-subspecialty/views/modules/imgEditorFabric/index.vue b/src/page-subspecialty/views/modules/imgEditorFabric/index.vue index 635e4ce..030ded1 100644 --- a/src/page-subspecialty/views/modules/imgEditorFabric/index.vue +++ b/src/page-subspecialty/views/modules/imgEditorFabric/index.vue @@ -1,17 +1,16 @@ -
-
-
-
- -
- -
- - - 30
- - -
- - -
- - - 0
- - - 0
+
+
+ {{ controlBtn }} + +
+
+ 风格: + + Pencil + 钻石 + +
+ +
+
线条宽度:{{ lineWidth }}
+ + +
+ +
+
线条颜色:
+ +
+ + + + + +
@@ -72,9 +66,10 @@
+
-
+
@@ -100,6 +95,7 @@ import layer from '@/page-subspecialty/views/modules/imgEditorFabric/img-editor/ import EventHandle from '@/utils/eventHandler' import { fabric } from 'fabric' +import 'fabric/src/mixins/eraser_brush.mixin' // 对齐辅助线 import initAligningGuidelines from '@/core/initAligningGuidelines' @@ -133,7 +129,11 @@ export default { return { menuActive: '4', show: false, - select: null + select: null, + model: '钻石', + controlBtn: '取消绘图模式', + controlDrawing: true, + lineWidth: 30 } }, mounted() { @@ -149,6 +149,7 @@ export default { initControls(canvas.c) this.$nextTick(() => { this.setBrush() + this.changeModel('钻石') }) }, methods: { @@ -158,33 +159,10 @@ export default { closeDialog() { this.$emit('closeDialog') }, - setBrush() { + // 改变画笔样式 + changeModel(value, canvas = this.canvas) { var $ = function(id) { return document.getElementById(id) } - var canvas = this.canvas - fabric.Object.prototype.transparentCorners = false - - var drawingModeEl = $('drawing-mode') - var drawingOptionsEl = $('drawing-mode-options') var drawingColorEl = $('drawing-color') - var drawingShadowColorEl = $('drawing-shadow-color') - var drawingLineWidthEl = $('drawing-line-width') - var drawingShadowWidth = $('drawing-shadow-width') - var drawingShadowOffset = $('drawing-shadow-offset') - var clearEl = $('clear-canvas') - - clearEl.onclick = function() { canvas.clear() } - - drawingModeEl.onclick = function() { - canvas.isDrawingMode = !canvas.isDrawingMode - if (canvas.isDrawingMode) { - drawingModeEl.innerHTML = 'Cancel drawing mode' - drawingOptionsEl.style.display = '' - } else { - drawingModeEl.innerHTML = 'Enter drawing mode' - drawingOptionsEl.style.display = 'none' - } - } - if (fabric.PatternBrush) { var vLinePatternBrush = new fabric.PatternBrush(canvas) vLinePatternBrush.getPatternSrc = function() { @@ -262,39 +240,58 @@ export default { var texturePatternBrush = new fabric.PatternBrush(canvas) texturePatternBrush.source = img } - - $('drawing-mode-selector').onchange = function() { - if (this.value === 'hline') { - canvas.freeDrawingBrush = vLinePatternBrush - } else if (this.value === 'vline') { - canvas.freeDrawingBrush = hLinePatternBrush - } else if (this.value === 'square') { - canvas.freeDrawingBrush = squarePatternBrush - } else if (this.value === 'diamond') { - canvas.freeDrawingBrush = diamondPatternBrush - } else if (this.value === 'texture') { - canvas.freeDrawingBrush = texturePatternBrush - } else { - canvas.freeDrawingBrush = new fabric[this.value + 'Brush'](canvas) - } - - if (canvas.freeDrawingBrush) { - var brush = canvas.freeDrawingBrush - brush.color = drawingColorEl.value - if (brush.getPatternSrc) { - brush.source = brush.getPatternSrc.call(brush) - } - brush.width = parseInt(drawingLineWidthEl.value, 10) || 1 - brush.shadow = new fabric.Shadow({ - blur: parseInt(drawingShadowWidth.value, 10) || 0, - offsetX: 0, - offsetY: 0, - affectStroke: true, - color: drawingShadowColorEl.value - }) + if (value === 'hline') { + canvas.freeDrawingBrush = vLinePatternBrush + } else if (value === 'vline') { + canvas.freeDrawingBrush = hLinePatternBrush + } else if (value === 'square') { + canvas.freeDrawingBrush = squarePatternBrush + } else if (value === '钻石') { + canvas.freeDrawingBrush = diamondPatternBrush + } else if (value === 'texture') { + canvas.freeDrawingBrush = texturePatternBrush + } else { + canvas.freeDrawingBrush = new fabric[value + 'Brush'](canvas) + } + if (canvas.freeDrawingBrush) { + var brush = canvas.freeDrawingBrush + brush.color = drawingColorEl.value + if (brush.getPatternSrc) { + brush.source = brush.getPatternSrc.call(brush) } + brush.width = parseInt(this.lineWidth, 10) || 1 + } + }, + // setEarser() { + // // canvas.isDrawingMode = true // 启用绘图模式 + // + // // 设置橡皮擦样式 + // canvas.freeDrawingBrush = new fabric.PencilBrush(canvas) + // canvas.freeDrawingBrush.color = 'rgba(0,0,0,0)' // 设置颜色为透明 + // canvas.freeDrawingBrush.width = 20 // 设置橡皮擦的大小 + // }, + // 打开或关闭绘画模式 + changeDrawing() { + this.canvas.isDrawingMode = !this.canvas.isDrawingMode + if (this.canvas.isDrawingMode) { + this.controlBtn = '取消绘图模式' + this.controlDrawing = true + } else { + this.controlBtn = '开启绘图模式' + this.controlDrawing = false } + }, + // 改变线宽 + changeLineWidth(value) { + this.lineWidth = value + this.canvas.freeDrawingBrush.width = parseInt(this.lineWidth, 10) || 1 + }, + setBrush() { + var $ = function(id) { return document.getElementById(id) } + var canvas = this.canvas + fabric.Object.prototype.transparentCorners = false + var drawingColorEl = $('drawing-color') drawingColorEl.onchange = function() { var brush = canvas.freeDrawingBrush brush.color = this.value @@ -302,34 +299,10 @@ export default { brush.source = brush.getPatternSrc.call(brush) } } - drawingShadowColorEl.onchange = function() { - canvas.freeDrawingBrush.shadow.color = this.value - } - drawingLineWidthEl.onchange = function() { - canvas.freeDrawingBrush.width = parseInt(this.value, 10) || 1 - this.previousSibling.innerHTML = this.value - } - drawingShadowWidth.onchange = function() { - canvas.freeDrawingBrush.shadow.blur = parseInt(this.value, 10) || 0 - this.previousSibling.innerHTML = this.value - } - drawingShadowOffset.onchange = function() { - canvas.freeDrawingBrush.shadow.offsetX = parseInt(this.value, 10) || 0 - canvas.freeDrawingBrush.shadow.offsetY = parseInt(this.value, 10) || 0 - this.previousSibling.innerHTML = this.value - } - if (canvas.freeDrawingBrush) { canvas.freeDrawingBrush.color = drawingColorEl.value canvas.freeDrawingBrush.source = canvas.freeDrawingBrush.getPatternSrc && canvas.freeDrawingBrush.getPatternSrc.call(this) - canvas.freeDrawingBrush.width = parseInt(drawingLineWidthEl.value, 10) || 1 - canvas.freeDrawingBrush.shadow = new fabric.Shadow({ - blur: parseInt(drawingShadowWidth.value, 10) || 0, - offsetX: 0, - offsetY: 0, - affectStroke: true, - color: drawingShadowColorEl.value - }) + canvas.freeDrawingBrush.width = parseInt(this.lineWidth, 10) || 1 } var mainScriptEl = document.getElementById('main') if (!mainScriptEl) return @@ -357,16 +330,70 @@ export default { }