<template>
|
<div class="updateDownloadInfo" v-if="showUpdateInfo">
|
<el-alert
|
:title="`检测到新版本,正在下载安装包${
|
updateDownloadInfo?.percent ? ',进度:' + updateDownloadInfo?.percent + '%' : '...'
|
}`"
|
type="info"
|
effect="dark"
|
/>
|
</div>
|
<RouterView />
|
</template>
|
|
<script setup lang="ts">
|
import { ref, reactive, inject } from 'vue'
|
import { RouterView, useRouter } from 'vue-router'
|
import { useDownloadTask, useExportTask } from '@/store'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
const router = useRouter()
|
|
const request = inject('request')
|
|
const downloadTask = useDownloadTask()
|
const ExportTask = useExportTask()
|
|
if (window.electronAPI) {
|
window.electronAPI.onLogout((data) => {
|
localStorage.removeItem("token")
|
localStorage.removeItem("userInfo")
|
router.replace({
|
path: '/login'
|
})
|
})
|
|
window.electronAPI.onOpenUrl((data) => {
|
let taskInfo = null
|
let downloadInfo = decodeURI(data)
|
console.log(downloadInfo, '接受到的taskInfo')
|
try {
|
taskInfo = JSON.parse(downloadInfo)
|
} catch (error) {
|
taskInfo = null
|
}
|
if (taskInfo) {
|
router.replace({
|
path: '/home'
|
})
|
window.electronAPI.newDownloadTask(taskInfo)
|
}
|
})
|
|
// 绑定消息提醒
|
window.electronAPI.onShowMessage((data) => {
|
// 获取到消息后修改全局数据,页面监听全局数据进行变化
|
if (data.showType) {
|
switch (data.showType) {
|
case 'DownloadTask':
|
downloadTask.setMsgData(data)
|
break
|
case 'ExportTask':
|
ExportTask.setMsgData(data)
|
break
|
}
|
} else {
|
downloadTask.setMsgData(data)
|
}
|
})
|
|
// 绑定下载任务变化更新
|
window.electronAPI.onDownloadTaskChange((task) => {
|
downloadTask.setUpdateList()
|
})
|
|
// 绑定导出任务变化更新
|
window.electronAPI.onExportTaskChange((task) => {
|
ExportTask.setUpdateList()
|
})
|
|
const showUpdateInfo = ref(false)
|
const updateDownloadInfo = ref()
|
|
// 监听程序更新下载
|
window.electronAPI.onUpdateDownloadProgress((data) => {
|
showUpdateInfo.value = true
|
console.log(data, 'updateDownloadInfo')
|
updateDownloadInfo.value = data
|
})
|
|
// 监听程序更新下载完成
|
window.electronAPI.onUpdateDownloadSuccess((data) => {
|
showUpdateInfo.value = false
|
ElMessageBox.confirm('检测到新版本,安装包已下载完成,是否立即更新?', '检查更新', {
|
confirmButtonText: '更新',
|
cancelButtonText: '取消',
|
type: 'warning'
|
})
|
.then(() => {
|
window.electronAPI.updateApp()
|
})
|
.catch(() => {})
|
})
|
}
|
const getUrlParam = (paraName) => {
|
var url = window.location.toString()
|
var arrObj = url.split('?')
|
if (arrObj.length > 1) {
|
var arrPara = arrObj[1].split('&')
|
var arr
|
for (var i = 0; i < arrPara.length; i++) {
|
arr = arrPara[i].split('=')
|
if (arr != null && arr[0] == paraName) {
|
return arr[1]
|
}
|
}
|
return ''
|
} else {
|
return ''
|
}
|
}
|
|
let bookId = getUrlParam('bookId')
|
let token = getUrlParam('token')
|
let tryPageCount = getUrlParam('tryPageCount')
|
if(bookId){
|
localStorage.setItem('bookId', bookId)
|
}
|
if(tryPageCount){
|
localStorage.setItem('tryPageCount', tryPageCount)
|
}
|
|
if(token && token != null && token != 'null'){
|
localStorage.setItem('token', token)
|
}
|
if (bookId) {
|
router.replace({
|
path: '/home',
|
query: { bookId: bookId }
|
})
|
}
|
</script>
|
|
<style>
|
.updateDownloadInfo {
|
position: fixed;
|
top: 2px;
|
left: 82px;
|
right: 2px;
|
z-index: 999;
|
}
|
|
@font-face {
|
font-family: "swiper-icons";
|
src: url("data:application/font-woff;charset=utf-8;base64, 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")
|
format("woff");
|
font-weight: 400;
|
font-style: normal;
|
}
|
</style>
|