Bläddra i källkod

Update:票据处理逻辑更新

XieXing 3 månader sedan
förälder
incheckning
c4755e7444

+ 0 - 4
shudao-go-backend/conf/app.conf

@@ -10,10 +10,6 @@ mysqlhttpport = 21000
 mysqldb = shudao
 
 # ==================== AI模型配置 ====================
-# DeepSeek配置
-deepseek_api_key = sk-28625cb3738844e190cee62b2bcb25bf
-deepseek_api_url = https://api.deepseek.com
-
 # 阿里大模型配置
 qwen3_api_url = http://172.16.35.50:8000
 qwen3_model = Qwen3-30B-A3B-Instruct-2507

+ 0 - 4
shudao-go-backend/conf/app.conf.prod

@@ -10,10 +10,6 @@ mysqlhttpport = 21000
 mysqldb = shudao
 
 # ==================== AI模型配置 ====================
-# DeepSeek配置
-deepseek_api_key = sk-28625cb3738844e190cee62b2bcb25bf
-deepseek_api_url = https://api.deepseek.com
-
 # 阿里大模型配置
 qwen3_api_url = http://172.16.35.50:8000
 qwen3_model = Qwen3-30B-A3B-Instruct-2507

+ 0 - 4
shudao-go-backend/conf/app.conf.test

@@ -10,10 +10,6 @@ mysqlhttpport = 21000
 mysqldb = shudao
 
 # ==================== AI模型配置 ====================
-# DeepSeek配置
-deepseek_api_key = sk-28625cb3738844e190cee62b2bcb25bf
-deepseek_api_url = https://api.deepseek.com
-
 # 阿里大模型配置
 qwen3_api_url = http://172.16.35.50:8000
 qwen3_model = Qwen3-30B-A3B-Instruct-2507

+ 27 - 5
shudao-vue-frontend/src/components/ExportButton.vue

@@ -27,6 +27,7 @@ import { ref } from 'vue'
 import { ElMessage } from 'element-plus'
 import { Download, ArrowDown, Document } from '@element-plus/icons-vue'
 import { buildApiUrl, REPORT_API_PREFIX, SSE_API_PREFIX } from '@/utils/apiConfig'
+import { getToken } from '@/utils/auth'
 
 const props = defineProps({
   reports: {
@@ -54,11 +55,23 @@ const handleExport = async (format) => {
   loading.value = true
   
   try {
-    // 调用后端导出API
-    const response = await fetch(buildApiUrl('/report/export'), {
+    // 获取token
+    const token = getToken()
+    if (!token) {
+      ElMessage.error('请先登录')
+      return
+    }
+    
+    // 调用后端导出API - 使用正确的报告服务前缀
+    const exportUrl = buildApiUrl('/report/export', REPORT_API_PREFIX)
+    console.log('导出请求URL:', exportUrl)
+    console.log('导出请求数据:', { report_content: props.reports, format, title: props.title })
+    
+    const response = await fetch(exportUrl, {
       method: 'POST',
       headers: {
         'Content-Type': 'application/json',
+        'Authorization': `Bearer ${token}`
       },
       body: JSON.stringify({
         report_content: props.reports,
@@ -68,7 +81,9 @@ const handleExport = async (format) => {
     })
     
     if (!response.ok) {
-      throw new Error('导出失败')
+      const errorText = await response.text()
+      console.error('导出请求失败:', response.status, errorText)
+      throw new Error(`导出失败: ${response.status} ${errorText}`)
     }
     
     const result = await response.json()
@@ -78,9 +93,16 @@ const handleExport = async (format) => {
     let downloadUrl = result.download_url
     if (downloadUrl.startsWith('/api/v1')) {
       // 替换为当前环境的正确前缀
-      downloadUrl = downloadUrl.replace('/api/v1', SSE_API_PREFIX)
+      downloadUrl = downloadUrl.replace('/api/v1', REPORT_API_PREFIX)
+    } else if (!downloadUrl.startsWith('http') && !downloadUrl.startsWith(REPORT_API_PREFIX)) {
+      // 如果是相对路径且没有前缀,添加报告服务前缀
+      downloadUrl = `${REPORT_API_PREFIX}${downloadUrl.startsWith('/') ? downloadUrl : '/' + downloadUrl}`
     }
-    const downloadResponse = await fetch(downloadUrl)
+    const downloadResponse = await fetch(downloadUrl, {
+      headers: {
+        'Authorization': `Bearer ${token}`
+      }
+    })
     if (!downloadResponse.ok) {
       throw new Error('下载失败')
     }