shijiplus-web-plugin 0.1.28 → 0.1.30

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": "shijiplus-web-plugin",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "files": [
5
5
  "src"
6
6
  ],
@@ -0,0 +1,597 @@
1
+ <template>
2
+ <div id="datepicker">
3
+ <Row style="width: 100%">
4
+ <i-col :span="modal == 'all' ? 11 : 24">
5
+ <DatePicker
6
+ ref="beginpickerRef"
7
+ :clearable="clearable"
8
+ :editable="editableDis"
9
+ :placement="mPlacement.begin"
10
+ :disabled="beginDisabled"
11
+ v-model="beginCopy"
12
+ :options="beginDateOptions"
13
+ :time-picker-options="beginTimePickerOptions"
14
+ :format="beginFormat"
15
+ :type="type"
16
+ :steps="timeSteps"
17
+ :transfer="transfer"
18
+ @on-change="beginChange"
19
+ :placeholder="startplaceholder"
20
+ ></DatePicker>
21
+ </i-col>
22
+ <template v-if="modal == 'all'">
23
+ <i-col style="text-align: center" span="2">-</i-col>
24
+ <i-col span="11" id="endpicker">
25
+ <DatePicker
26
+ ref="endpickerRef"
27
+ :clearable="clearable"
28
+ :editable="editableDis"
29
+ :placement="mPlacement.end"
30
+ :disabled="endDisabled"
31
+ v-model="endCopy"
32
+ :options="endDateOptions"
33
+ :time-picker-options="endTimePickerOptions"
34
+ :format="endFormat"
35
+ :type="type"
36
+ :steps="timeSteps"
37
+ :transfer="transfer"
38
+ @on-change="endChange"
39
+ :placeholder="endplaceholder"
40
+ ></DatePicker>
41
+ </i-col>
42
+ </template>
43
+ </Row>
44
+ </div>
45
+ </template>
46
+ <script>
47
+ // Vue.js组件,用于显示起始和结束日期的选择器
48
+ export default {
49
+ name: 'BeginEndDatePicker',
50
+ props: {
51
+ // 控制是否只显示开始时间
52
+ modal: {
53
+ type: String,
54
+ default: 'all'
55
+ },
56
+ format: {
57
+ // 日期格式化方式,可以是字符串或对象
58
+ type: [String, Object],
59
+ default: 'yyyy-MM-dd'
60
+ },
61
+ type: {
62
+ // 选择器类型
63
+ default: 'date'
64
+ },
65
+ transfer: {
66
+ // 是否将弹出框放置于body元素下
67
+ default: false
68
+ },
69
+ startplaceholder: {
70
+ // 开始日期的占位符
71
+ default: '开始时间'
72
+ },
73
+ editableDis: {
74
+ // 是否禁用日期的编辑
75
+ default: false
76
+ },
77
+ endplaceholder: {
78
+ // 结束日期的占位符
79
+ default: '结束时间'
80
+ },
81
+ min: {
82
+ // 允许的最小日期,可以是对象或字符串
83
+ default() {
84
+ return {
85
+ minStart: null
86
+ }
87
+ }
88
+ },
89
+ max: {
90
+ // 允许的最大日期,可以是日期对象或字符串
91
+ type: [Date, Object],
92
+ default() {
93
+ return null
94
+ }
95
+ },
96
+ begin: {
97
+ // 开始日期的值
98
+ default: ''
99
+ },
100
+ end: {
101
+ // 结束日期的值
102
+ default: ''
103
+ },
104
+ disabled: {
105
+ // 是否禁用选择器,可以是布尔值或对象
106
+ type: [Boolean, Object]
107
+ },
108
+ clearable: {
109
+ // 是否可清除日期
110
+ default: true
111
+ },
112
+ // 时间步长
113
+ timeSteps: {
114
+ // 用于设置小时、分钟和秒的步长
115
+ default() {
116
+ return [1, 1, 1]
117
+ }
118
+ },
119
+ disabledMinutes: {
120
+ type: Boolean,
121
+ default: false
122
+ },
123
+ // 距离开始时间的结束时间步长
124
+ // {
125
+ // years: 0,
126
+ // months: 0,
127
+ // days: 0,
128
+ // hours: 0,
129
+ // minutes: 0,
130
+ // seconds: 0
131
+ // }
132
+ maxEndStep: {
133
+ default() {
134
+ return null
135
+ }
136
+ }
137
+ },
138
+ watch: {
139
+ format: {
140
+ // 监听format属性变化
141
+ handler(val) {
142
+ if (typeof val === 'string') {
143
+ this.beginFormat = val
144
+ this.endFormat = val
145
+ } else {
146
+ this.beginFormat = val.begin
147
+ this.endFormat = val.end
148
+ }
149
+ },
150
+ deep: true,
151
+ immediate: true
152
+ },
153
+ begin: {
154
+ // 监听begin属性变化
155
+ handler(val) {
156
+ if (val) {
157
+ if (val instanceof Date) {
158
+ this.beginChange(this.$formatDate(val, this.beginFormat))
159
+ } else if (typeof val == 'string') {
160
+ this.beginCopy = val
161
+ }
162
+ } else {
163
+ this.beginCopy = ''
164
+ }
165
+ },
166
+ deep: true,
167
+ immediate: true
168
+ },
169
+ end: {
170
+ // 监听end属性变化
171
+ handler(val) {
172
+ if (val) {
173
+ if (val instanceof Date) {
174
+ this.endChange(this.$formatDate(val, this.endFormat))
175
+ } else if (typeof val == 'string') {
176
+ this.endCopy = val
177
+ }
178
+ } else {
179
+ this.endCopy = ''
180
+ }
181
+ },
182
+ deep: true,
183
+ immediate: true
184
+ },
185
+ clearable: {
186
+ // 监听clearable属性变化
187
+ handler(val) {
188
+ if (val == false) {
189
+ this.$nextTick(() => {
190
+ this.$refs.beginpickerRef.$children[1].$children[0].$children[6].$children[1].$el.style.display =
191
+ 'none'
192
+ this.$refs.endpickerRef.$children[1].$children[0].$children[6].$children[1].$el.style.display =
193
+ 'none'
194
+ })
195
+ }
196
+ },
197
+ deep: true,
198
+ immediate: true
199
+ },
200
+ disabled: {
201
+ // 监听disabled属性变化
202
+ handler(val) {
203
+ if (val) {
204
+ if (typeof val === 'boolean') {
205
+ this.beginDisabled = val
206
+ this.endDisabled = val
207
+ } else {
208
+ this.beginDisabled = val.begin
209
+ this.endDisabled = val.end
210
+ }
211
+ } else {
212
+ this.beginDisabled = false
213
+ this.endDisabled = false
214
+ }
215
+ },
216
+ deep: true,
217
+ immediate: true
218
+ },
219
+ max: {
220
+ // 监听max属性变化
221
+ handler(val) {
222
+ if (val) {
223
+ if (val instanceof Date) {
224
+ this.beginMaxDate = val
225
+ this.endMaxDate = val
226
+ } else if (typeof val == 'string') {
227
+ this.beginMaxDate = this.$getDateFromString(val, this.beginFormat)
228
+ this.endMaxDate = this.$getDateFromString(val, this.endFormat)
229
+ } else {
230
+ this.beginMaxDate = this.$getDateFromString(
231
+ val.begin,
232
+ this.beginFormat
233
+ )
234
+ this.endMaxDate = this.$getDateFromString(val.end, this.endFormat)
235
+ }
236
+ }
237
+ },
238
+ deep: true,
239
+ immediate: true
240
+ },
241
+ placement: {
242
+ handler(val) {
243
+ if (val) {
244
+ if (val instanceof String) {
245
+ this.mPlacement = {
246
+ begin: val,
247
+ end: val
248
+ }
249
+ } else {
250
+ this.mPlacement = val
251
+ }
252
+ }
253
+ },
254
+ deep: true,
255
+ immediate: true
256
+ },
257
+ timeSteps: {
258
+ handler(val) {
259
+ if (val) {
260
+ if (val instanceof Array) {
261
+ if (val.length < 3) {
262
+ throw new Error(
263
+ 'from begin-end-date-picker: timeSteps prop is [' +
264
+ val +
265
+ '] need [h,m,s]'
266
+ )
267
+ }
268
+ } else {
269
+ throw new Error(
270
+ 'from begin-end-date-picker: timeSteps prop need Array type'
271
+ )
272
+ }
273
+ }
274
+ },
275
+ deep: true,
276
+ immediate: true
277
+ }
278
+ },
279
+ data() {
280
+ return {
281
+ mPlacement: {
282
+ begin: 'bottom-end',
283
+ end: 'bottom-end'
284
+ },
285
+ // 内部的开始时间
286
+ beginCopy: '',
287
+ // 内部的结束时间
288
+ endCopy: '',
289
+ // 内部的开始时间是否可用
290
+ beginDisabled: false,
291
+ // 内部的结束时间是否可用
292
+ endDisabled: false,
293
+ // 内部的结束时间格式
294
+ beginFormat: '',
295
+ // 内部的结束时间格式
296
+ endFormat: '',
297
+ // 开始时间最大值
298
+ beginMaxDate: null,
299
+ // 结束时间最大值
300
+ endMaxDate: null
301
+ }
302
+ },
303
+ computed: {
304
+ /**
305
+ 设置开始时间的时间选择器的选项
306
+ @returns {Object} 返回包含禁用小时、禁用分钟和时间步长的对象
307
+ */
308
+ beginTimePickerOptions() {
309
+ let disabledHours = []
310
+ let disabledMinutes = []
311
+ if (this.min && this.min.minStart) {
312
+ // 获取最小开始时间的日期对象
313
+ let minStartDate = this.$getDateFromString(
314
+ this.min.minStart,
315
+ this.beginFormat
316
+ )
317
+ let hours = minStartDate.getHours()
318
+ // 将小于最小开始时间的小时加入禁用小时数组
319
+ for (var h = 0; h < hours; h++) {
320
+ disabledHours.push(h)
321
+ }
322
+ if (this.beginCopy) {
323
+ // 获取开始时间的日期对象
324
+ let beginDate = this.$getDateFromString(
325
+ this.beginCopy,
326
+ this.beginFormat
327
+ )
328
+ if (hours >= beginDate.getHours()) {
329
+ // 如果开始时间小时等于最小开始时间小时,则将小于最小开始时间分钟的分钟加入禁用分钟数组
330
+ let minutes = minStartDate.getMinutes()
331
+ for (let m = 0; m < minutes; m++) {
332
+ disabledMinutes.push(m)
333
+ }
334
+ }
335
+ // 如果开始时间大于最小开始时间,则重置禁用小时和禁用分钟数组
336
+ if (beginDate > minStartDate) {
337
+ if (
338
+ beginDate.getDate() > minStartDate.getDate() ||
339
+ beginDate.getMonth() > minStartDate.getMonth() ||
340
+ beginDate.getFullYear() > minStartDate.getFullYear()
341
+ ) {
342
+ disabledHours = []
343
+ disabledMinutes = []
344
+ } else if (
345
+ beginDate.getDate() == minStartDate.getDate() ||
346
+ beginDate.getMonth() == minStartDate.getMonth() ||
347
+ beginDate.getFullYear() == minStartDate.getFullYear()
348
+ ) {
349
+ disabledHours.push(beginDate.getHours())
350
+ if (beginDate.getHours() > minStartDate.getHours()) {
351
+ disabledMinutes = []
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+ if (this.disabledMinutes) {
358
+ disabledMinutes = []
359
+ for (let m = 0; m < 60; m++) {
360
+ disabledMinutes.push(m)
361
+ }
362
+ }
363
+ return {
364
+ disabledHours,
365
+ disabledMinutes,
366
+ steps: this.timeSteps
367
+ }
368
+ },
369
+ // 同设置开始时间的时间选择器的选项
370
+ endTimePickerOptions() {
371
+ let disabledHours = []
372
+ let disabledMinutes = []
373
+ // var minDate = this.getEndMinDate()
374
+ let endMaxDate = this.getEndMaxDate()
375
+ if (endMaxDate) {
376
+ let maxHours = endMaxDate.getHours()
377
+ if (this.endCopy) {
378
+ let endDate = this.$getDateFromString(this.endCopy, this.endFormat)
379
+ if (maxHours <= endDate.getHours()) {
380
+ let maxMinutes = endMaxDate.getMinutes()
381
+ for (let m = 59; m > maxMinutes; m--) {
382
+ disabledMinutes.push(m)
383
+ }
384
+ }
385
+ if (endDate > endMaxDate) {
386
+ disabledHours = []
387
+ disabledMinutes = []
388
+ }
389
+ } else {
390
+ for (let h = 23; h >= 0; h--) {
391
+ disabledHours.push(h)
392
+ }
393
+ for (let m = 59; m >= 0; m--) {
394
+ disabledMinutes.push(m)
395
+ }
396
+ }
397
+ }
398
+
399
+ if (this.disabledMinutes) {
400
+ disabledMinutes = []
401
+ for (let m = 0; m < 60; m++) {
402
+ disabledMinutes.push(m)
403
+ }
404
+ }
405
+ return {
406
+ disabledHours,
407
+ disabledMinutes,
408
+ steps: this.timeSteps
409
+ }
410
+ },
411
+ // 开始时间选项
412
+ beginDateOptions() {
413
+ return {
414
+ // 禁用日期函数,返回值为true表示禁用该日期,false表示启用该日期
415
+ disabledDate: (date) => {
416
+ var gEqualMin = true // 日期是否大于等于最小日期
417
+ var lEqualMax = true // 日期是否小于等于最大日期
418
+ if (this.min && this.min.minStart) {
419
+ // 如果存在最小日期,则获取最小日期并判断当前日期是否大于等于最小日期
420
+ let startDate = this.$getDateFromString(
421
+ this.min.minStart,
422
+ this.beginFormat
423
+ )
424
+ gEqualMin = date >= startDate
425
+ // 如果日期包含小时,则需要判断年月日是否相等
426
+ if (!gEqualMin && this.beginFormat.indexOf('HH') > -1) {
427
+ gEqualMin =
428
+ this.$formatDate(startDate, 'yyyy-MM-dd') ===
429
+ this.$formatDate(date, 'yyyy-MM-dd')
430
+ }
431
+ }
432
+ if (this.beginMaxDate) {
433
+ // 如果存在最大日期,则判断当前日期是否小于等于最大日期
434
+ lEqualMax = date <= this.beginMaxDate
435
+ }
436
+ // 返回日期是否在最小日期和最大日期之间
437
+ return !(gEqualMin && lEqualMax)
438
+ }
439
+ }
440
+ },
441
+ // 结束时间选项
442
+ endDateOptions() {
443
+ return {
444
+ disabledDate: (date) => {
445
+ var gEqualMin = true
446
+ var minDate = this.getEndMinDate()
447
+ gEqualMin = date >= minDate
448
+ if (!gEqualMin && this.beginFormat.indexOf('HH') > -1) {
449
+ gEqualMin =
450
+ this.$formatDate(minDate, 'yyyy-MM-dd') ===
451
+ this.$formatDate(date, 'yyyy-MM-dd')
452
+ }
453
+ var lEqualMax = true
454
+ const endMaxDate = this.getEndMaxDate()
455
+ if (endMaxDate) {
456
+ lEqualMax = date <= endMaxDate
457
+ }
458
+ return !(gEqualMin && lEqualMax)
459
+ }
460
+ }
461
+ }
462
+ },
463
+ methods: {
464
+ // 获取结束日期的最大值
465
+ getEndMaxDate() {
466
+ var maxDate = null
467
+ if (this.maxEndStep) {
468
+ // 如果没有设置结束日期的最大值,但设置了最大时间间隔,则根据开始日期及最大时间间隔计算结束日期的最大值
469
+ if (this.beginCopy) {
470
+ maxDate = this.beginCopy
471
+ maxDate = this.$addYears(maxDate, this.maxEndStep.years)
472
+ maxDate = this.$addMonths(maxDate, this.maxEndStep.months)
473
+ maxDate = this.$addDays(maxDate, this.maxEndStep.days)
474
+ maxDate = this.$addHours(maxDate, this.maxEndStep.hours)
475
+ maxDate = this.$addMinutes(maxDate, this.maxEndStep.minutes)
476
+ maxDate = this.$addSeconds(maxDate, this.maxEndStep.seconds)
477
+ }
478
+ }
479
+ if (this.endMaxDate) {
480
+ if (maxDate == null || maxDate > this.endMaxDate) {
481
+ // 如果已经设置了结束日期的最大值,则直接使用该值
482
+ maxDate = this.$getDateFromString(this.endMaxDate, this.endFormat)
483
+ }
484
+ }
485
+ return maxDate
486
+ },
487
+ // 获取结束日期的最小值
488
+ getEndMinDate() {
489
+ var minDate = null
490
+ if (this.beginCopy) {
491
+ minDate = this.$getDateFromString(this.beginCopy, this.beginFormat)
492
+ } else if (this.min && this.min.minEnd) {
493
+ minDate = this.$getDateFromString(this.min.minEnd, this.beginFormat)
494
+ }
495
+ return minDate
496
+ },
497
+ beginChange(value) {
498
+ // 如果选择的时间早于最小可选时间,强制设为最小可选时间
499
+ if (value) {
500
+ if (this.min && this.min.minStart) {
501
+ let selDate = this.$getDateFromString(value, this.beginFormat)
502
+ if (selDate <= this.min.minStart) {
503
+ // 根据步长重新设置时间
504
+ let copyMinStart = this.calcTimeByTimeStep(this.min.minStart)
505
+ value = this.$formatDate(copyMinStart, this.beginFormat)
506
+ this.beginCopy = value
507
+ }
508
+ }
509
+ // 触发begin-change事件
510
+ this.$emit('begin-change', value)
511
+ } else {
512
+ // 清空开始时间
513
+ this.beginCopy = ''
514
+ this.$emit('begin-change', null)
515
+ }
516
+ // 这么复杂是因为要保证转出来的时间一致
517
+ // 如果开始时间晚于结束时间,强制清空结束时间
518
+ if (this.endCopy) {
519
+ const beginDate = this.$getDateFromString(value, this.beginFormat)
520
+ const oldEndDate = this.$getDateFromString(
521
+ this.endCopy,
522
+ this.beginFormat
523
+ )
524
+ if (beginDate > oldEndDate) {
525
+ this.endChange(null)
526
+ } else {
527
+ const endMaxDate = this.getEndMaxDate()
528
+ if (endMaxDate && endMaxDate < oldEndDate) {
529
+ this.endChange(null)
530
+ }
531
+ }
532
+ }
533
+ },
534
+ endChange(value) {
535
+ if (!value) {
536
+ this.endCopy = ''
537
+ this.$emit('end-change', null)
538
+ return
539
+ }
540
+ let minDate = this.getEndMinDate()
541
+ if (minDate) {
542
+ let selDate = this.$getDateFromString(value, this.endFormat)
543
+ if (selDate <= minDate) {
544
+ value = this.$formatDate(minDate, this.endFormat)
545
+ this.endCopy = value
546
+ }
547
+ }
548
+ this.$emit('end-change', value)
549
+ },
550
+ calcTimeByTimeStep(oldTime) {
551
+ let newTime = new Date(oldTime)
552
+ let oldH = oldTime.getHours()
553
+ let oldMi = oldTime.getMinutes()
554
+ let oldSec = oldTime.getSeconds()
555
+ let hStep = this.timeSteps[0]
556
+ let mStep = this.timeSteps[1]
557
+ let sStep = this.timeSteps[2]
558
+ // 检验下次可选时间
559
+ if (oldSec + sStep > 59) {
560
+ oldMi += 1
561
+ oldSec = 0
562
+ }
563
+ if (oldMi + mStep > 59) {
564
+ oldH += 1
565
+ oldMi = 0
566
+ oldSec = 0
567
+ } else {
568
+ oldMi += mStep
569
+ }
570
+ // 根据步长重新设置时间
571
+ let hValueByStep = Math.floor(oldH / hStep) * hStep
572
+ let mValueByStep = Math.floor(oldMi / mStep) * mStep
573
+ let sValueByStep = Math.floor(oldSec / sStep) * sStep
574
+ newTime.setHours(hValueByStep)
575
+ newTime.setMinutes(mValueByStep)
576
+ newTime.setSeconds(sValueByStep)
577
+ return newTime
578
+ }
579
+ }
580
+ }
581
+ </script>
582
+ <style lang="less">
583
+ #datepicker {
584
+ .ivu-row::after {
585
+ clear: none;
586
+ }
587
+ .ivu-date-picker {
588
+ width: 100%;
589
+ }
590
+ // #endpicker {
591
+ // .ivu-select-dropdown {
592
+ // right: -5px;
593
+ // left: 0px !important;
594
+ // }
595
+ // }
596
+ }
597
+ </style>
@@ -0,0 +1,2 @@
1
+ import BeginEndDatePicker from './begin-end-date-picker'
2
+ export default BeginEndDatePicker
@@ -97,9 +97,10 @@ export default {
97
97
  const startDate = new Date(searchForm.startDate || searchForm.startTime || "")
98
98
  const endDate = new Date(searchForm.endDate || searchForm.startTime || "")
99
99
  const oneMonthInMs = 31 * 24 * 60 * 60 * 1000 // 1 个月的毫秒数
100
- if (!startDate || !endDate) {
100
+
101
+ if (!startDate || isNaN(startDate.getTime()) || !endDate || isNaN(endDate.getTime())) {
101
102
  setTimeout(() => {
102
- this.$Message.error('请选择导出开始和结束时间', 3)
103
+ this.$Message.error('请选择有效的导出开始和结束时间', 3)
103
104
  }, 0)
104
105
  return
105
106
  }
@@ -1,3 +1,20 @@
1
+
2
+ function removeElement(el, vnode) {
3
+ if (el.parentNode) {
4
+ el.parentNode.removeChild(el)
5
+ // el.parentNode.style.display = 'none'
6
+ if (vnode.componentInstance && vnode.componentInstance.$options.name == 'TabPane') {
7
+ console.log('------------', vnode.componentInstance)
8
+ for (let i = 0; i < vnode.componentInstance.TabsInstance.$children.length; i++) {
9
+ if (vnode.componentInstance.TabsInstance.$children[i].currentName == vnode.componentInstance.currentName) {
10
+ vnode.componentInstance.TabsInstance.$children.splice(i, 1)
11
+ break
12
+ }
13
+ }
14
+ vnode.componentInstance.updateNav()
15
+ }
16
+ }
17
+ }
1
18
  export default {
2
19
  inserted(el, binding, vnode, oldVnode) {
3
20
  // console.log('plugin-access', vnode.context.$store)
@@ -10,17 +27,53 @@ export default {
10
27
  if (binding.value === undefined) {
11
28
  throw new Error('v-access必须有值')
12
29
  }
13
- if (vnode.context.$store.state.user.access.indexOf(binding.value) === -1) {
14
- el.parentNode.removeChild(el)
15
- if (vnode.componentInstance && vnode.componentInstance.$options.name == 'TabPane') {
16
- console.log('------------', vnode.componentInstance)
17
- for (let i = 0; i < vnode.componentInstance.TabsInstance.$children.length; i++) {
18
- if (vnode.componentInstance.TabsInstance.$children[i].currentName == vnode.componentInstance.currentName) {
19
- vnode.componentInstance.TabsInstance.$children.splice(i, 1)
20
- break
30
+ if (typeof binding.value === 'object') {
31
+ if (!binding.value.code) {
32
+ throw new Error('v-access code必须有值')
33
+ }
34
+ if (vnode.context.$store.state.user.access.indexOf(binding.value.code) === -1) {
35
+ if (binding.value.isHide) {
36
+ removeElement(el, vnode)
37
+ } else {
38
+ el.parentNode.addEventListener('click', function (e) {
39
+ if (e.target == el) {
40
+ vnode.context.$Message.error('无操作权限,请联系管理员~')
41
+ e.stopPropagation()
42
+ e.preventDefault()
43
+ }
44
+ }, true)
45
+ }
46
+ // el.parentNode.addEventListener('mousedown', function (e) {
47
+ // if (e.target == el) {
48
+ // console.log('mousedown,没有权限')
49
+ // e.stopPropagation()
50
+ // e.preventDefault()
51
+ // }
52
+ // }, true)
53
+ // el.parentNode.addEventListener('touchstart', function (e) {
54
+ // if (e.target == el) {
55
+ // console.log('touchstart,没有权限')
56
+ // e.stopPropagation()
57
+ // e.preventDefault()
58
+ // }
59
+ // }, true)
60
+ console.log('没有权限', el)
61
+ }
62
+ }
63
+
64
+ if (typeof binding.value === 'string') {
65
+ if (vnode.context.$store.state.user.access.indexOf(binding.value) === -1) {
66
+ el.parentNode.removeChild(el)
67
+ if (vnode.componentInstance && vnode.componentInstance.$options.name == 'TabPane') {
68
+ console.log('------------', vnode.componentInstance)
69
+ for (let i = 0; i < vnode.componentInstance.TabsInstance.$children.length; i++) {
70
+ if (vnode.componentInstance.TabsInstance.$children[i].currentName == vnode.componentInstance.currentName) {
71
+ vnode.componentInstance.TabsInstance.$children.splice(i, 1)
72
+ break
73
+ }
21
74
  }
75
+ vnode.componentInstance.updateNav()
22
76
  }
23
- vnode.componentInstance.updateNav()
24
77
  }
25
78
  }
26
79
  }
package/src/index.js CHANGED
@@ -4,6 +4,7 @@ import i18n from './locale'
4
4
  import ExtentionPlugin from './extentionPlugin'
5
5
  import importDirective from './directive'
6
6
  import PlusComp from './components/plus-comp'
7
+ import BeginEndDatePicker from './components/begin-end-date-picker'
7
8
 
8
9
  console.log('--------web-tool---index.js----------')
9
10
 
@@ -17,6 +18,7 @@ export default {
17
18
  PlusComp,
18
19
  install(vue, opts = {}) {
19
20
  vue.use(PlusComp)
21
+ vue.component('BeginEndDatePicker', BeginEndDatePicker)
20
22
  /**
21
23
  * 注册指令
22
24
  */