Browse Source

图片编辑插件修改

360view
bianyaqi 2 years ago
parent
commit
306fde4f17
  1. 4
      public/index.html
  2. 4
      src/page-subspecialty/views/modules/imgEditorFabric/img-editor/setSize.vue
  3. 10
      src/page-subspecialty/views/modules/imgEditorFabric/img-editor/tools.vue
  4. 39
      src/page-subspecialty/views/modules/imgEditorFabric/index.vue
  5. 9
      src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue

4
public/index.html

@ -39,8 +39,8 @@
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %> <% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
<script> <script>
//http://121.36.16.195:9002/huimu-admin/swagger-ui/index.html //http://121.36.16.195:9002/huimu-admin/swagger-ui/index.html
// window.SITE_CONFIG['apiURL'] = 'http://47.110.224.240:8036/xiangan-crf';
window.SITE_CONFIG['apiURL'] = 'http://192.168.0.167:8036/xiangan-crf';
window.SITE_CONFIG['apiURL'] = 'http://47.110.224.240:8036/xiangan-crf';
// window.SITE_CONFIG['apiURL'] = 'http://192.168.0.167:8036/xiangan-crf';
</script> </script>
<% } %> <% } %>
<!-- 测试环境 --> <!-- 测试环境 -->

4
src/page-subspecialty/views/modules/imgEditorFabric/img-editor/setSize.vue

