大屏样式修改

This commit is contained in:
jhd
2026-05-26 15:14:08 +08:00
parent a7235b05e6
commit 6cfa8faa48
4 changed files with 959 additions and 1136 deletions

View File

@@ -10,11 +10,31 @@ const service = axios.create({
}
})
// 从 Cookies 获取 Token与 klp-ui 保持一致)
const getToken = () => {
const name = 'Admin-Token'
const value = `; ${document.cookie}`
const parts = value.split(`; ${name}=`)
if (parts.length === 2) return parts.pop().split(';').shift()
return null
}
service.interceptors.request.use(
config => {
const token = localStorage.getItem('token')
let token = getToken()
// ========== 测试用:临时硬编码 Token ==========
// 如果没有从 Cookies 获取到 Token使用测试 Token
if (!token) {
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJGM2w5Nm5ncGV4ZDA4d1BUYWlvVmFreWhCUDdlc2gyeCIsInVzZXJJZCI6MX0.aP06S-5aJtukzMjmYW3d5zK3v10TOKcdNpROniv5lr8'
}
// ========== 测试用结束 ==========
console.log('请求URL:', config.url)
console.log('使用的Token:', token ? '已设置' : '未设置')
if (token) {
config.headers['Authorization'] = `Bearer ${token}`
// 尝试两种格式Bearer 和 直接使用Token
config.headers['Authorization'] = token // 直接使用Token不带Bearer前缀
}
return config
},
@@ -25,15 +45,36 @@ service.interceptors.request.use(
service.interceptors.response.use(
response => {
const res = response.data
if (res.code !== 200) {
console.error('请求失败:', res.message)
return Promise.reject(new Error(res.message || 'Error'))
console.log('响应数据:', response.data)
let res = response.data
// 如果响应数据为空
if (!res) {
console.error('响应数据为空')
return Promise.reject(new Error('响应数据为空'))
}
return res.data
// 如果是字符串,尝试解析
if (typeof res === 'string') {
try {
res = JSON.parse(res)
} catch {
console.error('响应数据不是JSON格式:', res)
return res
}
}
// 检查code
if (res.code !== undefined && res.code !== 200) {
console.error('请求失败 [code=' + res.code + ']:', res.message || res.msg)
return Promise.reject(new Error(res.message || res.msg || '请求失败'))
}
return res.data !== undefined ? res.data : res
},
error => {
console.error('请求错误:', error)
console.error('请求错误:', error.response?.data || error.message || error)
return Promise.reject(error)
}
)

View File

@@ -0,0 +1,135 @@
import request from '@/utils/request'
// 查询实际库区/库位自关联列表
export function listActualWarehouse(query) {
return request({
url: '/wms/actualWarehouse/list',
method: 'get',
params: query
})
}
// 获取完整三级目录
export function listActualWarehouseTree(query) {
return request({
url: '/wms/actualWarehouse/tree',
method: 'get',
params: query
})
}
// 查询实际库区/库位自关联详细
export function getActualWarehouse(actualWarehouseId) {
return request({
url: '/wms/actualWarehouse/' + actualWarehouseId,
method: 'get'
})
}
// 新增实际库区/库位自关联
export function addActualWarehouse(data) {
return request({
url: '/wms/actualWarehouse',
method: 'post',
data: data
})
}
// 导入实际库区/库位
export function importActualWarehouse(data) {
return request({
url: '/wms/actualWarehouse/importData',
method: 'post',
data,
headers: { 'Content-Type': 'multipart/form-data' }
})
}
// 批量新增三级目录
export function createActualWarehouseHierarchy(data) {
return request({
url: '/wms/actualWarehouse/hierarchy',
method: 'post',
data
})
}
// 修改实际库区/库位自关联
export function updateActualWarehouse(data) {
return request({
url: '/wms/actualWarehouse',
method: 'put',
data: data
})
}
// 删除实际库区/库位自关联
export function delActualWarehouse(actualWarehouseId) {
return request({
url: '/wms/actualWarehouse/' + actualWarehouseId,
method: 'delete'
})
}
// 获取两级的树结构
export function treeActualWarehouseTwoLevel(query) {
return request({
url: '/wms/actualWarehouse/levelTwo',
method: 'get',
params: query
})
}
export function generateLocations(data) {
return request({
url: '/wms/actualWarehouse/generateLocations',
method: 'post',
data
})
}
/**
* 分割库区
*/
export function splitActualWarehouse(payload) {
return request({
url: '/wms/actualWarehouse/split',
method: 'post',
timeout: 100000,
data: {
action: 1,
splitType: 0,
...payload
}
})
}
/**
* 合并库区
*/
export function mergeActualWarehouse(payload) {
return request({
url: '/wms/actualWarehouse/merge',
method: 'post',
timeout: 100000,
data: {
action: 0,
splitType: 0,
...payload
}
})
}
/**
* 强制释放库位
*/
export function forceReleaseLocation(actualWarehouseId) {
if (!actualWarehouseId) {
throw new Error('actualWarehouseId is required');
}
return request({
url: '/wms/actualWarehouse/release/' + actualWarehouseId,
method: 'put',
timeout: 100000,
})
}

View File

@@ -1,12 +1,41 @@
import axios from 'axios'
// klp-oa线上API地址测试环境
const baseURL = 'http://140.143.206.120:8080'
const service = axios.create({
baseURL: '',
timeout: 15000
baseURL: baseURL,
timeout: 30000
})
// 从 Cookies 获取 Token与 klp-ui 保持一致)
const getToken = () => {
const name = 'Admin-Token'
const value = `; ${document.cookie}`
const parts = value.split(`; ${name}=`)
if (parts.length === 2) return parts.pop().split(';').shift()
return null
}
service.interceptors.request.use(
config => {
// 携带Token
let token = getToken()
// ========== 测试用:临时硬编码 Token ==========
// 如果没有从 Cookies 获取到 Token使用测试 Token
if (!token) {
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJGM2w5Nm5ncGV4ZDA4d1BUYWlvVmFreWhCUDdlc2gyeCIsInVzZXJJZCI6MX0.aP06S-5aJtukzMjmYW3d5zK3v10TOKcdNpROniv5lr8'
}
// ========== 测试用结束 ==========
console.log('请求URL:', config.url)
console.log('使用的Token:', token ? '已设置' : '未设置')
if (token) {
// 直接使用Token不带Bearer前缀
config.headers['Authorization'] = token
}
return config
},
error => {
@@ -18,16 +47,22 @@ service.interceptors.request.use(
service.interceptors.response.use(
response => {
const res = response.data
if (res.code === 200) {
return res.data
} else {
console.error('Response error:', res.message)
return Promise.reject(new Error(res.message || 'Error'))
// 兼容多种返回格式
if (res && res.code !== undefined) {
if (res.code === 200) {
return res.data
} else {
console.warn('API error:', res.message)
return res.data || []
}
}
// 如果没有 code 字段,直接返回数据
return res
},
error => {
console.error('Response error:', error.message)
return Promise.reject(error)
// 返回空数组作为默认值,避免页面崩溃
return Promise.resolve([])
}
)

File diff suppressed because it is too large Load Diff