zydx-plus 1.32.214 → 1.32.216

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zydx-plus",
3
- "version": "1.32.214",
3
+ "version": "1.32.216",
4
4
  "description": "Vue.js",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -73,6 +73,13 @@
73
73
  </div>
74
74
  </div>
75
75
 
76
+ <div v-if="actionConfig[actionId].isShowVirtualScore" class="task_item_main" style="z-index: 1">
77
+ <div class="task_text_desc">虚仿成绩:</div>
78
+ <div class="width250">
79
+ <zydxSelect :readonly="readonly" :options="laterScoreOptions" v-model:value="virtualScore"></zydxSelect>
80
+ </div>
81
+ </div>
82
+
76
83
  <div class="default_item_main width100" >
77
84
  <slot name="class_slot"></slot>
78
85
  </div>
@@ -130,7 +137,8 @@
130
137
  'endTime',
131
138
  'screenLimit',
132
139
  'funDisable',
133
- 'round'],
140
+ 'round',
141
+ "virtualScore"],
134
142
  actionConfig: {
135
143
  action_lesson051: {
136
144
  actionName: '学习调查',
@@ -143,7 +151,8 @@
143
151
  isShowReviewObj: false,
144
152
  isShowReviewDemand: false,
145
153
  isShowScreenLimit: false,
146
- isShowFunDisable: false
154
+ isShowFunDisable: false,
155
+ isShowVirtualScore: false
147
156
  },
148
157
  action_lesson052: {
149
158
  actionName: '学习检测',
@@ -156,7 +165,8 @@
156
165
  isShowReviewObj: true,
157
166
  isShowReviewDemand: true,
158
167
  isShowScreenLimit: false,
159
- isShowFunDisable: false
168
+ isShowFunDisable: false,
169
+ isShowVirtualScore: false
160
170
  },
161
171
  action_lesson_ideology: {
162
172
  actionName: '课程思政',
@@ -169,7 +179,8 @@
169
179
  isShowReviewObj: true,
170
180
  isShowReviewDemand: true,
171
181
  isShowScreenLimit: false,
172
- isShowFunDisable: false
182
+ isShowFunDisable: false,
183
+ isShowVirtualScore: false
173
184
  },
174
185
  action_notes: {
175
186
  actionName: '课程笔记',
@@ -182,7 +193,8 @@
182
193
  isShowReviewObj: true,
183
194
  isShowReviewDemand: true,
184
195
  isShowScreenLimit: false,
185
- isShowFunDisable: false
196
+ isShowFunDisable: false,
197
+ isShowVirtualScore: false
186
198
  },
187
199
  action_lesson012: {
188
200
  actionName: '教师提问',
@@ -195,7 +207,8 @@
195
207
  isShowReviewObj: true,
196
208
  isShowReviewDemand: true,
197
209
  isShowScreenLimit: false,
198
- isShowFunDisable: false
210
+ isShowFunDisable: false,
211
+ isShowVirtualScore: false
199
212
  },
200
213
  action_lesson013: {
201
214
  actionName: '教师答疑',
@@ -208,7 +221,8 @@
208
221
  isShowReviewObj: true,
209
222
  isShowReviewDemand: true,
210
223
  isShowScreenLimit: false,
211
- isShowFunDisable: false
224
+ isShowFunDisable: false,
225
+ isShowVirtualScore: false
212
226
  },
213
227
  action_lesson055: {
214
228
  actionName: '生问生答',
@@ -221,7 +235,8 @@
221
235
  isShowReviewObj: true,
222
236
  isShowReviewDemand: true,
223
237
  isShowScreenLimit: false,
224
- isShowFunDisable: false
238
+ isShowFunDisable: false,
239
+ isShowVirtualScore: false
225
240
  },
226
241
  action_lesson014: {
227
242
  actionName: '学习讨论',
@@ -234,7 +249,8 @@
234
249
  isShowReviewObj: true,
235
250
  isShowReviewDemand: true,
236
251
  isShowScreenLimit: false,
237
- isShowFunDisable: false
252
+ isShowFunDisable: false,
253
+ isShowVirtualScore: false
238
254
  },
239
255
  action_lesson015: {
240
256
  actionName: '头脑风暴',
@@ -247,7 +263,8 @@
247
263
  isShowReviewObj: true,
248
264
  isShowReviewDemand: true,
249
265
  isShowScreenLimit: false,
250
- isShowFunDisable: false
266
+ isShowFunDisable: false,
267
+ isShowVirtualScore: false
251
268
  },
252
269
  action_lesson020: {
253
270
  actionName: '思维训练',
@@ -260,7 +277,8 @@
260
277
  isShowReviewObj: true,
261
278
  isShowReviewDemand: true,
262
279
  isShowScreenLimit: false,
263
- isShowFunDisable: false
280
+ isShowFunDisable: false,
281
+ isShowVirtualScore: false
264
282
  },
265
283
  action_lesson029: {
266
284
  actionName: '案例分析',
@@ -273,7 +291,8 @@
273
291
  isShowReviewObj: true,
274
292
  isShowReviewDemand: true,
275
293
  isShowScreenLimit: false,
276
- isShowFunDisable: false
294
+ isShowFunDisable: false,
295
+ isShowVirtualScore: false
277
296
  },
278
297
  action_lesson065: {
279
298
  actionName: '虚拟学习',
@@ -286,7 +305,8 @@
286
305
  isShowReviewObj: true,
287
306
  isShowReviewDemand: true,
288
307
  isShowScreenLimit: false,
289
- isShowFunDisable: false
308
+ isShowFunDisable: false,
309
+ isShowVirtualScore: false
290
310
  },
291
311
  action_lesson056: {
292
312
  actionName: '讲给他人',
@@ -299,7 +319,8 @@
299
319
  isShowReviewObj: true,
300
320
  isShowReviewDemand: true,
301
321
  isShowScreenLimit: false,
302
- isShowFunDisable: false
322
+ isShowFunDisable: false,
323
+ isShowVirtualScore: false
303
324
  },
304
325
  action_lesson_homework: {
305
326
  actionName: '课后作业',
@@ -312,7 +333,8 @@
312
333
  isShowReviewObj: true,
313
334
  isShowReviewDemand: true,
314
335
  isShowScreenLimit: false,
315
- isShowFunDisable: false
336
+ isShowFunDisable: false,
337
+ isShowVirtualScore: false
316
338
  },
317
339
  action_lesson_report: {
318
340
  actionName: '聆听报告',
@@ -325,7 +347,8 @@
325
347
  isShowReviewObj: true,
326
348
  isShowReviewDemand: true,
327
349
  isShowScreenLimit: false,
328
- isShowFunDisable: false
350
+ isShowFunDisable: false,
351
+ isShowVirtualScore: false
329
352
  },
330
353
  action_lesson058: {
331
354
  actionName: '课业阅读',
@@ -338,7 +361,8 @@
338
361
  isShowReviewObj: true,
339
362
  isShowReviewDemand: true,
340
363
  isShowScreenLimit: false,
341
- isShowFunDisable: false
364
+ isShowFunDisable: false,
365
+ isShowVirtualScore: false
342
366
  },
343
367
  action_lesson059: {
344
368
  actionName: '课业写作',
@@ -351,7 +375,8 @@
351
375
  isShowReviewObj: true,
352
376
  isShowReviewDemand: true,
353
377
  isShowScreenLimit: false,
354
- isShowFunDisable: false
378
+ isShowFunDisable: false,
379
+ isShowVirtualScore: false
355
380
  },
356
381
  action_lesson017: {
357
382
  actionName: '课业实践',
@@ -364,7 +389,8 @@
364
389
  isShowReviewObj: true,
365
390
  isShowReviewDemand: true,
366
391
  isShowScreenLimit: false,
367
- isShowFunDisable: false
392
+ isShowFunDisable: false,
393
+ isShowVirtualScore: true
368
394
  },
369
395
  action_lesson016: {
370
396
  actionName: '课业创新',
@@ -377,7 +403,8 @@
377
403
  isShowReviewObj: true,
378
404
  isShowReviewDemand: true,
379
405
  isShowScreenLimit: false,
380
- isShowFunDisable: false
406
+ isShowFunDisable: false,
407
+ isShowVirtualScore: true
381
408
  },
382
409
  action_lesson021: {
383
410
  actionName: '考试管理',
@@ -387,20 +414,53 @@
387
414
  isShowFinishState: true,
388
415
  isShowEndTime: true,
389
416
  isShowLaterScore: false,
390
- isShowReviewObj: true,
391
- isShowReviewDemand: true,
417
+ isShowReviewObj: false,
418
+ isShowReviewDemand: false,
392
419
  isShowScreenLimit: true,
393
- isShowFunDisable: true
420
+ isShowFunDisable: true,
421
+ isShowVirtualScore: false
394
422
  },
395
423
  action_project: {
396
424
  actionName: '课业项目',
397
- btn1: '',
398
- btn2: ''
425
+ endTimeBtn1: '任务截止',
426
+ endTimeBtn2: '学习时长',
427
+ laterScoreBtn: '迟交扣分',
428
+ isShowFinishState: true,
429
+ isShowEndTime: true,
430
+ isShowLaterScore: true,
431
+ isShowReviewObj: true,
432
+ isShowReviewDemand: true,
433
+ isShowScreenLimit: false,
434
+ isShowFunDisable: false,
435
+ isShowVirtualScore: false
399
436
  },
400
437
  action_experiment: {
401
438
  actionName: '课业实验',
402
- btn1: '',
403
- btn2: ''
439
+ endTimeBtn1: '任务截止',
440
+ endTimeBtn2: '学习时长',
441
+ laterScoreBtn: '迟交扣分',
442
+ isShowFinishState: true,
443
+ isShowEndTime: true,
444
+ isShowLaterScore: true,
445
+ isShowReviewObj: true,
446
+ isShowReviewDemand: true,
447
+ isShowScreenLimit: false,
448
+ isShowFunDisable: false,
449
+ isShowVirtualScore: false
450
+ },
451
+ action_Interrogation: {
452
+ actionName: '苏氏追问',
453
+ endTimeBtn1: '任务截止',
454
+ endTimeBtn2: '学习时长',
455
+ laterScoreBtn: '迟交扣分',
456
+ isShowFinishState: true,
457
+ isShowEndTime: true,
458
+ isShowLaterScore: true,
459
+ isShowReviewObj: true,
460
+ isShowReviewDemand: true,
461
+ isShowScreenLimit: false,
462
+ isShowFunDisable: false,
463
+ isShowVirtualScore: false
404
464
  }
405
465
  },
