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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zydx-plus",
3
- "version": "1.35.629",
3
+ "version": "1.35.631",
4
4
  "description": "Vue.js",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -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
- <input v-if="multipleShow" type="checkbox" :checked="item.checked" @change="checkboxChange($event,index)"
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
- <!-- <b :style="{right: -item.right + 'px', top: item.top + 'px'}" ref="b"> -->
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
- <!-- <b :style="{right: -item.right + 'px', top: item.top + 'px'}" ref="b"> -->
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
- <!-- <svgs v-if="chooseAnswer" :radio="ques(item.type)" :select="ts.checked" :disabled="disabled" :state="stateFun(ts,item)"></svgs>-->
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
- import {html2json, json2html} from '../../utils/html2json.js'
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: { // 题库资源中,查看试题true,创建试题false(新版题库类资源-选择题编辑状态时,试题选项只在编辑框中显示此时isLook: false)
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, oldVal) {
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, oldVal) {
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
- stateFun(ts,item) {
135
- if(this.disabled&&ts.checked&&!item.error&&!this.nothing) return 'correct'
136
- if(this.disabled&&ts.checked&&item.error&&!this.nothing) return 'error'
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
- customButTap(e,d) {
140
- if(e.key === 'option') d.open = !d.open
141
- if(e.single) {
142
- if(!e.active) {
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
- e.active = !e.active
150
- }else {
151
- if(e.butStart) e.active = !e.active
183
+ button.active = !button.active
184
+ } else {
185
+ // 非单选模式:带butStart样式的按钮才能切换
186
+ if (button.butStart) button.active = !button.active
152
187
  }
153
- if(e.active) {
154
- if(e.key === 'disabled') {
188
+
189
+ // disabled键特殊逻辑:切换全局禁用状态
190
+ if (button.active) {
191
+ if (button.key === 'disabled') {
155
192
  this.disabledFun(true)
156
- e.disabled = false
193
+ button.disabled = false
157
194
  }
158
- }else {
195
+ } else {
159
196
  this.disabledFun(false)
160
197
  }
161
- this.$emit('butChange',e,d)
198
+
199
+ this.$emit('butChange', button, item)
162
200
  },
163
- disabledFun(e) {
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 = e
209
+ if (y.key === 'disabled') y.disabled = state
167
210
  })
168
211
  })
169
212
  },
170
- annexHtml(x) {
171
- return json2html({node: "root", child: typeof x === 'string' ? JSON.parse(x) : x})
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
- let copy = this.value.length?this.value:[]
176
- this.value = val.map((item, index) => { // 转换html
177
- item.choice = true
178
- item.right = 0
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
- let judge = item?.judgeAnswer
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
- if( copy.length && this.value.length) {
206
- copy.forEach((item, index) => {
207
- if(this.value[index]){
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
- randomId() { // 生成随机id
230
- const id = Math.random().toString(36).substr(2)
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
- answerChange(e, v, id, check) {
234
- if(this.ques(v.type)) {
235
- v.testKey.map(x => {
236
- x.checked = false
237
- return x
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
- let answerArr = []
242
- const ids = document.getElementsByName(id)
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(v.testKey[index].index)
332
+ answerArr.push(item.testKey[index].index)
246
333
  }
247
334
  })
335
+
248
336
  this.$emit('judgeAnswer', {
249
- ...v,
250
- judgeAnswer: this.ques(v.type) ? answerArr[0] : answerArr
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
- ques(v) {
262
- return v?.indexOf('101') > -1
355
+
356
+ /**
357
+ * 判断是否为单选题
358
+ * @param {string} type - 试题类型编码
359
+ * @returns {boolean} 是否为单选题
360
+ */
361
+ ques(type) {
362
+ return type?.includes('101')
263
363
  },
264
- styleText(v) {
265
- if (!v || v === 'null') return
266
- for (let i = 0; i < v.length; i++) {
267
- if (v[i].content[0]?.length > 10) {
268
- return true
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 theme-text': actives === index, 'tabsliDisableStyle': isDisableTab && !isOtherModule(item) && !item.alive}" @click="listTap(index)"
4
- v-for="(item,index) in list" :key="index" v-html="item[column[0]]"></div>
5
- <!-- <div v-if="addShow" @click="addTap" class="tabs-li tab-add">+</div>-->
6
- </div>
7
- </template>
8
-
9
- <script>
10
-
11
- export default {
12
- name: "zydx-tab",
13
- data() {
14
- return {
15
- actives: 0,
16
- heiStart: true,
17
- id: null
18
- }
19
- },
20
- props: {
21
- active: {
22
- type: String,
23
- default: ''
24
- },
25
- activeId: {
26
- type: String,
27
- default: ''
28
- },
29
- addShow: {
30
- type: Boolean,
31
- default: false
32
- },
33
- list: { // 数据列表
34
- type: Array,
35
- default: () => []
36
- },
37
- column: { // 数据列表
38
- type: Array,
39
- default: () => ['name']
40
- },
41
- isDisableTab: { // 是否禁用Tab
42
- type: Boolean,
43
- default: false
44
- }
45
- },
46
- watch: {
47
- active: {
48
- handler: function (val, oldVal) {
49
- this.listActive(this.list, val)
50
- },
51
- deep: true
52
- },
53
- list: {
54
- handler: function (val, oldVal) {
55
- this.listActive(val, this.active)
56
- },
57
- deep: true
58
- },
59
- },
60
- mounted() {
61
- if (this.list.length === 0) return
62
- if (this.activeId) {
63
- this.listActive(this.list, this.active)
64
- } else {
65
- this.actives = 0
66
- }
67
- this.id = this.randomId()
68
- },
69
- methods: {
70
- isOtherModule (item) { // 笔记、提问求解、生问生答、讲给他人
71
- let bol = ['action_notes', 'action_lesson013', 'action_lesson055', 'action_lesson056'].includes(item.actionId)
72
- return bol
73
- },
74
- randomId() { // 生成随机id
75
- const id = Math.random().toString(36).substr(2)
76
- return id.replace(/[0-9]/g, '')
77
- },
78
- listActive(data, act) {
79
- data.forEach((item, index) => {
80
- if (item[this.activeId] === act) {
81
- this.actives = index
82
- }
83
- })
84
- this.heiStart = data.length > 13
85
- },
86
- listTap(index) {
87
- this.actives = index
88
- this.$emit('confirm', {
89
- data: this.list[index],
90
- index: index
91
- })
92
- },
93
- addTap() {
94
- this.$emit('addTap')
95
- }
96
- }
97
- }
98
- </script>
99
-
100
- <style scoped>
101
- .tabsliDisableStyle {
102
- color: rgba(51,51,51,0.5) !important;
103
- pointer-events: none !important;
104
- /*禁止点击*/
105
- }
106
- .tab-add {
107
- font-size: 18px !important;
108
- line-height: 24px !important;
109
- }
110
-
111
- .cl:after {
112
- content: "";
113
- clear: left;
114
- display: block;
115
- }
116
-
117
- .tabs {
118
- width: 100%;
119
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAADGBAMAAAB/QzDKAAADImlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBRjFGRkEwRjlEMzgxMUU5QUQ0OUNBNThBMDQyM0I3NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRjFGRkExMDlEMzgxMUU5QUQ0OUNBNThBMDQyM0I3NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFGMUZGQTBEOUQzODExRTlBRDQ5Q0E1OEEwNDIzQjc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFGMUZGQTBFOUQzODExRTlBRDQ5Q0E1OEEwNDIzQjc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zkTyIwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAwUExURUdwTOK3l9mr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');
120
- background-size: 100% 100%;
121
- padding: 12px 20px;
122
- box-sizing: border-box;
123
- }
124
-
125
- .tabs-li {
126
- min-width: 80px;
127
- height: 26px;
128
- 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;
129
- background-size: 100%;
130
- cursor: pointer;
131
- margin: 3px 1.3px;
132
- text-align: center;
133
- line-height: 26px;
134
- color: #333;
135
- font-size: 12px;
136
- user-select: none;
137
- display: inline-block;
138
- }
139
-
140
- .tabs-li:hover {
141
- color: #999;
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>
package/src/index.js CHANGED
@@ -87,7 +87,7 @@ function install(app) {
87
87
  }
88
88
 
89
89
  export default {
90
- version: '1.35.629',
90
+ version: '1.35.631',
91
91
  install,
92
92
  Calendar,
93
93
  Message,