|
6 | 6 | <b-navbar-toggle target="nav_collapse" />
|
7 | 7 | <b-collapse is-nav id="nav_collapse" v-if="$route.path !== '/manage/init'">
|
8 | 8 | <b-navbar-nav v-if="token !== null">
|
9 |
| - <b-nav-item to="/manage/all">全部标签</b-nav-item> |
| 9 | + <b-nav-item to="/manage/all">全部标签</b-nav-item> |
10 | 10 | <b-nav-item to="/manage/backup">备份/恢复</b-nav-item>
|
11 | 11 | <b-nav-item to="/manage/setting">设置</b-nav-item>
|
12 |
| - <b-nav-item v-if="update_available" :href="update_pageUrl" target="_blank">管理系统有更新!</b-nav-item> |
| 12 | + <b-nav-item |
| 13 | + v-if="update_available" |
| 14 | + :href="$root.REPO_URL + '/releases/latest'" |
| 15 | + target="_blank"> |
| 16 | + <span style="color:red">管理系统有更新!</span> |
| 17 | + </b-nav-item> |
13 | 18 | </b-navbar-nav>
|
14 | 19 | <b-navbar-nav class="ml-auto">
|
15 | 20 | <b-nav-item v-if="token !== null" @click.stop.prevent="onLogout">登出后台</b-nav-item>
|
@@ -53,7 +58,6 @@ export default {
|
53 | 58 | return {
|
54 | 59 | pingDone: false,
|
55 | 60 | update_available: false,
|
56 |
| - update_pageUrl: null, |
57 | 61 | service: null,
|
58 | 62 | token: null
|
59 | 63 | }
|
@@ -95,6 +99,7 @@ export default {
|
95 | 99 | })
|
96 | 100 | this.service = service
|
97 | 101 | this.ping()
|
| 102 | + this.checkUpdate() |
98 | 103 | },
|
99 | 104 | methods: {
|
100 | 105 | onLogout () {
|
@@ -131,6 +136,25 @@ export default {
|
131 | 136 | this.$root.showInfo('无法连接服务器,详细信息见console')
|
132 | 137 | console.error(e)
|
133 | 138 | }
|
| 139 | + }, |
| 140 | + async checkUpdate () { |
| 141 | + try { |
| 142 | + let { data } = await axios.get(this.$root.REPO_API_URL + '/releases/latest') |
| 143 | + let tagName = data.tag_name |
| 144 | + let match = tagName.match(/v(\d+)\.(\d+)\.(\d+)/) |
| 145 | + let currentVersionCode = this.$root.VERSION_CODE |
| 146 | + if (match) { |
| 147 | + if ((match[1] > currentVersionCode[0]) || |
| 148 | + (match[1] === currentVersionCode[0] && match[2] > currentVersionCode[1]) || |
| 149 | + (match[1] === currentVersionCode[0] && match[2] === currentVersionCode[1] && match[3] > currentVersionCode[2])) { |
| 150 | + this.update_available = true |
| 151 | + } |
| 152 | + } else { |
| 153 | + console.log(`latest tag is invalid: ${tagName}`) |
| 154 | + } |
| 155 | + } catch (e) { |
| 156 | + console.error('Can\'t load latest release info', e) |
| 157 | + } |
134 | 158 | }
|
135 | 159 | }
|
136 | 160 | }
|
|
0 commit comments