orders.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import axios from 'axios'
  2. const api = axios.create({
  3. baseURL: '/api',
  4. timeout: 30000,
  5. })
  6. // 当前项目(js=金山烟草, jd=嘉定烟草)
  7. let currentProject = 'js'
  8. export function setCurrentProject(project) {
  9. currentProject = project
  10. }
  11. export function getCurrentProject() {
  12. return currentProject
  13. }
  14. // 请求拦截器:自动附加项目标识和 token
  15. api.interceptors.request.use((config) => {
  16. config.headers['X-Project'] = currentProject
  17. const token = localStorage.getItem('auth_token')
  18. if (token) {
  19. config.headers['Authorization'] = token
  20. }
  21. return config
  22. })
  23. // Token 管理
  24. export function setToken(token) {
  25. localStorage.setItem('auth_token', token)
  26. api.defaults.headers.common['Authorization'] = token
  27. }
  28. export function getToken() {
  29. const token = localStorage.getItem('auth_token')
  30. if (token) {
  31. api.defaults.headers.common['Authorization'] = token
  32. }
  33. return token
  34. }
  35. export function removeToken() {
  36. localStorage.removeItem('auth_token')
  37. delete api.defaults.headers.common['Authorization']
  38. }
  39. // 初始化时恢复 token
  40. getToken()
  41. // 登录
  42. export function login(username, password) {
  43. return api.post('/orders/login', { username, password })
  44. }
  45. // 查询订单
  46. export function queryOrders(params) {
  47. return api.post('/orders/query', params)
  48. }
  49. // 导出Excel
  50. export function exportExcel(params) {
  51. return api.post('/orders/export/excel', params, { responseType: 'blob' })
  52. }
  53. // 导入运单
  54. export function importLogistics(file) {
  55. const formData = new FormData()
  56. formData.append('file', file)
  57. return api.post('/orders/import/logistics', formData, {
  58. headers: { 'Content-Type': 'multipart/form-data' },
  59. })
  60. }
  61. // 下载导入模板
  62. export function downloadTemplate() {
  63. return api.get('/orders/import/template', { responseType: 'blob' })
  64. }
  65. // 查询操作日志(仅admin)
  66. export function queryLogs(params) {
  67. return api.get('/orders/logs', { params })
  68. }
  69. // 获取统计数据
  70. export function getStats() {
  71. return api.get('/orders/stats')
  72. }