406
466
  showExamJoinCalenderTime:{
@@ -510,7 +570,8 @@
510
570
  reviewDemand: '',
511
571
  reviewObj: '',
512
572
  screenLimit: '',
513
- funDisable: ''
573
+ funDisable: '',
574
+ virtualScore: ''
514
575
  }
515
576
  },
516
577
  watch: {
@@ -539,6 +600,11 @@
539
600
  item.funDisable = val
540
601
  });
541
602
  },
603
+ virtualScore: function (val) { //时间改变
604
+ this.taskInfoList.forEach(item => {
605
+ item.virtualScore = val
606
+ });
607
+ },
542
608
  taskList: {
543
609
  handler(newValue) {
544
610
  if (newValue.length === 0) {
@@ -553,7 +619,8 @@
553
619
  endTime: null,
554
620
  screenLimit: '0',
555
621
  funDisable: '0',
556
- round: 1
622
+ round: 1,
623
+ virtualScore: '0'
557
624
  },
558
625
  {
559
626
  reviewObj: '1',
@@ -564,7 +631,8 @@
564
631
  endTime: null,
565
632
  screenLimit: '0',
566
633
  funDisable: '0',
567
- round: 2
634
+ round: 2,
635
+ virtualScore: '0'
568
636
  },
569
637
  {
570
638
  reviewObj: '1',
@@ -575,7 +643,8 @@
575
643
  endTime: null,
576
644
  screenLimit: '0',
577
645
  funDisable: '0',
578
- round: 3
646
+ round: 3,
647
+ virtualScore: '0'
579
648
  }
580
649
  ]
581
650
  } else {
@@ -589,7 +658,8 @@
589
658
  endTime: null,
590
659
  screenLimit: '0',
591
660
  funDisable: '0',
592
- round: 1
661
+ round: 1,
662
+ virtualScore: '0'
593
663
  }
