mirror of https://gitee.com/godoos/godoos.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
import { getSystemConfig,setSystemKey,parseJson } from '@/system/config'
|
|
import { RestartApp } from './goutil';
|
|
import { Dialog } from '@/system';
|
|
import { ElMessage } from 'element-plus'
|
|
export async function checkUpdate() {
|
|
const config = getSystemConfig();
|
|
const updateGiteeUrl = `${config.apiUrl}/system/updateInfo`
|
|
const releaseRes = await fetch(updateGiteeUrl)
|
|
if (!releaseRes.ok) return;
|
|
const releaseData = await releaseRes.json()
|
|
const versionTag = releaseData.version;
|
|
if (!versionTag) return;
|
|
if (versionTag <= config.version) return;
|
|
const updateUrl = releaseData.url
|
|
if (!updateUrl || updateUrl == '') return;
|
|
const dialogRes: any = await Dialog.showMessageBox({
|
|
title: '更新提示',
|
|
message: `发现新版本:${versionTag},是否更新?`
|
|
})
|
|
//console.log(dialogRes)
|
|
if (dialogRes.response !== -1) {
|
|
return;
|
|
}
|
|
const { setProgress,dialogwin } = Dialog.showProcessDialog({
|
|
message: '正在更新',
|
|
});
|
|
const upUrl = `${config.apiUrl}/system/update?url=${updateUrl}`
|
|
const upRes = await fetch(upUrl)
|
|
if (!upRes.ok) return;
|
|
const reader: any = upRes.body?.getReader();
|
|
if (!reader) {
|
|
ElMessage({
|
|
type: 'error',
|
|
message: "the system has not stream!"
|
|
})
|
|
}
|
|
while (true) {
|
|
const { done, value } = await reader.read();
|
|
if (done) {
|
|
reader.releaseLock();
|
|
break;
|
|
}
|
|
const rawjson = new TextDecoder().decode(value);
|
|
const json = parseJson(rawjson);
|
|
console.log(json)
|
|
if(json){
|
|
if(json.progress){
|
|
setProgress(json.progress)
|
|
}
|
|
if(json.updateCompleted){
|
|
dialogwin.close()
|
|
ElMessage({
|
|
type: 'success',
|
|
message: "update completed!"
|
|
})
|
|
setSystemKey('version',versionTag)
|
|
RestartApp()
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|