zydx-plus 1.20.123 → 1.22.124
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 +2 -1
- package/src/components/biz_header/src/button_name.js +30 -9
- package/src/components/biz_taskInfo/src/bizTaskInfo.vue +60 -22
- package/src/components/choice/index.js +6 -0
- package/src/components/choice/src/choice.vue +148 -0
- package/src/components/editor2/src/editor.vue +6 -0
- package/src/components/input/src/input.vue +1 -0
- package/src/components/preface/index.js +6 -0
- package/src/components/preface/src/preface.vue +114 -0
- package/src/components/select/src/onClickOutSide.vue +48 -0
- package/src/components/select/src/select.vue +52 -39
- package/src/index.js +9 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zydx-plus",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.124",
|
|
4
4
|
"description": "Vue.js",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"@tiptap/extension-image": "^2.0.3",
|
|
32
32
|
"@tiptap/starter-kit": "^2.0.3",
|
|
33
33
|
"@tiptap/vue-3": "^2.0.3",
|
|
34
|
+
"@tiptap/extension-text-align": "^2.0.3",
|
|
34
35
|
"@vue-office/docx": "^1.1.3",
|
|
35
36
|
"@vue-office/excel": "^1.1.3"
|
|
36
37
|
},
|
|
@@ -1858,7 +1858,7 @@ let buttonNames = {
|
|
|
1858
1858
|
headLevel: {
|
|
1859
1859
|
default: "demand",
|
|
1860
1860
|
demand: '思政要求',
|
|
1861
|
-
resourceIndex: '
|
|
1861
|
+
resourceIndex: '思政主题',
|
|
1862
1862
|
review: '思政点评',
|
|
1863
1863
|
analyse: '思政分析',
|
|
1864
1864
|
countermeasure: '教学对策'
|
|
@@ -2006,18 +2006,18 @@ let buttonNames = {
|
|
|
2006
2006
|
headLevel: {
|
|
2007
2007
|
default: "demand",
|
|
2008
2008
|
demand: '训练要求',
|
|
2009
|
-
resourceIndex: '
|
|
2009
|
+
resourceIndex: '训练题目',
|
|
2010
2010
|
analyse: '训练分析',
|
|
2011
2011
|
countermeasure: '教学对策'
|
|
2012
2012
|
},
|
|
2013
2013
|
otherLevel: {
|
|
2014
2014
|
default: "singletonClass",
|
|
2015
|
-
singletonClass: this.getCurrentPrefix(item) + '
|
|
2016
|
-
allClass: this.getPrefix(item) + '
|
|
2015
|
+
singletonClass: this.getCurrentPrefix(item) + '题目',
|
|
2016
|
+
allClass: this.getPrefix(item) + '题目'
|
|
2017
2017
|
},
|
|
2018
2018
|
lowLevel: {
|
|
2019
2019
|
default: "singletonClass",
|
|
2020
|
-
singletonClass: this.getCurrentPrefix(item) + '
|
|
2020
|
+
singletonClass: this.getCurrentPrefix(item) + '题目'
|
|
2021
2021
|
}
|
|
2022
2022
|
}
|
|
2023
2023
|
}
|
|
@@ -2091,19 +2091,19 @@ let buttonNames = {
|
|
|
2091
2091
|
headLevel: {
|
|
2092
2092
|
default: "demand",
|
|
2093
2093
|
demand: '作业要求',
|
|
2094
|
-
resourceIndex: '
|
|
2094
|
+
resourceIndex: '作业题目',
|
|
2095
2095
|
review: '作业点评',
|
|
2096
2096
|
analyse: '作业分析',
|
|
2097
2097
|
countermeasure: '教学对策'
|
|
2098
2098
|
},
|
|
2099
2099
|
otherLevel: {
|
|
2100
2100
|
default: "singletonClass",
|
|
2101
|
-
singletonClass: this.getCurrentPrefix(item) + '
|
|
2102
|
-
allClass: this.getPrefix(item) + '
|
|
2101
|
+
singletonClass: this.getCurrentPrefix(item) + '题目',
|
|
2102
|
+
allClass: this.getPrefix(item) + '题目'
|
|
2103
2103
|
},
|
|
2104
2104
|
lowLevel: {
|
|
2105
2105
|
default: "singletonClass",
|
|
2106
|
-
singletonClass: this.getCurrentPrefix(item) + '
|
|
2106
|
+
singletonClass: this.getCurrentPrefix(item) + '题目'
|
|
2107
2107
|
}
|
|
2108
2108
|
}
|
|
2109
2109
|
}
|
|
@@ -2404,6 +2404,27 @@ let buttonNames = {
|
|
|
2404
2404
|
}
|
|
2405
2405
|
}
|
|
2406
2406
|
},
|
|
2407
|
+
resource_lesson_rhyme: {
|
|
2408
|
+
actionName: '课程歌诀',
|
|
2409
|
+
buttonList: {
|
|
2410
|
+
0: {
|
|
2411
|
+
headLevel: {
|
|
2412
|
+
default: "btnIndex1",
|
|
2413
|
+
btnIndex1: this.getCurrentPrefix(item) + '歌诀',
|
|
2414
|
+
btnIndex2: this.getPrefix(item) + '歌诀'
|
|
2415
|
+
},
|
|
2416
|
+
otherLevel: {
|
|
2417
|
+
default: "btnIndex1",
|
|
2418
|
+
btnIndex1: this.getCurrentPrefix(item) + '歌诀',
|
|
2419
|
+
btnIndex2: this.getPrefix(item) + '歌诀'
|
|
2420
|
+
},
|
|
2421
|
+
lowLevel: {
|
|
2422
|
+
default: "btnIndex1",
|
|
2423
|
+
btnIndex1: this.getCurrentPrefix(item) + '歌诀',
|
|
2424
|
+
}
|
|
2425
|
+
}
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2407
2428
|
}[this.actionId];
|
|
2408
2429
|
},
|
|
2409
2430
|
// 获取前缀内容
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div v-if="actionConfig[actionId].isShowFinishState" class="task_item_main width100" :class="isWidth50 ? 'width50': 'width100'" style="z-index: 110">
|
|
5
5
|
<div class="task_text_desc">动作性质:</div>
|
|
6
6
|
<div class="width250">
|
|
7
|
-
<zydxSelect :options="finishStateOptions" v-model:value="finishState"></zydxSelect>
|
|
7
|
+
<zydxSelect :readonly="readonly" :options="finishStateOptions" v-model:value="finishState"></zydxSelect>
|
|
8
8
|
</div>
|
|
9
9
|
</div>
|
|
10
10
|
<template v-if="actionConfig[actionId].isShowEndTime">
|
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
<div class="task_text_desc"><span v-if="actionId === 'action_lesson015'">{{getUppercase(index)}}轮</span>{{actionConfig[actionId].endTimeBtn2}}:</div>
|
|
14
14
|
<div class="width250">
|
|
15
15
|
<zydx-input v-model:value="info.examJoinTime"
|
|
16
|
+
:readonly="readonly"
|
|
16
17
|
:placeholder="'不限制'"
|
|
18
|
+
:border="!readonly"
|
|
17
19
|
:type="'number'">
|
|
18
20
|
<template #suffix>
|
|
19
|
-
<span>分钟</span>
|
|
21
|
+
<span v-if="!readonly">分钟</span>
|
|
20
22
|
</template>
|
|
21
23
|
</zydx-input>
|
|
22
24
|
</div>
|
|
@@ -24,12 +26,13 @@
|
|
|
24
26
|
<div v-else class="task_item_main" :class="getZindex(index)">
|
|
25
27
|
<div class="task_text_desc"><span v-if="actionId === 'action_lesson015'">{{getUppercase(index)}}轮</span>{{actionConfig[actionId].endTimeBtn1}}:</div>
|
|
26
28
|
<div class="width250" style=" position: relative">
|
|
27
|
-
<zydx-input
|
|
29
|
+
<zydx-input :value="dateFormat(info.endTime)"
|
|
28
30
|
:placeholder="'不限制'"
|
|
29
|
-
:readonly="
|
|
31
|
+
:readonly="readonly"
|
|
32
|
+
:border="!readonly"
|
|
30
33
|
:type="'input'">
|
|
31
34
|
<template #suffix>
|
|
32
|
-
<span><img @click="showExamJoinCalenderTime[index] = !showExamJoinCalenderTime[index]" src="data:image/png;base64,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"/></span>
|
|
35
|
+
<span><img v-if="!readonly" @click="this.showExamJoinCalenderTime[index] = !this.showExamJoinCalenderTime[index]" src="data:image/png;base64,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"/></span>
|
|
33
36
|
</template>
|
|
34
37
|
</zydx-input>
|
|
35
38
|
<div style="position: absolute; right: 0px; top: 15px;">
|
|
@@ -40,7 +43,7 @@
|
|
|
40
43
|
<div v-if="actionConfig[actionId].isShowLaterScore" class="task_item_main" :class="getZindex(index)">
|
|
41
44
|
<div class="task_text_desc">迟交扣分:</div>
|
|
42
45
|
<div class="width250">
|
|
43
|
-
<zydxSelect :options="laterScoreOptions" v-model:value="info.laterScore"></zydxSelect>
|
|
46
|
+
<zydxSelect :readonly="readonly" :options="laterScoreOptions" v-model:value="info.laterScore"></zydxSelect>
|
|
44
47
|
</div>
|
|
45
48
|
</div>
|
|
46
49
|
</template>
|
|
@@ -48,25 +51,25 @@
|
|
|
48
51
|
<div v-if="actionConfig[actionId].isShowScreenLimit" class="task_item_main" style="z-index: 2">
|
|
49
52
|
<div class="task_text_desc">切屏限制:</div>
|
|
50
53
|
<div class="width250">
|
|
51
|
-
<zydxSelect :options="screenLimitOptions" v-model:value="screenLimit"></zydxSelect>
|
|
54
|
+
<zydxSelect :readonly="readonly" :options="screenLimitOptions" v-model:value="screenLimit"></zydxSelect>
|
|
52
55
|
</div>
|
|
53
56
|
</div>
|
|
54
57
|
<div v-if="actionConfig[actionId].isShowFunDisable" class="task_item_main" style="z-index: 2">
|
|
55
58
|
<div class="task_text_desc">复制限制:</div>
|
|
56
59
|
<div class="width250">
|
|
57
|
-
<zydxSelect :options="funDisableOptions" v-model:value="funDisable"></zydxSelect>
|
|
60
|
+
<zydxSelect :readonly="readonly" :options="funDisableOptions" v-model:value="funDisable"></zydxSelect>
|
|
58
61
|
</div>
|
|
59
62
|
</div>
|
|
60
63
|
<div v-if="actionConfig[actionId].isShowReviewObj" class="task_item_main" style="z-index: 1">
|
|
61
64
|
<div class="task_text_desc">评价主体:</div>
|
|
62
65
|
<div class="width250">
|
|
63
|
-
<zydxSelect :options="reviewObjOptions" v-model:value="reviewObj"></zydxSelect>
|
|
66
|
+
<zydxSelect :readonly="readonly" :options="reviewObjOptions" v-model:value="reviewObj"></zydxSelect>
|
|
64
67
|
</div>
|
|
65
68
|
</div>
|
|
66
69
|
<div v-if="actionConfig[actionId].isShowReviewDemand" class="task_item_main" style="z-index: 1">
|
|
67
70
|
<div class="task_text_desc">评价要求:</div>
|
|
68
71
|
<div class="width250">
|
|
69
|
-
<zydxSelect :options="reviewDemandOptions" v-model:value="reviewDemand"></zydxSelect>
|
|
72
|
+
<zydxSelect :readonly="readonly" :options="reviewDemandOptions" v-model:value="reviewDemand"></zydxSelect>
|
|
70
73
|
</div>
|
|
71
74
|
</div>
|
|
72
75
|
|
|
@@ -92,12 +95,16 @@
|
|
|
92
95
|
props: {
|
|
93
96
|
actionId: {
|
|
94
97
|
type: String,
|
|
95
|
-
default: "
|
|
98
|
+
default: ""
|
|
96
99
|
},
|
|
97
100
|
isTimeModel: {
|
|
98
101
|
type: Boolean,
|
|
99
102
|
default: false
|
|
100
103
|
},
|
|
104
|
+
readonly: {
|
|
105
|
+
type: Boolean,
|
|
106
|
+
required: true
|
|
107
|
+
},
|
|
101
108
|
taskList: {
|
|
102
109
|
type: Array,
|
|
103
110
|
default: () => []
|
|
@@ -531,9 +538,9 @@
|
|
|
531
538
|
reviewObj: '1',
|
|
532
539
|
reviewDemand: "1",
|
|
533
540
|
finishState: "0",
|
|
534
|
-
laterScore: '
|
|
535
|
-
examJoinTime: '
|
|
536
|
-
endTime:
|
|
541
|
+
laterScore: '0',
|
|
542
|
+
examJoinTime: '',
|
|
543
|
+
endTime: null,
|
|
537
544
|
screenLimit: '0',
|
|
538
545
|
funDisable: '0',
|
|
539
546
|
round: 1
|
|
@@ -543,8 +550,8 @@
|
|
|
543
550
|
reviewDemand: "1",
|
|
544
551
|
finishState: "0",
|
|
545
552
|
laterScore: '0',
|
|
546
|
-
examJoinTime: '
|
|
547
|
-
endTime:
|
|
553
|
+
examJoinTime: '',
|
|
554
|
+
endTime: null,
|
|
548
555
|
screenLimit: '0',
|
|
549
556
|
funDisable: '0',
|
|
550
557
|
round: 2
|
|
@@ -554,8 +561,8 @@
|
|
|
554
561
|
reviewDemand: "1",
|
|
555
562
|
finishState: "0",
|
|
556
563
|
laterScore: '0',
|
|
557
|
-
examJoinTime: '
|
|
558
|
-
endTime:
|
|
564
|
+
examJoinTime: '',
|
|
565
|
+
endTime: null,
|
|
559
566
|
screenLimit: '0',
|
|
560
567
|
funDisable: '0',
|
|
561
568
|
round: 3
|
|
@@ -568,8 +575,8 @@
|
|
|
568
575
|
reviewDemand: "1",
|
|
569
576
|
finishState: "0",
|
|
570
577
|
laterScore: '0',
|
|
571
|
-
examJoinTime: '
|
|
572
|
-
endTime:
|
|
578
|
+
examJoinTime: '',
|
|
579
|
+
endTime: null,
|
|
573
580
|
screenLimit: '0',
|
|
574
581
|
funDisable: '0',
|
|
575
582
|
round: 1
|
|
@@ -606,7 +613,7 @@
|
|
|
606
613
|
},
|
|
607
614
|
examJoinConfirm (param, index) {
|
|
608
615
|
this.showExamJoinCalenderTime[index] = !this.showExamJoinCalenderTime[index]
|
|
609
|
-
this.taskInfoList[index].endTime = param.start + param.date
|
|
616
|
+
this.taskInfoList[index].endTime = new Date(param.start + ' '+ param.date)
|
|
610
617
|
},
|
|
611
618
|
getUppercase (index) {
|
|
612
619
|
if (index === 0) {
|
|
@@ -617,9 +624,40 @@
|
|
|
617
624
|
return "三"
|
|
618
625
|
}
|
|
619
626
|
},
|
|
620
|
-
// 排序方法
|
|
621
627
|
confirm () {
|
|
628
|
+
this.taskInfoList.forEach(item => {
|
|
629
|
+
Object.keys(item).forEach(key=>{
|
|
630
|
+
if(this.isEmpty(item[key])) {
|
|
631
|
+
delete item[key];
|
|
632
|
+
}
|
|
633
|
+
})
|
|
634
|
+
})
|
|
622
635
|
return this.taskInfoList;
|
|
636
|
+
},
|
|
637
|
+
dateFormat (date) {
|
|
638
|
+
if (date != null) {
|
|
639
|
+
var y = date.getFullYear();
|
|
640
|
+
var m = date.getMonth() + 1;
|
|
641
|
+
m = m < 10 ? ('0' + m) : m;
|
|
642
|
+
var d = date.getDate();
|
|
643
|
+
d = d < 10 ? ('0' + d) : d;
|
|
644
|
+
var h = date.getHours();
|
|
645
|
+
h = h < 10 ? ('0' + h) : h;
|
|
646
|
+
var minute = date.getMinutes();
|
|
647
|
+
minute = minute < 10 ? ('0' + minute) : minute;
|
|
648
|
+
var second = date.getSeconds();
|
|
649
|
+
second = second < 10 ? ('0' + second) : second;
|
|
650
|
+
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
|
|
651
|
+
} else {
|
|
652
|
+
return null;
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
isEmpty(obj) {
|
|
656
|
+
if (typeof obj === 'undefined' || obj === null || obj === '') {
|
|
657
|
+
return true;
|
|
658
|
+
} else {
|
|
659
|
+
return false;
|
|
660
|
+
}
|
|
623
661
|
}
|
|
624
662
|
}
|
|
625
663
|
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="choice">
|
|
3
|
+
<div class="choice-title">
|
|
4
|
+
<div class="choice-title-left">
|
|
5
|
+
<span><i>*</i>试题选项:</span>
|
|
6
|
+
<em>(每道多选题至少有两个正确项, 所有选项需给出至少一个答案)</em>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="choice-title-right">
|
|
9
|
+
<button class="but" @click="add('correct')">增正确项</button>
|
|
10
|
+
<button class="but" @click="add('interfere')">增干扰项</button>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="choice-list" v-for="(item,index) in list">
|
|
14
|
+
<div class="list-title" :class="{'lv-color': item.type === 'correct','red-color': item.type === 'interfere'}">
|
|
15
|
+
<span>{{ item.letter }} . {{ item.title }}</span>
|
|
16
|
+
<button class="but" @click="alternative(index)">增加备选</button>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="list-cont">
|
|
19
|
+
<div class="list-cont-li" v-for="(it,ins) in item.list">
|
|
20
|
+
<span>{{ ins + 1 }}.</span>
|
|
21
|
+
<div class="list-cont-input">
|
|
22
|
+
<input type="text" v-model="it.value" placeholder="请输入选项..." />
|
|
23
|
+
<img @click="del(index,ins)" v-if="ins !== 0" src="data:image/png;base64,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" alt="" />
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</template>
|
|
30
|
+
|
|
31
|
+
<script>
|
|
32
|
+
export default {
|
|
33
|
+
name: "zydx-choice",
|
|
34
|
+
data() {
|
|
35
|
+
return {
|
|
36
|
+
list: [],
|
|
37
|
+
letter: {0:'A',1:'B',2:'C',3:'D',4:'E',5:'F',6:'G',7:'H'},
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
methods: {
|
|
41
|
+
getContent() {
|
|
42
|
+
return this.list
|
|
43
|
+
},
|
|
44
|
+
add(str) {
|
|
45
|
+
const index = this.list.length
|
|
46
|
+
this.list.push({
|
|
47
|
+
type: str,
|
|
48
|
+
letter: this.letter[index],
|
|
49
|
+
title: (str === 'correct')? '正确选项' : '干扰选项',
|
|
50
|
+
list: [{value: ''}]
|
|
51
|
+
})
|
|
52
|
+
},
|
|
53
|
+
alternative(index) {
|
|
54
|
+
this.list[index].list.push({value: ''})
|
|
55
|
+
},
|
|
56
|
+
del(index,ins) {
|
|
57
|
+
this.list[index].list.splice(ins, 1)
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<style scoped>
|
|
64
|
+
.list-cont-input{
|
|
65
|
+
width: 100%;
|
|
66
|
+
height: 30px;
|
|
67
|
+
border: 1px solid #ccc;
|
|
68
|
+
position: relative;
|
|
69
|
+
}
|
|
70
|
+
.list-cont-input input{
|
|
71
|
+
width: 100%;
|
|
72
|
+
height: 100%;
|
|
73
|
+
border: none;
|
|
74
|
+
outline: none;
|
|
75
|
+
padding: 0 30px 0 10px;
|
|
76
|
+
}
|
|
77
|
+
.list-cont-input img{
|
|
78
|
+
width: 18px;
|
|
79
|
+
height: 18px;
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
position: absolute;
|
|
82
|
+
top: 5px;
|
|
83
|
+
right: 10px;
|
|
84
|
+
z-index: 1;
|
|
85
|
+
}
|
|
86
|
+
.list-cont-li{
|
|
87
|
+
padding: 2px 0;
|
|
88
|
+
display: flex;
|
|
89
|
+
}
|
|
90
|
+
.list-cont-li>span{
|
|
91
|
+
font-size: 14px;
|
|
92
|
+
font-weight: 400;
|
|
93
|
+
margin-right: 5px;
|
|
94
|
+
line-height: 30px;
|
|
95
|
+
}
|
|
96
|
+
.list-cont{
|
|
97
|
+
padding: 0 0 8px 30px;
|
|
98
|
+
}
|
|
99
|
+
.lv-color span{
|
|
100
|
+
color: #13BF6C;
|
|
101
|
+
}
|
|
102
|
+
.red-color span{
|
|
103
|
+
color: #FF0000;
|
|
104
|
+
}
|
|
105
|
+
.list-title{
|
|
106
|
+
padding: 2px 0 2px 10px;
|
|
107
|
+
display: flex;
|
|
108
|
+
justify-content: center;
|
|
109
|
+
}
|
|
110
|
+
.list-title span{
|
|
111
|
+
font-size: 14px;
|
|
112
|
+
font-weight: 400;
|
|
113
|
+
flex: 1;
|
|
114
|
+
}
|
|
115
|
+
.choice-title{
|
|
116
|
+
display: flex;
|
|
117
|
+
justify-content: center;
|
|
118
|
+
padding: 2px 0;
|
|
119
|
+
}
|
|
120
|
+
.choice-title-left{
|
|
121
|
+
flex: 1;
|
|
122
|
+
}
|
|
123
|
+
.choice-title-left span{
|
|
124
|
+
font-size: 14px;
|
|
125
|
+
font-weight: 700;
|
|
126
|
+
}
|
|
127
|
+
.choice-title-left span i{
|
|
128
|
+
color: red;
|
|
129
|
+
margin-right: 2px;
|
|
130
|
+
font-style: normal;
|
|
131
|
+
}
|
|
132
|
+
.choice-title-left em{
|
|
133
|
+
font-size: 12px;
|
|
134
|
+
font-style: normal;
|
|
135
|
+
}
|
|
136
|
+
.but{
|
|
137
|
+
margin-left: 5px;
|
|
138
|
+
font-size: 12px;
|
|
139
|
+
background-color: transparent;
|
|
140
|
+
border: 1px solid #000;
|
|
141
|
+
border-radius: 3px;
|
|
142
|
+
padding: 2px 5px;
|
|
143
|
+
cursor: pointer;
|
|
144
|
+
min-width: 60px;
|
|
145
|
+
height: 21px;
|
|
146
|
+
display: inline-block;
|
|
147
|
+
}
|
|
148
|
+
</style>
|
|
@@ -80,6 +80,7 @@ import { html2json, json2html } from 'html2json'
|
|
|
80
80
|
import { Editor, EditorContent } from '@tiptap/vue-3'
|
|
81
81
|
import StarterKit from '@tiptap/starter-kit'
|
|
82
82
|
import Image from '@tiptap/extension-image'
|
|
83
|
+
import TextAlign from '@tiptap/extension-text-align'
|
|
83
84
|
export default {
|
|
84
85
|
name: 'zydx-xiao-editor',
|
|
85
86
|
components: {
|
|
@@ -207,6 +208,9 @@ export default {
|
|
|
207
208
|
editable: this.readOnly,
|
|
208
209
|
extensions: [
|
|
209
210
|
StarterKit,
|
|
211
|
+
TextAlign.configure({
|
|
212
|
+
types: ['heading', 'paragraph'],
|
|
213
|
+
}),
|
|
210
214
|
Image.configure({
|
|
211
215
|
inline: true,
|
|
212
216
|
HTMLAttributes: {
|
|
@@ -369,6 +373,8 @@ export default {
|
|
|
369
373
|
if(v === 'h2') this.editor.chain().focus().toggleHeading({level:2}).run()
|
|
370
374
|
if(v === 'h3') this.editor.chain().focus().toggleHeading({level:3}).run()
|
|
371
375
|
if(v === 'p') this.editor.chain().focus().setParagraph().run()
|
|
376
|
+
if(v === 'bold') this.editor.chain().focus().toggleBold().run()
|
|
377
|
+
if(v === 'center' || v === 'left' || v === 'right') this.editor.chain().focus().setTextAlign(v).run()
|
|
372
378
|
}
|
|
373
379
|
}
|
|
374
380
|
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="preface">
|
|
3
|
+
<div class="preface-left">
|
|
4
|
+
<span>题序设置:</span>
|
|
5
|
+
<div class="preface-input">
|
|
6
|
+
<input type="number" @input="numbers" @keypress="isNumberKey($event)" />
|
|
7
|
+
</div>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="preface-right">
|
|
10
|
+
<span>难易设置:</span>
|
|
11
|
+
<div class="preface-list" v-for="(item,index) in radioList">
|
|
12
|
+
<label>
|
|
13
|
+
<input type="radio" name="difficulty" :value="item.value" @change="radioTao(item.value)" :checked="item.checked" />
|
|
14
|
+
<span>{{ item.label }}</span>
|
|
15
|
+
</label>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<script>
|
|
22
|
+
export default {
|
|
23
|
+
name: "zydx-preface",
|
|
24
|
+
data() {
|
|
25
|
+
return {
|
|
26
|
+
radioList: [
|
|
27
|
+
{value: 1, label: '易',checked: true},
|
|
28
|
+
{value: 2, label: '中',checked: false},
|
|
29
|
+
{value: 3, label: '难',checked: false}
|
|
30
|
+
],
|
|
31
|
+
radioValue: 1,
|
|
32
|
+
inputValue: ''
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
emits: ['change'],
|
|
36
|
+
methods: {
|
|
37
|
+
radioTao(v) {
|
|
38
|
+
this.radioValue = v;
|
|
39
|
+
this.$emit('change', {
|
|
40
|
+
diffLeve: this.radioValue,
|
|
41
|
+
quesNo: this.inputValue
|
|
42
|
+
})
|
|
43
|
+
},
|
|
44
|
+
numbers(v) {
|
|
45
|
+
this.inputValue = v.target.value;
|
|
46
|
+
this.$emit('change', {
|
|
47
|
+
diffLeve: this.radioValue,
|
|
48
|
+
quesNo: this.inputValue
|
|
49
|
+
})
|
|
50
|
+
},
|
|
51
|
+
isNumberKey(event) {
|
|
52
|
+
const charCode = (event.which) ? event.which : event.keyCode;
|
|
53
|
+
if(event.target.value.length > 2) event.preventDefault();
|
|
54
|
+
if (charCode > 31 && (charCode < 48 || charCode > 57)) event.preventDefault();
|
|
55
|
+
if (this.valueState(event.target.value) && String.fromCharCode(charCode) === '0') event.preventDefault();
|
|
56
|
+
},
|
|
57
|
+
valueState(v) {
|
|
58
|
+
return v === '' || v === undefined || v === null;
|
|
59
|
+
},
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
</script>
|
|
63
|
+
|
|
64
|
+
<style scoped>
|
|
65
|
+
.preface{
|
|
66
|
+
display: flex;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
}
|
|
69
|
+
.preface-left{
|
|
70
|
+
flex: 1;
|
|
71
|
+
display: flex;
|
|
72
|
+
}
|
|
73
|
+
.preface-left>span,.preface-right>span{
|
|
74
|
+
font-size: 14px;
|
|
75
|
+
color: #000;
|
|
76
|
+
font-weight: 700;
|
|
77
|
+
line-height: 30px;
|
|
78
|
+
}
|
|
79
|
+
.preface-input{
|
|
80
|
+
width: 40px;
|
|
81
|
+
height: 30px;
|
|
82
|
+
border: 1px solid rgba(204, 204, 204, 1);
|
|
83
|
+
display: inline-block;
|
|
84
|
+
overflow: hidden;
|
|
85
|
+
}
|
|
86
|
+
.preface-input>input{
|
|
87
|
+
width: 50px;
|
|
88
|
+
height: 29px;
|
|
89
|
+
border: none;
|
|
90
|
+
padding-left: 5px;
|
|
91
|
+
}
|
|
92
|
+
.preface-right{
|
|
93
|
+
display: flex;
|
|
94
|
+
line-height: 30px;
|
|
95
|
+
}
|
|
96
|
+
.preface-list>label{
|
|
97
|
+
display: inline-block;
|
|
98
|
+
position: relative;
|
|
99
|
+
}
|
|
100
|
+
.preface-list input{
|
|
101
|
+
width: 16px;
|
|
102
|
+
height: 16px;
|
|
103
|
+
position: absolute;
|
|
104
|
+
top: 7px;
|
|
105
|
+
left: 0;
|
|
106
|
+
z-index: 1;
|
|
107
|
+
}
|
|
108
|
+
.preface-list span{
|
|
109
|
+
font-size: 14px;
|
|
110
|
+
color: #666;
|
|
111
|
+
line-height: 30px;
|
|
112
|
+
padding: 0 10px 0 25px;
|
|
113
|
+
}
|
|
114
|
+
</style>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export default {
|
|
3
|
+
props: {
|
|
4
|
+
target: {
|
|
5
|
+
type: [HTMLElement, String],
|
|
6
|
+
default: null
|
|
7
|
+
},
|
|
8
|
+
handler: {
|
|
9
|
+
type: Function,
|
|
10
|
+
default: () => { }
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
mounted() {
|
|
14
|
+
window.addEventListener("pointerdown", this.listener)
|
|
15
|
+
},
|
|
16
|
+
beforeUnmount() {
|
|
17
|
+
window.removeEventListener("pointerdown", this.listener)
|
|
18
|
+
},
|
|
19
|
+
methods: {
|
|
20
|
+
listener: function (event) {
|
|
21
|
+
const el = this.target
|
|
22
|
+
if (!el || el === event.target || this.eventPath(event).includes(el)) {
|
|
23
|
+
return
|
|
24
|
+
}
|
|
25
|
+
this.handler(event)
|
|
26
|
+
},
|
|
27
|
+
eventPath(event) {
|
|
28
|
+
const path = (event.composedPath && event.composedPath()) || event.path
|
|
29
|
+
|
|
30
|
+
if (path != null)
|
|
31
|
+
return path
|
|
32
|
+
|
|
33
|
+
function getParents(node, memo = []) {
|
|
34
|
+
const parentNode = node.parentNode
|
|
35
|
+
|
|
36
|
+
return parentNode
|
|
37
|
+
? getParents(parentNode, memo.concat([parentNode]))
|
|
38
|
+
: memo
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return [event.target].concat(getParents(event.target))
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
render() {
|
|
45
|
+
return this.$slots.default()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
</script>
|
|
@@ -1,48 +1,57 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
2
|
+
<onClickOutSide :target="dropdown"
|
|
3
|
+
:handler="handler">
|
|
4
|
+
<div class="wrapper">
|
|
5
|
+
<div class="custom-select"
|
|
6
|
+
:class="{ 'readonly': readonly }">
|
|
7
|
+
<input type="text"
|
|
8
|
+
:value="selected"
|
|
9
|
+
:placeholder="placeholder"
|
|
10
|
+
:readonly="true"
|
|
11
|
+
@click="toggleDropDown"
|
|
12
|
+
class="select-css" />
|
|
13
|
+
|
|
14
|
+
<span class="custom-select-icons"
|
|
15
|
+
v-if="!readonly"
|
|
16
|
+
@click="toggleDropDown">
|
|
17
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
18
|
+
width="16"
|
|
19
|
+
height="16"
|
|
20
|
+
viewBox="0 0 24 24">
|
|
21
|
+
<g :transform="transform"
|
|
22
|
+
:style="style">
|
|
23
|
+
<path fill="#c0c4cc"
|
|
24
|
+
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
|
+
</g>
|
|
26
|
+
</svg>
|
|
27
|
+
</span>
|
|
28
|
+
<transition>
|
|
29
|
+
<template v-if="!readonly">
|
|
30
|
+
<template v-if="options.length">
|
|
31
|
+
<ul v-if="isOpen"
|
|
32
|
+
ref="dropdown"
|
|
33
|
+
:class="{ 'custom-select-options': true, 'scroll': maxHeight > 0 }">
|
|
34
|
+
<li v-for="(option, idx) in options"
|
|
35
|
+
:key="idx"
|
|
36
|
+
@click="handleClick(option)">{{ option.label }}</li>
|
|
37
|
+
</ul>
|
|
38
|
+
</template>
|
|
35
39
|
</template>
|
|
36
|
-
</
|
|
37
|
-
</
|
|
40
|
+
</transition>
|
|
41
|
+
</div>
|
|
38
42
|
</div>
|
|
39
|
-
</
|
|
43
|
+
</onClickOutSide>
|
|
40
44
|
</template>
|
|
41
|
-
|
|
45
|
+
<script setup>
|
|
46
|
+
import { ref } from 'vue'
|
|
47
|
+
let dropdown = ref(null)
|
|
48
|
+
</script>
|
|
42
49
|
<script>
|
|
50
|
+
import onClickOutSide from './onClickOutSide.vue'
|
|
43
51
|
import { defineComponent } from 'vue'
|
|
44
52
|
export default defineComponent({
|
|
45
53
|
name: 'zydx-select',
|
|
54
|
+
components: { onClickOutSide },
|
|
46
55
|
props: {
|
|
47
56
|
options: {
|
|
48
57
|
type: Array,
|
|
@@ -88,9 +97,13 @@ export default defineComponent({
|
|
|
88
97
|
this.$emit('select', option)
|
|
89
98
|
this.selected = option.label
|
|
90
99
|
this.isOpen = false
|
|
100
|
+
},
|
|
101
|
+
handler: function () {
|
|
102
|
+
if (this.isOpen) {
|
|
103
|
+
this.isOpen = false
|
|
104
|
+
}
|
|
91
105
|
}
|
|
92
106
|
},
|
|
93
|
-
|
|
94
107
|
computed: {
|
|
95
108
|
transform: function () {
|
|
96
109
|
return this.isOpen
|
|
@@ -155,7 +168,7 @@ export default defineComponent({
|
|
|
155
168
|
}
|
|
156
169
|
|
|
157
170
|
.custom-select.readonly .select-css {
|
|
158
|
-
border:
|
|
171
|
+
border: 1px solid transparent;
|
|
159
172
|
}
|
|
160
173
|
|
|
161
174
|
.select-css {
|
package/src/index.js
CHANGED
|
@@ -25,6 +25,8 @@ import textarea from './components/textarea/index';
|
|
|
25
25
|
import titleBox from './components/titleBox/index';
|
|
26
26
|
import input from './components/input/index';
|
|
27
27
|
import time from './components/time/index';
|
|
28
|
+
import preface from './components/preface/index';
|
|
29
|
+
import choice from './components/choice/index';
|
|
28
30
|
|
|
29
31
|
const components = [
|
|
30
32
|
Calendar,
|
|
@@ -51,7 +53,9 @@ const components = [
|
|
|
51
53
|
textarea,
|
|
52
54
|
titleBox,
|
|
53
55
|
input,
|
|
54
|
-
time
|
|
56
|
+
time,
|
|
57
|
+
preface,
|
|
58
|
+
choice
|
|
55
59
|
];
|
|
56
60
|
|
|
57
61
|
function install(app) {
|
|
@@ -63,7 +67,7 @@ function install(app) {
|
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
export default {
|
|
66
|
-
version: '1.
|
|
70
|
+
version: '1.22.124',
|
|
67
71
|
install,
|
|
68
72
|
Calendar,
|
|
69
73
|
Message,
|
|
@@ -91,6 +95,8 @@ export default {
|
|
|
91
95
|
textarea,
|
|
92
96
|
titleBox,
|
|
93
97
|
input,
|
|
94
|
-
time
|
|
98
|
+
time,
|
|
99
|
+
preface,
|
|
100
|
+
choice
|
|
95
101
|
};
|
|
96
102
|
|