同步桌面端更新:重连/重试、断线自动重连、图片容错与鉴权参数
移植桌面端 2025-03-22 之后的更新到移动端,保留移动端自身布局: - 补齐管理子路径鉴权参数:缩略图、在线图片、/cache 请求带上 AuthCode; 原线上靠临时热补丁脚本 online-reader-auth-fix.js 绕过,现由源码原生支持。 - 断线自动重连:新增 src/utils/taskSocket.js,指数退避重连并在重连后重新同步 任务列表与用量;App.vue 接入页面可见性/网络恢复事件,Side.vue 显示连接状态。 - 未完成任务重试:新增 retryGallery action 与重试按钮;补 "等待压缩" 状态。 - 图片容错:新增 src/utils/progressiveImages.js,单图加载失败不再阻塞后续页, 支持单图重试。 - store 修复:收藏列表残留(slice→splice)、action 内改 context.state、 gid 判空(null→undefined)、deleteTask 跳过下一元素、resetUndone 用 state 授权码、 axios 全局错误拦截器、getShortname 简化。 - 下载链接统一由 buildGalleryDownloadUrl 生成(按 gid 而非名字)。 - 构建配置:base 改为 /asserts/mobile/、固定产物名 index.js/index.css、新增 .gitignore。 - 升级 Vite 8.3.0 + @vitejs/plugin-vue 6.0.9,npm audit 0 漏洞。 - 新增 tests/(11 项 Node 测试,全部通过)。
This commit is contained in:
+19
@@ -1,7 +1,26 @@
|
||||
<script setup>
|
||||
import {onMounted, onBeforeUnmount} from "vue";
|
||||
import store from "./store/index.js";
|
||||
import Side from "./components/Side.vue";
|
||||
import DashBoard from "./components/DashBoard.vue";
|
||||
|
||||
const resumeProgress = () => {
|
||||
if (store.state.isAuth && document.visibilityState === 'visible') store.dispatch("initWebsocket");
|
||||
};
|
||||
const pauseProgress = () => store.dispatch("disconnectWebsocket");
|
||||
onMounted(() => {
|
||||
window.addEventListener('online', resumeProgress);
|
||||
window.addEventListener('pageshow', resumeProgress);
|
||||
window.addEventListener('pagehide', pauseProgress);
|
||||
document.addEventListener('visibilitychange', resumeProgress);
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('online', resumeProgress);
|
||||
window.removeEventListener('pageshow', resumeProgress);
|
||||
window.removeEventListener('pagehide', pauseProgress);
|
||||
document.removeEventListener('visibilitychange', resumeProgress);
|
||||
pauseProgress();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user