| 1
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 | | <template> |  |   <div |  |     class="el-tab-pane" |  |     v-if="(!lazy || loaded) || active" |  |     v-show="active" |  |     role="tabpanel" |  |     :aria-hidden="!active" |  |     :id="`pane-${paneName}`" |  |     :aria-labelledby="`tab-${paneName}`" |  |   > |  |     <slot></slot> |  |   </div> |  | </template> |  | <script> |  |   export default { |  |     name: 'ElTabPane', |  |   |  |     componentName: 'ElTabPane', |  |   |  |     props: { |  |       label: String, |  |       labelContent: Function, |  |       name: String, |  |       closable: Boolean, |  |       disabled: Boolean, |  |       lazy: Boolean |  |     }, |  |   |  |     data() { |  |       return { |  |         index: null, |  |         loaded: false |  |       }; |  |     }, |  |   |  |     computed: { |  |       isClosable() { |  |         return this.closable || this.$parent.closable; |  |       }, |  |       active() { |  |         const active = this.$parent.currentName === (this.name || this.index); |  |         if (active) { |  |           this.loaded = true; |  |         } |  |         return active; |  |       }, |  |       paneName() { |  |         return this.name || this.index; |  |       } |  |     }, |  |   |  |     updated() { |  |       this.$parent.$emit('tab-nav-update'); |  |     } |  |   }; |  | </script> | 
 |