Files
MTKJPAY-FRONT/src/api/request.js
qiube 1c461ab5c3 feat(i18n): 添加国际化配置和国家地址配置
- 新增 src/utils/countryConfig.js 文件,包含各国地址字段规则和邮编格式配置
- 新增 src/i18n/index.js 文件,实现基于货币代码的国际化翻译功能
- 新增 src/i18n/locales.js 文件,提供中英马泰菲多语言静态翻译文本
- 实现货币代码到国家代码映射及地址验证功能
- 添加订单创建页、商品详情页、订单确认页等多页面国际化支持
- 支持新加坡、马来西亚、菲律宾、泰国、越南等国家地址格式配置
2025-12-24 17:39:06 +08:00

65 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import axios from 'axios'
import { ElMessage } from 'element-plus'
import config from '../config'
const request = axios.create({
baseURL: config.apiBaseUrl,
timeout: config.requestTimeout,
headers: {
'Content-Type': 'application/json'
}
})
// 请求拦截器
request.interceptors.request.use(
config => {
// 如果是文件上传,不设置 Content-Type让浏览器自动设置包含 boundary
if (config.data instanceof FormData) {
delete config.headers['Content-Type']
}
return config
},
error => {
return Promise.reject(error)
}
)
// 响应拦截器
request.interceptors.response.use(
response => {
const data = response.data
// 如果响应格式是统一的Result格式
if (data && typeof data === 'object' && 'code' in data) {
if (data.code === '0000') {
// 返回完整对象,让调用方自己处理
return data
} else {
ElMessage.error(data.message || '请求失败')
return Promise.reject(new Error(data.message || '请求失败'))
}
}
return data
},
error => {
console.error('请求错误:', error)
let message = '请求失败'
if (error.response) {
const data = error.response.data
message = data?.message || `请求失败: ${error.response.status}`
} else if (error.request) {
message = '网络错误,请检查网络连接'
} else {
message = error.message || '请求失败'
}
ElMessage.error(message)
return Promise.reject(error)
}
)
export default request