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
  | <template> 
 |    <div> 
 |      <svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" /> 
 |    </div> 
 |  </template> 
 |    
 |  <script> 
 |  import screenfull from 'screenfull' 
 |    
 |  export default { 
 |    name: 'Screenfull', 
 |    data() { 
 |      return { 
 |        isFullscreen: false 
 |      } 
 |    }, 
 |    mounted() { 
 |      this.init() 
 |    }, 
 |    beforeDestroy() { 
 |      this.destroy() 
 |    }, 
 |    methods: { 
 |      click() { 
 |        if (!screenfull.isEnabled) { 
 |          this.$message({ message: '你的浏览器不支持全屏', type: 'warning' }) 
 |          return false 
 |        } 
 |        screenfull.toggle() 
 |      }, 
 |      change() { 
 |        this.isFullscreen = screenfull.isFullscreen 
 |      }, 
 |      init() { 
 |        if (screenfull.isEnabled) { 
 |          screenfull.on('change', this.change) 
 |        } 
 |      }, 
 |      destroy() { 
 |        if (screenfull.isEnabled) { 
 |          screenfull.off('change', this.change) 
 |        } 
 |      } 
 |    } 
 |  } 
 |  </script> 
 |    
 |  <style scoped> 
 |  .screenfull-svg { 
 |    display: inline-block; 
 |    cursor: pointer; 
 |    fill: #5a5e66;; 
 |    width: 20px; 
 |    height: 20px; 
 |    vertical-align: 10px; 
 |  } 
 |  </style> 
 |  
  |