zydx-plus 1.32.312 → 1.32.313
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -29,9 +29,13 @@
|
|
|
29
29
|
</div>
|
|
30
30
|
</div>
|
|
31
31
|
<div class="page-but-left" :style="{cursor: pageIndex === 1?'default':'pointer'}"
|
|
32
|
-
@click.stop="flipRight(pageIndex-=1,false)"
|
|
32
|
+
@click.stop="flipRight(pageIndex-=1,false)">
|
|
33
|
+
<img v-if="pageIndex !== 1" src="data:image/png;base64,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" alt="" />
|
|
34
|
+
</div>
|
|
33
35
|
<div class="page-but-right" :style="{cursor: pageIndex === pdfPages?'default':'pointer'}"
|
|
34
|
-
@click.stop="flipLeft(pageIndex+=1,false)"
|
|
36
|
+
@click.stop="flipLeft(pageIndex+=1,false)">
|
|
37
|
+
<img v-if="pageIndex !== pdfPages" src="data:image/png;base64,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" alt="" />
|
|
38
|
+
</div>
|
|
35
39
|
</div>
|
|
36
40
|
</div>
|
|
37
41
|
<div class="but-wrap" v-if="butShow">
|
|
@@ -43,82 +47,7 @@
|
|
|
43
47
|
</button>
|
|
44
48
|
</div>
|
|
45
49
|
</div>
|
|
46
|
-
|
|
47
|
-
<div class="tool-text" v-if="!flipToolShow">
|
|
48
|
-
<span>阅读笔</span>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="tool-list" :style="{transform: `translateY(${flipToolShow? '0':'-130%'})`}">
|
|
51
|
-
<div v-if="setShow" class="set" :style="{top: top + 'px'}">
|
|
52
|
-
<div class="set-list set-text" v-if="state === 'text'">
|
|
53
|
-
<span>文字字号</span>
|
|
54
|
-
<em v-for="(item) in textData" :style="{color: fontSize === Number(item)? 'rgba(198, 76, 16, 1)': '#000'}" @click.stop="textSizeTap(item)">{{ item }}</em>
|
|
55
|
-
</div>
|
|
56
|
-
<div class="set-list" v-else>
|
|
57
|
-
<span>线条粗细</span>
|
|
58
|
-
<em v-for="(item) in strokeData" :style="{color: lineWidth === Number(item)? 'rgba(198, 76, 16, 1)': '#000'}" @click.stop="strokeTap(item)">{{ item }}</em>
|
|
59
|
-
</div>
|
|
60
|
-
<div class="set-list">
|
|
61
|
-
<span>线条颜色</span>
|
|
62
|
-
<i v-for="(item) in strokeColor" @click.stop="strokeColTap(item)" :style="{'background-color': item === color? '#fff': item, border: `4px solid ${item}`}"></i>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
<div class="tool-item" :class="{'tool-item-active': state === null}" @click.stop="mouse">
|
|
66
|
-
<div class="tool-item-img">
|
|
67
|
-
<img src="./img/shubiao.png" alt=""/>
|
|
68
|
-
</div>
|
|
69
|
-
</div>
|
|
70
|
-
<div class="tool-item" :class="{'tool-item-active': state === 'brush'}" @click.stop="brush">
|
|
71
|
-
<div class="tool-item-img">
|
|
72
|
-
<img src="./img/huabi.png" alt=""/>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="tool-item" :class="{'tool-item-active': state === 'text'}" @click.stop="textTap">
|
|
76
|
-
<div class="tool-item-img">
|
|
77
|
-
<img src="./img/wenzi.png" alt=""/>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
<div class="tool-item" :class="{'tool-item-active': state === 'rectangle'}" @click.stop="rectangleTap">
|
|
81
|
-
<div class="tool-item-img">
|
|
82
|
-
<img src="./img/juxing.png" alt=""/>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
<div class="tool-item" :class="{'tool-item-active': state === 'circula'}" @click.stop="circularTap">
|
|
86
|
-
<div class="tool-item-img">
|
|
87
|
-
<img src="./img/yuan.png" alt=""/>
|
|
88
|
-
</div>
|
|
89
|
-
</div>
|
|
90
|
-
<div class="tool-item" :class="{'tool-item-active': state === 'straight'}" @click.stop="straightTap">
|
|
91
|
-
<div class="tool-item-img">
|
|
92
|
-
<img src="./img/jian.png" alt=""/>
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
<div class="tool-item" :class="{'tool-item-active': state === 'arrow'}" @click.stop="arrowTap">
|
|
96
|
-
<div class="tool-item-img">
|
|
97
|
-
<img src="./img/jiantou.png" alt=""/>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
<div class="tool-item" @click.stop="backward">
|
|
101
|
-
<div class="tool-item-img">
|
|
102
|
-
<img src="./img/houtui.png" alt=""/>
|
|
103
|
-
</div>
|
|
104
|
-
</div>
|
|
105
|
-
<div class="tool-item" @click.stop="preserve">
|
|
106
|
-
<div class="tool-item-img">
|
|
107
|
-
<img src="./img/baocun.png" alt=""/>
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
<div class="tool-item" @click.stop="empty">
|
|
111
|
-
<div class="tool-item-img">
|
|
112
|
-
<img src="./img/xiangpi.png" alt=""/>
|
|
113
|
-
</div>
|
|
114
|
-
</div>
|
|
115
|
-
<div class="tool-item">
|
|
116
|
-
<div class="tool-item-img">
|
|
117
|
-
<img src="./img/guanbi.png" alt=""/>
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
</div>
|
|
50
|
+
|
|
122
51
|
<div v-if="loading" class="loading-back">
|
|
123
52
|
<div class="loading-cont">
|
|
124
53
|
<div class="loadings">Loading</div>
|
|
@@ -168,13 +97,9 @@ export default {
|
|
|
168
97
|
setShow: false,
|
|
169
98
|
flipToolShow2: false,
|
|
170
99
|
flipToolShow: false,
|
|
171
|
-
strokeData: ['1', '2', '3', '4', '5', '6', '7'], // 画笔数据
|
|
172
|
-
strokeColor: ['#000', '#f00', '#0f0', '#00f', '#f0f', '#ff0', '#0ff'], // 画笔颜色
|
|
173
|
-
textData: ['14', '16', '18', '20', '22', '24'], // 文本数据
|
|
174
100
|
color: '#000',
|
|
175
101
|
text: '',
|
|
176
102
|
state: null,
|
|
177
|
-
top: 0,
|
|
178
103
|
fontSize: 14,
|
|
179
104
|
textX: 0,
|
|
180
105
|
textY: 0,
|
|
@@ -184,14 +109,16 @@ export default {
|
|
|
184
109
|
contenteditable: false,
|
|
185
110
|
linkId: null,
|
|
186
111
|
pointsSelect: [],
|
|
187
|
-
checkDrawing: false,
|
|
112
|
+
checkDrawing: false, // 是否在画板以外画笔
|
|
188
113
|
checkX: 0,
|
|
189
114
|
checkY: 0,
|
|
190
115
|
textWidth: 0,
|
|
191
116
|
textHeight: 0,
|
|
192
117
|
textDownX: 0,
|
|
193
118
|
textDownY: 0,
|
|
194
|
-
textMoveStart: false
|
|
119
|
+
textMoveStart: false,
|
|
120
|
+
chartIndexID: null, // 当前点击的图形索引
|
|
121
|
+
signStart: false,
|
|
195
122
|
}
|
|
196
123
|
},
|
|
197
124
|
props: {
|
|
@@ -266,7 +193,7 @@ export default {
|
|
|
266
193
|
deep: true
|
|
267
194
|
}
|
|
268
195
|
},
|
|
269
|
-
emits: ['flip'
|
|
196
|
+
emits: ['flip'],
|
|
270
197
|
mounted() {
|
|
271
198
|
this.id = 'canvas-wrap' + Math.random().toString(36).substr(2)
|
|
272
199
|
window.addEventListener('keydown', this.handleKeyEvent)
|
|
@@ -280,12 +207,26 @@ export default {
|
|
|
280
207
|
window.removeEventListener('keydown', this.handleKeyEvent)
|
|
281
208
|
},
|
|
282
209
|
methods: {
|
|
210
|
+
colorTap(v) {
|
|
211
|
+
this.color = v
|
|
212
|
+
},
|
|
213
|
+
fontSizeTap(v) {
|
|
214
|
+
this.fontSize = Number(v)
|
|
215
|
+
},
|
|
216
|
+
lineWidthTap(v) {
|
|
217
|
+
this.lineWidth = Number(v)
|
|
218
|
+
},
|
|
283
219
|
handleKeyEvent(e) {
|
|
284
220
|
const {key} = e
|
|
285
221
|
if (key === 'Backspace' || key === 'Delete') {
|
|
222
|
+
if(this.contenteditable) return
|
|
286
223
|
this.backward()
|
|
287
224
|
}
|
|
288
225
|
},
|
|
226
|
+
// 删除
|
|
227
|
+
delTap() {
|
|
228
|
+
this.state = 'del'
|
|
229
|
+
},
|
|
289
230
|
empty() {
|
|
290
231
|
this.setShow = false
|
|
291
232
|
this.points = []
|
|
@@ -293,7 +234,7 @@ export default {
|
|
|
293
234
|
},
|
|
294
235
|
preserve() {
|
|
295
236
|
this.setShow = false
|
|
296
|
-
|
|
237
|
+
return this.points
|
|
297
238
|
},
|
|
298
239
|
// 后退
|
|
299
240
|
backward() {
|
|
@@ -316,13 +257,11 @@ export default {
|
|
|
316
257
|
mouse() {
|
|
317
258
|
this.state = null
|
|
318
259
|
this.setShow = false
|
|
319
|
-
this.turnText()
|
|
320
260
|
},
|
|
321
261
|
// 画笔
|
|
322
262
|
brush() {
|
|
323
263
|
this.state = 'brush'
|
|
324
264
|
this.setShow = true
|
|
325
|
-
this.top = 60
|
|
326
265
|
},
|
|
327
266
|
// 文字字号
|
|
328
267
|
textSizeTap(v) {
|
|
@@ -332,28 +271,25 @@ export default {
|
|
|
332
271
|
rectangleTap() {
|
|
333
272
|
this.state = 'rectangle'
|
|
334
273
|
this.setShow = true
|
|
335
|
-
this.top = 60*3
|
|
336
274
|
},
|
|
337
275
|
// 圆形
|
|
338
276
|
circularTap() {
|
|
339
277
|
this.state = 'circular'
|
|
340
278
|
this.setShow = true
|
|
341
|
-
this.top = 60*4
|
|
342
279
|
},
|
|
343
280
|
// 直线
|
|
344
281
|
straightTap() {
|
|
345
282
|
this.state = 'straight'
|
|
346
283
|
this.setShow = true
|
|
347
|
-
this.top = 60*5
|
|
348
284
|
},
|
|
349
285
|
// 箭头
|
|
350
286
|
arrowTap() {
|
|
351
287
|
this.state = 'arrow'
|
|
352
288
|
this.setShow = true
|
|
353
|
-
this.top = 60*6
|
|
354
289
|
},
|
|
355
290
|
// 文字
|
|
356
|
-
textTap() {
|
|
291
|
+
textTap(v) {
|
|
292
|
+
this.turnText()
|
|
357
293
|
this.state = 'text'
|
|
358
294
|
this.setShow = true
|
|
359
295
|
this.top = 60*2
|
|
@@ -363,18 +299,7 @@ export default {
|
|
|
363
299
|
this.textWidth = 100
|
|
364
300
|
this.textHeight = this.fontSize + 1
|
|
365
301
|
this.$refs.textInput.innerText = ''
|
|
366
|
-
|
|
367
|
-
flipTool() {
|
|
368
|
-
this.setShow = false
|
|
369
|
-
this.textShow = false
|
|
370
|
-
this.flipToolShow = !this.flipToolShow
|
|
371
|
-
if(this.flipToolShow) {
|
|
372
|
-
setTimeout(() => {
|
|
373
|
-
this.flipToolShow2 = true
|
|
374
|
-
}, 600)
|
|
375
|
-
} else {
|
|
376
|
-
this.flipToolShow2 = false
|
|
377
|
-
}
|
|
302
|
+
if(v === 'sign') this.signStart = true
|
|
378
303
|
},
|
|
379
304
|
strokeColTap(v) {
|
|
380
305
|
this.color = v
|
|
@@ -421,17 +346,30 @@ export default {
|
|
|
421
346
|
const x2 = this.points[i].x*this.scales/this.points[i].scale + len*this.points[i].size*this.sratio
|
|
422
347
|
const y2 = this.points[i].y*this.scales/this.points[i].scale + len*this.points[i].size*this.sratio
|
|
423
348
|
if(obj.x >= x1 && obj.x <= x2 && obj.y >= y1 && obj.y <= y2) {
|
|
424
|
-
this.state
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
349
|
+
if(this.state !== 'del') {
|
|
350
|
+
this.state = 'text'
|
|
351
|
+
this.textX2 = x1
|
|
352
|
+
this.textY2 = y1
|
|
353
|
+
this.textWidth = 'auto'
|
|
354
|
+
this.color = this.points[i].color
|
|
355
|
+
this.textHeight = this.points[i].text.length*this.points[i].size + 1
|
|
356
|
+
this.$refs.textInput.innerText = this.points[i].text.join('\n')
|
|
357
|
+
}
|
|
431
358
|
this.points.splice(i,1)
|
|
359
|
+
if(this.points[i - 1] !== undefined) {
|
|
360
|
+
if(this.points[i - 1].type === 'sign') {
|
|
361
|
+
if(this.state !== 'del') {
|
|
362
|
+
this.points.push(this.points.splice(i - 1, 1)[0])
|
|
363
|
+
}else {
|
|
364
|
+
this.points.splice(i - 1, 1)
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
432
369
|
this.clearRect()
|
|
433
370
|
}
|
|
434
371
|
}
|
|
372
|
+
// 判断点击的是否是矩形
|
|
435
373
|
if(this.points[i]?.type === 'rectangle') {
|
|
436
374
|
const x2 = this.points[i].x*this.scales/this.points[i].scale + this.points[i].width*this.scales/this.points[i].scale
|
|
437
375
|
const y2 = this.points[i].y*this.scales/this.points[i].scale + this.points[i].height*this.scales/this.points[i].scale
|
|
@@ -441,6 +379,7 @@ export default {
|
|
|
441
379
|
this.points.splice(i,1)
|
|
442
380
|
}
|
|
443
381
|
}
|
|
382
|
+
// 判断点击的是否是直线
|
|
444
383
|
if(this.points[i]?.type === 'line') {
|
|
445
384
|
const x2 = this.points[i+1]?this.points[i+1].x*this.scales/this.points[i].scale:0
|
|
446
385
|
const y2 = this.points[i+1]?this.points[i+1].y*this.scales/this.points[i].scale:0
|
|
@@ -462,6 +401,7 @@ export default {
|
|
|
462
401
|
}
|
|
463
402
|
}
|
|
464
403
|
}
|
|
404
|
+
// 判断点击的是否是箭头
|
|
465
405
|
if(this.points[i]?.type === 'straight' || this.points[i]?.type === 'arrow') {
|
|
466
406
|
const x2 = this.points[i].x2*this.scales/this.points[i].scale
|
|
467
407
|
const y2 = this.points[i].y2*this.scales/this.points[i].scale
|
|
@@ -536,7 +476,7 @@ export default {
|
|
|
536
476
|
this.setShow = false
|
|
537
477
|
e = e || event
|
|
538
478
|
e.preventDefault()
|
|
539
|
-
if(this.state === null) {
|
|
479
|
+
if(this.state === null || this.state === 'del') {
|
|
540
480
|
this.checkDrawing = true
|
|
541
481
|
this.checkDown(e)
|
|
542
482
|
return
|
|
@@ -547,6 +487,7 @@ export default {
|
|
|
547
487
|
y: e.offsetY*this.sratio
|
|
548
488
|
}
|
|
549
489
|
this.drawStart(obj)
|
|
490
|
+
if(this.signStart) this.sign()
|
|
550
491
|
},
|
|
551
492
|
textDblclick() {
|
|
552
493
|
if(!this.contenteditable) this.contenteditable = true
|
|
@@ -557,12 +498,18 @@ export default {
|
|
|
557
498
|
this.textDownY = e.offsetY
|
|
558
499
|
this.textMoveStart = true
|
|
559
500
|
},
|
|
501
|
+
// 鼠标移动
|
|
560
502
|
mouseMove (e) {
|
|
561
503
|
e = e || event
|
|
562
504
|
e.preventDefault()
|
|
563
505
|
if(this.textMoveStart) {
|
|
564
506
|
this.textX2 = e.offsetX*this.sratio - this.textDownX
|
|
565
507
|
this.textY2 = e.offsetY*this.sratio - this.textDownY
|
|
508
|
+
if(this.points[this.points.length - 1].type === 'sign') {
|
|
509
|
+
this.points[this.points.length - 1].x = this.textX2
|
|
510
|
+
this.points[this.points.length - 1].y = this.textY2
|
|
511
|
+
this.clearRect()
|
|
512
|
+
}
|
|
566
513
|
}
|
|
567
514
|
if(this.state === null) {
|
|
568
515
|
if(this.checkDrawing) this.checkMove(e)
|
|
@@ -576,12 +523,16 @@ export default {
|
|
|
576
523
|
this.drawMove(obj)
|
|
577
524
|
}
|
|
578
525
|
},
|
|
526
|
+
// 鼠标松开
|
|
579
527
|
mouseUp (e) {
|
|
580
528
|
e = e || event
|
|
581
529
|
e.preventDefault()
|
|
582
|
-
if(this.state === null) {
|
|
530
|
+
if(this.state === null || this.state === 'del') {
|
|
583
531
|
this.checkDrawing = false
|
|
584
532
|
this.checkUp(e)
|
|
533
|
+
if(this.state === 'del') {
|
|
534
|
+
this.delChart()
|
|
535
|
+
}
|
|
585
536
|
return
|
|
586
537
|
}
|
|
587
538
|
let obj = {
|
|
@@ -590,6 +541,19 @@ export default {
|
|
|
590
541
|
}
|
|
591
542
|
this.drawEnd(obj)
|
|
592
543
|
this.isDrawing = false
|
|
544
|
+
this.signStart = false
|
|
545
|
+
this.pointsSelect = []
|
|
546
|
+
},
|
|
547
|
+
delChart() {
|
|
548
|
+
if(this.pointsSelect.length === 0) return
|
|
549
|
+
const id = this.pointsSelect[0].id
|
|
550
|
+
for(let i = 0; i < this.points.length; i++) {
|
|
551
|
+
if(this.points[i].id === id) {
|
|
552
|
+
this.points.splice(i,1)
|
|
553
|
+
i--
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
this.clearRect()
|
|
593
557
|
},
|
|
594
558
|
// 绘制
|
|
595
559
|
drawStart (obj) {
|
|
@@ -641,10 +605,57 @@ export default {
|
|
|
641
605
|
const text = this.$refs.textInput.innerText
|
|
642
606
|
this.contenteditable = false
|
|
643
607
|
this.state = null
|
|
644
|
-
if(text === '')
|
|
608
|
+
if(text === '') {
|
|
609
|
+
this.points.pop()
|
|
610
|
+
this.clearRect()
|
|
611
|
+
return
|
|
612
|
+
}
|
|
645
613
|
this.addText(text)
|
|
646
614
|
}
|
|
647
615
|
},
|
|
616
|
+
// 画标记
|
|
617
|
+
sign() {
|
|
618
|
+
const x = this.textX2
|
|
619
|
+
const y = this.textY2
|
|
620
|
+
this.clearRect()
|
|
621
|
+
this.ctx.beginPath();
|
|
622
|
+
this.ctx.arc(x - 30,y + 10,20,0.3,Math.PI-0.3,true);
|
|
623
|
+
this.ctx.fillStyle = 'red';
|
|
624
|
+
this.ctx.fill();
|
|
625
|
+
this.ctx.closePath();
|
|
626
|
+
this.ctx.beginPath();
|
|
627
|
+
this.ctx.moveTo(x - 50,y + 15); // 左上角
|
|
628
|
+
this.ctx.lineTo(x - 10, y + 15); // 右上角
|
|
629
|
+
this.ctx.lineTo(x - 30,y + 40); // 下角
|
|
630
|
+
this.ctx.fillStyle = 'red';
|
|
631
|
+
this.ctx.fill();
|
|
632
|
+
this.ctx.closePath()
|
|
633
|
+
this.ctx.beginPath();
|
|
634
|
+
this.ctx.font = `24px 黑体`;
|
|
635
|
+
this.ctx.fillStyle = '#fff';
|
|
636
|
+
let num = this.signNum() < 10 ? '0' + this.signNum() : this.signNum()
|
|
637
|
+
this.ctx.fillText(num,x - 42,y + 20);
|
|
638
|
+
this.ctx.stroke();
|
|
639
|
+
this.ctx.closePath()
|
|
640
|
+
this.points.push({
|
|
641
|
+
x: this.textX2,
|
|
642
|
+
y: this.textY2,
|
|
643
|
+
index: this.pageIndex,
|
|
644
|
+
type: 'sign',
|
|
645
|
+
scale: this.scales,
|
|
646
|
+
id: this.linkId,
|
|
647
|
+
num: num
|
|
648
|
+
})
|
|
649
|
+
},
|
|
650
|
+
signNum() {
|
|
651
|
+
let num = []
|
|
652
|
+
this.points.forEach(item => {
|
|
653
|
+
if(item.type === 'sign') {
|
|
654
|
+
num.push(Number(item.num))
|
|
655
|
+
}
|
|
656
|
+
})
|
|
657
|
+
return num.length === 0 ? 1 : Math.max(...num) + 1
|
|
658
|
+
},
|
|
648
659
|
// 添加文字
|
|
649
660
|
addText(v) {
|
|
650
661
|
let obj = {}
|
|
@@ -664,6 +675,8 @@ export default {
|
|
|
664
675
|
this.ctx.stroke()
|
|
665
676
|
this.ctx.closePath()
|
|
666
677
|
}
|
|
678
|
+
const poi = this.points[this.points.length - 1]
|
|
679
|
+
if(poi?.type === 'sign') poi.id = this.linkId
|
|
667
680
|
this.points.push({
|
|
668
681
|
x: this.textX2,
|
|
669
682
|
y: this.textY2,
|
|
@@ -913,6 +926,28 @@ export default {
|
|
|
913
926
|
this.ctx.closePath()
|
|
914
927
|
}
|
|
915
928
|
},
|
|
929
|
+
signProcessing(data,v) {
|
|
930
|
+
const x = data.x*this.scales/data.scale + v.x
|
|
931
|
+
const y = data.y*this.scales/data.scale + v.y
|
|
932
|
+
this.ctx.beginPath();
|
|
933
|
+
this.ctx.arc(x - 30,y + 10,20,0.3,Math.PI-0.3,true);
|
|
934
|
+
this.ctx.fillStyle = 'red';
|
|
935
|
+
this.ctx.fill();
|
|
936
|
+
this.ctx.closePath();
|
|
937
|
+
this.ctx.beginPath();
|
|
938
|
+
this.ctx.moveTo(x - 50,y + 15); // 左上角
|
|
939
|
+
this.ctx.lineTo(x - 10, y + 15); // 右上角
|
|
940
|
+
this.ctx.lineTo(x - 30,y + 40); // 下角
|
|
941
|
+
this.ctx.fillStyle = 'red';
|
|
942
|
+
this.ctx.fill();
|
|
943
|
+
this.ctx.closePath()
|
|
944
|
+
this.ctx.beginPath();
|
|
945
|
+
this.ctx.font = `24px 黑体`;
|
|
946
|
+
this.ctx.fillStyle = '#fff';
|
|
947
|
+
this.ctx.fillText(data.num,x - 42,y + 20);
|
|
948
|
+
this.ctx.stroke();
|
|
949
|
+
this.ctx.closePath()
|
|
950
|
+
},
|
|
916
951
|
// 处理数据
|
|
917
952
|
processing() {
|
|
918
953
|
for(let i = 0; i < this.points.length; i++) {
|
|
@@ -935,11 +970,13 @@ export default {
|
|
|
935
970
|
if(this.points[i].type === 'text') {
|
|
936
971
|
this.textProcessing(this.points[i],{x:0,y:0})
|
|
937
972
|
}
|
|
973
|
+
if(this.points[i].type === 'sign') {
|
|
974
|
+
this.signProcessing(this.points[i],{x:0,y:0})
|
|
975
|
+
}
|
|
938
976
|
}
|
|
939
977
|
}
|
|
940
978
|
},
|
|
941
979
|
flipLeft(e, v) {
|
|
942
|
-
console.log(e)
|
|
943
980
|
if (e > this.pdfPages) {
|
|
944
981
|
this.pageIndex = this.pdfPages
|
|
945
982
|
return
|
|
@@ -1073,182 +1110,7 @@ export default {
|
|
|
1073
1110
|
width: 100%;
|
|
1074
1111
|
height: 100%;
|
|
1075
1112
|
}
|
|
1076
|
-
.flip-tool{
|
|
1077
|
-
position: absolute;
|
|
1078
|
-
top: 0;
|
|
1079
|
-
right: 0;
|
|
1080
|
-
z-index: 200;
|
|
1081
|
-
box-shadow: 0 0 10px rgba(0,0,0,.2);
|
|
1082
|
-
border-bottom-left-radius: 10px;
|
|
1083
|
-
border-bottom-right-radius: 10px;
|
|
1084
|
-
transition: all 0.5s;
|
|
1085
|
-
}
|
|
1086
|
-
.tool-text{
|
|
1087
|
-
width: 50px;
|
|
1088
|
-
background-color: #fff;
|
|
1089
|
-
text-align: center;
|
|
1090
|
-
border-bottom-left-radius: 10px;
|
|
1091
|
-
border-bottom-right-radius: 10px;
|
|
1092
|
-
line-height: 25px;
|
|
1093
|
-
cursor: pointer;
|
|
1094
|
-
font-size: 12px;
|
|
1095
|
-
color: rgba(198, 76, 16, 1);
|
|
1096
|
-
}
|
|
1097
|
-
.tool-list{
|
|
1098
|
-
width: 50px;
|
|
1099
|
-
background-color: #fff;
|
|
1100
|
-
border-bottom-left-radius: 10px;
|
|
1101
|
-
border-bottom-right-radius: 10px;
|
|
1102
|
-
cursor: pointer;
|
|
1103
|
-
position: relative;
|
|
1104
|
-
text-align: center;
|
|
1105
|
-
padding: 18px 0;
|
|
1106
|
-
transition: all 0.5s;
|
|
1107
|
-
user-select: none;
|
|
1108
|
-
}
|
|
1109
|
-
.tool-item{
|
|
1110
|
-
padding: 18px 0;
|
|
1111
|
-
position: relative;
|
|
1112
|
-
}
|
|
1113
|
-
.tool-item-img{
|
|
1114
|
-
overflow: hidden;
|
|
1115
|
-
}
|
|
1116
|
-
.tool-item img {
|
|
1117
|
-
width: 30%;
|
|
1118
|
-
display: block;
|
|
1119
|
-
margin: 0 auto;
|
|
1120
|
-
}
|
|
1121
|
-
.tool-item:hover img{
|
|
1122
|
-
filter: drop-shadow(40px 0 rgba(198, 76, 16, 1));
|
|
1123
|
-
margin-left: -22px;
|
|
1124
|
-
}
|
|
1125
|
-
.tool-item-active img {
|
|
1126
|
-
filter: drop-shadow(40px 0 rgba(198, 76, 16, 1));
|
|
1127
|
-
margin-left: -22px;
|
|
1128
|
-
}
|
|
1129
|
-
.set {
|
|
1130
|
-
position: absolute;
|
|
1131
|
-
right: 40px;
|
|
1132
|
-
width: 280px;
|
|
1133
|
-
background-color: #fff;
|
|
1134
|
-
border-radius: 10px;
|
|
1135
|
-
box-shadow: 0 0 5px 3px rgba(0, 0, 0, 0.3);
|
|
1136
|
-
padding: 10px;
|
|
1137
|
-
z-index: 1;
|
|
1138
|
-
}
|
|
1139
|
-
|
|
1140
|
-
.set-list {
|
|
1141
|
-
padding: 5px 0;
|
|
1142
|
-
font-size: 15px;
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
|
-
.set-list:after {
|
|
1146
|
-
content: '';
|
|
1147
|
-
display: block;
|
|
1148
|
-
clear: both;
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
.set-list span {
|
|
1152
|
-
margin-right: 10px;
|
|
1153
|
-
float: left;
|
|
1154
|
-
}
|
|
1155
|
-
|
|
1156
|
-
.set-list em {
|
|
1157
|
-
font-style: normal;
|
|
1158
|
-
font-size: 15px;
|
|
1159
|
-
width: 16px;
|
|
1160
|
-
display: inline-block;
|
|
1161
|
-
margin-right: 10px;
|
|
1162
|
-
text-align: center;
|
|
1163
|
-
}
|
|
1164
1113
|
|
|
1165
|
-
.set-list em:hover {
|
|
1166
|
-
color: rgba(198, 76, 16, 1);
|
|
1167
|
-
}
|
|
1168
|
-
|
|
1169
|
-
.set-list i {
|
|
1170
|
-
display: inline-block;
|
|
1171
|
-
width: 16px;
|
|
1172
|
-
height: 16px;
|
|
1173
|
-
background-color: #000;
|
|
1174
|
-
margin: 2px 10px 0 0;
|
|
1175
|
-
float: left;
|
|
1176
|
-
box-sizing: border-box;
|
|
1177
|
-
}
|
|
1178
|
-
|
|
1179
|
-
.set-list input {
|
|
1180
|
-
width: calc(100% - 60px);
|
|
1181
|
-
height: 22px;
|
|
1182
|
-
border: 1px solid #ccc;
|
|
1183
|
-
border-radius: 5px;
|
|
1184
|
-
padding: 0 10px;
|
|
1185
|
-
box-sizing: border-box;
|
|
1186
|
-
float: left;
|
|
1187
|
-
}
|
|
1188
|
-
.but {
|
|
1189
|
-
margin-left: 5px;
|
|
1190
|
-
font-size: 12px;
|
|
1191
|
-
background-color: transparent;
|
|
1192
|
-
border: 1px solid #000;
|
|
1193
|
-
border-radius: 3px;
|
|
1194
|
-
padding: 2px 5px;
|
|
1195
|
-
cursor: pointer;
|
|
1196
|
-
min-width: 60px;
|
|
1197
|
-
height: 21px;
|
|
1198
|
-
margin-right: 20px;
|
|
1199
|
-
}
|
|
1200
|
-
/*动画部分*/
|
|
1201
|
-
/*I'm the home page动画*/
|
|
1202
|
-
.flip-animation-start {
|
|
1203
|
-
transform-origin: left center;
|
|
1204
|
-
animation: flipBook1 1s forwards;
|
|
1205
|
-
}
|
|
1206
|
-
|
|
1207
|
-
.flip-animation-end {
|
|
1208
|
-
transform-origin: left center;
|
|
1209
|
-
animation: flipBook2 1s forwards;
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1212
|
-
@keyframes flipBook1 {
|
|
1213
|
-
0% {
|
|
1214
|
-
transform: perspective(3000px) rotateY(0deg);
|
|
1215
|
-
opacity: 1;
|
|
1216
|
-
}
|
|
1217
|
-
60% {
|
|
1218
|
-
opacity: 1;
|
|
1219
|
-
}
|
|
1220
|
-
100% {
|
|
1221
|
-
transform: perspective(3000px) rotateY(-160deg);
|
|
1222
|
-
opacity: 0;
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
|
|
1226
|
-
/*关闭书页*/
|
|
1227
|
-
@keyframes flipBook2 {
|
|
1228
|
-
0% {
|
|
1229
|
-
transform: perspective(3000px) rotateY(-160deg);
|
|
1230
|
-
opacity: 0;
|
|
1231
|
-
}
|
|
1232
|
-
30% {
|
|
1233
|
-
opacity: 1;
|
|
1234
|
-
}
|
|
1235
|
-
70% {
|
|
1236
|
-
opacity: 1;
|
|
1237
|
-
}
|
|
1238
|
-
100% {
|
|
1239
|
-
transform: perspective(3000px) rotateY(0deg);
|
|
1240
|
-
opacity: 0;
|
|
1241
|
-
}
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
.wrap-one {
|
|
1245
|
-
position: absolute;
|
|
1246
|
-
top: 0;
|
|
1247
|
-
left: 50%;
|
|
1248
|
-
right: 0;
|
|
1249
|
-
bottom: 0;
|
|
1250
|
-
z-index: 2;
|
|
1251
|
-
}
|
|
1252
1114
|
|
|
1253
1115
|
.wrap-one img {
|
|
1254
1116
|
width: 100%;
|
|
@@ -1294,6 +1156,14 @@ export default {
|
|
|
1294
1156
|
width: 8%;
|
|
1295
1157
|
}
|
|
1296
1158
|
|
|
1159
|
+
.page-but-left img{
|
|
1160
|
+
width: 50%;
|
|
1161
|
+
position: absolute;
|
|
1162
|
+
top: 50%;
|
|
1163
|
+
transform: translateY(-50%);
|
|
1164
|
+
left: 0;
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1297
1167
|
.page-but-right {
|
|
1298
1168
|
position: absolute;
|
|
1299
1169
|
top: 0;
|
|
@@ -1303,6 +1173,14 @@ export default {
|
|
|
1303
1173
|
width: 8%;
|
|
1304
1174
|
}
|
|
1305
1175
|
|
|
1176
|
+
.page-but-right img{
|
|
1177
|
+
width: 50%;
|
|
1178
|
+
position: absolute;
|
|
1179
|
+
top: 50%;
|
|
1180
|
+
transform: translateY(-50%);
|
|
1181
|
+
right: 0;
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1306
1184
|
.load > span {
|
|
1307
1185
|
display: inline-block;
|
|
1308
1186
|
width: 100%;
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
width="16"
|
|
19
19
|
height="16"
|
|
20
20
|
viewBox="0 0 24 24">
|
|
21
|
-
<g :transform="transform"
|
|
22
|
-
:style="style">
|
|
21
|
+
<g :transform="transform">
|
|
23
22
|
<path fill="#c0c4cc"
|
|
24
23
|
d="M15.125 21.1L6.7 12.7q-.15-.15-.213-.325T6.425 12q0-.2.062-.375T6.7 11.3l8.425-8.425q.35-.35.875-.35t.9.375q.375.375.375.875t-.375.875L9.55 12l7.35 7.35q.35.35.35.863t-.375.887q-.375.375-.875.375t-.875-.375Z" />
|
|
25
24
|
</g>
|