大量的代码格式化
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Failing after 1m10s
Docker Build & Deploy / Deploy to Production (push) Has been skipped
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Failing after 1m10s
Docker Build & Deploy / Deploy to Production (push) Has been skipped
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
This commit is contained in:
@@ -26,45 +26,47 @@ export const uploadBillFile = (file, type) => {
|
||||
Authorization: `Bearer ${useAuthStore().token || ''}`
|
||||
},
|
||||
timeout: 60000 // 文件上传增加超时时间
|
||||
}).then(response => {
|
||||
const { data } = response
|
||||
|
||||
if (data.success === false) {
|
||||
showToast(data.message || '上传失败')
|
||||
return Promise.reject(new Error(data.message || '上传失败'))
|
||||
}
|
||||
|
||||
return data
|
||||
}).catch(error => {
|
||||
console.error('上传错误:', error)
|
||||
|
||||
if (error.response) {
|
||||
const { status, data } = error.response
|
||||
let message = '上传失败'
|
||||
|
||||
switch (status) {
|
||||
case 400:
|
||||
message = data?.message || '请求参数错误'
|
||||
break
|
||||
case 401:
|
||||
message = '未授权,请先登录'
|
||||
break
|
||||
case 403:
|
||||
message = '没有权限'
|
||||
break
|
||||
case 413:
|
||||
message = '文件过大'
|
||||
break
|
||||
case 500:
|
||||
message = '服务器错误'
|
||||
break
|
||||
}
|
||||
|
||||
showToast(message)
|
||||
return Promise.reject(new Error(message))
|
||||
}
|
||||
|
||||
showToast('网络错误,请检查网络连接')
|
||||
return Promise.reject(error)
|
||||
})
|
||||
.then((response) => {
|
||||
const { data } = response
|
||||
|
||||
if (data.success === false) {
|
||||
showToast(data.message || '上传失败')
|
||||
return Promise.reject(new Error(data.message || '上传失败'))
|
||||
}
|
||||
|
||||
return data
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('上传错误:', error)
|
||||
|
||||
if (error.response) {
|
||||
const { status, data } = error.response
|
||||
let message = '上传失败'
|
||||
|
||||
switch (status) {
|
||||
case 400:
|
||||
message = data?.message || '请求参数错误'
|
||||
break
|
||||
case 401:
|
||||
message = '未授权,请先登录'
|
||||
break
|
||||
case 403:
|
||||
message = '没有权限'
|
||||
break
|
||||
case 413:
|
||||
message = '文件过大'
|
||||
break
|
||||
case 500:
|
||||
message = '服务器错误'
|
||||
break
|
||||
}
|
||||
|
||||
showToast(message)
|
||||
return Promise.reject(new Error(message))
|
||||
}
|
||||
|
||||
showToast('网络错误,请检查网络连接')
|
||||
return Promise.reject(error)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ export const getEmailDetail = (id) => {
|
||||
*/
|
||||
export const deleteEmail = (id) => {
|
||||
return request({
|
||||
url: `/EmailMessage/DeleteById`,
|
||||
url: '/EmailMessage/DeleteById',
|
||||
method: 'post',
|
||||
params: { id }
|
||||
})
|
||||
@@ -50,7 +50,7 @@ export const deleteEmail = (id) => {
|
||||
*/
|
||||
export const refreshTransactionRecords = (id) => {
|
||||
return request({
|
||||
url: `/EmailMessage/RefreshTransactionRecords`,
|
||||
url: '/EmailMessage/RefreshTransactionRecords',
|
||||
method: 'post',
|
||||
params: { id }
|
||||
})
|
||||
@@ -62,7 +62,7 @@ export const refreshTransactionRecords = (id) => {
|
||||
*/
|
||||
export const syncEmails = () => {
|
||||
return request({
|
||||
url: `/EmailMessage/SyncEmails`,
|
||||
url: '/EmailMessage/SyncEmails',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import request from '@/api/request'
|
||||
|
||||
export function getJobs() {
|
||||
export function getJobs () {
|
||||
return request({
|
||||
url: '/Job/GetJobs',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function executeJob(jobName) {
|
||||
export function executeJob (jobName) {
|
||||
return request({
|
||||
url: '/Job/Execute',
|
||||
method: 'post',
|
||||
@@ -15,7 +15,7 @@ export function executeJob(jobName) {
|
||||
})
|
||||
}
|
||||
|
||||
export function pauseJob(jobName) {
|
||||
export function pauseJob (jobName) {
|
||||
return request({
|
||||
url: '/Job/Pause',
|
||||
method: 'post',
|
||||
@@ -23,7 +23,7 @@ export function pauseJob(jobName) {
|
||||
})
|
||||
}
|
||||
|
||||
export function resumeJob(jobName) {
|
||||
export function resumeJob (jobName) {
|
||||
return request({
|
||||
url: '/Job/Resume',
|
||||
method: 'post',
|
||||
|
||||
@@ -14,7 +14,7 @@ const request = axios.create({
|
||||
|
||||
// 请求拦截器
|
||||
request.interceptors.request.use(
|
||||
config => {
|
||||
(config) => {
|
||||
// 添加 token 认证信息
|
||||
const authStore = useAuthStore()
|
||||
if (authStore.token) {
|
||||
@@ -22,7 +22,7 @@ request.interceptors.request.use(
|
||||
}
|
||||
return config
|
||||
},
|
||||
error => {
|
||||
(error) => {
|
||||
console.error('请求错误:', error)
|
||||
return Promise.reject(error)
|
||||
}
|
||||
@@ -30,25 +30,25 @@ request.interceptors.request.use(
|
||||
|
||||
// 响应拦截器
|
||||
request.interceptors.response.use(
|
||||
response => {
|
||||
(response) => {
|
||||
const { data } = response
|
||||
|
||||
|
||||
// 统一处理业务错误
|
||||
if (data.success === false) {
|
||||
showToast(data.message || '请求失败')
|
||||
return Promise.reject(new Error(data.message || '请求失败'))
|
||||
}
|
||||
|
||||
|
||||
return data
|
||||
},
|
||||
error => {
|
||||
(error) => {
|
||||
console.error('响应错误:', error)
|
||||
|
||||
|
||||
// 统一处理 HTTP 错误
|
||||
if (error.response) {
|
||||
const { status, data } = error.response
|
||||
let message = '请求失败'
|
||||
|
||||
|
||||
switch (status) {
|
||||
case 400:
|
||||
message = data?.message || '请求参数错误'
|
||||
@@ -58,7 +58,10 @@ request.interceptors.response.use(
|
||||
// 清除登录状态并跳转到登录页
|
||||
const authStore = useAuthStore()
|
||||
authStore.logout()
|
||||
router.push({ name: 'login', query: { redirect: router.currentRoute.value.fullPath } })
|
||||
router.push({
|
||||
name: 'login',
|
||||
query: { redirect: router.currentRoute.value.fullPath }
|
||||
})
|
||||
break
|
||||
}
|
||||
case 403:
|
||||
@@ -73,14 +76,14 @@ request.interceptors.response.use(
|
||||
default:
|
||||
message = data?.message || `请求失败 (${status})`
|
||||
}
|
||||
|
||||
|
||||
showToast(message)
|
||||
} else if (error.request) {
|
||||
showToast('网络连接失败,请检查网络')
|
||||
} else {
|
||||
showToast(error.message || '请求失败')
|
||||
}
|
||||
|
||||
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -79,7 +79,7 @@ export const updatePeriodic = (data) => {
|
||||
*/
|
||||
export const deletePeriodic = (id) => {
|
||||
return request({
|
||||
url: `/TransactionPeriodic/DeleteById`,
|
||||
url: '/TransactionPeriodic/DeleteById',
|
||||
method: 'post',
|
||||
params: { id }
|
||||
})
|
||||
|
||||
@@ -99,7 +99,7 @@ export const updateTransaction = (data) => {
|
||||
*/
|
||||
export const deleteTransaction = (id) => {
|
||||
return request({
|
||||
url: `/TransactionRecord/DeleteById`,
|
||||
url: '/TransactionRecord/DeleteById',
|
||||
method: 'post',
|
||||
params: { id }
|
||||
})
|
||||
@@ -118,7 +118,6 @@ export const getTransactionsByDate = (date) => {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 注意:分类相关的API已迁移到 transactionCategory.js
|
||||
// 请使用 getCategoryList 等新接口
|
||||
|
||||
@@ -155,12 +154,12 @@ export const smartClassify = (transactionIds = []) => {
|
||||
const baseURL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:5071/api'
|
||||
const token = localStorage.getItem('token')
|
||||
const url = `${baseURL}/TransactionRecord/SmartClassify`
|
||||
|
||||
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${token}`
|
||||
Authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({ transactionIds })
|
||||
})
|
||||
@@ -261,4 +260,4 @@ export const parseOneLine = (text) => {
|
||||
method: 'post',
|
||||
data: { text }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user