zydx-plus 1.32.224 → 1.32.226

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.224",
3
+ "version": "1.32.226",
4
4
  "description": "Vue.js",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -647,6 +647,7 @@ let buttonNames = {
647
647
  lowLevel: {
648
648
  default: "setTask",
649
649
  setTask: '布置任务',
650
+ groupStudy: '小组学习',
650
651
  duplicate: '违纪查重',
651
652
  teacherReview: '教师评价',
652
653
  studentReview: '同学互评',
@@ -1333,7 +1334,6 @@ let buttonNames = {
1333
1334
  }
1334
1335
  }
1335
1336
  },
1336
-
1337
1337
  action_lesson012: {
1338
1338
  actionName: '教师提问',
1339
1339
  buttonList: {
@@ -72,14 +72,12 @@
72
72
  <zydxSelect :readonly="readonly" :options="reviewDemandOptions" v-model:value="reviewDemand"></zydxSelect>
73
73
  </div>
74
74
  </div>
75
-
76
75
  <div v-if="actionConfig[actionId].isShowVirtualScore" class="task_item_main" style="z-index: 1">
77
76
  <div class="task_text_desc">虚仿成绩:</div>
78
77
  <div class="width250">
79
- <zydxSelect :readonly="readonly" :options="laterScoreOptions" v-model:value="virtualScore"></zydxSelect>
78
+ <zydxSelect :readonly="readonly" :options="virtualScoreOptions" v-model:value="virtualScore"></zydxSelect>
80
79
  </div>
81
80
  </div>
82
-
83
81
  <div class="default_item_main width100" >
84
82
  <slot name="class_slot"></slot>
85
83
  </div>
@@ -115,6 +113,10 @@
115
113
  taskList: {
116
114
  type: Array,
117
115
  default: () => []
116
+ },
117
+ isNeedReview: {
118
+ type: Boolean,
119
+ default: true
118
120
  }
119
121
  },
120
122
  components: {zydxSelect, zydxInput, zydxCalender},
@@ -162,8 +164,8 @@
162
164
  isShowFinishState: true,
163
165
  isShowEndTime: true,
164
166
  isShowLaterScore: true,
165
- isShowReviewObj: true,
166
- isShowReviewDemand: true,
167
+ isShowReviewObj: this.isNeedReview? true: false,
168
+ isShowReviewDemand: this.isNeedReview? true: false,
167
169
  isShowScreenLimit: false,
168
170
  isShowFunDisable: false,
169
171
  isShowVirtualScore: false
@@ -287,8 +289,8 @@
287
289
  isShowFinishState: true,
288
290
  isShowEndTime: true,
289
291
  isShowLaterScore: true,
290
- isShowReviewObj: true,
291
- isShowReviewDemand: true,
292
+ isShowReviewObj: this.isNeedReview? true: false,
293
+ isShowReviewDemand: this.isNeedReview? true: false,
292
294
  isShowScreenLimit: false,
293
295
  isShowFunDisable: false,
294
296
  isShowVirtualScore: false
@@ -557,6 +559,52 @@
557
559
  label: '100%'
558
560
  }
559
561
  ],
