fzzj 7 месяцев назад
Родитель
Сommit
c09655d640
3 измененных файлов: 105 добавлений и 5 удалений
  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 Просмотреть файл

54
     this.initTheme(); // 确保正确调用
54
     this.initTheme(); // 确保正确调用
55
     this.initStoreState();
55
     this.initStoreState();
56
     this.safeUpdateMenuVisibility();
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
   beforeDestroy() {
66
   beforeDestroy() {
60
     this.isMounted = false;
67
     this.isMounted = false;
111
       });
118
       });
112
       
119
       
113
       console.log('主题初始化完成');
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
     reload() {
133
     reload() {
116
       this.isRouterAlive = false;
134
       this.isRouterAlive = false;

+ 11
- 0
RuoYi-App/pages.json Просмотреть файл

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
       "path": "pages/login",
41
       "path": "pages/login",
31
       "style": {
42
       "style": {
32
         "navigationBarTitleText": "登录"
43
         "navigationBarTitleText": "登录"

+ 75
- 4
RuoYi-App/pages/novel/list.vue Просмотреть файл

166
       }
166
       }
167
     },
167
     },
168
 openNovel(novel) {
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
     parseResponse(res) {
229
     parseResponse(res) {
371
       } finally {
425
       } finally {
372
         this.loading = false;
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
     // 暂时禁用广告加载,避免404错误
447
     // 暂时禁用广告加载,避免404错误

Загрузка…
Отмена
Сохранить