| 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
57
58
59
60
 | | <template> |  |   <ul class="el-select-group__wrap" v-show="visible"> |  |     <li class="el-select-group__title">{{ label }}</li> |  |     <li> |  |       <ul class="el-select-group"> |  |         <slot></slot> |  |       </ul> |  |     </li> |  |   </ul> |  | </template> |  |   |  | <script type="text/babel"> |  |   import Emitter from 'element-ui/src/mixins/emitter'; |  |   |  |   export default { |  |     mixins: [Emitter], |  |   |  |     name: 'ElOptionGroup', |  |   |  |     componentName: 'ElOptionGroup', |  |   |  |     props: { |  |       label: String, |  |       disabled: { |  |         type: Boolean, |  |         default: false |  |       } |  |     }, |  |   |  |     data() { |  |       return { |  |         visible: true |  |       }; |  |     }, |  |   |  |     watch: { |  |       disabled(val) { |  |         this.broadcast('ElOption', 'handleGroupDisabled', val); |  |       } |  |     }, |  |   |  |     methods: { |  |       queryChange() { |  |         this.visible = this.$children && |  |           Array.isArray(this.$children) && |  |           this.$children.some(option => option.visible === true); |  |       } |  |     }, |  |   |  |     created() { |  |       this.$on('queryChange', this.queryChange); |  |     }, |  |   |  |     mounted() { |  |       if (this.disabled) { |  |         this.broadcast('ElOption', 'handleGroupDisabled', this.disabled); |  |       } |  |     } |  |   }; |  | </script> | 
 |