562
+ virtualScoreOptions: [
563
+ {
564
+ value: '0',
565
+ label: '不占比'
566
+ },
567
+ {
568
+ value: '10',
569
+ label: '10%'
570
+ },
571
+ {
572
+ value: '20',
573
+ label: '20%'
574
+ },
575
+ {
576
+ value: '30',
577
+ label: '30%'
578
+ },
579
+ {
580
+ value: '40',
581
+ label: '40%'
582
+ },
583
+ {
584
+ value: '50',
585
+ label: '50%'
586
+ },
587
+ {
588
+ value: '60',
589
+ label: '60%'
590
+ },
591
+ {
592
+ value: '70',
593
+ label: '70%'
594
+ },
595
+ {
596
+ value: '80',
597
+ label: '80%'
598
+ },
599
+ {
600
+ value: '90',
601
+ label: '90%'
602
+ },
603
+ {
604
+ value: '100',
605
+ label: '100%'
606
+ }
607
+ ],
560
608
  screenLimitOptions: [
561
609
  {
562
610
  value: '0',
@@ -721,6 +769,7 @@
721
769
  confirm () {
722
770
  let that = this
723
771
  this.taskInfoList.forEach(item => {
772
+ item.endTime = new Date(item.endTime);
724
773
  Object.keys(item).forEach(key=>{
725
774
  if(!that.keysArr.includes(key) || item[key] == null) {
726
775
  delete item[key];
@@ -2,18 +2,18 @@
2
2
  <div class="mind" :ref="id">
3
3
  <div class="table">
4
4
  <div class="table-left" v-if="!readOnly">
5
- <button :disabled="retShow" @click="ret">返回</button>
6
- <button :disabled="forwardShow" @click="forward">前进</button>
7
5
  <button :disabled="mindShow" @click="addNode">添加节点</button>
8
6
  <button :disabled="mindShow" @click="brotherNode">兄弟节点</button>
9
7
  <button :disabled="mindShow" @click="delNode">删除节点</button>
10
8
  <button :disabled="mindShow" @click="associativeLine">关联线</button>
11
9
  <button :disabled="mindShow" @click="nodeStyle">节点样式</button>
12
10
  <button @click="structure">结构切换</button>
11
+ <button :disabled="retShow" @click="ret">上一步</button>
12
+ <button :disabled="forwardShow" @click="forward">下一步</button>
13
13
  <button v-if="protectShow" @click="preservation">保存</button>
14
+ <button @click="fullTap" v-if="fullShow">全屏</button>
15
+ <button @click="fullDel" v-else>退出</button>
14
16
  </div>
15
- <button @click="fullTap" v-if="fullShow">全屏</button>
16
- <button @click="fullDel" v-else>退出</button>
17
17
  </div>
18
18
  <div :id="id" class="mindMapContainer"></div>
19
19
  <div class="node-style" :ref="id+'e'" :class="{'node-s': trans, 'node-h': !trans}">
@@ -467,8 +467,9 @@ export default {
467
467
  <style scoped>
468
468
 
469
469
  .table-left {
470
- display: inline-block;
471
470
  margin-right: 5px;
471
+ display: flex;
472
+ width: 100%;
472
473
  }
473
474
 
474
475
  .node-s {
@@ -577,12 +578,8 @@ export default {
577
578
  }
578
579
 
579
580
  .table {
580
- position: absolute;
581
- top: 10px;
582
- left: 30px;
583
581
  background-color: #fff;
584
582
  border-radius: 5px;
585
- padding: 10px;
586
583
  box-shadow: rgba(0, 0, 0, 0.06) 0 2px 16px 0;
587
584
  z-index: 10;
588
585
  }
@@ -637,13 +634,13 @@ export default {
637
634
  }
638
635
 
639
636
  .table button {
640
- margin-right: 5px;
641
637
  background-color: #fff;
642
638
  border: 1px solid #ccc;
643
- border-radius: 3px;
644
- padding: 5px 10px;
645
639
  cursor: pointer;
646
- font-size: 12px;
640
+ font-size: 14px;
641
+ height: 30px;
642
+ line-height: 30px;
643
+ flex: 1;
647
644
  }
648
645
 
649
646
  .table button:last-child {
@@ -208,3 +208,33 @@ input[name='check'] {
208
208
  .tab-title{
209
209
  font-weight: 700 !important;
210
210
  }
211
+ .reasoning{
212
+ font-size: 16px;
213
+ font-weight: 700;
214
+ text-indent: 1.7em;
215
+ display: inline-block;
216
+ padding-bottom: 8px;
217
+ }
218
+ .subject-student-edi{
219
+ text-indent: 2em;
220
+ padding: 2px 0;
221
+ }
222
+ .review{
223
+ padding-left: 2em;
224
+ width: calc(100% - 2em);
225
+ }
226
+ .review-title{
227
+ padding: 6px 0 4px 0;
228
+ display: flex;
229
+ justify-content: center;
230
+ }
231
+ .review-title span{
232
+ flex: 1;
233
+ font-size: 16px;
234
+ font-weight: 700;
235
+ }
236
+ .table td>input{
237
+ width: 80px;
238
+ border: 0;
239
+ text-align: center;
240
+ }
@@ -5,7 +5,7 @@
5
5
  <div class="subject">
6
6
  <div class="subject-title">
7
7
  <input v-if="multipleShow" type="checkbox" :checked="item.checked" @change="checkboxChange($event,index)" name="check" />
8
- <span>{{ item.order }}.<em v-html="item.title"></em><em v-if="scoreShow">({{ item.score }}分)</em>
8
+ <span>{{ item.order? item.order: index + 1 }}.<em v-html="item.title"></em><em v-if="scoreShow">({{ item.score }}分)</em>
9
9
  <i class="subject-but" ref="subject">
10
10
  <b :style="{right: -item.right + 'px', top: item.top + 'px'}" v-if="butShow" ref="b">
11
11
  <button class="but" @click="modify(item)">修改</button>
@@ -26,6 +26,10 @@
26
26
  <button class="but" :class="{'buts-actives': item.open}" @click="openOption(index)">{{ item.open?'收起选项':'试题选项'}}</button>
27
27
  <button class="but" :class="{'buts-actives': item.replace}" @click="statistics(index)">{{ item.replace?'收统计表':'统计表'}}</button>
28
28
  </b>
29
+ <b :style="{right: -item.right + 'px', top: item.top + 'px'}" v-if="reasoning" ref="b">
30
+ <button class="but" :class="{'buts-actives': item.reasoning}" @click="openReasoning(index)">{{ item.reasoning?'收起推理':'展开推理'}}</button>
31
+ <button class="but" :class="{'buts-actives': item.review}" @click="review(index)">{{ item.review?'收起批阅':'展开批阅'}}</button>
32
+ </b>
29
33
  </i>
30
34
  </span>
31
35
  </div>
@@ -35,6 +39,10 @@
35
39
  <div class="subject-html-title">{{ titleText }}{{ ind + 1 }}</div>
36
40
  <div class="subject-html-cont" v-html="it.annexContent"></div>
37
41
  </div>
42
+ <div class="subject-student" v-if="item.reasoning&&item.stuAnswer">
43
+ <div class="reasoning">学生推理:</div>
44
+ <div class="subject-student-edi" v-for="(it,ind) in item.stuAnswer.answer" v-html="it"></div>
45
+ </div>
38
46
  </div>
39
47
  <div class="choice" v-if="item.testKey" v-show="item.open">
40
48
  <div class="choice-box" v-for="(ts,ind) in item.testKey">
@@ -44,6 +52,28 @@
44
52
  </label>
45
53
  </div>
46
54
  </div>
55
+ <div class="table review" v-if="item.review&&item.scoreList">
56
+ <div class="review-title">
57
+ <span>训练批阅:</span>
58
+ <button class="but" @click="completeReview(item.scoreList)">完成批阅</button>
59
+ </div>
60
+ <table border="0" cellspacing="0" cellpadding="0">
61
+ <tr>
62
+ <td class="tab-title">序号</td>
63
+ <td class="tab-title">批阅人</td>
64
+ <td class="tab-title">批阅得分</td>
65
+ <td class="tab-title">矫正得分</td>
66
+ <td class="tab-title">合计得分</td>
67
+ </tr>
68
+ <tr v-for="(it,ind) in item.scoreList">
69
+ <td>{{ ind + 1 }}</td>
70
+ <td>{{ it.stuName }}</td>
71
+ <td>{{ it.studentScore }}</td>
72
+ <td><input type="text" v-model="it.correctScore" placeholder="请输入分值" /> </td>
73
+ <td>{{ it.correctTeacher }}</td>
74
+ </tr>
75
+ </table>
76
+ </div>
47
77
  <div class="table" v-if="item.replace&&item.itemList&&collapse&&item.quesType === '102_1'">
48
78
  <table border="0" cellspacing="0" cellpadding="0">
49
79
  <tr>
@@ -157,6 +187,10 @@ export default {
157
187
  chooseAnswer: {
158
188
  type: Boolean,
159
189
  default: true
190
+ },
191
+ reasoning: {
192
+ type: Boolean,
193
+ default: false
160
194
  }
161
195
  },
162
196
  watch: {
@@ -169,6 +203,8 @@ export default {
169
203
  item.top = 0
170
204
  item.open = true
171
205
  item.replace = true
206
+ item.reasoning = true
207
+ item.review = true
172
208
  if(item.alist) {
173
209
  item.alist.map(x => {
174
210
  x.annexContent = json2html({node: "root",child: JSON.parse(x.annexContent)})
@@ -193,6 +229,12 @@ export default {
193
229
  return x
194
230
  })
195
231
  }
232
+ if(item.stuAnswer) {
233
+ item.stuAnswer.answer = item.stuAnswer.answer.map(x => {
234
+ x = json2html(x)
235
+ return x
236
+ })
237
+ }
196
238
  return item
197
239
  })
198
240
  this.$nextTick(() => { // 保证所有的数据都渲染完毕
@@ -220,13 +262,22 @@ export default {
220
262
  deep: true
221
263
  }
222
264
  },
223
- emits: ['change','modify','del','changeAll','replaceData','choiceData','judgeAnswer'],
265
+ emits: ['change','modify','del','changeAll','replaceData','choiceData','judgeAnswer','completeReview'],
224
266
  methods: {
267
+ completeReview(data) {
268
+ this.$emit('completeReview', data)
269
+ },
225
270
  diffLeveNum(v) {
226
271
  if(v === '1') return '简单'
227
272
  if(v === '2') return '中等'
228
273
  if(v === '3') return '困难'
229
274
  },
275
+ openReasoning(i) {
276
+ this.data[i].reasoning = !this.data[i].reasoning
277
+ },
278
+ review(i) {
279
+ this.data[i].review = !this.data[i].review
280
+ },
230
281
  openOption(i) {
231
282
  this.data[i].open = !this.data[i].open
232
283
  },
package/src/index.js CHANGED
@@ -79,7 +79,7 @@ function install(app) {
79
79
  }
80
80
 
81
81
  export default {
82
- version: '1.32.224',
82
+ version: '1.32.226',
83
83
  install,
84
84
  Calendar,
85
85
  Message,