594
664
  ]
595
665
  }
@@ -603,6 +673,7 @@
603
673
  this.reviewObj = this.taskInfoList[0].reviewObj
604
674
  this.screenLimit = this.taskInfoList[0].screenLimit
605
675
  this.funDisable = this.taskInfoList[0].funDisable
676
+ this.virtualScore = this.taskInfoList[0].virtualScore
606
677
  },
607
678
  deep: true,
608
679
  immediate: true
@@ -56,6 +56,12 @@ export default {
56
56
  },
57
57
  mounted() {
58
58
  this.$refs.textarea.innerHTML = this.value
59
+ // 监听粘贴事件
60
+ this.$refs.textarea.addEventListener('paste', (event) => {
61
+ event.preventDefault();
62
+ const text = event.clipboardData.getData('text/plain');
63
+ document.execCommand('insertHTML', false, text);
64
+ })
59
65
  },
60
66
  methods: {
61
67
  checkLength(event, maxLength) {
@@ -77,6 +83,20 @@ export default {
77
83
  </script>
78
84
 
79
85
  <style scoped>
86
+ .aaaa{
87
+ resize: none;
88
+ background: none;
89
+ color: inherit;
90
+ opacity: 1;
91
+ font: inherit;
92
+ line-height: inherit;
93
+ letter-spacing: inherit;
94
+ text-align: inherit;
95
+ text-indent: inherit;
96
+ text-transform: inherit;
97
+ text-shadow: inherit;
98
+ overflow: hidden;
99
+ }
80
100
  .textarea{
81
101
  position: relative;
82
102
  }
@@ -114,13 +114,13 @@
114
114
  margin: 2px 0;
115
115
  position: relative;
116
116
  }
117
- .choice-box input{
117
+ .choice-input{
118
118
  position: absolute;
119
119
  top: 7px;
120
120
  left: 2em;
121
121
  z-index: 1;
122
122
  }
123
- .choice-box span{
123
+ .choice-span{
124
124
  padding-left: 20px;
125
125
  }
126
126
  .paper-textarea{
@@ -178,4 +178,4 @@ input[name='check'] {
178
178
  text-align: justify;
179
179
  line-height: 26px;
180
180
  text-indent: 2em;
181
- }
181
+ }
@@ -4,7 +4,6 @@
4
4
  <div class="paper-choice" :class="{'array-ch': !styleText(item.testKey)}" v-for="(item,index) in value">
5
5
  <div class="subject">
6
6
  <div class="subject-title">
7
- <label>
8
7
  <input v-if="multipleShow" type="checkbox" :checked="item.checked" @change="checkboxChange($event,index)" name="check" />
9
8
  <span>{{ item.order }}.<em v-html="item.title"></em><em v-if="scoreShow">({{ item.score }}分)</em>
10
9
  <i class="subject-but" ref="subject">
@@ -25,7 +24,6 @@
25
24
  </b>
26
25
  </i>
27
26
  </span>
28
- </label>
29
27
  </div>
30
28
  </div>
31
29
  <div v-if="item.alist" class="subject-html">
@@ -37,8 +35,8 @@
37
35
  <div class="choice" v-if="item.testKey">
38
36
  <div class="choice-box" v-for="(ts,ind) in item.testKey">
39
37
  <label>
40
- <input :disabled="disabled" :checked="ts.checked" @change="answerChange($event,item,index)" :type="ques(item.quesType)?'radio':'checkbox'" :name="index" />
41
- <span>{{ ts.index }}. {{ ts.content[0] }}</span>
38
+ <input class="choice-input" :disabled="disabled" :checked="ts.checked" @change="answerChange($event,item,index)" :type="ques(item.quesType)?'radio':'checkbox'" :name="index" />
39
+ <span class="choice-span">{{ ts.index }}. {{ ts.content[0] }}</span>
42
40
  </label>
43
41
  </div>
44
42
  </div>
@@ -55,7 +53,8 @@ export default {
55
53
  return {
56
54
  value: [],
57
55
  multipleShow: this.multiple,
58
- choiceState: true
56
+ choiceState: true,
57
+ replaceShow: this.replace
59
58
  }
60
59
  },
61
60
  props: {
@@ -151,6 +150,12 @@ export default {
151
150
  this.multipleShow = val
152
151
  },
153
152
  deep: true
153
+ },
154
+ replace: {
155
+ handler: function (val, oldVal) {
156
+ this.replaceShow = val
157
+ },
158
+ deep: true
154
159
  }
155
160
  },
156
161
  emits: ['change','modify','del','changeAll','replaceData','choiceData','judgeAnswer'],
@@ -1,3 +1,6 @@
1
+ .word-cont{
2
+ position: relative;
3
+ }
1
4
  .page-cont{
2
5
  width: 100%;
3
6
  margin: 0 auto;
@@ -20,4 +23,85 @@
20
23
  font-size: 14px;
21
24
  transform: translateX(-50%);
22
25
  color: #999;
23
- }
26
+ }
27
+ .answer{
28
+ width: 790px;
29
+ position: relative;
30
+ overflow: hidden;
31
+ padding: 40px;
32
+ }
33
+ .answer-max{
34
+ padding-top: 10px;
35
+ }
36
+ .answer-title{
37
+ font-size: 16px;
38
+ color: #333;
39
+ font-weight: 600;
40
+ text-indent: 2em;
41
+ line-height: 24px;
42
+ }
43
+ .answer-list-title{
44
+ font-size: 14px;
45
+ color: #333;
46
+ line-height: 24px;
47
+ text-indent: 2em;
48
+ }
49
+ .answer-const-title{
50
+ font-size: 14px;
51
+ color: #333;
52
+ line-height: 24px;
53
+ font-weight: 600;
54
+ text-indent: 2em;
55
+ }
56
+ .answer-const-text{
57
+ font-size: 14px;
58
+ color: #333;
59
+ line-height: 24px;
60
+ text-indent: 2em;
61
+ }
62
+ .loading-back{
63
+ position: absolute;
64
+ top: 0;
65
+ left: 0;
66
+ right: 0;
67
+ bottom: 0;
68
+ z-index: 100;
69
+ display: flex;
70
+ align-items: center;
71
+ }
72
+ .loading-cont{
73
+ display: inline-block;
74
+ margin: 0 auto;
75
+ }
76
+ .loadings {
77
+ display: inline-block;
78
+ font-size: 28px;
79
+ font-family: Arial, Helvetica, sans-serif;
80
+ font-weight: bold;
81
+ color: #fff;
82
+ text-shadow: 0 0 2px #ff3d00, 0 0 1px #ff3d00, 0 0 1px #ff3d00;
83
+ letter-spacing: 2px;
84
+ position: relative;
85
+ }
86
+
87
+ .loadings::after {
88
+ content: "Loading";
89
+ position: absolute;
90
+ left: 0;
91
+ top: 0;
92
+ color: #ff3d00;
93
+ width: 0%;
94
+ height: 100%;
95
+ overflow: hidden;
96
+ animation: loading-animation 6s linear infinite;
97
+ }
98
+
99
+ @keyframes loading-animation {
100
+ 0% {
101
+ width: 0;
102
+ }
103
+
104
+ 100% {
105
+ width: 100%;
106
+ }
107
+ }
@@ -3,12 +3,29 @@
3
3
  <div class="word-slot" :style="page?style:{}" id="test">
4
4
  <slot></slot>
5
5
  </div>
6
+ <!-- <div class="answer">-->
7
+ <!-- <div class="answer-max">-->
8
+ <!-- <div class="answer-title">一、单选题《共2题,合计20分)</div>-->
9
+ <!-- <div class="answer-list">-->
10
+ <!-- <div class="answer-list-title">1.我们从分享时机、分享形式、分享动机、分享场量4个来聊聊了社交分享]的那些事儿在常用的杜交分享姐件中,微信 (微信好友和朋友西) 、微、QQ?</div>-->
11
+ <!-- <div class="answer-const">-->
12
+ <!-- <div class="answer-const-title">参考答案:</div>-->
13
+ <!-- <div class="answer-const-text">A.景4个址度来聊聊 社交分享] 的那些事儿在常用的社交分享组件中,微信《微信好友和朋友圈) 、微博、QQ</div>-->
14
+ <!-- </div>-->
15
+ <!-- </div>-->
16
+ <!-- </div>-->
17
+ <!-- </div>-->
6
18
  <div class="word-page" v-if="page">
