fzzj vor 7 Monaten
Ursprung
Commit
c09655d640
3 geänderte Dateien mit 105 neuen und 5 gelöschten Zeilen
  1. 19
    1
      RuoYi-App/App.vue
  2. 11
    0
      RuoYi-App/pages.json
  3. 75
    4
      RuoYi-App/pages/novel/list.vue

+ 19
- 1
RuoYi-App/App.vue Datei anzeigen

@@ -54,7 +54,14 @@ export default {
54 54
     this.initTheme(); // 确保正确调用
55 55
     this.initStoreState();
56 56
     this.safeUpdateMenuVisibility();
57
-	
57
+	  // 添加全局错误处理
58
+	  window.addEventListener('error', (event) => {
59
+	    console.error('全局错误捕获:', event.error);
60
+	  });
61
+	  
62
+	  window.addEventListener('unhandledrejection', (event) => {
63
+	    console.error('未处理的Promise拒绝:', event.reason);
64
+	  });
58 65
   },
59 66
   beforeDestroy() {
60 67
     this.isMounted = false;
@@ -111,6 +118,17 @@ export default {
111 118
       });
112 119
       
113 120
       console.log('主题初始化完成');
121
+	    // 检查uni对象是否存在
122
+	    if (typeof uni === 'undefined') {
123
+	      console.error('uni对象未定义,uni-app环境可能未正确初始化');
124
+	      return;
125
+	    }
126
+	    
127
+	    // 检查uni.navigateTo方法是否存在
128
+	    if (typeof uni.navigateTo !== 'function') {
129
+	      console.error('uni.navigateTo方法不存在');
130
+	      return;
131
+	    }
114 132
     },
115 133
     reload() {
116 134
       this.isRouterAlive = false;

+ 11
- 0
RuoYi-App/pages.json Datei anzeigen

@@ -27,6 +27,17 @@
27 27
       }
28 28
     },
29 29
     {
30
+      "path": "pages/novel/reader",  // 添加阅读器页面配置
31
+      "style": {
32
+        "navigationBarTitleText": "阅读",
33
+        "enablePullDownRefresh": false,
34
+        "navigationStyle": "custom",  // 自定义导航栏
35
+        "app-plus": {
36
+          "titleNView": false  // 禁用原生导航栏
37
+        }
38
+      }
39
+    },
40
+    {
30 41
       "path": "pages/login",
31 42
       "style": {
32 43
         "navigationBarTitleText": "登录"

+ 75
- 4
RuoYi-App/pages/novel/list.vue Datei anzeigen

@@ -166,10 +166,64 @@ export default {
166 166
       }
167 167
     },
168 168
 openNovel(novel) {
169
-  // 使用uni.navigateTo替代this.$tab.navigateTo
170
-  uni.navigateTo({
171
-    url: `/pages/novel/reader?novelId=${novel.id}`
172
-  });
169
+  try {
170
+    console.log('openNovel被调用,参数:', novel);
171
+    
172
+    // 检查novel对象是否存在
173
+    if (!novel || typeof novel !== 'object') {
174
+      console.error('novel对象无效:', novel);
175
+      uni.showToast({
176
+        title: '小说信息错误',
177
+        icon: 'none'
178
+      });
179
+      return;
180
+    }
181
+    
182
+    // 检查novel.id是否存在且有效
183
+    const novelId = novel.id || novel.novelId || novel.bookId;
184
+    if (!novelId) {
185
+      console.error('无法获取小说ID:', novel);
186
+      uni.showToast({
187
+        title: '小说ID不存在',
188
+        icon: 'none'
189
+      });
190
+      return;
191
+    }
192
+    
193
+    // 确保ID是数字
194
+    const id = Number(novelId);
195
+    if (isNaN(id)) {
196
+      console.error('小说ID不是有效数字:', novelId);
197
+      uni.showToast({
198
+        title: '小说ID格式错误',
199
+        icon: 'none'
200
+      });
201
+      return;
202
+    }
203
+    
204
+    console.log('准备跳转到阅读页面,小说ID:', id);
205
+    
206
+    // 使用uni.navigateTo进行跳转
207
+    uni.navigateTo({
208
+      url: `/pages/novel/reader?novelId=${id}`,
209
+      success: (res) => {
210
+        console.log('跳转成功', res);
211
+      },
212
+      fail: (err) => {
213
+        console.error('跳转失败', err);
214
+        uni.showToast({
215
+          title: '跳转失败,请重试',
216
+          icon: 'none'
217
+        });
218
+      }
219
+    });
220
+  } catch (error) {
221
+    console.error('openNovel方法执行异常:', error);
222
+    uni.showToast({
223
+      title: '发生未知错误',
224
+      icon: 'none'
225
+    });
226
+  }
173 227
 },
174 228
     // 修复响应解析方法
175 229
     parseResponse(res) {
@@ -371,6 +425,23 @@ openNovel(novel) {
371 425
       } finally {
372 426
         this.loading = false;
373 427
       }
428
+	    if (newNovels.length > 0) {
429
+	      this.novels = [...this.novels, ...newNovels];
430
+	      this.hasMore = this.novels.length < total;
431
+	      this.page++;
432
+	      
433
+	      // 确保每个novel对象都有有效的id
434
+	      this.novels.forEach((novel, index) => {
435
+	        if (!novel.id) {
436
+	          console.warn(`小说 ${index} 缺少ID,使用索引作为临时ID`);
437
+	          novel.id = index + 1; // 使用索引作为临时ID
438
+	        }
439
+	        
440
+	        if (novel.coverImg) {
441
+	          novel.coverImg = this.getCoverUrl(novel.coverImg);
442
+	        }
443
+	      });
444
+	    }
374 445
     },
375 446
 
376 447
     // 暂时禁用广告加载,避免404错误

Laden…
Abbrechen
Speichern