import { ref } from 'vue' export function useReadingProgress() { // 保存阅读进度 const saveProgress = (novelId, chapterId, progress) => { try { const key = `reading_progress_${novelId}_${chapterId}` uni.setStorageSync(key, JSON.stringify(progress)) // 同时保存到云端(如果有登录) if (uni.getStorageSync('token')) { uni.request({ url: 'https://api.aiyadianzi.ltd/reading/progress', method: 'POST', data: { novelId, chapterId, ...progress }, header: { 'Authorization': `Bearer ${uni.getStorageSync('token')}` } }) } } catch (e) { console.error('保存阅读进度失败', e) } } // 加载阅读进度 const loadProgress = (novelId, chapterId) => { return new Promise((resolve) => { try { // 先尝试从本地加载 const key = `reading_progress_${novelId}_${chapterId}` const localData = uni.getStorageSync(key) if (localData) { resolve(JSON.parse(localData)) return } // 如果登录了,尝试从云端加载 if (uni.getStorageSync('token')) { uni.request({ url: `https://api.aiyadianzi.ltd/reading/progress?novelId=${novelId}&chapterId=${chapterId}`, method: 'GET', header: { 'Authorization': `Bearer ${uni.getStorageSync('token')}` }, success: (res) => { if (res.data.success && res.data.data) { resolve(res.data.data) } else { resolve(null) } }, fail: () => resolve(null) }) } else { resolve(null) } } catch (e) { console.error('加载阅读进度失败', e) resolve(null) } }) } return { saveProgress, loadProgress } }