Explorar el Código

feat: api请求失败时console打印完整URL以方便排查

- request(): 401/业务失败/网络错误均打印完整URL和方法

- uploadAndParseReport(): 失败/网络错误日志

- parseReportPreview(): 失败/网络错误日志

- danParsePreview(): 失败/网络错误日志

- langgraphRequest(): 不可达时打印URL后回退Dify

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
liaoxg hace 3 meses
padre
commit
cac9906d7e
Se han modificado 1 ficheros con 19 adiciones y 9 borrados
  1. 19 9
      cfc-frontend/utils/api.js

+ 19 - 9
cfc-frontend/utils/api.js

@@ -23,11 +23,6 @@ function _clearAuthAndRedirect() {
 }
 
 const request = (url, method = 'POST', data = {}, options = {}) => {
-  // 调试:打印完整请求地址
-  var fullUrl = BASE_URL + url
-  if (url.indexOf('/api/auth') === 0) {
-    console.log('[API] ' + method + ' ' + fullUrl, data)
-  }
   // Append query params from options to URL if provided (e.g., { guideId } for GET requests)
   if (options && Object.keys(options).length > 0) {
     const separator = url.includes('?') ? '&' : '?'
@@ -37,11 +32,12 @@ const request = (url, method = 'POST', data = {}, options = {}) => {
       .join('&')
     if (query) url = url + separator + query
   }
+  var fullUrl = BASE_URL + url
   const token = uni.getStorageSync('token')
   
   return new Promise((resolve, reject) => {
     uni.request({
-      url: BASE_URL + url,
+      url: fullUrl,
       method: method,
       data: data,
       header: {
@@ -51,6 +47,7 @@ const request = (url, method = 'POST', data = {}, options = {}) => {
       },
       success: (res) => {
         if (res.statusCode === 401 || res.data.code === 401) {
+          console.warn('[API] 401 ' + method + ' ' + fullUrl)
           _clearAuthAndRedirect()
           reject(res.data)
           return
@@ -58,6 +55,7 @@ const request = (url, method = 'POST', data = {}, options = {}) => {
         if (res.data.code === 200) {
           resolve(res.data)
         } else {
+          console.warn('[API] 失败 ' + method + ' ' + fullUrl + ' code=' + res.data.code + ' msg=' + (res.data.message || ''))
           uni.showToast({
             title: res.data.message || '请求失败',
             icon: 'none'
@@ -66,6 +64,7 @@ const request = (url, method = 'POST', data = {}, options = {}) => {
         }
       },
       fail: (err) => {
+        console.error('[API] 网络错误 ' + method + ' ' + fullUrl, err)
         uni.showToast({
           title: '网络请求失败',
           icon: 'none'
@@ -126,7 +125,8 @@ const langgraphRequest = (opts) => {
         var pageData = transform ? transform(lgData) : lgData
         resolve({ code: 200, message: 'ok', data: pageData })
       },
-      fail: () => {
+      fail: (err) => {
+        console.warn('[API] LangGraph不可达,回退Dify ' + LANGGRAPH_URL + langgraphPath, err)
         // LangGraph 网络错误 → 回退 Dify
         _fallbackToDify(difyFallbackPath, difyFallbackMethod, difyFallbackData, difyFallbackOptions, resolve, reject)
       }
@@ -951,10 +951,12 @@ export const uploadAndParseReport = (filePath) => {
         if (data.code === 200) {
           resolve(data)
         } else {
+          console.warn('[API] 上传失败 ' + BASE_URL + '/api/growth/record/upload-and-parse' + ' code=' + data.code + ' msg=' + (data.message || ''))
           reject(data)
         }
       },
       fail: (err) => {
+        console.error('[API] 上传网络错误 ' + BASE_URL + '/api/growth/record/upload-and-parse', err)
         reject(err)
       }
     })
@@ -1838,10 +1840,14 @@ export const parseReportPreview = (filePath, childId, familyId, type) => {
         if (data && data.code === 200) {
           resolve(data)
         } else {
+          console.warn('[API] 解析上传失败 ' + BASE_URL + '/api/health/report/parse-preview' + ' code=' + (data && data.code || '') + ' msg=' + (data && data.message || ''))
           reject(data)
         }
       },
-      fail: (err) => { reject(err) }
+      fail: (err) => {
+        console.error('[API] 解析上传网络错误 ' + BASE_URL + '/api/health/report/parse-preview', err)
+        reject(err)
+      }
     })
   })
 }
@@ -2092,10 +2098,14 @@ export const danParsePreview = (filePath, dimension, memberId) => {
         if (data && data.code === 200) {
           resolve(data)
         } else {
+          console.warn('[API] DAN上传失败 ' + BASE_URL + '/api/dan-assessment/report/parse-preview' + ' code=' + (data && data.code || '') + ' msg=' + (data && data.message || ''))
           reject(data || { message: '解析失败' })
         }
       },
-      fail: function(err) { reject(err) }
+      fail: function(err) {
+        console.error('[API] DAN上传网络错误 ' + BASE_URL + '/api/dan-assessment/report/parse-preview', err)
+        reject(err)
+      }
     })
   })
 }