@ -38,8 +38,8 @@ export default {
inject: ['canvas', 'fabric'], inject: ['canvas', 'fabric'],
data() { data() {
return { return {
width: 360 * 1.5,
height: 400 * 1.5,
width: 360 * 2,
height: 400 * 2,
presetSize: [{ presetSize: [{
label: '红书竖版', label: '红书竖版',
width: 900, width: 900,

10
src/page-subspecialty/views/modules/imgEditorFabric/img-editor/tools.vue

@ -122,6 +122,7 @@ export default {
}, },
methods: { methods: {
addText() { addText() {
this.closeLineMode()
const text = new this.fabric.IText('万事大吉', { const text = new this.fabric.IText('万事大吉', {
...defaultPosition, ...defaultPosition,
fontSize: 40, id: uuid() fontSize: 40, id: uuid()
@ -130,6 +131,7 @@ export default {
this.canvas.c.setActiveObject(text) this.canvas.c.setActiveObject(text)
}, },
addImg(e) { addImg(e) {
this.closeLineMode()
const imgEl = e.target.cloneNode(true) const imgEl = e.target.cloneNode(true)
const imgInstance = new this.fabric.Image(imgEl, { const imgInstance = new this.fabric.Image(imgEl, {
...defaultPosition, ...defaultPosition,
@ -140,6 +142,7 @@ export default {
this.canvas.c.renderAll() this.canvas.c.renderAll()
}, },
addTextBox() { addTextBox() {
this.closeLineMode()
const text = new this.fabric.Textbox('诸事顺遂', { const text = new this.fabric.Textbox('诸事顺遂', {
...defaultPosition, ...defaultPosition,
splitByGrapheme: true, width: 300, splitByGrapheme: true, width: 300,
@ -149,6 +152,7 @@ export default {
this.canvas.c.setActiveObject(text) this.canvas.c.setActiveObject(text)
}, },
addTriangle() { addTriangle() {
this.closeLineMode()
const triangle = new this.fabric.Triangle({ const triangle = new this.fabric.Triangle({
top: 100, top: 100,
left: 100, left: 100,
@ -160,6 +164,7 @@ export default {
this.canvas.c.setActiveObject(triangle) this.canvas.c.setActiveObject(triangle)
}, },
addCircle() { addCircle() {
this.closeLineMode()
const circle = new this.fabric.Circle({ const circle = new this.fabric.Circle({
...defaultPosition, ...defaultPosition,
radius: 50, radius: 50,
@ -171,6 +176,7 @@ export default {
this.canvas.c.setActiveObject(circle) this.canvas.c.setActiveObject(circle)
}, },
addRect() { addRect() {
this.closeLineMode()
const circle = new this.fabric.Rect({ const circle = new this.fabric.Rect({
...defaultPosition, ...defaultPosition,
fill: '#F57274', fill: '#F57274',
@ -182,6 +188,10 @@ export default {
this.canvas.c.add(circle) this.canvas.c.add(circle)
this.canvas.c.setActiveObject(circle) this.canvas.c.setActiveObject(circle)
}, },
closeLineMode() {
this.drawHandler.setMode(false)
this.drawHandler.setArrow(false)
},
drawingLineModeSwitch(isArrow) { drawingLineModeSwitch(isArrow) {
this.isArrow = isArrow this.isArrow = isArrow
this.isDrawingLineMode = !this.isDrawingLineMode this.isDrawingLineMode = !this.isDrawingLineMode

39
src/page-subspecialty/views/modules/imgEditorFabric/index.vue

@ -11,30 +11,30 @@
<div style=" display: flex; height: calc(100vh - 70px);"> <div style=" display: flex; height: calc(100vh - 70px);">
<div style="width: 380px; height: 100%; background:#fff; display: flex"> <div style="width: 380px; height: 100%; background:#fff; display: flex">
<el-tabs v-model="menuActive" tab-position="left"> <el-tabs v-model="menuActive" tab-position="left">
<el-tab-pane label="元素" name="2" />
<el-tab-pane label="背景" name="3" />
<el-tab-pane label="画笔" name="4" />
<el-tab-pane label="元素" name="1" />
<el-tab-pane label="背景" name="2" />
<el-tab-pane label="画笔" name="3" />
</el-tabs> </el-tabs>
<div class="content"> <div class="content">
<template v-if="show"> <template v-if="show">
<div v-show="menuActive === '2'" class="left-panel">
<div v-show="menuActive === '1'" class="left-panel">
<tools /> <tools />
</div> </div>
<!-- 背景设置 --> <!-- 背景设置 -->
<div v-show="menuActive === '3'" class="left-panel">
<div v-show="menuActive === '2'" class="left-panel">
<set-size /> <set-size />
<bg-bar ref="bgBar" :is-od-or-os="isOdOrOs" /> <bg-bar ref="bgBar" :is-od-or-os="isOdOrOs" />
</div> </div>
</template> </template>
<!-- 画笔设置 --> <!-- 画笔设置 -->
<div v-show="menuActive === '4'" class="left-panel">
<div v-show="menuActive === '3'" class="left-panel">
<div style="display: inline-block"> <div style="display: inline-block">
<el-button type="primary" class="btn btn-info" size="small" @click="changeDrawing">{{ controlBtn }}</el-button> <el-button type="primary" class="btn btn-info" size="small" @click="changeDrawing">{{ controlBtn }}</el-button>
<div v-if="controlDrawing"> <div v-if="controlDrawing">
<div class="drawing_item" style="display: flex"> <div class="drawing_item" style="display: flex">
<span for="drawing-mode-selector">风格:</span> <span for="drawing-mode-selector">风格:</span>
<el-select id="drawing-mode-selector" v-model="model" class="modeStyle" style="flex: 1" @change="changeModel"> <el-select id="drawing-mode-selector" v-model="model" class="modeStyle" style="flex: 1" @change="changeModel">
<el-option :value="'Pencil'">Pencil</el-option>
<el-option :value="'铅笔'">铅笔</el-option>
<el-option :value="'钻石'">钻石</el-option> <el-option :value="'钻石'">钻石</el-option>
</el-select> </el-select>
</div> </div>
@ -47,14 +47,14 @@
<div for="drawing-color">线条颜色:</div> <div for="drawing-color">线条颜色:</div>
<el-input id="drawing-color" class="toolStyle" type="color" value="#FF0000" /> <el-input id="drawing-color" class="toolStyle" type="color" value="#FF0000" />
</div> </div>
<div class="drawing_item" id="eraser-btn" style="display: flex;align-items: center">
<div id="eraser-btn" class="drawing_item" style="display: flex;align-items: center">
<div>橡皮擦: </div> <div>橡皮擦: </div>
<el-button size="mini" @click="setEarser" type="text" style="font-size: 16px;margin-left: 4px">橡皮擦</el-button>
<el-button size="mini" type="text" style="font-size: 16px;margin-left: 4px" @click="setEarser">橡皮擦</el-button>
<!-- <span @click="setUndoErasing">恢复擦拭</span>--> <!-- <span @click="setUndoErasing">恢复擦拭</span>-->
</div> </div>
<div class="drawing_item" style="display: flex;align-items: center"> <div class="drawing_item" style="display: flex;align-items: center">
<div>画笔: </div> <div>画笔: </div>
<el-button size="mini" @click="changeModel('钻石')" type="text" style="font-size: 16px;margin-left: 4px">画笔</el-button>
<el-button size="mini" type="text" style="font-size: 16px;margin-left: 4px" @click="changeModel('钻石')">画笔</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -126,7 +126,7 @@ export default {
}, },
data() { data() {
return { return {
menuActive: '4',
menuActive: '3',
show: false, show: false,
select: null, select: null,
model: '钻石', model: '钻石',
@ -135,6 +135,16 @@ export default {
lineWidth: 30 lineWidth: 30
} }
}, },
watch: {
menuActive(value) {
if (value !== '3') {
this.canvas.isDrawingMode = false
} else {
this.canvas.isDrawingMode = true
}
console.log(this.canvas.isDrawingMode)
}
},
mounted() { mounted() {
this.canvas = canvas.c = new fabric.Canvas('canvas', { this.canvas = canvas.c = new fabric.Canvas('canvas', {
isDrawingMode: true isDrawingMode: true
@ -249,8 +259,9 @@ export default {
canvas.freeDrawingBrush = diamondPatternBrush canvas.freeDrawingBrush = diamondPatternBrush
} else if (value === 'texture') { } else if (value === 'texture') {
canvas.freeDrawingBrush = texturePatternBrush canvas.freeDrawingBrush = texturePatternBrush
} else {
canvas.freeDrawingBrush = new fabric[value + 'Brush'](canvas)
} else if (value === '铅笔') {
const text = 'Pencil'
canvas.freeDrawingBrush = new fabric[text + 'Brush'](canvas)
} }
if (canvas.freeDrawingBrush) { if (canvas.freeDrawingBrush) {
var brush = canvas.freeDrawingBrush var brush = canvas.freeDrawingBrush
@ -278,6 +289,8 @@ export default {
// //
changeDrawing() { changeDrawing() {
this.canvas.isDrawingMode = !this.canvas.isDrawingMode this.canvas.isDrawingMode = !this.canvas.isDrawingMode
console.log(this.canvas.isDrawingMode)
if (this.canvas.isDrawingMode) { if (this.canvas.isDrawingMode) {
this.controlBtn = '取消绘图模式' this.controlBtn = '取消绘图模式'
this.controlDrawing = true this.controlDrawing = true

9
src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue

@ -94,6 +94,15 @@
<el-col class="line" style="text-align: center" :span="2">-</el-col> <el-col class="line" style="text-align: center" :span="2">-</el-col>
<el-col :span="11"> <el-col :span="11">
<el-form-item prop="date2"> <el-form-item prop="date2">
<!-- <el-time-select-->
<!-- v-model="form.date2"-->
<!-- :picker-options="{-->
<!-- start: '08:30',-->
<!-- step: '00:15',-->
<!-- end: '18:30'-->
<!-- }"-->
<!-- placeholder="选择时间"-->
<!-- />-->
<el-time-picker <el-time-picker
v-model="form.date2" v-model="form.date2"
value-format="HH:mm:ss" value-format="HH:mm:ss"

Loading…
Cancel
Save