zydx-plus 1.35.629 → 1.35.631
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 +1 -1
- package/src/components/seek/src/word.vue +224 -120
- package/src/components/tab/src/tab.vue +142 -148
- package/src/index.js +1 -1
package/package.json
CHANGED
|
@@ -1,29 +1,34 @@
|
|
|
1
1
|
<template>
|
|
2
|
+
<!-- 试题展示组件:支持单选/多选、材料附件、自定义按钮、答题状态反馈 -->
|
|
2
3
|
<div :class="{paper: borderShow}">
|
|
3
4
|
<div class="parer-cont" ref="parer">
|
|
5
|
+
<!-- 题目迭代 -->
|
|
4
6
|
<div class="paper-choice" :class="{'array-ch': !styleText(item.testKey)}" v-for="(item,index) in value">
|
|
5
7
|
<div class="subject">
|
|
8
|
+
<!-- 题目标题区域:有题号展示题号,否则展示序号 -->
|
|
6
9
|
<div class="subject-title" :class="{'padd': item.top !== 0}" v-if="item.subject">
|
|
7
|
-
|
|
10
|
+
<!-- 多选模式下的勾选框 -->
|
|
11
|
+
<input v-if="multipleShow" type="checkbox" :disabled="multipleDisabled" :checked="item.checked" @change="checkboxChange($event,index)"
|
|
8
12
|
name="check"/>
|
|
13
|
+
<!-- 有题号展示题号 -->
|
|
9
14
|
<span v-if="item.quesNumber" :style="{'font-weight': titleCrude?700:'normal'}">{{ item.quesNumber }}<em
|
|
10
15
|
v-html="item.question"></em><em v-if="scoreShow">({{ item.score }}分)</em>
|
|
16
|
+
<!-- 自定义操作按钮 -->
|
|
11
17
|
<i class="subject-but" ref="subject">
|
|
12
|
-
|
|
13
|
-
<button class="sees-but" :disabled="it.disabled" v-for="(it) in item.customBut" :class="{'buts-actives theme-text': it.active&&it.butStart,'buts-disabled': it.disabled}" @click="customButTap(it,item)">{{ it.active? it.nameActive: it.name }}</button>
|
|
14
|
-
<!-- </b> -->
|
|
18
|
+
<button class="sees-but" :disabled="it.disabled" v-for="(it) in item.customBut" :class="{'buts-actives theme-text': it.active&&it.butStart,'buts-disabled': it.disabled}" @click="customButTap(it,item)">{{ it.active? it.nameActive: it.name }}</button>
|
|
15
19
|
</i>
|
|
16
20
|
</span>
|
|
21
|
+
<!-- 无题号则展示自增序号 -->
|
|
17
22
|
<span v-else :style="{'font-weight': titleCrude?700:'normal'}">{{ item.order ? item.order : index + 1 }}{{ item.order === ' ' ? '' : '.' }}<em
|
|
18
23
|
v-html="item.question"></em><em v-if="scoreShow">({{ item.score }}分)</em>
|
|
24
|
+
<!-- 自定义操作按钮(同上有题号版本) -->
|
|
19
25
|
<i class="subject-but" ref="subject">
|
|
20
|
-
|
|
21
|
-
<button class="sees-but" :disabled="it.disabled" v-for="(it) in item.customBut" :class="{'buts-actives theme-text': it.active&&it.butStart,'buts-disabled': it.disabled}" @click="customButTap(it,item)">{{ it.active? it.nameActive: it.name }}</button>
|
|
22
|
-
<!-- </b> -->
|
|
26
|
+
<button class="sees-but" :disabled="it.disabled" v-for="(it) in item.customBut" :class="{'buts-actives theme-text': it.active&&it.butStart,'buts-disabled': it.disabled}" @click="customButTap(it,item)">{{ it.active? it.nameActive: it.name }}</button>
|
|
23
27
|
</i>
|
|
24
28
|
</span>
|
|
25
29
|
</div>
|
|
26
30
|
</div>
|
|
31
|
+
<!-- 材料附件展示区 -->
|
|
27
32
|
<div v-if="item.alist" class="subject-html" v-show="item.open">
|
|
28
33
|
<div v-for="(it,ind) in item.alist">
|
|
29
34
|
<div v-if="it.annexType === '0'">
|
|
@@ -32,13 +37,14 @@
|
|
|
32
37
|
</div>
|
|
33
38
|
</div>
|
|
34
39
|
</div>
|
|
40
|
+
<!-- 选项展示区:单选/多选 -->
|
|
35
41
|
<div class="choice" v-if="item.testKey" v-show="item.open && isLook">
|
|
36
42
|
<div class="choice-box" v-for="(ts,ind) in item.testKey">
|
|
37
43
|
<label>
|
|
38
44
|
<input class="choice-input" style="display: none;" :disabled="disabled" :checked="ts.checked"
|
|
39
45
|
@change="answerChange($event,item,`${id}${index}`,ts)" :type="ques(item.type)? 'radio': 'checkbox'"
|
|
40
46
|
:name="`${id}${index}`"/>
|
|
41
|
-
<!--
|
|
47
|
+
<!-- 选项图标:false表示始终使用复选框样式 -->
|
|
42
48
|
<svgs v-if="chooseAnswer" :radio="false" :select="ts.checked" :disabled="disabled" :state="stateFun(ts,item)"></svgs>
|
|
43
49
|
<span :class="{'choice-span': chooseAnswer}">{{
|
|
44
50
|
ts.index
|
|
@@ -46,6 +52,7 @@
|
|
|
46
52
|
</label>
|
|
47
53
|
</div>
|
|
48
54
|
</div>
|
|
55
|
+
<!-- 外部自定义内容插槽 -->
|
|
49
56
|
<slot name="content" :row="item"></slot>
|
|
50
57
|
</div>
|
|
51
58
|
</div>
|
|
@@ -53,203 +60,290 @@
|
|
|
53
60
|
</template>
|
|
54
61
|
|
|
55
62
|
<script>
|
|
56
|
-
|
|
63
|
+
/**
|
|
64
|
+
* seek/word.vue - 试题展示组件
|
|
65
|
+
* 功能:展示试题(单选题/多选题)、材料附件、自定义按钮操作、答题状态反馈
|
|
66
|
+
* 适用场景:题库资源中查看/编辑试题
|
|
67
|
+
*/
|
|
68
|
+
import { json2html } from '../../utils/html2json.js'
|
|
57
69
|
import svgs from './icon.vue'
|
|
58
70
|
|
|
59
71
|
export default {
|
|
60
72
|
name: "zydx-seek2",
|
|
61
|
-
components: {svgs},
|
|
73
|
+
components: { svgs },
|
|
74
|
+
|
|
75
|
+
/** 内部状态 */
|
|
62
76
|
data() {
|
|
63
77
|
return {
|
|
64
|
-
value: [],
|
|
65
|
-
multipleShow: false,
|
|
66
|
-
id: null
|
|
78
|
+
value: [], // 处理后的试题数据列表
|
|
79
|
+
multipleShow: false, // 是否显示多选勾选框
|
|
80
|
+
id: null // 组件实例唯一标识,用于name分组
|
|
67
81
|
}
|
|
68
82
|
},
|
|
83
|
+
|
|
84
|
+
/** 外部参数 */
|
|
69
85
|
props: {
|
|
70
86
|
data: {
|
|
71
87
|
type: Array,
|
|
72
|
-
default: []
|
|
88
|
+
default: () => [] // 试题数据源
|
|
73
89
|
},
|
|
74
90
|
disabled: {
|
|
75
91
|
type: Boolean,
|
|
76
|
-
default: false
|
|
92
|
+
default: false // 是否禁用交互
|
|
93
|
+
},
|
|
94
|
+
multipleDisabled: {
|
|
95
|
+
type: Boolean,
|
|
96
|
+
default: false // 多选模式是否禁用交互
|
|
77
97
|
},
|
|
78
98
|
multiple: {
|
|
79
99
|
type: Boolean,
|
|
80
|
-
default: false
|
|
100
|
+
default: false // 是否开启多选模式
|
|
81
101
|
},
|
|
82
102
|
borderShow: {
|
|
83
103
|
type: Boolean,
|
|
84
|
-
default: true
|
|
104
|
+
default: true // 是否显示外边框
|
|
85
105
|
},
|
|
86
106
|
titleText: {
|
|
87
107
|
type: String,
|
|
88
|
-
default: '材料'
|
|
108
|
+
default: '材料' // 材料标题前缀
|
|
89
109
|
},
|
|
90
110
|
chooseAnswer: {
|
|
91
111
|
type: Boolean,
|
|
92
|
-
default: true
|
|
112
|
+
default: true // 是否显示选项图标(对/错标记)
|
|
93
113
|
},
|
|
94
114
|
scoreShow: {
|
|
95
115
|
type: Boolean,
|
|
96
|
-
default: false
|
|
116
|
+
default: false // 是否显示分值
|
|
97
117
|
},
|
|
98
118
|
titleCrude: {
|
|
99
119
|
type: Boolean,
|
|
100
|
-
default: false
|
|
120
|
+
default: false // 标题是否加粗
|
|
101
121
|
},
|
|
102
|
-
isLook: {
|
|
122
|
+
isLook: {
|
|
103
123
|
type: Boolean,
|
|
104
|
-
default: true
|
|
124
|
+
default: true // 查看模式:true=查看试题,false=编辑试题(创建试题时选项仅在编辑框显示)
|
|
105
125
|
}
|
|
106
126
|
},
|
|
127
|
+
|
|
128
|
+
/** 数据监听 */
|
|
107
129
|
watch: {
|
|
108
130
|
data: {
|
|
109
|
-
handler: function (val
|
|
131
|
+
handler: function (val) {
|
|
110
132
|
this.init()
|
|
111
133
|
},
|
|
112
134
|
immediate: true,
|
|
113
135
|
deep: true,
|
|
114
136
|
},
|
|
115
137
|
multiple: {
|
|
116
|
-
handler: function (val
|
|
138
|
+
handler: function (val) {
|
|
117
139
|
this.multipleShow = val
|
|
118
140
|
},
|
|
119
|
-
immediate: true
|
|
120
|
-
deep: true
|
|
121
|
-
},
|
|
122
|
-
replace: {
|
|
123
|
-
handler: function (val, oldVal) {
|
|
124
|
-
this.replaceShow = val
|
|
125
|
-
},
|
|
126
|
-
deep: true
|
|
141
|
+
immediate: true
|
|
127
142
|
}
|
|
128
143
|
},
|
|
144
|
+
|
|
145
|
+
/** 生命周期 */
|
|
129
146
|
mounted() {
|
|
130
147
|
this.id = this.randomId()
|
|
131
148
|
},
|
|
149
|
+
|
|
150
|
+
/** 对外事件 */
|
|
132
151
|
emits: ['change', 'butChange', 'changeAll', 'judgeAnswer'],
|
|
152
|
+
|
|
133
153
|
methods: {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
154
|
+
/**
|
|
155
|
+
* 获取选项的状态样式
|
|
156
|
+
* @param {Object} ts - 选项数据
|
|
157
|
+
* @param {Object} item - 所属试题
|
|
158
|
+
* @returns {string} 'correct' | 'error' | 'default'
|
|
159
|
+
*/
|
|
160
|
+
stateFun(ts, item) {
|
|
161
|
+
if (this.disabled && ts.checked && !item.error) return 'correct'
|
|
162
|
+
if (this.disabled && ts.checked && item.error) return 'error'
|
|
137
163
|
return 'default'
|
|
138
164
|
},
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* 自定义按钮点击处理
|
|
168
|
+
* @param {Object} button - 按钮配置
|
|
169
|
+
* @param {Object} item - 所属试题
|
|
170
|
+
*/
|
|
171
|
+
customButTap(button, item) {
|
|
172
|
+
// option键:切换材料附件的展开/收起
|
|
173
|
+
if (button.key === 'option') item.open = !item.open
|
|
174
|
+
|
|
175
|
+
if (button.single) {
|
|
176
|
+
// 单选模式按钮:取消其他同组单选按钮的选中状态
|
|
177
|
+
if (!button.active) {
|
|
143
178
|
this.value.forEach(x => {
|
|
144
|
-
// 把x.customBut里single是true的active设置成false
|
|
145
179
|
const singleBut = x.customBut.filter(y => y.single)
|
|
146
|
-
if(singleBut) singleBut.forEach(y => y.active = false)
|
|
180
|
+
if (singleBut) singleBut.forEach(y => y.active = false)
|
|
147
181
|
})
|
|
148
182
|
}
|
|
149
|
-
|
|
150
|
-
}else {
|
|
151
|
-
|
|
183
|
+
button.active = !button.active
|
|
184
|
+
} else {
|
|
185
|
+
// 非单选模式:带butStart样式的按钮才能切换
|
|
186
|
+
if (button.butStart) button.active = !button.active
|
|
152
187
|
}
|
|
153
|
-
|
|
154
|
-
|
|
188
|
+
|
|
189
|
+
// disabled键特殊逻辑:切换全局禁用状态
|
|
190
|
+
if (button.active) {
|
|
191
|
+
if (button.key === 'disabled') {
|
|
155
192
|
this.disabledFun(true)
|
|
156
|
-
|
|
193
|
+
button.disabled = false
|
|
157
194
|
}
|
|
158
|
-
}else {
|
|
195
|
+
} else {
|
|
159
196
|
this.disabledFun(false)
|
|
160
197
|
}
|
|
161
|
-
|
|
198
|
+
|
|
199
|
+
this.$emit('butChange', button, item)
|
|
162
200
|
},
|
|
163
|
-
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* 设置所有试题中 disabled 按钮的禁用状态
|
|
204
|
+
* @param {boolean} state - 目标禁用状态
|
|
205
|
+
*/
|
|
206
|
+
disabledFun(state) {
|
|
164
207
|
this.value.forEach(x => {
|
|
165
208
|
x.customBut.forEach(y => {
|
|
166
|
-
if(y.key === 'disabled') y.disabled =
|
|
209
|
+
if (y.key === 'disabled') y.disabled = state
|
|
167
210
|
})
|
|
168
211
|
})
|
|
169
212
|
},
|
|
170
|
-
|
|
171
|
-
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* 将附件内容转换为HTML
|
|
216
|
+
* @param {Object|string} data - 附件JSON数据
|
|
217
|
+
* @returns {string} HTML字符串
|
|
218
|
+
*/
|
|
219
|
+
annexHtml(data) {
|
|
220
|
+
return json2html({ node: "root", child: typeof data === 'string' ? JSON.parse(data) : data })
|
|
221
|
+
},
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* 解析试题的判题答案
|
|
225
|
+
* @param {Object} item - 试题数据
|
|
226
|
+
* @returns {*} 单选返回字符串,多选返回数组
|
|
227
|
+
*/
|
|
228
|
+
resolveJudgeAnswer(item) {
|
|
229
|
+
if (item.stuAnswer) return item.stuAnswer?.answer
|
|
230
|
+
return item?.judgeAnswer
|
|
231
|
+
},
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* 根据判题答案回填选项的选中状态
|
|
235
|
+
* @param {Object} item - 试题数据(含已解析的testKey)
|
|
236
|
+
*/
|
|
237
|
+
markCheckedOptions(item) {
|
|
238
|
+
const judge = this.resolveJudgeAnswer(item)
|
|
239
|
+
const isSingle = this.ques(item.type)
|
|
240
|
+
|
|
241
|
+
item.testKey = item.testKey.map(x => {
|
|
242
|
+
if (isSingle) {
|
|
243
|
+
// 单选题:匹配单个答案
|
|
244
|
+
x.checked = x.index === judge
|
|
245
|
+
} else {
|
|
246
|
+
// 多选题:匹配答案数组中的任一值
|
|
247
|
+
x.checked = Array.isArray(judge) ? judge.includes(x.index) : false
|
|
248
|
+
}
|
|
249
|
+
return x
|
|
250
|
+
})
|
|
172
251
|
},
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* 恢复已缓存试题的打开状态(数据更新时保留用户操作)
|
|
255
|
+
* @param {Array} cachedList - 更新前的value副本
|
|
256
|
+
*/
|
|
257
|
+
restoreOpenState(cachedList) {
|
|
258
|
+
if (!cachedList.length || !this.value.length) return
|
|
259
|
+
|
|
260
|
+
const subjectiveTypes = ['101', '102', '102_1', '102_2']
|
|
261
|
+
|
|
262
|
+
cachedList.forEach((item, index) => {
|
|
263
|
+
if (!this.value[index]) return
|
|
264
|
+
if (item.questionId !== this.value[index].questionId) return
|
|
265
|
+
|
|
266
|
+
this.value[index].open = item.open
|
|
267
|
+
|
|
268
|
+
// 主观题:恢复"试题设置"按钮状态
|
|
269
|
+
if (subjectiveTypes.includes(item.type) && this.isLook) {
|
|
270
|
+
if (this.value[index].customBut) {
|
|
271
|
+
this.value[index].customBut[0].active = item.open
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
})
|
|
275
|
+
},
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* 核心初始化方法:深拷贝data → 解析testKey → 回填答案 → 恢复状态
|
|
279
|
+
*/
|
|
173
280
|
init() {
|
|
174
281
|
const val = JSON.parse(JSON.stringify(this.data))
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
item.top = 0
|
|
282
|
+
const cachedList = this.value.length ? this.value : []
|
|
283
|
+
|
|
284
|
+
this.value = val.map((item) => {
|
|
285
|
+
// 设置默认值
|
|
180
286
|
item.open = item.open !== undefined ? item.open : true
|
|
181
287
|
item.error = item.error !== undefined ? item.error : false
|
|
182
288
|
item.subject = item.subject !== undefined ? item.subject : true
|
|
289
|
+
|
|
290
|
+
// 解析选项并回填答案
|
|
183
291
|
if (item.testKey) {
|
|
184
292
|
item.testKey = typeof item.testKey === 'string' ? JSON.parse(item.testKey) : item.testKey
|
|
185
|
-
|
|
186
|
-
if (item.stuAnswer) judge = item.stuAnswer?.answer
|
|
187
|
-
item.testKey = item.testKey.map(x => {
|
|
188
|
-
if (this.ques(item.type)) { // 判断是否单选
|
|
189
|
-
x.checked = x.index === judge; //答案
|
|
190
|
-
} else {
|
|
191
|
-
for (let i = 0; i < judge?.length; i++) {
|
|
192
|
-
if (x.index === judge[i]) {
|
|
193
|
-
x.checked = true
|
|
194
|
-
break
|
|
195
|
-
} else {
|
|
196
|
-
x.checked = false
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
return x
|
|
201
|
-
})
|
|
293
|
+
this.markCheckedOptions(item)
|
|
202
294
|
}
|
|
295
|
+
|
|
203
296
|
return item
|
|
204
297
|
})
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
if(item.questionId===this.value[index].questionId){
|
|
209
|
-
this.value[index].open = item.open
|
|
210
|
-
if (item.type === '101' || item.type === '102' || item.type === '102_1' || item.type === '102_2') { // 解决主观题点击完成按钮‘试题设置’按钮收起问题
|
|
211
|
-
if (this.isLook) {
|
|
212
|
-
if(this.value[index].customBut) this.value[index].customBut[0].active = item.open
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
})
|
|
218
|
-
}
|
|
219
|
-
this.$nextTick(() => { // 保证所有的数据都渲染完毕
|
|
220
|
-
const w = this.$refs.parer.offsetWidth // 获取父级宽度
|
|
221
|
-
for (let i = 0; i < this.$refs?.subject?.length; i++) {
|
|
222
|
-
this.value[i].right = w - this.$refs.subject[i].offsetLeft
|
|
223
|
-
if (this.$refs.b && this.$refs.b.length > 0) {
|
|
224
|
-
if (this.value[i].right < this.$refs.b[i].offsetWidth) this.value[i].top = 25 // 判断是否换行
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
})
|
|
298
|
+
|
|
299
|
+
// 恢复之前缓存的开合状态
|
|
300
|
+
this.restoreOpenState(cachedList)
|
|
228
301
|
},
|
|
229
|
-
|
|
230
|
-
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* 生成不包含数字的随机ID(用于input的name分组)
|
|
305
|
+
* @returns {string} 纯字母随机ID
|
|
306
|
+
*/
|
|
307
|
+
randomId() {
|
|
308
|
+
const id = Math.random().toString(36).substring(2)
|
|
231
309
|
return id.replace(/[0-9]/g, '')
|
|
232
310
|
},
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* 选项变更回调
|
|
314
|
+
* @param {Event} e - change事件
|
|
315
|
+
* @param {Object} item - 当前试题
|
|
316
|
+
* @param {string} name - input的name标识
|
|
317
|
+
* @param {Object} check - 被操作的选项
|
|
318
|
+
*/
|
|
319
|
+
answerChange(e, item, name, check) {
|
|
320
|
+
// 单选题:先清空所有选项
|
|
321
|
+
if (this.ques(item.type)) {
|
|
322
|
+
item.testKey.forEach(x => { x.checked = false })
|
|
239
323
|
}
|
|
324
|
+
|
|
240
325
|
check.checked = e.target.checked
|
|
241
|
-
|
|
242
|
-
|
|
326
|
+
|
|
327
|
+
// 收集当前选中的答案
|
|
328
|
+
const answerArr = []
|
|
329
|
+
const ids = document.getElementsByName(name)
|
|
243
330
|
ids.forEach((x, index) => {
|
|
244
331
|
if (x.checked) {
|
|
245
|
-
answerArr.push(
|
|
332
|
+
answerArr.push(item.testKey[index].index)
|
|
246
333
|
}
|
|
247
334
|
})
|
|
335
|
+
|
|
248
336
|
this.$emit('judgeAnswer', {
|
|
249
|
-
...
|
|
250
|
-
judgeAnswer: this.ques(
|
|
337
|
+
...item,
|
|
338
|
+
judgeAnswer: this.ques(item.type) ? answerArr[0] : answerArr
|
|
251
339
|
})
|
|
252
340
|
},
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* 多选模式勾选框变更
|
|
344
|
+
* @param {Event} e - change事件
|
|
345
|
+
* @param {number} index - 试题在value中的索引
|
|
346
|
+
*/
|
|
253
347
|
checkboxChange(e, index) {
|
|
254
348
|
this.value[index].checked = e.target.checked
|
|
255
349
|
this.$emit('change', {
|
|
@@ -258,15 +352,25 @@ export default {
|
|
|
258
352
|
})
|
|
259
353
|
this.$emit('changeAll', this.value)
|
|
260
354
|
},
|
|
261
|
-
|
|
262
|
-
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* 判断是否为单选题
|
|
358
|
+
* @param {string} type - 试题类型编码
|
|
359
|
+
* @returns {boolean} 是否为单选题
|
|
360
|
+
*/
|
|
361
|
+
ques(type) {
|
|
362
|
+
return type?.includes('101')
|
|
263
363
|
},
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* 判断选项文本是否超长(超过10字需要改为纵向排列)
|
|
367
|
+
* @param {Array} options - 选项数组
|
|
368
|
+
* @returns {boolean}
|
|
369
|
+
*/
|
|
370
|
+
styleText(options) {
|
|
371
|
+
if (!options || options === 'null') return false
|
|
372
|
+
for (let i = 0; i < options.length; i++) {
|
|
373
|
+
if (options[i].content[0]?.length > 10) return true
|
|
270
374
|
}
|
|
271
375
|
return false
|
|
272
376
|
},
|
|
@@ -1,148 +1,142 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="tabs cl" :ref="`tabs${id}`" :style="{'text-align': heiStart? 'left': 'center'}">
|
|
3
|
-
<div class="tabs-li" :class="{'tab-active
|
|
4
|
-
v-for="(item,index) in list" :key="index" v-html="item[column[0]]"></div>
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (this.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
.tab-active {
|
|
145
|
-
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAeCAYAAACsYQl4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADImlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQ0MwRjM3Q0FDMDAxMUU4OThCMjhFMkM4MzMyOEQ5MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQ0MwRjM3REFDMDAxMUU4OThCMjhFMkM4MzMyOEQ5MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDQzBGMzdBQUMwMDExRTg5OEIyOEUyQzgzMzI4RDkzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZDQzBGMzdCQUMwMDExRTg5OEIyOEUyQzgzMzI4RDkzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwv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") !important;
|
|
146
|
-
/* color: #00ff00 !important; */
|
|
147
|
-
}
|
|
148
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="tabs cl" :ref="`tabs${id}`" :style="{'text-align': heiStart? 'left': 'center'}">
|
|
3
|
+
<div class="tabs-li" :class="{'tab-active': actives === index, 'tabsliDisableStyle': isDisableTab && !isOtherModule(item) && !item.alive}" @click="listTap(item, index)"
|
|
4
|
+
v-for="(item,index) in list" :key="index" v-html="item[column[0]]"></div>
|
|
5
|
+
</div>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
name: "zydx-tab",
|
|
12
|
+
data() {
|
|
13
|
+
return {
|
|
14
|
+
actives: 0,
|
|
15
|
+
heiStart: true,
|
|
16
|
+
id: null
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
props: {
|
|
20
|
+
active: {
|
|
21
|
+
type: String,
|
|
22
|
+
default: ''
|
|
23
|
+
},
|
|
24
|
+
activeId: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: ''
|
|
27
|
+
},
|
|
28
|
+
addShow: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: false
|
|
31
|
+
},
|
|
32
|
+
list: { // 数据列表
|
|
33
|
+
type: Array,
|
|
34
|
+
default: () => []
|
|
35
|
+
},
|
|
36
|
+
column: { // 数据列表
|
|
37
|
+
type: Array,
|
|
38
|
+
default: () => ['name']
|
|
39
|
+
},
|
|
40
|
+
isDisableTab: { // 是否禁用Tab
|
|
41
|
+
type: Boolean,
|
|
42
|
+
default: false
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
watch: {
|
|
46
|
+
active: {
|
|
47
|
+
handler: function (val, oldVal) {
|
|
48
|
+
this.listActive(this.list, val)
|
|
49
|
+
},
|
|
50
|
+
deep: true
|
|
51
|
+
},
|
|
52
|
+
list: {
|
|
53
|
+
handler: function (val, oldVal) {
|
|
54
|
+
this.listActive(val, this.active)
|
|
55
|
+
},
|
|
56
|
+
deep: true
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
mounted() {
|
|
60
|
+
if (this.list.length === 0) return
|
|
61
|
+
if (this.activeId) {
|
|
62
|
+
this.listActive(this.list, this.active)
|
|
63
|
+
} else {
|
|
64
|
+
this.actives = 0
|
|
65
|
+
}
|
|
66
|
+
this.id = this.randomId()
|
|
67
|
+
},
|
|
68
|
+
methods: {
|
|
69
|
+
isOtherModule (item) { // 笔记、提问求解、生问生答、讲给他人
|
|
70
|
+
return ['action_notes', 'action_lesson013', 'action_lesson055', 'action_lesson056'].includes(item.actionId)
|
|
71
|
+
},
|
|
72
|
+
randomId() { // 生成随机id
|
|
73
|
+
const id = Math.random().toString(36).substr(2)
|
|
74
|
+
return id.replace(/[0-9]/g, '')
|
|
75
|
+
},
|
|
76
|
+
listActive(data, act) {
|
|
77
|
+
data.forEach((item, index) => {
|
|
78
|
+
if (item[this.activeId] === act) {
|
|
79
|
+
this.actives = index
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
this.heiStart = data.length > 13
|
|
83
|
+
},
|
|
84
|
+
listTap(item, index) {
|
|
85
|
+
if(!item.impossible) this.actives = index
|
|
86
|
+
this.$emit('confirm', {
|
|
87
|
+
data: this.list[index],
|
|
88
|
+
index: index
|
|
89
|
+
})
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
</script>
|
|
94
|
+
|
|
95
|
+
<style scoped>
|
|
96
|
+
.tabsliDisableStyle {
|
|
97
|
+
color: rgba(51,51,51,0.5) !important;
|
|
98
|
+
pointer-events: none !important;
|
|
99
|
+
/*禁止点击*/
|
|
100
|
+
}
|
|
101
|
+
.tab-add {
|
|
102
|
+
font-size: 18px !important;
|
|
103
|
+
line-height: 24px !important;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.cl:after {
|
|
107
|
+
content: "";
|
|
108
|
+
clear: left;
|
|
109
|
+
display: block;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.tabs {
|
|
113
|
+
width: 100%;
|
|
114
|
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAADGBAMAAAB/QzDKAAADImlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBRjFGRkEwRjlEMzgxMUU5QUQ0OUNBNThBMDQyM0I3NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRjFGRkExMDlEMzgxMUU5QUQ0OUNBNThBMDQyM0I3NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFGMUZGQTBEOUQzODExRTlBRDQ5Q0E1OEEwNDIzQjc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFGMUZGQTBFOUQzODExRTlBRDQ5Q0E1OEEwNDIzQjc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zkTyIwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAwUExURUdwTOK3l9mr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');
|
|
115
|
+
background-size: 100% 100%;
|
|
116
|
+
padding: 12px 20px;
|
|
117
|
+
box-sizing: border-box;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.tabs-li {
|
|
121
|
+
min-width: 80px;
|
|
122
|
+
height: 26px;
|
|
123
|
+
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAeCAYAAACsYQl4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADImlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCQ0NCN0EzMUFDMDAxMUU4ODIwN0NCOTdENjIxODU1RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCQ0NCN0EzMkFDMDAxMUU4ODIwN0NCOTdENjIxODU1RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJDQ0I3QTJGQUMwMDExRTg4MjA3Q0I5N0Q2MjE4NTVEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJDQ0I3QTMwQUMwMDExRTg4MjA3Q0I5N0Q2MjE4NTVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bL/JSwAABHZJREFUaEPtmldLLEEQhWvXnHNOKIpixID4C3wUf6r44ItPIhhAMaCioqKYc85h736lPe5ddndGUZ/6wDjjTHX3zOna0zVV4wsEIWHY39+Xm5sbOT09lfj4eImLi5O3tzfx+Xy6eYXpmj2b3+/33B770DGjtTN9swGvY5j+gdsY0UB7xnt9fZWnpyflqbq6WgoLCz8sPuEQzY6BaDAzMyMnJyeSlJQkbW1tkpCQIC8vL55vxPT10bXu2bgpNvN/eH/G3tjwAIAHMP2ZdqHtsTPHxilAeP+AdvSPTagd50Bov27AFkd8fn6W+fl5bZeamiodHR2SmJio/XNOt6BxYGBgQA2Ki4ulsbFRtra25OzsTLKzs6WyslIJt4iOh4cH2dnZcSaupqZGFhcXVRGurq6kv79f/Hiq8Yjc3Fydofv7ezk/P5e1tTX1bovYmJ2dldXVVeULRYBDnBQ+AR6vHr20tKQ/g8PDQ8nLy9NZuL291QZIR0FBgTawiIyjoyNZWFhQvuARkuHw7u5OSkpKpLW19VOjwfLyss5KcnKyzkxRUZF0dnZ+XLWIhbm5OVWF3d1dVYj6+np12qysLF033leAIOAbcrmAB+fn56tOW3gDakCkVlZWphwiF/AJ+cAh+vr6WjY3N6W2tlaam5ulvb1dRZ4OLGLj+PhY+cNZkQk4JESenp52IiffxMRE4OLiQlJSUlQmMEBCiDTQ6b6+Pif0sYgMoo3BwUHJyMjQQKKhoUFlA/5WVlY0ovMNDQ0FIJjZQJMxPDg40L35GVi4A9lAKgjpysvL1XEB8js+Pi5+CE5LS3NiZQx4uyGetiR7R3p6uoZzdXV1DsmAYzhWTUBHTLBt8bMwb4dKNP9Yon8Hhle7yv0RHI+2+B1Yj/5jKNEmDWnx84BboETzQmJfSn4Hhlf9S5zHZvHzMLw60hHq0VxExC35X0Mkh4VXzvkmJycDl5eX+j7OqzhpPnIdlGJsrsMbcEqT6yARR66DDCjHVFp4O/R3d3drMRGix8bGJDMzU5P9lGMgmNqhRWyQ34Bs+Orq6lIOyU8HnVjTGD09Pe/SAbGk9pgBEiOlpaVSVVWlkYhZNS2ig8oKRKMCJObgkBIhBZSWlha1cTSBxBLFWXLSlLaYEarfpPssYiMnJ0f5A0gFHFI4QUL+C++YAbyZWaDWRZqUOhgZKQtvQCLw6O3tbeWQRB2p08fHR72uRI+MjMjU1JS6P+lRFe+g3lAJ39jYUEOL6IAjdJrcMwsiHEIwnyCMjo6qjRZnh4eHNR8NuegzhGNYUVGhwm4RG4RvFEpQBipUcIkqUN5inevt7X0nmkIirr63t6f1L0jmHF/coD8W7kAmIJvvYJARPjMARHQsiv99bmCAMaQjIeajGibiu/kQfiEM89UIhjZsbnE8/XNvX70/p3AabOc2RiSYZ2JtQ2ZxThZBHDQcEYmmEY3X19d1keQmvku0IYq2XvugjXl4jg2RkRDaPzCT6jYONmbi3caIBtOH2bMYNjU1ORHIJ0T+AbIL39z60gtQAAAAAElFTkSuQmCC') center center;
|
|
124
|
+
background-size: 100%;
|
|
125
|
+
cursor: pointer;
|
|
126
|
+
margin: 3px 1.3px;
|
|
127
|
+
text-align: center;
|
|
128
|
+
line-height: 26px;
|
|
129
|
+
color: #333;
|
|
130
|
+
font-size: 12px;
|
|
131
|
+
user-select: none;
|
|
132
|
+
display: inline-block;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.tabs-li:hover {
|
|
136
|
+
color: #999;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.tab-active {
|
|
140
|
+
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAeCAYAAACsYQl4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADImlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQ0MwRjM3Q0FDMDAxMUU4OThCMjhFMkM4MzMyOEQ5MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQ0MwRjM3REFDMDAxMUU4OThCMjhFMkM4MzMyOEQ5MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDQzBGMzdBQUMwMDExRTg5OEIyOEUyQzgzMzI4RDkzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZDQzBGMzdCQUMwMDExRTg5OEIyOEUyQzgzMzI4RDkzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwv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") !important;
|
|
141
|
+
}
|
|
142
|
+
</style>
|