7
19
  <div class="page-cont" v-for="(item,index) in htmlArr" :key="index" :style="{'z-index': zIndex}">
8
20
  <div class="page-cont-html" v-html="item" :style="{padding: padding?'100px':'100px 0', 'padding-top': index === 0?'10px': '100px'}"></div>
9
21
  <div class="page-cont-num">{{ index + 1 }}/{{ htmlArr.length }}</div>
10
22
  </div>
11
23
  </div>
24
+ <div v-if="loading" class="loading-back">
25
+ <div class="loading-cont">
26
+ <div class="loadings">Loading</div>
27
+ </div>
28
+ </div>
12
29
  </div>
13
30
  </template>
14
31
 
@@ -23,7 +40,8 @@ export default {
23
40
  htmlArr: [],
24
41
  max: 0,
25
42
  pHeight: 0,
26
- html: ''
43
+ html: '',
44
+ loading: false
27
45
  }
28
46
  },
29
47
  props: {
@@ -69,7 +87,8 @@ export default {
69
87
  },
70
88
  children(data) {
71
89
  for (let i = 0; i < data.length; i++) {
72
- let text = data[i].offsetHeight
90
+ let mar = this.marginCal(data[i])
91
+ let text = data[i].offsetHeight + mar
73
92
  if((this.pHeight + text) > this.max) {
74
93
  this.propsClass(data[i].children)
75
94
  }else {
@@ -84,6 +103,15 @@ export default {
84
103
  }
85
104
  }
86
105
  },
106
+ marginCal(data) {
107
+ const mar = window.getComputedStyle(data, null).margin
108
+ const arr = mar.split(' ')
109
+ if(arr.length >= 3) {
110
+ return parseInt(arr[0]) + parseInt(arr[2])
111
+ }else {
112
+ return parseInt(arr[0])*2
113
+ }
114
+ },
87
115
  propsClass(data) {
88
116
  for (let i = 0; i < data.length; i++) {
89
117
  let text = data[i].offsetHeight
@@ -104,6 +132,8 @@ export default {
104
132
  }
105
133
  },
106
134
  exportToWord() {
135
+ let that = this
136
+ that.loading = true
107
137
  const wrap = document.getElementById('test')
108
138
  const config = {
109
139
  addStyle: true, // 是否导出样式,默认为true,此操作会将所有样式转换成行内样式导出
@@ -111,6 +141,7 @@ export default {
111
141
  // toImg:['.need-to-img','.bg-danger'], // 页面哪些部分需要转化成图片,例如echart图表之类
112
142
  success() {
113
143
  console.log('导出成功')
144
+ that.loading = false
114
145
  } // 完成之后回调,一般页面篇幅比较大,时间比较长
115
146
  }
116
147
  exportWord(wrap, config)
@@ -119,4 +150,4 @@ export default {
119
150
  }
120
151
  </script>
121
152
 
122
- <style scoped src="./word.css"></style>
153
+ <style scoped src="./word.css"></style>
package/src/index.js CHANGED
@@ -79,7 +79,7 @@ function install(app) {
79
79
  }
80
80
 
81
81
  export default {
82
- version: '1.32.214',
82
+ version: '1.32.216',
83
83
  install,
84
84
  Calendar,
85
85
  Message,