|
1 | 1 | <template>
|
2 | 2 | <v-layout row wrap>
|
3 | 3 | <v-flex xs4>
|
4 |
| - <v-layout column wrap text-xs-center> |
| 4 | + <v-layout column wrap text-xs-left> |
5 | 5 | <v-flex>
|
6 | 6 | <v-btn color="info"
|
7 | 7 | @click="checkForUpdate()">
|
8 | 8 | Check for updates
|
| 9 | + <v-icon right>new_releases</v-icon> |
9 | 10 | </v-btn>
|
10 | 11 | </v-flex>
|
| 12 | + <v-flex class="title" v-show="noNewVersion"> |
| 13 | + <v-icon>thumb_up</v-icon> Already the latest version |
| 14 | + </v-flex> |
11 | 15 | <v-flex v-show="hasNewVersion">
|
12 | 16 | <v-btn color="info"
|
13 | 17 | :loading="downloading"
|
14 | 18 | :disabled="downloading"
|
15 | 19 | @click="downloadAndUpdate">
|
16 |
| - Download new version! |
| 20 | + Download new version |
| 21 | + <v-icon right>cloud_download</v-icon> |
17 | 22 | <template v-slot:loader>
|
18 | 23 | <span>Loading...</span>
|
19 | 24 | </template>
|
20 | 25 | </v-btn>
|
| 26 | + <v-progress-circular |
| 27 | + :size="100" |
| 28 | + :width="15" |
| 29 | + :rotate="-90" |
| 30 | + :value="downloadPercent" |
| 31 | + color="primary" |
| 32 | + > |
| 33 | + {{ downloadPercent }} |
| 34 | + </v-progress-circular> |
21 | 35 | <v-dialog
|
22 | 36 | v-model="downloading"
|
23 | 37 | persistent
|
|
50 | 64 | </v-card>
|
51 | 65 | </v-dialog>
|
52 | 66 | </v-flex>
|
53 |
| - <v-flex v-show="hasNewVersion"> |
54 |
| - <v-progress-circular |
55 |
| - :size="100" |
56 |
| - :width="15" |
57 |
| - :rotate="-90" |
58 |
| - :value="downloadPercent" |
59 |
| - color="primary" |
60 |
| - > |
61 |
| - {{ downloadPercent }} |
62 |
| - </v-progress-circular> |
63 |
| - </v-flex> |
64 | 67 | <v-flex class="text-xs-left" v-show="showError">
|
65 | 68 | <v-alert type="error" v-model="showError" transition="scale-transition">
|
66 |
| - update error |
| 69 | + error info {{errorInfo}} |
67 | 70 | </v-alert>
|
68 | 71 | </v-flex>
|
69 | 72 | </v-layout>
|
|
89 | 92 | dialogUpdateNow: false,
|
90 | 93 | downloading: false,
|
91 | 94 | hasNewVersion: false,
|
| 95 | + noNewVersion: false, |
92 | 96 | downloadPercent: 0,
|
93 | 97 | showError: false,
|
94 |
| - info: '', |
| 98 | + errorInfo: {}, |
95 | 99 | versionInfoList: []
|
96 | 100 | }),
|
97 | 101 | destroyed() {
|
98 | 102 | // 移除事件监听
|
99 | 103 | ipcRenderer.removeAllListeners('updateMessage')
|
100 | 104 | ipcRenderer.removeAllListeners('downloadProgress')
|
| 105 | + ipcRenderer.removeAllListeners('isUpdateNow') |
101 | 106 | },
|
102 | 107 | mounted() {
|
103 | 108 | this.versionInfoList = this.getVersionInfoList()
|
|
126 | 131 | // 开始下载
|
127 | 132 | ipcRenderer.send('downloadUpdate')
|
128 | 133 | ipcRenderer.on('downloadProgress', (event, progressObj) => {
|
| 134 | + this.progress = JSON.stringify(progressObj) |
129 | 135 | // console.log(progressObj)
|
130 | 136 | this.downloadPercent = progressObj.percent.toFixed(0) || 0
|
131 |
| -
|
132 |
| - if(this.downloadPercent = 100) { |
| 137 | + // if(this.downloadPercent === 100) { // 这样写为啥不好使呢? |
| 138 | + if(progressObj.percent === 100) { |
133 | 139 | this.downloading = false
|
134 | 140 | // 询问是否立即更新
|
135 | 141 | this.dialogUpdateNow = true
|
136 | 142 | }
|
137 | 143 | })
|
138 | 144 | },
|
139 | 145 | updateNow() {
|
140 |
| - ipcRenderer.on('isUpdateNow', () => { |
141 |
| - ipcRenderer.send('isUpdateNow') |
142 |
| - }) |
| 146 | + // 立刻退出并更新 |
| 147 | + ipcRenderer.send('isUpdateNow') |
143 | 148 | },
|
144 | 149 | checkForUpdate() {
|
145 | 150 | // 开始检查
|
|
152 | 157 | this.versionInfoList = this.getVersionInfoList()
|
153 | 158 | } else if (obj.action === 'error') {
|
154 | 159 | this.showError = true
|
| 160 | + this.errorInfo = obj.errorInfo |
| 161 | + } else if(obj.action ==='updateNotAva') { |
| 162 | + this.noNewVersion = true |
155 | 163 | } else {
|
156 | 164 | // console.log(text)
|
157 | 165 | }
|
|
0 commit comments